ReleaseUserTask.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package com.goafanti.common.task;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4. import java.util.List;
  5. import javax.annotation.Resource;
  6. import org.springframework.scheduling.annotation.Scheduled;
  7. import org.springframework.stereotype.Component;
  8. import com.goafanti.common.model.User;
  9. import com.goafanti.common.utils.LoggerUtils;
  10. import com.goafanti.common.utils.StringUtils;
  11. import com.goafanti.customer.bo.LockingReleaseBo;
  12. import com.goafanti.customer.service.CustomerService;
  13. import com.goafanti.user.service.UserService;
  14. @Component
  15. //@Controller
  16. public class ReleaseUserTask {
  17. @Resource
  18. private CustomerService customerServiceImpl;
  19. @Resource
  20. private UserService userServiceImpl;
  21. int pointsDataLimit=50;
  22. /**
  23. * 每天凌晨一点将客户和业务转为待释放
  24. */
  25. @Scheduled(cron = "0 0 1 * * ?")
  26. // @RequestMapping(value = "/open/updateUser", method = RequestMethod.GET)
  27. public void updateUser(){
  28. Date releaseTime = new Date();
  29. try {
  30. List<User> userList = userServiceImpl.selectUserByRoleName("营销员","营销经理");
  31. List<LockingReleaseBo> lockUserList = new ArrayList<LockingReleaseBo>();
  32. List<LockingReleaseBo> lockBusinessList = new ArrayList<LockingReleaseBo>();
  33. List<LockingReleaseBo> userTmpList = null;
  34. List<LockingReleaseBo> businessTmpList = null;
  35. for(User u : userList){
  36. if(StringUtils.isNotBlank(u.getId())) {
  37. userTmpList = customerServiceImpl.selectWaitReleaseCustomer(u.getId());
  38. // userTmpList = customerServiceImpl.selectWaitReleaseCustomer("1");
  39. lockUserList.addAll(userTmpList);
  40. businessTmpList = customerServiceImpl.selectWaitReleaseBusiness(u.getId());
  41. // businessTmpList = customerServiceImpl.selectWaitReleaseBusiness("1");
  42. lockBusinessList.addAll(businessTmpList);
  43. }
  44. }
  45. List<LockingReleaseBo> newList=new ArrayList<LockingReleaseBo>();
  46. if (lockUserList.size()>0) {
  47. for(int i=0;i<lockUserList.size();i++){
  48. newList.add(lockUserList.get(i));
  49. if(pointsDataLimit == newList.size()||i == lockUserList.size()-1){
  50. if(newList.size()>0) customerServiceImpl.updatePendingReleaseLock(newList);
  51. newList.clear();
  52. Thread.sleep(2000);
  53. }
  54. }
  55. }
  56. if (lockBusinessList.size()>0) {
  57. for(int i=0;i<lockBusinessList.size();i++){
  58. newList.add(lockBusinessList.get(i));
  59. if(pointsDataLimit == newList.size()||i == lockBusinessList.size()-1){
  60. if(newList.size()>0) customerServiceImpl.updatePendingReleaseLock(newList);
  61. newList.clear();
  62. Thread.sleep(2000);
  63. }
  64. }
  65. }
  66. List<LockingReleaseBo> lockList=customerServiceImpl.selectPendinglockUserList();
  67. if (lockList.size()>0)customerServiceImpl.updateReleaseLock(releaseTime);
  68. /*if(lockUserList.size()>0) customerServiceImpl.updateReleaseLock(lockUserList,releaseTime);
  69. if(lockBusinessList.size()>0) customerServiceImpl.updateReleaseLock(lockBusinessList,releaseTime);
  70. if(lockUserList.size()>0) userServiceImpl.updateReleaseLock(lockUserList);*/
  71. } catch (Exception e) {
  72. LoggerUtils.error(getClass(), "=============================================");
  73. LoggerUtils.error(getClass(), "客户释放失败", e);
  74. LoggerUtils.error(getClass(), "=============================================");
  75. }
  76. }
  77. }