package com.ruoyi.other.controller;
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.service.ShopPointService;
import com.ruoyi.other.vo.ShopPointStatistics;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
/**
*
* 前端控制器
*
*
* @author luodangjia
* @since 2024-11-20
*/
@RestController
@RequestMapping("/shop-point")
@Api(tags = "管理后台-财务统计-门店积分统计")
public class ShopPointController {
@Resource
private ShopPointService shopPointService;
@Resource
private TokenService tokenService;
/**
* 门店积分统计
*/
@GetMapping("/statistics")
@ApiOperation(value = "门店积分统计")
public R 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 shopstatistics(ShopPoint shopPoint) {
Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
shopPoint.setShopId(objectId);
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> shopstatisticslist(ShopPoint shopPoint,Integer pageNum,Integer pageSize) {
Integer objectId = tokenService.getLoginUser().getSysUser().getObjectId();
Page page = shopPointService.lambdaQuery().eq(ShopPoint::getShopId, objectId).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> statisticslist(ShopPoint shopPoint,Integer pageNum,Integer pageSize) {
Page page = shopPointService.lambdaQuery().eq(ShopPoint::getShopId, shopPoint.getShopId()).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("/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 shopPointIPage = statistics.getShopPointIPage();
ExcelUtil util = new ExcelUtil<>(ShopPoint.class);
util.exportExcel(response, shopPointIPage.getRecords(), "用户积分统计");
}
}
}