Browse Source

Merge remote-tracking branch 'origin/dev0.2' into dev0.2

# Conflicts:
#	epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RoleDao.java
#	epmet-user/epmet-user-server/src/main/java/com/epmet/service/RoleService.java
#	epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserRoleService.java
#	epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RoleServiceImpl.java
#	epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java
#	epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserRoleServiceImpl.java
master
sunyuchao 6 years ago
parent
commit
aba13685f3
  1. 8
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  2. 6
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/SysSmsDao.java
  3. 11
      epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java
  4. 22
      epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/SysSmsDao.xml
  5. 4
      epmet-module/epmet-oss/epmet-oss-server/pom.xml
  6. 2
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java
  7. 1
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/dao/OssDao.java
  8. 2
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java
  9. 5
      epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java
  10. 8
      epmet-module/epmet-oss/epmet-oss-server/src/main/resources/mapper/SysOssDao.xml
  11. 2
      epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java
  12. 65
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java
  13. 36
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/form/ResiQueryCommentFormDTO.java
  14. 52
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/result/ResiCommentResultDTO.java
  15. 96
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/ResiTopicAttachmentDTO.java
  16. 24
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiPublishCommentFormDTO.java
  17. 30
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java
  18. 46
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicPageFormDTO.java
  19. 22
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicPublishFormDTO.java
  20. 49
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java
  21. 67
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicInfoResultDTO.java
  22. 57
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java
  23. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/entity/ResiTopicCommentEntity.java
  24. 1
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/exception/ModuleErrorCode.java
  25. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java
  26. 2
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  27. 144
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java
  28. 54
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicAttachmentDao.java
  29. 25
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicCommentDao.java
  30. 61
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java
  31. 11
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicOperationDao.java
  32. 66
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicAttachmentEntity.java
  33. 4
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicOperationEntity.java
  34. 96
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicAttachmentService.java
  35. 28
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicCommentService.java
  36. 88
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java
  37. 100
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicAttachmentServiceImpl.java
  38. 79
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java
  39. 392
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java
  40. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java
  41. 102
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicAttachmentDao.xml
  42. 61
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml
  43. 210
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml
  44. 47
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicOperationDao.xml
  45. 6
      epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/UserAccessServiceImpl.java
  46. 6
      epmet-module/resi-partymember/resi-partymember-server/pom.xml
  47. 10
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java
  48. 6
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java
  49. 27
      epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java
  50. 8
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserRoleDTO.java
  51. 5
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/VisitedFormDTO.java
  52. 62
      epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java
  53. 134
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java
  54. 12
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RoleDao.java
  55. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java
  56. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/RoleService.java
  57. 137
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserRoleService.java
  58. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridVisitedServiceImpl.java
  59. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java
  60. 8
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RoleServiceImpl.java
  61. 372
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java
  62. 188
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserRoleServiceImpl.java
  63. 12
      epmet-user/epmet-user-server/src/main/resources/mapper/RoleDao.xml

8
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -11,7 +11,13 @@ public enum EpmetErrorCode {
GROUP_ALREADY_EXISTED(8003,"您的组名已存在,请重新修改"),
ALREADY_APPLIED_GROUP(8004,"该群已申请过,请耐心等待审核"),
ONLY_LEADER_CAN_INVITE(8005,"抱歉,只有群主才可以邀请新成员"),
LOSE_EFFICACY(8006,"链接已失效");
LOSE_EFFICACY(8006,"链接已失效"),
MOBILE_HAS_BEEN_USED(8101, "该手机已被使用,请更换手机或使用原绑定的微信用户登录"),
MOBILE_CODE_ERROR(8102, "手机验证码错误"),
AUTO_CONFIRM_FAILED(8103, "自动认证失败");
private int value;
private String name;

6
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/dao/SysSmsDao.java

@ -11,6 +11,7 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.entity.SysSmsEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 短信
@ -20,4 +21,9 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SysSmsDao extends BaseDao<SysSmsEntity> {
int tempInsert(@Param("platform") Integer platform, @Param("mobile") String mobile,
@Param("params1") String params1, @Param("params2") String params2,
@Param("params3") String params3, @Param("params4") String params4,
@Param("status") Integer status);
}

11
epmet-module/epmet-message/epmet-message-server/src/main/java/com/epmet/service/impl/SysSmsServiceImpl.java

@ -26,6 +26,7 @@ import com.epmet.sms.SmsFactory;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;
@ -95,7 +96,13 @@ public class SysSmsServiceImpl extends BaseServiceImpl<SysSmsDao, SysSmsEntity>
}
sms.setStatus(status);
this.insert(sms);
sms.setCreateDate(new Date());
baseDao.tempInsert(sms.getPlatform(),
sms.getMobile(),
sms.getParams1(),
sms.getParams2(),
sms.getParams3(),
sms.getParams4(),
sms.getStatus());
}
}

22
epmet-module/epmet-message/epmet-message-server/src/main/resources/mapper/SysSmsDao.xml

@ -3,5 +3,27 @@
<mapper namespace="com.epmet.dao.SysSmsDao">
<insert id="tempInsert" parameterType="map">
INSERT INTO `sys_sms` (
`platform`,
`mobile`,
`params_1`,
`params_2`,
`params_3`,
`params_4`,
`status`,
`creator`,
`create_date`)
VALUES
( #{platform},
#{mobile},
#{params1},
#{params2},
#{params3},
#{params4},
#{status},
"1",
now())
</insert>
</mapper>

4
epmet-module/epmet-oss/epmet-oss-server/pom.xml

@ -131,7 +131,7 @@
<!-- 数据库配置-->
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://47.104.224.45:3308/epmet_admin?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
<![CDATA[jdbc:mysql://47.104.224.45:3308/epmet_oss?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</spring.datasource.druid.url>
<spring.datasource.druid.username>epmet</spring.datasource.druid.username>
<spring.datasource.druid.password>elink@833066</spring.datasource.druid.password>
@ -161,7 +161,7 @@
<!-- 数据库配置-->
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://47.104.224.45:3308/epmet_admin?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
<![CDATA[jdbc:mysql://47.104.224.45:3308/epmet_oss?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
</spring.datasource.druid.url>
<spring.datasource.druid.username>epmet</spring.datasource.druid.username>
<spring.datasource.druid.password>elink@833066</spring.datasource.druid.password>

2
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/controller/OssController.java

@ -107,7 +107,7 @@ public class OssController {
OssEntity ossEntity = new OssEntity();
ossEntity.setUrl(url);
ossEntity.setCreateDate(new Date());
ossService.insert(ossEntity);
ossService.insertOssEntity(ossEntity);
//文件信息
UploadDTO dto = new UploadDTO();

1
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/dao/OssDao.java

@ -20,4 +20,5 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface OssDao extends BaseDao<OssEntity> {
int insertOssEntity(String url);
}

2
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/OssService.java

@ -22,4 +22,6 @@ import java.util.Map;
public interface OssService extends BaseService<OssEntity> {
PageData<OssEntity> page(Map<String, Object> params);
int insertOssEntity(OssEntity ossEntity);
}

5
epmet-module/epmet-oss/epmet-oss-server/src/main/java/com/epmet/service/impl/OssServiceImpl.java

@ -31,4 +31,9 @@ public class OssServiceImpl extends BaseServiceImpl<OssDao, OssEntity> implement
);
return getPageData(page, OssEntity.class);
}
@Override
public int insertOssEntity(OssEntity ossEntity) {
return baseDao.insertOssEntity(ossEntity.getUrl());
}
}

8
epmet-module/epmet-oss/epmet-oss-server/src/main/resources/mapper/SysOssDao.xml

@ -3,5 +3,11 @@
<mapper namespace="com.epmet.dao.OssDao">
<insert id="insertOssEntity" parameterType="java.lang.String">
INSERT INTO `sys_oss` ( `url`, `creator`, `create_date` )
VALUES
( #{url},
"1",
now( ) )
</insert>
</mapper>

2
epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/feign/EpmetUserFeignClient.java

@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.*;
* @dscription
* @date 2020/3/19 9:32
*/
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class,url = "http://localhost:8087")
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, path="/epmetuser", fallback = EpmetUserFeignClientFallback.class)
public interface EpmetUserFeignClient {
/**

65
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/constant/TopicConstant.java

@ -0,0 +1,65 @@
package com.epmet.resi.group.constant;
/**
* @Description
* @IntefaceName TopicConstant
* @Author wangc
* @date 2020.03.31 17:18
*/
public interface TopicConstant {
/**
* 话题最大字数
* */
int MAX_NUMBER_OF_CONTENT = 3000;
/**
* 评论最大字数
* */
int MAX_NUMBER_OF_COMMENT = 300;
/**
* 发布话题
* */
String PUBLISHMENT = "discussing";
/**
* 取消屏蔽
* */
String CANCEL_HIDDEN = "hidden_cancelled";
/**
* 关闭话题
* */
String CLOSED = "closed";
/**
* 屏蔽话题
* */
String HIDDEN = "hidden";
/**
* 本人发布
* */
String PUBLISHED_BY_MYSELF = "me";
/**
* 他人发布
* */
String PUBLISHED_BY_OTHER = "other";
/**
* 构造queryWrapper 话题Id列名
* */
String TOPIC_ID = "TOPIC_ID";
/**
* 构造queryWrapper 创建日期列名
* */
String CREATED_DATE = "CREATED_DATE";
/**
* 构造queryWrapper 逻辑删除标识列名
* */
String DEL_FLAG = "DEL_FLAG";
}

36
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/form/ResiQueryCommentFormDTO.java

@ -0,0 +1,36 @@
package com.epmet.resi.group.dto.comment.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @ClassName ResiQueryCommentFormDTO
* @Author wangc
* @date 2020.04.01 17:14
*/
@Data
public class ResiQueryCommentFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 组Id
* */
@NotBlank(message = "话题Id不能为空")
private String topicId;
/**
* 请求页码
* */
@Min(1)
private int pageNo;
/**
* 每页多少条数据
* */
private int pageSize = 20;
}

52
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/comment/result/ResiCommentResultDTO.java

@ -0,0 +1,52 @@
package com.epmet.resi.group.dto.comment.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName ResiCommentResultDTO
* @Author wangc
* @date 2020.04.01 17:07
*/
@Data
public class ResiCommentResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 评论Id
* */
private String commentId;
/**
* 评论内容
* */
private String commentContent;
/**
* 评论者头像
* */
private String commentUserHeadPhoto;
/**
* 评论者姓名
* */
private String commentUserName;
/**
* 用户Id 评论者Id
* */
private String userId;
/**
* 评论时间 yyyy-MM-dd HH:mm:ss
* */
private String commentTime;
/**
* 评论状态
* */
private String commentStatus;
}

96
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/ResiTopicAttachmentDTO.java

@ -0,0 +1,96 @@
/**
* 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.epmet.resi.group.dto.topic;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 话题附件表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-03-31
*/
@Data
public class ResiTopicAttachmentDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 话题Id关联resi_topic的id
*/
private String topicId;
/**
* 附件名uuid随机生成
*/
private String attachmentName;
/**
* 文件格式JPGPNGPDFJPEGBMPMP4WMAM4AMP3DOCDOCXXLS
*/
private String attachmentFormat;
/**
* 附件类型图片 - figure 视频 - video 语音 - voice 文档 - doc
*/
private String attachmentType;
/**
* 附件地址
*/
private String attachmentUrl;
/**
* 删除标记 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

24
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiPublishCommentFormDTO.java

@ -0,0 +1,24 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @ClassName ResiPublishCommentFormDTO
* @Author wangc
* @date 2020.03.31 17:32
*/
@Data
public class ResiPublishCommentFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
@NotBlank(message = "话题Id不能为空")
private String topicId;
@NotBlank(message = "评论内容不能为空")
private String commentContent;
}

30
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicOperationFormDTO.java

@ -0,0 +1,30 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName ResiTopicOperationFormDTO
* @Author wangc
* @date 2020.04.01 15:32
*/
@Data
public class ResiTopicOperationFormDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 话题Id
*/
private String topicId;
/**
* 屏蔽原因
*/
private String operateReason;
}

46
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicPageFormDTO.java

