Browse Source

合并dev_analysis到dev_1118+analysis,命名为feature/heart&tag 。包含测试内容:爱心互助,用户角色标签

feature/dangjian
yujintao 6 years ago
parent
commit
2c6f36fa4b
  1. 6
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/GridOpiningExcel.java
  2. 6
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/RegisterExcel.java
  3. 2
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/service/impl/UserAnalysisServiceImpl.java
  4. 2
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml
  5. 155
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  6. 55
      esua-epdc/epdc-module/epdc-custom/epdc-custom-client/src/main/java/com/elink/esua/epdc/dto/consult/GridOperatorInfoDTO.java
  7. 34
      esua-epdc/epdc-module/epdc-custom/epdc-custom-client/src/main/java/com/elink/esua/epdc/dto/consult/MajorFunctionConfDTO.java
  8. 8
      esua-epdc/epdc-module/epdc-custom/epdc-custom-client/src/main/java/com/elink/esua/epdc/dto/consult/result/CheckStateResultDTO.java
  9. 3
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/pom.xml
  10. 20
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/controller/GridOperatorInfoController.java
  11. 30
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/entity/MajorFunctionConfEntity.java
  12. 47
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/redis/GridOperatorInfoRedis.java
  13. 139
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/service/impl/GridOperatorInfoServiceImpl.java
  14. 4
      esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/service/impl/MajorFunctionConfServiceImpl.java
  15. 3
      esua-epdc/epdc-module/epdc-group/epdc-group-server/pom.xml
  16. 4
      esua-epdc/epdc-module/epdc-news/epdc-news-server/pom.xml
  17. 5
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcCompleteAppUserDTO.java
  18. 3
      esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml

6
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/GridOpiningExcel.java

