JmTuangouService.java 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. package com.bofeng.service;
  2. import com.baomidou.mybatisplus.toolkit.IdWorker;
  3. import com.bofeng.JwtHelper;
  4. import com.bofeng.dao.JmTuangouDao;
  5. import com.bofeng.dao.UserOpenMapper;
  6. import com.bofeng.dao.YeweihuiSysOwnerMapper;
  7. import com.bofeng.dao.YeweihuiUserRoleMapper;
  8. import com.bofeng.entity.JmTuangou;
  9. import com.bofeng.entity.UserOpen;
  10. import com.yvan.PageDb;
  11. import org.apache.commons.beanutils.BeanUtils;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Propagation;
  15. import org.springframework.transaction.annotation.Transactional;
  16. import java.lang.reflect.InvocationTargetException;
  17. import java.text.ParseException;
  18. import java.text.SimpleDateFormat;
  19. import java.util.*;
  20. @Service
  21. @Transactional(readOnly = true)
  22. public class JmTuangouService {
  23. @Autowired
  24. private BuyService buyService;
  25. @Autowired
  26. private JmTuangouDao jmTuangouDao;
  27. @Autowired
  28. private YeweihuiUserRoleMapper yeweihuiUserRoleMapper;
  29. @Autowired
  30. private YeweihuiSysOwnerMapper yeweihuiSysOwnerMapper;
  31. @Autowired
  32. private EpiTemplateMessageService epiTemplateMessageService;
  33. @Autowired
  34. private UserOpenMapper userOpenMapper;
  35. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  36. public Integer tuangouPublish(JmTuangou jmTuangou) {
  37. jmTuangou.setJmId(IdWorker.getId());
  38. Long propertyId = yeweihuiUserRoleMapper.queryPropertyIdByUserId(jmTuangou.getUserId());
  39. Long uptownId = yeweihuiSysOwnerMapper.queryUptownIdByUserId(propertyId);
  40. jmTuangou.setUptownId(uptownId);
  41. jmTuangou.setTgStatus(1);
  42. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  43. Date tgEndTime = new Date();
  44. Date tgDeliverTime = new Date();
  45. try {
  46. tgEndTime = sdf.parse(jmTuangou.getEndTime());
  47. tgDeliverTime = sdf.parse(jmTuangou.getDeliverTime());
  48. } catch (ParseException e) {
  49. e.printStackTrace();
  50. }
  51. jmTuangou.setTgEndTime(tgEndTime);
  52. jmTuangou.setTgDeliverTime(tgDeliverTime);
  53. jmTuangou.setUserCreate(jmTuangou.getUserId());
  54. jmTuangou.setTimeCreate(new Date());
  55. jmTuangou.setUserUpdate(jmTuangou.getUserId());
  56. jmTuangou.setTimeUpdate(new Date());
  57. Integer success = jmTuangouDao.insert(jmTuangou);
  58. if (success == 1) {
  59. List<UserOpen> userList = userOpenMapper.getUsersByUptownId(uptownId);
  60. for (UserOpen user : userList) {
  61. epiTemplateMessageService.tuangouSendRemindMessage(user.getUserId(), user.getOpenId(), tgEndTime);
  62. }
  63. }
  64. return success;
  65. }
  66. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  67. public Integer whepiTuangouPublish(String uptownIds, JmTuangou jmTuangou) throws InvocationTargetException, IllegalAccessException {
  68. Calendar cal = Calendar.getInstance();
  69. int moth = cal.get(Calendar.MONTH) + 1;
  70. int date = cal.get(Calendar.DAY_OF_MONTH);
  71. List<String> uptownIdArray = Arrays.asList(uptownIds.split(","));
  72. ArrayList tgList = new ArrayList();
  73. for (String uptownId : uptownIdArray) {
  74. jmTuangou.setJmId(IdWorker.getId());
  75. jmTuangou.setUptownId(Long.parseLong(uptownId));
  76. jmTuangou.setTgStatus(1);
  77. jmTuangou.setRoleType(1);
  78. jmTuangou.setUserCreate(JwtHelper.getUserId());
  79. jmTuangou.setUserUpdate(JwtHelper.getUserId());
  80. if (jmTuangou.getTgType() == 1) {
  81. jmTuangou.setTgTitle("食蔬采购需求统计(指挥部" + moth + "月" + date + "日)");
  82. } else if (jmTuangou.getTgType() == 2) {
  83. jmTuangou.setTgTitle("药品采购需求统计((指挥部" + moth + "月" + date + "日)");
  84. } else if (jmTuangou.getTgType() == 3) {
  85. jmTuangou.setTgTitle("医疗服务需求统计((指挥部" + moth + "月" + date + "日)");
  86. } else if (jmTuangou.getTgType() == 4) {
  87. jmTuangou.setTgTitle("生活用品需求统计((指挥部" + moth + "月" + date + "日)");
  88. } else if (jmTuangou.getTgType() == 5) {
  89. jmTuangou.setTgTitle("其他服务需求统计((指挥部" + moth + "月" + date + "日)");
  90. }
  91. jmTuangou.setUserId(JwtHelper.getUserId());
  92. if (jmTuangou.getTgMinNum() == null) {
  93. jmTuangou.setTgMinNum(0);
  94. }
  95. if (jmTuangou.getTgMaxNum() == null) {
  96. jmTuangou.setTgMaxNum(0);
  97. }
  98. JmTuangou jmTuangou1 = new JmTuangou();
  99. BeanUtils.copyProperties(jmTuangou1, jmTuangou);
  100. tgList.add(jmTuangou1);
  101. }
  102. Integer success = jmTuangouDao.insertJmTuangouList(tgList);
  103. if (success > 0) {
  104. Thread thread=new Thread(new Runnable() {
  105. @Override
  106. public void run() {
  107. for (String uptownId : uptownIdArray) {
  108. List<UserOpen> userList = userOpenMapper.getUsersByUptownId(Long.parseLong(uptownId));
  109. for (UserOpen user : userList) {
  110. epiTemplateMessageService.tuangouSendRemindMessage(user.getUserId(), user.getOpenId(), jmTuangou.getTgEndTime());
  111. }
  112. }
  113. }
  114. });
  115. thread.start();
  116. }
  117. return success;
  118. }
  119. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  120. public List<JmTuangou> queryTuangouListByTitle(Long userId, String title) {
  121. buyService.updateStatus();
  122. Long propertyId = yeweihuiUserRoleMapper.queryPropertyIdByUserId(userId);
  123. Long uptownId = yeweihuiSysOwnerMapper.queryUptownIdByUserId(propertyId);
  124. if (title.equals("")) {
  125. return jmTuangouDao.queryTuangouListByUptownId(uptownId);
  126. }
  127. return jmTuangouDao.queryTuangouListByUptownIdAndTitle(uptownId, title);
  128. }
  129. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  130. public List<JmTuangou> queryTuangouMyListByTitle(Long userId, String title) {
  131. buyService.updateStatus();
  132. if (title.equals("")) {
  133. return jmTuangouDao.queryTuangouListByUserId(userId);
  134. }
  135. return jmTuangouDao.queryTuangouListByUserIdAndTitle(userId, title);
  136. }
  137. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  138. public JmTuangou queryByJmId(Long jmId) {
  139. buyService.updateStatus();
  140. return jmTuangouDao.selectJmTuangouByJmId(jmId);
  141. }
  142. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  143. public List<JmTuangou> whepiTuangoulist(Long userId, String uptownIds, String queryProperties, Long status, PageDb pageDb) {
  144. buyService.updateStatus();
  145. return jmTuangouDao.whepiTuangoulist(userId, uptownIds, queryProperties, status, pageDb);
  146. }
  147. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  148. public Integer updateRemarkByJmId(Long jmId, Long status, String remark) {
  149. if (status == 0) {
  150. return jmTuangouDao.updateRemarkByJmId(jmId, remark);
  151. }
  152. if (remark.equals("")) {
  153. return jmTuangouDao.updateStatusByJmId(jmId, status);
  154. }
  155. return jmTuangouDao.updateStatusRemarkByJmId(jmId, status, remark);
  156. }
  157. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  158. public JmTuangou selectByUserId() {
  159. buyService.updateStatus();
  160. return jmTuangouDao.selectByUserId();
  161. }
  162. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  163. public JmTuangou getSelectOne(Long jmId) {
  164. buyService.updateStatus();
  165. return jmTuangouDao.getSelectOne(jmId);
  166. }
  167. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  168. public Integer zhihuibuUpdateStatus(Long jmId, Long status) {
  169. return jmTuangouDao.updateStatusByJmId(jmId, status);
  170. }
  171. @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED)
  172. public int updateStatus(Long jmId,Long tgStatus){
  173. return jmTuangouDao.updateStatusByJmId(jmId,tgStatus);
  174. }
  175. }