@ -0,0 +1,46 @@
package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @ClassName ResiTopicPageFormDTO
* @Author wangc
* @date 2020.04.01 10:09
*/
@Data
public class ResiTopicPageFormDTO implements Serializable{
private static final long serialVersionUID = 1L;
/**
* 组Id
* */
@NotBlank(message = "组Id不能为空")
private String groupId;
/**
* 请求页码
* */
@Min(value = 1)
private int pageNo;
/**
* 每页多少条数据
* */
private int pageSize = 20;
/**
* 搜索时可以带状态的查询也可以不带
* */
private String status;
/**
* 用户Id
* */
private String userId;
}

22
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/form/ResiTopicPublishFormDTO.java

@ -2,6 +2,7 @@ package com.epmet.resi.group.dto.topic.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;
@ -19,45 +20,50 @@ public class ResiTopicPublishFormDTO implements Serializable {
/**
* 小组Id
* */
@NotBlank(message = "小组Id不能为空")
private String groupId;
/**
*
* 话题内容
* */
@NotBlank(message = "话题内容不能为空")
private String topicContent;
/**
*
* 经度
* */
@NotBlank(message = "缺失经纬度信息")
private String longitude;
/**
*
* 纬度
* */
@NotBlank(message = "缺失经纬度信息")
private String dimension;
/**
*
* 地址
* */
@NotBlank(message = "地址信息不能为空")
private String address;
/**
*
* 省份
* */
private String province;
/**
*
* 城市
* */
private String city;
/**
*
* 地区
* */
private String area;
/**
*
* 附件上传url列表
* */
private List<String> attachmentList;

49
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicDetailResultDTO.java

@ -0,0 +1,49 @@
package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @ClassName ResiTopicDetailResultDTO
* @Author wangc
* @date 2020.04.01 16:03
*/
@Data
public class ResiTopicDetailResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 话题Id
* */
private String topicId;
/**
* 发布人名称
* */
private String releaseUserName;
/**
* 发布人头像
* */
private String releaseUserHeadPhoto;
/**
* 发布时间 yyyy-MM-dd HH:mm:ss
* */
private String releaseTime;
/**
* 话题内容
* */
private String topicContent;
/**
* 图片访问地址
* */
private List<String> topicImgs;
}

67
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/topic/result/ResiTopicInfoResultDTO.java

@ -0,0 +1,67 @@
package com.epmet.resi.group.dto.topic.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description 查看历史话题返回对象
* @ClassName ResiTopicInfoResultDTO
* @Author wangc
* @date 2020.04.01 08:46
*/
@Data
public class ResiTopicInfoResultDTO implements Serializable{
private static final long serialVersionUID = 1L;
/**
* 话题Id
* */
private String topicId;
/**
* 用户Id 话题发布人
* */
private String userId;
/**
* 发布人名称
* */
private String releaseUserName;
/**
* 发布人头像
* */
private String releaseUserHeadPhoto;
/**
* 发布时间 yyyy-MM-dd HH:mm:ss
* */
private String releaseTime;
/**
* 话题内容
* */
private String topicContent;
/**
* 话题状态 讨论中 已关闭
* */
private String status;
/**
* 网格名称
* */
private String gridName;
/**
* 是否本人 me other
* */
private String releaseUserFlag;
/**
* 第一张图片
* */
private String firstPhoto;
}

57
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/controller/ResiCommentController.java

@ -0,0 +1,57 @@
package com.epmet.modules.comment.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.modules.topic.service.ResiTopicCommentService;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO;
import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Description
* @ClassName ResiCommentController
* @Author wangc
* @date 2020.04.01 18:00
*/
@RequestMapping("comment")
@RestController
public class ResiCommentController {
@Autowired
private ResiTopicCommentService commentService;
/**
* @Description 对话题发表评论
* @Param tokenDto
* @Param ResiPublishCommentFormDTO
* @return Result
* @Author wangc
* @Date 2020.04.01 18:06
**/
@RequestMapping("commenttopic")
public Result commentTopic(@LoginUser TokenDto tokenDto, ResiPublishCommentFormDTO publishCommentFormDTO){
ValidatorUtils.validateEntity(publishCommentFormDTO);
return commentService.commentTopic(tokenDto,publishCommentFormDTO);
}
/**
* @Description 获取某个话题的评论列表
* @Param tokenDto
* @Param ResiQueryCommentFormDTO
* @return Result<List<ResiCommentResultDTO>>
* @Author wangc
* @Date 2020.04.01 23:49
**/
@RequestMapping("getcommentlistoftopic")
public Result<List<ResiCommentResultDTO>> getCommentListOfTopic(@LoginUser TokenDto tokenDto, ResiQueryCommentFormDTO queryCommentFormDTO){
ValidatorUtils.validateEntity(queryCommentFormDTO);
return commentService.getCommentList(tokenDto,queryCommentFormDTO);
}
}

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicCommentEntity.java → epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/comment/entity/ResiTopicCommentEntity.java

@ -15,7 +15,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.epmet.modules.topic.entity;
package com.epmet.modules.comment.entity;
import com.baomidou.mybatisplus.annotation.TableName;

1
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/exception/ModuleErrorCode.java

@ -22,4 +22,5 @@ import com.epmet.commons.tools.exception.ErrorCode;
*/
public interface ModuleErrorCode extends ErrorCode {
}

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java

@ -18,7 +18,7 @@ import java.util.List;
* @Author yinzuomei
* @Date 2020/3/16 14:48
*/
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class )
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserFeignClientFallback.class)
public interface EpmetUserFeignClient {
/**

2
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -38,6 +38,7 @@ import com.epmet.modules.group.dao.ResiGroupOperationDao;
import com.epmet.modules.group.entity.ResiGroupEntity;
import com.epmet.modules.group.service.ResiGroupOperationService;
import com.epmet.modules.group.service.ResiGroupService;
import com.epmet.modules.group.service.ResiGroupStatisticalService;
import com.epmet.modules.member.dao.GroupMemeberOperationDao;
import com.epmet.modules.member.dao.ResiGroupMemberDao;
@ -52,6 +53,7 @@ import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.dto.UserRoleDTO;
import com.epmet.resi.group.dto.group.ResiGroupDTO;
import com.epmet.resi.group.dto.group.ResiGroupOperationDTO;
import com.epmet.resi.group.dto.group.ResiGroupStatisticalDTO;
import com.epmet.resi.group.dto.group.form.*;
import com.epmet.resi.group.dto.group.result.CreatedResultDTO;

144
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/controller/ResiTopicController.java

@ -0,0 +1,144 @@
package com.epmet.modules.topic.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.modules.topic.service.ResiTopicService;
import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPublishFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Description
* @ClassName ResiTopicController
* @Author wangc
* @date 2020.03.31 13:03
*/
@RestController
@RequestMapping("topic")
public class ResiTopicController {
@Autowired
ResiTopicService topicService;
/**
* @Description 组内成员创建话题(身份校验 + 创建话题 + 增加话题记录)
* @Param TokenDto.class
* @Param ResiTopicPublishFormDTO.class
* @return Result
* @Author wangc
* @Date 2020.03.31 13:15
**/
@RequestMapping("createtopic")
public Result createTopic(@LoginUser TokenDto tokenDto, @RequestBody ResiTopicPublishFormDTO topicPublishFormDTO){
ValidatorUtils.validateEntity(topicPublishFormDTO);
return topicService.createTopic(tokenDto,topicPublishFormDTO);
}
/**
* @Description 获取话题详情
* @Param tokenDto
* @Param String
* @return Result<ResiTopicDetailResultDTO>
* @Author wangc
* @Date 2020.04.01 23:48
**/
@RequestMapping("gettopicdetail")
public Result<ResiTopicDetailResultDTO> getTopicDetail(@LoginUser TokenDto tokenDto, @RequestParam("topicId")String topicId ){
return topicService.getTopicDetail(tokenDto,topicId);
}
/**
* @Description 查看历史话题(分页,允许状态筛选)
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.01 10:36
**/
@RequestMapping("getpasttopiclist")
public Result<List<ResiTopicInfoResultDTO>> getPastTopicList(@LoginUser TokenDto tokenDto, @RequestBody ResiTopicPageFormDTO topicPageFormDTO){
ValidatorUtils.validateEntity(topicPageFormDTO);
return topicService.getPastTopicList(tokenDto,topicPageFormDTO);
}
/**
* @Description 查看组内最近十条话题
* @Param tokenDto
* @Param groupId
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.02 00:01
**/
@RequestMapping("getlatesttentopic")
Result<List<ResiTopicInfoResultDTO>> getLatestTenTopics(TokenDto tokenDto,String groupId){
return topicService.getLatestTenTopics(tokenDto,groupId);
}
/**
* @Description 屏蔽话题
* @Param tokenDto
* @Param ResiTopicHiddenFormDTO.class
* @return Result
* @Author wangc
* @Date 2020.04.01 12:38
**/
@RequestMapping("hidetopic")
Result hideTopic(TokenDto tokenDto,ResiTopicOperationFormDTO hiddenFormDTO){
ValidatorUtils.validateEntity(hiddenFormDTO);
return topicService.hideTopic(tokenDto,hiddenFormDTO);
}
/**
* @Description 屏蔽话题列表查询
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return List<ResiTopicInfoResultDTO>
* @Author wangc
* @Date 2020.04.01 16:45
**/
@RequestMapping("gethiddentopic")
Result<List<ResiTopicInfoResultDTO>> getHiddenTopic(TokenDto tokenDto,ResiTopicPageFormDTO topicPageFormDTO){
ValidatorUtils.validateEntity(topicPageFormDTO);
return topicService.getHiddenTopics(tokenDto,topicPageFormDTO);
}
/**
* @Description 批量取消屏蔽
* @Param tokenDto
* @Param topicIds
* @return Result
* @Author wangc
* @Date 2020.04.01 14:17
**/
@RequestMapping("cancelhiddentopics")
Result cancelHiddenTopics(TokenDto tokenDto,List<String> topicIds){
return topicService.cancelHiddenTopics(tokenDto,topicIds);
}
/**
* @Description 关闭话题
* @Param tokenDto
* @Param ResiTopicOperationFormDTO.class
* @return Result.class
* @Author wangc
* @Date 2020.04.01 15:37
**/
@RequestMapping("closetopic")
Result closeTopic(TokenDto tokenDto,ResiTopicOperationFormDTO closeFormDTO){
ValidatorUtils.validateEntity(closeFormDTO);
return topicService.closeTopic(tokenDto,closeFormDTO);
}
}

54
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicAttachmentDao.java

@ -0,0 +1,54 @@
/**
* 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.epmet.modules.topic.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.topic.entity.ResiTopicAttachmentEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 话题附件表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-03-31
*/
@Mapper
public interface ResiTopicAttachmentDao extends BaseDao<ResiTopicAttachmentEntity> {
/**
* @Description 批量插入
* @Param
* @return
* @Author wangc
* @Date 2020.04.01 13:39
**/
int insertBatch(List<ResiTopicAttachmentEntity> list);
/**
* @Description 重写Insert方法不需要传CreatedDate UpdatedBy UpdatedDate DelFlag Revision
* @Param attachmentEntity
* @return int 受影响的行数
* @Author wangc
* @Date 2020.04.01 13:40
**/
int insertOne(ResiTopicAttachmentEntity attachmentEntity);
}

25
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicCommentDao.java

@ -19,9 +19,13 @@ package com.epmet.modules.topic.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.topic.entity.ResiTopicCommentEntity;
import com.epmet.modules.comment.entity.ResiTopicCommentEntity;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 话题评论表
*
@ -30,5 +34,22 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ResiTopicCommentDao extends BaseDao<ResiTopicCommentEntity> {
/**
* @Description 重写Insert方法不需要传CreatedDate UpdatedBy UpdatedDate DelFlag Revision
* @Param commentEntity
* @return int
* @Author wangc
* @Date 2020.04.01 17:40
**/
int insertOne(ResiTopicCommentEntity commentEntity);
/**
* @Description 得到某个话题的评论列表 分页
* @Param ResiQueryCommentFormDTO
* @return Result<List<ResiCommentResultDTO>>
* @Author wangc
* @Date 2020.04.01 17:15
**/
List<ResiCommentResultDTO> getCommentList(ResiQueryCommentFormDTO queryCommentFormDTO);
}

61
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicDao.java

@ -20,7 +20,12 @@ package com.epmet.modules.topic.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.modules.topic.entity.ResiTopicEntity;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 话题信息表
@ -30,5 +35,59 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ResiTopicDao extends BaseDao<ResiTopicEntity> {
/**
* @Description 重写Insert方法不需要传CreatedDate UpdatedBy UpdatedDate DelFlag Revision
* @Param ResiTopicEntity.class
* @return int
* @Author wangc
* @Date 2020.04.01 09:39
**/
int insertOne(ResiTopicEntity resiTopic);
/**
* @Description 查询该组内最近十条话题信息
* @Param groupId
* @return List<ResiTopicInfoResultDTO>
* @Author wangc
* @Date 2020.04.01 09:40
**/
List<ResiTopicInfoResultDTO> getLatestTenTopics(@Param("groupId")String groupId,@Param("userId")String userId);
/**
* @Description 查看历史话题(分页,允许状态筛选)
* @Param topicPageFormDTO
* @return List<ResiTopicInfoResultDTO>
* @Author wangc
* @Date 2020.04.01 11:08
**/
List<ResiTopicInfoResultDTO> getPastTopics(ResiTopicPageFormDTO topicPageFormDTO);
/**
* @Description 修改话题
* @Param ResiTopicEntity.class
* @return Result.class
* @Author wangc
* @Date 2020.04.01 13:08
**/
int update(ResiTopicEntity topicEntity);
/**
* @Description 批量取消屏蔽操作
* @Param List<String>
* @Param updatedBy
* @return int
* @Author wangc
* @Date 2020.04.01 15:20
**/
int cancelHiddenOrCloseBatch(@Param("list")List<String> ids,@Param("updatedBy")String updatedBy,@Param("status")String status);
/**
* @Description 批量更新
* @Param List<ResiTopicEntity>
* @return int
* @Author wangc
* @Date 2020.04.01 15:21
**/
int updateBatch(List<ResiTopicEntity> list);
}

11
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/dao/ResiTopicOperationDao.java

@ -30,5 +30,14 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ResiTopicOperationDao extends BaseDao<ResiTopicOperationEntity> {
/**
* @Description 重写Insert方法不需要传CreatedDate UpdatedBy UpdatedDate DelFlag Revision
* @Param topicOperationEntity
* @return int 受影响的行数
* @Author wangc
* @Date 2020.04.01 13:45
**/
int insertOne(ResiTopicOperationEntity topicOperationEntity);
}

66
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicAttachmentEntity.java

@ -0,0 +1,66 @@
/**
* 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.epmet.modules.topic.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 2020-03-31
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("resi_topic_attachment")
public class ResiTopicAttachmentEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 话题Id关联resi_topic的id
*/
private String topicId;
/**
* 附件名uuid随机生成
*/
private String attachmentName;
/**
* 文件格式JPGPNGPDFJPEGBMPMP4WMAM4AMP3DOCDOCXXLS
*/
private String attachmentFormat;
/**
* 附件类型图片 - figure 视频 - video 语音 - voice 文档 - doc
*/
private String attachmentType;
/**
* 附件地址
*/
private String attachmentUrl;
}

