RestrictProjectServiceImpl.java 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. package com.goafanti.business.service.impl;
  2. import com.goafanti.business.bo.InputRestrictProject;
  3. import com.goafanti.business.bo.OutRestrictProject;
  4. import com.goafanti.business.bo.RestrictProjectPageList;
  5. import com.goafanti.business.service.RestrictProjectService;
  6. import com.goafanti.common.constant.AFTConstants;
  7. import com.goafanti.common.dao.*;
  8. import com.goafanti.common.error.BusinessException;
  9. import com.goafanti.common.model.*;
  10. import com.goafanti.core.mybatis.BaseMybatisDao;
  11. import com.goafanti.core.mybatis.page.Pagination;
  12. import com.goafanti.core.shiro.token.TokenManager;
  13. import com.goafanti.customer.bo.BusinessListBo;
  14. import com.goafanti.customer.bo.FollowBusinessBo;
  15. import org.springframework.stereotype.Service;
  16. import javax.annotation.Resource;
  17. import java.text.SimpleDateFormat;
  18. import java.time.LocalDateTime;
  19. import java.time.temporal.ChronoUnit;
  20. import java.util.*;
  21. @Service
  22. public class RestrictProjectServiceImpl extends BaseMybatisDao<RestrictProjectMapper> implements RestrictProjectService {
  23. @Resource
  24. private RestrictProjectMapper restrictProjectMapper;
  25. @Resource
  26. private UserTransferLogMapper userTransferLogMapper;
  27. @Resource
  28. private UserBusinessMapper userBusinessMapper;
  29. @Resource
  30. private UserMapper userMapper;
  31. @Resource
  32. private AdminMapper adminMapper;
  33. @Override
  34. public int add(InputRestrictProject in) {
  35. String aid = TokenManager.getAdminId();
  36. in.setAid(aid);
  37. in.setType(1);
  38. in.setLockTime(new Date());
  39. RestrictProject use = restrictProjectMapper.selectByPid(in);
  40. if (use != null && use.getType() != 0){
  41. throw new BusinessException("该项目已存在");
  42. }
  43. if(use ==null){
  44. restrictProjectMapper.insertSelective(in);
  45. }else if (use.getType() == 0){
  46. in.setId(use.getId());
  47. restrictProjectMapper.updateByPrimaryKeySelective(in);
  48. }
  49. UserBusiness ub=new UserBusiness();
  50. ub.setId(UUID.randomUUID().toString());
  51. ub.setAid(aid);
  52. ub.setUid(in.getUid());
  53. ub.setBusinessProjectId(in.getPid());
  54. ub.setCustomerStatus(in.getCustomerStatus());
  55. ub.setFollowSituation(in.getFollowSituation());
  56. ub.setRemarks("领取限定项目触发");
  57. userBusinessMapper.insertSelective(ub);
  58. addUserLog(in,0);
  59. return 1;
  60. }
  61. /**
  62. *
  63. * @param i 0=新增 1=移除
  64. */
  65. private void addUserLog(RestrictProject in, int i) {
  66. addUserLog(in,i,null);
  67. }
  68. @Override
  69. public Object list(InputRestrictProject in) {
  70. in.setAid(TokenManager.getAdminId());
  71. String aname=null;
  72. List<OutRestrictProject> list = restrictProjectMapper.selectByUidAndAid(in);
  73. User u = userMapper.selectByPrimaryKey(in.getUid());
  74. for (OutRestrictProject e : list) {
  75. if (e.getType()==null){
  76. e.setType(0);
  77. }
  78. if (!in.getAid().equals(AFTConstants.CAOJIN_AID)){
  79. if (u.getAid()!=null&&u.getType()==0&&u.getAid().equals(AFTConstants.CAOJIN_AID)){
  80. e.setType(1);
  81. if (aname==null){
  82. Admin admin = adminMapper.selectByPrimaryKey(AFTConstants.CAOJIN_AID);
  83. aname =admin.getName();
  84. }
  85. e.setAdminName(aname);
  86. }
  87. }
  88. }
  89. return list;
  90. }
  91. @Override
  92. public Object update(Integer id,Integer type,String takeAid) {
  93. Date date = new Date();
  94. RestrictProject in = new RestrictProject();
  95. RestrictProject use = restrictProjectMapper.selectByPrimaryKey(id);
  96. in.setId(id);
  97. if (type==0){
  98. in.setReleaseTime(date);
  99. in.setType(0);
  100. addUserLog(use,1);
  101. }else if (type==1){
  102. in.setLockTime(date);
  103. in.setAid(takeAid);
  104. in.setPid(use.getPid());
  105. in.setUid(use.getUid());
  106. addUserLog(use,2,takeAid);
  107. }
  108. return restrictProjectMapper.updateByPrimaryKeySelective(in);
  109. }
  110. @Override
  111. public Object pageList(InputRestrictProject in) {
  112. Map<String,Object> param = new HashMap<>();
  113. if (in.getUserName()!=null)param.put("userName",in.getUserName());
  114. if (in.getType()!=null)param.put("type",in.getType());
  115. if (in.getStartTime()!=null)param.put("startTime",in.getStartTime());
  116. if (in.getEndTime()!=null)param.put("endTime",in.getEndTime()+" 23:59:59");
  117. if (in.getProjectName()!=null)param.put("projectName",in.getProjectName());
  118. if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)){
  119. param.put("aid",TokenManager.getAdminId());
  120. }
  121. Pagination<RestrictProjectPageList> page =
  122. (Pagination<RestrictProjectPageList>) findPage("RestrictProjectList", "RestrictProjectCount",
  123. param, in.getPageNo(), in.getPageSize());
  124. pushPageList((List<RestrictProjectPageList>)page.getList());
  125. return page;
  126. }
  127. @Override
  128. public Object getFollowDetails(String uid) {
  129. User user = userMapper.findUserAccountDetail(uid);
  130. FollowBusinessBo fbb = new FollowBusinessBo();
  131. SimpleDateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDDHHMMSS);
  132. fbb.setFollowTime(format.format(new Date()));
  133. fbb.setIdentifyName(user.getIdentifyName());
  134. fbb.setUid(uid);
  135. List<BusinessListBo> businessListBos = userBusinessMapper.selectBusinessByUAid(uid, TokenManager.getAdminId());
  136. fbb.setUserBusinessList(businessListBos);
  137. return fbb;
  138. }
  139. private void pushPageList(List<RestrictProjectPageList> list) {
  140. LocalDateTime now = LocalDateTime.now();
  141. now=now.withHour(0).withMinute(0).withSecond(0).withNano(0);
  142. for (RestrictProjectPageList e : list) {
  143. LocalDateTime lockTime = e.getLockTime().toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDateTime();
  144. lockTime=lockTime.withHour(0).withMinute(0).withSecond(0).withNano(0);
  145. if (e.getType()==1){
  146. LocalDateTime endTime = lockTime.plusDays(30);
  147. long between = ChronoUnit.DAYS.between(now, endTime);
  148. e.setPrivateDays(between>0?(int)between:0);
  149. }else if (e.getType()==2){
  150. LocalDateTime endTime = lockTime.plusDays(270);
  151. long between = ChronoUnit.DAYS.between(now, endTime);
  152. e.setSignDays(between>0?(int)between:0);
  153. }
  154. }
  155. }
  156. private void addUserLog(RestrictProject in, int i, String takeAid) {
  157. UserTransferLog log = new UserTransferLog();
  158. log.setUid(in.getUid());
  159. log.setPid(in.getPid());
  160. if (i == 0){
  161. log.setAid(in.getAid());
  162. log.setType(15);
  163. } else if (i == 1) {
  164. log.setAid(in.getAid());
  165. log.setType(16);
  166. }else if (i == 2) {
  167. log.setAid(TokenManager.getAdminId());
  168. log.setTakeAid(takeAid);
  169. log.setType(17);
  170. }
  171. userTransferLogMapper.insertSelective(log);
  172. }
  173. }