From 1a4e7bbab3d15b36ebb4d7329ee31de62f092eb6 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 28 五月 2025 16:40:06 +0800
Subject: [PATCH] 小程序接口

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/UserAccountController.java       |   11 
 ruoyi-system/src/main/java/com/ruoyi/system/model/TbBuyerCompanyInfo.java                   |  119 +++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/model/TbShareholder.java                        |   61 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbShareholderServiceImpl.java      |   20 +
 ruoyi-system/src/main/resources/mapper/system/TbShareholderMapper.xml                       |   15 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/TbOrder.java                              |    3 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBuyerCompanyInfoServiceImpl.java |   21 +
 ruoyi-system/src/main/resources/mapper/system/TbBuyerCompanyInfoMapper.xml                  |   28 ++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbShareholderMapper.java                 |   17 +
 ruoyi-system/src/main/java/com/ruoyi/system/model/TbAccountDetail.java                      |    4 
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/CompanyController.java           |   13 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java            |  132 ++++++++---
 ruoyi-system/src/main/java/com/ruoyi/system/model/TbMessage.java                            |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/dto/AddBuyerCompanyInfoDto.java                 |  105 ++++++++
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBuyerCompanyInfoMapper.java            |   17 +
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java             |   73 +++++
 ruoyi-system/src/main/java/com/ruoyi/system/service/TbMessageService.java                   |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TbShareholderService.java               |   17 +
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbMessageServiceImpl.java          |    8 
 ruoyi-system/src/main/java/com/ruoyi/system/service/TbOrderService.java                     |    4 
 20 files changed, 635 insertions(+), 43 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/CompanyController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/CompanyController.java
index 6b9d862..7ba76ef 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/CompanyController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/CompanyController.java
@@ -47,6 +47,9 @@
     @Autowired
     private TbScheduleService scheduleService;
 
+    @Autowired
+    private TbMessageService messageService;
+
 
 
     @ApiOperation(value = "获取我发布的公司",tags = {"发布模块"})
@@ -160,6 +163,12 @@
         }
         order.setStatus(3);
         order.updateById();
+
+        company.setStatus(1);
+        company.updateById();
+
+
+        messageService.addMessage("您有订单被取消", order.getUserId(),order.getId());
         return R.ok();
     }
 
@@ -177,6 +186,8 @@
             return R.fail("非法操作");
         }
         scheduleService.addSchedule(dto,userId);
+
+        messageService.addMessage("您有订单卖家已完成,等待确认", order.getUserId(),order.getId());
         return R.ok();
     }
 
@@ -205,6 +216,8 @@
         }
         order.setStatus(5);
         order.updateById();
+
+        messageService.addMessage("您有订单卖家已完成,等待确认", order.getUserId(),orderId);
         return R.ok();
     }
 
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java
index 5f2aadb..66ea1b1 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java
@@ -11,6 +11,7 @@
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.dto.AddBuyerCompanyInfoDto;
 import com.ruoyi.system.dto.AddScheduleDto;
 import com.ruoyi.system.dto.EditScheduleDto;
 import com.ruoyi.system.model.*;
@@ -47,6 +48,15 @@
     @Autowired
     private TbScheduleService scheduleService;
 
+    @Autowired
+    private TbBuyerCompanyInfoService buyerCompanyInfoService;
+
+    @Autowired
+    private TbMessageService messageService;
+
+    @Autowired
+    private TbAccountDetailService accountDetailService;
+
 
 
 
@@ -58,6 +68,45 @@
         Page<MyPushCompanyListVo> page = orderService.getMyOrderList(query,userId);
         return R.ok(page);
     }
