package com.ruoyi.user.controller;
|
|
import java.util.List;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.validation.annotation.Validated;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.common.core.web.controller.BaseController;
|
import com.ruoyi.common.core.web.page.TableDataInfo;
|
import com.ruoyi.common.security.utils.SecurityUtils;
|
import com.ruoyi.user.domain.dto.MemberPurchaseDto;
|
import com.ruoyi.user.domain.vo.MemberSalesStatisticsVo;
|
import com.ruoyi.user.domain.vo.MemberWarehouseVo;
|
import com.ruoyi.user.domain.vo.PurchaseOrderVo;
|
import com.ruoyi.user.domain.vo.WarehouseRecordVo;
|
import com.ruoyi.user.service.IAccountMemberCenterService;
|
|
/**
|
* C端会员 个人中心-会员中心接口
|
*
|
* 网关前缀 /miniapp/account 由 StripPrefix=2 剥掉,故此处映射为 /user/member,
|
* 外部实际路径为 /miniapp/account/user/member/**。
|
*
|
* 会员身份取自网关注入的登录态(SecurityUtils.getUserId),不接受前端传 userId,
|
* 天然防止水平越权;未登录请求由网关直接以 401 拦截,故此处不处理未登录分支。
|
*
|
* @author hugray
|
*/
|
@RestController
|
@RequestMapping("/user/member")
|
public class AccountMemberController extends BaseController
|
{
|
@Autowired
|
private IAccountMemberCenterService accountMemberCenterService;
|
|
/**
|
* 查询当前登录会员的销售统计
|
*
|
* 返回当月销售额 / 进货额 / 利润(单位分)、利润环比、销售额趋势、商品销售额比例与销售用户排行。
|
*
|
* @return 销售统计聚合对象
|
*/
|
@GetMapping("/sales-statistics")
|
public R<MemberSalesStatisticsVo> salesStatistics()
|
{
|
return R.ok(accountMemberCenterService.getSalesStatistics(SecurityUtils.getUserId()));
|
}
|
|
/**
|
* 查询当前登录会员的云仓列表
|
*
|
* 含当前库存、最低需求库存与低库存标记;商品图片本期为空,由前端使用占位图。
|
*
|
* @return 云仓列表
|
*/
|
@GetMapping("/warehouses")
|
public R<List<MemberWarehouseVo>> warehouses()
|
{
|
return R.ok(accountMemberCenterService.getWarehouseList(SecurityUtils.getUserId()));
|
}
|
|
/**
|
* 进货:生成进货单并增加对应云仓库存
|
*
|
* 云仓归属由服务端校验(非本会员商品拒绝),库存原子自增,同一事务内追加变动流水。
|
*
|
* @param dto 进货入参(warehouseId、qty 必填)
|
* @return 操作结果
|
*/
|
@PostMapping("/purchase")
|
public R<Void> purchase(@Validated @RequestBody MemberPurchaseDto dto)
|
{
|
accountMemberCenterService.purchase(SecurityUtils.getUserId(), dto);
|
return R.ok();
|
}
|
|
/**
|
* 分页查询当前登录会员的云仓变动记录
|
*
|
* 分页参数 pageNum 默认 1、pageSize 默认 10,按变动时间倒序。
|
*
|
* @return 分页数据(rows 为变动记录,total 为总数)
|
*/
|
@GetMapping("/warehouse-records")
|
public TableDataInfo warehouseRecords()
|
{
|
startPage();
|
List<WarehouseRecordVo> list = accountMemberCenterService.getWarehouseRecordList(SecurityUtils.getUserId());
|
return getDataTable(list);
|
}
|
|
/**
|
* 分页查询当前登录会员的进货订单
|
*
|
* 分页参数 pageNum 默认 1、pageSize 默认 10,按下单时间倒序。
|
*
|
* @return 分页数据(rows 为进货订单,total 为总数)
|
*/
|
@GetMapping("/purchase-orders")
|
public TableDataInfo purchaseOrders()
|
{
|
startPage();
|
List<PurchaseOrderVo> list = accountMemberCenterService.getPurchaseOrderList(SecurityUtils.getUserId());
|
return getDataTable(list);
|
}
|
}
|