Browse Source

更新用户积分(双实信息更新 网格巡查)-仅限榆山街道的工作人员

dev
yinzuomei 4 years ago
parent
commit
55a44bfec6
  1. 31
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/SpecialCustomerOrgConstant.java
  2. 29
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/UpdateUserPointsFormDTO.java
  3. 43
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/BehaviorTypeYuShanEnum.java
  4. 35
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ExternalApiEnum.java
  5. 55
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ExternalServerEnum.java
  6. 70
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/YuShanSysApiService.java
  7. 2
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/GovProjectApplication.java
  8. 11
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java
  9. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java
  10. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java
  11. 30
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

31
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/SpecialCustomerOrgConstant.java

@ -0,0 +1,31 @@
package com.epmet.commons.tools.constant;
/**
* 需要特殊处理的客户id
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
public interface SpecialCustomerOrgConstant {
/**
* 榆山街道组织id
*/
String YUSHAN_AGENCY_ID_PROD="1258587398679126017";
/**
* 南宁社区-开发测试用的
*/
String test="6e511da6816e53af4cda952365a26eb9";
// /**
// * 榆山生产客户id
// */
// String YUSHAN_PROD_CUSTOMER_ID = "46c55cb862d6d5e6d05d2ab61a1cc07e";
//
// /**
// * 榆山测试客户id
// */
// String YUSHAN_TEST_CUSTOMER_ID = "a4bbf298d8e427844038cee466f022ef";
}

29
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/UpdateUserPointsFormDTO.java

@ -0,0 +1,29 @@
package com.epmet.commons.tools.dto.form;
import lombok.Data;
import java.io.Serializable;
@Data
public class UpdateUserPointsFormDTO implements Serializable {
/**
* 行为类型
* 双十信息更新-double_info_update
* 网格巡查-grid_patrol
* 网格上报事件-grid_report_event
* 网格工作上传-grid_work_upload
*/
private String behaviorType;
/**
* 手机号
*/
private String mobile;
/**
* 工作端用户id
*/
private String staffId;
private String customerId;
}

43
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/BehaviorTypeYuShanEnum.java

@ -0,0 +1,43 @@
package com.epmet.commons.tools.enums;
/**
* 更新用户积分(双实信息更新 网格巡查)
* 行为类型枚举类
*/
public enum BehaviorTypeYuShanEnum {
DOUBLE_INFO_UPDATE("double_info_update", "双十信息更新"),
GRID_PATROL("grid_patrol", "网格巡查"),
GRID_REPORT_EVENT("grid_report_event", "网格上报事件"),
GRID_WORK_UPLOAD("grid_work_upload", "网格工作上传"),
;
private String code;
private String name;
BehaviorTypeYuShanEnum(String code, String name) {
this.code = code;
this.name = name;
}
public static BehaviorTypeYuShanEnum getEnum(String code) {
BehaviorTypeYuShanEnum[] values = BehaviorTypeYuShanEnum.values();
for (BehaviorTypeYuShanEnum value : values) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}
public String getCode() {
return code;
}
public String getName() {
return name;
}
}

35
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ExternalApiEnum.java

@ -0,0 +1,35 @@
package com.epmet.commons.tools.enums;
/**
* 外部api
*/
public enum ExternalApiEnum {
/**
* 榆山-测试服务器地址
*/
UPDATE_USER_POINTS("/api/points/behavior/updateUserPoints","更新用户积分(双实信息更新 网格巡查)","http://yapi.elinkservice.cn/project/57/interface/api/7466");
private String apiPath;
private String desc;
private String descUrl;
ExternalApiEnum(String apiPath, String desc,String descUrl) {
this.apiPath = apiPath;
this.desc = desc;
this.descUrl=descUrl;
}
public String getApiPath() {
return apiPath;
}
public String getDesc() {
return desc;
}
public String getDescUrl() {
return descUrl;
}
}

55
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/enums/ExternalServerEnum.java

