guomengjiao před 4 měsíci
rodič
revize
efe3cd643f

+ 17 - 0
ruoyi-api/src/main/java/com/ruoyi/api/controller/shop/ApiBusinessIntegralVerifierController.java

@@ -3,12 +3,15 @@ package com.ruoyi.api.controller.shop;
 import com.ruoyi.api.controller.common.AbstractApiController;
 import com.ruoyi.api.controller.common.AbstractApiController;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.FilePathSplicingType;
 import com.ruoyi.common.enums.FilePathSplicingType;
 import com.ruoyi.common.filepathsplicing.FilePathSplicing;
 import com.ruoyi.common.filepathsplicing.FilePathSplicing;
 import com.ruoyi.common.utils.redis.RedisUtils;
 import com.ruoyi.common.utils.redis.RedisUtils;
 import com.ruoyi.shop.business.domain.bo.UserBusinessVerifierIntegralBo;
 import com.ruoyi.shop.business.domain.bo.UserBusinessVerifierIntegralBo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralStatisticsVo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralStatisticsVo;
+import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralVo;
 import com.ruoyi.shop.business.service.IUserBusinessRoleService;
 import com.ruoyi.shop.business.service.IUserBusinessRoleService;
 import com.ruoyi.user.domain.vo.UserVo;
 import com.ruoyi.user.domain.vo.UserVo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.Api;
@@ -67,4 +70,18 @@ public class ApiBusinessIntegralVerifierController extends AbstractApiController
         Long businessId = getBusinessByUserId(userId, true);
         Long businessId = getBusinessByUserId(userId, true);
         return R.ok(userBusinessRoleService.queryVerifyStatistics(businessId));
         return R.ok(userBusinessRoleService.queryVerifyStatistics(businessId));
     }
     }
+
+    /**
+     * 分页查询核销记录
+     */
+    @FilePathSplicing(type = FilePathSplicingType.RESPONSE)
+    @ApiOperation("分页查询核销记录")
+    @GetMapping("/pageVerifyRecord")
+    public TableDataInfo<UserBusinessVerifierIntegralVo> pageVerifyRecord(UserBusinessVerifierIntegralBo bo, PageQuery pageQuery) {
+        Long userId = getUserId(true);
+        Long businessId = getBusinessByUserId(userId, true);
+        bo.setBusinessId(businessId);
+        return userBusinessRoleService.pageVerifyRecord(bo, pageQuery);
+    }
+
 }
 }

+ 23 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/business/domain/bo/UserBusinessVerifierIntegralBo.java

@@ -6,6 +6,7 @@ import lombok.Data;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.Date;
 
 
 @Data
 @Data
 public class UserBusinessVerifierIntegralBo implements Serializable {
 public class UserBusinessVerifierIntegralBo implements Serializable {
@@ -32,4 +33,26 @@ public class UserBusinessVerifierIntegralBo implements Serializable {
     private Long businessId;
     private Long businessId;
 
 
     private Long verifierId;
     private Long verifierId;
+
+    /**
+     * 数据来源
+     */
+    private Integer sourceType;
+
+    /**
+     * 积分类型:0 支出  1 收入
+     */
+    private Integer billType;
+
+    /**
+     * 开始时间
+     */
+    @ApiModelProperty("开始时间")
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    @ApiModelProperty("结束时间")
+    private Date endTime;
 }
 }

+ 0 - 21
ruoyi-shop/src/main/java/com/ruoyi/shop/business/domain/bo/UserBusinessVerifierIntegralStatisticsBo.java

@@ -1,21 +0,0 @@
-package com.ruoyi.shop.business.domain.bo;
-
-import lombok.Data;
-
-import java.io.Serializable;
-
-@Data
-public class UserBusinessVerifierIntegralStatisticsBo implements Serializable {
-    private static final long serialVersionUID = 1L;
-
-    private Long businessId;
-    /**
-     * 数据来源
-     */
-    private Integer sourceType;
-
-    /**
-     * 积分类型:0 支出  1 收入
-     */
-    private Integer billType;
-}

+ 61 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/business/domain/vo/UserBusinessVerifierIntegralVo.java

@@ -0,0 +1,61 @@
+package com.ruoyi.shop.business.domain.vo;
+
+import com.ruoyi.common.filepathsplicing.FilePathValue;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class UserBusinessVerifierIntegralVo implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 用户手机号
+     */
+    @ApiModelProperty(value = "用户手机号", required = true)
+    private String userMobile;
+
+    /**
+     * 用户名称
+     */
+    @ApiModelProperty("用户名称")
+    private String userName;
+
+    /**
+     * 头像
+     */
+    @FilePathValue
+    @ApiModelProperty("头像")
+    private String headPhoto;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    /**
+     * 积分
+     */
+    @ApiModelProperty("积分")
+    private BigDecimal integral;
+
+    /**
+     * 核销人
+     */
+    private Long verifierId;
+
+    /**
+     * 核销人
+     */
+    @ApiModelProperty("核销人")
+    private String verifierName;
+}

