package com.sinata.rest.modular.member.shop;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.sinata.rest.common.ApiUtils;
|
import com.sinata.rest.modular.auth.util.ThreadPoolUtil;
|
import com.sinata.rest.modular.mall.controller.vo.VoMallOrder;
|
import com.sinata.rest.modular.mall.controller.vo.VoMallOrderDetail;
|
import com.sinata.rest.modular.mall.dao.NoticeMapper;
|
import com.sinata.rest.modular.mall.model.MallOrderDetailUse;
|
import com.sinata.rest.modular.mall.service.IMallCommissionSettlementService;
|
import com.sinata.rest.modular.mall.service.IMallOrderDetailService;
|
import com.sinata.rest.modular.mall.service.IMallOrderService;
|
import com.sinata.rest.modular.member.controller.common.body.BodyMallOrderDetailUse;
|
import com.sinata.rest.modular.member.service.IMallOrderDetailUseService;
|
import com.sinata.rest.modular.member.service.IMemMerchantService;
|
import com.sinata.rest.modular.member.service.IMemUserRelationService;
|
import com.sinata.rest.modular.member.service.IMemUserService;
|
import com.sinata.rest.modular.system.controller.AuthController;
|
import com.sinata.rest.modular.system.service.ISystemSetService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
@Slf4j
|
@RestController
|
@RequestMapping("/shop")
|
@Api(tags = "核销小程序核销相关", description = "核销小程序核销相关")
|
public class ShopController extends AuthController {
|
|
@Autowired
|
ISystemSetService systemSetService;
|
|
@Autowired
|
IMallOrderService orderService;
|
|
@Autowired
|
IMallOrderDetailService orderDetailService;
|
|
@Autowired
|
IMallOrderDetailUseService mallOrderDetailUseService;
|
|
@Autowired
|
private IMemMerchantService merchantService;
|
|
@Autowired
|
private IMemUserService memUserService;
|
|
@Autowired
|
private IMemUserRelationService memUserRelationService;
|
|
@Autowired
|
private IMallCommissionSettlementService mallCommissionSettlementService;
|
|
@Resource
|
private NoticeMapper noticeMapper;
|
|
@GetMapping(value = "/list")
|
@ApiOperation(value = "获取订单列表", notes = "获取订单列表", response = VoMallOrder.class)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "current", value = "当前页数", defaultValue = "1", dataType = "Int", paramType = "query"),
|
@ApiImplicitParam(name = "size", value = "每页条数", defaultValue = "10", dataType = "Int", paramType = "query"),
|
@ApiImplicitParam(name = "condition", value = "查询条件 ", defaultValue = "", dataType = "Integer", paramType = "query"),
|
})
|
public Object list(Integer current, Integer size, String condition) {
|
// 获取门店id
|
Integer merchantId = ThreadPoolUtil.getUserId();
|
// 分页
|
Page page = new Page<VoMallOrder>(current == null ? 1 : current, size == null ? 10 : size);
|
// 获取订单信息
|
List<VoMallOrder> list = merchantService.getMerchantOrderList(merchantId, condition, page,Boolean.FALSE);
|
return list;
|
}
|
|
@GetMapping(value = "/detail")
|
@ApiOperation(value = "获取订单详细", notes = "获取订单详细", response = VoMallOrder.class)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "orderNo", value = "订单编号", dataType = "String", paramType = "query", required = true),
|
})
|
public Object detail(String orderNo) {
|
VoMallOrder order = orderService.getOrderByOrderNo(orderNo);
|
if (order == null) {
|
return ApiUtils.returnNG(null, "订单信息不存在");
|
}
|
List<VoMallOrderDetail> detailList = orderService.getOrderDetailByOrderNoList(orderNo);
|
order.setDetailList(detailList);
|
return order;
|
}
|
|
// @PostMapping(value = "/userTest")
|
// @ApiOperation(value = "订单-核销分佣test")
|
// @ApiImplicitParams({
|
// @ApiImplicitParam(name = "orderNo", value = "订单编号", dataType = "String", paramType = "query", required = true),
|
// })
|
// public Object userTest(String orderNo) {
|
// // 核销订单-分佣
|
// ApiUtils apiUtils = mallCommissionSettlementService.commissionSettlement(orderNo);
|
// return apiUtils;
|
// }
|
//
|
// @PostMapping(value = "/teamTest")
|
// @ApiOperation(value = "团队-核销分佣test")
|
// @ApiImplicitParams({
|
// @ApiImplicitParam(name = "userId", value = "用户ID", defaultValue = "1", dataType = "Integer", paramType = "query", required = true),
|
// })
|
// public Object teamTest(Integer userId) {
|
// // 核销订单-分佣
|
// MemUserRelation userRelation = memUserRelationService.getById(userId);
|
// String[] teamIds = userRelation.getRelationPath().split("/");
|
//
|
// System.out.println("团队关系:" + userRelation.getRelationPath());
|
// List list = new ArrayList();
|
// for (String id : teamIds) {
|
// if (StrUtil.isNotBlank(id)) {
|
// Map map = new HashMap();
|
// map.put("id", id);
|
//
|
// MemUser u = memUserService.getById(id);
|
// map.put("gid", u.getMemberGradeId());
|
// map.put("grade", EnumMemberGrade.getMarkByIndex(u.getMemberGradeId()));
|
// list.add(map);
|
//
|
// System.out.println(map);
|
// }
|
// }
|
// return null;
|
// }
|
|
@PostMapping(value = "/use")
|
@ApiOperation(value = "订单核销", notes = "订单核销", response = VoMallOrder.class)
|
public Object use(@RequestBody MallOrderDetailUse orderDetailUse) {
|
BodyMallOrderDetailUse body = BeanUtil.toBean(orderDetailUse, BodyMallOrderDetailUse.class);
|
try {
|
return orderService.use(body);
|
} catch (Exception e) {
|
return ApiUtils.returnNG(null, e.getMessage());
|
}
|
}
|
|
@PostMapping(value = "/useGroup")
|
@ApiOperation(value = "套餐订单核销", notes = "套餐订单核销")
|
public Object useGroup(@RequestBody BodyMallOrderDetailUse body) {
|
try {
|
return orderService.use(body);
|
} catch (Exception e) {
|
return ApiUtils.returnNG(null, e.getMessage());
|
}
|
}
|
|
@PostMapping(value = "/useGroupBatch")
|
@ApiOperation(value = "套餐订单核销(批量)", notes = "套餐订单核销(批量)")
|
public Object useGroupBatch(@RequestBody List<BodyMallOrderDetailUse> list) {
|
try {
|
Boolean use = true;
|
for (BodyMallOrderDetailUse body : list) {
|
if (use) {
|
use = orderService.use(body);
|
}
|
}
|
return use;
|
} catch (Exception e) {
|
return ApiUtils.returnNG(null, e.getMessage());
|
}
|
}
|
|
@PostMapping(value = "/useList")
|
@ApiOperation(value = "获取门店核销列表", notes = "获取订单列表", response = VoMallOrder.class)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "current", value = "当前页数", defaultValue = "1", dataType = "Int", paramType = "query"),
|
@ApiImplicitParam(name = "size", value = "每页条数", defaultValue = "10", dataType = "Int", paramType = "query"),
|
@ApiImplicitParam(name = "condition", value = "查询条件 ", defaultValue = "", dataType = "Integer", paramType = "query"),
|
})
|
public Object useList(Integer current, Integer size, String condition) {
|
// 获取门店id
|
Integer merchantId = ThreadPoolUtil.getUserId();
|
// 分页
|
Page page = new Page<VoMallOrder>(current == null ? 1 : current, size == null ? 10 : size);
|
// 获取订单信息
|
List<VoMallOrder> list = merchantService.getMerchantOrderList(merchantId, condition, page,Boolean.TRUE);
|
return list;
|
}
|
|
}
|