@ -0,0 +1,55 @@
package com.epmet.commons.tools.enums;
import com.epmet.commons.tools.constant.StrConstant;
/**
* 外部客户的服务器地址
*/
public enum ExternalServerEnum {
DEV_TEST("45687aa479955f9d06204d415238f7cc", "https://epdc-api-test.elinkservice.cn/epdc-api"),
/**
* 榆山-测试服务器地址
*/
YUSHAN_TEST("a4bbf298d8e427844038cee466f022ef", "https://epdc-api-test.elinkservice.cn/epdc-api"),
/**
* 榆山-生产服务器地址
*/
YUSHAN_PROD("46c55cb862d6d5e6d05d2ab61a1cc07e", "https://epdc-yushan.elinkservice.cn/epdc-api");
private String customerId;
private String url;
ExternalServerEnum(String customerId, String url) {
this.customerId = customerId;
this.url = url;
}
public static String getUrl(String customerId) {
ExternalServerEnum[] array = values();
for (ExternalServerEnum enumValue : array) {
if (enumValue.getCustomerId().equals(customerId)) {
return enumValue.getUrl();
}
}
return StrConstant.EPMETY_STR;
}
public String getCustomerId() {
return customerId;
}
public void setCustomerId(String customerId) {
this.customerId = customerId;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
}

70
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/YuShanSysApiService.java

@ -0,0 +1,70 @@
package com.epmet.commons.tools.utils;
import com.alibaba.fastjson.JSON;
import com.epmet.commons.tools.constant.SpecialCustomerOrgConstant;
import com.epmet.commons.tools.dto.form.UpdateUserPointsFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.ExternalApiEnum;
import com.epmet.commons.tools.enums.ExternalServerEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
/**
* e事通调用榆山api
*
* @author yinzuomei
* @date 2022-02-16
**/
@Service
@Slf4j
public class YuShanSysApiService {
/**
* 更新用户积分(双实信息更新 网格巡查)
*
* @return
*/
@Async
public void updateUserPoints(String customerId, List<UpdateUserPointsFormDTO> paramList) {
if (StringUtils.isBlank(customerId) || CollectionUtils.isEmpty(paramList)) {
throw new RenException("参数错误");
}
String serverUrl = ExternalServerEnum.getUrl(customerId);
if (StringUtils.isBlank(serverUrl)) {
log.warn(String.format("当前客户:%s,未配置服务器地址", customerId));
return;
}
String apiPath = serverUrl.concat(ExternalApiEnum.UPDATE_USER_POINTS.getApiPath());
log.info(String.format("updateUserPoints 接口路径:%s", apiPath));
for (UpdateUserPointsFormDTO formDTO : paramList) {
try {
CustomerStaffInfoCacheResult staff = CustomerStaffRedis.getStaffInfo(customerId, formDTO.getStaffId());
//只有榆山街道的工作人员才调用
if (null != staff && (staff.getAgencyId().equals(SpecialCustomerOrgConstant.YUSHAN_AGENCY_ID_PROD) || staff.getAgencyPIds().contains(SpecialCustomerOrgConstant.YUSHAN_AGENCY_ID_PROD))) {
formDTO.setMobile(staff.getMobile());
Result<String> res = HttpClientManager.getInstance().sendPostByJSON(apiPath, JSON.toJSONString(formDTO));
Result result = JSON.parseObject(res.getData(), Result.class);
log.info(String.format("updateUserPoints 入参:%s", JSON.toJSONString(formDTO)));
if (!result.success()) {
log.warn("updateUserPoints failed:{}", JSON.toJSONString(result));
}
}
} catch (Exception e) {
log.warn("updateUserPoints exception 入参:{}", JSON.toJSONString(formDTO));
throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), e.getMessage());
}
}
}
}

2
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/GovProjectApplication.java