+ 6 - 2
ruoyi-shop/src/main/java/com/ruoyi/shop/business/mapper/UserBusinessRoleMapper.java

@@ -1,9 +1,11 @@
 package com.ruoyi.shop.business.mapper;
 package com.ruoyi.shop.business.mapper;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 import com.ruoyi.shop.business.domain.UserBusinessRole;
 import com.ruoyi.shop.business.domain.UserBusinessRole;
-import com.ruoyi.shop.business.domain.bo.UserBusinessVerifierIntegralStatisticsBo;
+import com.ruoyi.shop.business.domain.bo.UserBusinessVerifierIntegralBo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessRoleVo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessRoleVo;
+import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralVo;
 import com.ruoyi.shop.order.domain.bo.BusinessCountBo;
 import com.ruoyi.shop.order.domain.bo.BusinessCountBo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -21,5 +23,7 @@ public interface UserBusinessRoleMapper extends BaseMapperPlus<UserBusinessRoleM
 
 
     Integer selectCustomCount(@Param("bo") BusinessCountBo bo);
     Integer selectCustomCount(@Param("bo") BusinessCountBo bo);
 
 
-    BigDecimal queryVerifyStatistics(@Param("bo") UserBusinessVerifierIntegralStatisticsBo bo);
+    BigDecimal queryVerifyStatistics(@Param("bo") UserBusinessVerifierIntegralBo bo);
+
+    Page<UserBusinessVerifierIntegralVo> pageVerifyRecord(@Param("bo") UserBusinessVerifierIntegralBo bo, @Param("page") Page<Object> build);
 }
 }

+ 3 - 0
ruoyi-shop/src/main/java/com/ruoyi/shop/business/service/IUserBusinessRoleService.java

@@ -8,6 +8,7 @@ import com.ruoyi.shop.business.domain.bo.UserBusinessRoleBo;
 import com.ruoyi.shop.business.domain.bo.UserBusinessVerifierIntegralBo;
 import com.ruoyi.shop.business.domain.bo.UserBusinessVerifierIntegralBo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessRoleVo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessRoleVo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralStatisticsVo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralStatisticsVo;
+import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralVo;
 import com.ruoyi.shop.order.domain.bo.BusinessCountBo;
 import com.ruoyi.shop.order.domain.bo.BusinessCountBo;
 import com.ruoyi.user.domain.vo.UserVo;
 import com.ruoyi.user.domain.vo.UserVo;
 
 
@@ -124,4 +125,6 @@ public interface IUserBusinessRoleService {
     void verify(UserBusinessVerifierIntegralBo bo);
     void verify(UserBusinessVerifierIntegralBo bo);
 
 
     UserBusinessVerifierIntegralStatisticsVo queryVerifyStatistics(Long businessId);
     UserBusinessVerifierIntegralStatisticsVo queryVerifyStatistics(Long businessId);
+
+    TableDataInfo<UserBusinessVerifierIntegralVo> pageVerifyRecord(UserBusinessVerifierIntegralBo bo, PageQuery pageQuery);
 }
 }

+ 39 - 2
ruoyi-shop/src/main/java/com/ruoyi/shop/business/service/impl/UserBusinessRoleServiceImpl.java

