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