@ -5,6 +5,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;
/**
*
@ -14,6 +15,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@EnableAsync
@ServletComponentScan
public class GovProjectApplication {
public static void main(String[] args) {

11
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/ProjectTraceServiceImpl.java

@ -9,7 +9,9 @@ import com.epmet.commons.rocketmq.messages.ProjectChangedMQMsg;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.UpdateUserPointsFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.enums.BehaviorTypeYuShanEnum;
import com.epmet.commons.tools.enums.OrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
@ -107,6 +109,9 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
private ResiEventReportOrgDao resiEventReportOrgDao;
@Autowired
private BlockChainUploadService blockChainUploadService;
@Autowired
private YuShanSysApiService yuShanSysApiService;
@Override
public List<PendProjectListResultDTO> getPendProjectList(TokenDto tokenDto, ProjectListFromDTO fromDTO) {
@ -552,6 +557,12 @@ public class ProjectTraceServiceImpl<ProjectTagService> implements ProjectTraceS
String errorMsg = ExceptionUtils.getThrowableErrorStackTrace(e);
log.error("【项目流转】上链失败,错误信息:{}", errorMsg);
}
//项目立项如果是榆山街道的工作人员,需要调用【更新用户积分(双实信息更新 网格巡查)】/api/points/behavior/updateUserPoints
UpdateUserPointsFormDTO updateUserPointsFormDTO=new UpdateUserPointsFormDTO();
updateUserPointsFormDTO.setCustomerId(projectEntity.getCustomerId());
updateUserPointsFormDTO.setStaffId(projectEntity.getCreatedBy());
updateUserPointsFormDTO.setBehaviorType(BehaviorTypeYuShanEnum.GRID_REPORT_EVENT.getCode());
yuShanSysApiService.updateUserPoints(projectEntity.getCustomerId(),Arrays.asList(updateUserPointsFormDTO));
}
/**

2
epmet-user/epmet-user-server/src/main/java/com/epmet/UserApplication.java

@ -13,6 +13,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;
/**
* 管理后台
@ -24,6 +25,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
@EnableAsync
@ServletComponentScan
public class UserApplication {

15
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/PatrolRoutineWorkServiceImpl.java

@ -25,7 +25,9 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.rocketmq.messages.BaseMQMsgDTO;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.UpdateUserPointsFormDTO;
import com.epmet.commons.tools.dto.result.DictTreeResultDTO;
import com.epmet.commons.tools.enums.BehaviorTypeYuShanEnum;
import com.epmet.commons.tools.enums.DictTypeEnum;
import com.epmet.commons.tools.enums.OrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
@ -35,9 +37,9 @@ import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.YuShanSysApiService;
import com.epmet.constant.SystemMessageType;
import com.epmet.dao.PatrolRoutineWorkDao;
import com.epmet.dto.CustomerGridDTO;
@ -68,13 +70,10 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.beans.Encoder;
import java.net.URLEncoder;
import java.util.*;
import java.util.stream.Collectors;
import static com.epmet.commons.tools.utils.DateUtils.DATE_PATTERN;
/**
* 巡查例行工作
*
@ -94,6 +93,8 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
private PatrolRoutineWorkTypeService patrolRoutineWorkTypeService;
@Autowired
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private YuShanSysApiService yuShanSysApiService;
/**
* @param formDTO
@ -154,6 +155,12 @@ public class PatrolRoutineWorkServiceImpl extends BaseServiceImpl<PatrolRoutineW
if (entity != null){
sendPatrolMsg(entity.getCustomerId(),entity.getId(),SystemMessageType.PATROL_ROUTINE_WORK_ADD);
}
//网格员添加例行工作,如果是榆山街道的工作人员,需要调用【更新用户积分(双实信息更新 网格巡查)】/api/points/behavior/updateUserPoints
UpdateUserPointsFormDTO updateUserPointsFormDTO=new UpdateUserPointsFormDTO();
updateUserPointsFormDTO.setCustomerId(entity.getCustomerId());
updateUserPointsFormDTO.setStaffId(entity.getUserId());
updateUserPointsFormDTO.setBehaviorType(BehaviorTypeYuShanEnum.GRID_WORK_UPLOAD.getCode());
yuShanSysApiService.updateUserPoints(entity.getCustomerId(),Arrays.asList(updateUserPointsFormDTO));
}
}

30
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/StaffPatrolRecordServiceImpl.java

@ -9,8 +9,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.rocketmq.messages.StaffPatrolMQMsg;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.UpdateUserPointsFormDTO;
import com.epmet.commons.tools.enums.BehaviorTypeYuShanEnum;
import com.epmet.commons.tools.enums.OrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
@ -21,10 +22,7 @@ import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.AgencyInfoCache;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.DateUtils;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.*;
import com.epmet.constant.PatrolConstant;
import com.epmet.constant.SystemMessageType;
import com.epmet.dao.CustomerStaffDao;
@ -58,8 +56,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -92,7 +88,8 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private RedisUtils redisUtils;
@Autowired
private YuShanSysApiService yuShanSysApiService;
/**
* 巡查界面初始化
@ -302,7 +299,12 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
// 添加巡查统计表逻辑
statsPatrolUpdateEnd(tokenDto.getUserId(),totalTime,record.getPatrolStartTime(),patrolEndTime,record.getGrid());
sendPatrolMsg(record, SystemMessageType.USER_PATROL_STOP);
//结束巡查如果是榆山街道的工作人员,需要调用【更新用户积分(双实信息更新 网格巡查)】/api/points/behavior/updateUserPoints
UpdateUserPointsFormDTO updateUserPointsFormDTO=new UpdateUserPointsFormDTO();
updateUserPointsFormDTO.setCustomerId(record.getCustomerId());
updateUserPointsFormDTO.setStaffId(tokenDto.getUserId());
updateUserPointsFormDTO.setBehaviorType(BehaviorTypeYuShanEnum.GRID_PATROL.getCode());
yuShanSysApiService.updateUserPoints(record.getCustomerId(),Arrays.asList(updateUserPointsFormDTO));
}
private void sendPatrolMsg(StaffPatrolRecordEntity record, String messageType) {
@ -348,7 +350,15 @@ public class StaffPatrolRecordServiceImpl extends BaseServiceImpl<StaffPatrolRec
updateBatchById(list);
}
list.forEach(e->sendPatrolMsg(e, SystemMessageType.USER_PATROL_STOP));
list.forEach(e-> {
sendPatrolMsg(e, SystemMessageType.USER_PATROL_STOP);
//网格员结束巡查,如果是榆山街道的工作人员,需要调用【更新用户积分(双实信息更新 网格巡查)】/api/points/behavior/updateUserPoints
UpdateUserPointsFormDTO updateUserPointsFormDTO=new UpdateUserPointsFormDTO();
updateUserPointsFormDTO.setCustomerId(e.getCustomerId());
updateUserPointsFormDTO.setStaffId(e.getStaffId());
updateUserPointsFormDTO.setBehaviorType(BehaviorTypeYuShanEnum.GRID_PATROL.getCode());
yuShanSysApiService.updateUserPoints(e.getCustomerId(),Arrays.asList(updateUserPointsFormDTO));
});
}

Loading…
Cancel
Save