phpcjl
2024-12-16 bbccdee143c85c0a5cc3522ba79445d10e4236b7
用户积分统计
9个文件已修改
1个文件已添加
146 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/MyShoppingCartVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Goods.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserPointService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopPointService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopPointStatistics.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/MyShoppingCartVo.java
@@ -40,7 +40,7 @@
    @ApiModelProperty("积分支付")
    private Boolean pointPayment;
    @ApiModelProperty("配送方式(1=自提,2=快递)")
    private Integer distributionMode;
    private String distributionMode;
    /**
     * 可获得消费积分
     */
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
@@ -63,7 +63,7 @@
    private BigDecimal paymentAmount;
    @ApiModelProperty(value = "配送方式(1=自提,2=快递)")
    private Integer distributionMode;
    private String distributionMode;
    @ApiModelProperty(value = "门店名称")
    private String shopName;
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Goods.java
@@ -47,9 +47,9 @@
    @TableField("purchase_limit")
    private Integer purchaseLimit;
    @ApiModelProperty(value = "配送方式(1=自提,2=快递)")
    @ApiModelProperty(value = "配送方式(1=自提,2=快递,1,2 = 自提+快递)")
    @TableField("distribution_mode")
    private Integer distributionMode;
    private String distributionMode;
    @ApiModelProperty(value = "指定门店(1=指定,2=所有)")
    @TableField("appoint_store")
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
@@ -2,10 +2,10 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.account.mapper.UserPointMapper;
import com.ruoyi.account.service.AppUserService;
import com.ruoyi.account.service.UserPointService;
import com.ruoyi.account.vo.UserPointDetailVO;
@@ -17,14 +17,9 @@
import com.ruoyi.common.core.web.page.TableDataInfo;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.model.LoginUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
@@ -37,8 +32,6 @@
import java.time.LocalTime;
import java.time.YearMonth;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
@@ -135,19 +128,11 @@
     */
    @GetMapping("/list")
    @ApiOperation(value = "积分变更记录", tags = "管理后台-财务统计-用户积分统计")
    public R<Page<UserPoint>> list(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("大小") Integer pageSize, UserPoint userPoint) {
        List<String> userIds = appUserService.listObjs(new LambdaQueryWrapper<AppUser>()
                .select(AppUser::getId)
                .eq(AppUser::getPhone, userPoint.getPhone())
                .like(AppUser::getName, userPoint.getUserName()), String::valueOf);
        Page<UserPoint> page = userPointService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper<UserPoint>()
                .in(!CollectionUtils.isEmpty(userIds), UserPoint::getAppUserId, userIds)
                .eq(UserPoint::getType, userPoint.getType())
                .between(UserPoint::getCreateTime, userPoint.getStartTime(), userPoint.getEndTime())
                .orderByDesc(UserPoint::getCreateTime));
        return R.ok(page);
    public R<IPage<UserPoint>> list(@ApiParam("页码") @RequestParam Integer pageNum, @ApiParam("大小") Integer pageSize, UserPoint userPoint) {
        IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(pageNum, pageSize), userPoint);
        return R.ok(userPointPage);
    }
    /**
     * 导出
@@ -155,18 +140,9 @@
    @GetMapping("/export")
    @ApiOperation(value = "积分变更记录导出", tags = "管理后台-财务统计-用户积分统计")
    public void export(HttpServletResponse response, UserPoint userPoint) {
        List<String> userIds = appUserService.listObjs(new LambdaQueryWrapper<AppUser>()
                .select(AppUser::getId)
                .eq(AppUser::getPhone, userPoint.getPhone())
                .like(AppUser::getName, userPoint.getUserName()), String::valueOf);
        List<UserPoint> userPointList = userPointService.list(new LambdaQueryWrapper<UserPoint>()
                .in(!CollectionUtils.isEmpty(userIds), UserPoint::getAppUserId, userIds)
                .eq(UserPoint::getType, userPoint.getType())
                .between(UserPoint::getCreateTime, userPoint.getStartTime(), userPoint.getEndTime())
                .orderByDesc(UserPoint::getCreateTime));
        ExcelUtil<UserPoint> util = new ExcelUtil<UserPoint>(UserPoint.class);
        IPage<UserPoint> userPointPage = userPointService.getUserPointPage(Page.of(1, Integer.MAX_VALUE), userPoint);
        List<UserPoint> userPointList = userPointPage.getRecords();
        ExcelUtil<UserPoint> util = new ExcelUtil<>(UserPoint.class);
        util.exportExcel(response, userPointList, "用户积分统计");
    }
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/UserPointService.java
@@ -1,10 +1,15 @@
package com.ruoyi.account.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.api.model.UserPoint;
import com.ruoyi.account.vo.UserPointDetailVO;
import com.ruoyi.account.vo.UserPointStatistics;
import com.ruoyi.account.vo.UserPointVO;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -28,4 +33,7 @@
    void transferPoint(BigDecimal point, String phone);
    UserPointStatistics getStatistics(UserPoint userPoint);
    IPage<UserPoint> getUserPointPage(Page<UserPoint> page, UserPoint userPoint);
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java
@@ -2,6 +2,8 @@
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.account.api.model.UserPoint;
@@ -23,6 +25,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
@@ -164,7 +167,7 @@
    public UserPointStatistics getStatistics(UserPoint userPoint) {
        LoginUser loginUser = tokenService.getLoginUser();
        userPoint.setAppUserId(loginUser.getUserid());
        List<UserPoint> userPointList =  userPointMapper.findLatestChangeByType(userPoint);
        List<UserPoint> userPointList = userPointMapper.findLatestChangeByType(userPoint);
        Map<Integer, Integer> userBalanceMap = userPointList.stream()
                .collect(Collectors.toMap(UserPoint::getType, UserPoint::getBalance));
@@ -191,4 +194,26 @@
        userPointStatistics.setShopAchievementPoint(shopAchievementPoint);
        return userPointStatistics;
    }
    @Override
    public IPage<UserPoint> getUserPointPage(Page<UserPoint> page, UserPoint userPoint) {
        List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>()
                .eq(AppUser::getPhone, userPoint.getPhone())
                .like(AppUser::getName, userPoint.getUserName()));
        List<Long> userIds = appUserList.stream().map(AppUser::getId).collect(Collectors.toList());
        Page<UserPoint> userPointPage = page(page, new LambdaQueryWrapper<UserPoint>()
                .in(!CollectionUtils.isEmpty(userIds), UserPoint::getAppUserId, userIds)
                .eq(UserPoint::getType, userPoint.getType())
                .between(UserPoint::getCreateTime, userPoint.getStartTime(), userPoint.getEndTime())
                .orderByDesc(UserPoint::getCreateTime));
        userPointPage.getRecords().forEach(userPoint1 -> appUserList.stream()
                .filter(appUser -> appUser.getId().equals(userPoint1.getAppUserId()))
                .findFirst().ifPresent(appUser -> {
                    userPoint1.setUserName(appUser.getName());
                    userPoint1.setPhone(appUser.getPhone());
                }));
        return userPointPage;
    }
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopPointController.java
@@ -1,8 +1,12 @@
package com.ruoyi.other.controller;
import com.ruoyi.other.service.ShopPointService;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
 * <p>
@@ -14,7 +18,20 @@
 */
