wxz 3 years ago
parent
commit
785cc9d70e
  1. 22
      epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java
  2. 4
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java
  3. 8
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/GuideListFormDTO.java
  4. 6
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/GuideListResultDTO.java
  5. 4
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/GuideController.java
  6. 6
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java
  7. 16
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/GuideReaderDao.java
  8. 44
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/GuideReaderEntity.java
  9. 34
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideReaderService.java
  10. 2
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideService.java
  11. 7
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  12. 35
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideReaderServiceImpl.java
  13. 23
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideServiceImpl.java
  14. 14
      epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.12__guide_reader.sql
  15. 6
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml
  16. 5
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml
  17. 21
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideReaderDao.xml
  18. 20
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AdviceListFormDTO.java
  19. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/BadgeAuditFormDTO.java
  20. 16
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CertificationAddFormDTO.java
  21. 26
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PageRegUserFormDTO.java
  22. 11
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ReplyAdviceFormDTO.java
  23. 18
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserBaseInfoResultDTO.java
  24. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java
  25. 16
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java
  26. 22
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java
  27. 18
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBaseInfoController.java
  28. 6
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserAdviceDao.java
  29. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java
  30. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java
  31. 7
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/OperUserService.java
  32. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserAdviceService.java
  33. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java
  34. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java
  35. 22
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/MyHomeServiceImpl.java
  36. 16
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java
  37. 58
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java
  38. 53
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java
  39. 28
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java
  40. 38
      epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml
  41. 3
      epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml
  42. 49
      epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml

22
epmet-module/gov-project/gov-project-server/src/main/java/com/epmet/service/impl/IcEventServiceImpl.java

@ -1870,6 +1870,28 @@ public class IcEventServiceImpl extends BaseServiceImpl<IcEventDao, IcEventEntit
logEntity.setActionDesc("转议题");
logEntity.setOperateTime(nowTime);
icEventOperationLogService.insert(logEntity);
// 来源于随手拍,随时讲发送站内信消息
if ("0".equals(icEventEntity.getSourceType())) {
// 通知
List<UserMessageFormDTO> msgList = new ArrayList<>();
UserMessageFormDTO messageFormDTO = new UserMessageFormDTO();
messageFormDTO.setCustomerId(formDTO.getCustomerId());
messageFormDTO.setApp(ProjectConstant.RESI);
messageFormDTO.setGridId(icEventEntity.getGridId());
messageFormDTO.setUserId(icEventEntity.getCreatedBy());
messageFormDTO.setTitle(UserMessageConstant.EVENT_TITILE);
// 获取当前工作人员缓存信息
CustomerStaffInfoCacheResult staffInfo = getStaffInfo(formDTO.getCustomerId(), formDTO.getCurrentUserId());
messageFormDTO.setMessageContent(String.format("%s将您上报的事件转为议题,请查看。", staffInfo.getAgencyName()));
messageFormDTO.setReadFlag(Constant.UNREAD);
messageFormDTO.setMessageType(UserMessageTypeConstant.IC_EVENT);
messageFormDTO.setTargetId(icEventEntity.getId());
msgList.add(messageFormDTO);
Result sendMessageRes = messageOpenFeignClient.saveUserMessageList(msgList);
if (!sendMessageRes.success()) {
log.warn(String.format("事件转议题,给居民端用户发送站内信异常,事件Id->%s", icEventEntity.getId()));
}
}
}
/**

4
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/CommonArticleListFormDTO.java

@ -39,5 +39,9 @@ public class CommonArticleListFormDTO implements Serializable {
* 排除的标签名称(高级配置里的参数)
* */
private String excludeTagName;
/**
* 是否置顶 1是0否
*/
private Integer isTop;
}

8
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/form/GuideListFormDTO.java