@@ -20,14 +20,20 @@ import com.ruoyi.common.utils.BeanCopyUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.redis.RedisUtils;
 import com.ruoyi.common.utils.redis.RedisUtils;
 import com.ruoyi.shop.business.domain.UserBusinessRole;
 import com.ruoyi.shop.business.domain.UserBusinessRole;
-import com.ruoyi.shop.business.domain.bo.*;
+import com.ruoyi.shop.business.domain.bo.UserBusinessChangeIntegralBo;
+import com.ruoyi.shop.business.domain.bo.UserBusinessIntegralRecordBo;
+import com.ruoyi.shop.business.domain.bo.UserBusinessRoleBo;
+import com.ruoyi.shop.business.domain.bo.UserBusinessVerifierIntegralBo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessRoleVo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessRoleVo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralStatisticsVo;
 import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralStatisticsVo;
+import com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralVo;
 import com.ruoyi.shop.business.exception.UserBusinessRoleExceptionEnum;
 import com.ruoyi.shop.business.exception.UserBusinessRoleExceptionEnum;
 import com.ruoyi.shop.business.mapper.UserBusinessRoleMapper;
 import com.ruoyi.shop.business.mapper.UserBusinessRoleMapper;
 import com.ruoyi.shop.business.service.IUserBusinessIntegralRecordService;
 import com.ruoyi.shop.business.service.IUserBusinessIntegralRecordService;
 import com.ruoyi.shop.business.service.IUserBusinessRoleService;
 import com.ruoyi.shop.business.service.IUserBusinessRoleService;
 import com.ruoyi.shop.order.domain.bo.BusinessCountBo;
 import com.ruoyi.shop.order.domain.bo.BusinessCountBo;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.user.domain.User;
 import com.ruoyi.user.domain.vo.UserVo;
 import com.ruoyi.user.domain.vo.UserVo;
 import com.ruoyi.user.enums.IntegralBillType;
 import com.ruoyi.user.enums.IntegralBillType;
 import com.ruoyi.user.enums.IntegralSourceType;
 import com.ruoyi.user.enums.IntegralSourceType;
@@ -58,6 +64,7 @@ public class UserBusinessRoleServiceImpl implements IUserBusinessRoleService {
     private final UserBusinessRoleMapper baseMapper;
     private final UserBusinessRoleMapper baseMapper;
     private final IBusinessUserRoleConfigService businessUserRoleConfigService;
     private final IBusinessUserRoleConfigService businessUserRoleConfigService;
     private final IUserBusinessIntegralRecordService userBusinessIntegralRecordService;
     private final IUserBusinessIntegralRecordService userBusinessIntegralRecordService;
+    private final ISysUserService sysUserService;
     @Lazy
     @Lazy
     @Resource
     @Resource
     private IBusinessService businessService;
     private IBusinessService businessService;
@@ -358,13 +365,43 @@ public class UserBusinessRoleServiceImpl implements IUserBusinessRoleService {
     public UserBusinessVerifierIntegralStatisticsVo queryVerifyStatistics(Long businessId) {
     public UserBusinessVerifierIntegralStatisticsVo queryVerifyStatistics(Long businessId) {
         UserBusinessVerifierIntegralStatisticsVo vo = new UserBusinessVerifierIntegralStatisticsVo();
         UserBusinessVerifierIntegralStatisticsVo vo = new UserBusinessVerifierIntegralStatisticsVo();
 
 
-        UserBusinessVerifierIntegralStatisticsBo bo = new UserBusinessVerifierIntegralStatisticsBo();
+        UserBusinessVerifierIntegralBo bo = new UserBusinessVerifierIntegralBo();
         bo.setBusinessId(businessId);
         bo.setBusinessId(businessId);
         bo.setBillType(IntegralBillType.OUTER.getCode());
         bo.setBillType(IntegralBillType.OUTER.getCode());
         bo.setSourceType(IntegralSourceType.INTEGRAL_VERIFY.getCode());
         bo.setSourceType(IntegralSourceType.INTEGRAL_VERIFY.getCode());
         //累计核销积分
         //累计核销积分
         vo.setTotalVerifyIntegral(baseMapper.queryVerifyStatistics(bo));
         vo.setTotalVerifyIntegral(baseMapper.queryVerifyStatistics(bo));
+        Date now = new Date();
+        //今日核销积分
+        bo.setStartTime(DateUtil.beginOfDay(now));
+        bo.setEndTime(DateUtil.endOfDay(now));
+        vo.setTodayVerifyIntegral(baseMapper.queryVerifyStatistics(bo));
+        //本周核销积分
+        bo.setStartTime(DateUtil.beginOfWeek(now));
+        bo.setEndTime(DateUtil.endOfWeek(now));
+        vo.setWeekVerifyIntegral(baseMapper.queryVerifyStatistics(bo));
         return vo;
         return vo;
     }
     }
 
 
+    @Override
+    public TableDataInfo<UserBusinessVerifierIntegralVo> pageVerifyRecord(UserBusinessVerifierIntegralBo bo, PageQuery pageQuery) {
+        bo.setBillType(IntegralBillType.OUTER.getCode());
+        bo.setSourceType(IntegralSourceType.INTEGRAL_VERIFY.getCode());
+        Page<UserBusinessVerifierIntegralVo> result = baseMapper.pageVerifyRecord(bo, pageQuery.build());
+        result.setRecords(convertVerifyList(result.getRecords()));
+        return TableDataInfo.build(result);
+    }
+
+    private List<UserBusinessVerifierIntegralVo> convertVerifyList(List<UserBusinessVerifierIntegralVo> voList) {
+        return voList.stream().map(vo -> {
+            User user = userService.loadByIdForLock(vo.getUserId(), false);
+            if (ObjectUtil.isNotNull(user)) {
+                vo.setUserName(user.getNickname());
+                vo.setUserMobile(user.getMobile());
+                vo.setHeadPhoto(user.getHeadPhoto());
+            }
+            vo.setVerifierName(sysUserService.selectNameById(vo.getVerifierId()));
+            return vo;
+        }).collect(Collectors.toList());
+    }
 }
 }

