Browse Source

积分相关接口修改,用户缓存修改

master
wangchao 5 years ago
parent
commit
9160b7eef1
  1. 4
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointVerificationFormDTO.java
  2. 4
      epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/WorkPointVerificationFormDTO.java
  3. 18
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/AdjustmentController.java
  4. 28
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ExchangeController.java
  5. 2
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointVerificationLogDao.java
  6. 19
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointVerificationLogServiceImpl.java
  7. 26
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointStatisticalDailyServiceImpl.java
  8. 27
      epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointTotalServiceImpl.java
  9. 56
      epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointStatisticalDailyDao.xml
  10. 4
      epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java
  11. 3
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GridLatestServiceImpl.java
  12. 1
      epmet-user/epmet-user-server/src/main/resources/mapper/UserWechatDao.xml

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

18
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,20 @@ 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());
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/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);
}

19
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);

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();
}

27
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();
}

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

4
epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java

@ -24,8 +24,8 @@ import java.util.List;
* @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:09
*/
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class, url = "localhost:8087")
//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class)
//@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class, url = "localhost:8087")
@FeignClient(name = ServiceConstant.EPMET_USER_SERVER, fallback = EpmetUserOpenFeignClientFallback.class)
public interface EpmetUserOpenFeignClient {
/**

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());

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