4
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/entity/ResiTopicOperationEntity.java

@ -48,4 +48,8 @@ public class ResiTopicOperationEntity extends BaseEpmetEntity {
*/
private String operationType;
/**
* 屏蔽理由非必填
* */
private String operationReason;
}

96
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicAttachmentService.java

@ -0,0 +1,96 @@
/**
* 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.epmet.modules.topic.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.modules.topic.entity.ResiTopicAttachmentEntity;
import com.epmet.resi.group.dto.topic.ResiTopicAttachmentDTO;
import java.util.List;
import java.util.Map;
/**
* 话题附件表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-03-31
*/
public interface ResiTopicAttachmentService extends BaseService<ResiTopicAttachmentEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<ResiTopicAttachmentDTO>
* @author generator
* @date 2020-03-31
*/
PageData<ResiTopicAttachmentDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<ResiTopicAttachmentDTO>
* @author generator
* @date 2020-03-31
*/
List<ResiTopicAttachmentDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return ResiTopicAttachmentDTO
* @author generator
* @date 2020-03-31
*/
ResiTopicAttachmentDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-03-31
*/
void save(ResiTopicAttachmentDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-03-31
*/
void update(ResiTopicAttachmentDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-03-31
*/
void delete(String[] ids);
}

28
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicCommentService.java

@ -19,8 +19,13 @@ package com.epmet.modules.topic.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.modules.topic.entity.ResiTopicCommentEntity;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.comment.entity.ResiTopicCommentEntity;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO;
import com.epmet.resi.group.dto.topic.ResiTopicCommentDTO;
import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO;
import java.util.List;
@ -93,4 +98,25 @@ public interface ResiTopicCommentService extends BaseService<ResiTopicCommentEnt
* @date 2020-03-31
*/
void delete(String[] ids);
/**
* @Description 评论话题
* @Param tokenDto
* @Param resiCommentFormDTO
* @return Result
* @Author wangc
* @Date 2020.03.31 17:36
**/
Result commentTopic(TokenDto tokenDto, ResiPublishCommentFormDTO resiCommentFormDTO);
/**
* @Description 得到某个话题的评论列表 分页
* @Param tokenDto
* @Param ResiQueryCommentFormDTO
* @return Result<List<ResiCommentResultDTO>>
* @Author wangc
* @Date 2020.04.01 17:15
**/
Result<List<ResiCommentResultDTO>> getCommentList(TokenDto tokenDto,ResiQueryCommentFormDTO commentFormDTO);
}

88
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/ResiTopicService.java

@ -19,9 +19,17 @@ package com.epmet.modules.topic.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.topic.entity.ResiTopicEntity;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPublishFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import java.util.List;
import java.util.Map;
@ -93,4 +101,84 @@ public interface ResiTopicService extends BaseService<ResiTopicEntity> {
* @date 2020-03-31
*/
void delete(String[] ids);
/**
* @Description 创建话题接口具体逻辑包括1.身份校验 2.创建话题 3.话题操作记录
* @Param tokenDto
* @Param resiTopicPublishFormDTO
* @return Result
* @Author wangc
* @Date 2020.03.31 13:19
**/
Result createTopic(TokenDto tokenDto, ResiTopicPublishFormDTO resiTopicPublishFormDTO);
/**
* @Description 查看组内最近十条话题
* @Param tokenDto
* @Param groupId
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.01 08:59
**/
Result<List<ResiTopicInfoResultDTO>> getLatestTenTopics(TokenDto tokenDto,String groupId);
/**
* @Description 查看历史话题(分页,允许状态筛选)
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.01 10:36
**/
Result<List<ResiTopicInfoResultDTO>> getPastTopicList(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO);
/**
* @Description 屏蔽话题
* @Param tokenDto
* @Param ResiTopicHiddenFormDTO.class
* @return Result
* @Author wangc
* @Date 2020.04.01 12:38
**/
Result hideTopic(TokenDto tokenDto,ResiTopicOperationFormDTO hiddenFormDTO);
/**
* @Description 批量取消屏蔽
* @Param tokenDto
* @Param topicIds
* @return Result
* @Author wangc
* @Date 2020.04.01 14:17
**/
Result cancelHiddenTopics(TokenDto tokenDto,List<String> topicIds);
/**
* @Description 关闭话题
* @Param tokenDto
* @Param ResiTopicOperationFormDTO.class
* @return Result.class
* @Author wangc
* @Date 2020.04.01 15:37
**/
Result closeTopic(TokenDto tokenDto,ResiTopicOperationFormDTO closeFormDTO);
/**
* @Description 查看话题详情
* @Param tokenDto
* @Param topicId
* @return ResiTopicDetailResultDTO
* @Author wangc
* @Date 2020.04.01 15:56
**/
Result<ResiTopicDetailResultDTO> getTopicDetail(TokenDto tokenDto, String topicId);
/**
* @Description 屏蔽话题列表查询
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return List<ResiTopicInfoResultDTO>
* @Author wangc
* @Date 2020.04.01 16:45
**/
Result<List<ResiTopicInfoResultDTO>> getHiddenTopics(TokenDto tokenDto,ResiTopicPageFormDTO topicPageFormDTO);
}

100
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicAttachmentServiceImpl.java

