From 87f979fb201a82ebad5926735ed6dfa75ca004d3 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期一, 21 七月 2025 09:21:42 +0800 Subject: [PATCH] 修改bug --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java | 126 ++++++++++++++++++++++++++--------------- 1 files changed, 80 insertions(+), 46 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java index ddde253..f02c5c7 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java @@ -20,24 +20,19 @@ import com.ruoyi.system.utils.wx.WxProperties; import com.ruoyi.system.vo.MyPushCompanyListVo; import lombok.extern.slf4j.Slf4j; -import org.checkerframework.checker.units.qual.A; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.core.annotation.OrderUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.math.RoundingMode; import java.net.InetAddress; -import java.net.MalformedURLException; import java.util.Date; +import java.util.HashMap; import java.util.List; -import java.util.Objects; -import java.util.Optional; /** * <p> @@ -58,7 +53,6 @@ @Resource private WxPayService wxPayService; - @Autowired private TbSystemConfigService configService; @@ -69,7 +63,13 @@ private TbCompanyService companyService; @Autowired - private TbMessageService messageService; + private TbMessageService messageService; + + @Autowired + private TbShareholderService shareholderService; + + @Autowired + private TbAccountDetailService accountDetailService; @Override @@ -79,13 +79,24 @@ } @Override + public HashMap<String, Object> getMyOrderListNum(Long userId, HashMap<String, Object> map) { + List<MyPushCompanyListVo> list = this.baseMapper.getMyOrderListNum(userId); + map.put("toBeConfirmed", list.stream().filter(e -> e.getStatus() == 2).count()); + map.put("pendingPayment", list.stream().filter(e -> e.getStatus() == 3).count()); + map.put("processing", list.stream().filter(e -> e.getStatus() == 4).count()+list.stream().filter(e -> e.getStatus() == 5).count()); + map.put("completed", list.stream().filter(e -> e.getStatus() == 6).count()); + return map; + } + + @Override public WxPayMpOrderResult payOrder(TbOrder tbOrder, Long userId) { - WxPayMpOrderResult result = this.createWxOrderToWxService(tbOrder.getUserId(),tbOrder.getOrderNo(),tbOrder.getPrice(),"购买商品", ""); + TbUser user = userService.getById(userId); + WxPayMpOrderResult result = this.createWxOrderToWxService(user.getOpenId(),tbOrder.getOrderNo(),tbOrder.getPrice(),"购买商品", ""); return result; } @Override - public void placeOrder(String companyId, TbCompany company,Long userId) { + public String placeOrder(String companyId, TbCompany company,Long userId) { // 创建订单 TbOrder tbOrder = new TbOrder(); tbOrder.setCompanyId(companyId); @@ -97,6 +108,7 @@ company.setStatus(4); company.updateById(); + return tbOrder.getId(); } @Override @@ -110,9 +122,10 @@ if (order!=null) { order.setStatus(4); order.setPayTime(new Date()); - order.setOutTradeNo(notifyResult.getTransactionId()); + order.setOutTradeNo(notifyResult.getOutTradeNo()); + order.setTransactionId(notifyResult.getTransactionId()); TbCompany company = companyService.getById(order.getCompanyId()); - // 生成记录 看是否分佣 金额 + // 生成记录 看是否分佣 金额 发布人 TbUser user = userService.getById(company.getUserId()); TbSystemConfig config = configService.getOne(new LambdaQueryWrapper<TbSystemConfig>().eq(TbSystemConfig::getType, 3)); if(config!=null){ @@ -122,12 +135,33 @@ BigDecimal price = order.getPrice(); BigDecimal divide = platformCommission.divide(new BigDecimal("100")); BigDecimal platformCommissionMoney = divide.multiply(price).setScale(2, RoundingMode.HALF_UP); + + // 购买人是否绑定了用户 且次数足够 if(StringUtils.isNotEmpty(user.getInviteId()) && user.getInviteNum()>0){ BigDecimal divide1 = userCommission.divide(new BigDecimal("100")); BigDecimal userCommissionMoney = divide1.multiply(price).setScale(2, RoundingMode.HALF_UP); order.setCommissionPrice(userCommissionMoney); + if(userCommissionMoney.doubleValue()>0){ + TbUser shareUser = userService.getById(user.getInviteId()); + BigDecimal add = shareUser.getBalance().add(order.getCommissionPrice()); + shareUser.setBalance(add); + shareUser.updateById(); + + TbAccountDetail accountDetail = new TbAccountDetail(); + accountDetail.setUserId(user.getInviteId()); + accountDetail.setType(1); + accountDetail.setCategory(4); + accountDetail.setStatus(2); + accountDetail.setMoney(order.getCommissionPrice()); + accountDetail.setOrderPrice(order.getPrice()); + accountDetail.setSourceId(order.getUserId()); + accountDetail.insert(); + + user.setInviteNum(user.getInviteNum()-1); + user.updateById(); + } } - order.setShare_user_id(user.getInviteId()); + order.setShareUserId(user.getInviteId()); order.setCommissionPlatform(platformCommissionMoney); } order.updateById(); @@ -154,35 +188,25 @@ tbAccountDetail1.insert(); - messageService.addMessage("下单成功,请及时发送快递", order.getUserId(),order.getId()); - messageService.addMessage("您发布的订单买家已支付,请尽快处理!", company.getUserId(),order.getId()); + messageService.addMessage("下单成功,请及时发送快递", order.getUserId(),order.getId(),2); + messageService.addMessage("您发布的订单买家已支付,请尽快处理!", company.getUserId(),order.getId(),1); + + // 生成办理进度 + TbSchedule tbSchedule = new TbSchedule(); + tbSchedule.setOrderId(order.getId()); + tbSchedule.setText("请及时快递发送所需资料"); + tbSchedule.setCreateTime(new Date()); + tbSchedule.setUserId(company.getUserId()); + tbSchedule.insert(); + return "<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> </xml>"; } + return null; - return "<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> </xml>"; } @Override public void commission(TbOrder order,String userId) { - String shareUserId = order.getShare_user_id(); - if(StringUtils.isNotEmpty(shareUserId)){ - TbUser shareUser = userService.getById(shareUserId); - BigDecimal add = shareUser.getBalance().add(order.getCommissionPrice()); - shareUser.setBalance(add); - shareUser.updateById(); - - TbAccountDetail accountDetail = new TbAccountDetail(); - accountDetail.setUserId(shareUserId); - accountDetail.setType(1); - accountDetail.setCategory(4); - accountDetail.setStatus(2); - accountDetail.setMoney(order.getCommissionPrice()); - accountDetail.setOrderPrice(order.getPrice()); - accountDetail.setSourceId(order.getUserId()); - accountDetail.insert(); - - - } BigDecimal decimal = order.getPrice().subtract(order.getCommissionPrice()).subtract(order.getCommissionPlatform()); TbUser user = userService.getById(userId); BigDecimal add = user.getBalance().add(decimal); @@ -191,14 +215,16 @@ - } @Override @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) - public void lastPayOrderData(TbOrder tbOrder, AddBuyerCompanyInfoDto dto, Long userId,TbCompany company) { + public void lastPayOrderData(TbOrder tbOrder, AddBuyerCompanyInfoDto dto, Long userId,TbCompany company, TbBuyerCompanyInfo one) { TbBuyerCompanyInfo tbBuyerCompanyInfo = new TbBuyerCompanyInfo(); BeanUtils.copyProperties(dto,tbBuyerCompanyInfo); + if(one!=null){ + tbBuyerCompanyInfo.setId(one.getId()); + } tbBuyerCompanyInfo.setOrderId(tbOrder.getId()); List<TbShareholder> shareholders = dto.getShareholders(); @@ -206,28 +232,35 @@ int addDay=0; // 判断是否需要支付改名费 迁区费 if(dto.getNeedRename()==1){ - addMoney = company.getRenameMoney(); + if(company.getRenameMoney()!=null){ + addMoney = company.getRenameMoney(); + } addDay=company.getRenameDay(); } if(dto.getNewDistrict()==1){ - addMoney = addMoney.add(company.getRelocationAreaMoney()); + if(company.getRelocationAreaMoney()!=null){ + addMoney = addMoney.add(company.getRelocationAreaMoney()); + } addDay = addDay+company.getRelocationAreaDay(); } // 更新订单金额 - if(addMoney.compareTo(BigDecimal.ZERO)>0){ - BigDecimal add = tbOrder.getPrice().add(addMoney); - tbOrder.setPrice(add); - tbOrder.updateById(); - } + BigDecimal add = company.getSaleMoney().add(addMoney); + tbOrder.setPrice(add); + tbOrder.setOrderNo(OrderUtil.getOrderNoForPrefix("ZSX")); + tbOrder.updateById(); + if(addDay>0){ tbBuyerCompanyInfo.setAddDay(addDay); } - tbBuyerCompanyInfo.insert(); + tbBuyerCompanyInfo.insertOrUpdate(); + + shareholderService.remove(new LambdaQueryWrapper<TbShareholder>().eq(TbShareholder::getOrderId, tbOrder.getId())); for (TbShareholder shareholder : shareholders) { shareholder.setOrderId(tbOrder.getId()); shareholder.insert(); } } + /** @@ -249,11 +282,12 @@ wxPayUnifiedOrderRequest.setBody("购买商品"); wxPayUnifiedOrderRequest.setOutTradeNo(outTradeNo); wxPayUnifiedOrderRequest.setTotalFee(amountInFen);// 元转成分 + wxPayUnifiedOrderRequest.setOpenid(openId); wxPayUnifiedOrderRequest.setSpbillCreateIp( InetAddress.getLoopbackAddress().getHostAddress()); wxPayUnifiedOrderRequest.setTradeType("JSAPI"); wxPayUnifiedOrderRequest.setNotifyUrl( - wxProperties.getNotifyUrl() +"mall-hotel-order/WX/callback"); + wxProperties.getNotifyUrl()); WxPayMpOrderResult result = wxPayService.createOrder(wxPayUnifiedOrderRequest); return result; -- Gitblit v1.7.1