xuhy
2025-08-25 0ef46975993c06e780ec4981d7535167673aa51d
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TIntegralController.java
@@ -14,15 +14,13 @@
import com.ruoyi.other.api.domain.IntegralRecord;
import com.ruoyi.other.api.domain.ServicePay;
import com.ruoyi.other.api.domain.TIntegralRule;
import com.ruoyi.other.api.dto.NativePayDTO;
import com.ruoyi.other.query.IntegralListQuery;
import com.ruoyi.other.service.TIntegralPayService;
import com.ruoyi.other.service.TIntegralRecordService;
import com.ruoyi.other.service.TIntegralRuleService;
import com.ruoyi.other.service.TServicePayService;
import com.ruoyi.other.util.MyQrCodeUtil;
import com.ruoyi.other.util.ObsUploadUtil;
import com.ruoyi.other.util.QRCodeUtil;
import com.ruoyi.other.util.UUIDUtil;
import com.ruoyi.other.util.*;
import com.ruoyi.other.util.pay.CreateLinkStringByGet1;
import com.ruoyi.other.util.pay.HttpRequester;
import com.ruoyi.other.util.pay.HttpRespons;
@@ -42,6 +40,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -122,13 +121,25 @@
        ServicePay one = servicePayService.lambdaQuery().eq(ServicePay::getPayStatus, 2)
                .eq(ServicePay::getUserId, userid).orderByDesc(ServicePay::getCreateTime)
                .last("limit 1").one();
        if (one!=null){
        ServicePay servicePayBefore = servicePayService.lambdaQuery()
                .eq(ServicePay::getUserId, userid)
                .eq(ServicePay::getPayStatus,2)
                .eq(ServicePay::getDelFlag,0)
                .orderByDesc(ServicePay::getCreateTime)
                .last("limit 1")
                .one();
        if (servicePayBefore==null){
            workPlatformVO.setServiceStatus(1);
            workPlatformVO.setEndTime(one.getEndTime());
        } else if (servicePayBefore.getEndTime().isBefore(LocalDateTime.now())) {
            workPlatformVO.setServiceStatus(2);
            workPlatformVO.setEndTime(servicePayBefore.getEndTime());
        }else{
            workPlatformVO.setServiceStatus(0);
            workPlatformVO.setEndTime(null);
            workPlatformVO.setServiceStatus(3);
            workPlatformVO.setEndTime(servicePayBefore.getEndTime());
        }
        return R.ok(workPlatformVO);
@@ -146,7 +157,12 @@
        integralVO.setIntegral(integral);
        return R.ok(integralVO);
    }
    @ApiOperation(tags = {"2.0-积分钱包"}, value = "获取积分充值比例")
    @PostMapping(value = "/getPointPercent")
    public R getPointPercent() {
        SysConfig data1 = sysConfigClient.getInfo(8L).getData();
        return R.ok(data1.getConfigValue());
    }
    @ApiOperation(tags = {"2.0-积分钱包"}, value = "查询支付结果 true成功 false失败")
    @PostMapping(value = "/queryPayStatus")
    public R buy(@RequestParam Integer id) {
@@ -157,15 +173,25 @@
            return R.ok(false);
        }
    }
    @Resource
    private WeChatUtil weChatUtil;
    @PostMapping("/nativePay")
    @ApiOperation(tags = {"2.0-积分钱包"}, value = "获取支付二维码")
    public R nativePay(@RequestParam("amount") String amount) throws Exception {
        BigDecimal bigDecimal = new BigDecimal(amount);
        BigDecimal money = bigDecimal.setScale(2, RoundingMode.HALF_UP);
        Long userid = tokenService.getLoginUser().getUserid();
        R<SysUser> sysUser = sysUserClient.getSysUser(userid);
        SysUser data = sysUser.getData();
    public R nativePay(@RequestBody @Validated NativePayDTO dto) throws Exception {
        R<SysUser> sysUserR = sysUserClient.queryUserByPhone(dto.getPhone());
        SysUser data = sysUserR.getData();
        //使用jscode获取微信openid
        Map<String, Object> map = weChatUtil.code2Session(dto.getJsCode());
        Integer errcode = Integer.valueOf(map.get("errcode").toString());
        if(0 != errcode){
            return R.fail(map.get("msg").toString());
        }
        String openid = map.get("openid").toString();
        data.setOpenId(openid);
        BigDecimal amount = dto.getAmount();
        BigDecimal money = amount.setScale(2, RoundingMode.HALF_UP);
        List<Site> sites = siteClient.getSiteAll().getData();
        Site site = sites.stream().filter(e -> e.getId().equals(data.getSiteId())).findFirst().orElse(null);
        if (site==null){
@@ -173,15 +199,19 @@
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
        ServicePay servicePay = new ServicePay();
        servicePay.setUserId(data.getUserId());
        servicePay.setAmount(site.getAnnualServiceFee());
        servicePay.setCode(code);
        servicePay.setPayStatus(1);
        servicePay.setPayType(1);
        servicePay.setDelFlag(0);
        servicePay.setCreateTime(LocalDateTime.now());
        servicePayService.save(servicePay);
        IntegralPay integralPay = new IntegralPay();
        integralPay.setUserId(data.getUserId());
        SysConfig data1 = sysConfigClient.getInfo(8L).getData();
        BigDecimal bigDecimal = amount.multiply(new BigDecimal(data1.getConfigValue())).setScale(2, RoundingMode.HALF_DOWN);
        integralPay.setIntegralCount(bigDecimal.intValue());
        integralPay.setAmount(amount);
        integralPay.setCode(code);
        integralPay.setPayStatus(1);
        integralPay.setDelFlag(0);
        integralPay.setCreateTime(LocalDateTime.now());
        integralPayService.save(integralPay);
//        return wechatPayService.unifiedOrderApplet(servicePay.getId()+"",code, site.getAnnualServiceFee()+"", "服务费缴纳",data.getOpenId(), "/other/wx/serviceCallback");
@@ -264,6 +294,7 @@
        }
        System.out.println("接收返回参数:" + response.toString());
        sysUserClient.updateSysUser(data);
        return R.ok(response.toString());
    }
    @Autowired
@@ -282,15 +313,19 @@
        }
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
        ServicePay servicePay = new ServicePay();
        servicePay.setUserId(data.getUserId());
        servicePay.setAmount(site.getAnnualServiceFee());
        servicePay.setCode(code);
        servicePay.setPayStatus(1);
        servicePay.setPayType(1);
        servicePay.setDelFlag(0);
        servicePay.setCreateTime(LocalDateTime.now());
        servicePayService.save(servicePay);
        IntegralPay integralPay = new IntegralPay();
        integralPay.setUserId(data.getUserId());
        SysConfig data1 = sysConfigClient.getInfo(8L).getData();
        BigDecimal bigDecimal = amount.multiply(new BigDecimal(data1.getConfigValue())).setScale(2, RoundingMode.HALF_DOWN);
        integralPay.setIntegralCount(bigDecimal.intValue());
        integralPay.setAmount(amount);
        integralPay.setCode(code);
        integralPay.setPayStatus(1);
        integralPay.setDelFlag(0);
        integralPay.setCreateTime(LocalDateTime.now());
        integralPayService.save(integralPay);
