AchievementServiceImpl.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. package com.goafanti.achievement.service.impl;
  2. import java.text.ParseException;
  3. import java.util.Calendar;
  4. import java.util.Date;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.UUID;
  9. import org.apache.commons.lang3.StringUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.stereotype.Service;
  12. import com.goafanti.achievement.bo.AchievementListBo;
  13. import com.goafanti.achievement.service.AchievementService;
  14. import com.goafanti.common.constant.AFTConstants;
  15. import com.goafanti.common.dao.AchievementMapper;
  16. import com.goafanti.common.enums.AchievementReleaseStatus;
  17. import com.goafanti.common.enums.AchievementStatus;
  18. import com.goafanti.common.enums.DeleteStatus;
  19. import com.goafanti.common.enums.DemandReleaseStatus;
  20. import com.goafanti.common.enums.DemandStatus;
  21. import com.goafanti.common.model.Achievement;
  22. import com.goafanti.common.utils.DateUtils;
  23. import com.goafanti.core.mybatis.BaseMybatisDao;
  24. import com.goafanti.core.mybatis.page.Pagination;
  25. import com.goafanti.core.shiro.token.TokenManager;
  26. @Service
  27. public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> implements AchievementService {
  28. @Autowired
  29. private AchievementMapper achievementMapper;
  30. @SuppressWarnings("unchecked")
  31. @Override
  32. public Pagination<AchievementListBo> listAchievement(Integer serialNumber, String name, String keyword,
  33. Integer category, Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
  34. Integer releaseStatus, Integer pNo, Integer pSize) {
  35. if (pNo == null || pNo < 0) {
  36. pNo = 1;
  37. }
  38. if (pSize == null || pSize < 0) {
  39. pSize = 10;
  40. }
  41. return (Pagination<AchievementListBo>) findPage(
  42. "findManageAchievementListByPage", "findManageAchievementCount", disposeParams(serialNumber, name,
  43. keyword, category, ownerType, status, releaseDateStartDate, releaseDateEndDate, releaseStatus),
  44. pNo, pSize);
  45. }
  46. @Override
  47. public void saveAchievement(Achievement a) {
  48. a.setId(UUID.randomUUID().toString());
  49. a.setDeletedSign(DeleteStatus.UNDELETE.getCode());
  50. Calendar now = Calendar.getInstance();
  51. now.set(Calendar.MILLISECOND, 0);
  52. a.setStatus(AchievementStatus.CREATE.getCode());
  53. if (AchievementReleaseStatus.RELEASED.getCode().equals(a.getReleaseStatus())) {
  54. a.setReleaseDate(now.getTime());
  55. a.setStatus(AchievementStatus.ONGOING.getCode());
  56. }
  57. a.setCreateTime(now.getTime());
  58. achievementMapper.insert(a);
  59. }
  60. @Override
  61. public int updateAchievement(Achievement a) {
  62. Achievement aa = achievementMapper.selectByPrimaryKey(a.getId());
  63. if (AchievementReleaseStatus.RELEASED.getCode().equals(a.getReleaseStatus())
  64. && DemandReleaseStatus.UNRELEASE.getCode().equals(aa.getReleaseStatus())) {
  65. Calendar now = Calendar.getInstance();
  66. now.set(Calendar.MILLISECOND, 0);
  67. a.setReleaseDate(now.getTime());
  68. a.setStatus(AchievementStatus.ONGOING.getCode());
  69. }
  70. if (DemandReleaseStatus.UNRELEASE.getCode().equals(a.getReleaseStatus())
  71. && DemandReleaseStatus.RELEASED.getCode().equals(aa.getReleaseStatus())) {
  72. a.setStatus(DemandStatus.CREATE.getCode());
  73. achievementMapper.updateReleaseDate(aa.getId());
  74. }
  75. return achievementMapper.updateByPrimaryKeySelective(a);
  76. }
  77. @Override
  78. public Achievement selectByPrimaryKey(String id) {
  79. return achievementMapper.selectByPrimaryKey(id);
  80. }
  81. @Override
  82. public int deleteByPrimaryKey(List<String> id) {
  83. return achievementMapper.batchDeleteByPrimaryKey(id);
  84. }
  85. @SuppressWarnings("unchecked")
  86. @Override
  87. public Pagination<AchievementListBo> listUserAchievement(Integer serialNumber, String name, String keyword,
  88. Integer category, Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
  89. Integer releaseStatus, Integer pNo, Integer pSize) {
  90. Map<String, Object> params = disposeParams(serialNumber, name, keyword, category, ownerType, status,
  91. releaseDateStartDate, releaseDateEndDate, releaseStatus);
  92. params.put("ownerId", TokenManager.getUserId());
  93. if (pNo == null || pNo < 0) {
  94. pNo = 1;
  95. }
  96. if (pSize == null || pSize < 0) {
  97. pSize = 10;
  98. }
  99. return (Pagination<AchievementListBo>) findPage(
  100. "findAchievementListByPage", "findAchievementCount", disposeParams(serialNumber, name, keyword,
  101. category, ownerType, status, releaseDateStartDate, releaseDateEndDate, releaseStatus),
  102. pNo, pSize);
  103. }
  104. private Map<String, Object> disposeParams(Integer serialNumber, String name, String keyword, Integer category,
  105. Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
  106. Integer releaseStatus) {
  107. Map<String, Object> params = new HashMap<>();
  108. Date rStart = null;
  109. Date rEnd = null;
  110. if (!StringUtils.isBlank(releaseDateStartDate)) {
  111. try {
  112. rStart = DateUtils.parseDate(releaseDateStartDate, AFTConstants.YYYYMMDD);
  113. } catch (ParseException e) {
  114. }
  115. }
  116. if (!StringUtils.isBlank(releaseDateEndDate)) {
  117. try {
  118. rEnd = DateUtils.parseDate(releaseDateEndDate, AFTConstants.YYYYMMDD);
  119. } catch (ParseException e) {
  120. }
  121. }
  122. if (null != rStart) {
  123. params.put("rStart", rStart);
  124. }
  125. if (null != rEnd) {
  126. params.put("rEnd", rEnd);
  127. }
  128. if (null != serialNumber) {
  129. params.put("serialNumber", serialNumber);
  130. }
  131. if (!StringUtils.isBlank(name)) {
  132. params.put("name", name);
  133. }
  134. if (!StringUtils.isBlank(keyword)) {
  135. params.put("keyword", keyword);
  136. }
  137. if (null != category) {
  138. params.put("category", category);
  139. }
  140. if (null != ownerType) {
  141. params.put("ownerType", ownerType);
  142. }
  143. if (null != status) {
  144. params.put("status", status);
  145. }
  146. if (null != releaseStatus) {
  147. params.put("releaseStatus", releaseStatus);
  148. }
  149. return params;
  150. }
  151. }