提交 adb6092f 作者: zhenjie

用户积分变更接口

上级 7cb56113
package com.mmc.iuav.user.model.vo.userpoints;
import com.mmc.iuav.group.Update;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* @author: zj
* @Date: 2023/10/13 14:17
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ChangeUserPointVO implements Serializable {
private static final long serialVersionUID = -1481188328848093579L;
@ApiModelProperty(value = "用户id", example = "1")
@NotNull(message = "用户id不能为空", groups = {Update.class})
private Integer userAccountId;
@ApiModelProperty(value = "变动类型", example = "1")
private Integer changeType;
@ApiModelProperty(value = "变动积分, 正加负减", example = "1")
@NotNull(message = "变动积分不能为空", groups = {Update.class})
private Integer changePoint;
}
package com.mmc.iuav.user.model.vo.userpoints;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author: zj
* @Date: 2023/10/13 16:16
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PointTypeVO implements Serializable {
private static final long serialVersionUID = -7296558551308366207L;
private Integer code;
private String message;
}
package com.mmc.iuav.user.controller.userpoints; package com.mmc.iuav.user.controller.userpoints;
import com.mmc.iuav.group.Page; import com.mmc.iuav.group.Page;
import com.mmc.iuav.group.Update;
import com.mmc.iuav.response.ResultBody; import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.controller.BaseController; import com.mmc.iuav.user.controller.BaseController;
import com.mmc.iuav.user.model.dto.dronepilot.PilotCertificationDTO; import com.mmc.iuav.user.model.dto.dronepilot.PilotCertificationDTO;
...@@ -9,6 +10,7 @@ import com.mmc.iuav.user.model.dto.userpoints.UserPointsDetailsDTO; ...@@ -9,6 +10,7 @@ import com.mmc.iuav.user.model.dto.userpoints.UserPointsDetailsDTO;
import com.mmc.iuav.user.model.qo.userpoints.AppPointsDetailsQO; import com.mmc.iuav.user.model.qo.userpoints.AppPointsDetailsQO;
import com.mmc.iuav.user.model.qo.userpoints.UserPointQO; import com.mmc.iuav.user.model.qo.userpoints.UserPointQO;
import com.mmc.iuav.user.model.qo.userpoints.UserPointsDetailsQO; import com.mmc.iuav.user.model.qo.userpoints.UserPointsDetailsQO;
import com.mmc.iuav.user.model.vo.userpoints.ChangeUserPointVO;
import com.mmc.iuav.user.service.userpoints.UserPointsService; import com.mmc.iuav.user.service.userpoints.UserPointsService;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -57,5 +59,19 @@ public class UserPointsController extends BaseController { ...@@ -57,5 +59,19 @@ public class UserPointsController extends BaseController {
return ResultBody.success(userPointsService.appDetailPoint(this.getUserLoginInfoFromRedis(request).getUserAccountId(), param)); return ResultBody.success(userPointsService.appDetailPoint(this.getUserLoginInfoFromRedis(request).getUserAccountId(), param));
} }
@ApiOperation(value = "用户积分变更")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/change")
public ResultBody change(@Validated(value = {Update.class}) @RequestBody ChangeUserPointVO changePoint) {
return userPointsService.change(changePoint);
}
@ApiOperation(value = "积分变更类型")
@ApiResponses({@ApiResponse(code = 200, message = "OK", response = ResultBody.class)})
@PostMapping("/listChangeType")
public ResultBody listChangeType() {
return userPointsService.listChangeType();
}
} }
...@@ -9,7 +9,11 @@ package com.mmc.iuav.user.controller.userpoints.config; ...@@ -9,7 +9,11 @@ package com.mmc.iuav.user.controller.userpoints.config;
public enum UserPointsEnum { public enum UserPointsEnum {
REGISTER(0, "注册"), REGISTER(0, "注册"),
REAL_NAME_AUTHENTICATION(1, "实名认证"), REAL_NAME_AUTHENTICATION(1, "实名认证"),
PILOT_CERTIFICATION(2, "飞手认证"); PILOT_CERTIFICATION(2, "飞手认证"),
TOPIC_REWARD(3, "发布话题奖励"),
SIGN_IN_REWARD(4, "签到"),
OTHER_CHANGE(5, "其他变动"),
USER_USE(6, "使用");
private int code; private int code;
private String message; private String message;
......
package com.mmc.iuav.user.service.userpoints; package com.mmc.iuav.user.service.userpoints;
import com.mmc.iuav.page.PageResult; import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.model.qo.userpoints.AppPointsDetailsQO; import com.mmc.iuav.user.model.qo.userpoints.AppPointsDetailsQO;
import com.mmc.iuav.user.model.qo.userpoints.UserPointQO; import com.mmc.iuav.user.model.qo.userpoints.UserPointQO;
import com.mmc.iuav.user.model.qo.userpoints.UserPointsDetailsQO; import com.mmc.iuav.user.model.qo.userpoints.UserPointsDetailsQO;
import com.mmc.iuav.user.model.vo.userpoints.ChangeUserPointVO;
/** /**
* @Author small * @Author small
...@@ -16,4 +18,8 @@ public interface UserPointsService { ...@@ -16,4 +18,8 @@ public interface UserPointsService {
PageResult detailPoint(UserPointsDetailsQO param); PageResult detailPoint(UserPointsDetailsQO param);
PageResult appDetailPoint(Integer userAccountId, AppPointsDetailsQO param); PageResult appDetailPoint(Integer userAccountId, AppPointsDetailsQO param);
ResultBody change(ChangeUserPointVO changePoint);
ResultBody listChangeType();
} }
package com.mmc.iuav.user.service.userpoints.impl; package com.mmc.iuav.user.service.userpoints.impl;
import com.mmc.iuav.page.PageResult; import com.mmc.iuav.page.PageResult;
import com.mmc.iuav.response.ResultBody;
import com.mmc.iuav.user.controller.userpoints.config.UserPointsEnum;
import com.mmc.iuav.user.dao.userpoints.UserPointsDao; import com.mmc.iuav.user.dao.userpoints.UserPointsDao;
import com.mmc.iuav.user.dao.userpoints.UserPointsDetailsDao; import com.mmc.iuav.user.dao.userpoints.UserPointsDetailsDao;
import com.mmc.iuav.user.entity.userpoints.UserPointsDO; import com.mmc.iuav.user.entity.userpoints.UserPointsDO;
...@@ -10,10 +12,14 @@ import com.mmc.iuav.user.model.dto.userpoints.UserPointsDetailsDTO; ...@@ -10,10 +12,14 @@ import com.mmc.iuav.user.model.dto.userpoints.UserPointsDetailsDTO;
import com.mmc.iuav.user.model.qo.userpoints.AppPointsDetailsQO; import com.mmc.iuav.user.model.qo.userpoints.AppPointsDetailsQO;
import com.mmc.iuav.user.model.qo.userpoints.UserPointQO; import com.mmc.iuav.user.model.qo.userpoints.UserPointQO;
import com.mmc.iuav.user.model.qo.userpoints.UserPointsDetailsQO; import com.mmc.iuav.user.model.qo.userpoints.UserPointsDetailsQO;
import com.mmc.iuav.user.model.vo.userpoints.ChangeUserPointVO;
import com.mmc.iuav.user.model.vo.userpoints.PointTypeVO;
import com.mmc.iuav.user.service.userpoints.UserPointsService; import com.mmc.iuav.user.service.userpoints.UserPointsService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -71,4 +77,33 @@ public class UserPointsServiceImpl implements UserPointsService { ...@@ -71,4 +77,33 @@ public class UserPointsServiceImpl implements UserPointsService {
List<UserPointsDetailsDTO> collect = userPointsDetails.stream().map(UserPointsDetails::buildPoint).collect(Collectors.toList()); List<UserPointsDetailsDTO> collect = userPointsDetails.stream().map(UserPointsDetails::buildPoint).collect(Collectors.toList());
return PageResult.buildPage(pageNo, param.getPageSize(), count, collect); return PageResult.buildPage(pageNo, param.getPageSize(), count, collect);
} }
@Transactional
@Override
public ResultBody change(ChangeUserPointVO changePoint) {
UserPointsDO userPointsDO = userPointsDao.selectUserPoints(changePoint.getUserAccountId());
userPointsDO.setTotalPoints(userPointsDO.getTotalPoints() + changePoint.getChangePoint());
// 修改用户积分
userPointsDao.updatePoints(userPointsDO);
// 添加记录
UserPointsDetails userPointsDetails = new UserPointsDetails();
userPointsDetails.setUserAccountId(changePoint.getUserAccountId());
userPointsDetails.setPoint(changePoint.getChangePoint());
// 根据不同变动
userPointsDetails.setPointSource(UserPointsEnum.match(changePoint.getChangeType()).getMessage());
userPointsDetailsDao.insertPointsDetails(userPointsDetails);
return ResultBody.success();
}
@Override
public ResultBody listChangeType() {
List<PointTypeVO> types = new ArrayList<PointTypeVO>();
for (UserPointsEnum pointsEnum : UserPointsEnum.values()) {
PointTypeVO pointTypeVO = new PointTypeVO();
pointTypeVO.setCode(pointsEnum.getCode());
pointTypeVO.setMessage(pointsEnum.getMessage());
types.add(pointTypeVO);
}
return ResultBody.success(types);
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论