From 924a90bc1c4601bc51ceb0875858a093a97cde67 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 16 May 2022 17:31:20 +0800
Subject: [PATCH] 20220516
---
zq-erp/src/main/java/com/matrix/system/padApi/action/PadOrderAction.java | 281 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 273 insertions(+), 8 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/padApi/action/PadOrderAction.java b/zq-erp/src/main/java/com/matrix/system/padApi/action/PadOrderAction.java
index 348df51..75669ba 100644
--- a/zq-erp/src/main/java/com/matrix/system/padApi/action/PadOrderAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/padApi/action/PadOrderAction.java
@@ -1,6 +1,8 @@
package com.matrix.system.padApi.action;
import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.matrix.component.asyncmessage.AsyncMessageManager;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.AjaxResult;
@@ -9,18 +11,27 @@
import com.matrix.core.tools.WebUtil;
import com.matrix.system.app.vo.OrderDetailVo;
import com.matrix.system.common.bean.BusParameterSettings;
+import com.matrix.system.common.bean.CustomerDataDictionary;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.common.dao.BusParameterSettingsDao;
+import com.matrix.system.common.dao.CustomerDataDictionaryDao;
+import com.matrix.system.common.service.SysUsersService;
import com.matrix.system.common.tools.DataAuthUtil;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.enums.BooleanEnum;
import com.matrix.system.hive.action.BaseController;
import com.matrix.system.hive.action.util.QueryUtil;
-import com.matrix.system.hive.bean.SysOrder;
-import com.matrix.system.hive.service.SysOrderService;
+import com.matrix.system.hive.bean.*;
+import com.matrix.system.hive.dao.ShoppingGoodsDao;
+import com.matrix.system.hive.dao.SysOrderItemDao;
+import com.matrix.system.hive.dao.SysShopInfoDao;
+import com.matrix.system.hive.service.*;
import com.matrix.system.padApi.dto.PadOrderListDto;
+import com.matrix.system.padApi.dto.PadShowListDto;
import com.matrix.system.padApi.vo.PadOrderDetailVo;
+import com.matrix.system.shopXcx.mqTask.AsyncMessageRouting;
+import com.matrix.system.wechart.templateMsg.UniformMsgParam;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
@@ -31,6 +42,8 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.List;
@CrossOrigin(origins = "*")
@Api(value = "PadOrderAction", tags = "pad端订单请求")
@@ -40,12 +53,26 @@
@Resource
private SysOrderService sysOrderService;
-
@Resource
private SysOrderService orderService;
-
@Autowired
private BusParameterSettingsDao busParameterSettingsDao;
+ @Autowired
+ private SysOrderItemDao orderItemDao;
+ @Autowired
+ private SysUsersService sysUsersService;
+ @Autowired
+ private CustomerDataDictionaryDao dataDictionaryDao;
+ @Resource
+ private SysShopInfoService currentService;
+ @Resource
+ private MoneyCardUseService cardUseService;
+ @Autowired
+ private AsyncMessageManager asyncMessageManager;
+ @Resource
+ private SysShopInfoDao shopInfoDao;
+ @Resource
+ private ShoppingGoodsService shoppingGoodsService;
@ApiOperation(value = "获取订单列表", notes = "获取订单列表")
@ApiResponses({
@@ -60,12 +87,39 @@
pageVo.setOffset(offset);
pageVo.setLimit(limit);
+ //默认排序
+ if (StringUtils.isBlank(pageVo.getSort())) {
+ pageVo.setSort("order_time");
+ }
+ if (StringUtils.isBlank(pageVo.getOrder())) {
+ pageVo.setOrder("desc");
+ }
if (!DataAuthUtil.hasAllShopAuth()) {
- orderListDto.setShopId(user.getShopId());
+ orderListDto.setShopId(getMe().getShopId());
}
QueryUtil.setQueryLimitCom(orderListDto);
- return AjaxResult.buildSuccessInstance(sysOrderService.findPadApiOrderListInPage(orderListDto, pageVo),
- sysOrderService.findPadApiOrderListTotal(orderListDto));
+
+ SysOrder sysOrder = new SysOrder();
+ sysOrder.setShopId(orderListDto.getShopId());
+ if(ObjectUtil.isNotEmpty(orderListDto.getOrderStatus())){
+ sysOrder.setStatu(orderListDto.getStatus());
+ }
+
+ if(ObjectUtil.isNotEmpty(orderListDto.getBeginTimeVo())){
+ sysOrder.setBeginTimeVo(orderListDto.getBeginTimeVo());
+ }
+ if(ObjectUtil.isNotEmpty(orderListDto.getEndTimeVo())){
+ sysOrder.setEndTimeVo(orderListDto.getEndTimeVo());
+ }
+
+ if(ObjectUtil.isNotEmpty(orderListDto.getVipId())){
+ sysOrder.setVipId(orderListDto.getVipId());
+ }
+ if(StrUtil.isNotEmpty(orderListDto.getQueryKey())){
+ sysOrder.setKeyWordVo(orderListDto.getQueryKey());
+ }
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS, orderService.findInPage(sysOrder, pageVo),
+ orderService.findTotal(sysOrder));
}
@ApiOperation(value = "获取订单详情", notes = "获取订单详情")
@@ -83,7 +137,7 @@
@ApiOperation(value = "取消订单", notes = "取消订单")
@GetMapping(value = "/cancelOrder/{id}")
@Transactional(rollbackFor = Exception.class)
- public AjaxResult cancelOrder(Long id) {
+ public AjaxResult cancelOrder(@PathVariable Long id) {
SysOrder order = orderService.findById(id);
if (ObjectUtil.isEmpty(order)) {
@@ -116,5 +170,216 @@
return AjaxResult.buildSuccessInstance("补交成功");
}
+ @ApiOperation(value = "查询当前登录人", notes = "查询当前登录人")
+ @GetMapping(value = "/getLoginUser")
+ public AjaxResult getLoginUser() {
+ AjaxResult result = AjaxResult.buildSuccessInstance("");
+ SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ result.putInMap("user", user);
+ return result;
+ }
+
+ @ApiOperation(value = "根据ID查询用户", notes = "根据ID查询用户")
+ @GetMapping(value = "/getUserById/{id}")
+ public AjaxResult getUserById(@PathVariable Long id) {
+ AjaxResult result = AjaxResult.buildSuccessInstance("");
+ SysUsers user = sysUsersService.findById(id);
+ result.putInMap("user", user);
+ return result;
+ }
+
+ @ApiOperation(value = "获取业绩用户列表", notes = "获取业绩用户列表")
+ @GetMapping(value = "/shopAll")
+ public AjaxResult shopAll() {
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS, sysUsersService.findByRoleName(true, null));
+ }
+
+ @ApiOperation(value = "获取业绩类型", notes = "获取业绩类型")
+ @GetMapping(value = "getListByParentCode/{parentCode}")
+ public AjaxResult getListByParentCode(@PathVariable String parentCode) {
+ SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ List<CustomerDataDictionary> list = dataDictionaryDao.selectByParentCode(parentCode, user.getCompanyId());
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS, list, list.size());
+ }
+
+ @ApiOperation(value = "查询当前登录用户所在门店信息", notes = "查询当前登录用户所在门店信息")
+ @GetMapping(value = "findUserShop")
+ public AjaxResult findUserShop() {
+ SysUsers user = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS,
+ java.util.Arrays.asList(currentService.findById(user.getShopId())), null);
+ }
+
+ @ApiOperation(value = "获取用户的可用充值卡", notes = "获取用户的可用充值卡")
+ @GetMapping(value = "getUseMoneyCard/{vipId}")
+ public AjaxResult getUseMoneyCard(@PathVariable Long vipId) {
+ MoneyCardUse moneyCardUse = new MoneyCardUse();
+ moneyCardUse.setVipId(vipId);
+ moneyCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX);
+ List<MoneyCardUse> cards = cardUseService.findByModel(moneyCardUse);
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS, cards);
+ }
+
+ @ApiOperation(value = "根据订单ID查询订单信息", notes = "根据订单ID查询订单信息")
+ @GetMapping(value = "/findOrderById/{id}")
+ public AjaxResult findOrderById(@PathVariable Long id) {
+ SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+ SysOrder order = orderService.findById(id);
+ order.setItems(orderItemDao.selectByOrderId(id));
+ return AjaxResult.buildSuccessInstance(order);
+ }
+
+ @ApiOperation(value = "列表显示搜索项目绑定的产品信息", notes = "列表显示搜索项目绑定的产品信息")
+ @PostMapping(value = "/showList")
+ public AjaxResult showList(@RequestBody PadShowListDto padShowListDto) {
+
+ int offset = (padShowListDto.getPageNum() - 1) * padShowListDto.getPageSize();
+ int limit = padShowListDto.getPageSize();
+ PaginationVO pageVo = new PaginationVO();
+ pageVo.setOffset(offset);
+ pageVo.setLimit(limit);
+
+ ShoppingGoods shoppingGoods = new ShoppingGoods();
+ if(StrUtil.isNotEmpty(padShowListDto.getName())){
+ shoppingGoods.setName(padShowListDto.getName());
+ }
+ if(StrUtil.isNotEmpty(padShowListDto.getGoodType())){
+ shoppingGoods.setGoodType(padShowListDto.getGoodType());
+ }
+// QueryUtil.setQueryLimit(shoppingGoods);
+ if(StringUtils.isBlank(pageVo.getSort())){
+ pageVo.setOrder("desc");
+ pageVo.setSort("createTime");
+ }
+ //2表示查询总部产品
+// if (shoppingGoods.getHeadquarters()!=null && 2==shoppingGoods.getHeadquarters()) {
+// //仅查询本店产品
+// SysShopInfo zbShop = shopInfoDao.selectZbShop(getMe().getCompanyId());
+// //如果是总部自己查询自己的库存则不需加入这个调价
+// if (getMe().getShopId().equals(zbShop.getId())){
+// shoppingGoods.setHeadquarters(1);
+// }
+// }
+ SysShopInfo zbShop = shopInfoDao.selectZbShop(getMe().getCompanyId());
+ if (getMe().getShopId().equals(zbShop.getId())){
+ shoppingGoods.setHeadquarters(1);
+ }
+ shoppingGoods.setIsDel(ShoppingGoods.NORMAL);
+ List<ShoppingGoods> dataList = shoppingGoodsService.findInPage(shoppingGoods, pageVo);
+ AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, shoppingGoodsService.findTotal(shoppingGoods));
+ return result;
+ }
+
+ @ApiOperation(value = "计算订单金额", notes = "计算订单金额")
+ @PostMapping(value = "/calculationOrder")
+ public AjaxResult calculationOrder(@RequestBody SysOrder sysOrder) {
+ BigDecimal total = BigDecimal.ZERO;
+ BigDecimal zkTotal = BigDecimal.ZERO;
+ //默认排序
+ List<SysOrderItem> items = sysOrder.getItems();
+
+ for (int i = 0; i < items.size(); i++) {
+ SysOrderItem item = items.get(i);
+ zkTotal = zkTotal.add(new BigDecimal(item.getZkPrice() * item.getCount()));
+ total = total.add(new BigDecimal(item.getPrice() * item.getCount()));
+ }
+ SysOrder sysOrderResult = new SysOrder();
+ sysOrderResult.setZkTotal(zkTotal.setScale(2, BigDecimal.ROUND_DOWN).doubleValue());
+ sysOrderResult.setTotal(total.doubleValue());
+
+ return AjaxResult.buildSuccessInstance(sysOrderResult);
+ }
+
+ @ApiOperation(value = "订单支付", notes = "订单支付")
+ @PostMapping(value = "/payOrder")
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult payOrder(@RequestBody SysOrder sysOrder) {
+ SysUsers user = getMe();
+ sysOrder.setShopId(user.getShopId());
+ sysOrder.setOrderType(SysOrder.ORDER_TYPE_SEAL);
+ sysOrder.setIsHasRefund(SysOrder.IS_HAS_REFUND_N);
+ //校验订单是否满足结算调价,新订单则保存订单,已有订单则删除后更新
+ sysOrder = orderService.checkAndSaveOrder(sysOrder);
+ orderService.payOrder(sysOrder);
+
+ //发送微信公众号提醒
+ UniformMsgParam uniformMsgParam = new UniformMsgParam(user.getCompanyId(), UniformMsgParam.GZH_GMCG);
+ uniformMsgParam.put("orderId", sysOrder.getId());
+ asyncMessageManager.sendMsg(AsyncMessageRouting.SEND_UNIFORM_TEMPLATE_MSG ,uniformMsgParam);
+
+ //处理用户购买的产品
+ return AjaxResult.buildSuccessInstance(sysOrder, "订单结算成功");
+ }
+
+ @ApiOperation(value = "订单保存接口-挂单", notes = "订单保存接口-挂单")
+ @PostMapping(value = "/saveOrder")
+ @Transactional(rollbackFor = Exception.class)
+ public AjaxResult saveOrder(@RequestBody SysOrder sysOrder) {
+ SysUsers user = getMe();
+ sysOrder.setShopId(user.getShopId());
+ //校验保存订单
+ sysOrder = orderService.checkAndSaveOrder(sysOrder);
+ //处理用户购买的产品
+ return AjaxResult.buildSuccessInstance(sysOrder, "订单保存成功");
+ }
+
+
+ @Autowired
+ ShoppingGoodsDao shoppingGoodsDao;
+
+ @Autowired
+ private SysOrderItemService orderItemService;
+
+ @Autowired
+ private AchieveNewService achieveNewService;
+
+ @Autowired
+ private SysVipInfoService sysVipInfoService;
+
+ @Autowired
+ private SysOrderFlowService sysOrderFlowService;
+
+ @ApiOperation(value = "列表进入详情", notes = "列表进入详情")
+ @PostMapping(value = "/findOrderDetailByIdOrNo")
+ public AjaxResult findOrderDetailByIdOrNo(@RequestBody SysOrder orderVo) {
+ // 根据id查到对应的订单信息
+ SysOrder order = null;
+ if (orderVo.getId() != null) {
+ order = orderService.findById(orderVo.getId());
+ } else if (StringUtils.isNotBlank(orderVo.getOrderNo())) {
+ List<SysOrder> byModel = orderService.findByModel(orderVo);
+ if (byModel.size() == 1) {
+ order = orderService.findById(byModel.get(0).getId());
+ }
+ }
+ List<SysOrderItem> sysOrderItems = orderItemDao.selectByOrderId(order.getId());
+ order.setItems(sysOrderItems);
+
+ SysVipInfo vipInfo = sysVipInfoService.findById(order.getVipId());
+ // 根据会员Id查到会员有效的会员卡
+ // 根据订单号查找订单条目
+ List<SysOrderItem> orderItems = orderItemService.findByOrderId(order.getId());
+
+ MoneyCardUse moneyCardUse = new MoneyCardUse();
+ moneyCardUse.setVipId(order.getVipId());
+ List<MoneyCardUse> cards = cardUseService.findByModel(moneyCardUse);
+
+ List<SysOrderFlow> flows = sysOrderFlowService.findByOrderId(order.getId());
+ order.setFlows(flows);
+
+ List<SysOrderFlow> payMethods = sysOrderFlowService.findPayMethodsAmount(order.getId());
+
+ List<AchieveNew> achieveList = achieveNewService.findOrderItemAchieve(order.getId());
+
+ AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("获取成功");
+ ajaxResult.putInMap("orderItems", orderItems);
+ ajaxResult.putInMap("order", order);
+ ajaxResult.putInMap("cards", cards);
+ ajaxResult.putInMap("vipInfo", vipInfo);
+ ajaxResult.putInMap("payMethods", payMethods);
+ ajaxResult.putInMap("achieveList", achieveList);
+ return ajaxResult;
+ }
+
}
--
Gitblit v1.9.1