UserClassService.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. package com.qxgmat.service.inline;
  2. import com.github.pagehelper.Page;
  3. import com.nuliji.tools.AbstractService;
  4. import com.nuliji.tools.exception.ParameterException;
  5. import com.nuliji.tools.exception.SystemException;
  6. import com.nuliji.tools.mybatis.Example;
  7. import com.qxgmat.data.dao.UserClassMapper;
  8. import com.qxgmat.data.dao.entity.*;
  9. import org.slf4j.Logger;
  10. import org.slf4j.LoggerFactory;
  11. import org.springframework.stereotype.Service;
  12. import javax.annotation.Resource;
  13. import java.util.*;
  14. @Service
  15. public class UserClassService extends AbstractService {
  16. private static final Logger logger = LoggerFactory.getLogger(UserClassService.class);
  17. @Resource
  18. private UserClassMapper userClassMapper;
  19. @Resource
  20. private UserPayService userPayService;
  21. // 开通服务
  22. public boolean used(UserPay pay){
  23. // todo 分析时长
  24. add(UserClass.builder().userId(pay.getUserId()).courseId(Integer.valueOf(pay.getModuleExtend())).build());
  25. return true;
  26. }
  27. /**
  28. * 合并用户信息,将old转移至new
  29. * @param oldUserId
  30. * @param newUserId
  31. */
  32. public void mergeUser(Number oldUserId, Integer newUserId){
  33. Example example = new Example(UserClass.class);
  34. example.and(
  35. example.createCriteria().andEqualTo("userId", oldUserId)
  36. );
  37. update(userClassMapper, example, UserClass.builder().userId(newUserId).build());
  38. }
  39. /**
  40. * 获取用户课程列表
  41. * @param userId
  42. * @return
  43. */
  44. public List<UserClass> getByUser(Number userId){
  45. Example example = new Example(UserService.class);
  46. example.and(
  47. example.createCriteria()
  48. .andEqualTo("userId", userId)
  49. .andGreaterThanOrEqualTo("startTime", new Date())
  50. .andLessThan("expireTime", new Date())
  51. );
  52. return select(userClassMapper, example);
  53. }
  54. public Map<Object, Collection<UserClass>> mapByUser(Collection userIds, Boolean time){
  55. Map<Object, Collection<UserClass>> relationMap = new HashMap<>();
  56. if(userIds.size() == 0) return relationMap;
  57. Example example = new Example(UserService.class);
  58. example.and(
  59. example.createCriteria()
  60. .andIn("userId", userIds)
  61. );
  62. if (time){
  63. example.and(
  64. example.createCriteria()
  65. .andGreaterThanOrEqualTo("startTime", new Date())
  66. .andLessThan("expireTime", new Date())
  67. );
  68. }
  69. List<UserClass> userClassList = select(userClassMapper, example);
  70. if(userClassList.size() == 0) return relationMap;
  71. for(UserClass row: userClassList){
  72. List<UserClass> l;
  73. Number userId = row.getUserId();
  74. if(!relationMap.containsKey(userId)){
  75. l = new ArrayList<>();
  76. relationMap.put(userId, l);
  77. }else{
  78. l = (List<UserClass>)relationMap.get(userId);
  79. }
  80. l.add(row);
  81. }
  82. return relationMap;
  83. }
  84. public UserClass add(UserClass cls){
  85. int result = insert(userClassMapper, cls);
  86. cls = one(userClassMapper, cls.getId());
  87. if(cls == null){
  88. throw new SystemException("课程记录添加失败");
  89. }
  90. return cls;
  91. }
  92. public UserClass edit(UserClass cls){
  93. UserClass in = one(userClassMapper, cls.getId());
  94. if(in == null){
  95. throw new ParameterException("课程记录不存在");
  96. }
  97. int result = update(userClassMapper, cls);
  98. return cls;
  99. }
  100. public boolean delete(Number id){
  101. UserClass in = one(userClassMapper, id);
  102. if(in == null){
  103. throw new ParameterException("课程记录不存在");
  104. }
  105. int result = delete(userClassMapper, id);
  106. return result > 0;
  107. }
  108. public UserClass get(Number id){
  109. UserClass in = one(userClassMapper, id);
  110. if(in == null){
  111. throw new ParameterException("课程记录不存在");
  112. }
  113. return in;
  114. }
  115. public Page<UserClass> select(int page, int pageSize){
  116. return select(userClassMapper, page, pageSize);
  117. }
  118. public List<UserClass> select(Collection ids){
  119. return select(userClassMapper, ids);
  120. }
  121. }