//        return wechatPayService.unifiedOrderApplet(servicePay.getId()+"",code, site.getAnnualServiceFee()+"", "服务费缴纳",data.getOpenId(), "/other/wx/serviceCallback");
@@ -513,17 +548,17 @@
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser data = sysUserClient.getSysUser(userid).getData();
        if (data != null && data.getSiteId() != null) {
        if (data != null ) {
            if (data.getRoleType() == 1) {
                // 平台
                SysConfig data1 = sysConfigClient.getInfo(8L).getData();
                sysConfigClient.update(data1);
                TIntegralRule tIntegralRule = new TIntegralRule();
                tIntegralRule.setChargeCredit(data1.getConfigValue());
                tIntegralRule.setChargeCredit("{\"num1\":"+data1.getConfigValue()+"}");
                tIntegralRule.setContent(data1.getRemark());
                tIntegralRule.setSiteId(0);
                return R.ok(tIntegralRule);
            } else if (data.getRoleType() == 3){
            } else if (data.getRoleType() == 2){
                TIntegralRule res = integralRuleService.lambdaQuery().eq(TIntegralRule::getSiteId, data.getSiteId()).one();
                return R.ok(res);
            }else{
@@ -550,7 +585,9 @@
        if (data.getRoleType() == 1) {
            SysConfig data1 = sysConfigClient.getInfo(8L).getData();
            data1.setConfigValue(dto.getChargeCredit());
            JSONObject jsonObject = JSONObject.parseObject(dto.getChargeCredit());
            Integer num1 = jsonObject.getInteger("num1");
            data1.setConfigValue(num1.toString());
            data1.setRemark(dto.getContent());
            sysConfigClient.update(data1);
        } else {