+
+
+    /**
+     * 填写了 如果金额变动要修改订单金额
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "立即支付前填写信息",tags = {"订单模块"})
+    @PostMapping("/lastPayOrderData")
+    public R<?> lastPayOrderData(@RequestBody @Valid AddBuyerCompanyInfoDto dto) {
+        LoginUser loginUser = tokenService.getLoginUser();
+        Long userId = loginUser.getUserId();
+        TbOrder tbOrder = orderService.getById(dto.getOrderId());
+
+        if(dto.getNeedRename()==1){
+            if(StringUtils.isEmpty(dto.getBackupsName())){
+                return R.fail("请填写备选名称");
+            }
+        }
+
+        if(!tbOrder.getUserId().equals(userId.toString())){
+            return R.fail("非法操作");
+        }
+        if(tbOrder.getStatus()!=3){
+            return R.fail("订单状态错误");
+        }
+        TbCompany company = companyService.getById(tbOrder.getCompanyId());
+        // 判断是否在支付前下架了  或者删除了
+        if(company==null || company.getStatus()!=1 || company.getIsDelete()==1){
+            return R.fail("该公司已下架或者删除");
+        }
+        long count = buyerCompanyInfoService.count(new LambdaQueryWrapper<TbBuyerCompanyInfo>().eq(TbBuyerCompanyInfo::getOrderId, dto.getOrderId()));
+        if(count>0){
+            return R.fail("请勿重复填写");
+        }
+        orderService.lastPayOrderData(tbOrder,dto,userId,company);
+        return R.ok();
+    }
+
 
 
     @ApiOperation(value = "立即支付",tags = {"订单模块"})
@@ -77,7 +126,10 @@
         if(company==null || company.getStatus()!=1 || company.getIsDelete()==1){
             return R.fail("该公司已下架或者删除");
         }
-
+        long count = buyerCompanyInfoService.count(new LambdaQueryWrapper<TbBuyerCompanyInfo>().eq(TbBuyerCompanyInfo::getOrderId,orderId));
+        if(count==0){
+            return R.fail("请先填写信息");
+        }
         WxPayMpOrderResult result = orderService.payOrder(tbOrder,userId);
         return R.ok(result);
     }
@@ -97,8 +149,8 @@
         if(company.getStatus()!=1){
             return R.fail("公司未上架");
         }
-        long count = orderService.count(new LambdaQueryWrapper<TbOrder>().eq(TbOrder::getCompanyId, companyId).ne(TbOrder::getStatus, -1));
-        if (count > 0) {
+//        long count = orderService.count(new LambdaQueryWrapper<TbOrder>().eq(TbOrder::getCompanyId, companyId).ne(TbOrder::getStatus, -1));
+        if (company.getStatus()==4) {
             return R.fail("改公司已被预定");
         }
         orderService.placeOrder(companyId,company,userId);
@@ -134,6 +186,13 @@
         orderService.commission(order,company.getUserId());
 
 
+        // 卖家账户明细记录更新
+        TbAccountDetail one = accountDetailService.getOne(new LambdaQueryWrapper<TbAccountDetail>().eq(TbAccountDetail::getOrderId, orderId).eq(TbAccountDetail::getCategory, 2));
+        if (one != null) {
+            one.setStatus(2);
+            one.updateById();
+        }
+
         company.updateById();
         return R.ok();
 
@@ -156,6 +215,9 @@
             return R.fail("该订单状态不能回复");
         }
         scheduleService.buyerAddSchedule(dto,userId);
+        String userId1 = companyService.getById(order.getCompanyId()).getUserId();
+
+        messageService.addMessage("您的订单有新的回复", userId1,order.getId());
         return R.ok();
 
     }
@@ -179,8 +241,13 @@
         if(order.getStatus()!=3){
             return R.fail("该订单状态不能取消");
         }
+        TbCompany company = companyService.getById(order.getCompanyId());
+        company.setStatus(1);
+        company.updateById();
         order.setStatus(-1);
         order.updateById();
+
+        messageService.addMessage("您发布的订单买家已取消", company.getUserId(),order.getId());
         return R.ok();
 
     }
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/UserAccountController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/UserAccountController.java
index fde4c58..80e2b19 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/UserAccountController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/UserAccountController.java
@@ -49,7 +49,6 @@
 
 
 
-    // TODO 需要订单来查看其他金额
     @ApiOperation(value = "获取用户钱包信息",tags = {"用户钱包模块"})
     @GetMapping("/getUserAccount")
     public R<UserAccountVo> getUserAccount() {
@@ -58,8 +57,15 @@
         TbUser user = userService.getById(loginUser.getUserId());
         userAccountVo.setBalance(user.getBalance());
 
+        List<TbAccountDetail> list = accountDetailService.list(new LambdaQueryWrapper<TbAccountDetail>().eq(TbAccountDetail::getCategory, 1).eq(TbAccountDetail::getUserId, user.getId()));
+        BigDecimal reduce = list.stream().filter(e->e.getStatus()==2).map(TbAccountDetail::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+        userAccountVo.setWithdrawalBalance(reduce);
 
-
+        BigDecimal reduce1 = list.stream().filter(e->e.getStatus()==1).map(TbAccountDetail::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+        userAccountVo.setAuditBalance(reduce1);
+        List<TbAccountDetail> list1 = accountDetailService.list(new LambdaQueryWrapper<TbAccountDetail>().eq(TbAccountDetail::getCategory, 2).eq(TbAccountDetail::getStatus, 1).eq(TbAccountDetail::getUserId, user.getId()));
+        BigDecimal reduce2 = list1.stream().map(TbAccountDetail::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+        userAccountVo.setEntryBalance(reduce2);
 
         return R.ok(userAccountVo);
     }
@@ -118,6 +124,7 @@
         accountDetail.setCategory(1);
         accountDetail.setStatus(1);
         accountDetail.setMoney(new BigDecimal(dto.getAmount()));
+        accountDetail.setSourceId(withdrawal.getId());
         accountDetailService.save(accountDetail);
         return R.ok();
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/dto/AddBuyerCompanyInfoDto.java b/ruoyi-system/src/main/java/com/ruoyi/system/dto/AddBuyerCompanyInfoDto.java
new file mode 100644
index 0000000..7b3220c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/dto/AddBuyerCompanyInfoDto.java
@@ -0,0 +1,105 @@
+package com.ruoyi.system.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.ruoyi.system.model.TbShareholder;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Data
+@ApiModel("支付前填写信息Dto")
+public class AddBuyerCompanyInfoDto {
+    @ApiModelProperty("订单id")
+    @NotBlank(message = "订单id不能为空")
+    private String orderId;
+
+    @TableField("legal_person_img")
+    @ApiModelProperty("法人照片")
+    @NotBlank(message = "法人照片不能为空")
+    private String legalPersonImg;
+
+
+    @ApiModelProperty("改名0不需要 1需要")
+    @NotNull(message = "改名0不需要 1需要不能为空")
+    private Integer needRename;
+
+    @ApiModelProperty("新名称")
+    private String newName;
+    /**
+     * 备选名称
+     */
+    @ApiModelProperty("备选名称")
+    private String backupsName;
+    /**
+     * 备选名称1
+     */
+    @ApiModelProperty("备选名称1")
+    private String backupsNameOne;
+    /**
+     * 备选名称2
+     */
+    @ApiModelProperty("备选名称2")
+    private String backupsNameTwo;
+    /**
+     * 注册资本
+     */
+    @ApiModelProperty("注册资本")
+    @NotBlank(message = "注册资本不能为空")
+    private String registeredCapital;
+    /**
+     * 1无账户 2变更 3新法人注销 4老法人注销
+     */
+    @ApiModelProperty("1无账户 2变更 3新法人注销 4老法人注销")
+    @NotNull(message = "银行账户处理不能为空")
+    private Integer accountType;
+    /**
+     * 地址
+     */
+    @ApiModelProperty("地址")
+    @NotBlank(message = "地址不能为空")
+    private String address;
+    /**
+     * 是否迁区0不需要 1要
+     */
+    @ApiModelProperty("是否迁区0不需要 1要")
+    @NotNull(message = "是否迁区不能为空")
+    private Integer newDistrict;
+    /**
+     * 租房合同
+     */
+    @ApiModelProperty("租房合同")
+    @NotBlank(message = "租房合同不能为空")
+    private String tenancyAgreement;
+    /**
+     * 房产证
+     */
+    @ApiModelProperty("房产证")
+    @NotBlank(message = "房产证不能为空")
+    private String propertyOwnershipCertificate;
+    /**
+     * 实名认证账户
+     */
+    @ApiModelProperty("实名认证账户")
+    private String account;
+    /**
+     * 实名认证密码
+     */
+    @ApiModelProperty("实名认证密码")
+    private String password;
+    /**
+     * 经营范围
+     */
+    @ApiModelProperty("经营范围")
+    @NotBlank(message = "经营范围不能为空")
+    private String businessScope;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("股东信息")
+    private List<TbShareholder> shareholders;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBuyerCompanyInfoMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBuyerCompanyInfoMapper.java
new file mode 100644
index 0000000..03c1a84
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbBuyerCompanyInfoMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.system.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.TbBuyerCompanyInfo;
+
+/**
+ * <p>
+ * 用户支付前填写信息 Mapper 接口
+ * </p>
+ *
+ * @author administrator
+ * @since 2025-05-28
+ */
+public interface TbBuyerCompanyInfoMapper extends BaseMapper<TbBuyerCompanyInfo> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbShareholderMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbShareholderMapper.java
new file mode 100644
index 0000000..0e53f71
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbShareholderMapper.java
@@ -0,0 +1,17 @@
+package com.ruoyi.system.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.model.TbShareholder;
+
+/**
+ * <p>
+ * 股东表 Mapper 接口
+ * </p>
+ *
+ * @author administrator
+ * @since 2025-05-28
+ */
+public interface TbShareholderMapper extends BaseMapper<TbShareholder> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TbAccountDetail.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbAccountDetail.java
index 50465d6..227f798 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TbAccountDetail.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbAccountDetail.java
@@ -45,12 +45,12 @@
     /**
      * 1提现 2售卖商品  3平台退款 4分佣
      */
