AlumniImageController.java 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. package com.template.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.template.api.AlumniImageControllerAPI;
  4. import com.template.common.utils.WeiXiaoUtil;
  5. import com.template.common.utils.paramUtils;
  6. import com.template.model.enumModel.ePassType;
  7. import com.template.model.enumModel.eRoleType;
  8. import com.template.model.pojo.*;
  9. import com.template.model.request.insertImageRequest;
  10. import com.template.model.result.CommonResult;
  11. import com.template.model.result.PageUtils;
  12. import com.template.model.vo.*;
  13. import com.template.services.AlumniAdminApplyService;
  14. import com.template.services.AlumniImageService;
  15. import com.template.services.AlumniUserService;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.slf4j.Logger;
  18. import org.slf4j.LoggerFactory;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.validation.BindingResult;
  21. import org.springframework.web.bind.annotation.RequestAttribute;
  22. import org.springframework.web.bind.annotation.RequestMapping;
  23. import org.springframework.web.bind.annotation.RestController;
  24. import java.util.ArrayList;
  25. import java.util.Arrays;
  26. import java.util.Date;
  27. import java.util.List;
  28. /**
  29. * <p>
  30. * 前端控制器
  31. * </p>
  32. *
  33. * @author ceshi
  34. * @since 2024-11-25
  35. */
  36. @RestController
  37. public class AlumniImageController implements AlumniImageControllerAPI {
  38. @Autowired
  39. private WeiXiaoUtil weiXiaoUtil;
  40. @Autowired
  41. private AlumniImageService alumniImageService;
  42. @Autowired
  43. private AlumniUserService alumniUserService;
  44. @Autowired
  45. private AlumniAdminApplyService alumniAdminApplyService;
  46. private static Logger logger = LoggerFactory.getLogger(AlumniImageController.class);
  47. @Override
  48. public CommonResult queryImagePage(int currentPage, int pageCount, String userName, String orgName, Integer collegeId, Integer periodId, Integer majorId, Integer classId) {
  49. PageUtils<ImagePageVo> result = alumniImageService.imagePageDatas(currentPage, pageCount, userName, orgName, collegeId, periodId, majorId, classId);
  50. for (ImagePageVo ipv : result.getList()) {
  51. ipv.setImages(Arrays.asList(ipv.getImage().split(",")));
  52. }
  53. return CommonResult.ok(result);
  54. }
  55. @Override
  56. public CommonResult insertImage(insertImageRequest iir, Integer userId, BindingResult bindingResult) {
  57. if (iir == null) {
  58. return CommonResult.fail("请传递参数");
  59. }
  60. if (bindingResult.hasErrors()) {
  61. String st = paramUtils.getParamError(bindingResult);
  62. return CommonResult.fail(st);
  63. }
  64. AlumniUser au = alumniUserService.queryDataById(userId);
  65. if (au == null) {
  66. return CommonResult.fail("操作人已失效,上传失败");
  67. }
  68. AlumniAdminApply aaa = alumniAdminApplyService.queryImageAdmin();
  69. if (aaa == null) {
  70. return CommonResult.fail("校友相册模块未设置管理员,无法上传图片");
  71. }
  72. AlumniImage ai = new AlumniImage();
  73. ai.setImage(StringUtils.join(iir.getImages(), ","));
  74. ai.setCategoryId(iir.getCategoryId());
  75. ai.setCategoryName(iir.getCategoryName());
  76. ai.setIsPass(ePassType.Approval.getValue());
  77. ai.setApplyUser(aaa.getAdmin());
  78. ai.setApplyUserName(aaa.getAdminName());
  79. int result = alumniImageService.insertAlumniImage(ai);
  80. if (result <= 0) {
  81. return CommonResult.fail("上传失败");
  82. }
  83. //发送微校通知
  84. //校友上传照片至相册后,系统生成通知发送给相册管理员:“
  85. // [上传人姓名],相册分类为 [相册分类]。请及时对照片进行审核。”
  86. List<AlumniUser> users = alumniUserService.queryDataByIds(Arrays.asList(aaa.getAdmin().split(",")));
  87. List<String> cardnumbers = new ArrayList<>();
  88. for (AlumniUser user : users) {
  89. if (org.springframework.util.StringUtils.hasText(user.getCardNumber())) {
  90. cardnumbers.add(user.getCardNumber());
  91. }
  92. }
  93. if (cardnumbers != null && cardnumbers.size() > 0) {
  94. String content = au.getName() + ",相册分类为 " + iir.getCategoryName() + "。请及时对照片进行审核。";
  95. CommonResult sendMessage = weiXiaoUtil.sendNotice(cardnumbers, "校友相册审核", "校友相册审核", content, null);
  96. if (!sendMessage.getCode().equals("200")) {
  97. logger.info("微校通知发送失败,cardnumber:" + JSON.toJSON(cardnumbers) + ",Content:" + content + ",id" + result);
  98. }
  99. }
  100. return CommonResult.ok("上传成功");
  101. }
  102. @Override
  103. public CommonResult deleteImageById(int id) {
  104. int result = alumniImageService.deleteDataById(id);
  105. if (result <= 0) {
  106. return CommonResult.fail("删除失败");
  107. }
  108. return CommonResult.ok("删除成功");
  109. }
  110. @Override
  111. public CommonResult queryImageApplyPage(Integer userId, int currentPage, int pageCount, String userName, String orgName, Integer collegeId, Integer periodId, Integer majorId, Integer classId, Integer isPass, String startTime, String endTime) {
  112. AlumniUser au = alumniUserService.queryDataById(userId);
  113. if (au == null) {
  114. return CommonResult.fail("当前操作人已失效,无法加入");
  115. }
  116. if(au.getRoleId().intValue() == eRoleType.Super.getValue()){
  117. userId = null;
  118. }
  119. PageUtils<ImageApplyPageVo> result = alumniImageService.imageApplyPageDatas(currentPage, pageCount,userId, userName, orgName, collegeId, periodId, majorId, classId, isPass, startTime, endTime);
  120. for (ImageApplyPageVo rg : result.getList()) {
  121. rg.setPassName(ePassType.stringOf(rg.getIsPass()));
  122. rg.setImages(Arrays.asList(rg.getImage().split(",")));
  123. }
  124. return CommonResult.ok(result);
  125. }
  126. @Override
  127. public CommonResult toExamineImage(Integer userId, Integer id, Integer isPass, String passValue) throws Exception {
  128. if (isPass.intValue() == ePassType.Rejected.getValue() && !org.springframework.util.StringUtils.hasText(passValue)) {
  129. return CommonResult.fail("审批意见必填");
  130. }
  131. AlumniUser au = alumniUserService.queryDataById(userId);
  132. if (au == null) {
  133. return CommonResult.fail("当前操作人已失效,无法进行审核操作");
  134. }
  135. AlumniImage ai = alumniImageService.queryDataById(id);
  136. if (ai == null) {
  137. return CommonResult.fail("校友相册审核数据已失效,无法进行审核操作");
  138. }
  139. AlumniUser cau = alumniUserService.queryDataById(Integer.valueOf(ai.getCreateUser()));
  140. if (cau == null) {
  141. return CommonResult.fail("申请人已失效,无法审核");
  142. }
  143. if (ai.getIsPass().intValue() != ePassType.Approval.getValue()) {
  144. return CommonResult.fail("只有待审核数据能被审核");
  145. }
  146. List<String> userIds = Arrays.asList(ai.getApplyUser().split(","));
  147. if (userIds != null && userIds.size() > 0) {
  148. if (!userIds.contains(String.valueOf(userId))) {
  149. return CommonResult.fail("当前操作人无法操作此审核单");
  150. }
  151. } else {
  152. return CommonResult.fail("当前操作人无法操作此审核单");
  153. }
  154. ai.setIsPass(isPass);
  155. ai.setPassTime(new Date());
  156. ai.setPassValue(passValue);
  157. int result = alumniImageService.updateAlumniImage(ai);
  158. if (result <= 0) {
  159. return CommonResult.fail("审核失败");
  160. }
  161. //发送微校通知
  162. //审核完成后系统生成通知发送给用户:“
  163. // [上传人姓名],相册分类为 [相册分类]。已通过或已拒绝。”
  164. List<String> cardnumbers = new ArrayList<>();
  165. cardnumbers.add(cau.getCardNumber());
  166. String content = cau.getName() + ",相册分类为 " + ai.getCategoryName() + "。" + ePassType.stringOf(ai.getIsPass());
  167. CommonResult sendMessage = weiXiaoUtil.sendNotice(cardnumbers, "校友相册审核结果", "校友相册审核结果", content, null);
  168. if (!sendMessage.getCode().equals("200")) {
  169. logger.info("微校通知发送失败,cardnumber:" + JSON.toJSON(cardnumbers) + ",Content:" + content + ",id" + id);
  170. }
  171. return CommonResult.ok("审核成功");
  172. }
  173. @Override
  174. public CommonResult queryMobileImagePage(Integer userId, int currentPage, int pageCount, String keyword, Integer categoryId) {
  175. PageUtils<ImageMobilePageVo> result = alumniImageService.imageMobilePageDatas(currentPage, pageCount, keyword, categoryId);
  176. for (ImageMobilePageVo imp : result.getList()) {
  177. imp.setImages(Arrays.asList(imp.getImage().split(",")));
  178. String collegeName = imp.getCollegeName() == null ? "" : imp.getCollegeName();
  179. String periodName = imp.getPeriodName() == null ? "" : "/" + imp.getPeriodName();
  180. String majorName = imp.getMajorName() == null ? "" : "/" + imp.getMajorName();
  181. String className = imp.getClassName() == null ? "" : "/" + imp.getClassName();
  182. imp.setSchoolInfo(collegeName + "" + periodName + "" + majorName + "/" + className);
  183. imp.setCategoryName("上传了" + imp.getImages().size() + "张照片至" + imp.getCategoryName());
  184. }
  185. return CommonResult.ok(result);
  186. }
  187. @Override
  188. public CommonResult queryMyImagePage(Integer userId, int currentPage, int pageCount, Integer isPass) {
  189. PageUtils<ImageMyPageVo> result = alumniImageService.imageMyPageDatas(currentPage, pageCount, userId, isPass);
  190. for (ImageMyPageVo imp : result.getList()) {
  191. imp.setImages(Arrays.asList(imp.getImage().split(",")));
  192. imp.setCategoryName("上传了" + imp.getImages().size() + "张照片至" + imp.getCategoryName());
  193. }
  194. return CommonResult.ok(result);
  195. }
  196. }