+ 23 - 4
ruoyi-shop/src/main/resources/mapper/business/UserBusinessRoleMapper.xml

@@ -39,10 +39,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
     </select>
 
 
     <select id="queryVerifyStatistics" resultType="java.math.BigDecimal">
     <select id="queryVerifyStatistics" resultType="java.math.BigDecimal">
-        select sum(value) from tb_user_business_role r
-        join tb_user_business_integral_record i on r.id = i.business_role_id
-        where r.business_id = #{bo.businessId} and i.bill_type = #{bo.billType}
-        and i.source_type = #{bo.sourceType}
+        select sum(value) from tb_user_business_integral_record i
+        join tb_user_business_role r on r.id = i.business_role_id
+        <include refid="whereVerify"/>
+    </select>
+
+    <select id="pageVerifyRecord"
+            resultType="com.ruoyi.shop.business.domain.vo.UserBusinessVerifierIntegralVo">
+        select i.user_id, i.create_time, i.value integral, i.source_id verifierId from tb_user_business_integral_record i
+        join tb_user_business_role r on r.id = i.business_role_id
+        <include refid="whereVerify"/>
+        order by i.create_time desc
     </select>
     </select>
 
 
+    <sql id="whereVerify">
+        where r.business_id = #{bo.businessId}
+        and i.bill_type = #{bo.billType}
+        and i.source_type = #{bo.sourceType}
+        <if test="bo.startTime!=null">
+            and i.create_time &gt;= #{bo.startTime}
+        </if>
+        <if test="bo.endTime!=null">
+            and i.create_time &lt;= #{bo.endTime}
+        </if>
+    </sql>
+
 </mapper>
 </mapper>

+ 2 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java

@@ -209,4 +209,6 @@ public interface ISysUserService {
 
 
 
 
     SysUser loadById(Long id, boolean b);
     SysUser loadById(Long id, boolean b);
+
+    String selectNameById(Long userId);
 }
 }

+ 6 - 0
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java

@@ -574,4 +574,10 @@ public class SysUserServiceImpl implements ISysUserService {
         return sysUser;
         return sysUser;
     }
     }
 
 
+    @Override
+    public String selectNameById(Long userId) {
+        SysUser sysUser = baseMapper.selectById(userId);
+        return ObjectUtil.isNotNull(sysUser) ? sysUser.getNickName() : null;
+    }
+
 }
 }