liujie
2026-08-26 d7fd9123c3e100e5fc8079fea8d9cacf8afd4a32
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -14,6 +14,7 @@
import com.alipay.api.response.AlipayTradeRoyaltyRelationBindResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.account.dto.*;
import com.dsh.account.entity.*;
@@ -42,10 +43,7 @@
import com.dsh.account.model.vo.classDetails.RegisteredCourse;
import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo;
import com.dsh.account.model.vo.userBenefitDetail.*;
import com.dsh.account.service.IRefereeService;
import com.dsh.account.service.TAppGiftService;
import com.dsh.account.service.TAppUserService;
import com.dsh.account.service.UserIntegralChangesService;
import com.dsh.account.service.*;
import com.dsh.account.util.*;
import com.dsh.account.util.akeylogin.Md5Util;
import com.dsh.account.util.wx.WxV3PayConfig;
@@ -54,7 +52,9 @@
import com.dsh.account.vo.entity.MonthData;
import com.dsh.account.vo.entity.WeekData;
import com.dsh.account.vo.entity.YearData;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.PageRequest;
@@ -85,6 +85,10 @@
@Service
public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService {
    private static final String SMS_COOLDOWN_KEY_PREFIX = "security:sms:cooldown:";
    private static final String SMS_PHONE_QUOTA_KEY_PREFIX = "security:sms:phone-quota:";
    private static final String SMS_IP_QUOTA_KEY_PREFIX = "security:sms:ip-quota:";
    @Resource
    private TStudentMapper tsmapper;
@@ -97,6 +101,15 @@
    @Autowired
    private RedisUtil redisUtil;
    @Value("${security.sms.cooldown-seconds:60}")
    private int smsCooldownSeconds;
    @Value("${security.sms.phone-max-per-day:5}")
    private int smsPhoneMaxPerDay;
    @Value("${security.sms.ip-max-per-day:10}")
    private int smsIpMaxPerDay;
    @Autowired
    private GDMapGeocodingUtil gdMapGeocodingUtil;
@@ -152,6 +165,8 @@
    @Resource
    private TAppUserMapper appUserMapper;
    @Autowired
    private UserAuditService userAuditService;
    @Autowired
    private TAppGiftService appGiftService;
@@ -161,6 +176,8 @@
    private String aliAppid = "2021004105665036";//支付宝appid
    // 默认头像
    private String headImg = "https://we-park-life.oss-cn-beijing.aliyuncs.com/img/f7fbeaed277a45ab9591b70dc5699cab.jpg";
    private String appPrivateKey = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQCi5i9nW/hGLJ3A06cZxTQdviFC7THpdSihoTYGLr9q006hu0V26ecBMY/o4w5bvIX0Ok/yofmZsVcCJpAPvbXL/uqVrIjnRRxXiaeBFThlxoBUTdunvbUSDYfzlEhJr5NvUKI6H6lz2niXlQGx4qy8Hau4ccWit9kM8jwUvsBVQoFgJA+xrjMvooA7YLopQtpOD+UJr5thApTSf1xrnr1W12yolTLEH15JmNV372cqXrYUuqnY0QsaPtxeqJUGAOcGdVLllQ7easEznP8DFBvDdHATcmp2SHNQDUEWN6MCVPbMgY06NQVqAXxqjTAYSVh+6TRu6bofPmpYC3TZB003AgMBAAECggEBAJAcR2+PA3NBYUYHeFrqBRMS8uX8ZR19kjZ7IgoSLTFaQsP9opRylPSPXhrPVBKAE5leRQAHn4MCSlESwHvMfxo7KFjFTFAc6dffZZpipYQUOc9bGampwJh58/3e/pyBgVMG6J23CPf/HJQtNFSkjd/V9+ayb/9l2dUEL3bC0fAZ/dbx8HsxdLw8wn3fLlWLj68hOMqa2deCZe3JdSVsPbeWqkh56FFsMLug0Nd+Ar4TgRl9/jnhXF0JWiD0LmPUYLhboY7EfUBzN4w1iYbDi1P+3zvoOYsiVKAXox9GMhQ2VzOO2UcSTuizSza2e98mGpabl/GpKmCz+RDFjtkX6eECgYEA2MyCij65eO3aGIm3FUe93DULRBYTfX8qJQSJq2WOWA3mmQlEW6L3O2B5/lG2h+8WmN6iLEs9eHpgycGYp7vAqgrANEn16ACVcuyx0scFtrZfZ+kmHMzFfiUWxJjVYk/6YngsGVBLdw6ueM42C8TTP67X9tU5TdVGoGWuqEj4W98CgYEAwFqwprXOch5Pqk/RPbb49r0Ou03K/UbciWnWWKzUhFFNS8MdlQPoDvQZbMwHLeWsa2VhaKITK3x5biLQb3U+0GLOn6lTvEyrEUH+ucREyLgVYTRAvwBPtnvlrzpyxPk2HnslQjju8WrvvLLBMKWUjlTrTOzhaHT21gz3pHMiOakCgYEAhLmfaXdBITGshb054sNLDtdCkGpbgEcrzAHdLps769iGxkYQHXHFngpQZUwtTUcoNGqIKknd1jZFrv7gsD+XkgKG7PwimehRlkwmCX5ilxtLiVgJRzRt6+5U5AMVD90a0tHzXYP0z2yjj73fBJF5KtGl0a10KZxaYrQdm1UhB00CgYBZZgzx/k9rtHC8LAqIj1CYhHejT92G53c6Gkl3vyOqN4sgKhfGmSEySfrDGPRBPZxr8ZtbIPCd5mUdberH0osWGMYFaJI1UsCy7aQwvGpniz7MhZeN7dweaOjwDs8mgtjHQ96mL4XGCDhR0BZ/wIURvZ/6iaGdhbbu9unlsWj3uQKBgQCmZYdsbbZkd3ev6f8rwyvMz+DrCQyYpY44cegBYuJgrZiQnL2fJioeN7ixX0UM48SfwsZEIrzshP/LGAwnc2MdjxKUl4jLN8SEe0NAjXOnz9Zaw740+aOmLpXcLWdP4uM2gIhWsvW1tEkQZCXmm7c9s/RsU8Pmzv+YL3+fSijOzA==";//支付宝开发者应用私钥
@@ -412,13 +429,31 @@
     * @throws Exception
     */
    @Override
    public ResultUtil getSMSCode(Integer type, String phone) throws Exception {
    public ResultUtil getSMSCode(Integer type, String phone, String clientIp) throws Exception {
        if (type == 2) {
            TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", phone).ne("state", 3));
            if (null != tAppUser) {
                return ResultUtil.error("账号已存在");
            }
        }
        String cooldownKey = SMS_COOLDOWN_KEY_PREFIX + phone;
        if (!redisUtil.setIfAbsent(cooldownKey, "1", smsCooldownSeconds)) {
            return ResultUtil.error("短信发送过于频繁,请稍后重试");
        }
        String phoneQuotaKey = SMS_PHONE_QUOTA_KEY_PREFIX + phone;
        if (!redisUtil.tryAcquireFixedWindow(phoneQuotaKey, smsPhoneMaxPerDay, 24 * 60 * 60)) {
            redisUtil.remove(cooldownKey);
            return ResultUtil.error("该手机号24小时内短信发送次数已达上限");
        }
        String ipQuotaKey = SMS_IP_QUOTA_KEY_PREFIX + clientIp;
        if (!redisUtil.tryAcquireFixedWindow(ipQuotaKey, smsIpMaxPerDay, 24 * 60 * 60)) {
            redisUtil.remove(cooldownKey);
            redisUtil.releaseFixedWindow(phoneQuotaKey);
            return ResultUtil.error("当前网络24小时内短信发送次数已达上限");
        }
        String numberRandom = UUIDUtil.getNumberRandom(6);
        String templateCode = "";
        if (type == 1 || type == 2) {
@@ -427,9 +462,29 @@
        if (type == 3 || type == 4) {
            templateCode = "SMS_160960014";
        }
        aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + numberRandom + "\"}");
        redisUtil.setStrValue(phone, numberRandom, 300);
        return ResultUtil.success();
        boolean providerAccepted = false;
        try {
            String sendResult = aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + numberRandom + "\"}");
            com.alibaba.fastjson.JSONObject response = com.alibaba.fastjson.JSONObject.parseObject(sendResult);
            if (response == null || !"OK".equalsIgnoreCase(response.getString("Code"))) {
                releaseSmsLimit(cooldownKey, phoneQuotaKey, ipQuotaKey);
                return ResultUtil.error("短信发送失败,请稍后重试");
            }
            providerAccepted = true;
            redisUtil.setStrValue(phone, numberRandom, 300);
            return ResultUtil.success();
        } catch (Exception e) {
            if (!providerAccepted) {
                releaseSmsLimit(cooldownKey, phoneQuotaKey, ipQuotaKey);
            }
            throw e;
        }
    }
    private void releaseSmsLimit(String cooldownKey, String phoneQuotaKey, String ipQuotaKey) {
        redisUtil.remove(cooldownKey);
        redisUtil.releaseFixedWindow(phoneQuotaKey);
        redisUtil.releaseFixedWindow(ipQuotaKey);
    }
    /**
@@ -462,8 +517,12 @@
        tAppUser.setProvinceCode("");
        tAppUser.setCity("");
        tAppUser.setCityCode("");
        tAppUser.setHeadImg(headImg);
        // 注册用户
        int insert = this.baseMapper.insert(tAppUser);
        String s = generateNickname(tAppUser.getId());
        tAppUser.setName(s);
        this.baseMapper.updateById(tAppUser);
        // 介绍有礼
        if (addAppUserVo.getReferralUserId() != null || ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())) {
            if (ToolUtil.isEmpty(addAppUserVo.getLat()) || ToolUtil.isEmpty(addAppUserVo.getLon())) {
@@ -551,6 +610,7 @@
            return ResultUtil.error("验证码无效", "");
        }
        TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", loginSMSCodeVo.getPhone()).ne("state", 3));
        System.out.println(tAppUser.getId()+"!!!!!!!!");
        if (null == tAppUser) {
            tAppUser = new TAppUser();
            tAppUser.setCode(UUIDUtil.getNumberRandom(16));
@@ -558,13 +618,19 @@
            tAppUser.setPassword(Md5Util.MD5Encode("111111", null));
            tAppUser.setIsVip(0);
            tAppUser.setState(1);
            tAppUser.setHeadImg(headImg);
            tAppUser.setInsertTime(new Date());
            this.baseMapper.insert(tAppUser);
            String s = generateNickname(tAppUser.getId());
            tAppUser.setName(s);
            this.baseMapper.updateById(tAppUser);
        }
        if (tAppUser.getState() == 2) {
            return ResultUtil.error("您的账号已被冻结", "");
        }
        String token = getToken(tAppUser);
        System.out.println("token"+token);
        return ResultUtil.success(token);
    }
@@ -587,8 +653,8 @@
                tAppUser.setPhone(loginWechatVo.getPhone());
                tAppUser.setPassword(Md5Util.MD5Encode("111111", null));
                tAppUser.setIsVip(0);
                tAppUser.setName(loginWechatVo.getNickname());
                tAppUser.setHeadImg(loginWechatVo.getHeadimgurl());
//                tAppUser.setName(loginWechatVo.getNickname());
                tAppUser.setHeadImg(headImg);
                tAppUser.setGender(loginWechatVo.getSex());
                tAppUser.setState(1);
                tAppUser.setInsertTime(new Date());
@@ -597,6 +663,11 @@
                tAppUser.setCity("");
                tAppUser.setCityCode("");
                this.baseMapper.insert(tAppUser);
                // 设置用户昵称为用户+id 保留6位小数 补0
                String s = generateNickname(tAppUser.getId());
                tAppUser.setName(s);
                this.baseMapper.updateById(tAppUser);
            }
        }
        if (tAppUser.getState() == 2) {
@@ -622,6 +693,26 @@
        }
        return ResultUtil.success(map);
    }
    /**
     * 根据用户ID生成固定格式的昵称
     * @param userId 用户ID
     * @return 格式化的昵称
     */
    public static String generateNickname(Integer userId) {
        if (userId == null) {
            return null;
        }
        // 将用户ID转换为字符串
        String userIdStr = String.valueOf(userId);
        // 使用String.format确保总长度为6位,不足的前面补0
        String formattedId = String.format("%06d", Long.parseLong(userIdStr));
        // 返回"用户" + 格式化后的ID
        return "用户" + formattedId;
    }
    /**
     * 获取JWT token和存储个人信息
@@ -1027,6 +1118,7 @@
        CommodityRequest commodityRequest = new CommodityRequest();
        commodityRequest.setLon(request.getLon());
        commodityRequest.setLat(request.getLat());
        commodityRequest.setShopId(request.getShopId());
        PointMerchandiseVo vicinityGoods = mcClient.getVicinityGoods(commodityRequest);
        if (ToolUtil.isNotEmpty(vicinityGoods.getMerchandises())) {
            for (PointsMerchandise vicinityGood : vicinityGoods.getMerchandises()) {
@@ -1125,14 +1217,6 @@
            if (goods.size() > 0) {
                goods = goods.stream()
                        .filter(merchandise -> merchandise.getGoodName().contains(request.getSearch()))
                        .collect(Collectors.toList());
            }
        }
        // 2.0 门店筛选
        if (request.getShopId() != null) {
            if (goods.size() > 0) {
                goods = goods.stream()
                        .filter(merchandise -> (merchandise.getGoodsType() == 1 && merchandise.getUseScope() == 2) || (merchandise.getGoodsType() == 1 && merchandise.getUseScope() == 1) || (merchandise.getGoodsType() == 4 && merchandise.getUseScope() == 2) || (merchandise.getGoodsType() == 4 && merchandise.getUseScope() == 1) || merchandise.getShopIds().contains(request.getShopId()))
                        .collect(Collectors.toList());
            }
        }
@@ -1282,6 +1366,34 @@
    @Override
    public ResultUtil<String> updateInfo(UpdateInfoDto dto, Integer uid) {
        TAppUser tAppUser = appUserMapper.selectById(uid);
        if (StringUtils.hasLength(dto.getName())){
            if (!tAppUser.getName().equals(dto.getName())){
                TUserAudit userAudit = userAuditService
                        .lambdaQuery().eq(TUserAudit::getType, 1)
                        .eq(TUserAudit::getAppUserId, tAppUser.getId())
                        .ne(TUserAudit::getState, 2).last("limit 1").one();
                if (userAudit!=null){
                    userAudit.setState(1);
                    userAudit.setName(dto.getName());
                    UpdateWrapper<TUserAudit> tUserAuditUpdateWrapper = new UpdateWrapper<>();
                    tUserAuditUpdateWrapper.eq("id",userAudit.getId());
                    tUserAuditUpdateWrapper.set("state",1);
                    tUserAuditUpdateWrapper.set("name",dto.getName());
                    tUserAuditUpdateWrapper.set("remarks",null);
                    tUserAuditUpdateWrapper.set("auditId",null);
                    tUserAuditUpdateWrapper.set("auditTime",null);
                    userAuditService.update(tUserAuditUpdateWrapper);
                }else{
                    TUserAudit tUserAudit = new TUserAudit();
                    tUserAudit.setAppUserId(tAppUser.getId());
                    tUserAudit.setName(dto.getName());
                    tUserAudit.setType(1);
                    tUserAudit.setInsertTime(new Date());
                    userAuditService.save(tUserAudit);
                }
            }
        }
        if (ToolUtil.isNotEmpty(dto.getName())) {
            tAppUser.setName(dto.getName());
        }
@@ -1298,6 +1410,7 @@
        if (ToolUtil.isNotEmpty(dto.getGender())) {
            tAppUser.setGender(dto.getGender());
        }
        tAppUser.setName(null);
        appUserMapper.updateById(tAppUser);
        return ResultUtil.success();
    }
@@ -1527,6 +1640,23 @@
                pointsMerchandise.setPaymentTime(new Date());
            }
            returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise);
            if(goodsNums>1){
                System.err.println("购买商品数量"+goodsNums);
                List<UserPointsMerchandise> userPointsMerchandises = new ArrayList<>();
                for (int i = 1; i < goodsNums; i++) {
                    UserPointsMerchandise userPointsMerchandise = new UserPointsMerchandise();
                    BeanUtils.copyProperties(pointsMerchandise, userPointsMerchandise);
                    userPointsMerchandises.add(userPointsMerchandise);
                }
                System.err.println("新增额外购买记录"+userPointsMerchandises);
                Boolean b = mcClient.saveDetailsUserPointMercaseList(userPointsMerchandises);
                if (b){
                    System.err.println("多条商品新增成功");
                }else{
                    System.err.println("多条商品新增失败");
                }
            }
            if ((m * goodsNums) == 0 && pointsMerchandise.getPayStatus() == 2) {
                returnModel.setReturnId(returnId);
                return ResultUtil.success(returnModel);
@@ -2029,96 +2159,7 @@
        return alipay;
    }
    public void moneyOut(String outNum, String tradeNo) throws AlipayApiException {
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
        AlipayTradeOrderSettleRequest request = new AlipayTradeOrderSettleRequest();
        AlipayTradeOrderSettleModel model = new AlipayTradeOrderSettleModel();
        model.setOutRequestNo(outNum);
        model.setTradeNo(tradeNo);
        List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>();
//
        AlipayTradeRoyaltyRelationBindRequest request1 = new AlipayTradeRoyaltyRelationBindRequest();
        request1.setBizContent("{" +
                "  \"receiver_list\":[" +
                "    {" +
                "      \"type\":\"loginName\"," +
                "      \"account\":\"19522115070\"," +
                "      \"name\":\"罗易胜\"," +
                "      \"memo\":\"分账给测试商户\"," +
                "    }" +
                "  ]," +
                "  \"out_request_no\":\"" + tradeNo + "\"" +
                "}");
        AlipayTradeRoyaltyRelationBindResponse response = alipayClient.execute(request1);
        if (response.isSuccess()) {
            System.out.println("绑定调用成功");
        } else {
            System.out.println("调用失败");
        }
//        RoyaltyDetailInfos royaltyDetailInfos1 = new RoyaltyDetailInfos();
//        royaltyDetailInfos1.setTransOutType("loginName");
//        royaltyDetailInfos1.setTransOut("happysports@weparklife.com");
//        royaltyDetailInfos1.setTransInType("loginName");
//        royaltyDetailInfos1.setTransIn("19522115070");
////        royaltyDetailInfos1.setAmount("0.01");
//        royaltyDetailInfos1.setAmountPercentage("100");
//        royaltyDetailInfos.add(royaltyDetailInfos1);
        List<UserPointsMerchandise> userPointsMerchandises = merChandiseClient.queryUserPointMerchaseByCode(outNum);
//        PaymentCompetition code = paymentCompetitionService.getOne(new QueryWrapper<PaymentCompetition>().eq("code", outNum));
        if (userPointsMerchandises.size() > 0) {
            Integer storeId = userPointsMerchandises.get(0).getStoreId();
//        Competition byId1 = competitionService.getById(code.getCompetitionId());
//        TCoursePackage byId = coursePackageService.getById(one.getCoursePackageId());
            OperatorUser operatorUser = storeClient.queryByStoreId(storeId);
//        Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo);
//        Integer siteBookings = siteClient.queryByCode(outTradeNo);
//        List<Integer> stores = new ArrayList<>();
//        stores.add(coursePackagePayments);
//        stores.add(paymentCompetitions);
//        stores.add(siteBookings);
//        OperatorUser operatorUser = siteClient.queryOperator(stores);
            OpenApiRoyaltyDetailInfoPojo op = new OpenApiRoyaltyDetailInfoPojo();
            op.setTransOutType("loginName");
            op.setTransOut("happysports@weparklife.com");
            op.setTransInType("userId");
            op.setTransIn(operatorUser.getAlipayNum());
            op.setAmountPercentage(Long.valueOf(operatorUser.getAlipayProportion()));
            List<OpenApiRoyaltyDetailInfoPojo> ops = new ArrayList<>();
            ops.add(op);
            model.setRoyaltyParameters(ops);
            request.setBizModel(model);
            AlipayTradeOrderSettleResponse response1 = alipayClient.execute(request);
            if (response1.isSuccess()) {
                System.out.println("调用成功");
            } else {
                System.out.println("调用失败");
            }
        }
    }
    private ResultUtil WechatPayment(Integer type, BigDecimal cash, String code, Integer id) throws Exception {
@@ -2209,42 +2250,47 @@
    @Override
    public ResultUtil exchangeAddPaymentCallback(String code, String orderNumber) throws AlipayApiException {
        System.err.println("进入回调" + code);
        UserPointsMerchandise userPointsMerchandise = mcClient.queryUserPointMerchaseByCode(code).get(0);
        System.err.println("商品" + userPointsMerchandise);
        if (userPointsMerchandise.getPayStatus() == 2) {
            return ResultUtil.success();
        }
        List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
        for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) {
            System.err.println("商品" + userPointsMerchandise);
            if (userPointsMerchandise.getPayStatus() == 2) {
                return ResultUtil.success();
            }
        userPointsMerchandise.setOrderNumber(orderNumber);
        userPointsMerchandise.setPayStatus(2);
        userPointsMerchandise.setPaymentTime(new Date());
        mcClient.updateDetailsUserPointMercase(userPointsMerchandise);
            userPointsMerchandise.setOrderNumber(orderNumber);
            userPointsMerchandise.setPayStatus(2);
            userPointsMerchandise.setPaymentTime(new Date());
            mcClient.updateDetailsUserPointMercase(userPointsMerchandise);
        TAppUser tAppUser = baseMapper.selectById(userPointsMerchandise.getUserId());
        dealAppUserIntegral(userPointsMerchandise.getUserId(), tAppUser, userPointsMerchandise.getIntegral());
            TAppUser tAppUser = baseMapper.selectById(userPointsMerchandise.getUserId());
            dealAppUserIntegral(userPointsMerchandise.getUserId(), tAppUser, userPointsMerchandise.getIntegral());
        Integer pointsMerchandiseId = userPointsMerchandise.getPointsMerchandiseId();
        PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId);
        if (pointsMerchandise.getType() == 2) {
            //课程
            CoursePackageOrder coursePackageOrder1 = paymentClient.getCoursePackageOrderByCode(code);
            if (null != coursePackageOrder1) {
                coursePackageOrder1.setPayStatus(2);
                coursePackageOrder1.setOrderNumber(orderNumber);
                coursePackageOrder1.setAppUserId(null);
                paymentClient.updateCoursePackageOrder(coursePackageOrder1);
            Integer pointsMerchandiseId = userPointsMerchandise.getPointsMerchandiseId();
            PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId);
            if (pointsMerchandise.getType() == 2) {
                //课程
                CoursePackageOrder coursePackageOrder1 = paymentClient.getCoursePackageOrderByCode(code);
                if (null != coursePackageOrder1) {
                    coursePackageOrder1.setPayStatus(2);
                    coursePackageOrder1.setOrderNumber(orderNumber);
                    coursePackageOrder1.setAppUserId(null);
                    paymentClient.updateCoursePackageOrder(coursePackageOrder1);
                GetCoursePackagePaymentConfig getCoursePackagePaymentConfig = new GetCoursePackagePaymentConfig();
                getCoursePackagePaymentConfig.setCoursePackageId(coursePackageOrder1.getCoursePackageId());
                getCoursePackagePaymentConfig.setClassHours(coursePackageOrder1.getClassHours());
                CoursePackagePaymentConfig coursePackagePaymentConfig = paymentClient.getCoursePackagePaymentConfig(getCoursePackagePaymentConfig);
                    GetCoursePackagePaymentConfig getCoursePackagePaymentConfig = new GetCoursePackagePaymentConfig();
                    getCoursePackagePaymentConfig.setCoursePackageId(coursePackageOrder1.getCoursePackageId());
                    getCoursePackagePaymentConfig.setClassHours(coursePackageOrder1.getClassHours());
                    CoursePackagePaymentConfig coursePackagePaymentConfig = paymentClient.getCoursePackagePaymentConfig(getCoursePackagePaymentConfig);
                AddCoursePackageOrderStudent addCoursePackageOrderStudent = new AddCoursePackageOrderStudent();
                addCoursePackageOrderStudent.setCoursePackageOrderId(coursePackageOrder1.getId());
                addCoursePackageOrderStudent.setCoursePackagePaymentConfig(coursePackagePaymentConfig);
                paymentClient.addCoursePackageOrderStudent(addCoursePackageOrderStudent);
                    AddCoursePackageOrderStudent addCoursePackageOrderStudent = new AddCoursePackageOrderStudent();
                    addCoursePackageOrderStudent.setCoursePackageOrderId(coursePackageOrder1.getId());
                    addCoursePackageOrderStudent.setCoursePackagePaymentConfig(coursePackagePaymentConfig);
                    paymentClient.addCoursePackageOrderStudent(addCoursePackageOrderStudent);
                }
            }
        }
        UserPointsMerchandise userPointsMerchandise = userPointsMerchandises.get(0);
        Integer pointsMerchandiseId = userPointsMerchandise.getPointsMerchandiseId();
        PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId);
        List<Integer> integers = mcsClient.queryPointMerStoreIds(pointsMerchandise.getId());
        Store store1 = storeClient.queryStoreById(integers.get(0));
        if (store1.getOperatorId() != null && store1.getOperatorId() != 0) {