@ -16,16 +16,16 @@ public class GridOpiningExcel {
@Excel(name = "网格党建指导员姓名") @Excel(name = "网格党建指导员姓名")
private String gridLeader; private String gridLeader;
@Excel(name = "注册用户数") @Excel(name = "用户数")
private Integer registerCount; private Integer registerCount;
@Excel(name = "党员数") @Excel(name = "党员数")
private Integer partyCount; private Integer partyCount;
@Excel(name = "未认证用户数") @Excel(name = "未注册居民")
private Integer unAuthorizedCount; private Integer unAuthorizedCount;
@Excel(name = "认证居民数") @Excel(name = "已注册居民")
private int residentCount; private int residentCount;
@Excel(name = "新闻发布数") @Excel(name = "新闻发布数")

6
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/excel/RegisterExcel.java

@ -16,16 +16,16 @@ public class RegisterExcel {
@Excel(name = "街道名称") @Excel(name = "街道名称")
private String streetName; private String streetName;
@Excel(name = "注册用户数") @Excel(name = "用户数")
private Integer userCount; private Integer userCount;
@Excel(name = "党员数") @Excel(name = "党员数")
private Integer partyMemberCount; private Integer partyMemberCount;
@Excel(name = "认证居民数") @Excel(name = "已注册居民")
private Integer residentCount; private Integer residentCount;
@Excel(name = "未认证用户数") @Excel(name = "未注册居民")
private Integer unAuthorizedCount; private Integer unAuthorizedCount;
@Excel(name = "男") @Excel(name = "男")

2
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/user/service/impl/UserAnalysisServiceImpl.java

@ -147,6 +147,8 @@ public class UserAnalysisServiceImpl extends BaseServiceImpl<UserAnalysisDao, Us
streetIdList.add(rankResult.getStreetId()); streetIdList.add(rankResult.getStreetId());
} }
params.put("streetIdList", streetIdList); params.put("streetIdList", streetIdList);
// 页码设置为1,则下面几次查询不会拼接分页
params.put("page", NumConstant.ONE);
String partyFlag = MapUtil.getStr(params, "partyFlag"); String partyFlag = MapUtil.getStr(params, "partyFlag");
// 如果是党员排行列表,查询党员认证失败数 // 如果是党员排行列表,查询党员认证失败数
if (StringUtils.isNotBlank(partyFlag) && YesOrNoEnum.YES.value().equals(partyFlag)) { if (StringUtils.isNotBlank(partyFlag) && YesOrNoEnum.YES.value().equals(partyFlag)) {

2
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/resources/mapper/user/UserAnalysisDao.xml

@ -322,7 +322,7 @@
</if> </if>
AND ad.del_flag = 0 AND ad.del_flag = 0
AND ama.ID IS <if test='category != null and category == "1"'>NOT</if> NULL AND ama.ID IS <if test='category != null and category == "1"'>NOT</if> NULL
<if test="gridId != null and gridId != ''">and (ad1.id = #{gridId} or ad2.id = #{gridId})</if> <if test="gridId != null and gridId != ''">and (ad.id = #{gridId} or ad1.id = #{gridId} or ad2.id = #{gridId})</if>
GROUP BY ad.id GROUP BY ad.id
ORDER BY ama.CREATED_TIME DESC, ad.create_date DESC ORDER BY ama.CREATED_TIME DESC, ad.create_date DESC
</select> </select>

155
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java

@ -45,6 +45,7 @@ import com.elink.esua.epdc.redis.AppUserRedis;
import com.elink.esua.epdc.service.AppUserService; import com.elink.esua.epdc.service.AppUserService;
import com.elink.esua.epdc.utils.UserTagUtils; import com.elink.esua.epdc.utils.UserTagUtils;
import com.elink.esua.epdc.utils.WxMaServiceUtils; import com.elink.esua.epdc.utils.WxMaServiceUtils;
import com.sun.org.apache.regexp.internal.RE;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.WxMpService;
@ -766,48 +767,120 @@ public class AppUserServiceImpl implements AppUserService {
return userDto; return userDto;
} }
@Override /**
public Result<EpdcAppAuthorizationDTO> completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO infoDto) { * 验证用户手机号和身份证号码
*
// 验证手机号 * @param userId 用户id
this.checkSmsCode(infoDto.getMobile(), infoDto.getSmsCode()); * @param mobile 手机号
* @param partyFlag 是否党员
* @param identityNo 身份证号码
* @return java.lang.String 用户认证状态
* @author work@yujt.net.cn
* @date 2020/3/12 19:15
*/
private String checkMobileAndIdentityNo(String userId, String mobile, String partyFlag, String identityNo) {
UserDTO userDto = new UserDTO();
userDto.setId(userId);
userDto.setMobile(mobile);
userDto.setIdentityNo(identityNo);
userDto.setPartyFlag(partyFlag);
// 验证用户手机号和身份证号是否被注册
Result<String> verifyResult = userFeignClient.verifyUserCompleteData(userDto);
if (!verifyResult.success()) {
throw new RenException(verifyResult.getMsg());
}
return verifyResult.getData();
}
String userId = tokenDto.getUserId(); /**
Long gridId = getGridId(infoDto.getGridId(), tokenDto.getGridId(), userId); * 校验用身份证号码
*
* @param identityNo 身份证号码
* @param partyFlag 是否党员非党员身份证号码置空
* @return java.lang.String 身份证号码
* @author work@yujt.net.cn
* @date 2020/3/12 19:16
*/
private String fixAndCheckIdentityNo(String identityNo, String partyFlag) {
if (YesOrNoEnum.NO.value().equals(partyFlag)) {
return null;
}
// 党员提交,验证身份证号
identityNo = ModuleUtils.replaceIllegalCharacter(identityNo);
if (StringUtils.isBlank(identityNo)) {
throw new RenException("身份证号不能为空");
}
String verification = IdentityNoUtils.IdentityNoVerification(identityNo);
if (StringUtils.isNotBlank(verification)) {
throw new RenException(verification);
}
return identityNo;
}
/**
* 组装用户数据解析用户微信unionid头像
*
* @param userId 用户id
* @param userState 用户认证状态
* @param infoDto 用户提交的表单数据
* @return EpdcCompleteAppUserDTO
* @author work@yujt.net.cn
* @date 2020/3/12 19:20
*/
private EpdcCompleteAppUserDTO packageUserCompleteInfo(String userId, String userState, EpdcCompleteUserInfoFormDTO infoDto) {
UserDTO userDto = ConvertUtils.sourceToTarget(infoDto, UserDTO.class); UserDTO userDto = ConvertUtils.sourceToTarget(infoDto, UserDTO.class);
userDto.setDeptId(gridId); userDto.setDeptId(infoDto.getGridId());
userDto.setId(userId); userDto.setId(userId);
userDto.setRealName(ModuleUtils.replaceIllegalCharacter(infoDto.getRealName())); userDto.setRealName(ModuleUtils.replaceIllegalCharacter(infoDto.getRealName()));
// 党员提交,验证身份证号 String wxCode = infoDto.getWxCode();
String identityNo = ModuleUtils.replaceIllegalCharacter(infoDto.getIdentityNo()); String iv = infoDto.getIv();
if (YesOrNoEnum.YES.value().equals(userDto.getPartyFlag())) { String encryptedData = infoDto.getEncryptedData();
if (StringUtils.isBlank(identityNo)) { if (StringUtils.isNotBlank(wxCode) && StringUtils.isNotBlank(iv) && StringUtils.isNotBlank(encryptedData)) {
return new Result().error("身份证号不能为空"); WxMaUserInfo wxMaUserInfo = null;
String decrypt = null;
try {
decrypt = WxMaCryptUtils.decrypt(this.getUserSessionKey(wxCode), encryptedData, iv);
if (StringUtils.isNotBlank(decrypt)) {
wxMaUserInfo = JSONObject.parseObject(decrypt, WxMaUserInfo.class);
}
} catch (Exception e) {
log.error("解析或组装用户微信信息失败,用户id:::::{},解密数据:::::{}", userId, decrypt);
log.error(e.getMessage());
} }
String verification = IdentityNoUtils.IdentityNoVerification(identityNo); if (null == wxMaUserInfo || StringUtils.isBlank(wxMaUserInfo.getUnionId())) {
if (StringUtils.isNotBlank(verification)) { throw new RenException("解析微信数据失败,请刷新后重试");
return new Result().error(verification);
} }
userDto.setIdentityNo(identityNo);
}
// 验证用户提交的信息 userDto.setWxUnionId(wxMaUserInfo.getUnionId());
Result<String> verifyResult = userFeignClient.verifyUserCompleteData(userDto); userDto.setFaceImg(wxMaUserInfo.getAvatarUrl());
if (!verifyResult.success()) {
return new Result().error(verifyResult.getMsg());
} }
String userState = verifyResult.getData();
userDto.setWxUnionId(this.getWxUnionId(infoDto.getWxCode(), infoDto.getIv(), infoDto.getEncryptedData(), userId));
UserGridRelationDTO userGrid = this.packageUserGridRelationInfo(gridId);
EpdcCompleteAppUserDTO completeAppUserDto = ConvertUtils.sourceToTarget(userDto, EpdcCompleteAppUserDTO.class); EpdcCompleteAppUserDTO completeAppUserDto = ConvertUtils.sourceToTarget(userDto, EpdcCompleteAppUserDTO.class);
completeAppUserDto = this.packageUserCompleteInfo(completeAppUserDto, userState); return this.packageUserCompleteInfo(completeAppUserDto, userState);
// 组装对象,准备保存用户信息 }
@Override
public Result<EpdcAppAuthorizationDTO> completeUserInfo(TokenDto tokenDto, EpdcCompleteUserInfoFormDTO infoDto) {
String userId = tokenDto.getUserId();
// 验证手机号、验证码
this.checkSmsCode(infoDto.getMobile(), infoDto.getSmsCode());
// 验证身份证号格式,身份证号码字符串校正
String identityNo = fixAndCheckIdentityNo(infoDto.getIdentityNo(), infoDto.getPartyFlag());
// 验证手机号身份证号是否已被注册,若未被注册,返回当前用户的状态
String userState = checkMobileAndIdentityNo(userId, infoDto.getMobile(), infoDto.getPartyFlag(), identityNo);
Long gridId = getGridId(infoDto.getGridId(), tokenDto.getGridId(), userId);
infoDto.setGridId(gridId);
infoDto.setIdentityNo(identityNo);
// 组装对象,准备保存用户信息与网格信息
EpdcAppUserCompleteInfoFormDTO dto = new EpdcAppUserCompleteInfoFormDTO(); EpdcAppUserCompleteInfoFormDTO dto = new EpdcAppUserCompleteInfoFormDTO();
dto.setCompleteAppUser(completeAppUserDto); dto.setUserGridRelation(this.packageUserGridRelationInfo(gridId));
dto.setUserGridRelation(userGrid); dto.setCompleteAppUser(this.packageUserCompleteInfo(userId, userState, infoDto));
Result<UserDTO> completeResult = userFeignClient.completeUserInfo(dto); Result<UserDTO> completeResult = userFeignClient.completeUserInfo(dto);
if (!completeResult.success()) { if (!completeResult.success()) {
@ -827,8 +900,7 @@ public class AppUserServiceImpl implements AppUserService {
Result<CachingUserInfoDTO> cachingUserResult = userFeignClient.needCachingUserInfoByUserId(tokenDto.getUserId()); Result<CachingUserInfoDTO> cachingUserResult = userFeignClient.needCachingUserInfoByUserId(tokenDto.getUserId());
CachingUserInfoDTO cachingUserInfoDTO = cachingUserResult.getData(); CachingUserInfoDTO cachingUserInfoDTO = cachingUserResult.getData();
TokenDto newTokenDto = ConvertUtils.sourceToTarget(cachingUserInfoDTO, TokenDto.class); TokenDto newTokenDto = ConvertUtils.sourceToTarget(cachingUserInfoDTO, TokenDto.class);
tokenDto.setUserId(userDto.getId()); EpdcAppAuthorizationDTO authorizationDto = this.packageEpdcAppAuthorization(newTokenDto, String.valueOf(gridId), userState);
EpdcAppAuthorizationDTO authorizationDto = this.packageEpdcAppAuthorization(newTokenDto, userGrid.getGrid(), userDto.getState());
// 更新社群用户党员标识并加入关联的所有网格党员群 // 更新社群用户党员标识并加入关联的所有网格党员群
boolean partyFlag = UserTagUtils.containIdentity(cachingUserInfoDTO.getUserTagInfos(), UserTagEnum.PARTY_MEMBER); boolean partyFlag = UserTagUtils.containIdentity(cachingUserInfoDTO.getUserTagInfos(), UserTagEnum.PARTY_MEMBER);
@ -880,11 +952,8 @@ public class AppUserServiceImpl implements AppUserService {
* @author work@yujt.net.cn * @author work@yujt.net.cn
* @date 2020/2/28 14:51 * @date 2020/2/28 14:51
*/ */
@Deprecated
private String getWxUnionId(String wxCode, String iv, String encryptedData, String userId) { private String getWxUnionId(String wxCode, String iv, String encryptedData, String userId) {
if (StringUtils.isBlank(wxCode) || StringUtils.isBlank(iv) || StringUtils.isBlank(encryptedData)) {
return null;
}
String sessionKey = this.getUserSessionKey(wxCode);
/** /**
* 代码说明 * 代码说明
* 本来使用{@link cn.binarywang.wx.miniapp.api.WxMaUserService#getUserInfo(String, String, String)}方法解析用户unionid * 本来使用{@link cn.binarywang.wx.miniapp.api.WxMaUserService#getUserInfo(String, String, String)}方法解析用户unionid
@ -892,21 +961,7 @@ public class AppUserServiceImpl implements AppUserService {
* 上述方法本质上是通过{@link WxMaCryptUtils}工具类解密微信用户数据遂直接换用{@link WxMaCryptUtils#decrypt(String, String, String)}方法 * 上述方法本质上是通过{@link WxMaCryptUtils}工具类解密微信用户数据遂直接换用{@link WxMaCryptUtils#decrypt(String, String, String)}方法
* 将解密得到的JSON字符串{@link JSONObject}组装为目标对象添加异常捕获与日志输出 * 将解密得到的JSON字符串{@link JSONObject}组装为目标对象添加异常捕获与日志输出
*/ */
WxMaUserInfo wxMaUserInfo = null; return null;
String decrypt = null;
try {
decrypt = WxMaCryptUtils.decrypt(sessionKey, encryptedData, iv);
if (StringUtils.isNotBlank(decrypt)) {
wxMaUserInfo = JSONObject.parseObject(decrypt, WxMaUserInfo.class);
}
} catch (Exception e) {
log.error("解析或组装用户{}的微信信息失败,解密数据:::::", userId, decrypt);
log.error(e.getMessage());
}
if (null == wxMaUserInfo || StringUtils.isBlank(wxMaUserInfo.getUnionId())) {
throw new RenException("解析微信数据失败,请刷新后重试");
}
return wxMaUserInfo.getUnionId();
} }
@Override @Override

55
esua-epdc/epdc-module/epdc-custom/epdc-custom-client/src/main/java/com/elink/esua/epdc/dto/consult/GridOperatorInfoDTO.java

@ -19,6 +19,8 @@ package com.elink.esua.epdc.dto.consult;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
import lombok.Data; import lombok.Data;
@ -36,113 +38,118 @@ public class GridOperatorInfoDTO implements Serializable {
/** /**
* 主键 * 主键
*/ */
private String id; private String id;
/** /**
* 用户姓名 * 用户姓名
*/ */
private String realName; private String realName;
/** /**
* 性别 0女 1男 * 性别 0女 1男
*/ */
private String sex; private String sex;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer sort;
/** /**
* 联系电话 * 联系电话
*/ */
private String mobile; private String mobile;
/** /**
* 身份证号 * 身份证号
*/ */
private String identityNo; private String identityNo;
/** /**
* 头像访问地址 * 头像访问地址
*/ */
private String faceImg; private String faceImg;
/** /**
* 工作单位 * 工作单位
*/ */
private String workUnit; private String workUnit;
/** /**
* 职责类别id * 职责类别id
*/ */
private String dutyCategoryId; private String dutyCategoryId;
/** /**
* 前端收费展示 0否 1是 * 前端收费展示 0否 1是
*/ */
private String showFlag; private String showFlag;
/** /**
* 备注 * 备注
*/ */
private String remark; private String remark;
/** /**
* 居住网格id * 居住网格id
*/ */
private Long deptId; private Long deptId;
/** /**
* 父所有部门 * 父所有部门
*/ */
private String parentDeptIds; private String parentDeptIds;
/** /**
* 父所有部门 * 父所有部门
*/ */
private String parentDeptNames; private String parentDeptNames;
/** /**
* 所有部门ID * 所有部门ID
*/ */
private String[] allDeptIds; private String allDeptIds;
private String allDeptIdsStr;
/** /**
* 所有部门名称 * 所有部门名称
*/ */
private String allDeptNames; private String allDeptNames;
/** /**
* 乐观锁 * 乐观锁
*/ */
private Integer revision; private Integer revision;
/** /**
* 删除标识 01 * 删除标识 01
*/ */
private String delFlag; private String delFlag;
/** /**
* 创建人 * 创建人
*/ */
private String createdBy; private String createdBy;
/** /**
* 创建时间 * 创建时间
*/ */
private Date createdTime; private Date createdTime;
/** /**
* 更新人 * 更新人
*/ */
private String updatedBy; private String updatedBy;
/** /**
* 更新时间 * 更新时间
*/ */
private Date updatedTime; private Date updatedTime;
///////////////////下面的字段,为pc页面上送数据的绑定字段/////////////////////////////////
/**
* 新增是选择所属网格多选
*/
private List<Long[]> selectedDeptIds;
} }

34
esua-epdc/epdc-module/epdc-custom/epdc-custom-client/src/main/java/com/elink/esua/epdc/dto/consult/MajorFunctionConfDTO.java

@ -19,6 +19,7 @@ package com.elink.esua.epdc.dto.consult;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import lombok.Data; import lombok.Data;
@ -36,68 +37,73 @@ public class MajorFunctionConfDTO implements Serializable {
/** /**
* 主键 * 主键
*/ */
private String id; private String id;
/** /**
* 功能编码不可重复与前端商定一致目前包括consultState:咨询;cadreEvaluationState:干部评价; * 功能编码不可重复与前端商定一致目前包括consultState:咨询;cadreEvaluationState:干部评价;
*/ */
private String code; private String code;
/** /**
* 功能名称 * 功能名称
*/ */
private String name; private String name;
/** /**
* 是否可用 01 * 是否可用 01
*/ */
private String availableFlag; private String availableFlag;
/** /**
* 是否访问外链 01 * 是否访问外链 01
*/ */
private String externalFlag; private String externalFlag;
/**
* 需要拼接token 01
*/
private String tokenFlag;
/** /**
* 外链访问地址external_flag = 1则非空 * 外链访问地址external_flag = 1则非空
*/ */
private String externalUrl; private String externalUrl;
/** /**
* 备注 * 备注
*/ */
private String remark; private String remark;
/** /**
* 删除标识 01 * 删除标识 01
*/ */
private String delFlag; private String delFlag;
/** /**
* 乐观锁 * 乐观锁
*/ */
private Integer revision; private Integer revision;
/** /**
* 创建人 * 创建人
*/ */
private String createdBy; private String createdBy;
/** /**
* 创建时间 * 创建时间
*/ */
private Date createdTime; private Date createdTime;
/** /**
* 更新人 * 更新人
*/ */
private String updatedBy; private String updatedBy;
/** /**
* 更新时间 * 更新时间
*/ */
private Date updatedTime; private Date updatedTime;
private String imgUrl; private String imgUrl;
} }

8
esua-epdc/epdc-module/epdc-custom/epdc-custom-client/src/main/java/com/elink/esua/epdc/dto/consult/result/CheckStateResultDTO.java

@ -13,15 +13,9 @@ import java.io.Serializable;
public class CheckStateResultDTO implements Serializable { public class CheckStateResultDTO implements Serializable {
private static final long serialVersionUID = -8559260405823478733L; private static final long serialVersionUID = -8559260405823478733L;
/**
* availableFlag : 1
* externalFlag : 0
* externalUrl : http://pyt.kuntowcd.vztgvnx
* name : cadreEvaluationState
*/
private String availableFlag; private String availableFlag;
private String externalFlag; private String externalFlag;
private String tokenFlag;
private String externalUrl; private String externalUrl;
private String name; private String name;
private String imgUrl; private String imgUrl;

3
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/pom.xml

@ -306,6 +306,9 @@
<!--数据分析端小程序--> <!--数据分析端小程序-->
<analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId> <analysis.wx.ma.appId>wx9b6102a8ee5add65</analysis.wx.ma.appId>
<analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret> <analysis.wx.ma.secret>394f47d4e08fc0fd629231d3f68a34dc</analysis.wx.ma.secret>
<!--RocketMQ-->
<rocketmq.name.server>172.16.0.52:9876;172.16.0.54:9876</rocketmq.name.server>
<rocketmq.consumer.group>organizationGroup</rocketmq.consumer.group>
</properties> </properties>
</profile> </profile>
</profiles> </profiles>

20
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/controller/GridOperatorInfoController.java

@ -18,6 +18,7 @@
package com.elink.esua.epdc.modules.consult.controller; package com.elink.esua.epdc.modules.consult.controller;
import com.elink.esua.epdc.commons.mybatis.annotation.DataFilter; import com.elink.esua.epdc.commons.mybatis.annotation.DataFilter;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.IdentityNoUtils; import com.elink.esua.epdc.commons.tools.utils.IdentityNoUtils;
@ -32,6 +33,7 @@ import com.elink.esua.epdc.dto.consult.form.GridOperatorListFormDTO;
import com.elink.esua.epdc.dto.consult.result.GridOperatorListResultDTO; import com.elink.esua.epdc.dto.consult.result.GridOperatorListResultDTO;
import com.elink.esua.epdc.modules.consult.excel.GridOperatorInfoExcel; import com.elink.esua.epdc.modules.consult.excel.GridOperatorInfoExcel;
import com.elink.esua.epdc.modules.consult.service.GridOperatorInfoService; import com.elink.esua.epdc.modules.consult.service.GridOperatorInfoService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -71,11 +73,13 @@ public class GridOperatorInfoController {
//效验数据 //效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
//校验身份证 //校验身份证
String idenNoMsg = IdentityNoUtils.IdentityNoVerification(dto.getIdentityNo()); if (StringUtils.isNotBlank(dto.getIdentityNo())) {
if (idenNoMsg != null) { String idenNoMsg = IdentityNoUtils.IdentityNoVerification(dto.getIdentityNo());
return new Result().error(idenNoMsg); if (idenNoMsg != null) {
return new Result().error(idenNoMsg);
}
} }
dto.setShowFlag("0"); dto.setShowFlag(YesOrNoEnum.NO.value());
gridOperatorInfoService.save(dto); gridOperatorInfoService.save(dto);
return new Result(); return new Result();
} }
@ -85,9 +89,11 @@ public class GridOperatorInfoController {
//效验数据 //效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
//校验身份证 //校验身份证
String idenNoMsg = IdentityNoUtils.IdentityNoVerification(dto.getIdentityNo()); if (StringUtils.isNotBlank(dto.getIdentityNo())) {
if (idenNoMsg != null) { String idenNoMsg = IdentityNoUtils.IdentityNoVerification(dto.getIdentityNo());
return new Result().error(idenNoMsg); if (idenNoMsg != null) {
return new Result().error(idenNoMsg);
}
} }
gridOperatorInfoService.update(dto); gridOperatorInfoService.update(dto);
return new Result(); return new Result();

30
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/entity/MajorFunctionConfEntity.java

@ -23,7 +23,6 @@ import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date;
/** /**
* 小程序首页主要功能按钮状态配置 * 小程序首页主要功能按钮状态配置
@ -32,45 +31,50 @@ import java.util.Date;
* @since v1.0.0 2020-03-06 * @since v1.0.0 2020-03-06
*/ */
@Data @Data
@EqualsAndHashCode(callSuper=false) @EqualsAndHashCode(callSuper = false)
@TableName("epdc_major_function_conf") @TableName("epdc_major_function_conf")
public class MajorFunctionConfEntity extends BaseEpdcEntity { public class MajorFunctionConfEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 功能编码不可重复与前端商定一致目前包括consultState:咨询;cadreEvaluationState:干部评价; * 功能编码不可重复与前端商定一致目前包括consultState:咨询;cadreEvaluationState:干部评价;
*/ */
private String code; private String code;
/** /**
* 功能名称 * 功能名称
*/ */
private String name; private String name;
/** /**
* 是否可用 01 * 是否可用 01
*/ */
private String availableFlag; private String availableFlag;
/** /**
* 是否访问外链 01 * 是否访问外链 01
*/ */
private String externalFlag; private String externalFlag;
/**
* 需要拼接token 01
*/
private String tokenFlag;
/** /**
* 外链访问地址external_flag = 1则非空 * 外链访问地址external_flag = 1则非空
*/ */
private String externalUrl; private String externalUrl;
/** /**
* 备注 * 备注
*/ */
private String remark; private String remark;
/** /**
* 图标 * 图标
*/ */
private String imgUrl; private String imgUrl;
} }

47
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/redis/GridOperatorInfoRedis.java

@ -1,47 +0,0 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.consult.redis;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 网格员信息
*
* @author elink elink@elink-cn.com
* @since v1.0.0 2020-03-02
*/
@Component
public class GridOperatorInfoRedis {
@Autowired
private RedisUtils redisUtils;
public void delete(Object[] ids) {
}
public void set(){
}
public String get(String id){
return null;
}
}

139
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/service/impl/GridOperatorInfoServiceImpl.java

@ -17,6 +17,7 @@
package com.elink.esua.epdc.modules.consult.service.impl; package com.elink.esua.epdc.modules.consult.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
@ -32,10 +33,10 @@ import com.elink.esua.epdc.dto.consult.form.GridOperatorListFormDTO;
import com.elink.esua.epdc.dto.consult.result.GridOperatorListResultDTO; import com.elink.esua.epdc.dto.consult.result.GridOperatorListResultDTO;
import com.elink.esua.epdc.modules.consult.dao.GridOperatorInfoDao; import com.elink.esua.epdc.modules.consult.dao.GridOperatorInfoDao;
import com.elink.esua.epdc.modules.consult.entity.GridOperatorInfoEntity; import com.elink.esua.epdc.modules.consult.entity.GridOperatorInfoEntity;
import com.elink.esua.epdc.modules.consult.redis.GridOperatorInfoRedis;
import com.elink.esua.epdc.modules.consult.service.GridOperatorInfoService; import com.elink.esua.epdc.modules.consult.service.GridOperatorInfoService;
import com.elink.esua.epdc.modules.feign.AdminFeignClient; import com.elink.esua.epdc.modules.feign.AdminFeignClient;
import com.elink.esua.epdc.rocketmq.dto.OrganizationModifyDTO; import com.elink.esua.epdc.rocketmq.dto.OrganizationModifyDTO;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -55,9 +56,6 @@ import java.util.Map;
@Service @Service
public class GridOperatorInfoServiceImpl extends BaseServiceImpl<GridOperatorInfoDao, GridOperatorInfoEntity> implements GridOperatorInfoService { public class GridOperatorInfoServiceImpl extends BaseServiceImpl<GridOperatorInfoDao, GridOperatorInfoEntity> implements GridOperatorInfoService {
@Autowired
private GridOperatorInfoRedis gridOperatorInfoRedis;
@Autowired @Autowired
private AdminFeignClient adminFeignClient; private AdminFeignClient adminFeignClient;
@ -89,55 +87,105 @@ public class GridOperatorInfoServiceImpl extends BaseServiceImpl<GridOperatorInf
@Override @Override
public GridOperatorInfoDTO get(String id) { public GridOperatorInfoDTO get(String id) {
GridOperatorInfoEntity entity = baseDao.selectById(id); GridOperatorInfoEntity entity = baseDao.selectById(id);
GridOperatorInfoDTO gridOperatorInfoDTO = ConvertUtils.sourceToTarget(entity, GridOperatorInfoDTO.class); return ConvertUtils.sourceToTarget(entity, GridOperatorInfoDTO.class);
if (StringUtils.isNotBlank(entity.getAllDeptIds())) {
String[] depts = entity.getAllDeptIds().split(",");
List<String> ids = Arrays.asList(depts);
String[] allDeptIds = new String[(ids.subList(1, ids.size())).size()];
gridOperatorInfoDTO.setAllDeptIds((ids.subList(1, ids.size())).toArray(allDeptIds));
}
return gridOperatorInfoDTO;
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void save(GridOperatorInfoDTO dto) { public void save(GridOperatorInfoDTO dto) {
List<Long> operatorGridIdList = getOperatorGridId(dto);
if (CollUtil.isEmpty(operatorGridIdList)) {
return;
}
GridOperatorInfoEntity entity = ConvertUtils.sourceToTarget(dto, GridOperatorInfoEntity.class); GridOperatorInfoEntity entity = ConvertUtils.sourceToTarget(dto, GridOperatorInfoEntity.class);
Result<ParentAndAllDeptDTO> parentResult = null; for (Long deptId : operatorGridIdList) {
if (dto.getAllDeptIds() != null && dto.getAllDeptIds().length > 1) { // 填充部门信息字段
parentResult = adminFeignClient.getParentAndAllDept(dto.getAllDeptIds()[dto.getAllDeptIds().length - 1]); this.fillDeptInfoByGridId(entity, deptId);
if (null == entity.getDeptId() || StringUtils.isBlank(entity.getAllDeptNames())) {
continue;
}
entity.setId(null);
baseDao.insert(entity);
} }
if (parentResult != null) { }
if (!parentResult.success() || parentResult.getData() == null) {
throw new RenException("获取部门信息失败"); /**
} else { * 通过前端选择的部门id组装网格id集合
ParentAndAllDeptDTO deptDTO = parentResult.getData(); *
entity.setAllDeptIds(deptDTO.getAllDeptIds()); * @param selectedDeptIds
entity.setAllDeptNames(deptDTO.getAllDeptNames()); * @return java.util.List<java.lang.Long>
entity.setParentDeptIds(deptDTO.getParentDeptIds()); * @author work@yujt.net.cn
entity.setParentDeptNames(deptDTO.getParentDeptNames()); * @date 2020/3/12 10:30
entity.setDeptId(deptDTO.getGridId()); */
private List<Long> getOperatorGridId(List<Long[]> selectedDeptIds) {
if (CollUtil.isEmpty(selectedDeptIds)) {
throw new RenException("请选择网格人员所属部门");
}
List<Long> operatorGridIdList = Lists.newArrayList();
for (Long[] selectedDeptIdArray : selectedDeptIds) {
if (selectedDeptIdArray.length == NumConstant.THREE) {
operatorGridIdList.add(selectedDeptIdArray[NumConstant.TWO]);
} }
} }
insert(entity); return operatorGridIdList;
} }
/**
* 获取需要进行绑定的网格id并移除已绑定的网格
*
* @param operatorInfo
* @return java.util.List<java.lang.Long>
* @author work@yujt.net.cn
* @date 2020/3/12 11:19
*/
private List<Long> getOperatorGridId(GridOperatorInfoDTO operatorInfo) {
List<Long> operatorGridIdList = getOperatorGridId(operatorInfo.getSelectedDeptIds());
if (CollUtil.isEmpty(operatorGridIdList)) {
throw new RenException("获取网格人员所属网格失败");
}
QueryWrapper<GridOperatorInfoEntity> wrapper = new QueryWrapper<>();
wrapper.eq("real_name", operatorInfo.getRealName())
.eq("mobile", operatorInfo.getMobile());
List<GridOperatorInfoEntity> entityList = baseDao.selectList(wrapper);
if (CollUtil.isNotEmpty(entityList)) {
for (GridOperatorInfoEntity operatorInfoEntity : entityList) {
Long deptId = operatorInfoEntity.getDeptId();
if (operatorGridIdList.contains(deptId)) {
operatorGridIdList.remove(deptId);
}
}
}
return operatorGridIdList;
}
/**
* 组装网格人员机构信息
*
* @param gridOperator 网格员对象
* @param gridId 网格id
* @return void
* @author work@yujt.net.cn
* @date 2020/3/12 13:37
*/
private void fillDeptInfoByGridId(GridOperatorInfoEntity gridOperator, Long gridId) {
Result<ParentAndAllDeptDTO> adminResult = adminFeignClient.getParentAndAllDept(String.valueOf(gridId));
if (!adminResult.success() || null == adminResult.getData()) {
return;
}
ParentAndAllDeptDTO deptInfo = adminResult.getData();
gridOperator.setAllDeptIds(deptInfo.getAllDeptIds());
gridOperator.setAllDeptNames(deptInfo.getAllDeptNames());
gridOperator.setParentDeptIds(deptInfo.getParentDeptIds());
gridOperator.setParentDeptNames(deptInfo.getParentDeptNames());
gridOperator.setDeptId(gridId);
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void update(GridOperatorInfoDTO dto) { public void update(GridOperatorInfoDTO dto) {
GridOperatorInfoEntity entity = ConvertUtils.sourceToTarget(dto, GridOperatorInfoEntity.class); GridOperatorInfoEntity entity = ConvertUtils.sourceToTarget(dto, GridOperatorInfoEntity.class);
String[] allDeptIds = dto.getAllDeptIds();
Result<ParentAndAllDeptDTO> parentResult = adminFeignClient.getParentAndAllDept(String.valueOf(allDeptIds[allDeptIds.length - 1]));
if (!parentResult.success() || parentResult.getData() == null) {
throw new RenException("获取部门信息失败");
} else {
ParentAndAllDeptDTO deptDTO = parentResult.getData();
entity.setAllDeptIds(deptDTO.getAllDeptIds());
entity.setAllDeptNames(deptDTO.getAllDeptNames());
entity.setParentDeptIds(deptDTO.getParentDeptIds());
entity.setParentDeptNames(deptDTO.getParentDeptNames());
entity.setDeptId(deptDTO.getGridId());
}
updateById(entity); updateById(entity);
} }
@ -174,10 +222,10 @@ public class GridOperatorInfoServiceImpl extends BaseServiceImpl<GridOperatorInf
@Override @Override
public boolean isExistsByDutyId(String dutyCategoryId) { public boolean isExistsByDutyId(String dutyCategoryId) {
QueryWrapper queryWrapper= new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq(StringUtils.isNotBlank(dutyCategoryId),"DUTY_CATEGORY_ID",dutyCategoryId); queryWrapper.eq(StringUtils.isNotBlank(dutyCategoryId), "DUTY_CATEGORY_ID", dutyCategoryId);
Integer integer = baseDao.selectCount(queryWrapper); Integer integer = baseDao.selectCount(queryWrapper);
if(integer>0){ if (integer > 0) {
return true; return true;
} }
return false; return false;
@ -197,17 +245,16 @@ public class GridOperatorInfoServiceImpl extends BaseServiceImpl<GridOperatorInf
} }
/** /**
*
* 组织机构信息处理 * 组织机构信息处理
* *
* @params [dto, gridList]
* @return java.util.List<com.elink.esua.epdc.modules.consult.entity.GridOperatorInfoEntity> * @return java.util.List<com.elink.esua.epdc.modules.consult.entity.GridOperatorInfoEntity>
* @params [dto, gridList]
* @author liuchuang * @author liuchuang
* @since 2020/3/7 14:12 * @since 2020/3/7 14:12
*/ */
private List<GridOperatorInfoEntity> handleOrganizationInfo(OrganizationModifyDTO dto, List<GridOperatorInfoDTO> gridList) { private List<GridOperatorInfoEntity> handleOrganizationInfo(OrganizationModifyDTO dto, List<GridOperatorInfoDTO> gridList) {
List<GridOperatorInfoEntity> entities = new ArrayList<>(); List<GridOperatorInfoEntity> entities = new ArrayList<>();
for (GridOperatorInfoDTO grid: gridList) { for (GridOperatorInfoDTO grid : gridList) {
GridOperatorInfoEntity entity = new GridOperatorInfoEntity(); GridOperatorInfoEntity entity = new GridOperatorInfoEntity();
if (StringUtils.isNotEmpty(grid.getParentDeptIds()) && StringUtils.isNotEmpty(grid.getParentDeptNames())) { if (StringUtils.isNotEmpty(grid.getParentDeptIds()) && StringUtils.isNotEmpty(grid.getParentDeptNames())) {
List<String> parentDeptIds = Arrays.asList(grid.getParentDeptIds().split(",")); List<String> parentDeptIds = Arrays.asList(grid.getParentDeptIds().split(","));
@ -220,8 +267,8 @@ public class GridOperatorInfoServiceImpl extends BaseServiceImpl<GridOperatorInf
} }
} }
if (StringUtils.isNotEmpty(grid.getAllDeptIdsStr()) && StringUtils.isNotEmpty(grid.getAllDeptNames())) { if (StringUtils.isNotEmpty(grid.getAllDeptIds()) && StringUtils.isNotEmpty(grid.getAllDeptNames())) {
List<String> allDeptIds = Arrays.asList(grid.getAllDeptIdsStr().split(",")); List<String> allDeptIds = Arrays.asList(grid.getAllDeptIds().split(","));
List<String> allDeptNames = Arrays.asList(grid.getAllDeptNames().split("-")); List<String> allDeptNames = Arrays.asList(grid.getAllDeptNames().split("-"));
int index = allDeptIds.indexOf(dto.getDeptId().toString()); int index = allDeptIds.indexOf(dto.getDeptId().toString());
if (index >= 0 && allDeptNames.size() > index) { if (index >= 0 && allDeptNames.size() > index) {

4
esua-epdc/epdc-module/epdc-custom/epdc-custom-server/src/main/java/com/elink/esua/epdc/modules/consult/service/impl/MajorFunctionConfServiceImpl.java

@ -115,8 +115,8 @@ public class MajorFunctionConfServiceImpl extends BaseServiceImpl<MajorFunctionC
public Result<List<CheckStateResultDTO>> getCheckState() { public Result<List<CheckStateResultDTO>> getCheckState() {
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
List list = baseDao.selectList(queryWrapper); List list = baseDao.selectList(queryWrapper);
List<CheckStateResultDTO> checkStateResultDTOS = ConvertUtils.sourceToTarget(list, CheckStateResultDTO.class); List<CheckStateResultDTO> checkStateResults = ConvertUtils.sourceToTarget(list, CheckStateResultDTO.class);
return new Result<List<CheckStateResultDTO>>().ok(checkStateResultDTOS); return new Result<List<CheckStateResultDTO>>().ok(checkStateResults);
} }
} }

3
esua-epdc/epdc-module/epdc-group/epdc-group-server/pom.xml

@ -278,6 +278,9 @@
<nacos.register-enabled>true</nacos.register-enabled> <nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>172.16.0.52:8848</nacos.server-addr> <nacos.server-addr>172.16.0.52:8848</nacos.server-addr>
<nacos.ip></nacos.ip> <nacos.ip></nacos.ip>
<!--RocketMQ-->
<rocketmq.name.server>172.16.0.52:9876;172.16.0.54:9876</rocketmq.name.server>
<rocketmq.consumer.group>organizationGroup</rocketmq.consumer.group>
</properties> </properties>
</profile> </profile>

4
esua-epdc/epdc-module/epdc-news/epdc-news-server/pom.xml

@ -251,6 +251,10 @@
<!-- nacos --> <!-- nacos -->
<nacos.register-enabled>true</nacos.register-enabled> <nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>172.16.0.52:8848</nacos.server-addr> <nacos.server-addr>172.16.0.52:8848</nacos.server-addr>
<nacos.ip></nacos.ip>
<!--RocketMQ-->
<rocketmq.name.server>172.16.0.52:9876;172.16.0.54:9876</rocketmq.name.server>
<rocketmq.consumer.group>organizationGroup</rocketmq.consumer.group>
</properties> </properties>
</profile> </profile>

5
esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/epdc/EpdcCompleteAppUserDTO.java

@ -108,4 +108,9 @@ public class EpdcCompleteAppUserDTO implements Serializable {
* 居住网格id * 居住网格id
*/ */
private Long deptId; private Long deptId;
/**
* 用户头像
*/
private String faceImg;
} }

3
esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml

@ -274,6 +274,9 @@
<nacos.register-enabled>true</nacos.register-enabled> <nacos.register-enabled>true</nacos.register-enabled>
<nacos.server-addr>172.16.0.52:8848</nacos.server-addr> <nacos.server-addr>172.16.0.52:8848</nacos.server-addr>
<nacos.ip></nacos.ip> <nacos.ip></nacos.ip>
<!--RocketMQ-->
<rocketmq.name.server>172.16.0.52:9876;172.16.0.54:9876</rocketmq.name.server>
<rocketmq.consumer.group>organizationGroup</rocketmq.consumer.group>
</properties> </properties>
</profile> </profile>

Loading…
Cancel
Save