-    @ApiModelProperty("1提现 2售卖商品  3平台退款 4分佣")
+    @ApiModelProperty("1提现 2售卖商品  3平台退款 4分佣  5购买商品")
     private Integer category;
     /**
      * 1待审核 2通过(完成) 3拒绝  (取消)
      */
-    @ApiModelProperty("1待审核 2通过(完成) 3拒绝  (取消)")
+    @ApiModelProperty("1待审核(办理中) 2通过(完成 ) 3拒绝(取消)")
     private Integer status;
     @ApiModelProperty("金额")
     private BigDecimal money;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TbBuyerCompanyInfo.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbBuyerCompanyInfo.java
new file mode 100644
index 0000000..5e545b8
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbBuyerCompanyInfo.java
@@ -0,0 +1,119 @@
+package com.ruoyi.system.model;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户支付前填写信息
+ * </p>
+ *
+ * @author administrator
+ * @since 2025-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("tb_buyer_company_info")
+public class TbBuyerCompanyInfo extends Model<TbBuyerCompanyInfo> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private String id;
+    /**
+     * 订单id
+     */
+    @TableField("order_id")
+    private String orderId;
+    /**
+     * 法人照片
+     */
+    @TableField("legal_person_img")
+    private String legalPersonImg;
+    /**
+     * 改名0不需要 1需要
+     */
+    @TableField("need_rename")
+    private Integer needRename;
+    /**
+     * 新名称
+     */
+    @TableField("new_name")
+    private String newName;
+    /**
+     * 备选名称
+     */
+    @TableField("backups_name")
+    private String backupsName;
+    /**
+     * 备选名称1
+     */
+    @TableField("backups_name_one")
+    private String backupsNameOne;
+    /**
+     * 备选名称2
+     */
+    @TableField("backups_name_two")
+    private String backupsNameTwo;
+    /**
+     * 注册资本
+     */
+    @TableField("registered_capital")
+    private String registeredCapital;
+    /**
+     * 1无账户 2变更 3新法人注销 4老法人注销
+     */
+    @TableField("account_type")
+    private Integer accountType;
+    /**
+     * 地址
+     */
+    private String address;
+    /**
+     * 是否迁区0不需要 1要
+     */
+    @TableField("new_district")
+    private Integer newDistrict;
+    /**
+     * 租房合同
+     */
+    @TableField("tenancy_agreement")
+    private String tenancyAgreement;
+    /**
+     * 房产证
+     */
+    @TableField("property_ownership_certificate")
+    private String propertyOwnershipCertificate;
+    /**
+     * 实名认证账户
+     */
+    private String account;
+    /**
+     * 实名认证密码
+     */
+    private String password;
+    /**
+     * 经营范围
+     */
+    @TableField("business_scope")
+    private String businessScope;
+    private String remark;
+    @TableField("create_time")
+    private Date createTime;
+    @TableField("add_day")
+    private Integer addDay;
+
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TbMessage.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbMessage.java
index 5c8e7d1..559d166 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TbMessage.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbMessage.java
@@ -48,6 +48,8 @@
     @TableField("create_time")
     @ApiModelProperty("时间")
     private Date createTime;
