ReleaseUserTask.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. package com.goafanti.common.task;
  2. import java.io.UnsupportedEncodingException;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.List;
  6. import java.util.UUID;
  7. import javax.annotation.Resource;
  8. import javax.mail.MessagingException;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.scheduling.annotation.Scheduled;
  11. import org.springframework.stereotype.Component;
  12. import com.goafanti.common.bo.EmailBo;
  13. import com.goafanti.common.constant.AFTConstants;
  14. import com.goafanti.common.dao.NoticeMapper;
  15. import com.goafanti.common.enums.NoticeStatus;
  16. import com.goafanti.common.model.Notice;
  17. import com.goafanti.common.model.User;
  18. import com.goafanti.common.utils.LoggerUtils;
  19. import com.goafanti.common.utils.SendEmailUtil;
  20. import com.goafanti.common.utils.StringUtils;
  21. import com.goafanti.customer.bo.LockingReleaseBo;
  22. import com.goafanti.customer.service.CustomerService;
  23. import com.goafanti.user.service.UserService;
  24. @Component
  25. //@Controller
  26. public class ReleaseUserTask {
  27. @Resource
  28. private CustomerService customerServiceImpl;
  29. @Resource
  30. private UserService userServiceImpl;
  31. @Autowired
  32. private NoticeMapper noticeMapper;
  33. int pointsDataLimit=50;
  34. /**
  35. * 每天凌晨一点将客户和业务转为待释放
  36. */
  37. @Scheduled(cron = "0 0 1 * * ?")
  38. // @RequestMapping(value = "/open/updateUser", method = RequestMethod.GET)
  39. public void updateUser(){
  40. LoggerUtils.debug(getClass(), "==============客户释放开始============");
  41. Date releaseTime = new Date();
  42. try {
  43. List<User> userList = userServiceImpl.selectUserByRoleName("营销员","营销经理");
  44. List<LockingReleaseBo> lockUserList = new ArrayList<LockingReleaseBo>();
  45. List<LockingReleaseBo> lockBusinessList = new ArrayList<LockingReleaseBo>();
  46. List<LockingReleaseBo> userTmpList = null;
  47. List<LockingReleaseBo> businessTmpList = null;
  48. if (userList!=null&&!userList.isEmpty()) {
  49. for(User u : userList){
  50. if(StringUtils.isNotBlank(u.getId())) {
  51. userTmpList = customerServiceImpl.selectWaitReleaseCustomer(u.getId());
  52. // userTmpList = customerServiceImpl.selectWaitReleaseCustomer("1");
  53. lockUserList.addAll(userTmpList);
  54. businessTmpList = customerServiceImpl.selectWaitReleaseBusiness(u.getId());
  55. // businessTmpList = customerServiceImpl.selectWaitReleaseBusiness("1");
  56. lockBusinessList.addAll(businessTmpList);
  57. }
  58. }
  59. }
  60. List<LockingReleaseBo> newList=new ArrayList<LockingReleaseBo>();
  61. if (lockUserList.size()>0) {
  62. for(int i=0;i<lockUserList.size();i++){
  63. newList.add(lockUserList.get(i));
  64. if(pointsDataLimit == newList.size()||i == lockUserList.size()-1){
  65. if(newList.size()>0) customerServiceImpl.updatePendingReleaseLock(newList);
  66. newList.clear();
  67. Thread.sleep(2000);
  68. }
  69. }
  70. }
  71. if (lockBusinessList.size()>0) {
  72. for(int i=0;i<lockBusinessList.size();i++){
  73. newList.add(lockBusinessList.get(i));
  74. if(pointsDataLimit == newList.size()||i == lockBusinessList.size()-1){
  75. if(newList.size()>0) customerServiceImpl.updatePendingReleaseLock(newList);
  76. newList.clear();
  77. Thread.sleep(2000);
  78. }
  79. }
  80. }
  81. List<LockingReleaseBo> lockList=customerServiceImpl.selectPendinglockUserList();
  82. if (lockList.size()>0)customerServiceImpl.updateReleaseLock(releaseTime);
  83. /*if(lockUserList.size()>0) customerServiceImpl.updateReleaseLock(lockUserList,releaseTime);
  84. if(lockBusinessList.size()>0) customerServiceImpl.updateReleaseLock(lockBusinessList,releaseTime);
  85. if(lockUserList.size()>0) userServiceImpl.updateReleaseLock(lockUserList);*/
  86. } catch (Exception e) {
  87. Notice n =new Notice(UUID.randomUUID().toString(),new Date(),0,"1",NoticeStatus.TASK_PATENT_ERROR.getCode(),"==============客户释放失败================");
  88. noticeMapper.insert(n);
  89. EmailBo emailBo = new EmailBo( "释放客户失败", AFTConstants.ADMIN_EMAIL, "超管", "平台", "系统", "释放客户失败");
  90. try {
  91. SendEmailUtil.getInstance().send(emailBo);
  92. } catch (UnsupportedEncodingException | MessagingException e1) {
  93. e1.printStackTrace();
  94. }
  95. LoggerUtils.error(getClass(), "====================客户释放失败=================");
  96. LoggerUtils.error(getClass(), "客户释放失败", e);
  97. }
  98. LoggerUtils.debug(getClass(), "==============客户释放完成============");
  99. }
  100. }