ReleaseUserTask.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  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 org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.bind.annotation.RequestMethod;
  11. import com.goafanti.common.model.User;
  12. import com.goafanti.common.utils.LoggerUtils;
  13. import com.goafanti.customer.bo.LockingReleaseBo;
  14. import com.goafanti.customer.service.CustomerService;
  15. import com.goafanti.user.service.UserService;
  16. @Component
  17. //@Controller
  18. public class ReleaseUserTask {
  19. @Resource
  20. private CustomerService customerServiceImpl;
  21. @Resource
  22. private UserService userServiceImpl;
  23. int pointsDataLimit=100;
  24. /**
  25. * 每天凌晨一点将客户和业务转为待释放
  26. */
  27. @Scheduled(cron = "0 0 12 * * ?")
  28. // @RequestMapping(value = "/open/updateUser", method = RequestMethod.GET)
  29. public void updateUser(){
  30. try {
  31. List<User> userList = userServiceImpl.selectUserByRoleName("营销员","营销经理");
  32. List<LockingReleaseBo> lockUserList = new ArrayList<LockingReleaseBo>();
  33. List<LockingReleaseBo> lockBusinessList = new ArrayList<LockingReleaseBo>();
  34. List<LockingReleaseBo> userTmpList = null;
  35. List<LockingReleaseBo> businessTmpList = null;
  36. for(User u : userList){
  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. List<LockingReleaseBo> newList=new ArrayList<LockingReleaseBo>();
  45. if (lockUserList.size()>0) {
  46. for(int i=0;i<lockUserList.size();i++){
  47. newList.add(lockUserList.get(i));
  48. if(pointsDataLimit == newList.size()||i == lockUserList.size()-1){
  49. if(newList.size()>0) customerServiceImpl.updatePendingReleaseLock(newList);
  50. newList.clear();
  51. Thread.sleep(2000);
  52. }
  53. }
  54. }
  55. if (lockBusinessList.size()>0) {
  56. for(int i=0;i<lockBusinessList.size();i++){
  57. newList.add(lockBusinessList.get(i));
  58. if(pointsDataLimit == newList.size()||i == lockBusinessList.size()-1){
  59. if(newList.size()>0) customerServiceImpl.updatePendingReleaseLock(newList);
  60. newList.clear();
  61. Thread.sleep(2000);
  62. }
  63. }
  64. }
  65. /*if(lockUserList.size()>0) customerServiceImpl.updateReleaseLock(lockUserList,releaseTime);
  66. if(lockBusinessList.size()>0) customerServiceImpl.updateReleaseLock(lockBusinessList,releaseTime);
  67. if(lockUserList.size()>0) userServiceImpl.updateReleaseLock(lockUserList);*/
  68. } catch (Exception e) {
  69. LoggerUtils.error(getClass(), "=============================================");
  70. LoggerUtils.error(getClass(), "客户标记待释放失败", e);
  71. LoggerUtils.error(getClass(), "=============================================");
  72. }
  73. }
  74. /**
  75. * 将待释放客户与业务释放
  76. */
  77. @Scheduled(cron = "0 0 13 * * ?")
  78. // @RequestMapping(value = "/open/releaseUser", method = RequestMethod.GET)
  79. public void releaseUser(){
  80. Date releaseTime = new Date();
  81. try {
  82. List<LockingReleaseBo> lockList=customerServiceImpl.selectPendinglockUserList();
  83. List<LockingReleaseBo> newList=new ArrayList<>();
  84. List<LockingReleaseBo> userList=new ArrayList<>();
  85. if (lockList.size()>0) {
  86. for(int i=0;i<lockList.size();i++){
  87. newList.add(lockList.get(i));
  88. if(pointsDataLimit == newList.size()||i == lockList.size()-1){
  89. if(newList.size()>0) customerServiceImpl.updateReleaseLock(newList,releaseTime);
  90. newList.clear();
  91. Thread.sleep(2000);
  92. }
  93. if (lockList.get(i).getType().equals("0")) {
  94. userList.add(lockList.get(i));
  95. if(pointsDataLimit == userList.size()||i == lockList.size()-1){
  96. if(userList.size()>0) userServiceImpl.updateReleaseLock(userList);
  97. }
  98. }
  99. }
  100. }
  101. } catch (Exception e) {
  102. LoggerUtils.error(getClass(), "=============================================");
  103. LoggerUtils.error(getClass(), "客户释放失败", e);
  104. LoggerUtils.error(getClass(), "=============================================");
  105. }
  106. }
  107. }