diff --git a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AutoEvaluateDemandFormDTO.java b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AutoEvaluateDemandFormDTO.java index fd716562ae..2df4640227 100644 --- a/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AutoEvaluateDemandFormDTO.java +++ b/epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AutoEvaluateDemandFormDTO.java @@ -11,5 +11,10 @@ import java.io.Serializable; @Data public class AutoEvaluateDemandFormDTO implements Serializable { private String customerId; - private Integer exceedDay; + private Integer exceedValue; + /** + * day + * minute + */ + private String type; } 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 77f86a5f43..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 @@ -32,5 +32,4 @@ public class FinishResultDTO implements Serializable { private String remark; private String firstCategoryName; private String categoryCode; - private String demandRecId; } 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 5b8417ad82..814c875150 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 @@ -20,6 +20,7 @@ import com.epmet.dto.form.demand.*; import com.epmet.dto.result.demand.*; import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.service.IcUserDemandRecService; +import com.epmet.service.IcUserDemandSatisfactionService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -46,6 +47,8 @@ public class ResiDemandController { private IcUserDemandRecService icUserDemandRecService; @Autowired private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient; + @Autowired + private IcUserDemandSatisfactionService demandSatisfactionService; /** * 居民端-需求大厅(未处理、处理中、已完成) @@ -253,7 +256,7 @@ public class ResiDemandController { */ @PostMapping("autoevaluate") public Result autoEvaluate(@RequestBody AutoEvaluateDemandFormDTO formDTO){ - icUserDemandRecService.autoEvaluate(formDTO); + demandSatisfactionService.evaluateDemandAuto(formDTO); 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 6ab67eed69..27eaa8c689 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 @@ -113,7 +113,9 @@ public interface IcUserDemandRecDao extends BaseDao { @Param("type")String type, @Param("demandUserId")String demandUserId); - List selectNoEvaluate(@Param("customerId")String customerId,@Param("exceedDay")Integer exceedDay); + List selectNoEvaluate(@Param("customerId")String customerId, + @Param("exceedValue")Integer exceedValue, + @Param("type")String type); int evaluate(@Param("demandRecId")String demandRecId, @Param("finishResult")String finishResult); } \ 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 093eb4e011..da3fd68cdf 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 @@ -20,7 +20,6 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.IcUserDemandRecDTO; -import com.epmet.dto.form.AutoEvaluateDemandFormDTO; import com.epmet.dto.form.demand.*; import com.epmet.dto.result.demand.*; import com.epmet.entity.IcUserDemandRecEntity; @@ -215,8 +214,4 @@ public interface IcUserDemandRecService extends BaseService { - List evaluateDemandAuto(String customerId, Integer exceedDay); + /** + * + * @param formDTO + * @return + */ + void evaluateDemandAuto(AutoEvaluateDemandFormDTO formDTO); } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java index 41969b7cdc..b194d61dc2 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java @@ -21,13 +21,10 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.AppClientConstant; -import com.epmet.commons.tools.constant.MqConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.constant.StrConstant; -import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg; import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult; import com.epmet.commons.tools.enums.DictTypeEnum; -import com.epmet.commons.tools.enums.EventEnum; import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.RenException; @@ -40,7 +37,6 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.ScanContentUtils; import com.epmet.constant.ReadFlagConstant; -import com.epmet.constant.SystemMessageType; import com.epmet.constant.UserDemandConstant; import com.epmet.constant.UserMessageTypeConstant; import com.epmet.dao.IcUserDemandOperateLogDao; @@ -1101,6 +1097,7 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl 100 ? entity.getContent().substring(0, 99) : entity.getContent(); finishResultDTO.setRemark(String.format(UserDemandConstant.GRANT_POINT_REMARK,entity.getDemandUserName(),content)); + finishResultDTO.setCategoryCode(entity.getCategoryCode()); //5、我的需求-评价:如果服务方是志愿者,通知它: 您收到来自XXX(需求人姓名)的评价,请查看。 sendVolunnterEvaluated(entity); return finishResultDTO; @@ -1537,42 +1534,6 @@ public class IcUserDemandRecServiceImpl extends BaseServiceImpl list=icUserDemandSatisfactionService.evaluateDemandAuto(formDTO.getCustomerId(),formDTO.getExceedDay()); - if(CollectionUtils.isNotEmpty(list)){ - List actPointEventMsgList = new ArrayList<>(); - list.forEach(finishResultDTO->{ - BasePointEventMsg actPointEventMsg = new BasePointEventMsg(); - actPointEventMsg.setCustomerId(formDTO.getCustomerId()); - actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND); - actPointEventMsg.setSourceId(finishResultDTO.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,给志愿者发放积分失败", JSON.toJSONString(sendMsgForm))); - } - } - } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandSatisfactionServiceImpl.java b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandSatisfactionServiceImpl.java index fc03960b4d..5334324302 100644 --- a/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandSatisfactionServiceImpl.java +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandSatisfactionServiceImpl.java @@ -1,19 +1,27 @@ package com.epmet.service.impl; +import com.alibaba.fastjson.JSON; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.rocketmq.messages.ServerSatisfactionCalFormDTO; import com.epmet.commons.tools.constant.Constant; +import com.epmet.commons.tools.constant.MqConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg; +import com.epmet.commons.tools.enums.EventEnum; +import com.epmet.commons.tools.utils.Result; +import com.epmet.constant.SystemMessageType; import com.epmet.constant.UserDemandConstant; import com.epmet.dao.IcUserDemandOperateLogDao; import com.epmet.dao.IcUserDemandRecDao; import com.epmet.dao.IcUserDemandSatisfactionDao; import com.epmet.dao.IcUserDemandServiceDao; import com.epmet.dto.IcUserDemandRecDTO; -import com.epmet.dto.result.demand.FinishResultDTO; +import com.epmet.dto.form.AutoEvaluateDemandFormDTO; +import com.epmet.dto.form.SystemMsgFormDTO; import com.epmet.entity.IcUserDemandOperateLogEntity; import com.epmet.entity.IcUserDemandSatisfactionEntity; import com.epmet.entity.IcUserDemandServiceEntity; +import com.epmet.feign.EpmetMessageOpenFeignClient; import com.epmet.service.IcPartyUnitService; import com.epmet.service.IcResiDemandDictService; import com.epmet.service.IcUserDemandSatisfactionService; @@ -26,7 +34,6 @@ import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Collections; import java.util.Date; import java.util.List; @Slf4j @@ -43,19 +50,72 @@ public class IcUserDemandSatisfactionServiceImpl extends BaseServiceImpl evaluateDemandAuto(String customerId, Integer exceedDay) { + public void evaluateDemandAuto(AutoEvaluateDemandFormDTO formDTO) { + if (null == formDTO.getExceedValue()) { + formDTO.setExceedValue(NumConstant.SEVEN); + formDTO.setType("day"); + } // 查询完成后,超过7天未评价的记录 - List list=icUserDemandRecDao.selectNoEvaluate(customerId,exceedDay); + List list=icUserDemandRecDao.selectNoEvaluate(formDTO.getCustomerId(),formDTO.getExceedValue(),formDTO.getType()); if(CollectionUtils.isEmpty(list)){ - return Collections.EMPTY_LIST; + return; } - List resultList=new ArrayList<>(); Date nowDate=new Date(); for(IcUserDemandRecDTO demand:list){ + //4、返回服务方,志愿者发放积分,区域化党建单位,计算群众满意度 + IcUserDemandServiceEntity serviceEntity = demandServiceDao.selectByRecId(demand.getId()); + if(null==serviceEntity){ + continue; + } + if(UserDemandConstant.PARTY_UNIT.equals(serviceEntity.getServiceType())){ + ServerSatisfactionCalFormDTO satisfactionCalFormDTO=new ServerSatisfactionCalFormDTO(); + satisfactionCalFormDTO.setCustomerId(demand.getCustomerId()); + satisfactionCalFormDTO.setServiceType(serviceEntity.getServiceType()); + satisfactionCalFormDTO.setServerId(serviceEntity.getServerId()); + icPartyUnitService.calPartyUnitSatisfation(satisfactionCalFormDTO); + }else if(UserDemandConstant.VOLUNTEER.equals(serviceEntity.getServiceType())){ + List actPointEventMsgList = new ArrayList<>(); + BasePointEventMsg actPointEventMsg = new BasePointEventMsg(); + actPointEventMsg.setCustomerId(demand.getCustomerId()); + actPointEventMsg.setSourceType(MqConstant.SOURCE_TYPE_DEMAND); + actPointEventMsg.setSourceId(demand.getId()); + actPointEventMsg.setUserId(serviceEntity.getServerId()); + actPointEventMsg.setActionFlag(MqConstant.PLUS); + actPointEventMsg.setIsCommon(false); + String content = demand.getContent().length() > 100 ? demand.getContent().substring(0, 99) : demand.getContent(); + actPointEventMsg.setRemark(String.format(UserDemandConstant.GRANT_POINT_REMARK,demand.getDemandUserName(),content)); + actPointEventMsg.setEventTag(EventEnum.FINISH_USER_DEMAND.getEventTag()); + actPointEventMsg.setEventClass(EventEnum.FINISH_USER_DEMAND.getEventClass()); + if(StringUtils.isBlank(demand.getParentCode())||NumConstant.ZERO_STR.equals(demand.getParentCode())){ + actPointEventMsg.setEventName(demandDictService.getCategoryName(demand.getCustomerId(),demand.getCategoryCode())); + }else{ + actPointEventMsg.setEventName(demandDictService.getCategoryName(demand.getCustomerId(),demand.getParentCode())); + } + actPointEventMsg.setObjectId(demand.getCategoryCode()); + actPointEventMsg.setPoint(demand.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.warn(String.format("需求自动评价志愿者发放积分失败:demandRecId:%s,消息体:%s", demand.getId(), JSON.toJSONString(sendMsgForm))); + continue; + } + } + // 1、插入评价得分记录 IcUserDemandSatisfactionEntity satisfactionEntity = new IcUserDemandSatisfactionEntity(); satisfactionEntity.setCustomerId(demand.getCustomerId()); @@ -79,34 +139,6 @@ public class IcUserDemandSatisfactionServiceImpl extends BaseServiceImpl 100 ? demand.getContent().substring(0, 99) : demand.getContent(); - finishResultDTO.setRemark(String.format(UserDemandConstant.GRANT_POINT_REMARK,demand.getDemandUserName(),content)); - resultList.add(finishResultDTO) ; - } } - return resultList; } } diff --git a/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.5__activity.sql b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.5__activity.sql new file mode 100644 index 0000000000..fd9732bc6e --- /dev/null +++ b/epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.5__activity.sql @@ -0,0 +1,9 @@ +ALTER TABLE `epmet_heart`.`act_info` + ADD COLUMN `ACT_TYPE` varchar(10) NULL COMMENT '活动类型 爱心活动heart 联建活动party' AFTER `CUSTOMER_ID`, + ADD COLUMN `UNIT_ID` varchar(64) NULL COMMENT '联建单位ID' AFTER `ACT_TYPE`, + ADD COLUMN `SERVICE_MATTER` varchar(64) NULL COMMENT '服务事项' AFTER `UNIT_ID`, + ADD COLUMN `TARGET` varchar(100) NULL COMMENT '活动目标' AFTER `TITLE`; + + +ALTER TABLE `epmet_heart`.`ic_party_activity` + ADD COLUMN `ACT_ID` varchar(64) NULL COMMENT 'act_info表ID' AFTER `PIDS`; \ No newline at end of file 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 bf1ab18831..4298ad6186 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 @@ -511,7 +511,12 @@ AND r.EVALUATE_FLAG = '0' and s.SERVICE_START_TIME is not NULL and s.SERVICE_END_TIME is not null - and timestampdiff(day,s.UPDATED_TIME,now()) > #{exceedDay} + + and timestampdiff(day,s.UPDATED_TIME,now()) > #{exceedValue} + + + and timestampdiff(MINUTE,s.UPDATED_TIME,now()) > #{exceedValue} + AND r.customer_id =#{customerId} 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 583a0c0e61..0fbb19a3d8 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 @@ -593,6 +593,7 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl