diff --git a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/TokenDto.java b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/TokenDto.java index cd9fdaa9..bfca7046 100644 --- a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/TokenDto.java +++ b/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/TokenDto.java @@ -56,4 +56,14 @@ public class TokenDto implements Serializable { * 用户标签信息列表 */ private List userTagInfos; + + /** + * 用户积分 + */ + private Integer points; + + /** + * 用户累计积分 + */ + private Integer pointsTotle; } diff --git a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/BehaviorEnum.java b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/BehaviorEnum.java index 012b3df2..c6caf0b0 100644 --- a/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/BehaviorEnum.java +++ b/esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/BehaviorEnum.java @@ -26,6 +26,11 @@ public enum BehaviorEnum { */ PERFECT_ENTERPRISE_INFO("perfect_enterprise_info"), + /** + * 居民审核通过 + */ + RESIDENT_AUDIT_PASS("resident_audit_pass"), + /** * 新闻浏览 */ diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml b/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml index 27ccdc29..b31753af 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml @@ -13,6 +13,11 @@ jar + + com.esua.epdc + epdc-common-clienttoken + 1.0.0 + com.esua.epdc epdc-points-client @@ -148,6 +153,10 @@ 47.104.224.45:8848 fa5bf520-09c1-410c-a876-28e98c0534d3 + + 47.104.85.99:9876;114.215.125.123:9876 + jinshui-pointsGroup + jinshui-pointsGroup @@ -173,6 +182,10 @@ 47.104.224.45:8848 47.104.224.45 fa5bf520-09c1-410c-a876-28e98c0534d3 + + 47.104.85.99:9876;114.215.125.123:9876 + jinshui-pointsGroup + jinshui-pointsGroup @@ -199,6 +212,11 @@ epdc Elink@833066 + + + 172.16.0.7:9876;172.16.0.8:9876 + jinshui-pointsGroup + jinshui-pointsGroup diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/jwt/JwtTokenProperties.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/jwt/JwtTokenProperties.java new file mode 100644 index 00000000..3e938f90 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/jwt/JwtTokenProperties.java @@ -0,0 +1,41 @@ +/** + * Copyright (c) 2018 人人开源 All rights reserved. + * + * https://www.renren.io + * + * 版权所有,侵权必究! + */ + +package com.elink.esua.epdc.jwt; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * Jwt + * + * @author Mark sunlightcs@gmail.com + * @since 1.0.0 + */ +@Configuration +@ConfigurationProperties(prefix = "jwt.token") +public class JwtTokenProperties { + private String secret; + private int expire; + + public String getSecret() { + return secret; + } + + public void setSecret(String secret) { + this.secret = secret; + } + + public int getExpire() { + return expire; + } + + public void setExpire(int expire) { + this.expire = expire; + } +} diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/jwt/JwtTokenUtils.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/jwt/JwtTokenUtils.java new file mode 100644 index 00000000..736be6d3 --- /dev/null +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/jwt/JwtTokenUtils.java @@ -0,0 +1,68 @@ +/** + * Copyright (c) 2018 人人开源 All rights reserved. + *

+ * https://www.renren.io + *

+ * 版权所有,侵权必究! + */ + +package com.elink.esua.epdc.jwt; + +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import org.joda.time.DateTime; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * Jwt工具类 + * + * @author Mark sunlightcs@gmail.com + * @since 1.0.0 + */ +@Component +public class JwtTokenUtils { + private static final Logger logger = LoggerFactory.getLogger(JwtTokenUtils.class); + + @Autowired + private JwtTokenProperties jwtProperties; + + /** + * 生成jwt token + */ + public String generateToken(String userId) { + return Jwts.builder() + .setHeaderParam("typ", "JWT") + .setSubject(userId) + .setIssuedAt(new Date()) + .setExpiration(DateTime.now().plusSeconds(jwtProperties.getExpire()).toDate()) + .signWith(SignatureAlgorithm.HS512, jwtProperties.getSecret()) + .compact(); + } + + public Claims getClaimByToken(String token) { + try { + return Jwts.parser() + .setSigningKey(jwtProperties.getSecret()) + .parseClaimsJws(token) + .getBody(); + } catch (Exception e) { + logger.debug("validate is token error, token = " + token, e); + return null; + } + } + + /** + * token是否过期 + * + * @return true:过期 + */ + public boolean isTokenExpired(Date expiration) { + return expiration.before(new Date()); + } +} diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java index 564cedc5..b9e15ce4 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java @@ -1,7 +1,12 @@ package com.elink.esua.epdc.mq; import com.alibaba.fastjson.JSONObject; +import com.elink.esua.epdc.common.token.dto.TokenDto; +import com.elink.esua.epdc.common.token.util.CpUserDetailRedis; +import com.elink.esua.epdc.commons.tools.constant.Constant; import com.elink.esua.epdc.commons.tools.constant.RocketMqConstant; +import com.elink.esua.epdc.commons.tools.exception.ErrorCode; +import com.elink.esua.epdc.commons.tools.exception.RenException; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.DateUtils; import com.elink.esua.epdc.commons.tools.utils.Result; @@ -13,10 +18,13 @@ import com.elink.esua.epdc.dto.result.PointsLogsSumResultDTO; import com.elink.esua.epdc.dto.result.PointsRuleResultDTO; import com.elink.esua.epdc.entity.PointsLogsEntity; import com.elink.esua.epdc.feign.UsersFeignClient; +import com.elink.esua.epdc.jwt.JwtTokenProperties; +import com.elink.esua.epdc.jwt.JwtTokenUtils; import com.elink.esua.epdc.mq.dto.BehaviorDto; import com.elink.esua.epdc.service.PointsBehaviorService; import com.elink.esua.epdc.service.PointsLogsService; import com.elink.esua.epdc.service.PointsRuleService; +import io.jsonwebtoken.Claims; import io.netty.util.internal.StringUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -41,8 +49,6 @@ import java.util.List; @RocketMQMessageListener(topic = RocketMqConstant.MQ_TOPIC_POINTS, consumerGroup = "${rocketmq.consumer.points-group}", messageModel = MessageModel.BROADCASTING) public class PointsModifyConsumer implements RocketMQListener { - @Autowired - private PointsBehaviorService pointsBehaviorService; @Autowired private PointsLogsService pointsLogsService; @Autowired @@ -50,6 +56,12 @@ public class PointsModifyConsumer implements RocketMQListener { @Autowired private UsersFeignClient usersFeignClient; + @Autowired + private CpUserDetailRedis cpUserDetailRedis; + @Autowired + private JwtTokenProperties jwtTokenProperties; + + /** * 操作类型 加分 @@ -170,15 +182,17 @@ public class PointsModifyConsumer implements RocketMQListener { //2.更新用户积分分数 if (OPERATION_TYPE_ADD.equals(pointsRuleResultDTO.getOperationType())) { userDTO.setPoints(userDTO.getPoints() + pointsRuleResultDTO.getPoints()); - userDTO.setPoints_totle(userDTO.getPoints_totle() == null ? 0 : userDTO.getPoints_totle() + pointsRuleResultDTO.getPoints()); + userDTO.setPointsTotle(userDTO.getPointsTotle() == null ? 0 : userDTO.getPointsTotle() + pointsRuleResultDTO.getPoints()); } else if (OPERATION_TYPE_SUB.equals(pointsRuleResultDTO.getOperationType())) { userDTO.setPoints(userDTO.getPoints() - pointsRuleResultDTO.getPoints()); } //3.更新数据库用户积分 usersFeignClient.updateUser(userDTO); //4.更新redis用户积分情况 - - + TokenDto tokenDto = ConvertUtils.sourceToTarget(userDTO, TokenDto.class); + tokenDto.setUserId(userDTO.getId()); + int expire = jwtTokenProperties.getExpire(); + cpUserDetailRedis.set(tokenDto, expire); //更新用户的积分 -- 结束 //添加操作日志 -- 开始 addRuleLog(pointsRuleResultDTO, dto, pointsLogsSumResultDTO, pointsLogsFormDTO, userDTO); diff --git a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/application.yml index c150cf41..ddc89ff2 100644 --- a/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/application.yml +++ b/esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/application.yml @@ -87,4 +87,22 @@ mybatis-plus: cache-enabled: false call-setters-on-nulls: true jdbc-type-for-null: 'null' - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl \ No newline at end of file + + +rocketmq: + name-server: @rocketmq.name.server@ + producer: + group: @rocketmq.producer.group@ + consumer: + points-group: @rocketmq.consumer.points.group@ + + +token: + expire: 21600 + +jwt: + token: + #秘钥 + secret: 7016867071f0ebf1c46f123eaaf4b9d6[elink.epdc] + #token有效时长,默认7天,单位秒 + expire: 604800 \ No newline at end of file diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java index a5d7ee97..b611a5b6 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java @@ -209,7 +209,7 @@ public class UserDTO implements Serializable { /** * 用户累计积分 */ - private Integer points_totle; + private Integer pointsTotle; /** * 邀请人ID diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml index f2430c4a..c688ddf6 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml @@ -13,6 +13,11 @@ jar + + com.esua.epdc + epdc-commons-points-tools + 1.0.0 + com.esua.epdc epdc-admin-client @@ -146,6 +151,8 @@ 47.104.85.99:9876;114.215.125.123:9876 jinshui-organizationGroup + jinshui-pointsGroup + jinshui-pointsGroup @@ -174,6 +181,8 @@ 47.104.85.99:9876;114.215.125.123:9876 jinshui-organizationGroup + jinshui-pointsGroup + jinshui-pointsGroup @@ -206,6 +215,8 @@ 172.16.0.7:9876;172.16.0.8:9876 jinshui-organizationGroup + jinshui-pointsGroup + jinshui-pointsGroup diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java index 83685e4c..95368398 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java @@ -18,6 +18,7 @@ package com.elink.esua.epdc.controller; import com.elink.esua.epdc.commons.mybatis.annotation.DataFilter; +import com.elink.esua.epdc.commons.tools.enums.BehaviorEnum; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; import com.elink.esua.epdc.commons.tools.utils.Result; @@ -30,6 +31,7 @@ import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.epdc.form.EpdcUserPointsFormDTO; import com.elink.esua.epdc.enums.AppUserStatesEnum; import com.elink.esua.epdc.excel.UserExcel; +import com.elink.esua.epdc.pointcommons.tools.annotation.RecordUserBehavior; import com.elink.esua.epdc.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -102,6 +104,22 @@ public class UserController { return new Result(); } + /** + * 审核 - 通过 + * + * @param dto + * @return + */ + @PostMapping("auditPass") + @RecordUserBehavior(behavior = BehaviorEnum.RESIDENT_AUDIT_PASS,referenceId = "#{dto.getId}",userId = "#{dto.getId}") + public Result auditPass(@RequestBody UserDTO dto) { + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + + userService.audit(dto); + + return new Result(); + } @DeleteMapping public Result delete(@RequestBody String[] ids) { //效验数据 diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java index 4dda0de3..faedee3a 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java @@ -206,7 +206,7 @@ public class UserEntity extends BaseEpdcEntity { /** * 用户累计积分 */ - private Integer points_totle; + private Integer pointsTotle; /** diff --git a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/application.yml b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/application.yml index dce7bde2..7d33801b 100644 --- a/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/application.yml +++ b/esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/application.yml @@ -77,8 +77,12 @@ mybatis-plus: cache-enabled: false call-setters-on-nulls: true jdbc-type-for-null: 'null' + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl rocketmq: name-server: @rocketmq.name.server@ + producer: + group: @rocketmq.producer.group@ consumer: group: @rocketmq.consumer.group@ + points-group: @rocketmq.consumer.points.group@