diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandRecDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandRecDTO.java index b070d80073..30b24a8498 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandRecDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/IcUserDemandRecDTO.java @@ -145,6 +145,11 @@ public class IcUserDemandRecDTO implements Serializable { */ private Boolean evaluateFlag; + /** + * 奖励积分 + */ + private Integer awardPoint; + /** * 删除标识:0.未删除 1.已删除 */ @@ -175,4 +180,6 @@ public class IcUserDemandRecDTO implements Serializable { */ private Date updatedTime; + private String serverId; + private String serviceType; } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/FinishResultDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/FinishResultDTO.java index 53ae15ba01..8ea54cc72f 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/FinishResultDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/FinishResultDTO.java @@ -22,6 +22,10 @@ public class FinishResultDTO implements Serializable { */ private Integer awardPoint; + /** + * 1:已评价;0:未评价;评价后ic_user_satisfaction表有记录 + */ + private Boolean evaluateFlag; /** * 完成了XXX的需求 */ diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java index a21cccb8f3..9dffeb784e 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/EpmetHeartOpenFeignClient.java @@ -67,4 +67,11 @@ public interface EpmetHeartOpenFeignClient { */ @PostMapping("/heart/resi/volunteer/page") Result> queryVolunteerPage(@RequestBody VolunteerCommonFormDTO input); + + /** + * 服务方填写实际服务时间,并点击确认后。 7天内需求人未作出评价,默认完成情况为已完成,五星好评,为服务方发放积分 + * @return + */ + @PostMapping("/heart/residemand/autoevaluate") + Result AutoEvaluateDemand(); } diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java index 27c2c9bdc8..f4e19d0906 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/feign/fallback/EpmetHeartOpenFeignClientFallback.java @@ -60,4 +60,14 @@ public class EpmetHeartOpenFeignClientFallback implements EpmetHeartOpenFeignCli public Result> queryVolunteerPage(VolunteerCommonFormDTO input) { return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "queryVolunteerPage", input); } + + /** + * 服务方填写实际服务时间,并点击确认后。 7天内需求人未作出评价,默认完成情况为已完成,五星好评,为服务方发放积分 + * + * @return + */ + @Override + public Result AutoEvaluateDemand() { + return ModuleUtils.feignConError(ServiceConstant.EPMET_HEART_SERVER, "autoEvaluate"); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java index 8627843a8d..4a71e4d5e3 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/IcUserDemandRecController.java @@ -193,39 +193,41 @@ public class IcUserDemandRecController { formDTO.setUserType(UserDemandConstant.STAFF); ValidatorUtils.validateEntity(formDTO,FinishStaffFromDTO.IcShowGroup.class,FinishStaffFromDTO.AddUserInternalGroup.class); FinishResultDTO finishResultDTO=icUserDemandRecService.finish(formDTO); - //如果服务方是区域化党建单位,需要实时去计算他的群众满意度=服务过的需求的评价分数相加➗ 需求的总个数。 - if(UserDemandConstant.PARTY_UNIT.equals(finishResultDTO.getServiceType())){ - ServerSatisfactionCalFormDTO mqMsg = new ServerSatisfactionCalFormDTO(); - mqMsg.setCustomerId(formDTO.getCustomerId()); - mqMsg.setServerId(finishResultDTO.getServerId()); - mqMsg.setServiceType(finishResultDTO.getServiceType()); - SystemMsgFormDTO form = new SystemMsgFormDTO(); - form.setMessageType(SystemMessageType.CAL_PARTY_UNIT_SATISFACTION); - form.setContent(mqMsg); - epmetMessageOpenFeignClient.sendSystemMsgByMQ(form); - } else if (UserDemandConstant.VOLUNTEER.equals(finishResultDTO.getServiceType()) && finishResultDTO.getAwardPoint() > NumConstant.ZERO) { - // 志愿者发放积分 - List actPointEventMsgList = new ArrayList<>(); - BasePointEventMsg actPointEventMsg = new BasePointEventMsg(); - actPointEventMsg.setCustomerId(formDTO.getCustomerId()); - actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND); - actPointEventMsg.setSourceId(formDTO.getDemandRecId()); - actPointEventMsg.setUserId(finishResultDTO.getServerId()); - actPointEventMsg.setActionFlag(MqConstant.PLUS); - actPointEventMsg.setIsCommon(false); - actPointEventMsg.setRemark(finishResultDTO.getRemark()); - actPointEventMsg.setEventTag(EventEnum.FINISH_USER_DEMAND.getEventTag()); - actPointEventMsg.setEventClass(EventEnum.FINISH_USER_DEMAND.getEventClass()); - actPointEventMsg.setEventName(finishResultDTO.getFirstCategoryName()); - actPointEventMsg.setObjectId(finishResultDTO.getCategoryCode()); - actPointEventMsg.setPoint(finishResultDTO.getAwardPoint()); - actPointEventMsgList.add(actPointEventMsg); - SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO(); - sendMsgForm.setContent(actPointEventMsgList); - sendMsgForm.setMessageType(SystemMessageType.FINISH_USER_DEMAND); - Result mqResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm); - if (!mqResult.success()) { - log.error(String.format("demandRecId:%s,给志愿者发放积分失败", formDTO.getDemandRecId())); + if(finishResultDTO.getEvaluateFlag()){ + //如果服务方是区域化党建单位,需要实时去计算他的群众满意度=服务过的需求的评价分数相加➗ 需求的总个数。 + if(UserDemandConstant.PARTY_UNIT.equals(finishResultDTO.getServiceType())){ + ServerSatisfactionCalFormDTO mqMsg = new ServerSatisfactionCalFormDTO(); + mqMsg.setCustomerId(formDTO.getCustomerId()); + mqMsg.setServerId(finishResultDTO.getServerId()); + mqMsg.setServiceType(finishResultDTO.getServiceType()); + SystemMsgFormDTO form = new SystemMsgFormDTO(); + form.setMessageType(SystemMessageType.CAL_PARTY_UNIT_SATISFACTION); + form.setContent(mqMsg); + epmetMessageOpenFeignClient.sendSystemMsgByMQ(form); + } else if (UserDemandConstant.VOLUNTEER.equals(finishResultDTO.getServiceType()) && null != finishResultDTO.getAwardPoint() && finishResultDTO.getAwardPoint() > NumConstant.ZERO) { + // 志愿者发放积分 + List actPointEventMsgList = new ArrayList<>(); + BasePointEventMsg actPointEventMsg = new BasePointEventMsg(); + actPointEventMsg.setCustomerId(formDTO.getCustomerId()); + actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND); + actPointEventMsg.setSourceId(formDTO.getDemandRecId()); + actPointEventMsg.setUserId(finishResultDTO.getServerId()); + actPointEventMsg.setActionFlag(MqConstant.PLUS); + actPointEventMsg.setIsCommon(false); + actPointEventMsg.setRemark(finishResultDTO.getRemark()); + actPointEventMsg.setEventTag(EventEnum.FINISH_USER_DEMAND.getEventTag()); + actPointEventMsg.setEventClass(EventEnum.FINISH_USER_DEMAND.getEventClass()); + actPointEventMsg.setEventName(finishResultDTO.getFirstCategoryName()); + actPointEventMsg.setObjectId(finishResultDTO.getCategoryCode()); + actPointEventMsg.setPoint(finishResultDTO.getAwardPoint()); + actPointEventMsgList.add(actPointEventMsg); + SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO(); + sendMsgForm.setContent(actPointEventMsgList); + sendMsgForm.setMessageType(SystemMessageType.FINISH_USER_DEMAND); + Result mqResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm); + if (!mqResult.success()) { + log.error(String.format("demandRecId:%s,给志愿者发放积分失败", formDTO.getDemandRecId())); + } } } return new Result(); diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java index f9b78dfcf2..fbdbc7afca 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java @@ -124,39 +124,41 @@ public class ResiDemandController { formDTO.setApp(tokenDto.getApp()); ValidatorUtils.validateEntity(formDTO, EvaluateDemandFormDTO.ShowGroup.class, EvaluateDemandFormDTO.AddUserInternalGroup.class); FinishResultDTO finishResultDTO = icUserDemandRecService.evaluate(formDTO); - //如果服务方是区域化党建单位,需要实时去计算他的群众满意度=服务过的需求的评价分数相加➗ 需求的总个数。 - if (UserDemandConstant.PARTY_UNIT.equals(finishResultDTO.getServiceType())) { - ServerSatisfactionCalFormDTO mqMsg = new ServerSatisfactionCalFormDTO(); - mqMsg.setCustomerId(formDTO.getCustomerId()); - mqMsg.setServerId(finishResultDTO.getServerId()); - mqMsg.setServiceType(finishResultDTO.getServiceType()); - SystemMsgFormDTO form = new SystemMsgFormDTO(); - form.setMessageType(SystemMessageType.CAL_PARTY_UNIT_SATISFACTION); - form.setContent(mqMsg); - epmetMessageOpenFeignClient.sendSystemMsgByMQ(form); - } else if (UserDemandConstant.VOLUNTEER.equals(finishResultDTO.getServiceType()) && finishResultDTO.getAwardPoint() > NumConstant.ZERO) { - // 志愿者发放积分 - List actPointEventMsgList = new ArrayList<>(); - BasePointEventMsg actPointEventMsg = new BasePointEventMsg(); - actPointEventMsg.setCustomerId(formDTO.getCustomerId()); - actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND); - actPointEventMsg.setSourceId(formDTO.getDemandRecId()); - actPointEventMsg.setUserId(finishResultDTO.getServerId()); - actPointEventMsg.setActionFlag(MqConstant.PLUS); - actPointEventMsg.setIsCommon(false); - actPointEventMsg.setRemark(finishResultDTO.getRemark()); - actPointEventMsg.setEventTag(EventEnum.FINISH_USER_DEMAND.getEventTag()); - actPointEventMsg.setEventClass(EventEnum.FINISH_USER_DEMAND.getEventClass()); - actPointEventMsg.setEventName(finishResultDTO.getFirstCategoryName()); - actPointEventMsg.setObjectId(finishResultDTO.getCategoryCode()); - actPointEventMsg.setPoint(finishResultDTO.getAwardPoint()); - actPointEventMsgList.add(actPointEventMsg); - SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO(); - sendMsgForm.setContent(actPointEventMsgList); - sendMsgForm.setMessageType(SystemMessageType.FINISH_USER_DEMAND); - Result mqResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm); - if (!mqResult.success()) { - log.error(String.format("需求评价完成:demandRecId:%s,给志愿者发放积分失败", formDTO.getDemandRecId())); + if(finishResultDTO.getEvaluateFlag()){ + //如果服务方是区域化党建单位,需要实时去计算他的群众满意度=服务过的需求的评价分数相加➗ 需求的总个数。 + if (UserDemandConstant.PARTY_UNIT.equals(finishResultDTO.getServiceType())) { + ServerSatisfactionCalFormDTO mqMsg = new ServerSatisfactionCalFormDTO(); + mqMsg.setCustomerId(formDTO.getCustomerId()); + mqMsg.setServerId(finishResultDTO.getServerId()); + mqMsg.setServiceType(finishResultDTO.getServiceType()); + SystemMsgFormDTO form = new SystemMsgFormDTO(); + form.setMessageType(SystemMessageType.CAL_PARTY_UNIT_SATISFACTION); + form.setContent(mqMsg); + epmetMessageOpenFeignClient.sendSystemMsgByMQ(form); + } else if (UserDemandConstant.VOLUNTEER.equals(finishResultDTO.getServiceType()) && null != finishResultDTO.getAwardPoint() && finishResultDTO.getAwardPoint() > NumConstant.ZERO) { + // 志愿者发放积分 + List actPointEventMsgList = new ArrayList<>(); + BasePointEventMsg actPointEventMsg = new BasePointEventMsg(); + actPointEventMsg.setCustomerId(formDTO.getCustomerId()); + actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND); + actPointEventMsg.setSourceId(formDTO.getDemandRecId()); + actPointEventMsg.setUserId(finishResultDTO.getServerId()); + actPointEventMsg.setActionFlag(MqConstant.PLUS); + actPointEventMsg.setIsCommon(false); + actPointEventMsg.setRemark(finishResultDTO.getRemark()); + actPointEventMsg.setEventTag(EventEnum.FINISH_USER_DEMAND.getEventTag()); + actPointEventMsg.setEventClass(EventEnum.FINISH_USER_DEMAND.getEventClass()); + actPointEventMsg.setEventName(finishResultDTO.getFirstCategoryName()); + actPointEventMsg.setObjectId(finishResultDTO.getCategoryCode()); + actPointEventMsg.setPoint(finishResultDTO.getAwardPoint()); + actPointEventMsgList.add(actPointEventMsg); + SystemMsgFormDTO sendMsgForm = new SystemMsgFormDTO(); + sendMsgForm.setContent(actPointEventMsgList); + sendMsgForm.setMessageType(SystemMessageType.FINISH_USER_DEMAND); + Result mqResult = epmetMessageOpenFeignClient.sendSystemMsgByMQ(sendMsgForm); + if (!mqResult.success()) { + log.error(String.format("需求评价完成:demandRecId:%s,给志愿者发放积分失败", formDTO.getDemandRecId())); + } } } return new Result(); @@ -242,4 +244,15 @@ public class ResiDemandController { ValidatorUtils.validateEntity(formDTO, UserDemandRelFormDTO.AddInternalGroup.class); return new Result().ok(icUserDemandRecService.queryUserDemandRel(formDTO)); } + + /** + * 服务方填写实际服务时间,并点击确认后。 7天内需求人未作出评价,默认完成情况为已完成,五星好评,为服务方发放积分 + * + * @return + */ + @PostMapping("autoevaluate") + public Result autoEvaluate(){ + icUserDemandRecService.autoEvaluate(); + return new Result(); + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java index f03ece8c19..6d11009c14 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java @@ -18,6 +18,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.IcUserDemandRecDTO; import com.epmet.dto.form.demand.IcResiUserDemandFromDTO; import com.epmet.dto.form.demand.PageListAnalysisFormDTO; import com.epmet.dto.form.demand.UserDemandPageFormDTO; @@ -111,4 +112,6 @@ public interface IcUserDemandRecDao extends BaseDao { List queryMyDemandForResiClient(@Param("gridId") String gridId, @Param("type")String type, @Param("demandUserId")String demandUserId); + + List selectNoEvaluate(); } \ No newline at end of file diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java index 63cd2daf50..57e5192dc8 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java @@ -213,4 +213,9 @@ public interface IcUserDemandRecService extends BaseService list=baseDao.selectNoEvaluate(); + + } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml index 96eba189bf..6e7c5f60aa 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml @@ -496,4 +496,21 @@ order by r.WANT_SERVICE_TIME asc + + \ No newline at end of file diff --git a/epmet-module/epmet-job/epmet-job-server/pom.xml b/epmet-module/epmet-job/epmet-job-server/pom.xml index 4ebf4f1fd3..5c1655d562 100644 --- a/epmet-module/epmet-job/epmet-job-server/pom.xml +++ b/epmet-module/epmet-job/epmet-job-server/pom.xml @@ -90,6 +90,12 @@ 2.0.0 compile + + com.epmet + epmet-heart-client + 2.0.0 + compile + diff --git a/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/AutoEvaluateDemandTask.java b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/AutoEvaluateDemandTask.java new file mode 100644 index 0000000000..1f1f2e74f9 --- /dev/null +++ b/epmet-module/epmet-job/epmet-job-server/src/main/java/com/epmet/task/AutoEvaluateDemandTask.java @@ -0,0 +1,24 @@ +package com.epmet.task; + + +import com.epmet.commons.tools.utils.Result; +import com.epmet.feign.EpmetHeartOpenFeignClient; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author yinzuomei + * @dscription 每天晚上23:50执行,需求已完成,未评分的自动评分=》发放积分,计算满意度 + */ +@Slf4j +@Component("resiEventAutoAuditTask") +public class AutoEvaluateDemandTask implements ITask { + @Autowired + private EpmetHeartOpenFeignClient heartOpenFeignClient; + + @Override + public void run(String params) { + Result result = heartOpenFeignClient.AutoEvaluateDemand(); + } +} diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java index 4ede07c03d..3c1b72151a 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java @@ -589,19 +589,6 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl{ - if(StringUtils.equals(ModuleConstant.OPERATION_TYPE_MINUS,grantPoint.getActionFlag())){ - //减 - if(grantPoint.getPoint() > NumConstant.ZERO){ - //保证负数 - grantPoint.setPoint(grantPoint.getPoint() * NumConstant.ONE_NEG); - } - }else{ - //加 - if(grantPoint.getPoint() < NumConstant.ZERO){ - //保证正数 - grantPoint.setPoint(grantPoint.getPoint() * NumConstant.ONE_NEG); - } - } //1.新增用户积分行为记录 UserPointActionLogEntity action = new UserPointActionLogEntity(); action.setCustomerId(grantPoint.getCustomerId());