@ -16,7 +16,15 @@ import java.io.Serializable;
public class GuideListFormDTO extends PageFormDTO implements Serializable {
private static final long serialVersionUID = -4471422632936288213L;
/**
* tokenDto.customerId
*/
private String customerId;
/**
* tokenDto.userId
*/
private String userId;
/**
* 组织ID
*/

6
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/GuideListResultDTO.java

@ -32,4 +32,10 @@ public class GuideListResultDTO implements Serializable {
* 更新时间
*/
private Date updatedTime;
/**
* 1已读
* 0未读
*/
private Integer readFlag;
}

4
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/GuideController.java

@ -100,8 +100,10 @@ public class GuideController {
*/
@PostMapping("list")
public Result<PageData<GuideListResultDTO>> guideList(@LoginUser TokenDto tokenDto, @RequestBody GuideListFormDTO formDTO) {
formDTO.setCustomerId(tokenDto.getCustomerId());
formDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class);
PageData<GuideListResultDTO> page = guideService.guideList(tokenDto, formDTO);
PageData<GuideListResultDTO> page = guideService.guideList(formDTO);
return new Result<PageData<GuideListResultDTO>>().ok(page);
}

6
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/ArticleDao.java

@ -114,7 +114,11 @@ public interface ArticleDao extends BaseDao<ArticleEntity> {
* @author wangc
* @date 2020.06.02 16:04
**/
List<ArticleLatestResultDTO> selectLatestArticleMsg(@Param("gridId") String gridId, @Param("tagName") String tagName, @Param("excludeTagName") String excludeTagName, @Param("num") Integer num);
List<ArticleLatestResultDTO> selectLatestArticleMsg(@Param("gridId") String gridId,
@Param("tagName") String tagName,
@Param("excludeTagName") String excludeTagName,
@Param("num") Integer num,
@Param("isTop")Integer isTop);
/**
* @param gridId

16
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/GuideReaderDao.java

@ -0,0 +1,16 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.GuideReaderEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 办事指南阅读记录
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2023-02-02
*/
@Mapper
public interface GuideReaderDao extends BaseDao<GuideReaderEntity> {
}

44
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/GuideReaderEntity.java

@ -0,0 +1,44 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 办事指南阅读记录
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2023-02-02
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("guide_reader")
public class GuideReaderEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
private String customerId;
/**
* 办事指南id
*/
private String guideId;
/**
* 用户id;进入过办事指南详情就算是已读
*/
private String userId;
/**
* 工作端gov居民端resi
*/
private String userType;
}

34
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideReaderService.java

@ -0,0 +1,34 @@
package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.entity.GuideReaderEntity;
/**
* 办事指南阅读记录
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2023-02-02
*/
public interface GuideReaderService extends BaseService<GuideReaderEntity> {
/**
* 单条查询
*
* @param guideId
* @param userId
* @return GuideReaderDTO
* @author generator
* @date 2023-02-02
*/
GuideReaderEntity get(String guideId,String userId);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2023-02-02
*/
void save(GuideReaderEntity dto);
}

2
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/GuideService.java

@ -109,7 +109,7 @@ public interface GuideService extends BaseService<GuideEntity> {
* @Author zhaoqifeng
* @Date 2021/9/7 14:00
*/
PageData<GuideListResultDTO> guideList(TokenDto tokenDto, GuideListFormDTO formDTO);
PageData<GuideListResultDTO> guideList(GuideListFormDTO formDTO);
/**
* 添加指南

7
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java

@ -704,9 +704,12 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
**/
@Override
public List<ArticleLatestResultDTO> getLatestArticleList(CommonArticleListFormDTO commonArticleListFormDTO) {
return baseDao.selectLatestArticleMsg(commonArticleListFormDTO.getGridId(),commonArticleListFormDTO.getTagName(),commonArticleListFormDTO.getExcludeTagName(),
return baseDao.selectLatestArticleMsg(commonArticleListFormDTO.getGridId(),
commonArticleListFormDTO.getTagName(),
commonArticleListFormDTO.getExcludeTagName(),
null == commonArticleListFormDTO.getNum() || commonArticleListFormDTO.getNum() <= NumConstant.ZERO ?
NumConstant.FIVE : commonArticleListFormDTO.getNum());
NumConstant.FIVE : commonArticleListFormDTO.getNum(),
commonArticleListFormDTO.getIsTop());
}
/**

35
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideReaderServiceImpl.java

@ -0,0 +1,35 @@
package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.dao.GuideReaderDao;
import com.epmet.entity.GuideReaderEntity;
import com.epmet.service.GuideReaderService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 办事指南阅读记录
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2023-02-02
*/
@Service
public class GuideReaderServiceImpl extends BaseServiceImpl<GuideReaderDao, GuideReaderEntity> implements GuideReaderService {
@Override
public GuideReaderEntity get(String guideId,String userId) {
LambdaQueryWrapper<GuideReaderEntity> queryWrapper=new LambdaQueryWrapper<>();
queryWrapper.eq(GuideReaderEntity::getGuideId,guideId)
.eq(GuideReaderEntity::getUserId,userId);
GuideReaderEntity entity = baseDao.selectOne(queryWrapper);
return entity;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(GuideReaderEntity entity) {
insert(entity);
}
}

23
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/GuideServiceImpl.java

@ -22,6 +22,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.dto.result.CustomerStaffInfoCacheResult;
import com.epmet.commons.tools.exception.EpmetErrorCode;
@ -31,6 +32,7 @@ import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.constant.OrgInfoConstant;
import com.epmet.dao.GuideDao;
import com.epmet.dto.GuideDTO;
@ -38,10 +40,7 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.GuideDetailResultDTO;
import com.epmet.dto.result.GuideListResultDTO;
import com.epmet.dto.result.OrgResultDTO;
import com.epmet.entity.GuideAttachmentEntity;
import com.epmet.entity.GuideEntity;
import com.epmet.entity.GuideExternalLinkEntity;
import com.epmet.entity.GuideModuleEntity;
import com.epmet.entity.*;
import com.epmet.feign.GovOrgOpenFeignClient;
import com.epmet.service.*;
import com.github.pagehelper.PageHelper;
@ -140,15 +139,14 @@ public class GuideServiceImpl extends BaseServiceImpl<GuideDao, GuideEntity> imp
* @Date 2021/9/7 14:00
*/
@Override
public PageData<GuideListResultDTO> guideList(TokenDto tokenDto, GuideListFormDTO formDTO) {
public PageData<GuideListResultDTO> guideList(GuideListFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize());
formDTO.setCustomerId(tokenDto.getCustomerId());
List<GuideListResultDTO> list = baseDao.getGuideList(formDTO);
if (CollectionUtils.isNotEmpty(list)) {
list.forEach(item -> {
CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), item.getCreatedId());
CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(formDTO.getCustomerId(), item.getCreatedId());
if (null == staffInfoCache) {
item.setCategoryName("");
item.setCategoryName(StrConstant.EPMETY_STR);
} else {
item.setCreatedName(staffInfoCache.getRealName());
}
@ -390,6 +388,15 @@ public class GuideServiceImpl extends BaseServiceImpl<GuideDao, GuideEntity> imp
if (null != guideCollectionService.getCollection(tokenDto, formDTO.getGuideId())) {
result.setCollectionFlag(NumConstant.ONE_STR);
}
//记录已读未读
if (null == SpringContextUtils.getBean(GuideReaderService.class).get(formDTO.getGuideId(), tokenDto.getUserId())) {
GuideReaderEntity guideReaderEntity=new GuideReaderEntity();
guideReaderEntity.setGuideId(formDTO.getGuideId());
guideReaderEntity.setCustomerId(formDTO.getCustomerId());
guideReaderEntity.setUserId(tokenDto.getUserId());
guideReaderEntity.setUserType(tokenDto.getApp());
SpringContextUtils.getBean(GuideReaderService.class).save(guideReaderEntity);
}
return result;
}

14
epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.12__guide_reader.sql

@ -0,0 +1,14 @@
CREATE TABLE `guide_reader` (
`ID` varchar(64) NOT NULL COMMENT 'ID',
`CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户ID',
`GUIDE_ID` varchar(64) NOT NULL COMMENT '办事指南id',
`USER_ID` varchar(64) NOT NULL COMMENT '用户id;进入过办事指南详情就算是已读',
`USER_TYPE` varchar(10) NOT NULL COMMENT '工作端:gov;居民端:resi',
`DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(32) NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='办事指南阅读记录';

6
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/ArticleDao.xml

@ -187,7 +187,7 @@
</select>
<!-- 根据网格Id查找最新文章的相关信息列表 用处:居民端首页最新文章列表 参数:网格Id、客户定制化显示条数 -->
<select id="selectLatestArticleMsg" resultType="com.epmet.dto.result.ArticleLatestResultDTO">
<select id="selectLatestArticleMsg" parameterType="map" resultType="com.epmet.dto.result.ArticleLatestResultDTO">
SELECT
art.ID AS articleId,
art.TITLE AS articleTitle ,
@ -224,7 +224,9 @@
art.DEL_FLAG = '0'
AND
art.STATUS_FLAG = 'published'
<if test="isTop != null">
AND art.IS_TOP=#{isTop}
</if>
GROUP BY art.ID
HAVING 1 = 1
<if test="tagName != null and tagName != ''">

5
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideDao.xml

@ -26,7 +26,10 @@
g.TITLE AS "title",
gc.CATEGORY_NAME AS "categoryName",
g.CREATED_BY AS "createdId",
g.UPDATED_TIME AS "updatedTime"
g.UPDATED_TIME AS "updatedTime",
if(exists( select gr.id from guide_reader gr
where gr.del_flag='0'
and gr.GUIDE_ID=g.id),1,0) AS readFlag
FROM
guide g
INNER JOIN guide_category gc ON g.CATEGORY_CODE = gc.CATEGORY_CODE AND gc.DEL_FLAG = 0 AND gc.CUSTOMER_ID = #{customerId}

21
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/GuideReaderDao.xml

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.GuideReaderDao">
<resultMap type="com.epmet.entity.GuideReaderEntity" id="guideReaderMap">
<result property="id" column="ID"/>
<result property="customerId" column="CUSTOMER_ID"/>
<result property="guideId" column="GUIDE_ID"/>
<result property="userId" column="USER_ID"/>
<result property="userType" column="USER_TYPE"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
</mapper>

20
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/AdviceListFormDTO.java

@ -1,8 +1,11 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.validator.group.CustomerClientShowGroup;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @description:
@ -11,9 +14,15 @@ import javax.validation.constraints.Min;
*/
@Data
public class AdviceListFormDTO {
/**
* 工作端pc调用此接口校验参数
*/
public interface WorkPcGroup extends CustomerClientShowGroup {
}
/**
* 客户id 不填查询所有
*/
@NotBlank(message = "customerId不能为空",groups = WorkPcGroup.class)
private String customerId;
/**
@ -21,6 +30,11 @@ public class AdviceListFormDTO {
*/
private String agencyId;
/**
* 网格id
*/
private String gridId;
/**
* 是否被回复,0未回复1回复, 传空查询所有
*/
@ -44,12 +58,14 @@ public class AdviceListFormDTO {
/**
* 页码
*/
@NotNull(message = "pageNo不能为空",groups = WorkPcGroup.class)
@Min(1)
private int pageNo;
private Integer pageNo;
/**
* 页大小
*/
@NotNull(message = "pageSize不能为空",groups = WorkPcGroup.class)
@Min(1)
private int pageSize;
private Integer pageSize;
}

5
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/BadgeAuditFormDTO.java

@ -20,4 +20,9 @@ public class BadgeAuditFormDTO implements Serializable {
@NotBlank(message = "审核结果不能为空")
private String auditStatus;
private String auditRemark;
/**
* tokenDto.getUserId
*/
private String currentUserId;
}

16
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CertificationAddFormDTO.java

@ -65,4 +65,20 @@ public class CertificationAddFormDTO implements Serializable {
*/
private String code;
/**
* 是否需要发送站内信
* 您有一条徽章认证消息,%s申请认证%s请审核
* true:发送
* false:不发送
* 微信小程序发送
* 烟台钉钉自动通过默认false不发送
*/
private Boolean sendMsgFlag;
/**
* 自动通过标识
* true:自动通过目前只有烟台这么搞
*/
private Boolean autoPassFlag;
}

26
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/PageRegUserFormDTO.java

@ -0,0 +1,26 @@
package com.epmet.dto.form;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 来源于烟台需求pc端新增菜单用户完善信息列表
* @Author yzm
* @Date 2023/1/31 14:37
*/
@Data
public class PageRegUserFormDTO extends PageFormDTO implements Serializable {
private String agencyId;
private String gridId;
private String regStartTime;
private String regEndTime;
private String name;
/**
* 查询详情时也调用此接口
*/
private String userId;
}

11
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/ReplyAdviceFormDTO.java

@ -24,4 +24,15 @@ public class ReplyAdviceFormDTO implements Serializable {
private List<String> govImgList;
private String govContent;
/**
* 回复人id
* 工作端回复customer_staff.user_id
* 运营端回复oper_user.user_id
*/
private String replyUserId;
/**
* 政府端:gov居民端:resi运营端:oper
*/
private String app;
}

18
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserBaseInfoResultDTO.java

@ -1,7 +1,10 @@
package com.epmet.dto.result;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* 用户基础信息 返回值
@ -73,4 +76,19 @@ public class ResiUserBaseInfoResultDTO implements Serializable {
* 头像目前来源于微信后续系统顾客支持上传头像
*/
private String headImgUrl;
/**
* 注册时间
* user_Base_info.CREATED_TIME
* register_relation.CREATED_TIME
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date regTime;
/**
* 用户完善信息列表返回
*/
private String gridId;
private String agencyId;
private String showIdNum;
}

3
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/BadgeController.java

@ -152,7 +152,8 @@ public class BadgeController {
@NoRepeatSubmit
public Result audit(@LoginUser TokenDto tokenDto, @RequestBody BadgeAuditFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO);
badgeService.audit(tokenDto, formDTO);
formDTO.setCurrentUserId(tokenDto.getUserId());
badgeService.audit(formDTO);
return new Result();
}

16
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java

@ -17,8 +17,11 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.security.user.LoginUserUtil;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
@ -115,9 +118,11 @@ public class UserAdviceController {
* @Date 2020/11/10 9:34
*/
@PostMapping("replyadvice")
public Result replyAdvice(@RequestBody ReplyAdviceFormDTO dto) {
public Result replyAdvice(@LoginUser TokenDto tokenDto,@RequestBody ReplyAdviceFormDTO dto) {
dto.setReplyUserId(tokenDto.getUserId());
dto.setApp(tokenDto.getApp());
ValidatorUtils.validateEntity(dto);
userAdviceService.replyAdvice(dto, loginUserUtil.getLoginUserId());
userAdviceService.replyAdvice(dto);
return new Result();
}
@ -145,8 +150,11 @@ public class UserAdviceController {
* @Date 2020/11/10 9:32
*/
@PostMapping("advicelist")
public Result<PageData<AdviceListResultDTO>> adviceList(@RequestBody AdviceListFormDTO dto) {
ValidatorUtils.validateEntity(dto);
public Result<PageData<AdviceListResultDTO>> adviceList(@LoginUser TokenDto tokenDto, @RequestBody AdviceListFormDTO dto) {
if (AppClientConstant.APP_GOV.equals(tokenDto.getApp())) {
//工作端调用,校验参数
ValidatorUtils.validateEntity(dto, AdviceListFormDTO.WorkPcGroup.class);
}
//校验时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

22
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBadgeController.java

@ -1,6 +1,7 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.aop.NoRepeatSubmit;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
@ -56,6 +57,27 @@ public class UserBadgeController {
*/
@PostMapping("authbadgerecord")
public Result authBadgeRecord(@RequestBody CertificationAddFormDTO certificationAddFormDTO){
//发送微信站内信
certificationAddFormDTO.setSendMsgFlag(true);
certificationAddFormDTO.setAutoPassFlag(false);
ValidatorUtils.validateEntity(certificationAddFormDTO, CertificationAddFormDTO.CertificationAdd.class);
return userBadgeService.authBadgeRecord(certificationAddFormDTO);
}
/**
* 烟台钉钉居民端应用
*
* @param tokenDto
* @param certificationAddFormDTO
* @return
*/
@NoRepeatSubmit
@PostMapping("certification/add-autopass")
public Result certificationAddAutoPass(@LoginUser TokenDto tokenDto, @RequestBody CertificationAddFormDTO certificationAddFormDTO) {
certificationAddFormDTO.setUserId(tokenDto.getUserId());
certificationAddFormDTO.setSendMsgFlag(false);
// 是否自动通过
certificationAddFormDTO.setAutoPassFlag(true);
ValidatorUtils.validateEntity(certificationAddFormDTO, CertificationAddFormDTO.CertificationAdd.class);
return userBadgeService.authBadgeRecord(certificationAddFormDTO);
}

18
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBaseInfoController.java

@ -18,6 +18,8 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.annotation.MaskResponse;
import com.epmet.commons.tools.dto.form.PageFormDTO;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache;
import com.epmet.commons.tools.security.dto.TokenDto;
@ -30,10 +32,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.RegisterRelationDTO;
import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.form.CommonUserIdFormDTO;
import com.epmet.dto.form.DingLoginResiFormDTO;
import com.epmet.dto.form.IssueInitiatorFormDTO;
import com.epmet.dto.form.VolunteerRegResiFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.UserBaseInfoEntity;
import com.epmet.excel.UserBaseInfoExcel;
@ -238,5 +237,16 @@ public class UserBaseInfoController {
public Result<DingLoginResiResDTO> dingResiLogin(@RequestBody DingLoginResiFormDTO formDTO){
return new Result<DingLoginResiResDTO>().ok(userBaseInfoService.dingResiLogin(formDTO));
}
/**
* 来源于烟台需求pc端新增菜单用户完善信息列表
* @return
*/
@MaskResponse(fieldNames = { "showIdNum"}, fieldsMaskType = {MaskResponse.MASK_TYPE_ID_CARD })
@PostMapping("page-reguser")
public Result<PageData<ResiUserBaseInfoResultDTO>> pageRegUser(@RequestBody PageRegUserFormDTO formDTO){
ValidatorUtils.validateEntity(formDTO, PageFormDTO.AddUserInternalGroup.class);
return new Result<PageData<ResiUserBaseInfoResultDTO>>().ok(userBaseInfoService.pageRegUser(formDTO));
}
}

6
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserAdviceDao.java

@ -19,6 +19,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.UserAdviceDTO;
import com.epmet.dto.form.AdviceListFormDTO;
import com.epmet.dto.result.MyAdviceListResultDTO;
import com.epmet.entity.UserAdviceEntity;
import org.apache.ibatis.annotations.Mapper;
@ -37,11 +38,14 @@ public interface UserAdviceDao extends BaseDao<UserAdviceEntity> {
void replyAdvice(@Param("adviceId") String adviceId,
@Param("replyContent") String replyContent,
@Param("govContent") String govContent,
@Param("replyUserId") String loginUserId);
@Param("replyUserId") String replyUserId,
@Param("replyUserName")String replyUserName);
List<MyAdviceListResultDTO> myAdviceList(@Param("pageSize") int pageSize,
@Param("pageNo") int pageNo,
@Param("userId") String loginUserId);
int saveUserAdvice(UserAdviceDTO dto);
List<UserAdviceEntity> selectListAdvice(AdviceListFormDTO dto);
}

8
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java

@ -94,4 +94,12 @@ public interface UserBaseInfoDao extends BaseDao<UserBaseInfoEntity> {
String selectIdCard(String userId);
UserBaseInfoEntity selectUserByMobile(@Param("customerId") String customerId, @Param("mobile")String mobile);
List<ResiUserBaseInfoResultDTO> pageRegUser(@Param("customerId") String customerId,
@Param("agencyId") String agencyId,
@Param("gridId") String gridId,
@Param("name") String name,
@Param("regStartTime") String regStartTime,
@Param("regEndTime") String regEndTime,
@Param("userId") String userId);
}

3
epmet-user/epmet-user-server/src/main/java/com/epmet/service/BadgeService.java

@ -169,11 +169,10 @@ public interface BadgeService extends BaseService<BadgeEntity> {
* 审核
* @author zhaoqifeng
* @date 2020/11/5 11:08
* @param tokenDto
* @param formDTO
* @return void
*/
void audit(TokenDto tokenDto, BadgeAuditFormDTO formDTO);
void audit(BadgeAuditFormDTO formDTO);
void testCache();

7
epmet-user/epmet-user-server/src/main/java/com/epmet/service/OperUserService.java

@ -107,4 +107,11 @@ public interface OperUserService extends BaseService<OperUserEntity> {
* @param dto
*/
void updatePwd(String userId, PasswordDTO dto);
/**
* 查询运营人员信息
* @param userId
* @return
*/
OperUserDTO getOperUserDTO(String userId);
}

3
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserAdviceService.java

@ -102,12 +102,11 @@ public interface UserAdviceService extends BaseService<UserAdviceEntity> {
/**
* @Description 回复建议
* @param dto
* @param loginUserId
* @return void
* @Author liushaowen
* @Date 2020/11/6 16:44
*/
void replyAdvice(ReplyAdviceFormDTO dto, String loginUserId);
void replyAdvice(ReplyAdviceFormDTO dto);
/**
* @Description 建议详情

8
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java

@ -25,6 +25,7 @@ import com.epmet.dto.RegisterRelationDTO;
import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.form.CommonUserIdFormDTO;
import com.epmet.dto.form.DingLoginResiFormDTO;
import com.epmet.dto.form.PageRegUserFormDTO;
import com.epmet.dto.form.VolunteerRegResiFormDTO;
import com.epmet.dto.result.*;
import com.epmet.entity.UserBaseInfoEntity;
@ -220,4 +221,11 @@ public interface UserBaseInfoService extends BaseService<UserBaseInfoEntity> {
* @Date 2022/9/15 11:17
*/
DingLoginResiResDTO dingResiLogin(DingLoginResiFormDTO formDTO);
/**
* 用户完善信息列表
* @param formDTO
* @return
*/
PageData<ResiUserBaseInfoResultDTO> pageRegUser(PageRegUserFormDTO formDTO);
}

12
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/BadgeServiceImpl.java

@ -356,32 +356,30 @@ public class BadgeServiceImpl extends BaseServiceImpl<BadgeDao, BadgeEntity> imp
/**
* 审核
*
* @param tokenDto token
* @param formDTO 入参
* @return void
* @author zhaoqifeng
* @date 2020/11/5 11:08
*/
@Override
public void audit(TokenDto tokenDto, BadgeAuditFormDTO formDTO) {
public void audit(BadgeAuditFormDTO formDTO) {
if(BadgeConstant.REJECTED.equals(formDTO.getAuditStatus())) {
if (StringUtils.isEmpty(formDTO.getAuditRemark())) {
throw new ValidateException(EpmetErrorCode.CUSTOMER_VALIDATE_ERROR.getCode(), "驳回理由不能为空");
}
}
UserBadgeCertificateRecordDTO dto = userBadgeCertificateRecordService.get(formDTO.getRecordId());
BadgeDetailResultDTO detail = baseDao.selectDetail(dto.getCustomerId(), dto.getBadgeId());
dto.setAuditStatus(formDTO.getAuditStatus());
dto.setAuditRemark(formDTO.getAuditRemark());
dto.setStaffId(tokenDto.getUserId());
dto.setStaffId(formDTO.getCurrentUserId());
dto.setIsLast(BadgeConstant.YES);
dto.setAuditTime(new Date());
userBadgeCertificateRecordService.update(dto);
BadgeDetailResultDTO detail = baseDao.selectDetail(dto.getCustomerId(), dto.getBadgeId());
List<UserMessageFormDTO> msgList = new ArrayList<>();
List<WxSubscribeMessageFormDTO> wxmpMsgList = new ArrayList<>();
if(BadgeConstant.APPROVED.equals(formDTO.getAuditStatus())) {
ResiUserBadgeDTO resiUserBadgeDTO = new ResiUserBadgeDTO();
resiUserBadgeDTO.setCustomerId(dto.getCustomerId());
resiUserBadgeDTO.setBadgeId(dto.getBadgeId());
@ -435,13 +433,17 @@ public class BadgeServiceImpl extends BaseServiceImpl<BadgeDao, BadgeEntity> imp
wxmp.setGridId(dto.getGridId());
wxmpMsgList.add(wxmp);
}
if(CollectionUtils.isNotEmpty(msgList)){
messageFeignClient.saveUserMessageList(msgList);
}
if(CollectionUtils.isNotEmpty(wxmpMsgList)){
log.info("徽章消息,开始推送微信订阅消息");
Result result = epmetMessageOpenFeignClient.sendWxSubscribeMessage(wxmpMsgList);
if (!result.success()) {
log.error("徽章消息,发送微信订阅消息失败" + JSON.toJSONString(result));
}
}
}
@Override
public void testCache() {

22
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/MyHomeServiceImpl.java

@ -196,20 +196,25 @@ public class MyHomeServiceImpl implements MyHomeService {
*/
@Override
public HomeInfoResultDTO getHomeInfo(TokenDto tokenDto) {
HomeInfoResultDTO resultDto = new HomeInfoResultDTO();
//通过用户ID获取居民端用户信息
ResiUserBaseInfoResultDTO baseInfo = userBaseInfoDao.selecUserBaseInfoByUserId(tokenDto.getUserId());
if (null == baseInfo) {
return resultDto;
if (null == baseInfo||StringUtils.isBlank(baseInfo.getIdNum())) {
log.warn(String.format("user_base_info.id_num is null userId:%s",tokenDto.getUserId()));
return null;
}
//通过居民身份证号获取居民信息
LambdaQueryWrapper<IcResiUserEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IcResiUserEntity::getCustomerId, tokenDto.getCustomerId());
wrapper.eq(IcResiUserEntity::getIdCard, baseInfo.getIdNum());
wrapper.select(IcResiUserEntity::getId)
.select(IcResiUserEntity::getHomeId)
.select(IcResiUserEntity::getIdCard);
IcResiUserEntity icUser = icResiUserDao.selectOne(wrapper);
if (null == icUser) {
return resultDto;
log.warn(String.format("ic_resi_user is null id_card:%s",baseInfo.getIdNum()));
return null;
}
HomeInfoResultDTO resultDto = new HomeInfoResultDTO();
resultDto.setIcResiUserId(icUser.getId());
//通过房屋ID获取房屋信息
HouseInfoCache houseInfo = CustomerIcHouseRedis.getHouseInfo(tokenDto.getCustomerId(), icUser.getHomeId());
@ -221,17 +226,12 @@ public class MyHomeServiceImpl implements MyHomeService {
resultDto.setHouseCode(houseInfo.getHouseCode());
resultDto.setQrCodeUrl(houseInfo.getHouseQrcodeUrl());
resultDto.setCoding(houseInfo.getCoding());
//获取房屋房主信息,判断是否是房主
Result<IcHouseDTO> icHouseResult = govOrgOpenFeignClient.get(icUser.getHomeId());
if (!icHouseResult.success() || null == icHouseResult.getData()) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(), "获取房屋信息失败", "获取房屋信息失败");
}
if (icUser.getIdCard().equals(icHouseResult.getData().getOwnerIdCard())) {
if (icUser.getIdCard().equals(houseInfo.getOwnerIdCard())) {
resultDto.setIsOwner(NumConstant.ONE_STR);
} else {
resultDto.setIsOwner(NumConstant.ZERO_STR);
}
resultDto.setOwnerIdCard(icHouseResult.getData().getOwnerIdCard());
resultDto.setOwnerIdCard(houseInfo.getOwnerIdCard());
return resultDto;
}

16
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java

@ -196,4 +196,20 @@ public class OperUserServiceImpl extends BaseServiceImpl<OperUserDao, OperUserEn
baseDao.update(param, lambdaQueryWrapper);
}
/**
* 查询运营人员信息
*
* @param userId
* @return
*/
@Override
public OperUserDTO getOperUserDTO(String userId) {
LambdaQueryWrapper<OperUserEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OperUserEntity::getUserId, userId);
OperUserEntity entity = baseDao.selectOne(queryWrapper);
if (null != entity) {
return ConvertUtils.sourceToTarget(entity, OperUserDTO.class);
}
return null;
}
}

58
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java

@ -20,13 +20,14 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.redis.common.CustomerStaffRedis;
import com.epmet.commons.tools.scan.param.ImgScanParamDTO;
import com.epmet.commons.tools.scan.param.ImgTaskDTO;
import com.epmet.commons.tools.scan.param.TextScanParamDTO;
@ -35,10 +36,12 @@ import com.epmet.commons.tools.scan.result.SyncScanResult;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.ScanContentUtils;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.constant.UserAdviceConstant;
import com.epmet.dao.UserAdviceDao;
import com.epmet.dto.CustomerDTO;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.OperUserDTO;
import com.epmet.dto.UserAdviceDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.AdviceDetailResultDTO;
@ -52,6 +55,8 @@ import com.epmet.feign.OperCrmOpenFeignClient;
import com.epmet.service.UserAdviceImgService;
import com.epmet.service.UserAdviceService;
import com.epmet.service.UserResiInfoService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import io.jsonwebtoken.lang.Collections;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
@ -148,14 +153,13 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
/**
* @param dto
* @param loginUserId
* @return void
* @Description 回复建议
* @Author liushaowen
* @Date 2020/11/6 16:44
*/
@Override
public void replyAdvice(ReplyAdviceFormDTO dto, String loginUserId) {
public void replyAdvice(ReplyAdviceFormDTO dto) {
//检验是否已经回复过
UserAdviceEntity userAdviceEntity = baseDao.selectById(dto.getAdviceId());
if (StringUtils.isNotBlank(userAdviceEntity.getReplyContent()) || StringUtils.isNotBlank(userAdviceEntity.getReplyUserId())) {
@ -164,9 +168,16 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
//审核图片
auditPic(dto.getGovImgList());
//审核文字
auditText(dto.getReplyContent());
// auditText(dto.getReplyContent());// 运营端或者工组人员回复,不需要走内容审核了。
String replyUserName = StrConstant.EPMETY_STR;
if (AppClientConstant.APP_GOV.equals(dto.getApp())) {
replyUserName = CustomerStaffRedis.getStaffInfo(userAdviceEntity.getCustomerId(), dto.getReplyUserId()).getRealName();
} else if (AppClientConstant.APP_OPER.equals(dto.getApp())) {
OperUserDTO operUserDTO = SpringContextUtils.getBean(OperUserServiceImpl.class).getOperUserDTO(dto.getReplyUserId());
replyUserName = null != operUserDTO ? operUserDTO.getRealName() : StrConstant.EPMETY_STR;
}
//更新advice表
baseDao.replyAdvice(dto.getAdviceId(), dto.getReplyContent(), dto.getGovContent(), loginUserId);
baseDao.replyAdvice(dto.getAdviceId(), dto.getReplyContent(), dto.getGovContent(), dto.getReplyUserId(),replyUserName);
//如果govImg不为空,插入advice_img表
List<String> govImgList = dto.getGovImgList();
if (!Collections.isEmpty(govImgList)) {
@ -179,7 +190,7 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
UserAdviceImgEntity entity = new UserAdviceImgEntity();
entity.setImgUrl(govImgList.get(i));
entity.setAdviceId(dto.getAdviceId());
entity.setType("oper");
entity.setType(dto.getApp());
userAdviceImgEntities.add(entity);
}
userAdviceImgService.insertBatch(userAdviceImgEntities);
@ -222,9 +233,9 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
List<String> govImgList = new ArrayList<>();
List<String> resiImgList = new ArrayList<>();
for (UserAdviceImgEntity entity : imgsByAdviceId) {
if ("resi".equals(entity.getType())) {
if (AppClientConstant.APP_RESI.equals(entity.getType())) {
resiImgList.add(entity.getImgUrl());
} else if ("oper".equals(entity.getType())) {
} else if (AppClientConstant.APP_OPER.equals(entity.getType())||AppClientConstant.APP_GOV.equals(entity.getType())) {
govImgList.add(entity.getImgUrl());
}
}
@ -242,7 +253,7 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
*/
@Override
public PageData<AdviceListResultDTO> adviceList(AdviceListFormDTO dto) {
//page分页
/*//page分页
Page<UserAdviceEntity> page = new Page<>(dto.getPageNo(), dto.getPageSize());
//时间降序
page.addOrder(OrderItem.desc(FieldConstant.CREATED_TIME));
@ -300,7 +311,30 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
}
result.setRecords(records);
return getPageData(result, AdviceListResultDTO.class);
return getPageData(result, AdviceListResultDTO.class);*/
PageHelper.startPage(dto.getPageNo(), dto.getPageSize());
List<UserAdviceEntity> list = baseDao.selectListAdvice(dto);
List<AdviceListResultDTO> records=ConvertUtils.sourceToTarget(list,AdviceListResultDTO.class);
//拼接type
for (int i = 0; i < records.size(); i++) {
if (!"*".equals(records.get(i).getAdviceType())) {
StringBuilder type = new StringBuilder();
if (records.get(i).getAdviceType().contains("gov")) {
type.append(UserAdviceConstant.GOV_TYPE_TEXT);
}
if (records.get(i).getAdviceType().contains("software")) {
if (type.length() != 0) {
type.append("\n");
}
type.append(UserAdviceConstant.SOFTWARE_TYPE_TEXT);
}
records.get(i).setAdviceType(type.toString());
}
}
PageInfo<AdviceListResultDTO> pageInfo = new PageInfo<>(records);
return new PageData<>(records, pageInfo.getTotal());
}
/**
@ -387,7 +421,7 @@ public class UserAdviceServiceImpl extends BaseServiceImpl<UserAdviceDao, UserAd
UserAdviceImgEntity entity = new UserAdviceImgEntity();
entity.setImgUrl(govImgList.get(i));
entity.setAdviceId(userAdviceDTO.getId());
entity.setType("resi");
entity.setType(AppClientConstant.APP_RESI);
userAdviceImgEntities.add(entity);
}
userAdviceImgService.insertBatch(userAdviceImgEntities);

53
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBadgeServiceImpl.java

@ -1,6 +1,7 @@
package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException;
@ -8,6 +9,7 @@ import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.utils.SpringContextUtils;
import com.epmet.commons.tools.validator.PhoneValidatorUtils;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.constant.BadgeConstant;
@ -24,6 +26,8 @@ import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.redis.UserBadgeRedis;
import com.epmet.redis.UserBaseInfoRedis;
import com.epmet.service.ResiUserBadgeService;
import com.epmet.service.UserBadgeCertificateRecordService;
import com.epmet.service.UserBadgeService;
import com.epmet.service.UserBaseInfoService;
import com.epmet.util.ModuleConstant;
@ -274,8 +278,11 @@ public class UserBadgeServiceImpl implements UserBadgeService {
List<String> userIds = new ArrayList<>();
userIds.add(certificationAddFormDTO.getUserId());
List<UserBaseInfoResultDTO> userBaseInfoResultDTOS = userBaseInfoService.queryUserBaseInfo(userIds);
if (CollectionUtils.isEmpty(userBaseInfoResultDTOS)) {
throw new RenException("查询用户基本信息集合为空......");
if (CollectionUtils.isEmpty(userBaseInfoResultDTOS)||null==userBaseInfoResultDTOS.get(NumConstant.ZERO)) {
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),String.format("查询用户基本信息集合为空,userId:%s",certificationAddFormDTO.getUserId()),"查询用户基本信息异常");
}
if(StringUtils.isBlank(userBaseInfoResultDTOS.get(NumConstant.ZERO).getRegisteredGridId())){
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"异常信息:注册网格为空","服务器开小差了...注册网格为空");
}
userBadgeDao.updateCertificateRecordIsLast(form.getBadgeId(),form.getUserId());
form.setGridId(userBaseInfoResultDTOS.get(NumConstant.ZERO).getRegisteredGridId());
@ -283,7 +290,10 @@ public class UserBadgeServiceImpl implements UserBadgeService {
form.setCertificationImg(certificationAddFormDTO.getCertificationImg());
form.setSurname(certificationAddFormDTO.getSurname());
log.info(JSON.toJSONString(form));
String recordId=IdWorker.getIdStr();
form.setId(recordId);
userBadgeDao.insertUserBadgeCertificateRecord(form);
if(certificationAddFormDTO.getSendMsgFlag()){
//TODO 站内信发送
String badgeName = badgeDao.selectBadgeName(form.getCustomerId(), form.getBadgeId());
String s = StringUtils.isBlank(userBaseInfoResultDTOS.get(NumConstant.ZERO).getDistrict()) ? userBaseInfoResultDTOS.get(NumConstant.ZERO).getRealName() : userBaseInfoResultDTOS.get(NumConstant.ZERO).getDistrict().concat(userBaseInfoResultDTOS.get(NumConstant.ZERO).getRealName());
@ -292,8 +302,45 @@ public class UserBadgeServiceImpl implements UserBadgeService {
sendMessage(BadgeConstant.AUTH_TITLE,msg,form.getGridId(),form.getUserId(),form.getCustomerId(),
UserMessageTypeConstant.BADGE_AUTH_APPLY,
form.getId());
}
//烟台:徽章认证自动审核通过
if(certificationAddFormDTO.getAutoPassFlag()){
BadgeAuditFormDTO badgeAuditFormDTO=new BadgeAuditFormDTO();
badgeAuditFormDTO.setRecordId(recordId);
//审核状态 approved:审核通过,rejected:审核驳回;auditing:审核中
badgeAuditFormDTO.setAuditStatus(BadgeConstant.APPROVED);
badgeAuditFormDTO.setCurrentUserId("APP_USER");
autoPassBadge(badgeAuditFormDTO);
}
Map resultMap=new HashMap();
resultMap.put("recordId",recordId);
return new Result().ok(resultMap);
}
/**
* 烟台:徽章认证自动审核通过
* @param badgeAuditFormDTO
*/
private void autoPassBadge(BadgeAuditFormDTO badgeAuditFormDTO) {
UserBadgeCertificateRecordDTO dto = SpringContextUtils.getBean(UserBadgeCertificateRecordService.class).get(badgeAuditFormDTO.getRecordId());
dto.setAuditStatus(badgeAuditFormDTO.getAuditStatus());
dto.setAuditRemark(badgeAuditFormDTO.getAuditRemark());
dto.setStaffId(badgeAuditFormDTO.getCurrentUserId());
dto.setIsLast(BadgeConstant.YES);
dto.setAuditTime(new Date());
SpringContextUtils.getBean(UserBadgeCertificateRecordService.class).update(dto);
ResiUserBadgeDTO resiUserBadgeDTO = new ResiUserBadgeDTO();
resiUserBadgeDTO.setCustomerId(dto.getCustomerId());
resiUserBadgeDTO.setBadgeId(dto.getBadgeId());
resiUserBadgeDTO.setGridId(dto.getGridId());
resiUserBadgeDTO.setUserId(dto.getUserId());
resiUserBadgeDTO.setIsOpened(NumConstant.ONE);
resiUserBadgeDTO.setCertificationAutidStatus(dto.getAuditStatus());
SpringContextUtils.getBean(ResiUserBadgeService.class).save(resiUserBadgeDTO);
//更新Redis
userBadgeRedis.pushOrRemoveUserBadge4List(dto.getUserId(),dto.getBadgeId(),dto.getCustomerId());
return new Result();
}
private void validateParams(CertificationAddFormDTO certificationAddFormDTO, AuthFieldFormDTO authFieldFormDTO) {

28
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java

@ -34,6 +34,7 @@ import com.epmet.commons.tools.redis.common.CustomerOrgRedis;
import com.epmet.commons.tools.redis.common.bean.GridInfoCache;
import com.epmet.commons.tools.redis.common.bean.ResiUserInfoCache;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.EpmetRequestHolder;
import com.epmet.commons.tools.utils.NameUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.*;
@ -41,10 +42,7 @@ import com.epmet.dto.RegisterRelationDTO;
import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.CommonUserIdFormDTO;
import com.epmet.dto.form.DingLoginResiFormDTO;
import com.epmet.dto.form.UserRoleFormDTO;
import com.epmet.dto.form.VolunteerRegResiFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.RegisterRelationEntity;
import com.epmet.entity.UserBaseInfoEntity;
@ -58,6 +56,8 @@ import com.epmet.service.RegisterRelationService;
import com.epmet.service.UserBaseInfoService;
import com.epmet.service.UserResiInfoService;
import com.epmet.util.ModuleConstant;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@ -602,4 +602,24 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl<UserBaseInfoDao, Us
}
return result;
}
/**
* 用户完善信息列表
*
* @param formDTO
* @return
*/
@Override
public PageData<ResiUserBaseInfoResultDTO> pageRegUser(PageRegUserFormDTO formDTO) {
PageHelper.startPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getIsPage());
List<ResiUserBaseInfoResultDTO> list = baseDao.pageRegUser(EpmetRequestHolder.getLoginUserCustomerId(),
formDTO.getAgencyId(),
formDTO.getGridId(),
formDTO.getName(),
formDTO.getRegStartTime(),
formDTO.getRegEndTime(),
formDTO.getUserId());
PageInfo<ResiUserBaseInfoResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
}

38
epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml

@ -39,7 +39,7 @@
reply_user_id = #{replyUserId},
reply_time = now(),
gov_content = #{govContent},
reply_user_name = (select real_name from oper_user where user_id = #{replyUserId} and del_flag = 0),
reply_user_name = #{replyUserName},
updated_by = #{replyUserId},
updated_time = now()
where id = #{adviceId} and del_flag = 0
@ -116,4 +116,40 @@
0,0,#{userId},#{adviceTime},#{userId},#{adviceTime}
)
</insert>
<select id="selectListAdvice" parameterType="com.epmet.dto.form.AdviceListFormDTO" resultType="com.epmet.entity.UserAdviceEntity">
SELECT
ua.*
FROM
user_advice ua
WHERE
ua.DEL_FLAG = '0'
<if test="customerId != null and customerId.trim() != ''">
AND ua.CUSTOMER_ID = #{customerId}
</if>
<if test="agencyId != null and agencyId.trim() != ''">
AND (
ua.AGENCY_ID = #{agencyId}
OR ua.AGENCY_PIDS LIKE concat( '%', #{agencyId}, '%' ))
</if>
<if test="gridId != null and gridId.trim() != ''">
AND ua.GRID_ID = #{gridId}
</if>
<if test="isReply == '1'">
AND ua.REPLY_USER_ID IS NOT NULL
</if>
<if test="isReply == '0'">
AND ( ua.REPLY_USER_ID IS NULL OR ua.REPLY_USER_ID = '' )
</if>
<if test="adviceType != null and adviceType.trim() != ''">
AND ua.ADVICE_TYPE LIKE concat( '%', #{adviceType}, '%' )
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT( ua.CREATED_TIME, '%Y-%m-%d %h:%i:%s' ) &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT( ua.CREATED_TIME, '%Y-%m-%d %h:%i:%s' ) &lt;= #{endTime}
</if>
order by ua.CREATED_TIME desc
</select>
</mapper>

3
epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml

@ -171,9 +171,6 @@
<!-- 徽章审核记录表插入 -->
<insert id="insertUserBadgeCertificateRecord" useGeneratedKeys="true" keyColumn="ID" keyProperty="id" parameterType="com.epmet.dto.UserBadgeCertificateRecordDTO">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
select replace(uuid(),'-','') AS ID
</selectKey>
INSERT INTO user_badge_certificate_record (
ID,
CUSTOMER_ID,

49
epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml

@ -83,7 +83,8 @@
DISTRICT district,
BUILDING_ADDRESS buildingAddress,
NICKNAME nickname,
HEAD_IMG_URL headImgUrl
HEAD_IMG_URL headImgUrl,
CREATED_TIME as regTime
FROM user_base_info
WHERE DEL_FLAG = '0'
AND USER_ID = #{userId}
@ -167,4 +168,50 @@
AND ubi.DEL_FLAG = '0'
order by ubi.CREATED_TIME desc limit 1
</select>
<select id="pageRegUser" parameterType="map" resultType="com.epmet.dto.result.ResiUserBaseInfoResultDTO">
SELECT
ubi.USER_ID userId,
ubi.SURNAME surname,
ubi.`NAME` `name`,
ubi.REAL_NAME realName,
ubi.ID_NUM idNum,
ubi.GENDER gender,
IFNULL( ubi.MOBILE, '' ) mobile,
ubi.STREET street,
ubi.DISTRICT district,
ubi.BUILDING_ADDRESS buildingAddress,
ubi.NICKNAME nickname,
ubi.HEAD_IMG_URL headImgUrl,
rr.CREATED_TIME as regTime,
rr.GRID_ID,
rr.AGENCY_ID,
ubi.ID_NUM as showIdNum
FROM
register_relation rr
LEFT JOIN user_base_info ubi ON ( rr.USER_ID = ubi.USER_ID )
WHERE
rr.DEL_FLAG = '0'
AND rr.CUSTOMER_ID = #{customerId}
AND rr.FIRST_REGISTER = '1'
<if test="userId != null and userId.trim() != ''">
AND rr.USER_ID = #{userId}
</if>
<if test="gridId != null and gridId.trim() != ''">
AND rr.GRID_ID = #{gridId}
</if>
<if test="agencyId != null and agencyId.trim() != ''">
AND rr.AGENCY_ID_PATH LIKE concat( '%', #{agencyId}, '%' )
</if>
<if test="name != null and name.trim() != ''">
and ubi.REAL_NAME like concat( '%', #{name}, '%' )
</if>
<if test="regStartTime != null and regStartTime != ''">
AND DATE_FORMAT( rr.CREATED_TIME, '%Y%m%d' ) &gt;= #{regStartTime}
</if>
<if test="regEndTime != null and regEndTime != ''">
AND DATE_FORMAT( rr.CREATED_TIME, '%Y%m%d' ) &lt;= #{regEndTime}
</if>
order by rr.CREATED_TIME desc
</select>
</mapper>

Loading…
Cancel
Save