|
|
@@ -16,11 +16,18 @@ import com.goafanti.achievement.bo.AchievementListBo;
|
|
|
import com.goafanti.achievement.service.AchievementService;
|
|
|
import com.goafanti.common.constant.AFTConstants;
|
|
|
import com.goafanti.common.dao.AchievementMapper;
|
|
|
+import com.goafanti.common.dao.NoticeMapper;
|
|
|
+import com.goafanti.common.dao.UserRoleMapper;
|
|
|
+import com.goafanti.common.enums.AchievementAuditStatus;
|
|
|
import com.goafanti.common.enums.AchievementReleaseStatus;
|
|
|
-import com.goafanti.common.enums.AchievementStatus;
|
|
|
import com.goafanti.common.enums.DeleteStatus;
|
|
|
+import com.goafanti.common.enums.DemandAuditStatus;
|
|
|
import com.goafanti.common.enums.DemandReleaseStatus;
|
|
|
+import com.goafanti.common.enums.NoticeReadStatus;
|
|
|
+import com.goafanti.common.enums.NoticeStatus;
|
|
|
+import com.goafanti.common.enums.UserType;
|
|
|
import com.goafanti.common.model.Achievement;
|
|
|
+import com.goafanti.common.model.Notice;
|
|
|
import com.goafanti.common.utils.DateUtils;
|
|
|
import com.goafanti.core.mybatis.BaseMybatisDao;
|
|
|
import com.goafanti.core.mybatis.page.Pagination;
|
|
|
@@ -30,11 +37,15 @@ import com.goafanti.core.shiro.token.TokenManager;
|
|
|
public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> implements AchievementService {
|
|
|
|
|
|
@Autowired
|
|
|
- private AchievementMapper achievementMapper;
|
|
|
+ private AchievementMapper achievementMapper;
|
|
|
+ @Autowired
|
|
|
+ private UserRoleMapper userRoleMapper;
|
|
|
+ @Autowired
|
|
|
+ private NoticeMapper noticeMapper;
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Override
|
|
|
- public Pagination<AchievementListBo> listAchievement(Integer serialNumber, String name, String keyword,
|
|
|
+ public Pagination<AchievementListBo> listAchievement(Integer auditStatus, Integer serialNumber, String name, String keyword,
|
|
|
Integer category, Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
|
|
|
Integer releaseStatus, Integer pNo, Integer pSize) {
|
|
|
if (pNo == null || pNo < 0) {
|
|
|
@@ -45,7 +56,7 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
|
|
|
pSize = 10;
|
|
|
}
|
|
|
return (Pagination<AchievementListBo>) findPage(
|
|
|
- "findManageAchievementListByPage", "findManageAchievementCount", disposeParams(serialNumber, name,
|
|
|
+ "findManageAchievementListByPage", "findManageAchievementCount", disposeParams(auditStatus, serialNumber, name,
|
|
|
keyword, category, ownerType, status, releaseDateStartDate, releaseDateEndDate, releaseStatus),
|
|
|
pNo, pSize);
|
|
|
}
|
|
|
@@ -57,30 +68,24 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
|
|
|
Calendar now = Calendar.getInstance();
|
|
|
now.set(Calendar.MILLISECOND, 0);
|
|
|
|
|
|
- a.setStatus(AchievementStatus.CREATE.getCode());
|
|
|
- if (AchievementReleaseStatus.RELEASED.getCode().equals(a.getReleaseStatus())) {
|
|
|
- a.setReleaseDate(now.getTime());
|
|
|
- a.setStatus(AchievementStatus.ONGOING.getCode());
|
|
|
+ a.setAuditStatus(AchievementAuditStatus.CREATE.getCode());
|
|
|
+ a.setSalesmanId(TokenManager.getAdminId());
|
|
|
+ a.setReleaseStatus(AchievementReleaseStatus.UNRELEASE.getCode());
|
|
|
+
|
|
|
+ if (AchievementAuditStatus.SUBMIT.getCode().equals(a.getAuditStatus())) {
|
|
|
+ a.setAuditStatus(DemandAuditStatus.INAUDIT.getCode());
|
|
|
+ createAuditorNotice(a);
|
|
|
}
|
|
|
+
|
|
|
a.setCreateTime(now.getTime());
|
|
|
achievementMapper.insert(a);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public int updateAchievement(Achievement a) {
|
|
|
- Achievement aa = achievementMapper.selectByPrimaryKey(a.getId());
|
|
|
- if (AchievementReleaseStatus.RELEASED.getCode().equals(a.getReleaseStatus())
|
|
|
- && DemandReleaseStatus.UNRELEASE.getCode().equals(aa.getReleaseStatus())) {
|
|
|
- Calendar now = Calendar.getInstance();
|
|
|
- now.set(Calendar.MILLISECOND, 0);
|
|
|
- a.setReleaseDate(now.getTime());
|
|
|
- a.setStatus(AchievementStatus.ONGOING.getCode());
|
|
|
- }
|
|
|
-
|
|
|
- if (AchievementReleaseStatus.UNRELEASE.getCode().equals(a.getReleaseStatus())
|
|
|
- && AchievementReleaseStatus.RELEASED.getCode().equals(aa.getReleaseStatus())) {
|
|
|
- a.setStatus(AchievementStatus.CREATE.getCode());
|
|
|
- achievementMapper.updateReleaseDate(aa.getId());
|
|
|
+ if (AchievementAuditStatus.SUBMIT.getCode().equals(a.getAuditStatus())) {
|
|
|
+ a.setAuditStatus(DemandAuditStatus.INAUDIT.getCode());
|
|
|
+ createAuditorNotice(a);
|
|
|
}
|
|
|
return achievementMapper.updateByPrimaryKeySelective(a);
|
|
|
}
|
|
|
@@ -97,10 +102,10 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
@Override
|
|
|
- public Pagination<AchievementListBo> listUserAchievement(Integer serialNumber, String name, String keyword,
|
|
|
+ public Pagination<AchievementListBo> listUserAchievement(Integer auditStatus, Integer serialNumber, String name, String keyword,
|
|
|
Integer category, Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
|
|
|
Integer releaseStatus, Integer pNo, Integer pSize) {
|
|
|
- Map<String, Object> params = disposeParams(serialNumber, name, keyword, category, ownerType, status,
|
|
|
+ Map<String, Object> params = disposeParams(auditStatus, serialNumber, name, keyword, category, ownerType, status,
|
|
|
releaseDateStartDate, releaseDateEndDate, releaseStatus);
|
|
|
params.put("ownerId", TokenManager.getUserId());
|
|
|
if (pNo == null || pNo < 0) {
|
|
|
@@ -110,12 +115,11 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
|
|
|
if (pSize == null || pSize < 0) {
|
|
|
pSize = 10;
|
|
|
}
|
|
|
- return (Pagination<AchievementListBo>) findPage(
|
|
|
- "findAchievementListByPage", "findAchievementCount", params,
|
|
|
+ return (Pagination<AchievementListBo>) findPage("findAchievementListByPage", "findAchievementCount", params,
|
|
|
pNo, pSize);
|
|
|
}
|
|
|
|
|
|
- private Map<String, Object> disposeParams(Integer serialNumber, String name, String keyword, Integer category,
|
|
|
+ private Map<String, Object> disposeParams(Integer auditStatus, Integer serialNumber, String name, String keyword, Integer category,
|
|
|
Integer ownerType, Integer status, String releaseDateStartDate, String releaseDateEndDate,
|
|
|
Integer releaseStatus) {
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
|
@@ -144,6 +148,10 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
|
|
|
if (null != rEnd) {
|
|
|
params.put("rEnd", rEnd);
|
|
|
}
|
|
|
+
|
|
|
+ if (null != auditStatus){
|
|
|
+ params.put("auditStatus", auditStatus);
|
|
|
+ }
|
|
|
|
|
|
if (null != serialNumber) {
|
|
|
params.put("serialNumber", serialNumber);
|
|
|
@@ -175,5 +183,56 @@ public class AchievementServiceImpl extends BaseMybatisDao<AchievementMapper> im
|
|
|
|
|
|
return params;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int updateAuditAchievement(Achievement a, String techBroderId, Integer auditStatus) {
|
|
|
+ a.setAuditStatus(auditStatus);
|
|
|
+ if (AchievementAuditStatus.AUDITED.getCode().equals(auditStatus)) {
|
|
|
+ Calendar now = Calendar.getInstance();
|
|
|
+ now.set(Calendar.MILLISECOND, 0);
|
|
|
+ a.setReleaseDate(now.getTime());
|
|
|
+ a.setReleaseStatus(DemandReleaseStatus.RELEASED.getCode());
|
|
|
+ } else {
|
|
|
+ a.setReleaseStatus(DemandReleaseStatus.UNRELEASE.getCode());
|
|
|
+ }
|
|
|
+ return achievementMapper.updateByPrimaryKeySelective(a);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int updateReleaseStatus(Achievement a) {
|
|
|
+ a.setAuditStatus(AchievementAuditStatus.CREATE.getCode());
|
|
|
+ a.setReleaseStatus(AchievementReleaseStatus.UNRELEASE.getCode());
|
|
|
+ achievementMapper.updateReleaseDate(a.getId());
|
|
|
+ return achievementMapper.updateByPrimaryKeySelective(a);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 给所有审核员发送审核通知
|
|
|
+ private void createAuditorNotice(Achievement a) {
|
|
|
+ List<String> ids = userRoleMapper.listAuditor();
|
|
|
+ if (null != ids && ids.size() > 0) {
|
|
|
+ for (String s : ids) {
|
|
|
+ Notice n = new Notice();
|
|
|
+ Calendar now = Calendar.getInstance();
|
|
|
+ now.set(Calendar.MILLISECOND, 0);
|
|
|
+ n.setId(UUID.randomUUID().toString());
|
|
|
+ n.setCreateTime(now.getTime());
|
|
|
+ n.setReaded(NoticeReadStatus.UNREAD.getCode());
|
|
|
+ n.setRid(a.getId());
|
|
|
+ n.setAid(s);
|
|
|
+ if (UserType.PERSONAL.getCode().equals(a.getOwnerType())) {
|
|
|
+ n.setContent(NoticeStatus.PERSONALACHIEVEMENTT.getDesc() + " " + AchievementAuditStatus.SUBMIT.getDesc());
|
|
|
+ n.setNoticeType(NoticeStatus.PERSONALACHIEVEMENTT.getCode());
|
|
|
+ } else if (UserType.ORGANIZATION.getCode().equals(a.getOwnerType())) {
|
|
|
+ n.setContent(NoticeStatus.ORGANIZATIONACHIEVEMENT.getDesc() + " " + AchievementAuditStatus.SUBMIT.getDesc());
|
|
|
+ n.setNoticeType(NoticeStatus.ORGANIZATIONACHIEVEMENT.getCode());
|
|
|
+ }
|
|
|
+ noticeMapper.insert(n);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
}
|