无关风月
2025-08-26 960380f89c9371ba309d6c50b1ab1b677ea74575
Merge remote-tracking branch 'origin/dev' into dev
23个文件已修改
177 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/ChargeOrderExport.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderExport.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/ChargeOrderMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TServiceController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
@@ -104,6 +104,11 @@
            public R delSysUserById(Long userId) {
                return R.fail("根据id删除管理员账户失败:" + cause.getMessage());
            }
            @Override
            public R<SysUser> queryUserBySiteId(Integer siteId) {
                return R.fail("根据站点id查询账户失败:" + cause.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
@@ -6,10 +6,7 @@
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.factory.SysUserFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -131,4 +128,13 @@
     */
    @PostMapping("/user/delSysUserById")
    R delSysUserById(@RequestParam("userId") Long userId);
    /**
     * 通过站点id查询用户
     * @param siteId
     * @return
     */
    @GetMapping("/user/queryUserBySiteId")
    R<SysUser>  queryUserBySiteId(@RequestParam("siteId")Integer siteId);
}
ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -62,7 +62,8 @@
            String status = otherClient.getServiceStatus(data.getUserId().intValue()).getData();
            switch (status){
                case "1":
                    return R.fail("未缴纳服务费");
//                    return R.fail("未缴纳服务费");
                    break;
                case "2":
                    return R.fail("服务费已过期");
            }
@@ -98,7 +99,8 @@
            String status = otherClient.getServiceStatus(data.getUserId().intValue()).getData();
            switch (status){
                case "1":
                    return R.fail("未缴纳服务费");
//                    return R.fail("未缴纳服务费");
                    break;
                case "2":
                    return R.fail("服务费已过期");
            }
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -726,4 +726,9 @@
        userService.deleteUserById(userId);
        return R.ok();
    }
    @GetMapping("/queryUserBySiteId")
    public R queryUserBySiteId(@RequestParam("siteId") Integer siteId){
        SysUser user = userService.selectUserBySiteId(siteId);
        return R.ok(user);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -153,4 +153,7 @@
     * @return
     */
    List<SysUser> getChangeUserList(@Param("pageInfo")PageInfo<SysUser> pageInfo,@Param("query") ChangeUserQuery query);
    SysUser selectUserBySiteId(@Param("siteId")Integer siteId);
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -229,4 +229,6 @@
     * @return
     */
    PageInfo<SysUser> getChangeUserList(ChangeUserQuery query);
    SysUser selectUserBySiteId(Integer siteId);
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -600,4 +600,9 @@
        return pageInfo.setRecords(list);
    }
    
    @Override
    public SysUser selectUserBySiteId(Integer siteId) {
        return this.baseMapper.selectUserBySiteId(siteId);
    }
}
ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/SysUserMapper.xml
@@ -203,6 +203,11 @@
        select user_id, user_name from sys_user where nick_name = #{nickName}
        and del_flag = '0' limit 1
    </select>
    <select id="selectUserBySiteId" resultType="com.ruoyi.system.api.domain.SysUser">
        select u.user_id as userId, u.dept_id as deptId, u.user_name as userName, u.nick_name as nickName, u.email, u.avatar, u.phonenumber, u.password,
               u.sex, u.status, u.del_flag as delFlag, u.login_ip as loginIp, u.login_date as loginDate, u.role_type as roleType,
               u.create_by as createBy, u.create_time as createTime, u.remark from sys_user u where u.del_flag = '0' and u.status = '0' and u.site_id = #{siteId}
    </select>
    <insert id="insertUser" parameterType="com.ruoyi.system.api.domain.SysUser" useGeneratedKeys="true" keyProperty="userId">
         insert into sys_user(
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -571,7 +571,7 @@
        if (result == null || result.get("total_points") == null) {
            userStatistics.setTotalScore(0L);
        }else {
            userStatistics.setTotalScore(((BigDecimal) result.get("total_points")).longValue());
            userStatistics.setTotalScore(Long.valueOf(result.get("total_points").toString()));
        }
        //条件构造  消费积分现金支付金额
        queryWrapper.clear();
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -80,13 +80,8 @@
    @GetMapping("/map/getSiteList")
    @ApiOperation(value = "获取站点", tags = {"2.0-管理后台-数据分析-电站分布"})
    public R<List<GetSiteListDTO>> getMapSiteList(GetSiteList siteList){
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser data = sysUserClient.getSysUser(userid).getData();
        if (data.getRoleType()==2){
            siteList.setSiteId(data.getSiteId());
        }
        List<GetSiteListDTO> list = siteService.getSiteListNolimit(siteList);
        SysUser sysUser = tokenService.getLoginUser().getSysUser();
        List<GetSiteListDTO> list = siteService.getSiteListNolimit(siteList,sysUser);
        List<GetSiteListDTO> records = list;
        for (GetSiteListDTO record : records) {
@@ -333,8 +328,8 @@
    @PostMapping("/editSite")
    @ApiOperation(value = "编辑站点", tags = {"管理后台-站点管理"})
    @Log(title = "【站点管理】编辑站点", businessType = BusinessType.UPDATE)
    public AjaxResult editSite(@RequestBody Site site){
        return siteService.editSite(site);
    public AjaxResult editSite(@RequestBody SiteDTO dto){
        return siteService.editSite(dto);
    }
    
    @ResponseBody
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
@@ -18,6 +18,8 @@
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.log.enums.OperatorType;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.system.api.domain.SysUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -47,14 +49,16 @@
    private final TChargingPileService chargingPileService;
    private final TChargingGunService chargingGunService;
    private final TokenService tokenService;
    
    @Resource
    private RedisTemplate redisTemplate;
    @Autowired
    public TChargingPileController(TChargingPileService chargingPileService, TChargingGunService chargingGunService) {
    public TChargingPileController(TChargingPileService chargingPileService, TChargingGunService chargingGunService, TokenService tokenService) {
        this.chargingPileService = chargingPileService;
        this.chargingGunService = chargingGunService;
        this.tokenService = tokenService;
    }
    /**
@@ -103,7 +107,8 @@
    @GetMapping("/pageChargingPileList")
    @ApiOperation(value = "获取充电桩列表数据", tags = {"管理后台-充电桩信息"})
    public AjaxResult<PageInfo<PageChargingPileListDTO>> pageChargingPileList(PageChargingPileList page){
        PageInfo<PageChargingPileListDTO> list = chargingPileService.pageChargingPileList(page);
        SysUser sysUser = tokenService.getLoginUser().getSysUser();
        PageInfo<PageChargingPileListDTO> list = chargingPileService.pageChargingPileList(page,sysUser);
        return AjaxResult.success(list);
    }
    
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/ISiteService.java
@@ -11,6 +11,7 @@
import com.ruoyi.chargingPile.dto.SiteDTO;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.system.api.domain.SysUser;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
@@ -30,7 +31,7 @@
     * @return
     */
    PageInfo<GetSiteListDTO> getSiteList(GetSiteList siteList);
    List<GetSiteListDTO> getSiteListNolimit(GetSiteList siteList);
    List<GetSiteListDTO> getSiteListNolimit(GetSiteList siteList, SysUser sysUser);
    PageInfo<GetSiteListDTO> getSiteList1(Long userId);
@@ -48,7 +49,7 @@
     * @param site
     * @return
     */
    AjaxResult editSite(Site site);
    AjaxResult editSite(SiteDTO dto);
    
    
    /**
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TChargingPileService.java
@@ -8,6 +8,7 @@
import com.ruoyi.chargingPile.api.vo.TChargingPileVO;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.system.api.domain.SysUser;
import java.util.List;
@@ -27,7 +28,7 @@
     * @param page
     * @return
     */
    PageInfo<PageChargingPileListDTO> pageChargingPileList(PageChargingPileList page);
    PageInfo<PageChargingPileListDTO> pageChargingPileList(PageChargingPileList page, SysUser sysUser);
    
    
    /**
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/SiteServiceImpl.java
@@ -30,9 +30,7 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.*;
/**
 * @author zhibing.pu
@@ -65,8 +63,11 @@
    }
    @Override
    public List<GetSiteListDTO> getSiteListNolimit(GetSiteList siteList) {
        Set<Integer> ids = null;
    public List<GetSiteListDTO> getSiteListNolimit(GetSiteList siteList,SysUser sysUser) {
        Set<Integer> ids = new HashSet<>();
        if(sysUser.getRoleType() != 1){
            ids.add(sysUser.getSiteId());
        }
        List<GetSiteListDTO> list = this.baseMapper.getSiteListNolimit( siteList, ids);
        return list;
    }
@@ -98,6 +99,10 @@
        if(ajaxResult.isError()){
            return ajaxResult;
        }
        SysUser sysUser = sysUserClient.queryUserByUserName(dto.getAccount()).getData();
        if (Objects.nonNull(sysUser)){
            return AjaxResult.error("账号已存在");
        }
        Site one = this.getOne(new LambdaQueryWrapper<Site>().eq(Site::getCode, dto.getCode()).eq(Site::getDelFlag, 0));
        if(null != one){
            return AjaxResult.error("站点编号重复");
@@ -125,20 +130,52 @@
    
    /**
     * 编辑站点
     * @param site
     * @param dto
     * @return
     */
    @Override
    public AjaxResult editSite(Site site) {
        AjaxResult ajaxResult = addSiteVerify(site);
    public AjaxResult editSite(SiteDTO dto) {
        AjaxResult ajaxResult = addSiteVerify(dto);
        if(ajaxResult.isError()){
            return ajaxResult;
        }
        Site one = this.getOne(new LambdaQueryWrapper<Site>().eq(Site::getCode, site.getCode()).eq(Site::getDelFlag, 0));
        if(null != one && !one.getCode().equals(site.getCode())){
        Site one = this.getOne(new LambdaQueryWrapper<Site>().eq(Site::getCode, dto.getCode()).eq(Site::getDelFlag, 0));
        if(null != one && !one.getCode().equals(dto.getCode())){
            return AjaxResult.error("站点编号重复");
        }
        this.updateById(site);
        // 通过站点id查询登录账号
        SysUser sysUser = sysUserClient.queryUserBySiteId(dto.getId()).getData();
        // 判断是否更换了账号  更换了账号判断是否已存在
        if(null != sysUser && !sysUser.getUserName().equals(dto.getAccount())){
            SysUser sysUser1 = sysUserClient.queryUserByUserName(dto.getAccount()).getData();
            if(null != sysUser1){
                return AjaxResult.error("账号已存在");
            }
            // 添加登录账号
            SysUser user = new SysUser();
            user.setPhonenumber(dto.getAccount());
            user.setUserName(dto.getAccount());
            user.setNickName(dto.getName());
            user.setPassword(dto.getPassword());
            user.setStatus("0");
            user.setDelFlag("0");
            user.setRoleId(2L);
            user.setSiteId(dto.getId());
            R<Long> r = sysUserClient.addSysUserSite(user);
            if(200 != r.getCode()){
                throw new RuntimeException(r.getMsg());
            }
            dto.setUserId(r.getData());
            // 删除原有的登录账号
            R res = sysUserClient.delSysUserById(sysUser.getUserId());
        }
        if(Objects.nonNull(sysUser) && sysUser.getUserName().equals(dto.getAccount())) {
            // 修改密码
            R res = sysUserClient.resetPassword(sysUser);
        }
        this.updateById(dto);
        return AjaxResult.success();
    }
    
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TChargingPileServiceImpl.java
@@ -14,6 +14,7 @@
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.system.api.domain.SysUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
@@ -48,8 +49,12 @@
     * @return
     */
    @Override
    public PageInfo<PageChargingPileListDTO> pageChargingPileList(PageChargingPileList page) {
        Set<Integer> siteIds = null;
    public PageInfo<PageChargingPileListDTO> pageChargingPileList(PageChargingPileList page, SysUser sysUser) {
        // 获取当前登录账号站点
        Set<Integer> siteIds = new HashSet<>();
        if(sysUser.getRoleType() != 1){
            siteIds.add(sysUser.getSiteId());
        }
        PageInfo<PageChargingPileListDTO> pageInfo = new PageInfo<>(page.getPageCurr(), page.getPageSize());
        List<PageChargingPileListDTO> list = this.baseMapper.pageChargingPileList(pageInfo, page, siteIds);
        return pageInfo.setRecords(list);
ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/SiteMapper.xml
@@ -349,6 +349,15 @@
        <if test="null != item.siteId">
            and a.id = #{item.siteId}
        </if>
        <if test="null != item.name and item.name != ''">
            and a.name LIKE concat('%',#{item.name},'%')
        </if>
        <if test="null != ids and ids.size() > 0">
            and a.id in
            <foreach collection="ids" item="itemm" index="index" open="(" separator="," close=")">
                #{itemm}
            </foreach>
        </if>
        order by a.sort desc, a.create_time desc
    </select>
</mapper>
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -150,7 +150,7 @@
            @ApiImplicitParam(value = "订单状态", name = "status", required = true, dataType = "int"),
    })
    @GetMapping("/getMyOrderList")
    public TableDataInfo<OrderVO> getMyOrderList(@RequestParam("status") Integer status) {
    public TableDataInfo<OrderVO> getMyOrderList(@RequestParam(value = "status",required = false) Integer status) {
        startPage();
        LoginUser loginUserApplet = tokenService.getLoginUserApplet();
        return getDataTable(orderService.selectOrderListByUserId(status, loginUserApplet.getUserid()));
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/export/ChargeOrderExport.java
@@ -25,10 +25,10 @@
    private String phone;
    // 开始时间
    @Excel(name = "开始时间", width = 20)
    private LocalDateTime beginTime;
    private String beginTime;
    // 结束时间
    @Excel(name = "结束时间", width = 20)
    private LocalDateTime endTime;
    private String endTime;
    // 充电时长
    @Excel(name = "充电时长", width = 20)
    private String chargingDuration;
@@ -51,7 +51,7 @@
    @Excel(name = "终端编码", width = 20)
    private String terminalCode;
    // 车牌号
    @Excel(name = "车牌号", width = 20)
    @Excel(name = "车牌号码", width = 20)
    private String plateNumber;
    // 电站价电费金额
    @Excel(name = "电站价电费金额", width = 20)
@@ -63,6 +63,6 @@
    @Excel(name = "电站价总金额", width = 20)
    private BigDecimal totalAmount;
    //获得积分
    @Excel(name = "获得积分", width = 20)
    @Excel(name = "获得绿电分", width = 20)
    private Integer point;
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ChargeOrderServiceImpl.java
@@ -314,7 +314,7 @@
            throw new ServiceException(e.getMessage());
        }
        if(!result.isEmpty()){
            return R.fail(result);
            return R.fail(result.toString());
        }
        return R.ok();
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderExport.java
@@ -14,7 +14,6 @@
    @Excel(name = "订单状态" , readConverterExp = "3=待使用,4=已完成,5=已取消,8=已评价")
    private String orderStatus;
    /**
     * 商户单号
     */
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/ChargeOrderMapper.xml
@@ -30,7 +30,7 @@
            AND end_time between #{dto.beginTime2 } and  #{dto.endTime2  }
        </if>
        <if test="dto.siteId != null">
            AND site_id = #{dto.siteId}
            AND power_station_id = #{dto.siteId}
        </if>
      order by begin_time DESC
    </select>
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -179,13 +179,12 @@
        FROM
            t_order_good og
                LEFT JOIN t_order o ON og.order_id = o.id
        left join
        where  o.del_flag = 0 and o.pay_status = 2
        <if test="null != item.orderNumber and '' != item.orderNumber">
            and o.order_number like CONCAT('%', #{item.orderNumber}, '%')
        </if>
        <if test="null != item.goodName and '' != item.goodName">
            and good_name like CONCAT('%', #{item.goodName}, '%')
            and og.good_name like CONCAT('%', #{item.goodName}, '%')
        </if>
        <if test="null != item.appUserIds and item.appUserIds.size() > 0">
@@ -204,7 +203,7 @@
            and o.order_status in (4, 8)
        </if>
        <if test="null != item.shopIds and item.shopIds.size() > 0">
            and shop_id in
            and o.shop_id in
            <foreach collection="item.shopIds" separator="," item="tem" index="index" open="(" close=")">
                #{tem}
            </foreach>
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TServiceController.java
@@ -78,9 +78,8 @@
    // 查询服务费缴纳情况
    @GetMapping("/getServiceStatus/{userId}")
    public R<String> getServiceStatus(@PathVariable("userId") Integer userId) {
        Long userid = tokenService.getLoginUser().getUserid();
        ServicePay servicePayBefore = servicePayService.lambdaQuery()
                .eq(ServicePay::getUserId, userid)
                .eq(ServicePay::getUserId, userId)
                .eq(ServicePay::getPayStatus,2)
                .eq(ServicePay::getDelFlag,0)
                .orderByDesc(ServicePay::getCreateTime)