From 9d731c918a193337eb308481b346076b31eecd0a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 27 Apr 2022 14:17:29 +0800
Subject: [PATCH] 20220426

---
 zq-erp/src/main/java/com/matrix/system/padApi/action/PadOrderAction.java |  168 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 167 insertions(+), 1 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..ce729a9 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,7 @@
 package com.matrix.system.padApi.action;
 
 import cn.hutool.core.util.ObjectUtil;
+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,28 +10,41 @@
 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.bean.*;
+import com.matrix.system.hive.dao.SysOrderItemDao;
+import com.matrix.system.hive.dao.SysShopInfoDao;
+import com.matrix.system.hive.service.MoneyCardUseService;
+import com.matrix.system.hive.service.ShoppingGoodsService;
 import com.matrix.system.hive.service.SysOrderService;
+import com.matrix.system.hive.service.SysShopInfoService;
 import com.matrix.system.padApi.dto.PadOrderListDto;
 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;
 import io.swagger.annotations.ApiResponses;
+import org.assertj.core.util.Arrays;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 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端订单请求")
@@ -116,5 +130,157 @@
         return AjaxResult.buildSuccessInstance("补交成功");
     }
 
+    @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 = "查询当前登录人")
+    @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(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(Arrays.asList(order));
+    }
+
+    @ApiOperation(value = "列表显示搜索项目绑定的产品信息", notes = "列表显示搜索项目绑定的产品信息")
+    @PostMapping(value = "/showList")
+    public AjaxResult showList(@RequestBody ShoppingGoods shoppingGoods, PaginationVO pageVo) {
+        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);
+            }
+        }
+        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(java.util.Arrays.asList(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(java.util.Arrays.asList(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(java.util.Arrays.asList(sysOrder), "订单保存成功");
+    }
+
 
 }

--
Gitblit v1.9.1