Browse Source

积分埋点 更新redis积分信息+用户审核接口拆分

feature/syp_points
songyunpeng 6 years ago
parent
commit
f717dafaab
  1. 10
      esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/epdc/common/token/dto/TokenDto.java
  2. 5
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/enums/BehaviorEnum.java
  3. 18
      esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml
  4. 41
      esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/jwt/JwtTokenProperties.java
  5. 68
      esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/jwt/JwtTokenUtils.java
  6. 24
      esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/java/com/elink/esua/epdc/mq/PointsModifyConsumer.java
  7. 20
      esua-epdc/epdc-module/epdc-points/epdc-points-server/src/main/resources/application.yml
  8. 2
      esua-epdc/epdc-module/epdc-user/epdc-user-client/src/main/java/com/elink/esua/epdc/dto/UserDTO.java
  9. 11
      esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml
  10. 18
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/UserController.java
  11. 2
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/entity/UserEntity.java
  12. 4
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/application.yml

10
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<UserTagInfo> userTagInfos;
/**
* 用户积分
*/
private Integer points;
/**
* 用户累计积分
*/
private Integer pointsTotle;
}

5
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"),
/**
* 新闻浏览
*/

18
esua-epdc/epdc-module/epdc-points/epdc-points-server/pom.xml

@ -13,6 +13,11 @@
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-common-clienttoken</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-points-client</artifactId>
@ -148,6 +153,10 @@
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.ip></nacos.ip>
<nacos.namespace>fa5bf520-09c1-410c-a876-28e98c0534d3</nacos.namespace>
<!--RocketMQ-->
<rocketmq.name.server>47.104.85.99:9876;114.215.125.123:9876</rocketmq.name.server>
<rocketmq.producer.group>jinshui-pointsGroup</rocketmq.producer.group>
<rocketmq.consumer.points.group>jinshui-pointsGroup</rocketmq.consumer.points.group>
</properties>
</profile>
@ -173,6 +182,10 @@
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.ip>47.104.224.45</nacos.ip>
<nacos.namespace>fa5bf520-09c1-410c-a876-28e98c0534d3</nacos.namespace>
<!--RocketMQ-->
<rocketmq.name.server>47.104.85.99:9876;114.215.125.123:9876</rocketmq.name.server>
<rocketmq.producer.group>jinshui-pointsGroup</rocketmq.producer.group>
<rocketmq.consumer.points.group>jinshui-pointsGroup</rocketmq.consumer.points.group>
</properties>
</profile>
@ -199,6 +212,11 @@
</spring.datasource.druid.url>
<spring.datasource.druid.username>epdc</spring.datasource.druid.username>
<spring.datasource.druid.password>Elink@833066</spring.datasource.druid.password>
<!--RocketMQ-->
<rocketmq.name.server>172.16.0.7:9876;172.16.0.8:9876</rocketmq.name.server>
<rocketmq.producer.group>jinshui-pointsGroup</rocketmq.producer.group>
<rocketmq.consumer.points.group>jinshui-pointsGroup</rocketmq.consumer.points.group>
</properties>
</profile>
</profiles>

41
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;
}
}

68
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.
* <p>
* https://www.renren.io
* <p>
* 版权所有侵权必究
*/
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());
}
}

24
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<MessageExt> {
@Autowired
private PointsBehaviorService pointsBehaviorService;
@Autowired
private PointsLogsService pointsLogsService;
@Autowired
@ -50,6 +56,12 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
@Autowired
private UsersFeignClient usersFeignClient;
@Autowired
private CpUserDetailRedis cpUserDetailRedis;
@Autowired
private JwtTokenProperties jwtTokenProperties;
/**
* 操作类型 加分
@ -170,15 +182,17 @@ public class PointsModifyConsumer implements RocketMQListener<MessageExt> {
//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);

20
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
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

2
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

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

@ -13,6 +13,11 @@
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-commons-points-tools</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-admin-client</artifactId>
@ -146,6 +151,8 @@
<!--RocketMQ-->
<rocketmq.name.server>47.104.85.99:9876;114.215.125.123:9876</rocketmq.name.server>
<rocketmq.consumer.group>jinshui-organizationGroup</rocketmq.consumer.group>
<rocketmq.producer.group>jinshui-pointsGroup</rocketmq.producer.group>
<rocketmq.consumer.points.group>jinshui-pointsGroup</rocketmq.consumer.points.group>
</properties>
</profile>
@ -174,6 +181,8 @@
<!--RocketMQ-->
<rocketmq.name.server>47.104.85.99:9876;114.215.125.123:9876</rocketmq.name.server>
<rocketmq.consumer.group>jinshui-organizationGroup</rocketmq.consumer.group>
<rocketmq.producer.group>jinshui-pointsGroup</rocketmq.producer.group>
<rocketmq.consumer.points.group>jinshui-pointsGroup</rocketmq.consumer.points.group>
</properties>
</profile>
@ -206,6 +215,8 @@
<!--RocketMQ-->
<rocketmq.name.server>172.16.0.7:9876;172.16.0.8:9876</rocketmq.name.server>
<rocketmq.consumer.group>jinshui-organizationGroup</rocketmq.consumer.group>
<rocketmq.producer.group>jinshui-pointsGroup</rocketmq.producer.group>
<rocketmq.consumer.points.group>jinshui-pointsGroup</rocketmq.consumer.points.group>
</properties>
</profile>
</profiles>

18
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) {
//效验数据

2
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;
/**

4
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@

Loading…
Cancel
Save