liujie
2025-06-02 4b55eb4a50938ace45b2b2266caa0ce2aadfcd40
小程序接口 详情
13个文件已删除
7个文件已添加
15个文件已修改
914 ■■■■■ 已修改文件
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/CompanyController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java 123 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/core/config/WeChatPayConfig.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/resources/application-test.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/bo/DeployBO.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessAgreeBO.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessCreateBO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessModuleUpdateBO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessRefuseBO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessStartBO.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessTaskListBO.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessTemplatePageBO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessUpdateBO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/export/ContractExport.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/export/OpticalInspectionExport.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TBankFlowImportExcel.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TCheckImportExcel.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbQuestionMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TbOrder.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/model/TbQuestion.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TbBuyerCompanyInfoService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/TbQuestionService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbCompanyServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbQuestionServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbShareholderServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/StateProcessJob.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/WxProperties.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/tools/WxAppletTools.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TbQuestionMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/TbSystemConfigMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/WxLoginController.java
@@ -21,6 +21,7 @@
import com.ruoyi.system.service.TbAddressService;
import com.ruoyi.system.service.TbAgreementService;
import com.ruoyi.system.service.TbUserService;
import com.ruoyi.system.utils.wx.WxProperties;
import com.ruoyi.system.utils.wx.body.resp.Code2SessionRespBody;
import com.ruoyi.system.utils.wx.body.resq.Code2SessionResqBody;
import com.ruoyi.system.utils.wx.model.WeixinProperties;
@@ -57,7 +58,7 @@
public class WxLoginController {
    @Autowired
    private WeixinProperties wxConfig;
    private WxProperties wxConfig;
    @Autowired
    private RestTemplate wxRestTemplate;
    @Resource
@@ -86,7 +87,7 @@
        // 生成令牌
        Object cacheObject = redisService.getCacheObject("login_" + loginBody.getPhone());
        if(cacheObject==null || !cacheObject.toString().equals(loginBody.getCode())){
            return AjaxResult.error("验证码错误");
//            return AjaxResult.error("验证码错误");
        }
        TbUser user = tbUserService.getOne(new LambdaQueryWrapper<TbUser>().eq(TbUser::getPhone, loginBody.getPhone()).ne(TbUser::getStatus,3).eq(TbUser::getIsDelete, 0));
        if(user!=null && user.getStatus()==2){
@@ -152,6 +153,27 @@
    }
    @ApiOperation(value = "授权小程序,获取用户信息",tags = {"登录模块"})
    @PostMapping("/openIdByCode")
    public R<?> openIdByCode(@RequestBody AppletUserEncrypteData data) {
        log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", data.getCode());
        WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, wxConfig, redisService);
        Code2SessionRespBody body = appletTools.getOpenIdByJscode2session(new Code2SessionResqBody().build(data.getCode()));
        String openid = body.getOpenid();
        String sessionKey = body.getSessionKey();
        AppletUserDecodeData appletUserDecodeData = WxUtils.encryptedData(data.getEncryptedData(), sessionKey,  data.getIv());
        appletUserDecodeData.setOpenId(openid);
        // 先使用openId和当前手机号进行查询
        TbUser user = tbUserService.getOne(Wrappers.lambdaQuery(TbUser.class).eq(TbUser::getIsDelete,0).ne(TbUser::getStatus,3)
                .and(e->e.eq(TbUser::getOpenId, appletUserDecodeData.getOpenId()).or()
                        .eq(TbUser::getPhone, appletUserDecodeData.getPhoneNumber())));
        if (user!=null){
            user.setOpenId(appletUserDecodeData.getOpenId());
            user.updateById();
        }
        return R.ok();
    }
    @ApiOperation(value = "发送验证码",tags = {"登录模块"})
    @PostMapping("/sendCode")
ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/CompanyController.java
@@ -25,6 +25,7 @@
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
@Slf4j
@@ -137,7 +138,9 @@
            return R.fail("该订单状态不需要确认");
        }
        order.setStatus(3);
        order.setConfirmTime(new Date());
        order.updateById();
        return R.ok();
    }
ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/OrderController.java
@@ -1,9 +1,7 @@
package com.ruoyi.web.controller.system;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
import com.github.binarywang.wxpay.exception.WxPayException;
@@ -25,9 +23,6 @@
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.MalformedURLException;
@Slf4j
@RestController
@@ -57,15 +52,16 @@
    @Autowired
    private TbAccountDetailService accountDetailService;
    @Autowired
    private TbUserService userService;
    @ApiOperation(value = "获取我的订单",tags = {"订单模块"})
    @ApiOperation(value = "获取我的订单", tags = {"订单模块"})
    @GetMapping("/getMyOrderList")
    public R<Page<MyPushCompanyListVo>> getMyOrderList(MyOrderListQuery query) {
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        Page<MyPushCompanyListVo> page = orderService.getMyOrderList(query,userId);
        Page<MyPushCompanyListVo> page = orderService.getMyOrderList(query, userId);
        return R.ok(page);
    }