+    @TableField("order_id")
+    private String orderId;
 
 
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TbOrder.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbOrder.java
index 8839f8e..119aca2 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TbOrder.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbOrder.java
@@ -80,6 +80,9 @@
     @TableField("commission_platform")
     private BigDecimal commissionPlatform;
 
+    @TableField("out_trade_no")
+    private String outTradeNo;
+
 
 
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TbShareholder.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbShareholder.java
new file mode 100644
index 0000000..6fc26a5
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TbShareholder.java
@@ -0,0 +1,61 @@
+package com.ruoyi.system.model;
+
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 股东表
+ * </p>
+ *
+ * @author administrator
+ * @since 2025-05-28
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("tb_shareholder")
+public class TbShareholder extends Model<TbShareholder> {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private String id;
+    /**
+     * 订单id
+     */
+    @TableField("order_id")
+    @ApiModelProperty("订单id")
+    private String orderId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty("名称")
+    private String name;
+    /**
+     * 占比
+     */
+    @ApiModelProperty("占比")
+    private String rate;
+    /**
+     * 身份证
+     */
+    @ApiModelProperty("身份证")
+    private String img;
+    @TableField("create_time")
+    private Date createTime;
+
+
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbMessageService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbMessageService.java
index d836fa2..a698ef0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbMessageService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbMessageService.java
@@ -14,4 +14,12 @@
  */
 public interface TbMessageService extends IService<TbMessage> {
 
+    /**
+     * 添加消息
+     * @param text 内容
+     * @param userId 用户id
+     */
+    void addMessage(String text, String userId,String orderId);
+
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbOrderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbOrderService.java
index 4011e5e..8049619 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbOrderService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbOrderService.java
@@ -5,10 +5,13 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
 import com.github.binarywang.wxpay.exception.WxPayException;
+import com.ruoyi.system.dto.AddBuyerCompanyInfoDto;
 import com.ruoyi.system.model.TbCompany;
 import com.ruoyi.system.model.TbOrder;
 import com.ruoyi.system.query.MyOrderListQuery;
 import com.ruoyi.system.vo.MyPushCompanyListVo;
+
+import javax.validation.Valid;
 
 /**
  * <p>
@@ -34,5 +37,6 @@
     void commission(TbOrder order,String userId);
 
 
+    void lastPayOrderData(TbOrder tbOrder, AddBuyerCompanyInfoDto dto, Long userId,TbCompany company);
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TbShareholderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbShareholderService.java
new file mode 100644
index 0000000..958cb55
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TbShareholderService.java
@@ -0,0 +1,17 @@
+package com.ruoyi.system.service;
+
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.system.model.TbShareholder;
+
+/**
+ * <p>
+ * 股东表 服务类
+ * </p>
+ *
+ * @author administrator
+ * @since 2025-05-28
+ */
+public interface TbShareholderService extends IService<TbShareholder> {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBuyerCompanyInfoServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBuyerCompanyInfoServiceImpl.java
new file mode 100644
index 0000000..4525020
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbBuyerCompanyInfoServiceImpl.java
@@ -0,0 +1,21 @@
+package com.ruoyi.system.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.system.mapper.TbBuyerCompanyInfoMapper;
+import com.ruoyi.system.model.TbBuyerCompanyInfo;
+import com.ruoyi.system.service.TbBuyerCompanyInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户支付前填写信息 服务实现类
+ * </p>
+ *
+ * @author administrator
+ * @since 2025-05-28
+ */
+@Service
+public class TbBuyerCompanyInfoServiceImpl extends ServiceImpl<TbBuyerCompanyInfoMapper, TbBuyerCompanyInfo> implements TbBuyerCompanyInfoService {
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbMessageServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbMessageServiceImpl.java
index c09db16..054aa11 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbMessageServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbMessageServiceImpl.java
@@ -18,4 +18,12 @@
 @Service
 public class TbMessageServiceImpl extends ServiceImpl<TbMessageMapper, TbMessage> implements TbMessageService {
 
+    @Override
+    public void addMessage(String text, String userId,String orderId) {
+        TbMessage tbMessage = new TbMessage();
+        tbMessage.setMessage(text);
+        tbMessage.setUserId(userId);
+        tbMessage.setOrderId(orderId);
+        this.save(tbMessage);
+    }
 }
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 bc54bd5..ddde253 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
@@ -12,16 +12,16 @@
 import com.github.binarywang.wxpay.service.WxPayService;
 import com.ruoyi.common.utils.OrderUtil;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.dto.AddBuyerCompanyInfoDto;
 import com.ruoyi.system.mapper.TbOrderMapper;
 import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.MyOrderListQuery;
-import com.ruoyi.system.service.TbOrderService;
-import com.ruoyi.system.service.TbSystemConfigService;
-import com.ruoyi.system.service.TbUserService;
+import com.ruoyi.system.service.*;
 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;
@@ -35,6 +35,7 @@
 import java.net.InetAddress;
 import java.net.MalformedURLException;
 import java.util.Date;
+import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 
@@ -64,6 +65,12 @@
     @Autowired
     private TbUserService userService;
 
+    @Autowired
+    private TbCompanyService companyService;
+
+    @Autowired
+    private TbMessageService messageService;
+
 
     @Override
     public Page<MyPushCompanyListVo> getMyOrderList(MyOrderListQuery query, Long userId) {
@@ -86,40 +93,10 @@
         tbOrder.setOrderNo( OrderUtil.getOrderNoForPrefix("ZSX"));
         tbOrder.setStatus(2);
         tbOrder.setPrice(company.getSaleMoney());
-
-        // 生成记录  看是否分佣 金额
-        TbUser user = userService.getById(company.getUserId());
-        TbSystemConfig config = configService.getOne(new LambdaQueryWrapper<TbSystemConfig>().eq(TbSystemConfig::getType, 3));
-
-        if(config!=null){
-            JSONObject jsonObject = JSONObject.parseObject(config.getContent());
-            BigDecimal platformCommission = new BigDecimal(jsonObject.get("platform").toString());
-            BigDecimal userCommission = new BigDecimal(jsonObject.get("user").toString());
-            BigDecimal price = tbOrder.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);
-                tbOrder.setCommissionPrice(userCommissionMoney);
-            }
-            tbOrder.setShare_user_id(user.getInviteId());
-            tbOrder.setCommissionPlatform(platformCommissionMoney);
-        }
         tbOrder.insert();
 
-
-        // 生成记录
-        TbAccountDetail tbAccountDetail = new TbAccountDetail();
-        tbAccountDetail.setUserId(company.getUserId());
-        tbAccountDetail.setType(1);
-        tbAccountDetail.setCategory(2);
-        tbAccountDetail.setStatus(1);
-        BigDecimal subtract = tbOrder.getPrice().subtract(tbOrder.getCommissionPrice()).subtract(tbOrder.getCommissionPlatform());
-        tbAccountDetail.setMoney(subtract);
-        tbAccountDetail.setOrderId(tbOrder.getId());
-        tbAccountDetail.insert();
-
+        company.setStatus(4);
+        company.updateById();
     }
 
     @Override
@@ -133,8 +110,55 @@
         if (order!=null) {
             order.setStatus(4);
             order.setPayTime(new Date());
+            order.setOutTradeNo(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){
+                JSONObject jsonObject = JSONObject.parseObject(config.getContent());
+                BigDecimal platformCommission = new BigDecimal(jsonObject.get("platform").toString());
+                BigDecimal userCommission = new BigDecimal(jsonObject.get("user").toString());
+                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);
+                }
+                order.setShare_user_id(user.getInviteId());
+                order.setCommissionPlatform(platformCommissionMoney);
+            }
             order.updateById();
+
+            // 生成记录
+            TbAccountDetail tbAccountDetail = new TbAccountDetail();
+            tbAccountDetail.setUserId(company.getUserId());
+            tbAccountDetail.setType(1);
+            tbAccountDetail.setCategory(2);
+            tbAccountDetail.setStatus(1);
+            BigDecimal subtract = order.getPrice().subtract(order.getCommissionPrice()).subtract(order.getCommissionPlatform());
+            tbAccountDetail.setMoney(subtract);
+            tbAccountDetail.setOrderId(order.getId());
+            tbAccountDetail.insert();
+
+            // 生成记录
+            TbAccountDetail tbAccountDetail1 = new TbAccountDetail();
+            tbAccountDetail1.setUserId(order.getUserId());
+            tbAccountDetail1.setType(2);
+            tbAccountDetail1.setCategory(5);
+            tbAccountDetail1.setStatus(2);
+            tbAccountDetail1.setMoney(order.getPrice());
+            tbAccountDetail1.setOrderId(order.getId());
+            tbAccountDetail1.insert();
+
+
+            messageService.addMessage("下单成功,请及时发送快递", order.getUserId(),order.getId());
+            messageService.addMessage("您发布的订单买家已支付,请尽快处理!", company.getUserId(),order.getId());
         }
