From 2e64c232ab6b51b2cecf1ee96e1e9b709234f326 Mon Sep 17 00:00:00 2001 From: huanghongfa <huanghongfa123456> Date: 星期六, 21 八月 2021 16:35:14 +0800 Subject: [PATCH] 随手拍改版接口开发 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java | 329 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 283 insertions(+), 46 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java index dc59a90..4367e2c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java @@ -8,6 +8,8 @@ import com.panzhihua.common.model.dtos.PageDTO; import com.panzhihua.common.model.dtos.shop.*; import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.utlis.DateUtils; +import com.panzhihua.common.utlis.WxPayUtils; import com.panzhihua.service_community.dao.ComShopOrderDAO; import com.panzhihua.service_community.model.dos.ComShopOrderDO; import com.panzhihua.common.model.vos.R; @@ -19,12 +21,15 @@ import com.panzhihua.service_community.service.ComShopOrderService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Calendar; import java.util.Date; import java.util.List; @@ -53,6 +58,18 @@ private ComShopOrderGoodsDAO comShopOrderGoodsDAO; @Resource private ComShopOrderDAO comShopOrderDAO; + @Resource + private ComShopOrderPayDAO comShopOrderPayDAO; + @Value("${min.app.isTest}") + private Boolean isTest; + @Value("${min.app.appid}") + private String appid; + @Value("${min.app.payKey}") + private String payKey; + @Value("${min.app.mchId}") + private String mchId; + @Value("${min.app.notifyUrl}") + private String notifyUrl; /** * 订单预览 @@ -139,18 +156,33 @@ } //查询默认收货地址 - //查询上次购买记录的收货地址 - List<ComShopOrderDO> shopOrders = this.baseMapper.selectList(new QueryWrapper<ComShopOrderDO>() - .eq("user_id",orderPreviewDTO.getUserId()).orderByDesc("create_at")); - if(shopOrders.isEmpty()){//未查询到用户上一笔订单 - //查询用户收货地址中的默认地址 - ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectOne(new QueryWrapper<ComShopUserAddressDO>() - .eq("user_id",orderPreviewDTO.getUserId()).eq("is_default",ComShopUserAddressDO.isDefault.yes)); - if(userAddressDO != null){ - ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO(); - BeanUtils.copyProperties(userAddressDO,userAddressVO); - orderPreviewVO.setUserAddressVO(userAddressVO); - }else{ + ComShopUserAddressDO userDefaultAddressDO = comShopUserAddressDAO.selectOne(new QueryWrapper<ComShopUserAddressDO>() + .eq("delete_status", 2) + .eq("user_id",orderPreviewDTO.getUserId()).eq("is_default",ComShopUserAddressDO.isDefault.yes)); + + //查询用户收货地址中的默认地址 + if(userDefaultAddressDO != null){ + ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO(); + BeanUtils.copyProperties(userDefaultAddressDO,userAddressVO); + orderPreviewVO.setUserAddressVO(userAddressVO); + }else{ + //查询上次购买记录的收货地址 + //查询到用户上一笔订单 + List<ComShopOrderDO> shopOrders = this.baseMapper.selectList(new QueryWrapper<ComShopOrderDO>() + .eq("delete_status", 2) + .eq("user_id",orderPreviewDTO.getUserId()) + .orderByDesc("create_at")); + if(shopOrders!=null && shopOrders.size()>0) { + ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(shopOrders.get(0).getReceiverId()); + if (userAddressDO != null) { + ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO(); + BeanUtils.copyProperties(userAddressDO, userAddressVO); + orderPreviewVO.setUserAddressVO(userAddressVO); + } + } + //无默认地址, 无上一单记录 地址 + /* + if(orderPreviewVO.getUserAddressVO()==null){ List<ComShopUserAddressDO> userAddressDOList = comShopUserAddressDAO.selectList(new QueryWrapper<ComShopUserAddressDO>() .eq("user_id",orderPreviewDTO.getUserId()).orderByDesc("create_at")); if(!userAddressDOList.isEmpty()){ @@ -159,12 +191,9 @@ orderPreviewVO.setUserAddressVO(userAddressVO); } } - }else{//查询到用户上一笔订单 - ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(shopOrders.get(0).getReceiverId()); - ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO(); - BeanUtils.copyProperties(userAddressDO,userAddressVO); - orderPreviewVO.setUserAddressVO(userAddressVO); + */ } + return R.ok(orderPreviewVO); } @@ -179,10 +208,9 @@ public R orderCreate(ComShopOrderCreateDTO orderCreateDTO){ //创建返回参数 ComShopOrderVO shopOrderVO = new ComShopOrderVO(); - //查询用户收货地址 ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(orderCreateDTO.getReceiverId()); - if(userAddressDO == null){ + if(userAddressDO == null||userAddressDO.getDeleteStatus()!=2){ return R.fail("收货地址不存在"); } //用户id @@ -193,10 +221,8 @@ String orderNo = OrderNoUtils.NextOrderNo(userId); //配送方式 Integer deliveryType = 0; - //订单总金额 BigDecimal orderTotal = BigDecimal.ZERO; - //创建订单商品信息 List<ComShopOrderGoodsDO> orderGoodsDOList = new ArrayList<>(); if(!orderCreateDTO.getOrderGoodsList().isEmpty()){ @@ -232,12 +258,10 @@ orderTotal = orderTotal.add(orderGoodsDO.getGoodsAttrPrice().multiply(BigDecimal.valueOf(orderGoodsDO.getAmount()))); } } - //如果是购物车提交,需要将购物车内商品移除 if(orderCreateDTO.getSubmitType().equals(ComShopOrderCreateDTO.submitType.cart)){ comShopCartDAO.deleteBatchIds(orderCreateDTO.getCartIds()); } - //创建订单信息 ComShopOrderDO shopOrderDO = new ComShopOrderDO(); shopOrderDO.setOrderNo(orderNo); @@ -254,18 +278,15 @@ shopOrderDO.setRemark(orderCreateDTO.getRemark()); } this.baseMapper.insert(shopOrderDO); - if(!orderGoodsDOList.isEmpty()){ orderGoodsDOList.forEach(orderGoods ->{ orderGoods.setOrderId(shopOrderDO.getId()); comShopOrderGoodsDAO.insert(orderGoods); }); } - //创建订单操作记录 ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); orderOperateDO.setOrderNo(orderNo); - orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.create); orderOperateDO.setOperationTime(new Date()); if(StringUtils.isNotEmpty(orderCreateDTO.getPhone())){ @@ -276,9 +297,22 @@ orderOperateDO.setOperationBy("用户"); } comShopOrderOperateDAO.insert(orderOperateDO); - shopOrderVO.setOrderNo(orderNo); shopOrderVO.setOrderTotal(orderTotal); + shopOrderVO.setOrderId(shopOrderDO.getId()); + + try { + BigDecimal money = orderTotal; + if(isTest){ + money = BigDecimal.valueOf(0.01); + } + //调用wx支付 + String xml = WxPayUtils.getUnifiedorder(appid,mchId,payKey,notifyUrl,"商品购买",orderCreateDTO.getOpenId(),orderNo,money); + log.info("微信支付返回参数:" + xml); + shopOrderVO.setPayResult(xml); + }catch (Exception e){ + log.error("调用微信支付异常,异常原因:" + e.getMessage()); + } return R.ok(shopOrderVO); } @@ -301,6 +335,11 @@ orderGoodsDOList.forEach(orderGoods -> { ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO(); BeanUtils.copyProperties(orderGoods,orderGoodsVO); + //根据商品规格id查询商品规格 + ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); + if(goodsAttrDO != null){ + orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttr()); + } orderGoodsVO.setNum(orderGoods.getAmount()); orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic()); orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice()); @@ -358,6 +397,21 @@ orderGoodsVO.setNum(orderGoods.getAmount()); orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic()); orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice()); + //查询商品信息判断商品状态 + ComShopGoodsDO goodsDO = comShopGoodsDAO.selectById(orderGoods.getGoodsId()); + if(goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopGoodsDO.deleteStatus.yes) || goodsDO.getDeleteStatus().equals(ComShopGoodsDO.status.recovery)){ + orderGoodsVO.setGoodsStatus(ComShopOrderGoodsVO.goodsStatus.ysc); + }else if(goodsDO.getStatus().equals(ComShopGoodsDO.status.lower)){ + orderGoodsVO.setGoodsStatus(ComShopOrderGoodsVO.goodsStatus.yxj); + }else if(goodsDO.getStatus().equals(ComShopGoodsDO.status.sell)){ + orderGoodsVO.setGoodsStatus(ComShopOrderGoodsVO.goodsStatus.csz); + } + + //根据商品规格id查询商品规格 + ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId()); + if(goodsAttrDO != null){ + orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttr()); + } orderGoodsVOS.add(orderGoodsVO); sbr.append(orderGoods.getGoodsName() + " " ); }); @@ -387,15 +441,14 @@ /** * 根据订单id取消订单 - * @param orderId 订单id - * @param phone 操作用户手机号 + * @param comShopOrderQueryDTO 订单信息 * @return 取消结果 */ @Transactional(rollbackFor = Exception.class) @Override - public R orderCancel(Long orderId,String phone){ + public R orderCancel(ComShopOrderQueryDTO comShopOrderQueryDTO){ //查询订单 - ComShopOrderDO shopOrderDO = this.baseMapper.selectById(orderId); + ComShopOrderDO shopOrderDO = this.baseMapper.selectById(comShopOrderQueryDTO.getOrderId()); if(shopOrderDO == null){ return R.fail("未查询到订单"); } @@ -410,9 +463,9 @@ orderOperateDO.setOrderNo(shopOrderDO.getOrderNo()); orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.cancel); orderOperateDO.setOperationTime(new Date()); - if(StringUtils.isNotEmpty(phone)){ - orderOperateDO.setOperationContent("用户" + phone + "取消订单"); - orderOperateDO.setOperationBy("用户" + phone); + if(comShopOrderQueryDTO.getIsAdmin()){ + orderOperateDO.setOperationContent("管理员" + comShopOrderQueryDTO.getOperUserAccount() + "取消订单"); + orderOperateDO.setOperationBy("用户" + comShopOrderQueryDTO.getOperUserAccount()); }else { orderOperateDO.setOperationContent("用户取消订单"); orderOperateDO.setOperationBy("用户"); @@ -468,6 +521,7 @@ } //订单确认收货 shopOrderDO.setStatus(ComShopOrderDO.status.ywc); + shopOrderDO.setReceivingTime(new Date()); if(this.baseMapper.updateById(shopOrderDO) > 0){ //添加订单操作记录 ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); @@ -528,51 +582,117 @@ return R.fail("订单不存在"); } if(!(comShopOrderDO.getStatus()==2) - || !(comShopOrderDO.getDeleteStatus()==1)){ + || !(comShopOrderDO.getDeliveryStatus()==1)){ return R.fail("订单发货失败,订单状态不允许发货"); + } + + ComShopStoreDO storeDO = comShopStoreDAO.selectById(comShopOrderDO.getStoreId()); + if(storeDO.getDeliveryType()!=2){ + return R.fail("该商家不支持通过快递物流发货"); } comShopOrderDO.setDeliveryStatus(2); comShopOrderDO.setDeliveryType(2); comShopOrderDO.setStatus(3); + comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime()); comShopOrderDO.setLogisticsCompany(orderShipDTO.getLogisticsCompany()); comShopOrderDO.setLogisticsNo(orderShipDTO.getLogisticsNo()); int updated = comShopOrderDAO.updateById(comShopOrderDO); if(updated==1){ + //创建订单操作记录 + ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); + orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo()); + orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.deliver); + orderOperateDO.setOperationTime(new Date()); + if(orderShipDTO.getIsAdmin()){ + orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount()+"已发货"); + orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount()); + }else { + orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount() + "已发货"); + orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount()); + } + int inserted = comShopOrderOperateDAO.insert(orderOperateDO); + if(inserted!=1){ + log.error("订单发货日志保存错误"); + } return R.ok("发货成功"); } return R.fail("发货失败!"); } @Override - public R deliverOrder(Long orderId) { - ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderId); + public R deliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) { + ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderDeliverDTO.getOrderId()); if(comShopOrderDO==null){ return R.fail("订单不存在"); } - if(!(comShopOrderDO.getStatus()==2)){ + if(!(comShopOrderDO.getStatus()==2) + || !(comShopOrderDO.getDeliveryStatus()==1)){ return R.fail("当前订单不能配送"); + } + ComShopStoreDO storeDO = comShopStoreDAO.selectById(comShopOrderDO.getStoreId()); + if(storeDO.getDeliveryType()!=1){ + return R.fail("该商家不支持通过商家配送"); } comShopOrderDO.setDeliveryStatus(4); comShopOrderDO.setDeliveryType(1); + comShopOrderDO.setStatus(3); + comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime()); int updated = comShopOrderDAO.updateById(comShopOrderDO); if(updated==1){ + + //创建订单操作记录 + ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); + orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo()); + orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.deliver); + orderOperateDO.setOperationTime(new Date()); + if(orderDeliverDTO.getIsAdmin()){ + orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货"); + orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); + }else { + orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货"); + orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); + } + int inserted = comShopOrderOperateDAO.insert(orderOperateDO); + if(inserted!=1){ + log.error("订单发货日志保存错误"); + } return R.ok("开始配送"); } return R.fail("操作失败!"); } @Override - public R finishDeliverOrder(Long orderId) { - ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderId); + public R finishDeliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) { + ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderDeliverDTO.getOrderId()); if(comShopOrderDO==null){ return R.fail("订单不存在"); } - if(!(comShopOrderDO.getDeliveryStatus() == 4)){ + if(comShopOrderDO.getDeliveryStatus() != 4 && comShopOrderDO.getDeliveryStatus() != 3){ return R.fail("订单还未开始配送"); } + if(!(comShopOrderDO.getStatus() == 3)){ + return R.fail("订单还未发货"); + } + //comShopOrderDO.setStatus(4); comShopOrderDO.setDeliveryStatus(5); int updated = comShopOrderDAO.updateById(comShopOrderDO); if(updated==1){ + //创建订单操作记录 + ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); + orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo()); + orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.complete); + orderOperateDO.setOperationTime(new Date()); + if(orderDeliverDTO.getIsAdmin()){ + orderOperateDO.setOperationContent("订单已完成"); + orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); + }else { + orderOperateDO.setOperationContent("订单已完成"); + orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount()); + } + int inserted = comShopOrderOperateDAO.insert(orderOperateDO); + if(inserted!=1){ + log.error("订单发货日志保存错误"); + } return R.ok("配送完成"); } return R.fail("操作失败!"); @@ -581,7 +701,7 @@ @Override public R shopOrderExportData(ComShopOrderExportDTO comShopOrderExportDTO) { Page page = new Page(); - page.setSize(1000); + page.setSize(10000); page.setCurrent(1); IPage<ExcelShopOrderDTO> excelShopOrderDTO = comShopOrderDAO.selectOrderExport(page, comShopOrderExportDTO); return R.ok(excelShopOrderDTO.getRecords()); @@ -590,7 +710,7 @@ @Override public R shopOrderFundsExportData(ComShopFundsExportDTO comShopFundsExportDTO) { Page page = new Page(); - page.setSize(1000); + page.setSize(10000); page.setCurrent(1); IPage<ExcelShopFundsDTO> excelShopFundsDTO = comShopOrderDAO.selectFundsExport(page, comShopFundsExportDTO); return R.ok(excelShopFundsDTO.getRecords()); @@ -599,6 +719,12 @@ @Override public R getFundsStat(Long userId) { ComShopFundsVO comShopFundsVO = comShopOrderDAO.queryStatis(userId); + if(comShopFundsVO==null){ + comShopFundsVO = new ComShopFundsVO(); + comShopFundsVO.setMonthTotal(new BigDecimal(0)); + comShopFundsVO.setTodayTotal(new BigDecimal(0)); + comShopFundsVO.setWeekTotal(new BigDecimal(0)); + } return R.ok(comShopFundsVO); } @@ -638,9 +764,6 @@ return R.ok(ipage); } - - - @Override public R capitalDetailByStore(Long id) { if(id==null){ @@ -649,4 +772,118 @@ CapitalDetailVO vo = this.baseMapper.capitalDetailByStore(id); return R.ok(vo); } + + /** + * 微信支付订单回调 + * @param wxPayNotifyOrderDTO 订单支付回调参数 + */ + @Transactional(rollbackFor = Exception.class) + @Override + public void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO){ + log.info("微信订单支付回调开始处理逻辑"); + if(StringUtils.isEmpty(wxPayNotifyOrderDTO.getOrderTradeNo())){ + log.error("微信支付回调失败,订单号为空"); + return; + } + + log.info("微信订单支付回调开始查询订单"); + //查询订单 + ComShopOrderDO shopOrderDO = this.baseMapper.selectOne(new QueryWrapper<ComShopOrderDO>().lambda().eq(ComShopOrderDO::getOrderNo,wxPayNotifyOrderDTO.getOrderTradeNo())); + if(shopOrderDO == null){ + log.error("未查询到支付订单,订单回调失败,订单号:" + wxPayNotifyOrderDTO.getOrderTradeNo()); + return; + } + shopOrderDO.setStatus(ComShopOrderDO.status.dfh); + shopOrderDO.setPayType(ComShopOrderDO.payType.wx); + shopOrderDO.setPayStatus(ComShopOrderDO.payStatus.yes); + shopOrderDO.setPayAmount(BigDecimal.valueOf(Double.valueOf(wxPayNotifyOrderDTO.getCashFee()) / 100)); + shopOrderDO.setWxTardeNo(wxPayNotifyOrderDTO.getWxTradeNo()); + shopOrderDO.setPayTime(DateUtils.stringToDate(wxPayNotifyOrderDTO.getPayTime(),new SimpleDateFormat("yyyyMMddHHmmss"))); + this.baseMapper.updateById(shopOrderDO); + + //查询订单商品 + List<ComShopOrderGoodsDO> orderGoodsList = comShopOrderGoodsDAO.selectList(new QueryWrapper<ComShopOrderGoodsDO>().lambda().eq(ComShopOrderGoodsDO ::getOrderNo,shopOrderDO.getOrderNo())); + if(!orderGoodsList.isEmpty()){ + int goodsNub = 0; + for (ComShopOrderGoodsDO orderGood:orderGoodsList) { + goodsNub += orderGood.getAmount(); + //更新商品信息 + ComShopGoodsDO goodsDO = comShopGoodsDAO.selectById(orderGood.getGoodsId()); + if(goodsDO != null){ + goodsDO.setSale(goodsDO.getSale() + orderGood.getAmount()); + comShopGoodsDAO.updateById(goodsDO); + } + + //更新商品规格 + ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGood.getGoodsAttrId()); + if(goodsAttrDO != null){ + goodsAttrDO.setSale(goodsAttrDO.getSale() + orderGood.getAmount()); + comShopGoodsAttrDAO.updateById(goodsAttrDO); + } + } + + //更新店铺销量以及销售额 + ComShopStoreDO storeDO = comShopStoreDAO.selectById(shopOrderDO.getStoreId()); + if(storeDO != null){ + storeDO.setSale(storeDO.getSale() + goodsNub); + storeDO.setSaleVolume(storeDO.getSaleVolume().add(shopOrderDO.getTotalAmount())); + comShopStoreDAO.updateById(storeDO); + } + } + + //添加订单操作记录 + ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO(); + orderOperateDO.setOrderNo(shopOrderDO.getOrderNo()); + orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.pay); + orderOperateDO.setOperationTime(new Date()); + orderOperateDO.setOperationContent("用户支付订单"); + orderOperateDO.setOperationBy("用户"); + comShopOrderOperateDAO.insert(orderOperateDO); + + //添加订单支付记录表 + ComShopOrderPayDO orderPayDO = new ComShopOrderPayDO(); + orderPayDO.setOrderNo(shopOrderDO.getOrderNo()); + orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount()); + orderPayDO.setWxTradeNo(wxPayNotifyOrderDTO.getWxTradeNo()); + orderPayDO.setPayStatus(ComShopOrderPayDO.payStatus.yes); + orderPayDO.setPayAmount(shopOrderDO.getPayAmount()); + orderPayDO.setPayTime(shopOrderDO.getPayTime()); + comShopOrderPayDAO.insert(orderPayDO); + } + + /** + * 订单去支付 + * @param orderPayDTO 请求参数 + * @return 支付对象 + */ + public R wxPay(OrderPayDTO orderPayDTO){ + //创建返回参数 + ComShopOrderVO shopOrderVO = new ComShopOrderVO(); + //查询订单 + ComShopOrderDO orderDO = comShopOrderDAO.selectOne(new QueryWrapper<ComShopOrderDO>().lambda().eq(ComShopOrderDO::getOrderNo,orderPayDTO.getOrderNo())); + if(orderDO == null){ + return R.fail("订单不存在"); + } + try { + BigDecimal money = orderDO.getTotalAmount(); + if(isTest){ + money = BigDecimal.valueOf(0.01); + } + //调用wx支付 + String xml = WxPayUtils.getUnifiedorder(appid,mchId,payKey,notifyUrl,"商品购买",orderPayDTO.getOpenId(),orderDO.getOrderNo(),money); + log.info("微信支付返回参数:" + xml); + shopOrderVO.setPayResult(xml); + }catch (Exception e){ + log.error("调用微信支付异常,异常原因:" + e.getMessage()); + } + shopOrderVO.setOrderId(orderDO.getId()); + shopOrderVO.setOrderNo(orderDO.getOrderNo()); + shopOrderVO.setOrderTotal(orderDO.getTotalAmount()); + return R.ok(shopOrderVO); + } + + public static void main(String[] args) { + BigDecimal one = BigDecimal.valueOf(Double.valueOf("1") / 100); + System.out.println(); + } } -- Gitblit v1.7.1