@@ -75,109 +71,126 @@
     * @param
     * @return
     */
    @ApiOperation(value = "立即支付前填写信息",tags = {"订单模块"})
    @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())){
        if (dto.getNeedRename() == 1) {
            if (StringUtils.isEmpty(dto.getBackupsName())) {
                return R.fail("请填写备选名称");
            }
        }
        if(!tbOrder.getUserId().equals(userId.toString())){
        if (!tbOrder.getUserId().equals(userId.toString())) {
            return R.fail("非法操作");
        }
        if(tbOrder.getStatus()!=3){
        if (tbOrder.getStatus() != 3) {
            return R.fail("订单状态错误");
        }
        TbCompany company = companyService.getById(tbOrder.getCompanyId());
        // 判断是否在支付前下架了  或者删除了
        if(company==null || company.getStatus()!=1 || company.getIsDelete()==1){
        if (company == null || company.getStatus() == 2 || company.getIsDelete() == 1) {
            return R.fail("该公司已下架或者删除");
        }
        long count = buyerCompanyInfoService.count(new LambdaQueryWrapper<TbBuyerCompanyInfo>().eq(TbBuyerCompanyInfo::getOrderId, dto.getOrderId()));
        if(count>0){
        if (count > 0) {
            return R.fail("请勿重复填写");
        }
        orderService.lastPayOrderData(tbOrder,dto,userId,company);
        orderService.lastPayOrderData(tbOrder, dto, userId, company);
        return R.ok();
    }
    @ApiOperation(value = "立即支付",tags = {"订单模块"})
    @ApiOperation(value = "立即支付", tags = {"订单模块"})
    @PostMapping("/payOrder")
    public R<WxPayMpOrderResult> payOrder(String orderId) {
         if(StringUtils.isEmpty(orderId)){
        if (StringUtils.isEmpty(orderId)) {
            R.fail("订单id不能为空");
        }
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        TbOrder tbOrder = orderService.getById(orderId);
        if(!tbOrder.getUserId().equals(userId.toString())){
        if (!tbOrder.getUserId().equals(userId.toString())) {
            return R.fail("非法操作");
        }
        if(tbOrder.getStatus()!=3){
        TbUser user = userService.getById(userId);
        if(StringUtils.isEmpty(user.getOpenId())){
            return R.fail(602,"需要授权微信小程序");
        }
        if (tbOrder.getStatus() != 3) {
            return R.fail("订单状态错误");
        }
        TbCompany company = companyService.getById(tbOrder.getCompanyId());
        // 判断是否在支付前下架了  或者删除了
        if(company==null || company.getStatus()!=1 || company.getIsDelete()==1){
        if (company == null || company.getStatus() == 2 || company.getIsDelete() == 1) {
            return R.fail("该公司已下架或者删除");
        }
        long count = buyerCompanyInfoService.count(new LambdaQueryWrapper<TbBuyerCompanyInfo>().eq(TbBuyerCompanyInfo::getOrderId,orderId));
        if(count==0){
        long count = buyerCompanyInfoService.count(new LambdaQueryWrapper<TbBuyerCompanyInfo>().eq(TbBuyerCompanyInfo::getOrderId, orderId));
        if (count == 0) {
            return R.fail("请先填写信息");
        }
        WxPayMpOrderResult result = orderService.payOrder(tbOrder,userId);
        WxPayMpOrderResult result = orderService.payOrder(tbOrder, userId);
        return R.ok(result);
    }
    @ApiOperation(value = "下单预定",tags = {"订单模块"})
    @ApiOperation(value = "下单预定", tags = {"订单模块"})
    @PostMapping("/placeOrder")
    public synchronized R<?> placeOrder(String companyId) {
        if(StringUtils.isEmpty(companyId)){
        if (StringUtils.isEmpty(companyId)) {
            R.fail("id不能为空");
        }
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        // 查看现在是否可以单 判断这个公司是否上架  是否已经产生的了订单
        TbCompany company = companyService.getById(companyId);
        if(company.getStatus()!=1){
        if (company == null) {
            return R.fail("公司不存在");
        }
        if (company.getUserId().equals(userId.toString())) {
            return R.fail("不能预定自己发布的公司");
        }
        if (company.getStatus() == 2) {
            return R.fail("公司未上架");
        }
        if (company.getStatus() == 3) {
            return R.fail("公司已售卖");
        }
        if (company.getStatus() == 4) {
            return R.fail("公司已被预定");
        }
//        long count = orderService.count(new LambdaQueryWrapper<TbOrder>().eq(TbOrder::getCompanyId, companyId).ne(TbOrder::getStatus, -1));
        if (company.getStatus()==4) {
        if (company.getStatus() == 4) {
            return R.fail("改公司已被预定");
        }
        orderService.placeOrder(companyId,company,userId);
        orderService.placeOrder(companyId, company, userId);
        return R.ok();
    }
    @ApiOperation(value = "买家完成订单",tags = {"订单模块"})
    @ApiOperation(value = "买家完成订单", tags = {"订单模块"})
    @PostMapping("/buyerSuccessOrder")
    public synchronized R<?> buyerSuccessOrder(String orderId) {
        if(StringUtils.isEmpty(orderId)){
        if (StringUtils.isEmpty(orderId)) {
            R.fail("订单id不能为空");
        }
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        TbOrder order = orderService.getById(orderId);
        if(order==null){
        if (order == null) {
            return R.fail("订单不存在");
        }
        TbCompany company = companyService.getById(order.getCompanyId());
        if (!order.getUserId().equals(userId.toString())) {
            return R.fail("非法操作");
        }
        if(order.getStatus()!=5){
        if (order.getStatus() != 5) {
            return R.fail("该订单状态不能完成");
        }
        // 订单完成  商品已售卖
@@ -186,8 +199,7 @@
        company.setStatus(3);
        // 分佣
        orderService.commission(order,company.getUserId());
        orderService.commission(order, company.getUserId());
        // 卖家账户明细记录更新
        TbAccountDetail one = accountDetailService.getOne(new LambdaQueryWrapper<TbAccountDetail>().eq(TbAccountDetail::getOrderId, orderId).eq(TbAccountDetail::getCategory, 2));
@@ -202,46 +214,46 @@
    }
    @ApiOperation(value = "买家回复进度",tags = {"订单模块"})
    @ApiOperation(value = "买家回复进度", tags = {"订单模块"})
    @PostMapping("/buyerAddSchedule")
    public synchronized R<?> buyerAddSchedule(@RequestBody @Valid AddScheduleDto dto) {
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        TbOrder order = orderService.getById(dto.getOrderId());
        if(order==null){
        if (order == null) {
            return R.fail("订单不存在");
        }
        if (!order.getUserId().equals(userId.toString())) {
            return R.fail("非法操作");
        }
        if(order.getStatus()!=4){
        if (order.getStatus() != 4) {
            return R.fail("该订单状态不能回复");
        }
        scheduleService.buyerAddSchedule(dto,userId);
        scheduleService.buyerAddSchedule(dto, userId);
        String userId1 = companyService.getById(order.getCompanyId()).getUserId();
        messageService.addMessage("您的订单有新的回复", userId1,order.getId());
        messageService.addMessage("您的订单有新的回复", userId1, order.getId());
        return R.ok();
    }
    @ApiOperation(value = "买家取消订单",tags = {"订单模块"})
    @ApiOperation(value = "买家取消订单", tags = {"订单模块"})
    @PostMapping("/buyerCancelOrder")
    public synchronized R<?> buyerCancelOrder(String orderId) {
        if(StringUtils.isEmpty(orderId)){
        if (StringUtils.isEmpty(orderId)) {
            R.fail("订单id不能为空");
        }
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        TbOrder order = orderService.getById(orderId);
        if(order==null){
        if (order == null) {
            return R.fail("订单不存在");
        }
        if (!order.getUserId().equals(userId.toString())) {
            return R.fail("非法操作");
        }
        if(order.getStatus()!=3){
        if (order.getStatus() != 3) {
            return R.fail("该订单状态不能取消");
        }
        TbCompany company = companyService.getById(order.getCompanyId());
@@ -250,23 +262,22 @@
        order.setStatus(-1);
        order.updateById();
        messageService.addMessage("您发布的订单买家已取消", company.getUserId(),order.getId());
        messageService.addMessage("您发布的订单买家已取消", company.getUserId(), order.getId());
        return R.ok();
    }
    @ApiOperation(value = "编辑办理进度",tags = {"发布模块"})
    @ApiOperation(value = "编辑办理进度", tags = {"发布模块"})
    @PostMapping("/updateSchedule")
    public R<?> updateSchedule(@RequestBody @Valid EditScheduleDto dto) {
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        TbSchedule schedule = scheduleService.getById(dto.getScheduleId());
        if(schedule==null){
        if (schedule == null) {
            return R.fail("进度不存在");
        }
        if(!schedule.getUserId().equals(userId.toString())){
        if (!schedule.getUserId().equals(userId.toString())) {
            return R.fail("非法操作");
        }
        schedule.setText(dto.getText());
@@ -276,24 +287,21 @@
    }
    @ApiOperation(value = "删除办理进度",tags = {"发布模块"})
    @ApiOperation(value = "删除办理进度", tags = {"发布模块"})
    @DeleteMapping("/delSchedule/{scheduleId}")
    public R<?> delSchedule(@PathVariable("scheduleId") String scheduleId) {
        LoginUser loginUser = tokenService.getLoginUser();
        Long userId = loginUser.getUserId();
        TbSchedule schedule = scheduleService.getById(scheduleId);
        if(schedule==null){
        if (schedule == null) {
            return R.fail("进度不存在");
        }
        if(!schedule.getUserId().equals(userId.toString())){
        if (!schedule.getUserId().equals(userId.toString())) {
            return R.fail("非法操作");
        }
        scheduleService.removeById(scheduleId);
        return R.ok();
    }
    /**
@@ -308,7 +316,6 @@
            throw new RuntimeException(e);
        }
    }
}
ruoyi-applet/src/main/java/com/ruoyi/web/core/config/WeChatPayConfig.java
New file
@@ -0,0 +1,33 @@
package com.ruoyi.web.core.config;
import com.github.binarywang.wxpay.config.WxPayConfig;
import com.github.binarywang.wxpay.service.WxPayService;
import com.github.binarywang.wxpay.service.impl.WxPayServiceImpl;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.utils.wx.WxProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class WeChatPayConfig {
    @Autowired
    private WxProperties wxProperties;
    @Bean
    @ConditionalOnMissingBean
    public WxPayService wxService() {
        WxPayConfig payConfig = new WxPayConfig();
        payConfig.setAppId(StringUtils.trimToNull(this.wxProperties.getMemberAppId()));
        payConfig.setMchId(StringUtils.trimToNull(this.wxProperties.getMchId()));
        payConfig.setMchKey(StringUtils.trimToNull(this.wxProperties.getMchKey()));
        payConfig.setKeyPath(StringUtils.trimToNull(this.wxProperties.getKeyPath()));
        // 可以指定是否使用沙箱环境
        payConfig.setUseSandboxEnv(false);
        WxPayService wxPayService = new WxPayServiceImpl();
        wxPayService.setConfig(payConfig);
        return wxPayService;
    }
}
ruoyi-applet/src/main/resources/application-test.yml
@@ -207,8 +207,6 @@
  mchId: 1703389452  #微信支付商户号
  mchKey: t30dr8AnRWPQenwCpwik34hZGBHppnNi #微信支付商户密钥
  keyPath: /opt/cert/apiclient_cert.p12 # p12证书的位置
  staffAppId: wx31807bd6af726966
  staffAppSecret: 2c4934ec41ffe8aec6712  564617c396b
  callbackPath: https://api.dshl.vip/WalletApi/WX/callback
  notifyUrl: http://127.0.0.1:9081/order/WX/zxsCallback
ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java
@@ -91,4 +91,10 @@
     * 系统警告消息
     */
    public static final int WARN = 601;
    /**
     * 系统内部错误 需要绑定微信
     */
    public static final int NEED_OPENID = 602;
}
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/R.java
@@ -18,6 +18,9 @@
    /** 失败 */
    public static final int FAIL = HttpStatus.ERROR;
    public static final int NEED_OPENID = HttpStatus.NEED_OPENID;
    private int code;
    private String msg;
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
@@ -34,4 +34,7 @@
    @ApiModelProperty(value = "邀请人用户id")
    private String inviteId;
    @ApiModelProperty(value = "微信授权code")
    private String jscode;
}
ruoyi-system/src/main/java/com/ruoyi/system/bo/DeployBO.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessAgreeBO.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessCreateBO.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessModuleUpdateBO.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessRefuseBO.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessStartBO.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessTaskListBO.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessTemplatePageBO.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/bo/ProcessUpdateBO.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/export/ContractExport.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/export/OpticalInspectionExport.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TBankFlowImportExcel.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/importExcel/TCheckImportExcel.java
File was deleted
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TbQuestionMapper.java
New file
@@ -0,0 +1,17 @@
package com.ruoyi.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.system.model.TbQuestion;
/**
 * <p>
 * 常见问题 Mapper 接口
 * </p>
 *
 * @author administrator
 * @since 2025-05-30
 */
public interface TbQuestionMapper extends BaseMapper<TbQuestion> {
}
ruoyi-system/src/main/java/com/ruoyi/system/model/TbOrder.java
@@ -71,8 +71,8 @@
    @TableField("pay_time")
    private Date payTime;
    @TableField("shareUserId")
    private String share_user_id;
    @TableField("share_user_id")
    private String shareUserId;
    @TableField("commission_price")
    private BigDecimal commissionPrice;
ruoyi-system/src/main/java/com/ruoyi/system/model/TbQuestion.java
New file
@@ -0,0 +1,62 @@
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.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
 * <p>
 * 常见问题
 * </p>
 *
 * @author administrator
 * @since 2025-05-30
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("tb_question")
public class TbQuestion extends Model<TbQuestion> {
    private static final long serialVersionUID = 1L;
    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 问题标题
     */
    @ApiModelProperty("问题标题")
    private String title;
    /**
     * 问题回答
     */
    @ApiModelProperty("问题回答")
    private String answer;
    /**
     * 删除标志(0-未删除,1-已删除)
     */
    @TableField("del_flag")
    private Integer delFlag;
    /**
     * 显示顺序
     */
    @ApiModelProperty("显示顺序")
    @TableField("order_num")
    private Integer orderNum;
}
ruoyi-system/src/main/java/com/ruoyi/system/service/TbBuyerCompanyInfoService.java
New file
@@ -0,0 +1,17 @@
package com.ruoyi.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.model.TbBuyerCompanyInfo;
/**
 * <p>
 * 用户支付前填写信息 服务类
 * </p>
 *
 * @author administrator
 * @since 2025-05-28
 */
public interface TbBuyerCompanyInfoService extends IService<TbBuyerCompanyInfo> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/TbQuestionService.java
New file
@@ -0,0 +1,17 @@
package com.ruoyi.system.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.model.TbQuestion;
/**
 * <p>
 * 常见问题 服务类
 * </p>
 *
 * @author administrator
 * @since 2025-05-30
 */
public interface TbQuestionService extends IService<TbQuestion> {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbCompanyServiceImpl.java
@@ -8,7 +8,6 @@
import com.ruoyi.system.dto.EditCompanyDto;
import com.ruoyi.system.dto.PushCompanyDto;
import com.ruoyi.system.mapper.TbCompanyMapper;
import com.ruoyi.system.mapper.TbOpeningBankMapper;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.CompanyListQuery;
import com.ruoyi.system.query.MyPushCompanyListQuery;
@@ -17,8 +16,6 @@
import com.ruoyi.system.vo.CustomerInfoVo;
import com.ruoyi.system.vo.IndexCompanyListVo;
import com.ruoyi.system.vo.MyPushCompanyListVo;
import org.apache.poi.ss.formula.functions.T;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -123,6 +120,9 @@
            queryWrapper.orderByDesc(TbCompany::getCreateTime);
        }
        Page<TbCompany> companyPage = this.baseMapper.selectPage(page, queryWrapper);
        if(companyPage.getRecords().isEmpty()){
             return page1;
        }
        List<Integer> ids = companyPage.getRecords().stream().map(TbCompany::getCompanyIndustryId).collect(Collectors.toList());
        List<TbIndustry> tbIndustries = industryService.list(new LambdaQueryWrapper<TbIndustry>().in(TbIndustry::getId, ids));
        ArrayList<IndexCompanyListVo> list = new ArrayList<>();
@@ -216,6 +216,7 @@
        // 当前未产生订单
        if (tbCompany.getStatus() == 1) {
            companyDetailVo.setStatus(1);
            return companyDetailVo;
        }
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbOrderServiceImpl.java
@@ -20,24 +20,18 @@
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.List;
import java.util.Objects;
import java.util.Optional;
/**
 * <p>
@@ -57,7 +51,6 @@
    @Resource
    private WxPayService wxPayService;
    @Autowired
    private TbSystemConfigService configService;
@@ -80,7 +73,8 @@
    @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;
    }
@@ -127,7 +121,7 @@
                    BigDecimal userCommissionMoney = divide1.multiply(price).setScale(2, RoundingMode.HALF_UP);
                    order.setCommissionPrice(userCommissionMoney);
                }
                order.setShare_user_id(user.getInviteId());
                order.setShareUserId(user.getInviteId());
                order.setCommissionPlatform(platformCommissionMoney);
            }
            order.updateById();
@@ -164,7 +158,7 @@
    @Override
    public void commission(TbOrder order,String userId) {
        String shareUserId = order.getShare_user_id();
        String shareUserId = order.getShareUserId();
        if(StringUtils.isNotEmpty(shareUserId)){
            TbUser shareUser = userService.getById(shareUserId);
            BigDecimal add = shareUser.getBalance().add(order.getCommissionPrice());
@@ -188,9 +182,6 @@
        BigDecimal add = user.getBalance().add(decimal);
        user.setBalance(add);
        user.updateById();
    }
@@ -249,6 +240,7 @@
            wxPayUnifiedOrderRequest.setBody("购买商品");
            wxPayUnifiedOrderRequest.setOutTradeNo(outTradeNo);
            wxPayUnifiedOrderRequest.setTotalFee(amountInFen);// 元转成分
            wxPayUnifiedOrderRequest.setOpenid(openId);
            wxPayUnifiedOrderRequest.setSpbillCreateIp(
                    InetAddress.getLoopbackAddress().getHostAddress());
            wxPayUnifiedOrderRequest.setTradeType("JSAPI");
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbQuestionServiceImpl.java
New file
@@ -0,0 +1,21 @@
package com.ruoyi.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.mapper.TbQuestionMapper;
import com.ruoyi.system.model.TbQuestion;
import com.ruoyi.system.service.TbQuestionService;
import org.springframework.stereotype.Service;
/**
 * <p>
 * 常见问题 服务实现类
 * </p>
 *
 * @author administrator
 * @since 2025-05-30
 */
@Service
public class TbQuestionServiceImpl extends ServiceImpl<TbQuestionMapper, TbQuestion> implements TbQuestionService {
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TbShareholderServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.mapper.TbShareholderMapper;
import com.ruoyi.system.model.TbShareholder;
import com.ruoyi.system.service.TbShareholderService;
ruoyi-system/src/main/java/com/ruoyi/system/task/jobs/StateProcessJob.java
@@ -1,17 +1,5 @@
package com.ruoyi.system.task.jobs;
import com.aizuda.bpm.engine.entity.FlwTaskActor;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.system.bo.ProcessAgreeBO;
import com.ruoyi.system.task.base.AbstractJob;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import java.util.Objects;
/**
 * 发票定时任务
 * @author Administrator
ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/WxProperties.java
@@ -13,7 +13,7 @@
    private String memberAppId;
    private String memberAppSecret;
    private String appId;
    /**
     * 微信支付商户号
     */
@@ -108,11 +108,5 @@
        this.staffAppSecret = staffAppSecret;
    }
    public String getAppId() {
        return appId;
    }
    public void setAppId(String appId) {
        this.appId = appId;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/tools/WxAppletTools.java
@@ -2,6 +2,7 @@
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.system.utils.wx.WxProperties;
import com.ruoyi.system.utils.wx.body.resp.AccessTokenRespBody;
import com.ruoyi.system.utils.wx.body.resp.Code2SessionRespBody;
import com.ruoyi.system.utils.wx.body.resq.Code2SessionResqBody;
@@ -57,11 +58,11 @@
     * errmsg    string    错误信息
     */
    public static String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}";
    private WeixinProperties wxConfig;
    private WxProperties wxConfig;
    private RestTemplate wxRestTemplate;
    private RedisService redisService;
    public WxAppletTools(RestTemplate wxRestTemplate, WeixinProperties wxConfig, RedisService redisService) {
    public WxAppletTools(RestTemplate wxRestTemplate, WxProperties wxConfig, RedisService redisService) {
        this.wxRestTemplate = wxRestTemplate;
        this.wxConfig = wxConfig;
        this.redisService = redisService;
@@ -73,7 +74,7 @@
     * @param wxConfig
     * @return
     */
    public WxAppletTools build(WeixinProperties wxConfig) {
    public WxAppletTools build(WxProperties wxConfig) {
        this.wxConfig = wxConfig;
        return this;
    }
@@ -84,7 +85,7 @@
     */
    public Code2SessionRespBody getOpenIdByJscode2session(Code2SessionResqBody resqBody) {
        long start = System.currentTimeMillis();
        String requestUrl = MessageFormat.format(JSCODE_2_SESSION_URL, wxConfig.getAppId(), wxConfig.getSecretId(), resqBody.getJsCode());
        String requestUrl = MessageFormat.format(JSCODE_2_SESSION_URL, wxConfig.getMemberAppId(), wxConfig.getMemberAppSecret(), resqBody.getJsCode());
        long end = System.currentTimeMillis();
        log.info("code换取sessionKey时间:{}", (end - start));
        String respBody = wxRestTemplate.getForEntity(requestUrl, String.class).getBody();
@@ -108,7 +109,7 @@
        if (StringUtils.hasLength(accessToken)) {
            return accessToken;
        }
        String requestUrl = MessageFormat.format(ACCESS_TOKEN_URL, wxConfig.getAppId(), wxConfig.getSecretId());
        String requestUrl = MessageFormat.format(ACCESS_TOKEN_URL, wxConfig.getMemberAppId(), wxConfig.getMemberAppSecret());
        String respBody = wxRestTemplate.getForEntity(requestUrl, String.class).getBody();
        AccessTokenRespBody accessTokenRespBody = WxJsonUtils.parseObject(respBody, AccessTokenRespBody.class);
        // 判断有误异常
ruoyi-system/src/main/resources/mapper/system/TbQuestionMapper.xml
New file
@@ -0,0 +1,14 @@
<?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.TbQuestionMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TbQuestion">
        <id column="id" property="id" />
        <result column="title" property="title" />
        <result column="answer" property="answer" />
        <result column="order_num" property="orderNum" />
        <result column="del_flag" property="delFlag" />
    </resultMap>
</mapper>
ruoyi-system/src/main/resources/mapper/system/TbSystemConfigMapper.xml
@@ -1,5 +1,5 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<?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.TbSystemConfigMapper">
    <!-- 通用查询映射结果 -->