+
+
         return "<xml> <return_code><![CDATA[SUCCESS]]></return_code> <return_msg><![CDATA[OK]]></return_msg> </xml>";
     }
 
@@ -146,7 +170,6 @@
             BigDecimal add = shareUser.getBalance().add(order.getCommissionPrice());
             shareUser.setBalance(add);
             shareUser.updateById();
-
 
             TbAccountDetail accountDetail = new TbAccountDetail();
             accountDetail.setUserId(shareUserId);
@@ -167,6 +190,43 @@
         user.updateById();
 
 
+
+
+    }
+
+    @Override
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+    public void lastPayOrderData(TbOrder tbOrder, AddBuyerCompanyInfoDto dto, Long userId,TbCompany company) {
+        TbBuyerCompanyInfo tbBuyerCompanyInfo = new TbBuyerCompanyInfo();
+        BeanUtils.copyProperties(dto,tbBuyerCompanyInfo);
+        tbBuyerCompanyInfo.setOrderId(tbOrder.getId());
+        List<TbShareholder> shareholders = dto.getShareholders();
+
+        BigDecimal addMoney=BigDecimal.ZERO;
+        int addDay=0;
+        // 判断是否需要支付改名费 迁区费
+        if(dto.getNeedRename()==1){
+            addMoney = company.getRenameMoney();
+            addDay=company.getRenameDay();
+        }
+        if(dto.getNewDistrict()==1){
+            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();
+        }
+        if(addDay>0){
+            tbBuyerCompanyInfo.setAddDay(addDay);
+        }
+        tbBuyerCompanyInfo.insert();
+        for (TbShareholder shareholder : shareholders) {
+            shareholder.setOrderId(tbOrder.getId());
+            shareholder.insert();
+        }
     }
 
 
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbShareholderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbShareholderServiceImpl.java
new file mode 100644
index 0000000..d484a4e
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbShareholderServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.system.service.impl;
+
+
+import com.ruoyi.system.mapper.TbShareholderMapper;
+import com.ruoyi.system.model.TbShareholder;
+import com.ruoyi.system.service.TbShareholderService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 股东表 服务实现类
+ * </p>
+ *
+ * @author administrator
+ * @since 2025-05-28
+ */
+@Service
+public class TbShareholderServiceImpl extends ServiceImpl<TbShareholderMapper, TbShareholder> implements TbShareholderService {
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TbBuyerCompanyInfoMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TbBuyerCompanyInfoMapper.xml
new file mode 100644
index 0000000..8e24f6e
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/TbBuyerCompanyInfoMapper.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.TbBuyerCompanyInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TbBuyerCompanyInfo">
+        <id column="id" property="id" />
+        <result column="order_id" property="orderId" />
+        <result column="legal_person_img" property="legalPersonImg" />
+        <result column="need_rename" property="needRename" />
+        <result column="new_name" property="newName" />
+        <result column="backups_name" property="backupsName" />
+        <result column="backups_name_one" property="backupsNameOne" />
+        <result column="backups_name_two" property="backupsNameTwo" />
+        <result column="registered_capital" property="registeredCapital" />
+        <result column="account_type" property="accountType" />
+        <result column="address" property="address" />
+        <result column="new_district" property="newDistrict" />
+        <result column="tenancy_agreement" property="tenancyAgreement" />
+        <result column="property_ownership_certificate" property="propertyOwnershipCertificate" />
+        <result column="account" property="account" />
+        <result column="password" property="password" />
+        <result column="business_scope" property="businessScope" />
+        <result column="remark" property="remark" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TbShareholderMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TbShareholderMapper.xml
new file mode 100644
index 0000000..49f16bc
--- /dev/null
+++ b/ruoyi-system/src/main/resources/mapper/system/TbShareholderMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.system.mapper.TbShareholderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TbShareholder">
+        <id column="id" property="id" />
+        <result column="order_id" property="orderId" />
+        <result column="name" property="name" />
+        <result column="rate" property="rate" />
+        <result column="img" property="img" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+</mapper>

--
Gitblit v1.7.1