ReplacementInstrumentActivityController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. package com.ym.mec.web.controller;
  2. import com.ym.mec.auth.api.client.SysUserFeignService;
  3. import com.ym.mec.auth.api.entity.SysUser;
  4. import com.ym.mec.biz.dal.dao.*;
  5. import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityStatDto;
  6. import com.ym.mec.biz.dal.dto.StudentInstrumentExportDto;
  7. import com.ym.mec.biz.dal.entity.*;
  8. import com.ym.mec.biz.dal.enums.MessageTypeEnum;
  9. import com.ym.mec.biz.dal.enums.YesOrNoEnum;
  10. import com.ym.mec.biz.dal.page.ReplacementInstrumentActivityQueryInfo;
  11. import com.ym.mec.biz.service.GoodsService;
  12. import com.ym.mec.biz.service.ReplacementInstrumentActivityService;
  13. import com.ym.mec.biz.service.ReplacementInstrumentCooperationService;
  14. import com.ym.mec.biz.service.SysMessageService;
  15. import com.ym.mec.common.controller.BaseController;
  16. import com.ym.mec.common.entity.HttpResponseResult;
  17. import com.ym.mec.common.exception.BizException;
  18. import com.ym.mec.common.page.PageInfo;
  19. import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
  20. import com.ym.mec.util.date.DateUtil;
  21. import com.ym.mec.util.excel.POIUtil;
  22. import com.ym.mec.util.http.HttpUtil;
  23. import io.swagger.annotations.Api;
  24. import io.swagger.annotations.ApiOperation;
  25. import org.apache.commons.lang3.StringUtils;
  26. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  27. import org.springframework.beans.factory.annotation.Autowired;
  28. import org.springframework.security.access.prepost.PreAuthorize;
  29. import org.springframework.web.bind.annotation.GetMapping;
  30. import org.springframework.web.bind.annotation.PostMapping;
  31. import org.springframework.web.bind.annotation.RequestMapping;
  32. import org.springframework.web.bind.annotation.RestController;
  33. import javax.servlet.http.HttpServletResponse;
  34. import java.io.IOException;
  35. import java.io.OutputStream;
  36. import java.util.*;
  37. @RequestMapping("replacementInstrumentActivity")
  38. @Api(tags = "乐器置换-调查问卷服务")
  39. @RestController
  40. public class ReplacementInstrumentActivityController extends BaseController {
  41. @Autowired
  42. private ReplacementInstrumentActivityService replacementInstrumentActivityService;
  43. @Autowired
  44. private SysUserFeignService sysUserFeignService;
  45. @Autowired
  46. private EmployeeDao employeeDao;
  47. @Autowired
  48. private ReplacementInstrumentActivityDao replacementInstrumentActivityDao;
  49. @Autowired
  50. private ReplacementInstrumentCooperationService replacementInstrumentCooperationService;
  51. @Autowired
  52. private QuestionnaireQuestionDao questionnaireQuestionDao;
  53. @Autowired
  54. private QuestionnaireUserResultDao questionnaireUserResultDao;
  55. @Autowired
  56. private SysConfigDao sysConfigDao;
  57. @Autowired
  58. private SysMessageService sysMessageService;
  59. @Autowired
  60. private GoodsService goodsService;
  61. @ApiOperation(value = "分页查询列表")
  62. @GetMapping("/queryPage")
  63. @PreAuthorize("@pcs.hasPermissions('replacementInstrumentActivity/queryPage')")
  64. public HttpResponseResult<PageInfo<ReplacementInstrumentActivityStatDto>> queryPage(ReplacementInstrumentActivityQueryInfo queryInfo) {
  65. SysUser sysUser = sysUserFeignService.queryUserInfo();
  66. if (sysUser == null) {
  67. return failed("用户信息获取失败");
  68. }
  69. Employee employee = employeeDao.get(sysUser.getId());
  70. if (StringUtils.isEmpty(queryInfo.getOrganId())) {
  71. queryInfo.setOrganId(employee.getOrganIdList());
  72. } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
  73. return failed("用户所在分部异常");
  74. } else {
  75. List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
  76. if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
  77. return failed("非法请求");
  78. }
  79. }
  80. return succeed(replacementInstrumentActivityService.getPageList(queryInfo));
  81. }
  82. @ApiOperation(value = "统计信息查询")
  83. @GetMapping("/queryReplacementsStat")
  84. public HttpResponseResult<PageInfo<ReplacementInstrumentActivityStatDto>> queryReplacementsStat(ReplacementInstrumentActivityQueryInfo queryInfo) {
  85. return succeed(replacementInstrumentActivityService.queryReplacementsStat(queryInfo));
  86. }
  87. @ApiOperation(value = "统计信息查询")
  88. @GetMapping("/resultSync")
  89. public void resultSync() {
  90. replacementInstrumentActivityService.resultSync();
  91. }
  92. @ApiOperation(value = "修改")
  93. @PostMapping("/update")
  94. @PreAuthorize("@pcs.hasPermissions('replacementInstrumentActivity/update')")
  95. public HttpResponseResult<ReplacementInstrumentActivity> update(ReplacementInstrumentActivity replacementInstrumentActivity) {
  96. replacementInstrumentActivity.setGoodsId(replacementInstrumentActivity.getInstrumentsId());
  97. ReplacementInstrumentActivity oldReplacementInstrumentActivity = replacementInstrumentActivityDao.getLock(replacementInstrumentActivity.getId());
  98. if (!oldReplacementInstrumentActivity.getPayStatus().equals(0)) {
  99. return failed("支付中、已支付的乐器置换,不能修改");
  100. }
  101. ReplacementInstrumentCooperation byCooperationId = replacementInstrumentCooperationService.get(oldReplacementInstrumentActivity.getReplacementInstrumentCooperationId());
  102. if (byCooperationId.getOpenPay().equals(YesOrNoEnum.YES) && oldReplacementInstrumentActivity.getInstrumentsId() == null && replacementInstrumentActivity.getInstrumentsId() != null) {
  103. Goods goods = goodsService.get(replacementInstrumentActivity.getInstrumentsId());
  104. Map<Integer, String> userMap = new HashMap<>();
  105. Map<Integer, String> userPhoneMap = new HashMap<>();
  106. Integer userId = oldReplacementInstrumentActivity.getUserId();
  107. String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
  108. String pushUrl = baseApiUrl + "/#/questionGoodsSale?id=";
  109. userMap.put(userId, userId.toString());
  110. sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.REPLACEMENT_PAY_PUSH,
  111. userMap, null, 0, "5?" + pushUrl + replacementInstrumentActivity.getId(), "STUDENT", goods.getBrand(), "");
  112. userPhoneMap.put(userId, oldReplacementInstrumentActivity.getMobileNo());
  113. sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.REPLACEMENT_PAY_PUSH,
  114. userPhoneMap, null, 0, null, "STUDENT", goods.getBrand(), HttpUtil.getSortUrl(pushUrl + replacementInstrumentActivity.getId()));
  115. }
  116. oldReplacementInstrumentActivity.setSubjectId(replacementInstrumentActivity.getSubjectId());
  117. oldReplacementInstrumentActivity.setInstrumentsId(replacementInstrumentActivity.getInstrumentsId());
  118. oldReplacementInstrumentActivity.setGoodsId(replacementInstrumentActivity.getInstrumentsId());
  119. oldReplacementInstrumentActivity.setUpdateTime(new Date());
  120. replacementInstrumentActivityService.update(oldReplacementInstrumentActivity);
  121. return succeed(replacementInstrumentActivity);
  122. }
  123. // @ApiOperation(value = "导出")
  124. // @RequestMapping("/export")
  125. // @PreAuthorize("@pcs.hasPermissions('questionnaireUserResult/export')")
  126. // public void questionnaireUserResultExport(ReplacementInstrumentActivityQueryInfo queryInfo, HttpServletResponse response) throws Exception {
  127. // List<String> questionColumn = questionnaireQuestionDao.findQuestionColumnList(queryInfo.getCooperationId());
  128. // if(questionColumn != null && questionColumn.size() > 0){
  129. // List<String> column = new ArrayList<>();
  130. // column.add("学员编号");
  131. // column.add("学员姓名");
  132. // column.add("手机号");
  133. // column.addAll(questionColumn);
  134. // String[] header = column.toArray(new String[column.size()]);
  135. //// questionnaireUserResultDao.queryDetailPage()
  136. // }else {
  137. // throw new BizException("暂无可导出数据");
  138. // }
  139. // }
  140. @ApiOperation(value = "导出")
  141. @RequestMapping("/export")
  142. @PreAuthorize("@pcs.hasPermissions('replacementInstrumentActivity/export')")
  143. public void export(ReplacementInstrumentActivityQueryInfo queryInfo, HttpServletResponse response) throws Exception {
  144. SysUser sysUser = sysUserFeignService.queryUserInfo();
  145. if (sysUser == null) {
  146. throw new BizException("用户信息获取失败");
  147. }
  148. Employee employee = employeeDao.get(sysUser.getId());
  149. if (StringUtils.isEmpty(queryInfo.getOrganId())) {
  150. queryInfo.setOrganId(employee.getOrganIdList());
  151. } else if (StringUtils.isEmpty(employee.getOrganIdList())) {
  152. throw new BizException("用户所在分部异常");
  153. } else {
  154. List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
  155. if (!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))) {
  156. throw new BizException("非法请求");
  157. }
  158. }
  159. queryInfo.setRows(99999);
  160. PageInfo<ReplacementInstrumentActivityStatDto> pageList = replacementInstrumentActivityService.getPageList(queryInfo);
  161. if (pageList.getTotal() <= 0) {
  162. throw new BizException("没有可导出的记录");
  163. }
  164. for (ReplacementInstrumentActivityStatDto row : pageList.getRows()) {
  165. if(row.getInstrumentsId() == null){
  166. row.setHasInstrumentsId("否");
  167. }else {
  168. row.setHasInstrumentsId("是");
  169. }
  170. }
  171. OutputStream outputStream = response.getOutputStream();
  172. HSSFWorkbook workbook = null;
  173. try {
  174. String[] header = {"分部", "合作单位编号", "合作单位", "学员编号", "学员姓名", "联系电话", "声部", "品牌", "型号", "是否置换乐器"};
  175. String[] body = {"organName", "cooperationOrganId", "cooperationOrganName", "userId", "userName", "mobileNo", "subjectName", "brand", "specification","hasInstrumentsId"};
  176. workbook = POIUtil.exportExcel(header, body, pageList.getRows());
  177. response.setContentType("application/octet-stream");
  178. response.setHeader("Content-Disposition", "attachment;filename=replacement-" + DateUtil.getDate(new Date()) + ".xls");
  179. response.flushBuffer();
  180. outputStream = response.getOutputStream();
  181. workbook.write(outputStream);
  182. outputStream.flush();
  183. workbook.close();
  184. } catch (Exception e) {
  185. e.printStackTrace();
  186. } finally {
  187. if (outputStream != null) {
  188. try {
  189. workbook.close();
  190. outputStream.close();
  191. } catch (IOException e) {
  192. e.printStackTrace();
  193. }
  194. }
  195. }
  196. }
  197. }