Browse Source

Merge branches 'dev' and 'dev' of http://git.elinkit.com.cn:7070/r/epmet-cloud into dev

master
jianjun 5 years ago
parent
commit
323ff93af5
  1. 2
      epmet-auth/deploy/docker-compose-test.yml
  2. 18
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/ActPointEventMsg.java
  3. 15
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java
  4. 1
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  5. 46
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActAddressResultDTO.java
  6. 27
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActRegistrationResultDTO.java
  7. 5
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/CanceledActResultDTO.java
  8. 5
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/FinishedActResultDTO.java
  9. 5
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/InProgressActResultDTO.java
  10. 6
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/JoinedUserResultDTO.java
  11. 2
      epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/LatestDraftActInfoResultDTO.java
  12. 2
      epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml
  13. 2
      epmet-module/epmet-heart/epmet-heart-server/pom.xml
  14. 19
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiActListController.java
  15. 2
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkActController.java
  16. 9
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActInfoService.java
  17. 7
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActUserRelationService.java
  18. 17
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.java
  19. 9
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java
  20. 54
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java
  21. 3
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/GrantPointsServiceImpl.java
  22. 6
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/HeartUserInfoServiceImpl.java
  23. 26
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java
  24. 4
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActDraftServiceImpl.java
  25. 69
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java
  26. 37
      epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java
  27. 423
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/epmet_heart.sql
  28. 37
      epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml
  29. 2
      epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml
  30. 5
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/UserPointActionLogDTO.java
  31. 4
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointVerificationFormDTO.java
  32. 4
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/WorkPointVerificationFormDTO.java
  33. 45
      epmet-module/epmet-point/epmet-point-client/src/main/java/dto/form/SendPointFormDTO.java
  34. 2
      epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-dev.yml
  35. 2
      epmet-module/epmet-point/epmet-point-server/pom.xml
  36. 19
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/AdjustmentController.java
  37. 28
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ExchangeController.java
  38. 2
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/MqPointCallbackController.java
  39. 2
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointVerificationLogDao.java
  40. 7
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/entity/UserPointActionLogEntity.java
  41. 9
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/UserPointActionLogService.java
  42. 2
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdjustmentLogServiceImpl.java
  43. 32
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointVerificationLogServiceImpl.java
  44. 72
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java
  45. 26
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointStatisticalDailyServiceImpl.java
  46. 29
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointTotalServiceImpl.java
  47. 2
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdjustmentLogDao.xml
  48. 1
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml
  49. 56
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointStatisticalDailyDao.xml
  50. 2
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointTotalDao.xml
  51. 27
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MessagePushTextFormDTO.java
  52. 2
      epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml
  53. 2
      epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-test.yml
  54. 2
      epmet-module/epmet-third/epmet-third-server/pom.xml
  55. 3
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/CodeConstant.java
  56. 35
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/MessagePushTextDao.java
  57. 71
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/MessagePushTextEntity.java
  58. 15
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java
  59. 23
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java
  60. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java
  61. 22
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java
  62. 18
      epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.2__thirdUpdate.sql
  63. 2
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditRecordDao.xml
  64. 2
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditResultDao.xml
  65. 2
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeCustomerDao.xml
  66. 26
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MessagePushTextDao.xml
  67. 1
      epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MiniInfoDao.xml
  68. 2
      epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml
  69. 2
      epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml
  70. 2
      epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml
  71. 2
      epmet-module/gov-org/gov-org-server/pom.xml
  72. 2
      epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffAgencyDao.xml
  73. 7
      epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/DraftDetailResultDTO.java
  74. 2
      epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-test.yml
  75. 2
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java
  76. 15
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftDao.java
  77. 30
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/ArticleEntity.java
  78. 30
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/DraftEntity.java
  79. 6
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java
  80. 40
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/impl/ArticleServiceImpl.java
  81. 17
      epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java
  82. 6
      epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.2__addAutoPublish.sql
  83. 12
      epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftDao.xml
  84. 2
      epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-test.yml
  85. 2
      epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml
  86. 76
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiUserBaseInfoResultDTO.java
  87. 2
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserBaseInfoResultDTO.java
  88. 2
      epmet-user/epmet-user-server/deploy/docker-compose-dev.yml
  89. 2
      epmet-user/epmet-user-server/deploy/docker-compose-test.yml
  90. 2
      epmet-user/epmet-user-server/pom.xml
  91. 18
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserBaseInfoController.java
  92. 2
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java
  93. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserBaseInfoDao.java
  94. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserBaseInfoService.java
  95. 16
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java
  96. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java
  97. 14
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserBaseInfoServiceImpl.java
  98. 22
      epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.5__create_userbaseinfo.sql
  99. 22
      epmet-user/epmet-user-server/src/main/resources/mapper/UserBaseInfoDao.xml
  100. 1
      epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml

2
epmet-auth/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-auth-server:
container_name: epmet-auth-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-auth:0.3.56
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-auth:0.3.57
ports:
- "8081:8081"
network_mode: host # 使用现有网络

18
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/ActPointEventMsg.java

@ -1,18 +0,0 @@
package com.epmet.commons.tools.dto.form.mq.eventmsg;
import lombok.Data;
/**
* 结束活动发放活动积分消息体
*
* @author yinzuomei@elink-cn.com
* @date 2020/7/27 9:26
*/
@Data
public class ActPointEventMsg extends BasePointEventMsg{
/**
* 参与活动的备注
*/
private String remark;
}

15
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/form/mq/eventmsg/BasePointEventMsg.java

@ -19,6 +19,11 @@ public class BasePointEventMsg implements Serializable {
*/
private String opAgencyId;
/**
* 操作人Id当有固定的操作人时传入此值如果没有则为空
* */
private String operatorId;
/**
* 客户Id
*/
@ -42,4 +47,14 @@ public class BasePointEventMsg implements Serializable {
* 是否是通用事件通用事件不走规则
*/
private Boolean isCommon;
/**
* 备注
*/
private String remark;
/**
* 业务id eg活动id
*/
private String sourceId;
}

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

@ -85,6 +85,7 @@ public enum EpmetErrorCode {
NOT_IN_THE_SIGN_IN_RANGE(8510, "您还未进入指定的签到范围~"),
NON_CERTIFIED_VOLUNTEER(8511, "活动报名失败,请先认证志愿者"),
ACT_TIME_CONFLICT(8512, "报名失败。您本次报名活动时间与已报名活动时间间隔较短,为了不影响您已报名的活动,请选择其他时间的活动,谢谢。"),
ACT_REGISTRATION_SUCCESS(8513, "报名成功。"),
// 该错误不会提示给前端,只是后端传输错误信息用。
ACCESS_SQL_FILTER_MISSION_ARGS(8701, "缺少生成权限过滤SQL所需参数"),

46
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActAddressResultDTO.java

@ -0,0 +1,46 @@
/**
* 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.dto.result.resi;
import lombok.Data;
import java.io.Serializable;
/**
* 是否到达活动打卡地址
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-07-19
*/
@Data
public class ResiActAddressResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private Boolean isAddress;
/**
* 未报到活动范围的提示信息
*/
private String errorTip;
}

27
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/resi/ResiActRegistrationResultDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.result.resi;
import lombok.Data;
import java.io.Serializable;
/**
* 活动报名 - 返回值
*
* @Auther: zhangyong
* @Date: 2020-07-28 16:22
*/
@Data
public class ResiActRegistrationResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 异常编码
*/
private Integer flag;
/**
* 提示信息
*/
private String tip;
}

5
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/CanceledActResultDTO.java

@ -52,4 +52,9 @@ public class CanceledActResultDTO implements Serializable {
* 活动取消的原因
*/
private String cancelReason;
/**
* 活动地点
*/
private String actAddress;
}

5
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/FinishedActResultDTO.java

@ -53,4 +53,9 @@ public class FinishedActResultDTO implements Serializable {
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date actualEndTime;
/**
* 活动地点
*/
private String actAddress;
}

5
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/InProgressActResultDTO.java

@ -77,4 +77,9 @@ public class InProgressActResultDTO implements Serializable {
@JsonIgnore
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date signUpStartTime;
/**
* 活动地点
*/
private String actAddress;
}

6
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/JoinedUserResultDTO.java