@RestController
@RequestMapping("/shop-point")
@Api(tags = "管理后台-财务统计-门店积分统计")
public class ShopPointController {
    @Resource
    private ShopPointService shopPointService;
    /**
     * 门店积分统计
     */
    public Object statistics() {
        return shopPointService.statistics();
    }
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopPointService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.other.api.domain.ShopPoint;
import com.ruoyi.other.vo.ShopPointStatistics;
/**
 * <p>
@@ -13,4 +14,5 @@
 */
public interface ShopPointService extends IService<ShopPoint> {
    ShopPointStatistics statistics();
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopPointServiceImpl.java
@@ -4,6 +4,7 @@
import com.ruoyi.other.mapper.ShopPointMapper;
import com.ruoyi.other.api.domain.ShopPoint;
import com.ruoyi.other.service.ShopPointService;
import com.ruoyi.other.vo.ShopPointStatistics;
import org.springframework.stereotype.Service;
/**
@@ -17,4 +18,8 @@
@Service
public class ShopPointServiceImpl extends ServiceImpl<ShopPointMapper, ShopPoint> implements ShopPointService {
    @Override
    public ShopPointStatistics statistics() {
        return null;
    }
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/vo/ShopPointStatistics.java
New file
@@ -0,0 +1,39 @@
package com.ruoyi.other.vo;
import com.ruoyi.other.api.domain.ShopPoint;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("门店积分统计")
public class ShopPointStatistics {
    /**
     * 门店获得总积分
     */
    @ApiModelProperty("门店获得总积分")
    private Integer totalPoint;
    /**
     * 门店业绩积分
     */
    @ApiModelProperty("门店业绩积分")
    private Integer shopPoint;
    /**
     * 门店返佣积分
     */
    @ApiModelProperty("门店返佣积分")
    private Integer shopCommissionPoint;
    /**
     * 下级门店返佣积分
     */
    @ApiModelProperty("下级门店返佣积分")
    private Integer subShopCommissionPoint;
    private List<ShopPoint> shopPointList;
}