瀏覽代碼

feature 积分兑换更新当前用户积分信息

xiahan 1 周之前
父節點
當前提交
97a356edab

+ 4 - 0
qhse-common/src/main/java/com/rongwei/bscommon/system/dao/QhsePointsRecordUserDao.java

@@ -2,6 +2,7 @@ package com.rongwei.bscommon.system.dao;
 
 import com.rongwei.bsentity.domain.QhsePointsRecordUserDo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
 * @author libai
@@ -11,6 +12,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 */
 public interface QhsePointsRecordUserDao extends BaseMapper<QhsePointsRecordUserDo> {
 
+    void  updateCurrentpointAndStatus(@Param("id") String id, @Param("changePoint") int changePoint,
+                                      @Param("modifyuserid") String modifyuserid, @Param("modifyusername")String modifyusername);
+
 }
 
 

+ 18 - 0
qhse-common/src/main/java/com/rongwei/bscommon/system/dao/QhsePointsRedemptionDao.java

@@ -0,0 +1,18 @@
+package com.rongwei.bscommon.system.dao;
+
+import com.rongwei.bsentity.domain.QhsePointsRedemptionDo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+* @author libai
+* @description 针对表【qhse_points_redemption(安全积分-积分兑换明细)】的数据库操作Mapper
+* @createDate 2025-09-04 16:29:35
+* @Entity generator.domain.QhsePointsRedemption
+*/
+public interface QhsePointsRedemptionDao extends BaseMapper<QhsePointsRedemptionDo> {
+
+}
+
+
+
+

+ 1 - 0
qhse-common/src/main/java/com/rongwei/bscommon/system/service/PointService.java

@@ -11,4 +11,5 @@ import java.util.List;
  * @date 2025/09/04
  */
 public interface PointService {
+    R userPointExchange(String id);
 }

+ 13 - 0
qhse-common/src/main/java/com/rongwei/bscommon/system/service/QhsePointsRedemptionService.java

@@ -0,0 +1,13 @@
+package com.rongwei.bscommon.system.service;
+
+import com.rongwei.bsentity.domain.QhsePointsRedemptionDo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+* @author libai
+* @description 针对表【qhse_points_redemption(安全积分-积分兑换明细)】的数据库操作Service
+* @createDate 2025-09-04 16:29:35
+*/
+public interface QhsePointsRedemptionService extends IService<QhsePointsRedemptionDo> {
+
+}

+ 37 - 3
qhse-common/src/main/java/com/rongwei/bscommon/system/service/impl/PointServiceImpl.java

@@ -1,16 +1,18 @@
 package com.rongwei.bscommon.system.service.impl;
 
 import com.rongwei.bscommon.system.service.PointService;
+import com.rongwei.bscommon.system.service.QhsePointsRedemptionService;
+import com.rongwei.bscommon.system.utils.QHSEUtils;
 import com.rongwei.bsentity.domain.QhsePointsRecordUserDo;
+import com.rongwei.bsentity.domain.QhsePointsRedemptionDo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.R;
+import com.rongwei.rwcommon.utils.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-import java.util.stream.Collectors;
-
 /**
  * PointServiceImpl class
  *
@@ -21,4 +23,36 @@ import java.util.stream.Collectors;
 public class PointServiceImpl implements PointService {
     private static final Logger log = LoggerFactory.getLogger(PointServiceImpl.class);
 
+    @Autowired
+    private QhsePointsRedemptionService qhsePointsRedemptionService;
+    @Autowired
+    private QhsePointsRecordUserServiceImpl qhsePointsRecordUserService;
+
+    @Override
+    public R userPointExchange(String id) {
+        if (StringUtils.isBlank(id)) {
+            return R.error("参数异常");
+        }
+        QhsePointsRedemptionDo redemptionDo = qhsePointsRedemptionService.getById(id);
+        if (redemptionDo == null) {
+            return R.error("无法获取兑换记录");
+        }
+        String mainid = redemptionDo.getMainid();
+        if (StringUtils.isBlank(mainid)) {
+            return R.error("无法获取用户积分信息");
+        }
+        QhsePointsRecordUserDo pointsRecordUserDo = qhsePointsRecordUserService.getById(mainid);
+        if (pointsRecordUserDo == null) {
+            log.error("无法根据ID:{}获取到用户积分信息", mainid);
+            return R.error("无法获取用户积分信息");
+        }
+        SysUserVo currentUser = QHSEUtils.getCurrentUser();
+        // 本次兑换使用的积分
+        int usepoints = redemptionDo.getUsepoints() == null ? 0 : redemptionDo.getUsepoints();
+
+        qhsePointsRecordUserService.getBaseMapper().updateCurrentpointAndStatus(pointsRecordUserDo.getId(),
+                -usepoints, currentUser.getId(), currentUser.getName());
+        return R.ok();
+    }
+
 }

+ 24 - 0
qhse-common/src/main/java/com/rongwei/bscommon/system/service/impl/QhsePointsRedemptionServiceImpl.java

@@ -0,0 +1,24 @@
+package com.rongwei.bscommon.system.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.system.dao.QhsePointsRedemptionDao;
+import com.rongwei.bscommon.system.service.QhsePointsRedemptionService;
+import com.rongwei.bsentity.domain.QhsePointsRedemptionDo;
+
+
+import org.springframework.stereotype.Service;
+
+/**
+* @author libai
+* @description 针对表【qhse_points_redemption(安全积分-积分兑换明细)】的数据库操作Service实现
+* @createDate 2025-09-04 16:29:35
+*/
+@Service
+public class QhsePointsRedemptionServiceImpl extends ServiceImpl<QhsePointsRedemptionDao, QhsePointsRedemptionDo>
+    implements QhsePointsRedemptionService {
+
+}
+
+
+
+

