xuhy
2025-08-25 0993c86bcef3bc33643efbf6efa3ef380af09da9
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;
@@ -162,15 +161,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){
@@ -178,15 +187,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");
@@ -269,6 +282,7 @@
        }
        System.out.println("接收返回参数:" + response.toString());
        sysUserClient.updateSysUser(data);
        return R.ok(response.toString());
    }
    @Autowired