TbActivityServiceImpl.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. package com.huike.clues.service.impl;
  2. import java.text.SimpleDateFormat;
  3. import java.util.*;
  4. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  5. import com.huike.clues.task.ActivityTask;
  6. import com.huike.common.utils.uuid.UUIDUtils;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import org.springframework.transaction.annotation.Transactional;
  10. import com.huike.clues.domain.TbActivity;
  11. import com.huike.clues.mapper.TbActivityMapper;
  12. import com.huike.clues.service.ITbActivityService;
  13. import com.huike.common.constant.Constants;
  14. import com.huike.common.core.redis.RedisCache;
  15. import com.huike.common.utils.DateUtils;
  16. import com.huike.common.utils.StringUtils;
  17. /**
  18. * 活动管理Service业务层处理
  19. * @date 2021-04-01
  20. */
  21. @Service
  22. public class TbActivityServiceImpl implements ITbActivityService {
  23. @Autowired
  24. private TbActivityMapper tbActivityMapper;
  25. @Autowired
  26. private RedisCache redisCache;
  27. @Autowired
  28. private ActivityTask activityTask;
  29. /**
  30. * 查询活动管理
  31. *
  32. * @param id 活动管理ID
  33. * @return 活动管理
  34. */
  35. @Override
  36. public TbActivity selectTbActivityById(Long id)
  37. {
  38. return tbActivityMapper.selectTbActivityById(id);
  39. }
  40. @Override
  41. public TbActivity selectTbActivityByCode(String code) {
  42. return tbActivityMapper.selectTbActivityByCode(code);
  43. }
  44. /**
  45. * 查询活动管理列表
  46. *
  47. * @param tbActivity 活动管理
  48. * @return 活动管理
  49. */
  50. @Override
  51. public List<TbActivity> selectTbActivityList(TbActivity tbActivity) {
  52. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  53. List<TbActivity> activities = tbActivityMapper.selectList(sdf.format(new Date()));
  54. for (TbActivity activity : activities) {
  55. activityTask.finish(Long.toString(activity.getId()));
  56. }
  57. return tbActivityMapper.selectTbActivityList(tbActivity);
  58. }
  59. /**
  60. * 新增活动管理
  61. *
  62. * @param tbActivity 活动管理
  63. * @return 结果
  64. */
  65. @Override
  66. @Transactional
  67. public int insertTbActivity(TbActivity tbActivity){
  68. tbActivity.setCreateTime(DateUtils.getNowDate());
  69. tbActivity.setCode(getCode());
  70. tbActivity.setStatus("2");
  71. int rows= tbActivityMapper.insertTbActivity(tbActivity);
  72. loadAllActivityCode();
  73. return rows;
  74. }
  75. /**
  76. * 修改活动管理
  77. *
  78. * @param tbActivity 活动管理
  79. * @return 结果
  80. */
  81. @Override
  82. public int updateTbActivity(TbActivity tbActivity){
  83. TbActivity dbActivity= tbActivityMapper.selectTbActivityById(tbActivity.getId());
  84. int rows= tbActivityMapper.updateTbActivity(tbActivity);
  85. //结束时间修改任务
  86. if(tbActivity.getEndTime()!=null&&!tbActivity.getEndTime().equals(dbActivity.getEndTime())){
  87. String target="activityTask.finish('"+tbActivity.getId()+"')";
  88. String jobName="活动结束任务id_"+tbActivity.getId();
  89. }
  90. return rows;
  91. }
  92. /**
  93. * 批量删除活动管理
  94. *
  95. * @param ids 需要删除的活动管理ID
  96. * @return 结果
  97. */
  98. @Override
  99. public int deleteTbActivityByIds(Long[] ids)
  100. {
  101. return tbActivityMapper.deleteTbActivityByIds(ids);
  102. }
  103. /**
  104. * 删除活动管理信息
  105. *
  106. * @param id 活动管理ID
  107. * @return 结果
  108. */
  109. @Override
  110. public int deleteTbActivityById(Long id)
  111. {
  112. TbActivity tbActivity = tbActivityMapper.selectTbActivityById(id);
  113. int rows=tbActivityMapper.deleteTbActivityById(id);
  114. return rows;
  115. }
  116. @Override
  117. public Map getCountByStatus() {
  118. return tbActivityMapper.getCountByStatus();
  119. }
  120. /**
  121. * 加载活动编号到缓存中
  122. */
  123. public void loadAllActivityCode() {
  124. List<String> codeList= tbActivityMapper.selectAllCode();
  125. Set<String> set= new HashSet<>(codeList);
  126. redisCache.setCacheSet(Constants.ACT_CODE_KEY, set);
  127. }
  128. /**
  129. * 生成活动编号
  130. * @return
  131. */
  132. private String getCode(){
  133. //随机8位编码
  134. String code= StringUtils.getRandom(8);
  135. //店铺校验
  136. Set<String> codeSets = redisCache.getCacheSet(Constants.ACT_CODE_KEY);
  137. if(codeSets.contains(code)){
  138. return getCode();
  139. }
  140. return code;
  141. }
  142. }