UserClassService.java 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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. * 合并用户信息,将old转移至new
  23. * @param oldUserId
  24. * @param newUserId
  25. */
  26. public void mergeUser(Number oldUserId, Integer newUserId){
  27. Example example = new Example(UserClass.class);
  28. example.and(
  29. example.createCriteria().andEqualTo("userId", oldUserId)
  30. );
  31. update(userClassMapper, example, UserClass.builder().userId(newUserId).build());
  32. }
  33. /**
  34. * 获取用户课程列表
  35. * @param userId
  36. * @return
  37. */
  38. public List<UserClass> getByUser(Number userId){
  39. Example example = new Example(UserService.class);
  40. example.and(
  41. example.createCriteria()
  42. .andEqualTo("userId", userId)
  43. .andGreaterThanOrEqualTo("startTime", new Date())
  44. .andLessThan("expireTime", new Date())
  45. );
  46. return select(userClassMapper, example);
  47. }
  48. public Map<Object, Collection<UserClass>> mapByUser(Collection userIds, Boolean time){
  49. Map<Object, Collection<UserClass>> relationMap = new HashMap<>();
  50. if(userIds.size() == 0) return relationMap;
  51. Example example = new Example(UserService.class);
  52. example.and(
  53. example.createCriteria()
  54. .andIn("userId", userIds)
  55. );
  56. if (time){
  57. example.and(
  58. example.createCriteria()
  59. .andGreaterThanOrEqualTo("startTime", new Date())
  60. .andLessThan("expireTime", new Date())
  61. );
  62. }
  63. List<UserClass> userClassList = select(userClassMapper, example);
  64. if(userClassList.size() == 0) return relationMap;
  65. for(UserClass row: userClassList){
  66. List<UserClass> l;
  67. Number userId = row.getUserId();
  68. if(!relationMap.containsKey(userId)){
  69. l = new ArrayList<>();
  70. relationMap.put(userId, l);
  71. }else{
  72. l = (List<UserClass>)relationMap.get(userId);
  73. }
  74. l.add(row);
  75. }
  76. return relationMap;
  77. }
  78. public UserClass add(UserClass cls){
  79. int result = insert(userClassMapper, cls);
  80. cls = one(userClassMapper, cls.getId());
  81. if(cls == null){
  82. throw new SystemException("课程记录添加失败");
  83. }
  84. return cls;
  85. }
  86. public UserClass edit(UserClass cls){
  87. UserClass in = one(userClassMapper, cls.getId());
  88. if(in == null){
  89. throw new ParameterException("课程记录不存在");
  90. }
  91. int result = update(userClassMapper, cls);
  92. return cls;
  93. }
  94. public boolean delete(Number id){
  95. UserClass in = one(userClassMapper, id);
  96. if(in == null){
  97. throw new ParameterException("课程记录不存在");
  98. }
  99. int result = delete(userClassMapper, id);
  100. return result > 0;
  101. }
  102. public UserClass get(Number id){
  103. UserClass in = one(userClassMapper, id);
  104. if(in == null){
  105. throw new ParameterException("课程记录不存在");
  106. }
  107. return in;
  108. }
  109. public Page<UserClass> select(int page, int pageSize){
  110. return select(userClassMapper, page, pageSize);
  111. }
  112. public List<UserClass> select(Collection ids){
  113. return select(userClassMapper, ids);
  114. }
  115. }