+ 22 - 0
qhse-common/src/main/resources/mybatis/system/QhsePointsRecordUserDao.xml

@@ -0,0 +1,22 @@
+<?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.rongwei.bscommon.system.dao.QhsePointsRecordUserDao">
+    <update id="updateCurrentpointAndStatus">
+        update qhse_points_record_user
+        <set>
+            CURRENTPOINT= CURRENTPOINT+ #{changePoint,jdbcType=INTEGER},
+            STATUS=
+            CASE
+            WHEN CURRENTPOINT+ #{changePoint,jdbcType=INTEGER}>=90 THEN '1'
+            WHEN CURRENTPOINT+ #{changePoint,jdbcType=INTEGER} &lt; 80 THEN '3'
+            ELSE '2'
+            END,
+            MODIFYDATE=SYSDATE,
+            MODIFYUSERID=#{modifyuserid},
+            MODIFYUSERNAME=#{modifyusername}
+        </set>
+        <where>
+            ID=#{id}
+        </where>
+    </update>
+</mapper>

+ 2 - 0
qhse-entity/src/main/java/com/rongwei/bsentity/domain/QhsePointsRecordUserDo.java

@@ -2,6 +2,8 @@ package com.rongwei.bsentity.domain;
 
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+
+import java.math.BigDecimal;
 import java.util.Date;
 
 import com.rongwei.rwcommon.base.BaseDo;

+ 84 - 0
qhse-entity/src/main/java/com/rongwei/bsentity/domain/QhsePointsRedemptionDo.java

@@ -0,0 +1,84 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+
+/**
+ * 安全积分-积分兑换明细
+ * @TableName qhse_points_redemption
+ */
+@TableName(value ="qhse_points_redemption")
+@Data
+public class QhsePointsRedemptionDo extends BaseDo {
+    /**
+     * 主键ID
+     */
+    @TableId
+    private String id;
+
+    /**
+     * 租户ID
+     */
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    private String roption;
+
+
+    /**
+     * 当前积分
+     */
+    private BigDecimal currentpoints;
+
+    /**
+     * 可用积分
+     */
+    private BigDecimal availablepoints;
+
+    /**
+     * 兑换的奖励
+     */
+    private String redeemrewards;
+
+    /**
+     * 使用积分
+     */
+    private Integer usepoints;
+
+    /**
+     * 兑换年份
+     */
+    private Integer useyear;
+
+    /**
+     * 兑换时间
+     */
+    private Date userdate;
+
+    /**
+     * 兑换人
+     */
+    private String redeemername;
+
+    /**
+     * 兑换人ID
+     */
+    private String redeemerid;
+
+    /**
+     * 主表ID(积分清单表主键)
+     */
+    private String mainid;
+
+    /**
+     * 兑换人类型(分包商,本工,外协)
+     */
+    private String redeemertype;
+}

+ 11 - 2
qhse-server/src/main/java/com/rongwei/controller/PointController.java

@@ -10,8 +10,6 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.List;
-
 /**
  * PointController class
  *
@@ -25,4 +23,15 @@ public class PointController {
     @Autowired
     private PointServiceImpl pointService;
 
+    /**
+     * 用户积分重置
+     *
+     * @param ids 物资出厂参数
+     * @return 结果
+     */
+    @PostMapping("/user/exchange")
+    public R userPointExchange(@RequestBody String id) {
+        log.info("开始用户积分兑换");
+        return pointService.userPointExchange(id);
+    }
 }