@ -0,0 +1,100 @@
/**
* 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.epmet.modules.topic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.modules.topic.dao.ResiTopicAttachmentDao;
import com.epmet.modules.topic.entity.ResiTopicAttachmentEntity;
import com.epmet.modules.topic.service.ResiTopicAttachmentService;
import com.epmet.resi.group.dto.topic.ResiTopicAttachmentDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 话题附件表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-03-31
*/
@Service
public class ResiTopicAttachmentServiceImpl extends BaseServiceImpl<ResiTopicAttachmentDao, ResiTopicAttachmentEntity> implements ResiTopicAttachmentService {
@Override
public PageData<ResiTopicAttachmentDTO> page(Map<String, Object> params) {
IPage<ResiTopicAttachmentEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, ResiTopicAttachmentDTO.class);
}
@Override
public List<ResiTopicAttachmentDTO> list(Map<String, Object> params) {
List<ResiTopicAttachmentEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, ResiTopicAttachmentDTO.class);
}
private QueryWrapper<ResiTopicAttachmentEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<ResiTopicAttachmentEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public ResiTopicAttachmentDTO get(String id) {
ResiTopicAttachmentEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, ResiTopicAttachmentDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(ResiTopicAttachmentDTO dto) {
ResiTopicAttachmentEntity entity = ConvertUtils.sourceToTarget(dto, ResiTopicAttachmentEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(ResiTopicAttachmentDTO dto) {
ResiTopicAttachmentEntity entity = ConvertUtils.sourceToTarget(dto, ResiTopicAttachmentEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

79
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicCommentServiceImpl.java

@ -20,15 +20,28 @@ package com.epmet.modules.topic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.modules.comment.entity.ResiTopicCommentEntity;
import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.modules.topic.dao.ResiTopicCommentDao;
import com.epmet.modules.topic.entity.ResiTopicCommentEntity;
import com.epmet.modules.topic.service.ResiTopicCommentService;
import com.epmet.modules.topic.service.ResiTopicService;
import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO;
import com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.topic.ResiTopicCommentDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiPublishCommentFormDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -45,7 +58,11 @@ import java.util.Map;
@Service
public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommentDao, ResiTopicCommentEntity> implements ResiTopicCommentService {
@Autowired
ResiTopicService resiTopicService;
@Autowired
ResiGroupMemberService resiGroupMemberService;
@Override
public PageData<ResiTopicCommentDTO> page(Map<String, Object> params) {
@ -99,4 +116,64 @@ public class ResiTopicCommentServiceImpl extends BaseServiceImpl<ResiTopicCommen
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @Description 评论话题
* @Param tokenDto
* @Param resiCommentFormDTO
* @return Result
* @Author wangc
* @Date 2020.03.31 17:36
**/
@Override
public Result commentTopic(TokenDto tokenDto, ResiPublishCommentFormDTO resiCommentFormDTO) {
//1.判断当前用户是否被禁言
ResiTopicDTO topic = resiTopicService.get(resiCommentFormDTO.getTopicId());
if(null == topic){
return new Result().error();
}
ResiGroupMemberDTO resiGroupMemberDTO =
resiGroupMemberService.getResiGroupMember(tokenDto.getUserId() , topic.getGroupId());
//查看当前用户是否被禁言或者被移除
if(null != resiGroupMemberDTO){
if(MemberStateConstant.SILENT.equals(resiGroupMemberDTO.getStatus())){
//当前用户被禁言
return new Result().error();
}else if(MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())){
//当前用户已被移出群
return new Result().error();
}
}else{
//当前用户非组内成员
return new Result().error();
}
if(resiCommentFormDTO.getCommentContent().length() > TopicConstant.MAX_NUMBER_OF_COMMENT){
return new Result().error();
}
ResiTopicCommentEntity comment = ConvertUtils.sourceToTarget(resiCommentFormDTO,ResiTopicCommentEntity.class);
comment.setStatus(TopicConstant.PUBLISHMENT);
baseDao.insertOne(comment);
return new Result();
}
/**
* @Description 得到某个话题的评论列表 分页
* @Param tokenDto
* @Param ResiQueryCommentFormDTO
* @return Result<List<ResiCommentResultDTO>>
* @Author wangc
* @Date 2020.04.01 17:15
**/
@Override
public Result<List<ResiCommentResultDTO>> getCommentList(TokenDto tokenDto, ResiQueryCommentFormDTO commentFormDTO) {
commentFormDTO.setPageNo((commentFormDTO.getPageNo() - NumConstant.ONE) * commentFormDTO.getPageSize());
return new Result<List<ResiCommentResultDTO>>().ok(baseDao.getCommentList(commentFormDTO));
}
}

392
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/topic/service/impl/ResiTopicServiceImpl.java

@ -20,19 +20,45 @@ package com.epmet.modules.topic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.group.dao.ResiGroupDao;
import com.epmet.modules.group.entity.ResiGroupEntity;
import com.epmet.modules.member.dao.ResiGroupMemberDao;
import com.epmet.modules.member.service.ResiGroupMemberService;
import com.epmet.modules.topic.dao.ResiTopicAttachmentDao;
import com.epmet.modules.topic.dao.ResiTopicCommentDao;
import com.epmet.modules.topic.dao.ResiTopicDao;
import com.epmet.modules.topic.dao.ResiTopicOperationDao;
import com.epmet.modules.topic.entity.ResiTopicAttachmentEntity;
import com.epmet.modules.topic.entity.ResiTopicEntity;
import com.epmet.modules.topic.entity.ResiTopicOperationEntity;
import com.epmet.modules.topic.service.ResiTopicService;
import com.epmet.modules.utils.ModuleConstant;
import com.epmet.resi.group.constant.MemberStateConstant;
import com.epmet.resi.group.constant.TopicConstant;
import com.epmet.resi.group.dto.member.ResiGroupMemberDTO;
import com.epmet.resi.group.dto.topic.ResiTopicDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicOperationFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO;
import com.epmet.resi.group.dto.topic.form.ResiTopicPublishFormDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicDetailResultDTO;
import com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@ -46,7 +72,26 @@ import java.util.Map;
@Service
public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopicEntity> implements ResiTopicService {
@Autowired
private ResiGroupMemberService resiGroupMemberService;
@Autowired
private ResiTopicAttachmentDao resiTopicAttachmentDao;
@Autowired
private ResiTopicOperationDao resiTopicOperationDao;
@Autowired
private ResiTopicCommentDao resiTopicCommentDao;
@Autowired
EpmetUserFeignClient epmetUserFeignClient;
@Autowired
ResiGroupDao resiGroupDao;
@Autowired
ResiGroupMemberDao resiGroupMemberDao;
@Override
public PageData<ResiTopicDTO> page(Map<String, Object> params) {
@ -100,4 +145,349 @@ public class ResiTopicServiceImpl extends BaseServiceImpl<ResiTopicDao, ResiTopi
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @Description 创建话题接口具体逻辑包括1.身份校验 2.创建话题 3.话题操作记录
* @Param tokenDto
* @Param resiTopicPublishFormDTO
* @return Result
* @Author wangc
* @Date 2020.03.31 13:19
**/
@Override
public Result createTopic(TokenDto tokenDto, ResiTopicPublishFormDTO resiTopicPublishFormDTO) {
//1.身份校验,查看当前用户是否是组内成员,当前用户是否被禁言
ResiGroupMemberDTO resiGroupMemberDTO =
resiGroupMemberService.getResiGroupMember(tokenDto.getUserId() , resiTopicPublishFormDTO.getGroupId());
Result result = verifySilentOrRemoved(resiGroupMemberDTO);
if(!result.success()){
return result;
}
//2.创建话题
if(resiTopicPublishFormDTO.getTopicContent().length() > TopicConstant.MAX_NUMBER_OF_CONTENT){
//内容超过最大限制
return new Result().error();
}
ResiTopicEntity topic = ConvertUtils.sourceToTarget(resiTopicPublishFormDTO,ResiTopicEntity.class);
topic.setCreatedBy(tokenDto.getUserId());
baseDao.insertOne(topic);
if(StringUtils.isBlank(topic.getId())){
//没有返回主键
return new Result().error();
}
if(null != resiTopicPublishFormDTO.getAttachmentList() && resiTopicPublishFormDTO.getAttachmentList().size() > 0){
ResiTopicAttachmentEntity attachment = new ResiTopicAttachmentEntity();
for(String url : resiTopicPublishFormDTO.getAttachmentList()){
attachment.setAttachmentUrl(url);
attachment.setTopicId(topic.getId());
attachment.setCreatedBy(tokenDto.getUnionId());
resiTopicAttachmentDao.insertOne(attachment);
}
}
//3.话题操作记录
ResiTopicOperationEntity operation = new ResiTopicOperationEntity();
operation.setTopicId(topic.getId());
operation.setOperationType(TopicConstant.PUBLISHMENT);
resiTopicOperationDao.insertOne(operation);
return new Result();
}
/**
* @Description 查看组内最近十条话题
* @Param tokenDto
* @Param groupId
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.01 08:59
**/
@Override
public Result<List<ResiTopicInfoResultDTO>> getLatestTenTopics(TokenDto tokenDto, String groupId) {
if(StringUtils.isBlank(groupId)){
return new Result<List<ResiTopicInfoResultDTO>>().error();
}
//1.查询话题列表
List<ResiTopicInfoResultDTO> lastestTenTopics =
baseDao.getLatestTenTopics(groupId,tokenDto.getUserId());
//2.遍历存储用户信息
ResiGroupEntity group = resiGroupDao.selectById(groupId);
if(null != group && ModuleConstant.DEL_FLAG.equals(group.getDelFlag())){
}
return new Result<List<ResiTopicInfoResultDTO>>().ok(lastestTenTopics);
}
/**
* @Description 查看历史话题(分页,允许状态筛选)
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return Result<List<ResiTopicInfoResultDTO>>
* @Author wangc
* @Date 2020.04.01 10:36
**/
@Override
public Result<List<ResiTopicInfoResultDTO>> getPastTopicList(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO) {
//1.查询历史话题列表
topicPageFormDTO.setUserId(tokenDto.getUserId());
topicPageFormDTO.setPageNo((topicPageFormDTO.getPageNo() - NumConstant.ONE) * topicPageFormDTO.getPageSize());
List<ResiTopicInfoResultDTO> pastTopics =
baseDao.getPastTopics(topicPageFormDTO);
//2.遍历用户信息
return new Result<List<ResiTopicInfoResultDTO>>().ok(pastTopics);
}
/**
* @Description 屏蔽话题
* @Param tokenDto
* @Param ResiTopicHiddenFormDTO.class
* @return Result
* @Author wangc
* @Date 2020.04.01 12:38
**/
@Override
public Result hideTopic(TokenDto tokenDto, ResiTopicOperationFormDTO hiddenFormDTO) {
//1.1拿到组Id
ResiTopicEntity topic = baseDao.selectById(hiddenFormDTO.getTopicId());
//1.2校验身份,是否是该话题所属群组的组长
Result verifyError = verifyLeader(topic,tokenDto.getUserId());
if(!verifyError.success()) {
return verifyError;
}
//2.屏蔽话题
ResiTopicEntity topicForUpdate = new ResiTopicEntity();
topicForUpdate.setId(hiddenFormDTO.getTopicId());
topicForUpdate.setUpdatedBy(tokenDto.getUserId());
topicForUpdate.setStatus(TopicConstant.HIDDEN);
baseDao.update(topicForUpdate);
//3.话题操作记录
ResiTopicOperationEntity operationRecord = new ResiTopicOperationEntity();
operationRecord.setTopicId(hiddenFormDTO.getTopicId());
operationRecord.setOperationReason(hiddenFormDTO.getOperateReason());
operationRecord.setOperationType(TopicConstant.HIDDEN);
operationRecord.setCreatedBy(tokenDto.getUserId());
resiTopicOperationDao.insertOne(operationRecord);
return new Result();
}
/**
* @Description 批量取消屏蔽
* @Param tokenDto
* @Param topicIds
* @return Result
* @Author wangc
* @Date 2020.04.01 14:17
**/
@Override
public Result cancelHiddenTopics(TokenDto tokenDto, List<String> topicIds) {
//1.1拿到组Id
ResiTopicEntity topic = baseDao.selectById(topicIds.get(0));
//1.2校验身份,是否是该话题所属群组的组长
Result verifyError = verifyLeader(topic,tokenDto.getUserId());
if(!verifyError.success()) {
return verifyError;
}
//2.批量取消屏蔽
baseDao.cancelHiddenOrCloseBatch(topicIds,tokenDto.getUserId(),TopicConstant.PUBLISHMENT);
//3.记录话题操作日志
for(String id : topicIds){
ResiTopicOperationEntity operation = new ResiTopicOperationEntity();
operation.setTopicId(id);
operation.setOperationType(TopicConstant.CANCEL_HIDDEN);
operation.setCreatedBy(tokenDto.getUserId());
resiTopicOperationDao.insertOne(operation);
}
return new Result();
}
/**
* @Description 关闭话题
* @Param tokenDto
* @Param ResiTopicOperationFormDTO.class
* @return Result.class
* @Author wangc
* @Date 2020.04.01 15:37
**/
@Override
public Result closeTopic(TokenDto tokenDto, ResiTopicOperationFormDTO closeFormDTO) {
//1.1拿到组Id
ResiTopicEntity topic = baseDao.selectById(tokenDto.getUserId());
//1.2校验身份,是否是该话题所属群组的组长
Result verifyError = verifyLeader(topic,tokenDto.getUserId());
if(!verifyError.success()) {
return verifyError;
}
//2.关闭操作
List<String> id = new ArrayList<>();
id.add(closeFormDTO.getTopicId());
baseDao.cancelHiddenOrCloseBatch(id,tokenDto.getUserId(),TopicConstant.CLOSED);
//3.记录话题操作日志
ResiTopicOperationEntity operation = new ResiTopicOperationEntity();
operation.setTopicId(id.get(0));
operation.setOperationReason(closeFormDTO.getOperateReason());
operation.setCreatedBy(tokenDto.getUserId());
operation.setOperationType(TopicConstant.CLOSED);
resiTopicOperationDao.insertOne(operation);
return new Result();
}
/**
* @Description 查看话题详情
* @Param tokenDto
* @Param topicId
* @return ResiTopicDetailResultDTO
* @Author wangc
* @Date 2020.04.01 15:56
**/
@Override
public Result<ResiTopicDetailResultDTO> getTopicDetail(TokenDto tokenDto, String topicId) {
if(StringUtils.isBlank(topicId)){
return new Result<ResiTopicDetailResultDTO>().error();
}
//1.获取话题基本信息
ResiTopicEntity topicDetail = baseDao.selectById(topicId);
ResiTopicDetailResultDTO resultDTO = new ResiTopicDetailResultDTO();
//2.查询话题附件
QueryWrapper<ResiTopicAttachmentEntity> wrapper = new QueryWrapper<>();
wrapper.eq(TopicConstant.TOPIC_ID,topicId);
wrapper.eq(TopicConstant.DEL_FLAG,NumConstant.ZERO_STR);
wrapper.orderByDesc(TopicConstant.CREATED_DATE);
List<ResiTopicAttachmentEntity> attachments = resiTopicAttachmentDao.selectList(wrapper);
List<String> attachmentUrls = new ArrayList<>();
for(ResiTopicAttachmentEntity attachment : attachments){
attachmentUrls.add(attachment.getAttachmentUrl());
}
resultDTO.setTopicImgs(attachmentUrls);
resultDTO.setReleaseTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(topicDetail.getCreatedTime()));
resultDTO.setTopicContent(topicDetail.getTopicContent());
//3.拿取用户信息
ResiTopicDTO topic = get(topicId);
ResiGroupEntity group = resiGroupDao.selectById(topic.getGroupId());
UserResiInfoFormDTO userParam = new UserResiInfoFormDTO();
userParam.setUserId(tokenDto.getUserId());
userParam.setCustomerId(group.getCustomerId());
Result<UserResiInfoDTO> userInfo =
epmetUserFeignClient.getUserResiInfoDTO(userParam);
if(userInfo.success()){
resultDTO.setReleaseUserName(userInfo.getData().getSurname() + userInfo.getData().getName());
//TODO 调用EpmetUserFeign的查询用户微信信息的方法拉取头像信息
resultDTO.setReleaseUserHeadPhoto("");
}
return new Result<ResiTopicDetailResultDTO>().ok(resultDTO);
}
/**
* @Description 屏蔽话题列表查询
* @Param tokenDto
* @Param ResiTopicPageFormDTO.class
* @return List<ResiTopicInfoResultDTO>
* @Author wangc
* @Date 2020.04.01 16:45
**/
@Override
public Result<List<ResiTopicInfoResultDTO>> getHiddenTopics(TokenDto tokenDto, ResiTopicPageFormDTO topicPageFormDTO) {
//1.查询屏蔽话题列表
topicPageFormDTO.setUserId(tokenDto.getUserId());
topicPageFormDTO.setPageNo((topicPageFormDTO.getPageNo() - NumConstant.ONE) * topicPageFormDTO.getPageSize());
topicPageFormDTO.setStatus(TopicConstant.HIDDEN);
List<ResiTopicInfoResultDTO> hiddenTopics =
baseDao.getPastTopics(topicPageFormDTO);
//2.遍历用户信息
return new Result<List<ResiTopicInfoResultDTO>>().ok(hiddenTopics);
}
/**
* @Description 查询当前组员在组内是否被禁言或已被移除
* @Param resiGroupMemberDTO
* @return Result.class
* @Author wangc
* @Date 2020.04.01 15:00
**/
private Result verifySilentOrRemoved(ResiGroupMemberDTO resiGroupMemberDTO){
if(null != resiGroupMemberDTO){
if(MemberStateConstant.SILENT.equals(resiGroupMemberDTO.getStatus())){
//当前用户被禁言
return new Result().error();
}else if(MemberStateConstant.REMOVED.equals(resiGroupMemberDTO.getStatus())){
//当前用户已被移出群
return new Result().error();
}else{
return new Result();
}
}else{
//当前用户非组内成员
return new Result().error();
}
}
/**
* @Description 校验当前用户是否是该小组组长
* @Param
* @return
* @Author wangc
* @Date 2020.04.01 14:55
**/
private Result verifyLeader(ResiTopicEntity topic,String userId){
if(null != topic){
ResiGroupMemberDTO leaderVerify = resiGroupMemberDao.selectLeaderMember(topic.getGroupId());
if(null != leaderVerify){
//1.2判断是否是组长
if(!StringUtils.equals(leaderVerify.getId(),userId)){
//非组长,无权限进行操作
return new Result().error();
}else{
return new Result();
}
}else{
return new Result().error();
}
}else{
return new Result().error();
}
}
}

10
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java

@ -68,6 +68,16 @@ public interface ModuleConstant extends Constant {
*/
String CUSTOMERID_NOT_NULL="客户id不能为空";
/**
* 当前用户并非改组组员
* */
String NOT_BELONG_TO_CURRENT_GROUP="当前用户并非改组组员";
/**
* 逻辑删除标识 未删除
* */
String DEL_FLAG = "0";
/**
* 组长审批时校验申请单是否存在
*/

102
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicAttachmentDao.xml

@ -0,0 +1,102 @@
<?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.modules.topic.dao.ResiTopicAttachmentDao">
<insert id="insertOne" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.epmet.modules.topic.entity.ResiTopicAttachmentEntity">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
select replace(uuid(),'-','') AS APPROVAL_ID
</selectKey>
INSERT INTO resi_topic_attachment
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
topic_id,
</if>
<if test ='null != attachmentName'>
attachment_name,
</if>
<if test ='null != attachmentFormat'>
attachment_format,
</if>
<if test ='null != attachmentType'>
attachment_type,
</if>
<if test ='null != attachmentUrl'>
attachment_url,
</if>
<if test ='null != createdBy'>
created_by,
</if>
del_flag,
revision,
created_time,
updated_by,
updated_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
#{topicId},
</if>
<if test ='null != attachmentName'>
#{attachmentName},
</if>
<if test ='null != attachmentFormat'>
#{attachmentFormat},
</if>
<if test ='null != attachmentType'>
#{attachmentType},
</if>
<if test ='null != attachmentUrl'>
#{attachmentUrl},
</if>
<if test ='null != createdBy'>
#{createdBy},
</if>
'0',
'0',
now(),
'APP_USER',
now()
</trim>
</insert>
<!-- 批量插入 -->
<insert id="insertBatch" parameterType="java.util.List">
insert into user
(
id,
topic_id,
attachment_name,
attachment_format,
attachment_type,
attachment_url,
del_flag,
revision,
created_by,
created_time,
updated_by,
updated_time
) values
<foreach collection="list" item="item" index="index" separator=",">
(
(SELECT REPLACE(UUID(), '-', '') AS id),
#{item.topicId},
#{item.attachmentName},
#{item.attachmentFormat},
#{item.attachmentType},
#{item.attachmentUrl},
#{item.delFlag},
#{item.revision},
#{item.createdBy},
#{item.createdTime},
#{item.updatedBy},
#{item.updatedTime}
)
</foreach>
</insert>
</mapper>

61
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicCommentDao.xml

@ -3,6 +3,67 @@
<mapper namespace="com.epmet.modules.topic.dao.ResiTopicCommentDao">
<!-- 新增一条数据 : 一条评论-->
<insert id="insertOne" parameterType="com.epmet.modules.comment.entity.ResiTopicCommentEntity">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
select replace(uuid(),'-','') AS APPROVAL_ID
</selectKey>
INSERT INTO resi_topic_operation
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
topic_id,
</if>
<if test ='null != commentContent'>
comment_content,
</if>
<if test='null != status'>
status,
</if>
<if test ='null != createdBy'>
created_by,
</if>
del_flag,
revision,
created_time,
updated_by,
updated_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
#{topicId},
</if>
<if test ='null != commentContent'>
#{commentContent},
</if>
<if test='null != status'>
#{status},
</if>
<if test ='null != createdBy'>
#{createdBy},
</if>
'0',
'0',
now(),
'APP_USER',
now()
</trim>
</insert>
<!-- 分页查询某个话题下的评论列表 -->
<select id="getCommentList" parameterType="com.epmet.resi.group.dto.comment.form.ResiQueryCommentFormDTO" resultType="com.epmet.resi.group.dto.comment.result.ResiCommentResultDTO">
ID AS commentId,
COMMENT_CONTENT,
STATUS AS commentStatus,
CREATED_TIME AS commentTime,
CREATED_BY AS userId
FROM
RESI_TOPIC_COMMENT
WHERE
DEL_FLAG = '0'
AND
TOPIC_ID = #{topicId}
LIMIT
#{pageNo},#{pageSize}
</select>
</mapper>

210
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicDao.xml

@ -3,6 +3,216 @@
<mapper namespace="com.epmet.modules.topic.dao.ResiTopicDao">
<!-- 新增话题 -->
<insert id="insertOne" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.epmet.modules.topic.entity.ResiTopicEntity">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
select replace(uuid(),'-','') AS APPROVAL_ID
</selectKey>
INSERT INTO resi_topic
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != groupId'>
group_id,
</if>
<if test ='null != topicContent'>
topic_content,
</if>
<if test ='null != status'>
status,
</if>
<if test ='null != province'>
province,
</if>
<if test ='null != city'>
city,
</if>
<if test ='null != area'>
area,
</if>
<if test ='null != address'>
address,
</if>
<if test ='null != longitude'>
longitude,
</if>
<if test ='null != dimension'>
dimension,
</if>
<if test ='null != createdBy'>
created_by,
</if>
updated_by,
delFlag,
revision,
created_time,
updated_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != groupId'>
#{groupId},
</if>
<if test ='null != topicContent'>
#{topicContent},
</if>
<if test ='null != status'>
#{status},
</if>
<if test ='null != province'>
#{province},
</if>
<if test ='null != city'>
#{city},
</if>
<if test ='null != area'>
#{area},
</if>
<if test ='null != address'>
#{address},
</if>
<if test ='null != longitude'>
#{longitude},
</if>
<if test ='null != dimension'>
#{dimension},
</if>
<if test ='null != createdBy'>
#{createdBy},
</if>
'APP_USER',
'0',
'0',
now(),
now()
</trim>
</insert>
<!-- 查询最近十条话题 -->
<select id="getLatestTenTopics" parameterType="string" resultType="com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO">
SELECT
ID,
GROUP_ID,
TOPIC_CONTENT,
STATUS,
CREATED_TIME AS releaseTime,
CREATED_BY AS userId,
DECODE(CREATED_BY,#{userId},'me','other') as releaseUserFlag
FROM
RESI_TOPIC
WHERE
DEL_FLAG = '0'
AND <![CDATA[ STATUS <> 'hidden' ]]>
AND GROUP_ID = #{groupId}
ORDER BY
CREATED_TIME DESC
LIMIT 10
</select>
<!-- 查询历史话题,分页,参数查询 -->
<select id="getPastTopics" parameterType="com.epmet.resi.group.dto.topic.form.ResiTopicPageFormDTO" resultType="com.epmet.resi.group.dto.topic.result.ResiTopicInfoResultDTO">
SELECT
ID,
GROUP_ID,
TOPIC_CONTENT,
STATUS,
CREATED_TIME AS releaseTime,
CREATED_BY AS userId,
DECODE(CREATED_BY,#{userId},'me','other') as releaseUserFlag
FROM
RESI_TOPIC
<where>
DEL_FLAG = '0'
<if test='"hidden" != status'>
AND <![CDATA[ STATUS <> 'hidden' ]]>
</if>
AND GROUP_ID = #{groupId}
<if test='null != status and "" != status'>
AND STATUS = #{status}
</if>
</where>
ORDER BY
CREATED_TIME DESC
LIMIT #{pageNo},#{pageSize}
</select>
<!-- 单条更新 -->
<update id="update" parameterType="com.epmet.modules.topic.entity.ResiTopicEntity">
UPDATE
RESI_TOPIC
<set>
<if test='null != status and "" != status'>
STATUS = #{status} ,
</if>
<if test='null != delFlag and "" != delFlag'>
DEL_FLAG = #{delFlag} ,
</if>
<if test='null != updatedBy and "" != updatedBy'>
UPDATED_BY = #{updatedBy} ,
</if>
<if test='null != topicContent and "" != topicContent'>
TOPIC_CONTENT = #{topicContent} ,
</if>
UPDATED_DATE = NOW()
</set>
WHERE
ID = #{id}
AND DEL_FLAG = '0'
</update>
<!-- 批量取消屏蔽 -->
<update id="cancelHiddenOrCloseBatch">
UPDATE
RESI_TOPIC
SET
STATUS = #{status},
UPDATED_DATE = NOW(),
UPDATED_BY = #{updatedBy}
WHERE
ID
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
${item}
</foreach>
AND
DEL_FLAG = '0'
AND
STATUS = 'hidden'
</update>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="list">
update RESI_TOPIC
<trim prefix="set" suffixOverrides=",">
<trim prefix="topic_content= case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.topicContent!=null">
when id=#{i.id} then #{i.topicContent}
</if>
</foreach>
</trim>
<trim prefix=" status =case" suffix="end,">
<foreach collection="list" item="i" index="index">
<if test="i.status!=null">
when id=#{i.id} then #{i.status}
</if>
</foreach>
</trim>
<trim prefix="updated_by =case" suffix="end," >
<foreach collection="list" item="i" index="index">
<if test="i.updatedBy!=null">
when id=#{i.id} then #{i.updatedBy}
</if>
</foreach>
</trim>
</trim>
updated_date = now()
where
<foreach collection="list" separator="or" item="i" index="index" >
id=#{i.id}
</foreach>
</update>
</mapper>

47
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/topic/ResiTopicOperationDao.xml

@ -3,6 +3,53 @@
<mapper namespace="com.epmet.modules.topic.dao.ResiTopicOperationDao">
<!-- 新增操作 -->
<insert id="insertOne" useGeneratedKeys="true" keyColumn="id" keyProperty="id" parameterType="com.epmet.modules.topic.entity.ResiTopicOperationEntity">
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
select replace(uuid(),'-','') AS APPROVAL_ID
</selectKey>
INSERT INTO resi_topic_operation
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
topic_id,
</if>
<if test ='null != operationType'>
operation_type,
</if>
<if test='null != operationReason'>
operation_reason,
</if>
<if test ='null != createdBy'>
created_by,
</if>
del_flag,
revision,
created_time,
updated_by,
updated_time
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test ='null != topicId'>
#{topicId},
</if>
<if test ='null != operationType'>
#{operationType},
</if>
<if test='null != operationReason'>
#{operationReason},
</if>
<if test ='null != createdBy'>
#{createdBy},
</if>
'0',
'0',
now(),
'APP_USER',
now()
</trim>
</insert>
</mapper>

6
epmet-module/resi-guide/resi-guide-server/src/main/java/com/epmet/service/impl/UserAccessServiceImpl.java

@ -1,5 +1,6 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.StrangerResiGuideConstant;
@ -44,6 +45,11 @@ public class UserAccessServiceImpl implements UserAccessService {
visitedFormDTO.setGridId(userInfoParams.getGridId());
visitedFormDTO.setCustomerId(userInfoParams.getCustomerId());
visitedFormDTO.setUserId(userInfoParams.getUserId());
if(null != userInfoResult.getData().getUserRoleList() && userInfoResult.getData().getUserRoleList().size() > 0){
visitedFormDTO.setIsReg(NumConstant.ONE_STR);
}else{
visitedFormDTO.setIsReg(NumConstant.ZERO_STR);
}
Result re = epmetUserFeignClient.saveVisitedRecord(visitedFormDTO);
if (!re.success()) {
log.warn(StrangerResiGuideConstant.EPMET_USER_EXCEPTION);

6
epmet-module/resi-partymember/resi-partymember-server/pom.xml

@ -81,6 +81,12 @@
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>epmet-user-server</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

10
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java

@ -3,6 +3,7 @@ package com.epmet.modules.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserRoleDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.modules.feign.fallback.EpmetUserFeignClientFallBack;
import org.springframework.cloud.openfeign.FeignClient;
@ -33,4 +34,13 @@ public interface EpmetUserFeignClient {
@PostMapping("/epmetuser/userresiinfo/saveResiInfo")
Result saveResiInfo (@RequestBody UserResiInfoDTO userResiInfoDTO);
/**
* 添加用户角色关系
*
* @param userRoleDTO 参数
* @return Result
*/
@PostMapping("/epmetuser/userrole/saveUserRole")
Result saveUserRole(@RequestBody UserRoleDTO userRoleDTO);
}

6
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java

@ -4,6 +4,7 @@ import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserRoleDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.modules.feign.EpmetUserFeignClient;
import org.springframework.stereotype.Component;
@ -24,4 +25,9 @@ public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient {
public Result saveResiInfo(UserResiInfoDTO userResiInfoDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "saveResiInfo", userResiInfoDTO);
}
@Override
public Result saveUserRole(UserRoleDTO userRoleDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "saveUserRole", userRoleDTO);
}
}

27
epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java

@ -1,9 +1,12 @@
package com.epmet.modules.partymember.service.impl;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.PartyMemberConstant;
import com.epmet.constant.UserConstant;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserRoleDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.modules.partymember.entity.*;
@ -93,8 +96,8 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService
PartymemberInfoDTO partyMemberInfoResult = partymemberInfoService.getPartyMemberInfoByMobile(partyMemberInfoParam);
if (null != partyMemberInfoResult) {
//TODO code待定
result.setCode(0);
result.setMsg("该手机已被使用,请更换手机或使用原绑定的微信用户登录");
result.setCode(EpmetErrorCode.MOBILE_HAS_BEEN_USED.getValue());
result.setMsg(EpmetErrorCode.MOBILE_HAS_BEEN_USED.getName());
return result;
}
@ -123,8 +126,9 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService
saveOrUpdateVisit(partyMemberInfoDTO.getPartymemberVisitId(), null,
PartyMemberConstant.OPERATE_AUTO_FAILED);
//TODO code待定
result.setCode(0);
result.setMsg("验证码错误");
result.setCode(EpmetErrorCode.MOBILE_CODE_ERROR.getValue());
result.setMsg(EpmetErrorCode.MOBILE_CODE_ERROR.getName());
return result;
}
//获取党员基本信息
@ -142,18 +146,22 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService
//将访问记录更新到热心居民申请行为记录表
saveOrUpdateVisit(partyMemberInfoDTO.getPartymemberVisitId(), null, PartyMemberConstant.OPERATE_AUTO_FAILED);
//TODO code待定
result.setCode(0);
result.setMsg("认证失败");
result.setCode(EpmetErrorCode.AUTO_CONFIRM_FAILED.getValue());
result.setMsg(EpmetErrorCode.AUTO_CONFIRM_FAILED.getName());
} else {
//自动认证成功
partyMemberInfoEntity.setConfirmResult("0");
partymemberInfoService.insert(partyMemberInfoEntity);
//将访问记录更新到热心居民申请行为记录表
saveOrUpdateVisit(partyMemberInfoDTO.getPartymemberVisitId(), null, PartyMemberConstant.OPERATE_AUTO_SUCCESS);
//添加用户党员角色关系
UserRoleDTO userRole = new UserRoleDTO();
userRole.setUserId(partyMemberInfoDTO.getUserId());
userRole.setRoleKey(UserConstant.ROLE_PARTYMEMBER);
epmetUserFeignClient.saveUserRole(userRole);
//存入党员注册关系表 用于统计客户网格的认证党员数
saveRegisterRelation(partyMemberInfoDTO);
}
;
//将自动认证结果存入党员认证自动审核表
if (confirmAutoDTO != null) {
@ -162,7 +170,7 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService
PartymemberConfirmAutoEntity.class));
}
//TODO 判断是否已注册居民,如果没有则注册居民
//判断是否已注册居民,如果没有则注册居民
isResiRegister(partyMemberInfoDTO);
return result;
@ -201,11 +209,10 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService
userResiInfoFormDTO.setUserId(partyMemberInfoDTO.getUserId());
Result<UserResiInfoDTO> userResiInfoResult = epmetUserFeignClient.getUserResiInfoDTO(userResiInfoFormDTO);
if (null == userResiInfoResult.getData()) {
//TODO 判断手机号是否可用
UserResiInfoDTO userResiInfoDTO = ConvertUtils.sourceToTarget(partyMemberInfoDTO, UserResiInfoDTO.class);
userResiInfoDTO.setRegMobile(partyMemberInfoDTO.getMobile());
userResiInfoDTO.setResiVisitId(partyMemberInfoDTO.getPartymemberVisitId());
epmetUserFeignClient.saveResiInfo(userResiInfoDTO);
//TODO 注册居民
}
}

8
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserRoleDTO.java

@ -17,9 +17,10 @@
package com.epmet.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
@ -53,6 +54,11 @@ public class UserRoleDTO implements Serializable {
*/
private String roleId;
/**
* 角色Key值
*/
private String roleKey;
/**
* 删除标识0.未删除 1.已删除
*/

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

@ -48,5 +48,10 @@ public class VisitedFormDTO implements Serializable {
@NotBlank(message = "用户ID不能为空")
private String userId;
/**
* 是否注册居民 1: 0
* */
private String isReg;
}

62
epmet-user/epmet-user-server/src/main/java/com/epmet/constant/UserConstant.java

@ -8,29 +8,43 @@ package com.epmet.constant;
*/
public interface UserConstant {
/**
* 政府端
* */
String APP_GOV = "gov";
/**
* 居民端
* */
String APP_RESI = "resi";
/**
* 运营端
* */
String APP_OPER = "oper";
/**
* PC端
* */
String CLIENT_WEB = "web";
/**
* 微信端
* */
String CLIENT_WX = "wxmp";
/**
* 政府端
*/
String APP_GOV = "gov";
/**
* 居民端
*/
String APP_RESI = "resi";
/**
* 运营端
*/
String APP_OPER = "oper";
/**
* PC端
*/
String CLIENT_WEB = "web";
/**
* 微信端
*/
String CLIENT_WX = "wxmp";
/**
* 居民角色
*/
String ROLE_RESI = "registered_resi";
/**
* 热心居民角色
*/
String ROLE_WARMHEARTED = "warmhearted";
/**
* 党员角色
*/
String ROLE_PARTYMEMBER = "partymember";
}

134
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserRoleController.java

@ -39,7 +39,7 @@ import java.util.Map;
/**
* 用户角色关系表
* 用户角色关系表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-03-30
@ -47,65 +47,77 @@ import java.util.Map;
@RestController
@RequestMapping("userrole")
public class UserRoleController {
@Autowired
private UserRoleService userRoleService;
@GetMapping("page")
public Result<PageData<UserRoleDTO>> page(@RequestParam Map<String, Object> params){
PageData<UserRoleDTO> page = userRoleService.page(params);
return new Result<PageData<UserRoleDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<UserRoleDTO> get(@PathVariable("id") String id){
UserRoleDTO data = userRoleService.get(id);
return new Result<UserRoleDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody UserRoleDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
userRoleService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody UserRoleDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
userRoleService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
userRoleService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<UserRoleDTO> list = userRoleService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, UserRoleExcel.class);
}
/**
* @Description 根据用户Id来源app客户Id查询用户角色
* @Param userRoleFormDTO
* @return UserRoleResultDTO
* @Author wangc
* @Date 2020.03.30 15:35
**/
@PostMapping("getuserroleinfo")
public Result<List<UserRoleResultDTO>> getUserRoleInfo(@RequestBody UserRoleFormDTO userRoleFormDTO){
ValidatorUtils.validateEntity(userRoleFormDTO);
return userRoleService.getUserRoleInfo(userRoleFormDTO);
}
@Autowired
private UserRoleService userRoleService;
@GetMapping("page")
public Result<PageData<UserRoleDTO>> page(@RequestParam Map<String, Object> params) {
PageData<UserRoleDTO> page = userRoleService.page(params);
return new Result<PageData<UserRoleDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<UserRoleDTO> get(@PathVariable("id") String id) {
UserRoleDTO data = userRoleService.get(id);
return new Result<UserRoleDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody UserRoleDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
userRoleService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody UserRoleDTO dto) {
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
userRoleService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids) {
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
userRoleService.delete(ids);
return new Result();
}
@GetMapping("export")
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception {
List<UserRoleDTO> list = userRoleService.list(params);
ExcelUtils.exportExcelToTarget(response, null, list, UserRoleExcel.class);
}
/**
* @return UserRoleResultDTO
* @Description 根据用户Id来源app客户Id查询用户角色
* @Param userRoleFormDTO
* @Author wangc
* @Date 2020.03.30 15:35
**/
@PostMapping("getuserroleinfo")
public Result<List<UserRoleResultDTO>> getUserRoleInfo(@RequestBody UserRoleFormDTO userRoleFormDTO) {
ValidatorUtils.validateEntity(userRoleFormDTO);
return userRoleService.getUserRoleInfo(userRoleFormDTO);
}
/**
* 添加用户角色关系
*
* @param userRoleDTO 参数
* @return Result
*/
@PostMapping("saveUserRole")
public Result saveUserRole(@RequestBody UserRoleDTO userRoleDTO) {
return userRoleService.saveUserRole(userRoleDTO);
}
}

12
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RoleDao.java

@ -18,12 +18,11 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.RoleDTO;
import com.epmet.entity.RoleEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 角色表
* 角色表
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-03-30
@ -31,5 +30,12 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface RoleDao extends BaseDao<RoleEntity> {
RoleDTO selectRoleByKey(RoleDTO roleDTO);
/**
* 根据key值获取权限信息
*
* @param param 参数
* @return RoleEntity
*/
RoleEntity selectRoleByKey(RoleEntity param);
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/feign/GovOrgFeignClient.java

@ -13,7 +13,7 @@ import org.springframework.web.bind.annotation.PostMapping;
* @Author sun
* @Date 2020/3/16
*/
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgFeignClientFallBack.class )
@FeignClient(name = ServiceConstant.GOV_ORG_SERVER, fallback = GovOrgFeignClientFallBack.class)
public interface GovOrgFeignClient {
/**

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

@ -19,7 +19,6 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.RoleDTO;
import com.epmet.entity.RoleEntity;
@ -94,5 +93,10 @@ public interface RoleService extends BaseService<RoleEntity> {
*/
void delete(String[] ids);
Result<RoleDTO> getRoleByKey(RoleDTO roleDTO);
/**
* 根据key获取role信息
* @param role
* @return RoleDTO
*/
RoleDTO getRoleByKey(RoleDTO role);
}

137
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserRoleService.java

@ -20,7 +20,6 @@ package com.epmet.service;
import com.epmet.commons.mybatis.service.BaseService;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserRoleDTO;
import com.epmet.dto.form.UserRoleFormDTO;
import com.epmet.dto.result.UserRoleResultDTO;
@ -37,79 +36,81 @@ import java.util.Map;
*/
public interface UserRoleService extends BaseService<UserRoleEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<UserRoleDTO>
* @author generator
* @date 2020-03-30
*/
PageData<UserRoleDTO> page(Map<String, Object> params);
/**
* 默认分页
*
* @param params
* @return PageData<UserRoleDTO>
* @author generator
* @date 2020-03-30
*/
PageData<UserRoleDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<UserRoleDTO>
* @author generator
* @date 2020-03-30
*/
List<UserRoleDTO> list(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<UserRoleDTO>
* @author generator
* @date 2020-03-30
*/
List<UserRoleDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return UserRoleDTO
* @author generator
* @date 2020-03-30
*/
UserRoleDTO get(String id);
/**
* 单条查询
*
* @param id
* @return UserRoleDTO
* @author generator
* @date 2020-03-30
*/
UserRoleDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-03-30
*/
void save(UserRoleDTO dto);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2020-03-30
*/
void save(UserRoleDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-03-30
*/
void update(UserRoleDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2020-03-30
*/
void update(UserRoleDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-03-30
*/
void delete(String[] ids);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2020-03-30
*/
void delete(String[] ids);
/**
* @return UserRoleResultDTO
* @Description 根据用户Id来源app客户Id查询用户角色
* @Param userRoleFormDTO
* @Author wangc
* @Date 2020.03.30 15:35
**/
Result<List<UserRoleResultDTO>> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO);
/**
* @return UserRoleResultDTO
* @Description 根据用户Id来源app客户Id查询用户角色
* @Param userRoleFormDTO
* @Author wangc
* @Date 2020.03.30 15:35
**/
Result<List<UserRoleResultDTO>> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO);
/**
* @Description 居民注册成功添加居民角色
* @Author sun
**/
Result saveResiRole(UserResiInfoDTO userResiInfoDTO);
/**
* 添加用户角色关系
*
* @param userRoleDTO 参数
* @return Result
*/
Result saveUserRole(UserRoleDTO userRoleDTO);
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridVisitedServiceImpl.java

@ -158,7 +158,7 @@ public class GridVisitedServiceImpl extends BaseServiceImpl<GridVisitedDao, Grid
Date date = new Date();
GridVisitedDTO gridVisitedDTO = new GridVisitedDTO();
//TODO:预留方法 根据userId查询用户是否认证(注册)
gridVisitedDTO.setIsRegister(getRegisterByUserId(visitedFormDTO.getUserId()));
gridVisitedDTO.setIsRegister(Integer.parseInt(visitedFormDTO.getIsReg()));
gridVisitedDTO.setCustomerId(customerGridDTO.getCustomerId());
gridVisitedDTO.setGridId(customerGridDTO.getId());
gridVisitedDTO.setCustomerUserId(visitedFormDTO.getUserId());

14
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RegisterRelationServiceImpl.java

@ -189,9 +189,9 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
if(registerRecordWithSameCustAndDiffGrid.isPresent()){
//存在相同客户不同网格的注册记录
//参与用户
registerRelationToSave.setFirstRegister("0");
registerRelationToSave.setRegister("0");
registerRelationToSave.setParticipation("1");
registerRelationToSave.setFirstRegister(NumConstant.ZERO_STR);
registerRelationToSave.setRegister(NumConstant.ZERO_STR);
registerRelationToSave.setParticipation(NumConstant.ONE_STR);
baseDao.insert(registerRelationToSave);
}else{
@ -201,9 +201,9 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
if(registerRecordWithDiffCustAndGrid.isPresent()){
//如果存在不同客户不同网格的注册信息
//注册用户 参与用户
registerRelationToSave.setFirstRegister("0");
registerRelationToSave.setRegister("1");
registerRelationToSave.setParticipation("1");
registerRelationToSave.setFirstRegister(NumConstant.ZERO_STR);
registerRelationToSave.setRegister(NumConstant.ONE_STR);
registerRelationToSave.setParticipation(NumConstant.ONE_STR);
baseDao.insert(registerRelationToSave);
userCustomerDao.insert(userCustomer);
@ -211,7 +211,7 @@ public class RegisterRelationServiceImpl extends BaseServiceImpl<RegisterRelatio
//如果不存在不同客户不同网格数据,说明在居民注册时没有成功记录register_relation信息
UserResiRegisterVisitDTO userResiRegisterVisitDTO = new UserResiRegisterVisitDTO();
userResiRegisterVisitDTO.setDelFlag(0);
userResiRegisterVisitDTO.setDelFlag(NumConstant.ZERO);
userResiRegisterVisitDTO.setUserId(enterGridFormDTO.getUserId());
List<UserResiRegisterVisitDTO> UserResiRegisterVisitRecord =
userResiRegisterVisitDao.selectUserResiRegisterVisit(userResiRegisterVisitDTO);

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

@ -23,7 +23,6 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.RoleDao;
import com.epmet.dto.RoleDTO;
import com.epmet.entity.RoleEntity;
@ -49,8 +48,6 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleDao, RoleEntity> implem
@Autowired
private RoleRedis roleRedis;
@Autowired
private RoleDao roleDao;
@Override
public PageData<RoleDTO> page(Map<String, Object> params) {
@ -105,8 +102,9 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleDao, RoleEntity> implem
}
@Override
public Result<RoleDTO> getRoleByKey(RoleDTO roleDTO) {
return new Result<RoleDTO>().ok(roleDao.selectRoleByKey(roleDTO));
public RoleDTO getRoleByKey(RoleDTO role) {
RoleEntity entity = baseDao.selectRoleByKey(ConvertUtils.sourceToTarget(role, RoleEntity.class));
return ConvertUtils.sourceToTarget(entity, RoleDTO.class);
}
}

372
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserResiInfoServiceImpl.java

@ -26,13 +26,14 @@ import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserConstant;
import com.epmet.constant.UserResiRegisterConstant;
import com.epmet.dao.UserResiInfoDao;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserRoleDTO;
import com.epmet.dto.form.UserResiInfoFormDTO;
import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.entity.UserResiInfoEntity;
import com.epmet.entity.UserResiRegisterVisitEntity;
import com.epmet.redis.UserResiInfoRedis;
import com.epmet.service.RegisterRelationService;
import com.epmet.service.UserResiInfoService;
@ -59,195 +60,184 @@ import java.util.Map;
@Service
public class UserResiInfoServiceImpl extends BaseServiceImpl<UserResiInfoDao, UserResiInfoEntity> implements UserResiInfoService {
private static final Logger log = LoggerFactory.getLogger(UserResiInfoServiceImpl.class);
@Autowired
private UserResiInfoRedis userResiInfoRedis;
@Autowired
private UserResiRegisterVisitService userResiRegisterVisitService;
@Autowired
private UserResiInfoDao userResiInfoDao;
@Autowired
private RegisterRelationService registerRelationService;
@Autowired
private UserRoleService userRoleService;
@Override
public PageData<UserResiInfoDTO> page(Map<String, Object> params) {
IPage<UserResiInfoEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, UserResiInfoDTO.class);
}
@Override
public List<UserResiInfoDTO> list(Map<String, Object> params) {
List<UserResiInfoEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, UserResiInfoDTO.class);
}
private QueryWrapper<UserResiInfoEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<UserResiInfoEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public UserResiInfoDTO get(String id) {
UserResiInfoEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, UserResiInfoDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(UserResiInfoDTO dto) {
UserResiInfoEntity entity = ConvertUtils.sourceToTarget(dto, UserResiInfoEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(UserResiInfoDTO dto) {
UserResiInfoEntity entity = ConvertUtils.sourceToTarget(dto, UserResiInfoEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @param userResiInfoFormDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.UserResiInfoDTO>
* @Author yinzuomei
* @Description 查询用户注册信息
* @Date 2020/3/30 11:07
**/
@Override
public Result<UserResiInfoDTO> getUserResiInfoDTO(UserResiInfoFormDTO userResiInfoFormDTO) {
UserResiInfoDTO userResiInfoDTO = baseDao.selectUserResiInfoDTO(userResiInfoFormDTO);
if (null != userResiInfoDTO) {
String showName = userResiInfoDTO.getStreet() + "-" + userResiInfoDTO.getSurname() + userResiInfoDTO.getName();
userResiInfoDTO.setShowName(showName);
}
return new Result<UserResiInfoDTO>().ok(userResiInfoDTO);
}
@Override
public Result submit(UserResiInfoDTO userResiInfoDTO) {
Result result = new Result();
//1:手机验证码数据校验//TODO
//2:验证码校验失败则更新行为记录表数据 返回前台结果
if (false) {
userResiRegisterVisitService.updateResiRegisterVisit(false, userResiInfoDTO);
result.error(UserResiRegisterConstant.PARAMETER_ERROR);
result.setMsg(UserResiRegisterConstant.MOBILECODE_EXCEPTION);
return result;
}
//3:校验成功 数据存入居民注册表 新增角色 更新行为记录表数据
saveUserResiInfo(userResiInfoDTO);
userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO);
//4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一
registerRelationService.saveRegisterRelation(userResiInfoDTO);
return result;
}
/**
* 居民注册信息表新增数据,角色表新增角色
*
* @param userResiInfoDTO
* @Author sun
*/
@Transactional(rollbackFor = Exception.class)
public Result saveUserResiInfo(UserResiInfoDTO userResiInfoDTO) {
//1:注册信息表新增数据
Date date = new Date();
userResiInfoDTO.setId(IdWorker.get32UUID());
userResiInfoDTO.setDelFlag(NumConstant.ZERO);
userResiInfoDTO.setRevision(NumConstant.ZERO);
userResiInfoDTO.setCreatedBy(userResiInfoDTO.getUserId());
userResiInfoDTO.setCreatedTime(date);
userResiInfoDTO.setUpdatedBy(userResiInfoDTO.getUserId());
userResiInfoDTO.setUpdatedTime(date);
userResiInfoDao.saveUserResiInfo(userResiInfoDTO);
//2:角色表新增角色数据
userRoleService.saveResiRole(userResiInfoDTO);
return new Result();
}
/**
* @param verificationCodeFormDTO
* @Author sun
* @Description 居民端-居民注册根据手机号获取验证码
**/
@Override
public Result getVerificationCode(VerificationCodeFormDTO verificationCodeFormDTO) {
Result result = new Result();
//1:更新居民注册访问记录表数据
userResiRegisterVisitService.updateResiVisitOperate(verificationCodeFormDTO);
//2:判断手机号是否可用
if (!getResiInfoByMobile(verificationCodeFormDTO.getMobile())) {
result.error(UserResiRegisterConstant.PARAMETER_ERROR);
result.setMsg(UserResiRegisterConstant.MOBILE_EXIST);
return result;
}
//3:调用短信服务 生成验证码发送短信 TODO
String verificationCode = "TODO";
//4:将验证码存入redis TODO
userResiInfoRedis.setUserResiMobileCode(verificationCodeFormDTO.getUserId(), verificationCodeFormDTO.getMobile(), verificationCode);
return result;
}
@Override
public Result saveResiInfo(UserResiInfoDTO userResiInfoDTO) {
Result result = new Result();
//判断手机号是否可用
if (getResiInfoByMobile(userResiInfoDTO.getRegMobile())) {
UserResiRegisterVisitEntity visitEntity = new UserResiRegisterVisitEntity();
visitEntity.setCustomerId(userResiInfoDTO.getCustomerId());
visitEntity.setGridId(userResiInfoDTO.getGridId());
visitEntity.setUserId(userResiInfoDTO.getUserId());
visitEntity.setLastOperateVisit(UserResiRegisterConstant.SUCCESS);
//TODO
visitEntity.setVisitFrom("党员认证");
visitEntity.setVisitTime(new Date());
userResiRegisterVisitService.insert(visitEntity);
//数据存入居民注册表
userResiInfoDTO.setResiVisitId(visitEntity.getId());
saveUserResiInfo(userResiInfoDTO);
//4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一
registerRelationService.saveRegisterRelation(userResiInfoDTO);
}
return result;
}
/**
* 判断手机号是否可用-根据手机号查询居民注册信息(user_resi_info)表数据
*
* @param mobile
* @return
* @Author sun
*/
private Boolean getResiInfoByMobile(String mobile) {
Boolean bl = true;
List<UserResiInfoDTO> list = userResiInfoDao.selectResiInfoByMobile(mobile);
if (list.size() > 0) {
bl = false;
}
return bl;
}
private static final Logger log = LoggerFactory.getLogger(UserResiInfoServiceImpl.class);
@Autowired
private UserResiInfoRedis userResiInfoRedis;
@Autowired
private UserResiRegisterVisitService userResiRegisterVisitService;
@Autowired
private UserResiInfoDao userResiInfoDao;
@Autowired
private RegisterRelationService registerRelationService;
@Autowired
private UserRoleService userRoleService;
@Override
public PageData<UserResiInfoDTO> page(Map<String, Object> params) {
IPage<UserResiInfoEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, UserResiInfoDTO.class);
}
@Override
public List<UserResiInfoDTO> list(Map<String, Object> params) {
List<UserResiInfoEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, UserResiInfoDTO.class);
}
private QueryWrapper<UserResiInfoEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<UserResiInfoEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public UserResiInfoDTO get(String id) {
UserResiInfoEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, UserResiInfoDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(UserResiInfoDTO dto) {
UserResiInfoEntity entity = ConvertUtils.sourceToTarget(dto, UserResiInfoEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(UserResiInfoDTO dto) {
UserResiInfoEntity entity = ConvertUtils.sourceToTarget(dto, UserResiInfoEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @param userResiInfoFormDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.UserResiInfoDTO>
* @Author yinzuomei
* @Description 查询用户注册信息
* @Date 2020/3/30 11:07
**/
@Override
public Result<UserResiInfoDTO> getUserResiInfoDTO(UserResiInfoFormDTO userResiInfoFormDTO) {
UserResiInfoDTO userResiInfoDTO = baseDao.selectUserResiInfoDTO(userResiInfoFormDTO);
if (null != userResiInfoDTO) {
String showName = userResiInfoDTO.getStreet() + "-" + userResiInfoDTO.getSurname() + userResiInfoDTO.getName();
userResiInfoDTO.setShowName(showName);
}
return new Result<UserResiInfoDTO>().ok(userResiInfoDTO);
}
@Override
public Result submit(UserResiInfoDTO userResiInfoDTO) {
Result result = new Result();
//1:手机验证码数据校验//TODO
//2:验证码校验失败则更新行为记录表数据 返回前台结果
if (false) {
userResiRegisterVisitService.updateResiRegisterVisit(false, userResiInfoDTO);
result.error(UserResiRegisterConstant.PARAMETER_ERROR);
result.setMsg(UserResiRegisterConstant.MOBILECODE_EXCEPTION);
return result;
}
//3:校验成功 数据存入居民注册表 更新行为记录表数据
saveUserResiInfo(userResiInfoDTO);
userResiRegisterVisitService.updateResiRegisterVisit(true, userResiInfoDTO);
//4:居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一
registerRelationService.saveRegisterRelation(userResiInfoDTO);
return result;
}
/**
* 居民注册信息表新增数据
*
* @param userResiInfoDTO
* @Author sun
*/
@Transactional(rollbackFor = Exception.class)
public void saveUserResiInfo(UserResiInfoDTO userResiInfoDTO) {
Date date = new Date();
userResiInfoDTO.setId(IdWorker.get32UUID());
userResiInfoDTO.setDelFlag(NumConstant.ZERO);
userResiInfoDTO.setRevision(NumConstant.ZERO);
userResiInfoDTO.setCreatedBy(userResiInfoDTO.getUserId());
userResiInfoDTO.setCreatedTime(date);
userResiInfoDTO.setUpdatedBy(userResiInfoDTO.getUserId());
userResiInfoDTO.setUpdatedTime(date);
userResiInfoDao.saveUserResiInfo(userResiInfoDTO);
}
/**
* @param verificationCodeFormDTO
* @Author sun
* @Description 居民端-居民注册根据手机号获取验证码
**/
@Override
public Result getVerificationCode(VerificationCodeFormDTO verificationCodeFormDTO) {
Result result = new Result();
//1:更新居民注册访问记录表数据
userResiRegisterVisitService.updateResiVisitOperate(verificationCodeFormDTO);
//2:判断手机号是否可用
if (!getResiInfoByMobile(verificationCodeFormDTO.getMobile())) {
result.error(UserResiRegisterConstant.PARAMETER_ERROR);
result.setMsg(UserResiRegisterConstant.MOBILE_EXIST);
return result;
}
//3:调用短信服务 生成验证码发送短信 TODO
//4:将验证码存入redis TODO
return result;
}
@Override
public Result saveResiInfo(UserResiInfoDTO userResiInfoDTO) {
Result result = new Result();
//判断手机号是否可用
if (getResiInfoByMobile(userResiInfoDTO.getRegMobile())) {
//数据存入居民注册表
saveUserResiInfo(userResiInfoDTO);
//居民注册关系表新增数据 首次注册数加一 注册数加一 参与数加一
registerRelationService.saveRegisterRelation(userResiInfoDTO);
//将用户于居民角色关联
UserRoleDTO userRole = new UserRoleDTO();
userRole.setUserId(userResiInfoDTO.getUserId());
userRole.setRoleKey(UserConstant.ROLE_RESI);
userRoleService.saveUserRole(userRole);
}
return result;
}
/**
* 判断手机号是否可用-根据手机号查询居民注册信息(user_resi_info)表数据
*
* @param mobile
* @return
* @Author sun
*/
private Boolean getResiInfoByMobile(String mobile) {
Boolean bl = true;
List<UserResiInfoDTO> list = userResiInfoDao.selectResiInfoByMobile(mobile);
if (list.size() > 0) {
bl = false;
}
return bl;
}
}

188
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserRoleServiceImpl.java

@ -19,17 +19,14 @@ package com.epmet.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.EpmetRoleKeyConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserConstant;
import com.epmet.dao.UserRoleDao;
import com.epmet.dto.RoleDTO;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserRoleDTO;
import com.epmet.dto.form.UserRoleFormDTO;
import com.epmet.dto.result.UserRoleResultDTO;
@ -38,14 +35,11 @@ import com.epmet.redis.UserRoleRedis;
import com.epmet.service.RoleService;
import com.epmet.service.UserRoleService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -58,105 +52,85 @@ import java.util.Map;
@Service
public class UserRoleServiceImpl extends BaseServiceImpl<UserRoleDao, UserRoleEntity> implements UserRoleService {
private static final Logger log = LoggerFactory.getLogger(UserRoleServiceImpl.class);
@Autowired
private UserRoleRedis userRoleRedis;
@Autowired
private RoleService roleService;
@Autowired
private UserRoleDao userRoleDao;
@Override
public PageData<UserRoleDTO> page(Map<String, Object> params) {
IPage<UserRoleEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, UserRoleDTO.class);
}
@Override
public List<UserRoleDTO> list(Map<String, Object> params) {
List<UserRoleEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, UserRoleDTO.class);
}
private QueryWrapper<UserRoleEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<UserRoleEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public UserRoleDTO get(String id) {
UserRoleEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, UserRoleDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(UserRoleDTO dto) {
UserRoleEntity entity = ConvertUtils.sourceToTarget(dto, UserRoleEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(UserRoleDTO dto) {
UserRoleEntity entity = ConvertUtils.sourceToTarget(dto, UserRoleEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @return UserRoleResultDTO
* @Description 根据用户Id来源app客户Id查询用户角色
* @Param userRoleFormDTO
* @Author wangc
* @Date 2020.03.30 15:35
**/
@Override
public Result<List<UserRoleResultDTO>> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO) {
return new Result<List<UserRoleResultDTO>>().ok(baseDao.getUserRoleInfo(userRoleFormDTO));
}
/**
* @Description 居民注册成功添加居民角色
* @Author sun
**/
@Override
public Result saveResiRole(UserResiInfoDTO userResiInfoDTO) {
//1:查询角色Id
RoleDTO roleDTO = new RoleDTO();
roleDTO.setApp(userResiInfoDTO.getApp());
roleDTO.setRoleKey(EpmetRoleKeyConstant.REGISTERED_RESI);
Result<RoleDTO> result = roleService.getRoleByKey(roleDTO);
RoleDTO role = result.getData();
//2:新增角色数据
UserRoleDTO userRoleDTO = new UserRoleDTO();
userRoleDTO.setCustomerId(userResiInfoDTO.getCustomerId());
userRoleDTO.setUserId(userResiInfoDTO.getUserId());
userRoleDTO.setRoleId(role.getId());
Date date = new Date();
userRoleDTO.setId(IdWorker.get32UUID());
userRoleDTO.setDelFlag(NumConstant.ZERO);
userRoleDTO.setRevision(NumConstant.ZERO);
userRoleDTO.setCreatedBy(userResiInfoDTO.getUserId());
userRoleDTO.setCreatedTime(date);
userRoleDTO.setUpdatedBy(userResiInfoDTO.getUserId());
userRoleDTO.setUpdatedTime(date);
userRoleDao.saveResiRole(userRoleDTO);
return new Result();
}
@Autowired
private UserRoleRedis userRoleRedis;
@Autowired
private RoleService roleService;
@Override
public PageData<UserRoleDTO> page(Map<String, Object> params) {
IPage<UserRoleEntity> page = baseDao.selectPage(
getPage(params, FieldConstant.CREATED_TIME, false),
getWrapper(params)
);
return getPageData(page, UserRoleDTO.class);
}
@Override
public List<UserRoleDTO> list(Map<String, Object> params) {
List<UserRoleEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, UserRoleDTO.class);
}
private QueryWrapper<UserRoleEntity> getWrapper(Map<String, Object> params) {
String id = (String) params.get(FieldConstant.ID_HUMP);
QueryWrapper<UserRoleEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public UserRoleDTO get(String id) {
UserRoleEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, UserRoleDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(UserRoleDTO dto) {
UserRoleEntity entity = ConvertUtils.sourceToTarget(dto, UserRoleEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(UserRoleDTO dto) {
UserRoleEntity entity = ConvertUtils.sourceToTarget(dto, UserRoleEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* @return UserRoleResultDTO
* @Description 根据用户Id来源app客户Id查询用户角色
* @Param userRoleFormDTO
* @Author wangc
* @Date 2020.03.30 15:35
**/
@Override
public Result<List<UserRoleResultDTO>> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO) {
return new Result<List<UserRoleResultDTO>>().ok(baseDao.getUserRoleInfo(userRoleFormDTO));
}
@Override
public Result saveUserRole(UserRoleDTO userRoleDTO) {
//获取角色ID
RoleDTO roleDTO = new RoleDTO();
roleDTO.setApp(UserConstant.APP_RESI);
roleDTO.setRoleKey(userRoleDTO.getRoleKey());
RoleDTO role = roleService.getRoleByKey(roleDTO);
userRoleDTO.setRoleId(role.getId());
baseDao.insert(ConvertUtils.sourceToTarget(userRoleDTO, UserRoleEntity.class));
return new Result();
}
}

12
epmet-user/epmet-user-server/src/main/resources/mapper/RoleDao.xml

@ -15,6 +15,18 @@
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<select id="selectRoleByKey" resultType="com.epmet.entity.RoleEntity"
parameterType="com.epmet.entity.RoleEntity">
select
ID,
APP,
ROLE_NAME,
ROLE_KEY
from epmet_user.epmet_role
where APP = #{app}
and ROLE_KEY = #{roleKey}
and DEL_FLAG = 0
</select>
<sql id="sql">
er.id AS "id",

Loading…
Cancel
Save