Pu Zhibing
2025-03-26 cbf2486983b77a27af9968bbb362cb8d43789115
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package com.ruoyi.other.controller;
 
 
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.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.ShopPoint;
import com.ruoyi.other.api.domain.ShopPointCopy;
import com.ruoyi.other.mapper.ShopPointCopyMapper;
import com.ruoyi.other.service.ShopPointService;
import com.ruoyi.other.vo.ShopPointStatistics;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
 
/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author luodangjia
 * @since 2024-11-20
 */
@RestController
@RequestMapping("/shop-point")
@Api(tags = "管理后台-财务统计-门店积分统计")
public class ShopPointController {
    @Resource
    private ShopPointService shopPointService;
    @Resource
    private ShopPointCopyMapper shopPointCopyMapper;
    @Resource
    private TokenService tokenService;
    @Resource
    private SysUserClient sysUserClient;
 
 
    /**
     * 门店积分统计
     */
    @GetMapping("/statistics")
    @ApiOperation(value = "门店积分统计")
    public R<ShopPointStatistics> statistics(ShopPoint shopPoint) {
        ShopPointStatistics statistics = shopPointService.statistics(Page.of(shopPoint.getPageNum(), shopPoint.getPageSize()), shopPoint);
        return R.ok(statistics);
    }
 
    @GetMapping("/shop/statistics")
    @ApiOperation(value = "门店积分统计", notes = "门店积分统计", tags = {"门店后台"})
    public R<ShopPointStatistics> shopstatistics(ShopPoint shopPoint) {
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = sysUserClient.getSysUser(userid).getData();
        shopPoint.setShopId(sysUser.getObjectId());
        ShopPointStatistics statistics = shopPointService.statistics(Page.of(shopPoint.getPageNum(), shopPoint.getPageSize()), shopPoint);
        return R.ok(statistics);
    }
    @GetMapping("/shop/statistics/list")
    @ApiOperation(value = "门店积分统计列表", notes = "门店积分统计", tags = {"门店后台"})
    public R<Page<ShopPoint>> shopstatisticslist(ShopPoint shopPoint,Integer pageNum,Integer pageSize) {
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = sysUserClient.getSysUser(userid).getData();
        Page<ShopPoint> page = shopPointService.lambdaQuery().eq(ShopPoint::getShopId, sysUser.getObjectId()).eq(shopPoint.getType()!=null,ShopPoint::getType, shopPoint.getType())
                .like(shopPoint.getOrderNum()!=null,ShopPoint::getOrderNum, shopPoint.getOrderNum())
                .orderByDesc(ShopPoint::getCreateTime)
                .page(Page.of(pageNum, pageSize));
        return R.ok(page);
    }
    @GetMapping("/statistics/list")
    @ApiOperation(value = "门店积分明细必传门店id", tags = {"后台"})
    public R<Page<ShopPoint>> statisticslist(ShopPoint shopPoint,Integer pageNum,Integer pageSize) {
        Page<ShopPoint> page = shopPointService.lambdaQuery()
                .eq(ShopPoint::getShopId, shopPoint.getShopId())
                .eq(shopPoint.getType()!=null && shopPoint.getType()!=0,ShopPoint::getType, shopPoint.getType())
                .like(shopPoint.getOrderNum()!=null,ShopPoint::getOrderNum, shopPoint.getOrderNum())
                .orderByDesc(ShopPoint::getCreateTime)
                .page(Page.of(pageNum, pageSize));
        return R.ok(page);
    }
 
 
    /**
     * 导出门店积分统计
     */
    @GetMapping("/export")
    @ApiOperation(value = "导出门店积分统计")
    public void export(HttpServletResponse response , ShopPoint shopPoint) {
        ShopPointStatistics statistics = shopPointService.statistics(Page.of(1, Integer.MAX_VALUE), shopPoint);
        if (statistics!=null){
            IPage<ShopPoint> shopPointIPage = statistics.getShopPointIPage();
            ExcelUtil<ShopPoint> util = new ExcelUtil<>(ShopPoint.class);
            util.exportExcel(response, shopPointIPage.getRecords(), "用户积分统计");
        }
    }
    
    
    /**
     * 保存门店积分流水
     * @param shopPoint
     */
    @PostMapping("/saveShopPoint")
    public void saveShopPoint(@RequestBody ShopPoint shopPoint){
        shopPointService.save(shopPoint);
    }
 
    /**
     * 保存门店积分流水
     * @param shopPoint
     */
    @PostMapping("/saveShopPointCopy")
    public void saveShopPointCopy(@RequestBody ShopPointCopy shopPoint){
        shopPointCopyMapper.insert(shopPoint);
    }
 
    @DeleteMapping("/deleteShopPointCopy")
    public void deleteShopPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type){
        shopPointCopyMapper.delete(new LambdaQueryWrapper<ShopPointCopy>().in(ShopPointCopy::getType, type)
                .eq(ShopPointCopy::getObjectId, orderId));
    }
    
    
    @DeleteMapping("/deleteShopPointCopyByIds")
    public void deleteShopPointCopyByIds(@RequestParam("ids") List<Long> ids){
        shopPointCopyMapper.deleteBatchIds(ids);
    }
    
    
    @PostMapping("/getShopPointCopy")
    public R<List<ShopPointCopy>> getShopPointCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type){
        List<ShopPointCopy> shopPointCopies = shopPointCopyMapper.selectList(new LambdaQueryWrapper<ShopPointCopy>().in(ShopPointCopy::getType, type)
                .eq(ShopPointCopy::getObjectId, orderId));
        return R.ok(shopPointCopies);
    }
 
}