package com.thhy.staff.modules.biz.dorm.controller; import com.alibaba.fastjson.JSON; import com.alibaba.nacos.api.utils.StringUtils; import com.github.pagehelper.PageInfo; import com.thhy.general.common.BasicResult; import com.thhy.general.common.BasicStatus; import com.thhy.general.config.GlobalConfig; import com.thhy.general.exception.BasicException; import com.thhy.general.utils.PagingUtils; import com.thhy.staff.modules.biz.dorm.entity.Dorm; import com.thhy.staff.modules.biz.dorm.entity.DormDto; import com.thhy.staff.modules.biz.dorm.entity.DormListVo; import com.thhy.staff.modules.biz.dorm.service.DormService; import com.thhy.general.utils.ImageUtils; import org.redisson.api.RBucket; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.awt.image.BufferedImage; import java.io.IOException; import java.io.OutputStream; import java.util.List; /** * @author zhang_xiao_bo * @since 2023-04-03 12:49:45 */ @RestController @RequestMapping("dorm") public class DormController { @Autowired private DormService dormService; @Autowired private RedissonClient redissonClient; @Autowired private GlobalConfig globalConfig; @RequestMapping("findList") public BasicResult findList(@RequestBody(required = false) DormDto dormDto,HttpServletRequest req){ PagingUtils.setPageParam(req); List dormList = dormService.findList(dormDto); PageInfo pageInfo = new PageInfo<>(dormList); return BasicResult.success(pageInfo); } @RequestMapping("addDorm") public BasicResult addDorm(@RequestBody DormDto dormDto){ dormService.addDorm(dormDto); return BasicResult.success(); } @RequestMapping("getDormInfo") public BasicResult getDormInfo(@RequestBody(required = false) Dorm dorm,HttpServletRequest req){ PagingUtils.setPageParam(req); DormDto dormDto = dormService.getDormInfo(dorm); return BasicResult.success(dormDto); } @RequestMapping("findUserList") public BasicResult findUserList(@RequestBody(required = false) DormDto dormDto,HttpServletRequest req){ PagingUtils.setPageParam(req); List dormList = dormService.findList(dormDto); PageInfo pageInfo = new PageInfo<>(dormList); return BasicResult.success(pageInfo); } /** @RequestMapping("update") public BasicResult update(@RequestBody Dorm dorm){ dormService.update(dorm); return BasicResult.success(); }**/ @RequestMapping("delete") public BasicResult delete(@RequestBody Dorm dorm){ dormService.delete(dorm.getDormId()); return BasicResult.success(); } @RequestMapping("viewcode") public void viewcode(String authcode, HttpServletResponse rsp){ /*dormService.delete(dorm.getDormId());*/ RBucket rBucket = redissonClient.getBucket(globalConfig.getFilePreKey()+":authcode:"+authcode); String param = rBucket.getAndDelete(); if(StringUtils.isEmpty(param)){ throw new BasicException(BasicStatus.TOKEN_IS_NULL); } Dorm dorm = JSON.toJavaObject(JSON.parseObject(param),Dorm.class); BufferedImage bufferedImage = ImageUtils.createQr(dorm.getDormId()); OutputStream outputStream = null; try { outputStream = rsp.getOutputStream(); ImageIO.write(bufferedImage,"jpg",outputStream); } catch (IOException e) { throw new RuntimeException(e); } finally { try { outputStream.close(); } catch (IOException e) { throw new RuntimeException(e); } } } }