@ -51,6 +51,12 @@ public class JoinedUserResultDTO implements Serializable {
*/
private Boolean signInFlag;
/**
* 已签到:signed_in; 默认""
*/
@JsonIgnore
private String signInFlagStr;
/**
* true: 是志愿者 false : 不是志愿者
*/

2
epmet-module/epmet-heart/epmet-heart-client/src/main/java/com/epmet/dto/result/work/LatestDraftActInfoResultDTO.java

@ -165,5 +165,5 @@ public class LatestDraftActInfoResultDTO implements Serializable {
/**
* 活动内容-
*/
private List<ActDraftContentDTOResultDTO> actContentList;
private List<ActDraftContentDTOResultDTO> actContent;
}

2
epmet-module/epmet-heart/epmet-heart-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-heart-server:
container_name: epmet-heart-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.4
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-heart-server:0.0.8
ports:
- "8111:8111"
network_mode: host # 使用现有网络

2
epmet-module/epmet-heart/epmet-heart-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.0.4</version>
<version>0.0.8</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-heart</artifactId>

19
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/ResiActListController.java

@ -131,7 +131,7 @@ public class ResiActListController {
return actInfoService.latestAct(formDto);
}
/*
/**
* 正在进行中的活动
* 进入活动的快捷入口, 前端只取第一条
*
@ -158,8 +158,6 @@ public class ResiActListController {
return actInfoService.actLookBack(formDto);
}
//
/**
* 活动详情
*
@ -217,8 +215,6 @@ public class ResiActListController {
return actLiveRecService.liveRecList(map);
}
//
/**
* 取消活动报名
*
@ -235,16 +231,15 @@ public class ResiActListController {
}
/**
* 重新定位
* 根据活动id前端传的实时经纬度与活动设置的经纬度相比较判断用户是否已到达打卡地点
*
* @param formDTO
* @return javax.xml.transform.Result
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.resi.ResiActAddressResultDTO>
* @Author zhangyong
* @Date 16:48 2020-07-20
* @Date 11:21 2020-07-28
**/
@PostMapping("checksigninaddress")
public Result cancelSignUp(@RequestBody ResiActCaculateDistanceFormDTO formDTO) {
public Result<ResiActAddressResultDTO> cancelSignUp(@RequestBody ResiActCaculateDistanceFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ResiActCaculateDistanceFormDTO.AddUserInternalGroup.class);
return actInfoService.checkSignInAddress(formDTO);
}
@ -299,12 +294,12 @@ public class ResiActListController {
*
* @param tokenDto
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.resi.ResiActRegistrationResultDTO>
* @Author zhangyong
* @Date 16:46 2020-07-23
* @Date 16:26 2020-07-28
**/
@PostMapping("registration")
public Result registration(@LoginUser TokenDto tokenDto, @RequestBody ResiActRegistrationFormDTO formDTO) {
public Result<ResiActRegistrationResultDTO> registration(@LoginUser TokenDto tokenDto, @RequestBody ResiActRegistrationFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ResiActRegistrationFormDTO.AddUserInternalGroup.class);
return actUserRelationService.registration(tokenDto, formDTO);
}

2
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/controller/WorkActController.java

@ -73,7 +73,7 @@ public class WorkActController {
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.work.InProgressActResultDTO>
* @param formDTO
* @author yinzuomei
* @description 进行中活动列表
* @description 进行中-活动列表
* @Date 2020/7/23 21:24
**/
@PostMapping("inprogresslist")

9
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActInfoService.java

@ -101,12 +101,13 @@ public interface ActInfoService extends BaseService<ActInfoEntity> {
/**
* 根据活动id前端传的实时经纬度与活动设置的经纬度相比较判断用户是否已到达打卡地点
* @param fromDTO
* @return javax.xml.transform.Result
*
* @param formDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.resi.ResiActAddressResultDTO>
* @Author zhangyong
* @Date 16:48 2020-07-20
* @Date 11:21 2020-07-28
**/
Result checkSignInAddress(ResiActCaculateDistanceFormDTO fromDTO);
Result<ResiActAddressResultDTO> checkSignInAddress(ResiActCaculateDistanceFormDTO formDTO);
/**
* 活动列表(包含状态报名中signing_up已报满enough截止报名: end_sign_up; 已开始 in_progress; 已结束finished)

7
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/ActUserRelationService.java

@ -24,6 +24,7 @@ import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.ActUserRelationDTO;
import com.epmet.dto.form.resi.ResiActRegistrationFormDTO;
import com.epmet.dto.form.resi.ResiActUserCancelSignUpFormDTO;
import com.epmet.dto.result.resi.ResiActRegistrationResultDTO;
import com.epmet.entity.ActUserRelationEntity;
import org.apache.ibatis.annotations.Param;
@ -145,9 +146,9 @@ public interface ActUserRelationService extends BaseService<ActUserRelationEntit
*
* @param tokenDto
* @param formDTO
* @return com.epmet.commons.tools.utils.Result
* @return com.epmet.commons.tools.utils.Result<java.util.Map<java.lang.Integer,java.lang.String>>
* @Author zhangyong
* @Date 16:46 2020-07-23
* @Date 15:54 2020-07-28
**/
Result registration(TokenDto tokenDto, ResiActRegistrationFormDTO formDTO);
Result<ResiActRegistrationResultDTO> registration(TokenDto tokenDto, ResiActRegistrationFormDTO formDTO);
}

17
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActInfoServiceImpl.java

@ -23,7 +23,6 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
@ -42,6 +41,8 @@ import com.epmet.service.ActInfoService;
import com.epmet.service.ActUserRelationService;
import com.epmet.utils.CaculateDistance;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -57,6 +58,8 @@ import java.util.*;
@Service
public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntity> implements ActInfoService {
private Logger logger = LogManager.getLogger(ActInfoServiceImpl.class);
@Autowired
private ActInfoRedis actInfoRedis;
@ -355,14 +358,20 @@ public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntit
}
@Override
public Result checkSignInAddress(ResiActCaculateDistanceFormDTO formDTO) {
public Result<ResiActAddressResultDTO> checkSignInAddress(ResiActCaculateDistanceFormDTO formDTO) {
// 根据活动id,查询活动基本信息
ActInfoEntity entity = baseDao.selectById(formDTO.getActId());
Double distance = CaculateDistance.getDistance(formDTO.getLongitude(),formDTO.getLatitude(),entity.getActLongitude().doubleValue(),entity.getActLatitude().doubleValue());
ResiActAddressResultDTO dto = new ResiActAddressResultDTO();
if (distance <= entity.getSignInRadius()){
return new Result();
dto.setIsAddress(true);
dto.setErrorTip("");
return new Result<ResiActAddressResultDTO>().ok(dto);
} else {
throw new RenException(EpmetErrorCode.NOT_IN_THE_SIGN_IN_RANGE.getCode());
logger.info(EpmetErrorCode.NOT_IN_THE_SIGN_IN_RANGE.getMsg());
dto.setIsAddress(false);
dto.setErrorTip(EpmetErrorCode.NOT_IN_THE_SIGN_IN_RANGE.getMsg());
return new Result<ResiActAddressResultDTO>().ok(dto);
}
}

9
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActLiveRecServiceImpl.java

@ -23,7 +23,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.MqConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.form.mq.MqBaseMsgDTO;
import com.epmet.commons.tools.dto.form.mq.eventmsg.ActPointEventMsg;
import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg;
import com.epmet.commons.tools.enums.EventEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
@ -109,7 +109,7 @@ public class ActLiveRecServiceImpl extends BaseServiceImpl<ActLiveRecDao, ActLiv
List<Object> dataContainer = new ArrayList<>();
for (int k = 0; k < actLives.size(); k++) {
Map<String, Object> base = new HashMap<>();
Map<String, Object> base = new HashMap<>(NumConstant.ONE);
base.put("nickname", userWxInfos.getData().get(k).getNickname());
base.put("headImg", userWxInfos.getData().get(k).getHeadImgUrl());
base.put("desc", actLives.get(k).getDesc());
@ -221,13 +221,14 @@ public class ActLiveRecServiceImpl extends BaseServiceImpl<ActLiveRecDao, ActLiv
mqBaseMsgDTO.setEventClass(EventEnum.ACTIVE_INSERT_LIVE.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.ACTIVE_INSERT_LIVE.getEventTag());
List<ActPointEventMsg> actPointEventMsgList=new ArrayList<>();
ActPointEventMsg actPointEventMsg=new ActPointEventMsg();
List<BasePointEventMsg> actPointEventMsgList=new ArrayList<>();
BasePointEventMsg actPointEventMsg=new BasePointEventMsg();
actPointEventMsg.setCustomerId(formDTO.getCustomerId());
actPointEventMsg.setUserId(formDTO.getUserId());
actPointEventMsg.setActionFlag(MqConstant.PLUS);
actPointEventMsg.setIsCommon(false);
actPointEventMsg.setRemark(remark);
actPointEventMsg.setSourceId(formDTO.getActId());
actPointEventMsgList.add(actPointEventMsg);
mqBaseMsgDTO.setMsg(JSON.toJSONString(actPointEventMsgList));

54
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/ActUserRelationServiceImpl.java

@ -39,6 +39,7 @@ import com.epmet.dto.ActUserRelationDTO;
import com.epmet.dto.form.resi.ResiActRegistrationFormDTO;
import com.epmet.dto.form.resi.ResiActUserCancelSignUpFormDTO;
import com.epmet.dto.result.UserRoleResultDTO;
import com.epmet.dto.result.resi.ResiActRegistrationResultDTO;
import com.epmet.entity.ActUserLogEntity;
import com.epmet.entity.ActUserRelationEntity;
import com.epmet.entity.HeartUserInfoEntity;
@ -54,10 +55,7 @@ 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;
import java.util.*;
/**
* 用户活动关系表
@ -81,7 +79,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
@Autowired
private HeartUserInfoDao heartUserInfoDao;
private Logger logger = LogManager.getLogger(WorkActDraftServiceImpl.class);
private Logger logger = LogManager.getLogger(ActUserRelationServiceImpl.class);
@Override
public PageData<ActUserRelationDTO> page(Map<String, Object> params) {
@ -197,9 +195,10 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
@Override
@Transactional(rollbackFor = Exception.class)
public Result registration(TokenDto tokenDto, ResiActRegistrationFormDTO formDTO) {
public Result<ResiActRegistrationResultDTO> registration(TokenDto tokenDto, ResiActRegistrationFormDTO formDTO) {
formDTO.setUserId(tokenDto.getUserId());
boolean satisfy = false;
ResiActRegistrationResultDTO resultDTO = new ResiActRegistrationResultDTO();
// 查询活动信息
ActInfoDTO actInfoDTO = actInfoService.get(formDTO.getActId());
// >0 当前用户是志愿者
@ -207,15 +206,35 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
if (actInfoDTO.getVolunteerLimit()){
// 活动只能志愿者参加, 当前用户是否满足条件
satisfy = this.volunteerParticipationAct(volunteerFlag);
if (!satisfy){
logger.info(EpmetErrorCode.NON_CERTIFIED_VOLUNTEER.getMsg());
resultDTO.setFlag(EpmetErrorCode.NON_CERTIFIED_VOLUNTEER.getCode());
resultDTO.setTip(EpmetErrorCode.NON_CERTIFIED_VOLUNTEER.getMsg());
return new Result<ResiActRegistrationResultDTO>().ok(resultDTO);
}
} else {
// 活动不限制志愿者身份,但要求是 居民身份, 当前用户是否满足条件
satisfy = this.resiParticipationAct(formDTO.getUserId());
if (!satisfy){
logger.info(EpmetErrorCode.CANNOT_AUDIT_WARM.getMsg());
resultDTO.setFlag(EpmetErrorCode.CANNOT_AUDIT_WARM.getCode());
resultDTO.setTip(EpmetErrorCode.CANNOT_AUDIT_WARM.getMsg());
return new Result<ResiActRegistrationResultDTO>().ok(resultDTO);
}
}
if (satisfy){
// 开始报名
this.actStartSignUp(actInfoDTO, formDTO, volunteerFlag);
boolean actTimeConflict = this.actStartSignUp(actInfoDTO, formDTO, volunteerFlag);
if (!actTimeConflict){
logger.info(EpmetErrorCode.ACT_TIME_CONFLICT.getMsg());
resultDTO.setFlag(EpmetErrorCode.ACT_TIME_CONFLICT.getCode());
resultDTO.setTip(EpmetErrorCode.ACT_TIME_CONFLICT.getMsg());
return new Result<ResiActRegistrationResultDTO>().ok(resultDTO);
}
}
return new Result();
resultDTO.setFlag(EpmetErrorCode.ACT_REGISTRATION_SUCCESS.getCode());
resultDTO.setTip(EpmetErrorCode.ACT_REGISTRATION_SUCCESS.getMsg());
return new Result<ResiActRegistrationResultDTO>().ok(resultDTO);
}
/**
@ -228,7 +247,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
* @Author zhangyong
* @Date 15:31 2020-07-24
**/
private void actStartSignUp(ActInfoDTO actInfoDTO, ResiActRegistrationFormDTO formDTO, Integer volunteerFlag){
private boolean actStartSignUp(ActInfoDTO actInfoDTO, ResiActRegistrationFormDTO formDTO, Integer volunteerFlag){
boolean signUp = true;
Integer auditingNum = actUserLogService.countActTimesOfParticipation(formDTO.getUserId());
if (auditingNum > NumConstant.ZERO){
@ -237,8 +256,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
Integer actTimeFlag = actInfoService.checkActTime(actInfoDTO);
if (actTimeFlag > NumConstant.ZERO){
signUp = false;
logger.info("报名失败。您本次报名活动时间与已报名活动时间间隔较短,为了不影响您已报名的活动,请选择其他时间的活动,谢谢。");
throw new RenException(EpmetErrorCode.ACT_TIME_CONFLICT.getCode());
return signUp;
}
} else {
// 3.第一次报名
@ -249,7 +267,8 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
this.insertActUserLog(formDTO);
}
// 5.插入 用户活动关系表
this.insertActUserRelation(formDTO, actInfoDTO);
this.insertActUserRelation(formDTO, actInfoDTO);
return signUp;
}
/**
@ -265,10 +284,8 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
if (volunteerFlag > NumConstant.ZERO){
satisfy = true;
return satisfy;
} else {
logger.info("活动报名失败,请先认证志愿者");
throw new RenException(EpmetErrorCode.NON_CERTIFIED_VOLUNTEER.getCode());
}
return satisfy;
}
/**
@ -289,12 +306,7 @@ public class ActUserRelationServiceImpl extends BaseServiceImpl<ActUserRelationD
}
}
}
if (!satisfy){
logger.info("活动报名失败,请完善居民信息");
throw new RenException(EpmetErrorCode.CANNOT_AUDIT_WARM.getCode());
} else {
return satisfy;
}
return satisfy;
}
/**

3
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/GrantPointsServiceImpl.java

@ -21,6 +21,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@ -104,6 +105,7 @@ public class GrantPointsServiceImpl implements GrantPointsService {
* @Date 2020/7/24 13:34
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void agree(GrantPointsFormDTO formDTO) {
//是否是待处理
ActUserRelationDTO actUserRelationDTO=actUserRelationService.get(formDTO.getActUserRelationId());
@ -148,6 +150,7 @@ public class GrantPointsServiceImpl implements GrantPointsService {
* @Date 2020/7/24 15:03
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void deny(GrantPointsFormDTO formDTO) {
//是否是待处理
ActUserRelationDTO actUserRelationDTO=actUserRelationService.get(formDTO.getActUserRelationId());

6
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/HeartUserInfoServiceImpl.java

@ -127,7 +127,7 @@ public class HeartUserInfoServiceImpl extends BaseServiceImpl<HeartUserInfoDao,
@Override
public Result<List<ResiLeaderboardResultDTO>> leaderboard(ResiActBaseFormDTO formDTO) {
List<ResiLeaderboardResultDTO> resultDTOS = new ArrayList<>();
List<ResiLeaderboardResultDTO> resultDtoS = new ArrayList<>();
// 获取排好序的 排行榜
List<HeartUserInfoDTO> leaderboardList = baseDao.selectListLeaderboard(formDTO);
if (leaderboardList.size() > NumConstant.ZERO){
@ -151,14 +151,14 @@ public class HeartUserInfoServiceImpl extends BaseServiceImpl<HeartUserInfoDao,
dto.setNickname(wx.getNickname());
}
}
resultDTOS.add(dto);
resultDtoS.add(dto);
}
} else {
logger.info("查询用户基本信息接口返回失败");
throw new RenException("查询用户基本信息失败");
}
}
return new Result<List<ResiLeaderboardResultDTO>>().ok(resultDTOS);
return new Result<List<ResiLeaderboardResultDTO>>().ok(resultDtoS);
}
@Override

26
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/VolunteerInfoServiceImpl.java

@ -22,7 +22,7 @@ import com.epmet.commons.mybatis.service.impl.BaseServiceImpl;
import com.epmet.commons.tools.constant.MqConstant;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.dto.form.mq.MqBaseMsgDTO;
import com.epmet.commons.tools.dto.form.mq.eventmsg.ActPointEventMsg;
import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg;
import com.epmet.commons.tools.enums.EventEnum;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ConvertUtils;
@ -33,7 +33,6 @@ import com.epmet.dao.VolunteerInfoDao;
import com.epmet.dto.HeartUserInfoDTO;
import com.epmet.dto.form.WxUserInfoFormDTO;
import com.epmet.dto.form.resi.ResiVolunteerAuthenticateFormDTO;
import com.epmet.entity.ActUserRelationEntity;
import com.epmet.entity.VolunteerInfoEntity;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.redis.VolunteerInfoRedis;
@ -91,7 +90,7 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
this.grantActPoints(formDTO);
}
// 更新用户基础信息表 并 更新用户微信表
WxUserInfoFormDTO wxUserInfoFormDTO = ConvertUtils.sourceToTarget(formDTO, WxUserInfoFormDTO.class);
WxUserInfoFormDTO wxUserInfoFormDTO = this.packageWxUserInfo(formDTO);
return epmetUserOpenFeignClient.updateUserBaseAndWxUserInfo(wxUserInfoFormDTO);
}
@ -103,8 +102,8 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
mqBaseMsgDTO.setEventClass(EventEnum.REGISTER_VOLUNTEER.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.REGISTER_VOLUNTEER.getEventTag());
List<ActPointEventMsg> actPointEventMsgList=new ArrayList<>();
ActPointEventMsg actPointEventMsg=new ActPointEventMsg();
List<BasePointEventMsg> actPointEventMsgList=new ArrayList<>();
BasePointEventMsg actPointEventMsg=new BasePointEventMsg();
actPointEventMsg.setCustomerId(formDTO.getCustomerId());
actPointEventMsg.setUserId(formDTO.getUserId());
actPointEventMsg.setActionFlag(MqConstant.PLUS);
@ -118,4 +117,21 @@ public class VolunteerInfoServiceImpl extends BaseServiceImpl<VolunteerInfoDao,
logger.error("志愿者认证事件发送失败");
}
}
/**
* 根据志愿者认证参数组装微信基本信息
*
* @param formDTO
* @return com.epmet.dto.form.WxUserInfoFormDTO
* @Author zhangyong
* @Date 13:54 2020-07-28
**/
private WxUserInfoFormDTO packageWxUserInfo(ResiVolunteerAuthenticateFormDTO formDTO){
WxUserInfoFormDTO wxUserInfoFormDTO = new WxUserInfoFormDTO();
wxUserInfoFormDTO.setUserId(formDTO.getUserId());
wxUserInfoFormDTO.setNickName(formDTO.getNickname());
wxUserInfoFormDTO.setAvatarUrl(formDTO.getAvatarUrl());
wxUserInfoFormDTO.setGender(formDTO.getGender());
return wxUserInfoFormDTO;
}
}

4
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActDraftServiceImpl.java

@ -16,6 +16,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
@ -75,7 +76,7 @@ public class WorkActDraftServiceImpl implements WorkActDraftService {
LatestDraftActInfoResultDTO latestAct=latestActInfoService.getLatestActDraft(userId);
if(null!=latestAct){
List<ActDraftContentDTOResultDTO> actContentList=latestActContentService.selectActContentList(latestAct.getActDraftId());
latestAct.setActContentList(actContentList);
latestAct.setActContent(actContentList);
}
return latestAct;
}else{
@ -92,6 +93,7 @@ public class WorkActDraftServiceImpl implements WorkActDraftService {
* @Date 2020/7/21 14:00
**/
@Override
@Transactional(rollbackFor = Exception.class)
public SaveActDraftResultDTO saveAct(DraftActInfoFormDTO formDTO) {
//保存活动属性
LatestActInfoDTO latestActInfoDTO=this.constructLatestActInfoDTO(formDTO);

69
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActServiceImpl.java

@ -3,11 +3,10 @@ package com.epmet.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.epmet.commons.tools.constant.AppClientConstant;
import com.epmet.commons.tools.constant.FieldConstant;
import com.epmet.commons.tools.constant.MqConstant;
import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.form.mq.MqBaseMsgDTO;
import com.epmet.commons.tools.dto.form.mq.eventmsg.ActPointEventMsg;
import com.epmet.commons.tools.dto.form.mq.eventmsg.BasePointEventMsg;
import com.epmet.commons.tools.enums.EventEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
@ -122,8 +121,9 @@ public class WorkActServiceImpl implements WorkActService {
sponsorResultDTO.setAgencyGridList(ConvertUtils.sourceToTarget(result.getData().getAgencyGridList(), Grid.class));
return sponsorResultDTO;
}
}else{
logger.error("当前用户id获取为空");
}
logger.error("当前用户id获取为空");
return null;
}
@ -534,28 +534,41 @@ public class WorkActServiceImpl implements WorkActService {
// 活动状态:报名中:signing_up;截止报名: end_sign_up; 已开始: in_progress; 已报满: enough
if (nowDate.compareTo(inProgressActResultDTO.getSignUpEndTime()) == -1
|| nowDate.compareTo(inProgressActResultDTO.getSignUpEndTime()) == 0) {
logger.info(String.format("当前时间%s报名截止时间%s处于报名中",
DateUtils.format(nowDate,DateUtils.DATE_TIME_PATTERN),
DateUtils.format(inProgressActResultDTO.getSignUpEndTime(),DateUtils.DATE_TIME_PATTERN)));
//截止报名时间之前(包含报名时间截止时间点)
if (!inProgressActResultDTO.getActQuotaCategory()) {
//如果是不限制名额,则显示报名中
inProgressActResultDTO.setStatus("signing_up");
logger.info("活动不限制名额,界面显示 报名中");
continue;
} else {
//固定名额,且已报名人数<活动需要人数显示报名中
if (inProgressActResultDTO.getActQuota() > inProgressActResultDTO.getSignedUp()) {
logger.info("活动限制名额,未报满,界面显示报名中");
inProgressActResultDTO.setStatus("signing_up");
continue;
} else if (inProgressActResultDTO.getActQuota().equals(inProgressActResultDTO.getSignedUp())) {
inProgressActResultDTO.setStatus("enough");
logger.info("活动限制名额,且已报满,界面显示已报满");
continue;
}
}
} else if (nowDate.compareTo(inProgressActResultDTO.getSignUpEndTime()) == 1
|| nowDate.compareTo(inProgressActResultDTO.getActStartTime()) == -1) {
&&nowDate.compareTo(inProgressActResultDTO.getActStartTime()) == -1) {
logger.info(String.format("当前时间%s报名截止时间%s活动预计开始时间%s界面显示截止报名",
DateUtils.format(nowDate,DateUtils.DATE_TIME_PATTERN),
DateUtils.format(inProgressActResultDTO.getSignUpEndTime(),DateUtils.DATE_TIME_PATTERN),
DateUtils.format(inProgressActResultDTO.getActStartTime(),DateUtils.DATE_TIME_PATTERN)));
//活动报名截止-活动预计开始之间显示截止报名
inProgressActResultDTO.setStatus("end_sign_up");
continue;
} else if (nowDate.compareTo(inProgressActResultDTO.getActStartTime()) == 1
|| nowDate.compareTo(inProgressActResultDTO.getActStartTime()) == 0) {
logger.info(String.format("当前时间%s活动预计开始时间%s界面显示已开始",
DateUtils.format(nowDate,DateUtils.DATE_TIME_PATTERN),
DateUtils.format(inProgressActResultDTO.getActStartTime(),DateUtils.DATE_TIME_PATTERN)));
//活动预计开始时间点之后,包含活动预计开始时间点,显示 已开始
inProgressActResultDTO.setStatus("in_progress");
continue;
@ -596,6 +609,7 @@ public class WorkActServiceImpl implements WorkActService {
* @Date 2020/7/26 17:26
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void cancelAct(CancelActFormDTO formDTO) {
ActInfoDTO actInfoDTO=actInfoService.get(formDTO.getActId());
if(null==actInfoDTO){
@ -671,14 +685,15 @@ public class WorkActServiceImpl implements WorkActService {
* @Date 2020/7/26 19:49
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void saveActualTime(SaveActualTimeFormDTO formDTO) {
if(formDTO.getActualStartTime().compareTo(formDTO.getActualEndTime())!=-1){
Date actualStartTime= DateUtils.minStrToSecondDate(formDTO.getActualStartTime());
Date actualEndTime= DateUtils.minStrToSecondDate(formDTO.getActualEndTime());
if(actualStartTime.compareTo(actualEndTime)!=-1){
throw new RenException(EpmetErrorCode.ACT_ACTUAL_START_TIME_ERROR.getCode());
}
ActInfoDTO actInfoDTO=actInfoService.get(formDTO.getActId());
Date actualStartTime= DateUtils.minStrToSecondDate(formDTO.getActualStartTime());
actInfoDTO.setActualStartTime(actualStartTime);
Date actualEndTime= DateUtils.minStrToSecondDate(formDTO.getActualEndTime());
actInfoDTO.setActualEndTime(actualEndTime);
actInfoDTO.setServiceMin(DateUtils.calculateMin(actualStartTime,actualEndTime));
actInfoService.update(actInfoDTO);
@ -736,6 +751,7 @@ public class WorkActServiceImpl implements WorkActService {
* @Date 2020/7/26 21:48
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void finishAct(String actId) {
ActInfoDTO actInfoDTO=actInfoService.get(actId);
if(null==actInfoDTO){
@ -762,7 +778,7 @@ public class WorkActServiceImpl implements WorkActService {
private void grantActPoints(ActInfoDTO actInfoDTO) {
//查询已经给分的用户
QueryWrapper<ActUserRelationEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(actInfoDTO.getId()), FieldConstant.ID, actInfoDTO.getId())
wrapper.eq(StringUtils.isNotBlank(actInfoDTO.getId()), "ACT_ID", actInfoDTO.getId())
.eq("PROCESS_FLAG",ActConstant.HANDLED)
.eq("REWARD_FLAG",ActConstant.ACT_USER_STATUS_AGREE);
List<ActUserRelationEntity> actUserRelationEntityList=actUserRelationDao.selectList(wrapper);
@ -783,19 +799,21 @@ public class WorkActServiceImpl implements WorkActService {
mqBaseMsgDTO.setEventClass(EventEnum.ACTIVE_SEND_POINT.getEventClass());
//事件code
mqBaseMsgDTO.setEventTag(EventEnum.ACTIVE_SEND_POINT.getEventTag());
List<ActPointEventMsg> actPointEventMsgList=new ArrayList<>();
List<BasePointEventMsg> basePointEventMsgArrayList=new ArrayList<>();
for(ActUserRelationEntity actUserRelationEntity:actUserRelationEntityList){
ActPointEventMsg actPointEventMsg=new ActPointEventMsg();
actPointEventMsg.setOpAgencyId(opAgencyId);
actPointEventMsg.setCustomerId(actInfoDTO.getCustomerId());
actPointEventMsg.setUserId(actUserRelationEntity.getUserId());
actPointEventMsg.setActionFlag(MqConstant.PLUS);
actPointEventMsg.setPoint(actInfoDTO.getReward());
actPointEventMsg.setIsCommon(true);
actPointEventMsg.setRemark(remark);
actPointEventMsgList.add(actPointEventMsg);
}
mqBaseMsgDTO.setMsg(JSON.toJSONString(actPointEventMsgList));
BasePointEventMsg basePointEventMsg=new BasePointEventMsg();
basePointEventMsg.setOpAgencyId(opAgencyId);
basePointEventMsg.setCustomerId(actInfoDTO.getCustomerId());
basePointEventMsg.setUserId(actUserRelationEntity.getUserId());
basePointEventMsg.setActionFlag(MqConstant.PLUS);
basePointEventMsg.setPoint(actInfoDTO.getReward());
basePointEventMsg.setIsCommon(true);
basePointEventMsg.setRemark(remark);
basePointEventMsg.setSourceId(actInfoDTO.getId());
basePointEventMsg.setOperatorId(loginUserUtil.getLoginUserId());
basePointEventMsgArrayList.add(basePointEventMsg);
}
mqBaseMsgDTO.setMsg(JSON.toJSONString(basePointEventMsgArrayList));
Result result=SendMqMsgUtils.sendMsg(mqBaseMsgDTO);
if(!result.success()){
logger.error("活动积分发放失败");
@ -862,10 +880,13 @@ public class WorkActServiceImpl implements WorkActService {
if(!actInfoDTO.getCreatedBy().equals(loginUserUtil.getLoginUserId())){
throw new RenException(EpmetErrorCode.REQUIRE_PERMISSION.getCode());
}
//如果活动设置的分支大于0,需要判断是否已经处理完毕
//待处理事项为空时才可以结束活动
List<ActUserRelationDTO> list=actUserRelationDao.selectInProgress(actInfoDTO.getId());
if(null!=list&&list.size()>0){
throw new RenException(EpmetErrorCode.HAVE_HANDLE.getCode());
if(actInfoDTO.getReward()>0){
List<ActUserRelationDTO> list=actUserRelationDao.selectInProgress(actInfoDTO.getId());
if(null!=list&&list.size()>0){
throw new RenException(EpmetErrorCode.HAVE_HANDLE.getCode());
}
}
//先填写实际开始时间、实际结束时间
if(null==actInfoDTO.getActualStartTime()||null==actInfoDTO.getActualEndTime()){
@ -882,6 +903,7 @@ public class WorkActServiceImpl implements WorkActService {
* @Date 2020/7/27 10:45
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void summaryAct(SummaryActFormDTO formDTO) {
ActInfoDTO actInfoDTO=actInfoService.get(formDTO.getActId());
if(null==actInfoDTO){
@ -958,6 +980,7 @@ public class WorkActServiceImpl implements WorkActService {
* @Date 2020/7/27 13:55
**/
@Override
@Transactional(rollbackFor = Exception.class)
public PublishActResultDTO rePublish(RePublishFormDTO rePublishFormDTO) {
ActInfoDTO originalActInfo=actInfoService.get(rePublishFormDTO.getActId());
if(null==originalActInfo){

37
epmet-module/epmet-heart/epmet-heart-server/src/main/java/com/epmet/service/impl/WorkActUserServiceImpl.java

@ -13,11 +13,15 @@ import com.epmet.constant.ReadFlagConstant;
import com.epmet.dao.ActInfoDao;
import com.epmet.dao.ActUserLogDao;
import com.epmet.dao.ActUserRelationDao;
import com.epmet.dto.ActInfoDTO;
import com.epmet.dto.ActUserLogDTO;
import com.epmet.dto.ActUserRelationDTO;
import com.epmet.dto.HeartUserInfoDTO;
import com.epmet.dto.form.UserMessageFormDTO;
import com.epmet.dto.form.work.*;
import com.epmet.dto.form.work.AactUserDetailFormDTO;
import com.epmet.dto.form.work.ActIdFormDTO;
import com.epmet.dto.form.work.AuditUserFormDTO;
import com.epmet.dto.form.work.UserHistoricalActFormDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.dto.result.work.*;
import com.epmet.entity.ActInfoEntity;
@ -25,6 +29,7 @@ import com.epmet.entity.ActUserLogEntity;
import com.epmet.entity.ActUserRelationEntity;
import com.epmet.feign.EpmetMessageOpenFeignClient;
import com.epmet.feign.EpmetUserOpenFeignClient;
import com.epmet.service.ActInfoService;
import com.epmet.service.ActUserRelationService;
import com.epmet.service.HeartUserInfoService;
import com.epmet.service.WorkActUserService;
@ -32,6 +37,7 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
@ -62,6 +68,8 @@ public class WorkActUserServiceImpl implements WorkActUserService {
private EpmetMessageOpenFeignClient epmetMessageOpenFeignClient;
@Autowired
private LoginUserUtil loginUserUtil;
@Autowired
private ActInfoService actInfoService;
/**
* @param formDTO
* @return java.util.List<com.epmet.dto.result.work.AuditingActUserResultDTO>
@ -358,6 +366,7 @@ public class WorkActUserServiceImpl implements WorkActUserService {
* @Date 2020/7/23 17:30
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void auditPass(String actUserRelationId) {
ActUserRelationEntity actUserRelationEntity=actUserRelationDao.selectById(actUserRelationId);
if(null==actUserRelationEntity||!ActConstant.ACT_USER_STATUS_AUDITING.equals(actUserRelationEntity.getStatus())){
@ -404,6 +413,7 @@ public class WorkActUserServiceImpl implements WorkActUserService {
* @Date 2020/7/23 18:14
**/
@Override
@Transactional(rollbackFor = Exception.class)
public void auditRefuse(AuditUserFormDTO formDTO) {
ActUserRelationEntity actUserRelationEntity=actUserRelationDao.selectById(formDTO.getActUserRelationId());
if(null==actUserRelationEntity||!ActConstant.ACT_USER_STATUS_AUDITING.equals(actUserRelationEntity.getStatus())){
@ -451,6 +461,11 @@ public class WorkActUserServiceImpl implements WorkActUserService {
**/
@Override
public List<JoinedUserResultDTO> queryJoinUserList(ActIdFormDTO formDTO) {
ActInfoDTO actInfoDTO=actInfoService.get(formDTO.getActId());
if(null==actInfoDTO){
logger.error("act_info is null");
return new ArrayList<>();
}
List<JoinedUserResultDTO> list=actInfoDao.queryJoinUserList(formDTO.getActId());
if(null!=list&&list.size()>0){
//查询已通过审核的人员id集合
@ -458,11 +473,21 @@ public class WorkActUserServiceImpl implements WorkActUserService {
//根据已通过的人员集合,查询出用户基本信息
List<UserBaseInfoResultDTO> userInfoList=this.queryUserBaseInfoList(userIdList);
for(JoinedUserResultDTO joinedUserResultDTO:list){
//积分描述赋值
if(ActConstant.ACT_USER_STATUS_AGREE.equals(joinedUserResultDTO.getRewardFlag())){
joinedUserResultDTO.setPointsDes(String.format("积分+%s",joinedUserResultDTO.getReward()));
}else if(ActConstant.ACT_USER_STATUS_DENY.equals(joinedUserResultDTO.getRewardFlag())){
joinedUserResultDTO.setPointsDes("积分+0");
if(actInfoDTO.getActStatus().equals(ActConstant.ACT_STATUS_FINISHED)){
//积分描述赋值
if(ActConstant.ACT_USER_STATUS_AGREE.equals(joinedUserResultDTO.getRewardFlag())){
joinedUserResultDTO.setPointsDes(String.format("积分+%s",joinedUserResultDTO.getReward()));
}else if(ActConstant.ACT_USER_STATUS_DENY.equals(joinedUserResultDTO.getRewardFlag())){
joinedUserResultDTO.setPointsDes("积分+0");
}
}else{
logger.info("当前活动未结束,活动状态:"+actInfoDTO.getActStatus());
joinedUserResultDTO.setPointsDes(StrConstant.EPMETY_STR);
}
if(ActConstant.ACT_USER_STATUS_SIGNED_IN.equals(joinedUserResultDTO.getSignInFlagStr())){
joinedUserResultDTO.setSignInFlag(true);
}else{
joinedUserResultDTO.setSignInFlag(false);
}
//志愿者标识赋值
joinedUserResultDTO.setVolunteerFlag(this.getVolunteerFlag(joinedUserResultDTO.getUserId()));

423
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/db/migration/epmet_heart.sql

@ -0,0 +1,423 @@
/*
Navicat Premium Data Transfer
Source Server : 192.168.1.130
Source Server Type : MySQL
Source Server Version : 50728
Source Host : 118.190.150.119:47306
Source Schema : epmet_heart
Target Server Type : MySQL
Target Server Version : 50728
File Encoding : 65001
Date: 28/07/2020 15:17:47
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for act_content
-- ----------------------------
DROP TABLE IF EXISTS `act_content`;
CREATE TABLE `act_content` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动id:act_info.id',
`CONTENT` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '内容',
`CONTENT_TYPE` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '内容类型 图片:img;文字:text',
`ORDER_NUM` int(11) NOT NULL COMMENT '内容顺序 从1开始',
`DEL_FLAG` int(11) NOT NULL DEFAULT 0 COMMENT '删除标识 0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动内容' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for act_customized
-- ----------------------------
DROP TABLE IF EXISTS `act_customized`;
CREATE TABLE `act_customized` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键(客户如果没配置,默认的值写在代码里)',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户id',
`TITLE_NAME` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '标题:eg: 志愿者去哪儿',
`HOTLINE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '咨询热线',
`ACT_LIST_NAME` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动列表',
`HEART_RANK_NAME` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '爱心榜',
`ACT_REVIEW_NAME` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动回顾',
`MY_ACT_NAME` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '我的活动',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '爱心互助首页自定义配置' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for act_info
-- ----------------------------
DROP TABLE IF EXISTS `act_info`;
CREATE TABLE `act_info` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户id',
`TITLE` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动标题',
`COVER_PIC` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动封面',
`SIGN_UP_START_TIME` datetime(0) NOT NULL COMMENT '报名开始时间',
`SIGN_UP_END_TIME` datetime(0) NOT NULL COMMENT '报名截止时间',
`REQUIREMENT` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '招募要求',
`ACT_START_TIME` datetime(0) NOT NULL COMMENT '活动开始时间',
`ACT_END_TIME` datetime(0) NOT NULL COMMENT '活动结束时间',
`ACT_ADDRESS` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动地点',
`ACT_LONGITUDE` decimal(32, 10) NOT NULL COMMENT '活动位置经度',
`ACT_LATITUDE` decimal(32, 10) NOT NULL COMMENT '活动位置纬度',
`SIGN_IN_START_TIME` datetime(0) NOT NULL COMMENT '打卡开始时间',
`SIGN_IN_END_TIME` datetime(0) NOT NULL COMMENT '打卡截止时间',
`SIGN_IN_ADDRESS` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动签到打卡地点',
`SIGN_IN_LONGITUDE` decimal(32, 10) NOT NULL COMMENT '活动签到打卡位置经度',
`SIGN_IN_LATITUDE` decimal(32, 10) NOT NULL COMMENT '活动签到打卡位置纬度',
`SIGN_IN_RADIUS` int(11) NOT NULL COMMENT '活动签到打卡半径(单位:米)',
`ACT_QUOTA_CATEGORY` tinyint(1) NOT NULL DEFAULT 0 COMMENT '活动名额类型(0-不限名额,1-固定名额)',
`ACT_QUOTA` int(11) NULL DEFAULT 0 COMMENT '活动名额',
`ACT_STATUS` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '1' COMMENT '活动状态(\r\n已发布/报名中:published;\r\n已取消:canceled;\r\n已结束:finished)',
`CANCEL_REASON` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '活动取消的原因',
`CANCEL_TIME` datetime(0) NULL DEFAULT NULL COMMENT '取消活动的时间',
`SPONSOR_CONTACTS` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '联系人',
`SPONSOR_TEL` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '联系电话',
`SPONSOR_TYPE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '发布名义:网格主办:grid;组织主办:agency',
`SPONSOR_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主办方id(机关或网格的id)',
`SPONSOR_NAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动主办方名称(机关或网格的名称)',
`PID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '发布单位的上一级组织id,如果是以网格发布,此列存储的是网格所属机关的上一级机关',
`REWARD` int(11) NOT NULL DEFAULT 0 COMMENT '活动奖励积分',
`VOLUNTEER_LIMIT` tinyint(1) NOT NULL COMMENT '身份限制:1只有志愿者才可以参加活动0不限制志愿者身份',
`AUDIT_SWITCH` tinyint(1) NOT NULL COMMENT '审核开关:1报名人员需要人工审核0不需要',
`ACTUAL_START_TIME` datetime(0) NULL DEFAULT NULL COMMENT '活动实际开始时间',
`ACTUAL_END_TIME` datetime(0) NULL DEFAULT NULL COMMENT '活动实际结束时间',
`SERVICE_MIN` int(11) NULL DEFAULT NULL COMMENT '活动共计时长(服务时间)单位:分钟',
`SUMMARY_FLAG` tinyint(1) NOT NULL DEFAULT 0 COMMENT '1已经总结0未总结',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间(活动发布时间)',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '删除标识',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动信息' ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for act_live_pic
-- ----------------------------
DROP TABLE IF EXISTS `act_live_pic`;
CREATE TABLE `act_live_pic` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`LIVE_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '实况ID:act_live.id',
`PIC_URL` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '图片地址',
`SORT` int(11) NOT NULL COMMENT '排序从1开始',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标志',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动实况图片表' ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for act_live_rec
-- ----------------------------
DROP TABLE IF EXISTS `act_live_rec`;
CREATE TABLE `act_live_rec` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动id: act_info.id',
`USER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户id',
`LONGITUDE` decimal(32, 10) NULL DEFAULT NULL COMMENT '实况打卡位置经度',
`LATITUDE` decimal(32, 10) NULL DEFAULT NULL COMMENT '实况打卡位置纬度',
`ADDRESS` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实况打卡地址',
`DESC` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实况打卡描述',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE,
INDEX `epmet_act_user_clock_log_ACT_USER_ID_IDX`(`ACT_ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动实况记录' ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for act_operation_rec
-- ----------------------------
DROP TABLE IF EXISTS `act_operation_rec`;
CREATE TABLE `act_operation_rec` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动id',
`TYPE` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '发布:publish;\r\n取消活动:cancel;\r\n结束活动:finish\r\n重新编辑:update',
`NOTICE_USER` tinyint(1) NOT NULL DEFAULT 0 COMMENT '1通知用户0不通知,取消活动时默认true',
`REMARK` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注,取消活动时此列有值',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动操作日志表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for act_point_log
-- ----------------------------
DROP TABLE IF EXISTS `act_point_log`;
CREATE TABLE `act_point_log` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键(给分或者不给分,以及重新处理插入本表)',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动id',
`USER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户id',
`POINTS` int(11) NOT NULL COMMENT '积分值',
`OPERATE_TYPE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作类型:\r\n同意给分agree; 不给分:deny;重新处理: reset',
`REMARK` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注:拒绝给分和重新处理时录入的理由',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标识 0-否,1-是',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人(工作人员id)',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动发放积分日志表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for act_sign_in_pic
-- ----------------------------
DROP TABLE IF EXISTS `act_sign_in_pic`;
CREATE TABLE `act_sign_in_pic` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`SIGN_IN_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '签到记录ID:act_sign_in_record.id',
`PIC_URL` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '图片地址',
`SORT` int(11) NOT NULL COMMENT '排序从1开始',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标志',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动签到图片表' ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for act_sign_in_rec
-- ----------------------------
DROP TABLE IF EXISTS `act_sign_in_rec`;
CREATE TABLE `act_sign_in_rec` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动id:act_info.id',
`USER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户id',
`LONGITUDE` decimal(32, 10) NOT NULL COMMENT '签到位置经度',
`LATITUDE` decimal(32, 10) NOT NULL COMMENT '签到位置纬度',
`ADDRESS` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '签到地址',
`DESC` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '签到描述',
`SYNC_LIVE` tinyint(1) NOT NULL DEFAULT 0 COMMENT '0不同步实况1同步到实况记录',
`LIVE_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实况id,党sync_live=1时此列有值',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动签到记录' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for act_statistical
-- ----------------------------
DROP TABLE IF EXISTS `act_statistical`;
CREATE TABLE `act_statistical` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键(活动结束后插入本表)',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动id',
`SIGNUP_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '已报名总人数(已报名/待审核auditing,审核通过passed,审核不通过refused取消报名canceld总人数)',
`AUDITING_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '待审核',
`PASSED_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '审核通过',
`REFUSED_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '审核不通过总人数',
`CANCELD_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '取消报名的人数',
`SIGNED_IN_USER_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '活动已签到人数',
`REWARD_USER_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '发放积分总人数',
`DENY_REWARD_USER_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '拒绝发放积分总人数',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '删除标识',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动统计信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for act_summary
-- ----------------------------
DROP TABLE IF EXISTS `act_summary`;
CREATE TABLE `act_summary` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键ID',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动ID:act_info.id',
`CONTENT` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '内容',
`CONTENT_TYPE` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '内容类型 图片:img;文字:text',
`ORDER_NUM` int(11) NOT NULL COMMENT '内容顺序 从1开始',
`DEL_FLAG` int(11) NOT NULL DEFAULT 0 COMMENT '删除标识 0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '活动回顾表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for act_user_log
-- ----------------------------
DROP TABLE IF EXISTS `act_user_log`;
CREATE TABLE `act_user_log` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动ID',
`USER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID',
`OPERATION_TYPE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '操作类型(已报名/待审核auditing,\r\n审核通过passed,\r\n审核不通过refused\r\n取消报名canceled,\r\n)',
`REASON` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作备注:(1)审核不通过的原因\r\n(2)取消报名的原因|\r\n(3)拒绝发放积分的理由\r\n(4)重新处理的理由',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标识 0.未删除 1.已删除',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间(操作的时间)',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户活动关系日志表' ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for act_user_relation
-- ----------------------------
DROP TABLE IF EXISTS `act_user_relation`;
CREATE TABLE `act_user_relation` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键(用户-活动一对一,报名取消再报名也只有一条记录)',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动ID',
`USER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户ID',
`STATUS` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '当前状态(已报名/待审核auditing,\r\n审核通过passed,\r\n审核不通过refused\r\n取消报名canceled,\r\n)',
`PASSED_TYPE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '审核通过类型:auto, manual',
`AUDIT_TIME` datetime(0) NULL DEFAULT NULL COMMENT '审核时间(同意、拒绝的时间)',
`FAILURE_REASON` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '未通过原因',
`CANCEL_TIME` datetime(0) NULL DEFAULT NULL COMMENT '取消报名的时间',
`CANCEL_REASON` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户取消报名的原因',
`PROCESS_FLAG` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '已处理: handled; 默认\"\",重新处理时reward_flag置为空字符串',
`SIGN_IN_FLAG` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '已签到:signed_in; 默认\"\"',
`REWARD_FLAG` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '已给分:agree, 不给分:deny 默认\"\"',
`DENY_REWARD_REASON` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '拒绝发放积分备注',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间(报名时间)',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE,
INDEX `epmet_act_user_relation_ACT_ID_IDX`(`ACT_ID`, `USER_ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户活动关系表' ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for heart_user_info
-- ----------------------------
DROP TABLE IF EXISTS `heart_user_info`;
CREATE TABLE `heart_user_info` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键(用户提交报名成功后,插入本表)',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户id',
`USER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户id',
`VOLUNTEER_FLAG` tinyint(1) NOT NULL COMMENT '1是志愿者,0不是志愿者(志愿者注册成功后需要来更新值)',
`KINDNESS_TIME` int(11) NOT NULL DEFAULT 0 COMMENT '爱心时长(单位:分钟)(参与并签到了的活动,实际结束-实际开始)签到的。未签到但是有积分的\r\n',
`PARTICIPATION_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '实际参与活动个数(签到+1)',
`OBTAIN_POINT_NUM` int(11) NOT NULL DEFAULT 0 COMMENT '参与活动并获得积分的次数(结束活动时,如果给用户发放积分则该数值+1)',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for latest_act_content
-- ----------------------------
DROP TABLE IF EXISTS `latest_act_content`;
CREATE TABLE `latest_act_content` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`ACT_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '活动id:latest_act_info.id',
`CONTENT` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '内容',
`CONTENT_TYPE` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '内容类型 图片:img;文字:text',
`ORDER_NUM` int(11) NOT NULL COMMENT '内容顺序 从1开始',
`DEL_FLAG` int(11) NOT NULL DEFAULT 0 COMMENT '删除标识 0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '最近一次编辑的活动内容' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for latest_act_info
-- ----------------------------
DROP TABLE IF EXISTS `latest_act_info`;
CREATE TABLE `latest_act_info` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户id',
`TITLE` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '活动标题',
`COVER_PIC` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '活动封面',
`SIGN_UP_START_TIME` datetime(0) NULL DEFAULT NULL COMMENT '报名开始时间',
`SIGN_UP_END_TIME` datetime(0) NULL DEFAULT NULL COMMENT '报名截止时间',
`REQUIREMENT` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '招募要求',
`ACT_START_TIME` datetime(0) NULL DEFAULT NULL COMMENT '活动开始时间',
`ACT_END_TIME` datetime(0) NULL DEFAULT NULL COMMENT '活动结束时间',
`ACT_ADDRESS` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '活动地点',
`ACT_LONGITUDE` decimal(32, 10) NULL DEFAULT NULL COMMENT '活动位置经度',
`ACT_LATITUDE` decimal(32, 10) NULL DEFAULT NULL COMMENT '活动位置纬度',
`SIGN_IN_START_TIME` datetime(0) NULL DEFAULT NULL COMMENT '打卡开始时间',
`SIGN_IN_END_TIME` datetime(0) NULL DEFAULT NULL COMMENT '打卡截止时间',
`SIGN_IN_ADDRESS` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '活动签到打卡地点',
`SIGN_IN_LONGITUDE` decimal(32, 10) NULL DEFAULT NULL COMMENT '活动签到打卡位置经度',
`SIGN_IN_LATITUDE` decimal(32, 10) NULL DEFAULT NULL COMMENT '活动签到打卡位置纬度',
`SIGN_IN_RADIUS` int(11) NULL DEFAULT NULL COMMENT '活动签到打卡半径(单位:米)',
`ACT_QUOTA_CATEGORY` tinyint(1) NULL DEFAULT NULL COMMENT '活动名额类型(0-不限名额,1-固定名额)',
`ACT_QUOTA` int(11) NULL DEFAULT 0 COMMENT '活动名额',
`SPONSOR_CONTACTS` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '联系人',
`SPONSOR_TEL` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '联系电话',
`SPONSOR_TYPE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主办方类型:网格主办:grid;组织主办:agency',
`SPONSOR_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '主办方id(机关或网格的id)',
`SPONSOR_NAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '活动主办方名称(机关或网格的名称)',
`PID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '如果以网格名义发布,存储空字符串\"\"',
`REWARD` int(11) NULL DEFAULT 0 COMMENT '活动奖励积分',
`VOLUNTEER_LIMIT` tinyint(1) NULL DEFAULT NULL COMMENT '身份限制:1只有志愿者才可以参加活动0不限制志愿者身份',
`AUDIT_SWITCH` tinyint(1) NULL DEFAULT NULL COMMENT '审核开关:1报名人员需要人工审核0不需要',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '删除标识',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '最近一次编辑的活动信息' ROW_FORMAT = Compact;
-- ----------------------------
-- Table structure for volunteer_info
-- ----------------------------
DROP TABLE IF EXISTS `volunteer_info`;
CREATE TABLE `volunteer_info` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键(志愿者注册后插入本表)',
`USER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户id',
`CUSTOMER_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户id',
`VOLUNTEER_INTRODUCE` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '志愿者自我介绍',
`VOLUNTEER_SIGNATURE` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '志愿者签名',
`DEL_FLAG` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '删除标记',
`REVISION` int(11) NOT NULL DEFAULT 0 COMMENT '乐观锁',
`CREATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间(认证志愿者时间)',
`UPDATED_BY` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '志愿者信息' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

37
epmet-module/epmet-heart/epmet-heart-server/src/main/resources/mapper/ActInfoDao.xml

@ -59,7 +59,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
'signing_up' AS actCurrentState, -- 活动状态:报名中,未报满
@ -85,7 +85,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
'enough' AS actCurrentState, -- 活动状态:报名中,已报满
@ -112,7 +112,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
'end_sign_up' AS actCurrentState, -- 活动状态:未开始
@ -138,7 +138,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
'in_progress' AS actCurrentState, -- 活动状态:进行中
@ -164,7 +164,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
'finished' AS actCurrentState, -- 活动状态:已结束
@ -190,7 +190,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
'auditing' AS actCurrentState -- 活动状态
@ -213,7 +213,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
'passed' AS actCurrentState -- 活动状态
@ -236,7 +236,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
'refused' AS actCurrentState -- 活动状态
@ -259,7 +259,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
'canceld' AS actCurrentState -- 活动状态
@ -282,7 +282,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory,
i.ACT_QUOTA_CATEGORY actQuotaCategory,
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
case
@ -391,12 +391,12 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
IFNULL(c.signupNum, 0) signupNum, -- 已报名人数
i.REWARD reward,
i.REQUIREMENT requirement,
IF(i.VOLUNTEER_LIMIT = 1, true , false ) as volunteerLimit, -- 是否是志愿者(true:只有志愿者才可以参加活动1,false: 只要是居民就可以参加活动0)
i.VOLUNTEER_LIMIT volunteerLimit, -- 是否是志愿者(true:只有志愿者才可以参加活动1,false: 只要是居民就可以参加活动0)
i.SPONSOR_NAME sponsor,
DATE_FORMAT(i.ACTUAL_START_TIME,'%Y-%m-%d %H:%i') actualStartTime,
DATE_FORMAT(i.ACTUAL_END_TIME,'%Y-%m-%d %H:%i') actualEndTime,
@ -420,7 +420,7 @@
DATE_FORMAT(i.ACT_START_TIME,'%Y-%m-%d %H:%i') actStartTime,
DATE_FORMAT(i.ACT_END_TIME,'%Y-%m-%d %H:%i') actEndTime,
i.ACT_ADDRESS actAddress,
IF(i.ACT_QUOTA_CATEGORY = 1, true , false ) as actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA_CATEGORY actQuotaCategory, -- 活动名额类型(true:固定名额(1) false: 不限制名额(0))
i.ACT_QUOTA actQuota,
i.SPONSOR_CONTACTS contacts,
i.SPONSOR_TEL tel,
@ -483,7 +483,8 @@
AND ( aur.`STATUS` = 'auditing' OR aur.`STATUS` = 'passed' )
) AS signedUp,
ai.SIGN_UP_END_TIME as signUpEndTime,
ai.SIGN_UP_START_TIME as signUpStartTime
ai.SIGN_UP_START_TIME as signUpStartTime,
ai.ACT_ADDRESS as actAddress
FROM
act_info ai
WHERE
@ -502,7 +503,8 @@
ai.ACT_START_TIME AS actStartTime,
ai.ACT_END_TIME AS actEndTime,
ai.CANCEL_TIME AS cancelTime,
ai.CANCEL_REASON AS cancelReason
ai.CANCEL_REASON AS cancelReason,
ai.ACT_ADDRESS as actAddress
FROM
act_info ai
WHERE
@ -522,7 +524,8 @@
ai.ACT_START_TIME AS actStartTime,
ai.ACT_END_TIME AS actEndTime,
ai.ACTUAL_START_TIME as actualStartTime,
ai.ACTUAL_END_TIME as actualEndTime
ai.ACTUAL_END_TIME as actualEndTime,
ai.ACT_ADDRESS as actAddress
FROM
act_info ai
WHERE
@ -539,7 +542,7 @@
aur.id as actUserRelationId,
aur.ACT_ID ,
aur.USER_ID ,
aur.SIGN_IN_FLAG,
aur.SIGN_IN_FLAG as signInFlagStr,
aur.CREATED_TIME as signUpTime,
ai.REWARD,
aur.REWARD_FLAG,

2
epmet-module/epmet-oss/epmet-oss-server/deploy/docker-compose-test.yml

@ -3,7 +3,7 @@ services:
epmet-oss-server:
container_name: epmet-oss-server-test
# image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-test/epmet-oss-server:0.3.2
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-oss-server:0.3.23
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-oss-server:0.3.24
ports:
- "8083:8083"
network_mode: host # 使用现有网络

5
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/UserPointActionLogDTO.java

@ -53,6 +53,11 @@ public class UserPointActionLogDTO implements Serializable {
*/
private String actionFlag;
/**
* 来源Id可以是活动Id
* */
private String sourceId;
/**
* 来源ID 当来源为积分调整时 通过事件Id查找规则ID计算出分数 通过EVENT_ID能查出RUIE_ID
*/

4
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointVerificationFormDTO.java

@ -44,10 +44,12 @@ public class PointVerificationFormDTO implements Serializable {
@NotBlank(message = "当前工作人员Id不能为空", groups = PointVerificationGroup.class)
private String operatorId;
@NotBlank(message = "缺失经度信息" , groups = PointVerificationGroup.class)
private String longitude;
@NotBlank(message = "缺失维度信息" , groups = PointVerificationGroup.class)
private String dimension;
@NotBlank(message = "缺失地址信息" , groups = PointVerificationGroup.class)
private String address;
}

4
epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/WorkPointVerificationFormDTO.java

@ -26,7 +26,7 @@ public class WorkPointVerificationFormDTO implements Serializable {
private String timeParam;
@Min(1)
private Integer pageNo;
private Integer pageNo = 1;
private Integer pageSize;
private Integer pageSize = 20;
}

45
epmet-module/epmet-point/epmet-point-client/src/main/java/dto/form/SendPointFormDTO.java

@ -14,5 +14,50 @@ import lombok.Data;
@Data
public class SendPointFormDTO {
private String pointDesc;
/**
* 积分
* */
private Integer point;
/**
* 操作人机关id
*/
private String opAgencyId;
/**
* 操作人Id当有固定的操作人时传入此值如果没有则为空
* */
private String operatorId;
/**
* 客户Id
*/
private String customerId;
/**
* 被操作用户id
*/
private String userId;
/**
* 加减分标识 plus/minus
*/
private String actionFlag;
/**
* 是否是通用事件通用事件不走规则
*/
private Boolean isCommon;
/**
* 备注
*/
private String remark;
/**
* 业务id eg活动id
*/
private String sourceId;
}

2
epmet-module/epmet-point/epmet-point-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-point-server:
container_name: epmet-point-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-point-server:0.0.4
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-point-server:0.0.6
ports:
- "8112:8112"
network_mode: host # 使用现有网络

2
epmet-module/epmet-point/epmet-point-server/pom.xml

@ -3,7 +3,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.0.4</version>
<version>0.0.6</version>
<parent>
<artifactId>epmet-point</artifactId>
<groupId>com.epmet</groupId>

19
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/AdjustmentController.java

@ -1,10 +1,13 @@
package com.epmet.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.dto.form.CustomerUserFormDTO;
import com.epmet.dto.form.IssueInitiatorFormDTO;
import com.epmet.dto.form.PointAdjustmentFormDTO;
import com.epmet.dto.result.CustomerUser4PointResultDTO;
import com.epmet.dto.result.CustomerUserDetailResultDTO;
import com.epmet.dto.result.PointAdjustmentResultDTO;
@ -69,5 +72,21 @@ public class AdjustmentController {
ValidatorUtils.validateEntity(param, IssueInitiatorFormDTO.UserIdGroup.class);
return new Result<List<PointAdjustmentResultDTO>>().ok(pointAdjustmentLogService.adjustRecord(param));
}
/**
* @Description 积分调整
* @param param
* @return
* @author wangc
* @date 2020.07.27 13:52
**/
@PostMapping("adjust")
public Result adjustPoint(@LoginUser TokenDto token, @RequestBody PointAdjustmentFormDTO param){
param.setOperatorId(token.getUserId());
param.setCustomerId(token.getCustomerId());
ValidatorUtils.validateEntity(param, PointAdjustmentFormDTO.PointAdjustmentGroup.class);
pointAdjustmentLogService.adjustPoint(param);
return new Result();
}
}

28
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ExchangeController.java

@ -1,5 +1,16 @@
package com.epmet.controller;
import com.epmet.common.token.annotation.Login;
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.dto.form.PointVerificationFormDTO;
import com.epmet.dto.result.PointVerificationResultDTO;
import com.epmet.service.PointVerificationLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -12,5 +23,22 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("work/exchange")
public class ExchangeController {
@Autowired
private PointVerificationLogService pointVerificationLogService;
/**
* @Description 积分核销
* @param verificationParam
* @return
* @author wangc
* @date 2020.07.27 14:03
**/
@PostMapping("execute")
public Result<PointVerificationResultDTO> execute(@LoginUser TokenDto token, @RequestBody PointVerificationFormDTO verificationParam){
verificationParam.setOperatorId(token.getUserId());
ValidatorUtils.validateEntity(verificationParam, PointVerificationFormDTO.PointVerificationGroup.class);
return new Result<PointVerificationResultDTO>().ok(pointVerificationLogService.verifyPoint(verificationParam));
}
}

2
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/MqPointCallbackController.java

@ -46,7 +46,7 @@ public class MqPointCallbackController {
}
SendPointFormDTO formDTO = ConvertUtils.sourceToTarget(mqMsg.getMsg(), SendPointFormDTO.class);
try {
//TODO 调用调整积分方法去给用户加减积分 userPointActionLogService.
userPointActionLogService.grantPoint(formDTO);
} catch (Exception e) {
logger.error("activeSendPoint consume fail,msg:{}",JSON.toJSONString(mqMsg.getMsg()));
throw new RenException(EpmetErrorCode.SERVER_ERROR.getMsg());

2
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointVerificationLogDao.java

@ -54,5 +54,5 @@ public interface PointVerificationLogDao extends BaseDao<PointVerificationLogEnt
* @author wangc
* @date 2020.07.25 13:17
**/
List<WorkPointVerificationLogResultDTO> selectStaffVerificationLog(String staffId, Date startDate, Date endDate);
List<WorkPointVerificationLogResultDTO> selectStaffVerificationLog(@Param("staffId") String staffId, @Param("startDate") Date startDate,@Param("endDate") Date endDate);
}

7
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/entity/UserPointActionLogEntity.java

@ -54,10 +54,15 @@ public class UserPointActionLogEntity extends BaseEpmetEntity {
private String actionFlag;
/**
* 来源ID 当来源为积分调整时 通过事件Id查找规则ID计算出分数 通过EVENT_ID能查出RUIE_ID
* 当来源为积分调整时 通过事件Id查找规则ID计算出分数 通过EVENT_ID能查出RUIE_ID
*/
private String eventId;
/**
* 来源Id可以是活动Id
* */
private String sourceId;
/**
* 活动描述 获取积分的原因相关内容用来拼接用户参加了xxx活动获取积分的文案取活动的名称积分调整文案其他
如果是管理员手动调整扣减积分ACTION_FLAG为"minus"但是不会生成核销记录核销记录只保存用户使用积分兑换商品的核销详情

9
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/UserPointActionLogService.java

@ -23,6 +23,7 @@ import com.epmet.dto.UserPointActionLogDTO;
import com.epmet.dto.form.CommonPageUserFormDTO;
import com.epmet.dto.result.ResiPointLogListResultDTO;
import com.epmet.entity.UserPointActionLogEntity;
import dto.form.SendPointFormDTO;
import java.util.List;
import java.util.Map;
@ -104,5 +105,13 @@ public interface UserPointActionLogService extends BaseService<UserPointActionLo
**/
List<ResiPointLogListResultDTO> getMyPointRecord(CommonPageUserFormDTO pageUser);
/**
* @Description 消息网关回调进行积分发放
* @param grantPointParam
* @return
* @author wangc
* @date 2020.07.29 09:11
**/
void grantPoint(SendPointFormDTO grantPointParam);
}

2
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdjustmentLogServiceImpl.java

@ -178,7 +178,7 @@ public class PointAdjustmentLogServiceImpl extends BaseServiceImpl<PointAdjustme
if(null == param.getPoint()) throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode());
Date currentTime = new Date();
Integer point = param.getPoint();
if(StringUtils.equals(ModuleConstant.OPERATION_TYPE_MINUS,param.getAdjustmentType())){
if(StringUtils.equals(ModuleConstant.OPERATION_TYPE_MINUS,param.getAdjustmentType()) || param.getAdjustmentType().toLowerCase().contains("m")){
if(point > NumConstant.ZERO){
point *= NumConstant.ONE_NEG;
}

32
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointVerificationLogServiceImpl.java

@ -185,11 +185,24 @@ public class PointVerificationLogServiceImpl extends BaseServiceImpl<PointVerifi
try{
Date date = format.parse(verificationParam.getTimeParam());
if(NumConstant.ONE < verificationParam.getPageNo()){
PageHelper.startPage(verificationParam.getPageNo(),verificationParam.getPageSize());
}
List<WorkPointVerificationLogResultDTO> dataList =
baseDao.selectStaffVerificationLog(verificationParam.getStaffId(),getFirstDayDateOfMonth(date),getLastDayOfMonth(date));
result.setTotalPoint(
dataList.stream().mapToInt(o -> o.getPoint()).sum()
);
if(NumConstant.ONE < verificationParam.getPageNo()){
result.setTotalPoint(
dataList.stream().mapToInt(o -> o.getPoint()).sum()
);
}else{
int fromIndex = verificationParam.getPageNo() * verificationParam.getPageSize();
int toIndex = (verificationParam.getPageNo() + 1) * verificationParam.getPageSize();
if(toIndex > dataList.size()) {
toIndex = dataList.size();
}
dataList = dataList.subList(fromIndex,toIndex);
}
List<String> userIds = dataList.stream().map(data -> data.getUserId()).collect(Collectors.toList());
Result<List<UserBaseInfoResultDTO>> userInfo =
epmetUserOpenFeignClient.queryUserBaseInfo(userIds);
@ -223,7 +236,8 @@ public class PointVerificationLogServiceImpl extends BaseServiceImpl<PointVerifi
@Override
@Transactional(rollbackFor = Exception.class)
public PointVerificationResultDTO verifyPoint(PointVerificationFormDTO verificationParam) {
Date currentTime = new Date();
DimIdGenerator.DimIdBean dim = DimIdGenerator.getDimIdBean(new Date());
PointVerificationResultDTO result = new PointVerificationResultDTO();
ResiCommonUserIdFormDTO userId = new ResiCommonUserIdFormDTO();
userId.setUserId(verificationParam.getUserId());
@ -247,7 +261,7 @@ public class PointVerificationLogServiceImpl extends BaseServiceImpl<PointVerifi
String agencyId = ModuleConstant.EMPTY_STR;
String operatorName = ModuleConstant.EMPTY_STR;
PointVerificationStatisticalDailyEntity statistical = new PointVerificationStatisticalDailyEntity();
PointVerificationStatisticalDailyEntity statistical = new PointVerificationStatisticalDailyEntity();
if(staffResult.success() && null != staffResult.getData()){
statistical = ConvertUtils.sourceToTarget(staffResult.getData(),PointVerificationStatisticalDailyEntity.class);
customerId = staffResult.getData().getCustomerId();
@ -257,6 +271,7 @@ public class PointVerificationLogServiceImpl extends BaseServiceImpl<PointVerifi
//1.记录积分行为日志 - 居民端
UserPointActionLogEntity action = new UserPointActionLogEntity();
action.setCustomerId(customerId);
action.setCreatedBy(verificationParam.getOperatorId());
action.setUserId(verificationParam.getUserId());
action.setActionFlag(ModuleConstant.OPERATION_TYPE_MINUS);
@ -278,7 +293,7 @@ public class PointVerificationLogServiceImpl extends BaseServiceImpl<PointVerifi
verificationLog.setAddress(verificationParam.getAddress());
pointVerificationLogDao.insert(verificationLog);
//3.记录积分日统计表
DimIdGenerator.DimIdBean dim = DimIdGenerator.getDimIdBean(currentTime);
UserPointStatisticalDailyEntity userStatistical = ConvertUtils.sourceToTarget(dim,UserPointStatisticalDailyEntity.class);
userStatistical.setUserId(verificationParam.getUserId());
userStatistical.setActionFlag(ModuleConstant.OPERATION_TYPE_EXCHANGE);
@ -287,6 +302,11 @@ public class PointVerificationLogServiceImpl extends BaseServiceImpl<PointVerifi
userPointStatisticalDailyService.insertOrUpdate(userStatistical);
//4.记录积分核销日统计 - 政府端
statistical.setVerificatedPoint(point * NumConstant.ONE_NEG);
statistical.setDateId(dim.getDateId());
statistical.setWeekId(dim.getWeekId());
statistical.setMonthId(dim.getMonthId());
statistical.setQuarterId(dim.getQuarterId());
statistical.setYearId(dim.getYearId());
pointVerificationStatisticalDailyService.insertOrUpdate(statistical);
//5.更新用户总积分表
UserPointTotalEntity userPoint = new UserPointTotalEntity();

72
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointActionLogServiceImpl.java

@ -20,6 +20,8 @@ package com.epmet.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.enums.EventEnum;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.constant.FieldConstant;
@ -29,10 +31,18 @@ import com.epmet.dto.form.CommonPageUserFormDTO;
import com.epmet.dto.result.ResiPointLogListResultDTO;
import com.epmet.dto.result.ResiPointLogPeriodResultDTO;
import com.epmet.entity.UserPointActionLogEntity;
import com.epmet.entity.UserPointStatisticalDailyEntity;
import com.epmet.entity.UserPointTotalEntity;
import com.epmet.service.UserPointActionLogService;
import com.epmet.service.UserPointStatisticalDailyService;
import com.epmet.service.UserPointTotalService;
import com.epmet.utils.DimIdGenerator;
import com.epmet.utils.ModuleConstant;
import com.github.pagehelper.PageHelper;
import com.google.common.collect.Maps;
import dto.form.SendPointFormDTO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -48,6 +58,10 @@ import java.util.stream.Collectors;
@Service
public class UserPointActionLogServiceImpl extends BaseServiceImpl<UserPointActionLogDao, UserPointActionLogEntity> implements UserPointActionLogService {
@Autowired
private UserPointTotalService userPointTotalService;
@Autowired
private UserPointStatisticalDailyService userPointStatisticalDailyService;
@Override
public PageData<UserPointActionLogDTO> page(Map<String, Object> params) {
@ -131,4 +145,62 @@ public class UserPointActionLogServiceImpl extends BaseServiceImpl<UserPointActi
return result;
}
/**
* @Description 消息网关回调进行积分发放
* @param grantPointParam
* @return
* @author wangc
* @date 2020.07.29 09:11
**/
@Override
public void grantPoint(SendPointFormDTO grantPointParam){
if(StringUtils.equals(ModuleConstant.OPERATION_TYPE_MINUS,grantPointParam.getActionFlag())){
//减
if(grantPointParam.getPoint() > NumConstant.ZERO){
//保证负数
grantPointParam.setPoint(grantPointParam.getPoint() * NumConstant.ONE_NEG);
}
}else{
//加
if(grantPointParam.getPoint() < NumConstant.ZERO){
//保证正数
grantPointParam.setPoint(grantPointParam.getPoint() * NumConstant.ONE_NEG);
}
}
//1.新增用户积分行为记录
UserPointActionLogEntity action = new UserPointActionLogEntity();
action.setCustomerId(grantPointParam.getCustomerId());
action.setPoint(grantPointParam.getPoint());
action.setEventStatement(grantPointParam.getPointDesc());
action.setEventName(EventEnum.ACTIVE_SEND_POINT.getEventDesc());
action.setEventId(EventEnum.ACTIVE_INSERT_LIVE.getEventTag());
action.setActionFlag(grantPointParam.getActionFlag());
action.setUserId(grantPointParam.getUserId());
action.setCreatedBy(grantPointParam.getOperatorId());
action.setUpdatedBy(grantPointParam.getOperatorId());
action.setSourceId(grantPointParam.getSourceId());
action.setOperatorAgencyId(grantPointParam.getOpAgencyId());
baseDao.insert(action);
//2.新增/修改用户积分日统计
DimIdGenerator.DimIdBean dimVal = DimIdGenerator.getDimIdBean(new Date());
UserPointStatisticalDailyEntity statistical = ConvertUtils.sourceToTarget(dimVal,UserPointStatisticalDailyEntity.class);
statistical.setPointChange(grantPointParam.getPoint());
statistical.setActionFlag(grantPointParam.getActionFlag());
statistical.setCustomerId(grantPointParam.getCustomerId());
statistical.setUserId(grantPointParam.getUserId());
statistical.setCreatedBy(grantPointParam.getOperatorId());
statistical.setUpdatedBy(grantPointParam.getOperatorId());
userPointStatisticalDailyService.insertOrUpdate(statistical);
//3.新增/修改用户总积分
UserPointTotalEntity point = new UserPointTotalEntity();
point.setCustomerId(grantPointParam.getCustomerId());
point.setUserId(grantPointParam.getUserId());
point.setTotalPoint(grantPointParam.getPoint());
point.setUsablePoint(grantPointParam.getPoint());
point.setUsedPoint(NumConstant.ZERO);
point.setCreatedBy(grantPointParam.getOperatorId());
point.setUpdatedBy(grantPointParam.getOperatorId());
userPointTotalService.insertOrUpdate(point);
}
}

26
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointStatisticalDailyServiceImpl.java

@ -147,19 +147,24 @@ public class UserPointStatisticalDailyServiceImpl extends BaseServiceImpl<UserPo
List<ResiPointRankResultDTO> rankList =
baseDao.selectPointRankWithinTimeZone(pointRankFormDTO.getCustomerId(),pointRankFormDTO.getTimeDimension(),dimVal);
if(null == rankList || rankList.isEmpty()){
o.setMyPoint(NumConstant.ZERO);
o.setMyRanking(NumConstant.ZERO);
return result;
if(NumConstant.ONE < pointRankFormDTO.getPageNo()){
return result;
}else {
o.setMyPoint(NumConstant.ZERO);
o.setMyRanking(NumConstant.ZERO);
result.add(o);
return result;
}
}
//如果请求的是第一页
if(NumConstant.ONE == pointRankFormDTO.getPageNo()) {
ResiPointRankResultDTO myself =
rankList.stream().filter(obj -> StringUtils.equals(obj.getUserId(), pointRankFormDTO.getUserId())).findFirst().get();
if (null != myself) {
ResiPointRankResultDTO myself = null;
Optional<ResiPointRankResultDTO> opt = rankList.stream().filter(obj -> StringUtils.equals(obj.getUserId(), pointRankFormDTO.getUserId())).findFirst();
if(opt.isPresent()){
myself = opt.get();
o.setMyPoint(myself.getTotalPoint());
o.setMyRanking(myself.getRank());
} else {
}else{
o.setMyPoint(NumConstant.ZERO);
if (rankList.get(rankList.size() - NumConstant.ONE).getTotalPoint() > NumConstant.ZERO) {
o.setMyRanking(rankList.get(rankList.size() - NumConstant.ONE).getRank() + NumConstant.ONE);
@ -167,8 +172,9 @@ public class UserPointStatisticalDailyServiceImpl extends BaseServiceImpl<UserPo
o.setMyRanking(rankList.get(rankList.size() - NumConstant.ONE).getRank());
}
}
int fromIndex = pointRankFormDTO.getPageNo() * pointRankFormDTO.getPageSize();
int toIndex = (pointRankFormDTO.getPageNo() + 1) * pointRankFormDTO.getPageSize();
int fromIndex = (pointRankFormDTO.getPageNo() - 1) * pointRankFormDTO.getPageSize();
int toIndex = pointRankFormDTO.getPageNo() * pointRankFormDTO.getPageSize();
if(toIndex > rankList.size()) {
toIndex = rankList.size();
}

29
epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointTotalServiceImpl.java

@ -156,29 +156,34 @@ public class UserPointTotalServiceImpl extends BaseServiceImpl<UserPointTotalDao
baseDao.selectUserPointRank(pointRankFormDTO.getCustomerId());
//当排行榜没有数据时
if(null == rankList || rankList.isEmpty()){
o.setMyPoint(NumConstant.ZERO);
o.setMyRanking(NumConstant.ZERO);
result.add(o);
return result;
if(NumConstant.ONE < pointRankFormDTO.getPageNo()){
return result;
}else {
o.setMyPoint(NumConstant.ZERO);
o.setMyRanking(NumConstant.ZERO);
result.add(o);
return result;
}
}
//如果当前请求不是第一页
if(NumConstant.ONE == pointRankFormDTO.getPageNo()) {
ResiPointRankResultDTO myself =
rankList.stream().filter(obj -> StringUtils.equals(obj.getUserId(), pointRankFormDTO.getUserId())).findFirst().get();
if (null != myself) {
ResiPointRankResultDTO myself = null;
Optional<ResiPointRankResultDTO> opt = rankList.stream().filter(obj -> StringUtils.equals(obj.getUserId(), pointRankFormDTO.getUserId())).findFirst();
if(opt.isPresent()){
myself = opt.get();
o.setMyPoint(myself.getTotalPoint());
o.setMyRanking(myself.getRank());
} else {
if (rankList.get(rankList.size() - NumConstant.ONE).getTotalPoint() > NumConstant.ZERO) {
o.setMyRanking(rankList.get(rankList.size() - NumConstant.ONE).getRank() + NumConstant.ONE);
} else {
o.setMyRanking(rankList.get(rankList.size() - NumConstant.ONE).getRank());
}
}
int fromIndex = pointRankFormDTO.getPageNo() * pointRankFormDTO.getPageSize();
int toIndex = (pointRankFormDTO.getPageNo() + 1) * pointRankFormDTO.getPageSize();
int fromIndex = (pointRankFormDTO.getPageNo() - 1) * pointRankFormDTO.getPageSize();
int toIndex = pointRankFormDTO.getPageNo() * pointRankFormDTO.getPageSize();
if(toIndex > rankList.size()) {
toIndex = rankList.size();
}
@ -218,7 +223,7 @@ public class UserPointTotalServiceImpl extends BaseServiceImpl<UserPointTotalDao
@Override
public void insertOrUpdate(UserPointTotalEntity entity) {
UserPointTotalEntity existed = baseDao.selectIfExisted(entity.getUserId());
if(null != existed && StringUtils.isBlank(existed.getId())){
if(null != existed && StringUtils.isNotBlank(existed.getId())){
existed.setUsedPoint(null == existed.getUsedPoint() ? entity.getUsedPoint() : entity.getUsedPoint() + existed.getUsedPoint());
existed.setUsablePoint(null == existed.getUsablePoint() ? entity.getUsablePoint() : entity.getUsablePoint() + existed.getUsablePoint());
existed.setTotalPoint(null == existed.getTotalPoint() ? entity.getTotalPoint() : entity.getTotalPoint() + existed.getTotalPoint());

2
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/PointAdjustmentLogDao.xml

@ -27,7 +27,7 @@
adjust_reason AS reason,
DATE_FORMAT( created_time, '%Y-%m-%d %H:%i:%s' ) AS date,
CASE
action_flag
ADJUSTMENT_TYPE
WHEN 'plus' THEN
CONCAT( '+', POINT ) ELSE CONCAT( '-', POINT )
END AS POINT

1
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml

@ -9,6 +9,7 @@
<result property="customerId" column="CUSTOMER_ID"/>
<result property="actionFlag" column="ACTION_FLAG"/>
<result property="eventId" column="EVENT_ID"/>
<result property="sourceId" column="SOURCE_ID" />
<result property="eventStatement" column="EVENT_STATEMENT"/>
<result property="eventName" column="EVENT_NAME"/>
<result property="point" column="POINT"/>

56
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointStatisticalDailyDao.xml

@ -25,38 +25,42 @@
<!-- 查询客户下周/月度用户积分排行榜 传参:客户Id | 维度 | 维度值 -->
<!-- user_point_statistical_daily中的action_flag有三种key值,plus(获取),exchange(积分兑换),minus(调整、惩罚),当action_flag为minus时,point_change为负值,其余均为正数 -->
<select id="selectPointRankWithinTimeZone" resultType="com.epmet.dto.result.ResiPointRankResultDTO">
SELECT
IF
( @point > point.TOTAL_POINT, @rank := @rank + 1, @rank := @rank + 0 ) AS rank,
point.user_id,
point.TOTAL_POINT,
-- CASE WHEN point.TOTAL_POINT <![CDATA[>=]]> 0 THEN point.TOTAL_POINT ELSE 0 END AS totalPoint,
@point := point.TOTAL_POINT
SELECT IF ( @point > point.TOTAL_POINT,
@rank := @rank + 1,
@rank := @rank + 0
) AS rank,
point.user_id,
point.TOTAL_POINT,
@point := point.TOTAL_POINT
FROM
(
(
SELECT
USER_ID,
SUM( POINT_CHANGE ) AS TOTAL_POINT
total.USER_ID,
IFNULL( SUM( daily.POINT_CHANGE ), 0 ) AS POINT_CHANGE,
IF
( POINT_CHANGE <![CDATA[ < ]]> 0, 0, IFNULL( SUM( daily.POINT_CHANGE ), 0 ) ) AS TOTAL_POINT
FROM
user_point_statistical_daily
user_point_total total
LEFT JOIN user_point_statistical_daily daily ON daily.USER_ID = total.USER_ID
AND daily.DEL_FLAG = '0'
AND daily.USER_ID = total.USER_ID
AND daily.CUSTOMER_ID = #{customerId}
<if test='dimension == "week"'>
AND daily.WEEK_ID = #{dimensionId}
</if>
<if test='dimension == "month"'>
AND daily.MONTH_ID = #{dimensionId}
</if>
AND ( daily.ACTION_FLAG = 'plus' OR daily.ACTION_FLAG = 'minus' )
WHERE
DEL_FLAG = '0'
AND CUSTOMER_ID = #{customerId}
<if test='dimension == "week"'>
AND WEEK_ID = #{dimensionId}
</if>
<if test='dimension == "month"'>
AND MONTH_ID = #{dimensionId}
</if>
AND ACTION_FLAG = 'plus'
OR ACTION_FLAG = 'minus'
total.DEL_FLAG = '0'
AND total.DEL_FLAG = '0'
GROUP BY
USER_ID
total.USER_ID
ORDER BY
TOTAL_POINT DESC
) point,
( SELECT @point := NULL, @rank := 1 ) a
TOTAL_POINT DESC
) point,
( SELECT @point := NULL, @rank := 1 ) a
</select>
<!-- 查询有无指定日期的积分日统计 userId dateId actionFlag-->

2
epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointTotalDao.xml

@ -48,7 +48,7 @@
<select id="selectIfExisted" resultType="com.epmet.entity.UserPointTotalEntity">
SELECT
ID,
USERD_POINT,
USED_POINT,
USABLE_POINT,
TOTAL_POINT
FROM

27
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/MessagePushTextFormDTO.java

@ -0,0 +1,27 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
* @Author zxc
* @CreateTime 2020/7/28 14:35
*/
@Data
public class MessagePushTextFormDTO implements Serializable {
private static final long serialVersionUID = 2156552140364818299L;
private String ToUserName;
private String FromUserName;
private Date weChatCreateTime;
private String MsgType;
private String Content;
private String MsgId;
private Integer delFlag = 0;
private Integer revision = 0;
private String createdBy = "APP_USER";
private String updatedBy = "APP_USER";
}

2
epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-third-server:
container_name: epmet-third-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.72
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.75
ports:
- "8110:8110"
network_mode: host # 使用现有网络

2
epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-third-server:
container_name: epmet-third-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-third-server:0.0.65
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-third-server:0.0.72
ports:
- "8110:8110"
network_mode: host # 使用现有网络

2
epmet-module/epmet-third/epmet-third-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.0.72</version>
<version>0.0.75</version>
<parent>
<groupId>com.epmet</groupId>

3
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/CodeConstant.java

@ -49,6 +49,9 @@ public interface CodeConstant {
String OPER_UPLOAD = "上传代码";
String OPER_SUBMIT = "提交审核";
String OPER_SUCCESS = "审核成功";
String OPER_FAILED = "审核被拒绝";
String OPER_DELAY = "审核延后";
String OPER_UNDO = "审核撤回";
String OPER_RELEASE = "发布";
}

35
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/dao/MessagePushTextDao.java

@ -0,0 +1,35 @@
/**
* 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.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.MessagePushTextFormDTO;
import com.epmet.entity.MessagePushTextEntity;
import org.apache.ibatis.annotations.Mapper;
/**
*
*
* @author generator generator@elink-cn.com
* @since v1.0.0 2020-07-28
*/
@Mapper
public interface MessagePushTextDao extends BaseDao<MessagePushTextEntity> {
int insertMessageText(MessagePushTextFormDTO entity);
}

71
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/entity/MessagePushTextEntity.java

@ -0,0 +1,71 @@
/**
* 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.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-07-28
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("message_push_text")
public class MessagePushTextEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 开发者微信号
*/
private String toUserName;
/**
* 发送方帐号一个OpenID
*/
private String fromUserName;
/**
* 消息创建时间
*/
private Date wechatCreateTime;
/**
* 消息类型文本为text
*/
private String msgType;
/**
* 文本消息内容
*/
private String content;
/**
* 消息id64位整型
*/
private String msgId;
}

15
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/CodeServiceImpl.java

@ -178,18 +178,18 @@ public class CodeServiceImpl implements CodeService {
if (result.getStatus() == NumConstant.ZERO) {
code.setStatus(CodeConstant.AUDIT_SUCCESS);
auditResult.setResult(CodeConstant.AUDIT_SUCCESS);
codeOperationHistoryService.updateDescribe(code.getId(), "审核成功");
saveOperation(formDTO.getCustomerId(), code.getId(), code.getUserVersion(), CodeConstant.OPER_SUCCESS, "审核成功");
} else if (result.getStatus() == NumConstant.ONE) {
code.setStatus(CodeConstant.AUDIT_FAILED);
auditResult.setResult(CodeConstant.AUDIT_FAILED);
auditResult.setReason(result.getReason());
auditResult.setScreenShot(result.getScreenshot());
codeOperationHistoryService.updateDescribe(code.getId(), result.getReason());
saveOperation(formDTO.getCustomerId(), code.getId(), code.getUserVersion(), CodeConstant.OPER_FAILED, result.getReason());
} else if (result.getStatus() == NumConstant.FOUR) {
code.setStatus(CodeConstant.DELAY);
auditResult.setResult(CodeConstant.DELAY);
auditResult.setReason(result.getReason());
codeOperationHistoryService.updateDescribe(code.getId(), "审核延后");
saveOperation(formDTO.getCustomerId(), code.getId(), code.getUserVersion(), CodeConstant.OPER_DELAY, result.getReason());
}
codeCustomerService.update(code);
codeAuditResultService.update(auditResult);
@ -238,6 +238,7 @@ public class CodeServiceImpl implements CodeService {
codeAuditResultDTO.setResult(CodeConstant.AUDITING);
codeAuditResultService.save(codeAuditResultDTO);
} else {
codeAuditResultDTO.setAuditId(wxResult.getData());
codeAuditResultDTO.setResult(CodeConstant.AUDITING);
codeAuditResultService.update(codeAuditResultDTO);
}
@ -349,10 +350,10 @@ public class CodeServiceImpl implements CodeService {
request.setAuditId(codeAuditResultDTO.getAuditId());
WxMaNewsReq wxMaNewsReq = new WxMaNewsReq();
wxMaNewsReq.setMediaId(mediaId);
WxResult<WxMaNewsResult> wxAuditResult = wxMaCodeService.getMaterial(authInfo.getAuthorizerAccessToken(), wxMaNewsReq);
wxAuditResult.getData().getNewsItem().forEach(news -> {
urlList.add(news.getUrl());
});
WxResult<byte[]> wxAuditResult = wxMaCodeService.getMaterial(authInfo.getAuthorizerAccessToken(), wxMaNewsReq);
MultipartFile file = new MockMultipartFile("file", "QRCode.jpg", "image/jpeg", wxAuditResult.getData());
Result<UploadImgResultDTO> uploadResult = ossFeignClient.uploadQrCode(file);
urlList.add(uploadResult.getData().getUrl());
});
result.setScreenshotUrl(urlList);
return result;

23
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/WarrantServiceImpl.java

@ -3,11 +3,9 @@ package com.epmet.service.impl;
import com.alibaba.nacos.client.config.utils.IOUtils;
import com.epmet.constant.ModuleConstant;
import com.epmet.constant.ThirdRunTimeInfoConstant;
import com.epmet.dao.CodeAuditRecordDao;
import com.epmet.dao.CodeAuditResultDao;
import com.epmet.dao.CodeCustomerDao;
import com.epmet.dao.MiniInfoDao;
import com.epmet.dao.*;
import com.epmet.dto.form.CodeAuditRecordFormDTO;
import com.epmet.dto.form.MessagePushTextFormDTO;
import com.epmet.dto.result.CustomerIdAndClientResultDTO;
import com.epmet.dto.result.TemplateAndAppIdResultDTO;
import com.epmet.mpaes.AesException;
@ -55,6 +53,10 @@ public class WarrantServiceImpl implements WarrantService {
private CodeCustomerDao codeCustomerDao;
@Autowired
private CodeAuditResultDao codeAuditResultDao;
@Autowired
private ComponentVerifyTicketServiceImpl componentVerifyTicketServiceImpl;
@Autowired
private MessagePushTextDao messagePushTextDao;
/**
* @Description 1.保存代码审核结果 2.更新代码上传结果
@ -91,9 +93,10 @@ public class WarrantServiceImpl implements WarrantService {
Map<String, Object> result = WXXmlToMapUtil.multilayerXmlToMap(msg);
Map<String,Object> xml = (Map<String, Object>) result.get(ModuleConstant.XML);
if (xml.get(ModuleConstant.MSG_TYPE).equals(ModuleConstant.EVENT_LOW)) {
// TODO 目前来看,msgType = ‘event’ 的是代码审核结果
Long createTime = Long.valueOf(xml.get(ModuleConstant.CREATE_TIME).toString());
CodeAuditRecordFormDTO codeAuditRecord = componentVerifyTicketService.mapToEntity(xml, CodeAuditRecordFormDTO.class);
codeAuditRecord.setWechatCreateTime(new Date(createTime));
codeAuditRecord.setWechatCreateTime(componentVerifyTicketServiceImpl.sToDate(createTime.toString()));
String toUserName = codeAuditRecord.getToUserName();//小程序原始ID
CustomerIdAndClientResultDTO customerIdAndClientResultDTO = miniInfoDao.selectCustomerIdAndClientByToUserName(toUserName);
String clientType = customerIdAndClientResultDTO.getClientType();
@ -113,15 +116,23 @@ public class WarrantServiceImpl implements WarrantService {
switch (event) {
case ModuleConstant.WEAPP_AUDIT_SUCCESS:
codeResult = ModuleConstant.AUDIT_SUCCESS;
break;
case ModuleConstant.WEAPP_AUDIT_FAIL:
codeResult = ModuleConstant.AUDIT_FAILED;
break;
case ModuleConstant.WEAPP_AUDIT_DELAY:
codeResult = ModuleConstant.DELAY;
break;
}
String codeCustomerId = codeCustomerDao.selectCodeCustomerId(codeAuditRecord);
codeAuditResultDao.updateAuditResult(customerId, codeCustomerId, codeResult);
}else if (xml.get(ModuleConstant.MSG_TYPE).equals(ModuleConstant.TEXT)){
// TODO 公众号回复消息
MessagePushTextFormDTO messagePushTextFormDTO = componentVerifyTicketService.mapToEntity(xml, MessagePushTextFormDTO.class);
Object createTime = xml.get(ModuleConstant.CREATE_TIME);
Date date = componentVerifyTicketServiceImpl.sToDate(createTime.toString());
messagePushTextFormDTO.setWeChatCreateTime(date);
messagePushTextDao.insertMessageText(messagePushTextFormDTO);
}
return ModuleConstant.SUCCESS;
}

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/WxMaCodeService.java

@ -110,7 +110,7 @@ public interface WxMaCodeService {
* @author zhaoqifeng
* @date 2020/7/16 14:52
*/
WxResult<WxMaNewsResult> getMaterial(String accessToken, WxMaNewsReq request);
WxResult<byte[]> getMaterial(String accessToken, WxMaNewsReq request);
/**
* 设置服务器郁闷

22
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/service/impl/WxMaCodeServiceImpl.java

@ -10,6 +10,7 @@ import com.epmet.wxapi.result.*;
import com.epmet.wxapi.service.WxMaCodeService;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -19,7 +20,9 @@ import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
* 描述一下
@ -198,19 +201,16 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
}
@Override
public WxResult<WxMaNewsResult> getMaterial(String accessToken, WxMaNewsReq request) {
WxResult<WxMaNewsResult> result = new WxResult<>();
public WxResult<byte[]> getMaterial(String accessToken, WxMaNewsReq request) {
WxResult<byte[]> result = new WxResult<>();
String url = WxMaCodeConstant.GET_MATERIAL_URL + "?" + "access_token=" + accessToken;
Result<String> statusResult = HttpClientManager.getInstance().sendPostByJSON(url, toJson(request));
Result<byte[]> statusResult = HttpClientManager.getInstance().getByteArray(url, toMap(request));
if (!statusResult.success()) {
result.setErrorCode(statusResult.getCode());
result.setErrorMsg(statusResult.getMsg());
return result;
}
Gson gson = new Gson();
InputStream inputStream = gson.fromJson(statusResult.getData(), InputStream.class);
WxMaNewsResult newsResult = gson.fromJson(statusResult.getData(), WxMaNewsResult.class);
result.ok(newsResult);
result.ok(statusResult.getData());
return result;
}
@ -279,4 +279,12 @@ public class WxMaCodeServiceImpl implements WxMaCodeService {
Gson gson = gsonBuilder.create();
return gson.toJson(object);
}
private Map<String, Object> toMap(Object object) {
Gson gson = new Gson();
if(object == null){
return Collections.emptyMap();
}
return gson.fromJson(toJson(object), new TypeToken<Map<String, Object>>() {}.getType());
}
}

18
epmet-module/epmet-third/epmet-third-server/src/main/resources/db/migration/V0.0.2__thirdUpdate.sql

@ -0,0 +1,18 @@
alter table code_operation_history modify column DESCRIPTION varchar(2048) COMMENT '描述';
CREATE TABLE `message_push_text` (
`ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`TO_USER_NAME` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '开发者微信号',
`FROM_USER_NAME` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发送方帐号(一个OpenID)',
`WECHAT_CREATE_TIME` datetime(0) NULL DEFAULT NULL COMMENT '消息创建时间',
`MSG_TYPE` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息类型,文本为text',
`CONTENT` varchar(3072) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文本消息内容',
`MSG_ID` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '消息id,64位整型',
`DEL_FLAG` int(11) NOT NULL COMMENT '删除状态 0:正常,1:删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime(0) NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime(0) NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = ' ' ROW_FORMAT = Dynamic;

2
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditRecordDao.xml

@ -5,7 +5,7 @@
<!-- 插入代码审核结果 -->
<insert id="insertCodeAuditRecord">
INSERT INTO code_audit_result ( ID, CUSTOMER_ID, TEMPLATE_ID, CLIENT_TYPE, AUTH_APP_ID, TO_USER_NAME, FROM_USER_NAME, WECHAT_CREATE_TIME,
INSERT INTO code_audit_record ( ID, CUSTOMER_ID, TEMPLATE_ID, CLIENT_TYPE, AUTH_APP_ID, TO_USER_NAME, FROM_USER_NAME, WECHAT_CREATE_TIME,
MSG_TYPE, EVENT, SUCC_TIME, FAIL_TIME, DELAY_TIME, REASON, SCREEN_SHOT, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME)
VALUES
(

2
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeAuditResultDao.xml

@ -26,7 +26,7 @@
SET result = #{codeResult}
WHERE del_flag = '0'
AND customer_id = #{customerId}
AND template_id = #{templateId}
AND code_id = #{codeCustomerId}
</update>

2
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/CodeCustomerDao.xml

@ -67,6 +67,8 @@
del_flag = '0'
AND customer_id = #{customerId}
AND client_type = #{clientType}
order by created_time desc
LIMIT 1
</select>
<!-- 查询 code_customer 表ID -->

26
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MessagePushTextDao.xml

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.epmet.dao.MessagePushTextDao">
<insert id="insertMessageText">
INSERT INTO message_push_text ( ID, TO_USER_NAME, FROM_USER_NAME, WECHAT_CREATE_TIME, MSG_TYPE, CONTENT, MSG_ID, DEL_FLAG, REVISION, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME )
VALUES
(
REPLACE ( UUID(), '-', '' ),
#{ToUserName},
#{FromUserName},
#{weChatCreateTime},
#{MsgType},
#{Content},
#{MsgId},
#{delFlag},
#{revision},
#{createdBy},
NOW(),
#{updatedBy},
NOW()
)
</insert>
</mapper>

1
epmet-module/epmet-third/epmet-third-server/src/main/resources/mapper/MiniInfoDao.xml

@ -51,5 +51,6 @@
WHERE
del_flag = 0
AND user_name = #{toUserName}
LIMIT 1
</select>
</mapper>

2
epmet-module/gov-mine/gov-mine-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-mine-server:
container_name: gov-mine-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-mine-server:0.3.32
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-mine-server:0.3.33
ports:
- "8098:8098"
network_mode: host # 使用现有网络

2
epmet-module/gov-org/gov-org-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-org-server:
container_name: gov-org-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/gov-org-server:0.3.77
image: 192.168.1.130:10080/epmet-cloud-dev/gov-org-server:0.3.79
ports:
- "8092:8092"
network_mode: host # 使用现有网络

2
epmet-module/gov-org/gov-org-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-org-server:
container_name: gov-org-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-org-server:0.3.76
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-org-server:0.3.77
ports:
- "8092:8092"
network_mode: host # 使用现有网络

2
epmet-module/gov-org/gov-org-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.77</version>
<version>0.3.79</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>gov-org</artifactId>

2
epmet-module/gov-org/gov-org-server/src/main/resources/mapper/CustomerStaffAgencyDao.xml

@ -121,7 +121,7 @@
<select id="selectActSponsorGrid" resultType="com.epmet.dto.result.ActSponsorGridInfo" parameterType="java.lang.String">
SELECT
csg.GRID_ID,
CONCAT( ca.ORGANIZATION_NAME, '-', cg.GRID_NAME ) AS agencyGridName,
CONCAT( ca.ORGANIZATION_NAME, '-', cg.GRID_NAME ) AS agencyGridName
FROM
customer_staff_grid csg
LEFT JOIN customer_grid cg ON ( csg.GRID_ID = cg.ID AND cg.DEL_FLAG = '0' )

7
epmet-module/gov-voice/gov-voice-client/src/main/java/com/epmet/dto/result/DraftDetailResultDTO.java

@ -28,6 +28,11 @@ public class DraftDetailResultDTO implements Serializable {
*/
private String title;
/**
* 标题审核状态
*/
private String titleAuditStatus;
/**
* 发布单位名称
*/
@ -36,7 +41,7 @@ public class DraftDetailResultDTO implements Serializable {
/**
* 发布日期
*/
@JsonFormat(pattern="yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date publishDate;
/**

2
epmet-module/gov-voice/gov-voice-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
gov-voice-server:
container_name: gov-voice-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-voice-server:0.3.59
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/gov-voice-server:0.3.62
ports:
- "8105:8105"
network_mode: host # 使用现有网络

2
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/controller/ArticleController.java

@ -255,7 +255,7 @@ public class ArticleController {
articleService.updateAuditStatusFailById(draftId, syncScanResult);
}
} catch (Exception e) {
articleService.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL);
articleService.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL, null);
log.error("scanContent exception draftId:{} return result null", e);
}
}

15
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/dao/DraftDao.java

@ -75,10 +75,11 @@ public interface DraftDao extends BaseDao<DraftEntity> {
/**
* 草稿列表
* @author zhaoqifeng
* @date 2020/6/3 14:54
*
* @param userId
* @return java.util.List<com.epmet.dto.result.DraftListResultDTO>
* @author zhaoqifeng
* @date 2020/6/3 14:54
*/
List<DraftListResultDTO> selectDraftList(@Param("userId") String userId);
@ -102,5 +103,13 @@ public interface DraftDao extends BaseDao<DraftEntity> {
int deleteDraft(String draftId);
int updateAuditStatusById(@Param("draftId") String draftId, @Param("statusFlag") String statusFlag);
/**
* desc:修改审核状态2个状态至少填一个
*
* @param draftId
* @param statusFlag
* @param titleAuditStatus
* @return
*/
int updateAuditStatusById(@Param("draftId") String draftId, @Param("statusFlag") String statusFlag, @Param("titleAuditStatus") String titleAuditStatus);
}

30
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/ArticleEntity.java

@ -18,7 +18,6 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -43,24 +42,29 @@ public class ArticleEntity extends BaseEpmetEntity {
*/
private String customerId;
/**
* 草稿ID
*/
/**
* 草稿ID
*/
private String draftId;
/**
* 文章标题
*/
/**
* 文章标题
*/
private String title;
/**
* 文章内容 精简内容
*/
/**
* 标题审核状态
*/
private String titleAuditStatus;
/**
* 文章内容 精简内容
*/
private String previewContent;
/**
* 是否置顶
*/
/**
* 是否置顶
*/
private Integer isTop;
/**

30
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/entity/DraftEntity.java

@ -18,7 +18,6 @@
package com.epmet.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.epmet.commons.mybatis.entity.BaseEpmetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -38,24 +37,29 @@ public class DraftEntity extends BaseEpmetEntity {
private static final long serialVersionUID = 1L;
/**
* 客户ID
*/
/**
* 客户ID
*/
private String customerId;
/**
* 文章标题
*/
/**
* 文章标题
*/
private String title;
/**
* 文章内容 精简内容
*/
/**
* 标题审核状态
*/
private String titleAuditStatus;
/**
* 文章内容 精简内容
*/
private String previewContent;
/**
* 是否置顶
*/
/**
* 是否置顶
*/
private Integer isTop;
/**

6
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/service/ArticleService.java

@ -200,12 +200,14 @@ public interface ArticleService extends BaseService<ArticleEntity> {
DraftContentSaveResultDTO saveDraft(TokenDto tokenDto, DraftContentFromDTO fromDTO);
/**
* desc:政府端点审核结果处理异常后 修改草稿审核状态
* desc:政府端点审核结果处理异常后 修改草稿审核状态 2选1
*
* @param draftId
* @param statusFlag
* @param titleAuditStatus
* @return
*/
void updateDraftPublishStatus(String draftId,String statusFlag);
void updateDraftPublishStatus(String draftId, String statusFlag, String titleAuditStatus);
/**
* desc:人工发布文章 不走审核接口

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

@ -970,13 +970,19 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
if (!isOk) {
this.sendMsg(draftEntity.getCustomerId(), draftEntity.getTitle(), String.format(ModuleConstant.MSG_ARTICLE_PUBLISH_ERROR, draftEntity.getTitle()));
this.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL);
this.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL, null);
return null;
}
SyncScanResult result = null;
try {
TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
ImgScanParamDTO imgScanParamDTO = new ImgScanParamDTO();
TextTaskDTO titleTextTask = new TextTaskDTO();
titleTextTask.setDataId(ModuleConstant.SCAN_TITLE_PREFIX.concat(StrConstant.UNDER_LINE).concat(draftEntity.getId()));
titleTextTask.setContent(draftEntity.getTitle());
textScanParamDTO.getTasks().add(titleTextTask);
DraftCoverDTO draftCoverDTO = draftCoverDao.selectCoverIdAndUrlByDraftId(draftId);
if (draftCoverDTO != null) {
ImgTaskDTO taskDTO = new ImgTaskDTO();
@ -1021,7 +1027,6 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
}
}
result = new SyncScanResult();
if (imgSyncScanResult != null) {
SyncScanResult imgSyncScanResultData = imgSyncScanResult.getData();
@ -1042,7 +1047,7 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
} catch (Exception e) {
log.error("scanContent exception", e);
this.sendMsg(draftEntity.getCustomerId(), draftEntity.getTitle(), String.format(ModuleConstant.MSG_ARTICLE_PUBLISH_ERROR, draftEntity.getTitle()));
this.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL);
this.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL, null);
}
log.debug("scanContent result:{}", JSON.toJSONString(result));
return result;
@ -1092,18 +1097,21 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
throw new RenException(EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getCode(), EpmetErrorCode.INTERNAL_VALIDATE_ERROR.getMsg());
}
if (syncScanResult.isAllPass()) {
this.updateDraftPublishStatus(draftId, DraftConstant.PUBLISHED);
this.updateDraftPublishStatus(draftId, DraftConstant.PUBLISHED, null);
} else {
this.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL);
this.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL, null);
}
boolean coverFail = false, contentFail = false;
boolean coverFail = false, contentFail = false, titleFail = false;
try {
List<String> failDataIds = syncScanResult.getFailDataIds();
for (String id : failDataIds) {
if (id.indexOf(ModuleConstant.SCAN_COVER_PREFIX) >= NumConstant.ZERO) {
draftCoverDao.updateAuditStatusById(id.replace(ModuleConstant.SCAN_COVER_PREFIX.concat(StrConstant.UNDER_LINE), ""), ModuleConstant.AUDIT_STATUS_FAIL);
coverFail = true;
} else if (id.indexOf(ModuleConstant.SCAN_TITLE_PREFIX) >= NumConstant.ZERO) {
this.updateDraftPublishStatus(draftId, DraftConstant.AUDITFAIL, ModuleConstant.AUDIT_STATUS_FAIL);
titleFail = true;
} else {
draftContentDao.updateAuditStatusById(id, ModuleConstant.AUDIT_STATUS_FAIL);
contentFail = true;
@ -1113,18 +1121,28 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
successDataIds.forEach(id -> {
if (id.indexOf(ModuleConstant.SCAN_COVER_PREFIX) >= NumConstant.ZERO) {
draftCoverDao.updateAuditStatusById(id.replace(ModuleConstant.SCAN_COVER_PREFIX.concat(StrConstant.UNDER_LINE), ""), ModuleConstant.AUDIT_STATUS_PASS);
} else if (id.indexOf(ModuleConstant.SCAN_TITLE_PREFIX) >= NumConstant.ZERO) {
this.updateDraftPublishStatus(draftId, null, ModuleConstant.AUDIT_STATUS_PASS);
} else {
draftContentDao.updateAuditStatusById(id, ModuleConstant.AUDIT_STATUS_PASS);
}
});
if (coverFail || contentFail) {
if (coverFail || contentFail || titleFail) {
String auditMsg = "";
if (coverFail && contentFail) {
if (titleFail && coverFail && contentFail) {
auditMsg = ModuleConstant.DRAFT_TITLE_CONTENT_AND_COVER;
} else if (coverFail && contentFail) {
auditMsg = ModuleConstant.DRAFT_CONTENT_AND_COVER;
} else if (titleFail && coverFail) {
auditMsg = ModuleConstant.DRAFT_TITLE_AND_COVER;
} else if (titleFail && contentFail) {
auditMsg = ModuleConstant.DRAFT_TITLE_AND_CONTENT;
} else if (contentFail) {
auditMsg = ModuleConstant.DRAFT_CONTENT;
} else if (coverFail) {
auditMsg = ModuleConstant.DRAFT_COVER;
} else if (titleFail) {
auditMsg = ModuleConstant.DRAFT_TITLE;
}
this.sendMsg(draft.getCustomerId(), draft.getTitle(), String.format(ModuleConstant.MSG_AUDIT_CONTENT, draft.getTitle(), auditMsg));
}
@ -1154,8 +1172,8 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
}
@Override
public void updateDraftPublishStatus(String draftId, String statusFlag) {
draftDao.updateAuditStatusById(draftId, statusFlag);
public void updateDraftPublishStatus(String draftId, String statusFlag, String titleAuditStatus) {
draftDao.updateAuditStatusById(draftId, statusFlag, titleAuditStatus);
}
@Override
@ -1164,7 +1182,7 @@ public class ArticleServiceImpl extends BaseServiceImpl<ArticleDao, ArticleEntit
try {
//校验草稿状态 并更新为已发布
DraftEntity draftEntity = checkDraftStatus(draftId);
this.updateDraftPublishStatus(draftId, DraftConstant.PUBLISHED);
this.updateDraftPublishStatus(draftId, DraftConstant.PUBLISHED, null);
//复制 草稿到文章(草稿内容,封面,属性)
ArticleEntity articleEntity = this.publishDraftToArticle(draftEntity, ArticleConstant.PUBLISH_WAY_MANUAL);
UpdateCustomerTagCacheDTO updateCustomerTagCacheDTO = this.updateCustomerTag(tokenDto, draftId);

17
epmet-module/gov-voice/gov-voice-server/src/main/java/com/epmet/utils/ModuleConstant.java

@ -66,22 +66,27 @@ public interface ModuleConstant {
/**
* 草稿未找到异常模板
* */
*/
String SPECIFIED_DRAFT_NOT_FOUNT_EXCEPTION_TEMPLATE = "未找到指定草稿,草稿Id:【%s】";
/**
* 内容审核 封面图片前缀用于标识这个Id是封面图片
* */
*/
String SCAN_COVER_PREFIX = "cover_";
/**
* 内容审核 标题前缀用于标识这个Id是标题
*/
String SCAN_TITLE_PREFIX = "title_";
/**
* 文章站内消息标题
* */
*/
String MSG_TITLE = "您有一条文章【%s】的消息";
/**
* 文章未审核通过 消息内容模版
* */
*/
String MSG_AUDIT_CONTENT = "您好,您发布的【%s】文章%s审核未通过,请重新编辑后发布,谢谢。";
/**
@ -116,11 +121,15 @@ public interface ModuleConstant {
String DRAFT_ID_IS_NULL = "草稿ID不能为空";
String DRAFT_TITLE_CONTENT_AND_COVER = "标题、内容和封面";
String DRAFT_TITLE_AND_COVER = "标题和封面";
String DRAFT_TITLE_AND_CONTENT = "标题和内容";
String DRAFT_CONTENT_AND_COVER = "内容和封面";
String DRAFT_CONTENT = "内容";
String DRAFT_COVER = "封面";
String DRAFT_TITLE = "标题";
String DRAFT_CONTENT_IS_NULL = "文章封面不能为空";

6
epmet-module/gov-voice/gov-voice-server/src/main/resources/db/migration/V0.0.2__addAutoPublish.sql

@ -1,2 +1,6 @@
ALTER TABLE `epmet_gov_voice`.`article`
ADD COLUMN `PUBLISH_WAY` varchar(16) NOT NULL DEFAULT 'autoAudit' COMMENT '发布方式 自动审核后发布:autoAudit;人工确认无误发布(不审核):manualNoAudit' AFTER `TAGS`;
ADD COLUMN `PUBLISH_WAY` varchar(16) NOT NULL DEFAULT 'autoAudit' COMMENT '发布方式 自动审核后发布:autoAudit;人工确认无误发布(不审核):manualNoAudit' AFTER `TAGS`;
ALTER TABLE `epmet_gov_voice`.`draft`
ADD COLUMN `TITLE_AUDIT_STATUS` varchar(32) NULL COMMENT '标题审核状态 通过:pass;失败:fail;审核中:auditing' AFTER `TITLE`;
ALTER TABLE `epmet_gov_voice`.`article`
ADD COLUMN `TITLE_AUDIT_STATUS` varchar(32) NULL COMMENT '标题审核状态 通过:pass;失败:fail;审核中:auditing' AFTER `TITLE`;

12
epmet-module/gov-voice/gov-voice-server/src/main/resources/mapper/DraftDao.xml

@ -155,6 +155,7 @@
SELECT
d.id AS draft_id,
d.TITLE,
d.TITLE_AUDIT_STATUS,
d.PUBLISHER_NAME,
d.PUBLISH_DATE,
0 AS visit_record_count,
@ -185,6 +186,15 @@
update draft set DEL_FLAG='1' where id=#{draftId}
</update>
<update id="updateAuditStatusById">
update draft set STATUS_FLAG =#{statusFlag,jdbcType=VARCHAR} where id=#{draftId,jdbcType=VARCHAR}
update draft
<set>
<if test="titleAuditStatus != null and titleAuditStatus!= ''">
STATUS_FLAG =#{statusFlag,jdbcType=VARCHAR}
</if>
<if test="titleAuditStatus != null and titleAuditStatus!= ''">
TITLE_AUDIT_STATUS = #{titleAuditStatus,jdbcType=VARCHAR}
</if>
</set>
where id=#{draftId,jdbcType=VARCHAR}
</update>
</mapper>

2
epmet-module/oper-customize/oper-customize-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
oper-customize-server:
container_name: oper-customize-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/oper-customize-server:0.3.23
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/oper-customize-server:0.3.24
ports:
- "8089:8089"
network_mode: host # 使用现有网络

2
epmet-module/resi-mine/resi-mine-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
resi-mine-server:
container_name: resi-mine-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-mine-server:0.3.29
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/resi-mine-server:0.3.30
ports:
- "8094:8094"
network_mode: host # 使用现有网络

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

@ -0,0 +1,76 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* 用户基础信息 返回值
* @Auther: zhangyong
* @Date: 2020-07-28 14:40
*/
@Data
public class ResiUserBaseInfoResultDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 用户id
*/
private String userId;
/**
* 手机号(注册手机号)
*/
private String mobile;
/**
* 姓氏
*/
private String surname;
/**
*
*/
private String name;
/**
* 姓名
*/
private String realName;
/**
* 身份证号
*/
private String idNum;
/**
* 性别1男2女0未知
*/
private String gender;
/**
* 街道
*/
private String street;
/**
* 小区名称
*/
private String district;
/**
* 楼栋单元
*/
private String buildingAddress;
/**
* 昵称(目前来源于微信昵称后续系统可支持用户有昵称)
*/
private String nickname;
/**
* 头像目前来源于微信后续系统顾客支持上传头像
*/
private String headImgUrl;
}

2
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/UserBaseInfoResultDTO.java

@ -14,7 +14,7 @@ import java.io.Serializable;
@Data
public class UserBaseInfoResultDTO implements Serializable {
private static final long serialVersionUID = 3124057264557384333L;
@JsonIgnore
private String id;
/**

2
epmet-user/epmet-user-server/deploy/docker-compose-dev.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-user-server:
container_name: epmet-user-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.83
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-user-server:0.3.86
ports:
- "8087:8087"
network_mode: host # 不会创建新的网络

2
epmet-user/epmet-user-server/deploy/docker-compose-test.yml

@ -2,7 +2,7 @@ version: "3.7"
services:
epmet-user-server:
container_name: epmet-user-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-user-server:0.3.81
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-user-server:0.3.86
ports:
- "8087:8087"
network_mode: host # 不会创建新的网络

2
epmet-user/epmet-user-server/pom.xml

@ -2,7 +2,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<version>0.3.83</version>
<version>0.3.86</version>
<parent>
<groupId>com.epmet</groupId>
<artifactId>epmet-user</artifactId>

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

@ -17,7 +17,9 @@
package com.epmet.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.ExcelUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.AssertUtils;
@ -28,6 +30,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup;
import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.form.IssueInitiatorFormDTO;
import com.epmet.dto.result.CustomerUserDetailResultDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.entity.UserBaseInfoEntity;
import com.epmet.excel.UserBaseInfoExcel;
@ -50,7 +53,7 @@ import java.util.Map;
@RestController
@RequestMapping("userbaseinfo")
public class UserBaseInfoController {
@Autowired
private UserBaseInfoService userBaseInfoService;
@ -146,4 +149,17 @@ public class UserBaseInfoController {
public Result<CustomerUserDetailResultDTO> customerUserDetail(@RequestBody IssueInitiatorFormDTO param){
return new Result<CustomerUserDetailResultDTO>().ok(userBaseInfoService.customerUserDetail(param.getUserId()));
}
/**
* 获取用户基础信息
*
* @param tokenDTO
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.ResiUserBaseInfoResultDTO>
* @Author zhangyong
* @Date 15:20 2020-07-28
**/
@PostMapping("selecuserbaseinfo")
public Result<ResiUserBaseInfoResultDTO> selecUserBaseInfo(@LoginUser TokenDto tokenDTO){
return userBaseInfoService.selecUserBaseInfoByUserId(tokenDTO.getUserId());
}
}

2
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java

@ -139,7 +139,7 @@ public class UserController {
* @Date 14:51 2020-07-23
**/
@PostMapping("updateUserBaseAndWxUserInfo")
public Result updateUserBaseAndWxUserInfo(@RequestBody WxUserInfoFormDTO wxUserInfoFormDTO) { ;
public Result updateUserBaseAndWxUserInfo(@RequestBody WxUserInfoFormDTO wxUserInfoFormDTO) {
ValidatorUtils.validateEntity(wxUserInfoFormDTO);
return userService.updateWxUserInfo(wxUserInfoFormDTO);
}

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

@ -18,10 +18,13 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.dto.result.UserWechatResultDTO;
import com.epmet.entity.UserBaseInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 用户基础信息
@ -49,4 +52,14 @@ public interface UserBaseInfoDao extends BaseDao<UserBaseInfoEntity> {
* @Date 2020/7/22 9:46
**/
UserWechatResultDTO selectUserWechatByUserId(String userId);
}
/**
* 获取用户基础信息
*
* @param userId
* @return com.epmet.dto.result.ResiUserBaseInfoResultDTO
* @Author zhangyong
* @Date 15:20 2020-07-28
**/
ResiUserBaseInfoResultDTO selecUserBaseInfoByUserId(@Param("userId") String userId);
}

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

@ -19,8 +19,10 @@ 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.UserBaseInfoDTO;
import com.epmet.dto.result.CustomerUserDetailResultDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.entity.UserBaseInfoEntity;
@ -130,4 +132,14 @@ public interface UserBaseInfoService extends BaseService<UserBaseInfoEntity> {
* @date 2020.07.27 01:34
**/
CustomerUserDetailResultDTO customerUserDetail(String userId);
}
/**
* 获取用户基础信息
*
* @param userId
* @return com.epmet.commons.tools.utils.Result<com.epmet.dto.result.ResiUserBaseInfoResultDTO>
* @Author zhangyong
* @Date 15:20 2020-07-28
**/
Result<ResiUserBaseInfoResultDTO> selecUserBaseInfoByUserId(String userId);
}

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

@ -222,13 +222,15 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl<CustomerStaffDao,
if (null == roleList || roleList.size() == 0) {
return new Result<List<RoleInfoResultDTO>>().error(EpmetErrorCode.SERVER_ERROR.getCode(), EpmetErrorCode.SERVER_ERROR.getMsg());
}
List<RoleInfoResultDTO> staffRoleList = roleList.stream().map(p -> {
RoleInfoResultDTO staffRoleResultDTO = new RoleInfoResultDTO();
staffRoleResultDTO.setRoleId(p.getId());
staffRoleResultDTO.setRoleName(p.getRoleName());
staffRoleResultDTO.setFullTimeOnly(p.getFullTimeOnly());
return staffRoleResultDTO;
}).collect(Collectors.toList());
List<RoleInfoResultDTO> staffRoleList = roleList.stream()
.filter(p -> !RoleKeyConstants.ROLE_KEY_ROOT_MANAGER.equals(p.getRoleKey()))
.map(p -> {
RoleInfoResultDTO staffRoleResultDTO = new RoleInfoResultDTO();
staffRoleResultDTO.setRoleId(p.getId());
staffRoleResultDTO.setRoleName(p.getRoleName());
staffRoleResultDTO.setFullTimeOnly(p.getFullTimeOnly());
return staffRoleResultDTO;
}).collect(Collectors.toList());
return new Result<List<RoleInfoResultDTO>>().ok(staffRoleList);
}

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

@ -194,8 +194,7 @@ public class GridLatestServiceImpl extends BaseServiceImpl<GridLatestDao, GridLa
return allData;
}
allData.forEach(info -> {
if(StringUtils.isBlank(info.getUserName())){
info.setUserName(ModuleConstant.EMPTY_STR);
if(StringUtils.isNotBlank(info.getUserId())){
UserBaseInfoResultDTO cache = userBaseInfoRedis.getUserInfo(info.getUserId());
if(null != cache) {
info.setRegisteredGrid(cache.getRegisteredGridName());

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

@ -32,6 +32,7 @@ import com.epmet.dto.UserBaseInfoDTO;
import com.epmet.dto.UserResiInfoDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.result.CustomerUserDetailResultDTO;
import com.epmet.dto.result.ResiUserBaseInfoResultDTO;
import com.epmet.dto.result.UserBaseInfoResultDTO;
import com.epmet.entity.UserBaseInfoEntity;
import com.epmet.redis.UserBaseInfoRedis;
@ -218,8 +219,10 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl<UserBaseInfoDao, Us
return ;
}
UserBaseInfoResultDTO userBaseInfoResultDTO = baseDao.selectListByUserIdList(baseInfo.getUserId());
baseInfo.setRealName(new StringBuilder(baseInfo.getSurname()).append(baseInfo.getName()).toString());
if(null == userBaseInfoResultDTO || StringUtils.isBlank(userBaseInfoResultDTO.getId())){
if(StringUtils.isNotBlank(baseInfo.getSurname())) {
baseInfo.setRealName(new StringBuilder(baseInfo.getSurname()).append(baseInfo.getName()).toString());
}
if(null != userBaseInfoResultDTO && StringUtils.isNotBlank(userBaseInfoResultDTO.getId())){
//更新
baseInfo.setId(userBaseInfoResultDTO.getId());
updateById(baseInfo);
@ -252,5 +255,8 @@ public class UserBaseInfoServiceImpl extends BaseServiceImpl<UserBaseInfoDao, Us
return null;
}
}
@Override
public Result<ResiUserBaseInfoResultDTO> selecUserBaseInfoByUserId(String userId) {
return new Result<ResiUserBaseInfoResultDTO>().ok(baseDao.selecUserBaseInfoByUserId(userId));
}
}

22
epmet-user/epmet-user-server/src/main/resources/db/migration/V0.0.5__create_userbaseinfo.sql

@ -0,0 +1,22 @@
CREATE TABLE `user_base_info` (
`ID` varchar(64) NOT NULL COMMENT '主键',
`USER_ID` varchar(64) NOT NULL COMMENT '用户id',
`MOBILE` varchar(20) DEFAULT NULL COMMENT '手机号(注册手机号)',
`SURNAME` varchar(32) DEFAULT NULL COMMENT '姓氏',
`NAME` varchar(32) DEFAULT NULL COMMENT '',
`REAL_NAME` varchar(50) DEFAULT NULL COMMENT '姓+名',
`ID_NUM` varchar(50) DEFAULT '' COMMENT '身份证号',
`GENDER` varchar(1) DEFAULT NULL COMMENT '性别(1男2女0未知)',
`STREET` varchar(128) DEFAULT '' COMMENT '街道',
`DISTRICT` varchar(128) DEFAULT '' COMMENT '小区名称',
`BUILDING_ADDRESS` varchar(128) DEFAULT '' COMMENT '楼栋单元',
`NICKNAME` varchar(64) DEFAULT '' COMMENT '昵称(目前来源于微信昵称,后续系统可支持用户有昵称)',
`HEAD_IMG_URL` varchar(1024) DEFAULT '' COMMENT '头像(目前来源于微信,后续系统顾客支持上传头像)',
`DEL_FLAG` int(11) NOT NULL DEFAULT '0' COMMENT '删除标识 0.未删除 1.已删除',
`REVISION` int(11) NOT NULL COMMENT '乐观锁',
`CREATED_BY` varchar(64) NOT NULL COMMENT '创建人',
`CREATED_TIME` datetime NOT NULL COMMENT '创建时间',
`UPDATED_BY` varchar(64) NOT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NOT NULL COMMENT '更新时间',
PRIMARY KEY (`ID`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户基础信息';

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

@ -68,4 +68,24 @@
uw.DEL_FLAG = '0'
AND uw.USER_ID = #{userId}
</select>
</mapper>
<!-- 根据用户id,查询用户基础信息-->
<select id="selecUserBaseInfoByUserId" resultType="com.epmet.dto.result.ResiUserBaseInfoResultDTO">
SELECT
USER_ID userId,
SURNAME surname,
`NAME` `name`,
REAL_NAME realName,
ID_NUM idNum,
GENDER gender,
MOBILE mobile,
STREET street,
DISTRICT district,
BUILDING_ADDRESS buildingAddress,
NICKNAME nickname,
HEAD_IMG_URL headImgUrl
FROM user_base_info
WHERE DEL_FLAG = '0'
AND USER_ID = #{userId}
</select>
</mapper>

1
epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml

@ -103,6 +103,7 @@
user_base_info base on wechat.USER_ID = base.USER_ID
WHERE
wechat.DEL_FLAG = '0'
AND (wechat.NICKNAME IS NOT NULL OR wechat.NICKNAME <![CDATA[ <> ]]> '')
<foreach collection="userIds" item="item" open="AND (" separator=" OR " close=" )">
wechat.USER_ID = #{item}
</foreach>

Loading…
Cancel
Save