Browse Source

Merge remote-tracking branch 'origin/dev_ic_mp' into dev_ic_mp

feature/evaluate
sunyuchao 4 years ago
parent
commit
8db7b700fb
  1. 7
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/form/AutoEvaluateDemandFormDTO.java
  2. 1
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/demand/FinishResultDTO.java
  3. 5
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiDemandController.java
  4. 4
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java
  5. 5
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandRecService.java
  6. 11
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandSatisfactionService.java
  7. 41
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandRecServiceImpl.java
  8. 100
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/IcUserDemandSatisfactionServiceImpl.java
  9. 9
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/V0.0.5__activity.sql
  10. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/IcUserDemandRecDao.xml
  11. 1
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java

7
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;
}

1
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;
}

5
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();
}
}

4
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/dao/IcUserDemandRecDao.java

@ -113,7 +113,9 @@ public interface IcUserDemandRecDao extends BaseDao<IcUserDemandRecEntity> {
@Param("type")String type,
@Param("demandUserId")String demandUserId);
List<IcUserDemandRecDTO> selectNoEvaluate(@Param("customerId")String customerId,@Param("exceedDay")Integer exceedDay);
List<IcUserDemandRecDTO> selectNoEvaluate(@Param("customerId")String customerId,
@Param("exceedValue")Integer exceedValue,
@Param("type")String type);
int evaluate(@Param("demandRecId")String demandRecId, @Param("finishResult")String finishResult);
}

5
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<IcUserDemandRecEntit
*/
UserDemandRelResDTO queryUserDemandRel(UserDemandRelFormDTO formDTO);
/**
* 服务方填写实际服务时间并点击确认后 7天内需求人未作出评价默认完成情况为已完成五星好评为服务方发放积分
*/
void autoEvaluate(AutoEvaluateDemandFormDTO formDTO);
}

11
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/IcUserDemandSatisfactionService.java

@ -1,11 +1,14 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.dto.result.demand.FinishResultDTO;
import com.epmet.dto.form.AutoEvaluateDemandFormDTO;
import com.epmet.entity.IcUserDemandSatisfactionEntity;
import java.util.List;
public interface IcUserDemandSatisfactionService extends BaseService<IcUserDemandSatisfactionEntity> {
List<FinishResultDTO> evaluateDemandAuto(String customerId, Integer exceedDay);
/**
*
* @param formDTO
* @return
*/
void evaluateDemandAuto(AutoEvaluateDemandFormDTO formDTO);
}

41
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<IcUserDemandRecD
}
String content = entity.getContent().length() > 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<IcUserDemandRecD
return res;
}
/**
* 服务方填写实际服务时间并点击确认后 7天内需求人未作出评价默认完成情况为已完成五星好评为服务方发放积分
*/
@Override
public void autoEvaluate(AutoEvaluateDemandFormDTO formDTO) {
if (null == formDTO.getExceedDay()) {
formDTO.setExceedDay(NumConstant.SEVEN);
}
List<FinishResultDTO> list=icUserDemandSatisfactionService.evaluateDemandAuto(formDTO.getCustomerId(),formDTO.getExceedDay());
if(CollectionUtils.isNotEmpty(list)){
List<BasePointEventMsg> 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)));
}
}
}
}

100
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<IcUserD
private IcResiDemandDictService demandDictService;
@Autowired
private IcPartyUnitService icPartyUnitService;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
/**
*
* @param formDTO
* @return
*/
@Transactional(rollbackFor = Exception.class)
@Override
public List<FinishResultDTO> evaluateDemandAuto(String customerId, Integer exceedDay) {
public void evaluateDemandAuto(AutoEvaluateDemandFormDTO formDTO) {
if (null == formDTO.getExceedValue()) {
formDTO.setExceedValue(NumConstant.SEVEN);
formDTO.setType("day");
}
// 查询完成后,超过7天未评价的记录
List<IcUserDemandRecDTO> list=icUserDemandRecDao.selectNoEvaluate(customerId,exceedDay);
List<IcUserDemandRecDTO> list=icUserDemandRecDao.selectNoEvaluate(formDTO.getCustomerId(),formDTO.getExceedValue(),formDTO.getType());
if(CollectionUtils.isEmpty(list)){
return Collections.EMPTY_LIST;
return;
}
List<FinishResultDTO> 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<BasePointEventMsg> 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<IcUserD
// 3、更新主表已评价标识,是否解决标识。
icUserDemandRecDao.evaluate(demand.getId(),UserDemandConstant.RESOLVED);
//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())){
FinishResultDTO finishResultDTO = new FinishResultDTO();
finishResultDTO.setServerId(serviceEntity.getServerId());
finishResultDTO.setServiceType(serviceEntity.getServiceType());
finishResultDTO.setAwardPoint(demand.getAwardPoint());
finishResultDTO.setEvaluateFlag(true);
if(StringUtils.isBlank(demand.getParentCode())||NumConstant.ZERO_STR.equals(demand.getParentCode())){
finishResultDTO.setFirstCategoryName(demandDictService.getCategoryName(demand.getCustomerId(),demand.getCategoryCode()));
}else{
finishResultDTO.setFirstCategoryName(demandDictService.getCategoryName(demand.getCustomerId(),demand.getParentCode()));
}
String content = demand.getContent().length() > 100 ? demand.getContent().substring(0, 99) : demand.getContent();
finishResultDTO.setRemark(String.format(UserDemandConstant.GRANT_POINT_REMARK,demand.getDemandUserName(),content));
resultList.add(finishResultDTO) ;
}
}
return resultList;
}
}

9
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`;

7
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()) &gt; #{exceedDay}
<if test="null !=type and type =='day' ">
and timestampdiff(day,s.UPDATED_TIME,now()) &gt; #{exceedValue}
</if>
<if test="null !=type and type =='minute' ">
and timestampdiff(MINUTE,s.UPDATED_TIME,now()) &gt; #{exceedValue}
</if>
<if test="null !=customerId and customerId !='' ">
AND r.customer_id =#{customerId}
</if>

1
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<UserPointActi
//1.新增用户积分行为记录
UserPointActionLogEntity action = new UserPointActionLogEntity();
action.setCustomerId(grantPoint.getCustomerId());
action.setBizType("community_service");
action.setPoint(grantPoint.getPoint());
//完成了XXX的需求
action.setEventStatement(grantPoint.getRemark());

Loading…
Cancel
Save