From 80b3ea5587ff7ec20541d9ca7c6c28739e4d615b Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 30 一月 2024 14:28:20 +0800 Subject: [PATCH] 更新bug修改 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 188 +++++++++++++++++++++++----------------------- 1 files changed, 95 insertions(+), 93 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java index 21f0578..157de79 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.alipay.api.AlipayApiException; import com.alipay.api.domain.Person; import com.alipay.api.response.AlipayTradeQueryResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -780,24 +781,21 @@ } @Override - public ResultUtil ContinuationOrpaymentCourse(Integer ids, ClasspaymentRequest request) { - AppUser userIdFormRedis = appuClient.queryAppUser(ids); - TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(request.getCoursePayId()); + public ResultUtil ContinuationOrpaymentCourse(Integer userId, ClasspaymentRequest request) { + AppUser appUser = appuClient.queryAppUser(userId); + CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(request.getCoursePayId()); String code = ""; - BigDecimal money = tCoursePackagePayment.getCashPayment(); - Integer wpGold = tCoursePackagePayment.getPlayPaiCoin(); - if (tCoursePackagePayment.getPayStatus() == 1) { -// 待支付的订单 - code = tCoursePackagePayment.getCode(); - tCoursePackagePayment.setPayType(request.getPayType()); + BigDecimal money = coursePackageOrder.getCashPayment(); + Integer wpGold = coursePackageOrder.getPlayPaiCoin(); + if (coursePackageOrder.getPayStatus() == 1) { + code = coursePackageOrder.getCode(); + coursePackageOrder.setPayType(request.getPayType()); if (request.getUseConpon() == 1) { - tCoursePackagePayment.setUserCouponId(Long.valueOf(request.getUseConpon())); + coursePackageOrder.setUserCouponId(Long.valueOf(request.getUseConpon())); } - this.baseMapper.updateById(tCoursePackagePayment); + coursePackageOrder.setAppUserId(null); + coursePackageOrderService.updateById(coursePackageOrder); } else { -// 续课的订单 -// 查询是否续课优惠 - CoursePackagePaymentConfig paymentConfig = cpConfigMapper.selectOne(new QueryWrapper<CoursePackagePaymentConfig>() .eq("coursePackageId", request.getLessonId()) .eq("classHours", request.getCourseHoursNum())); @@ -809,7 +807,7 @@ if (ToolUtil.isNotEmpty(coursePackageDiscount)) { String content = coursePackageDiscount.getContent(); JSONObject jsonObject = JSON.parseObject(content); - if (userIdFormRedis.getIsVip() == 1) { + if (appUser.getIsVip() == 1) { Double jsonObjectDouble = jsonObject.getDouble("num1"); money = BigDecimal.valueOf(jsonObjectDouble); } else { @@ -817,27 +815,24 @@ money = BigDecimal.valueOf(jsonObjectDouble); } } - TCoursePackagePayment newPayment = new TCoursePackagePayment(); + CoursePackageOrder newPayment = new CoursePackageOrder(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); newPayment.setCode(sdf.format(new Date()) + UUIDUtil.getNumberRandom(5)); - newPayment.setAppUserId(userIdFormRedis.getId()); - newPayment.setStudentId(request.getStuId()); + newPayment.setAppUserId(appUser.getId()); + newPayment.setStudentIds(request.getStuId().toString()); newPayment.setCoursePackageId(request.getLessonId()); - newPayment.setClassHours(tCoursePackagePayment.getClassHours()); - newPayment.setOriginalPrice(tCoursePackagePayment.getOriginalPrice()); - newPayment.setTotalClassHours(tCoursePackagePayment.getTotalClassHours()); - newPayment.setLaveClassHours(tCoursePackagePayment.getTotalClassHours()); + newPayment.setClassHours(coursePackageOrder.getClassHours()); + newPayment.setOriginalPrice(coursePackageOrder.getOriginalPrice()); if (request.getUseConpon() == 1) { newPayment.setUserCouponId(Long.valueOf(request.getUseConpon())); } - newPayment.setAbsencesNumber(0); newPayment.setPayUserType(1); newPayment.setPayStatus(1); newPayment.setStatus(1); newPayment.setPayType(request.getPayType()); newPayment.setState(1); newPayment.setInsertTime(new Date()); - this.baseMapper.insert(newPayment); + coursePackageOrderService.save(newPayment); code = newPayment.getCode(); } switch (request.getPayType()) { @@ -882,7 +877,7 @@ } return AlipayPayment(code, money); case 3: - PlaypaiGoldPayment(userIdFormRedis, code, wpGold); + PlaypaiGoldPayment(appUser, code, wpGold); break; default: break; @@ -892,10 +887,10 @@ public ResultUtil WeChatPayment(String code, BigDecimal request) throws Exception { - TCoursePackagePaymentMapper baseMapper1 = this.baseMapper; ResultUtil weixinpay = payMoneyUtil.weixinpay("课包续费", "", code, request.toString(), "/base/coursePackage/wechatRegisteredCoursesCallback", "APP", ""); if (weixinpay.getCode() == 200) { + String finalCode = code; new Thread(new Runnable() { @Override public void run() { @@ -906,12 +901,13 @@ int min = 5000; wait += (min * num); Thread.sleep(wait); - TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code); - if (coursePackagePayment.getPayStatus() == 2) { + CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() + .eq("code", finalCode).eq("state", 1)); + if (coursePackageOrder1.getPayStatus() == 2) { break; } - ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, ""); - if (resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1) { + ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(finalCode, ""); + if (resultUtil.getCode() == 200 && coursePackageOrder1.getPayStatus() == 1) { /** * SUCCESS—支付成功, * REFUND—转入退款, @@ -925,14 +921,23 @@ String s = data1.get("trade_state"); String transaction_id = data1.get("transaction_id"); if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) { - coursePackagePayment.setState(3); - baseMapper1.deleteById(coursePackagePayment.getId()); + //有待支付的订单,这里不处理 +// coursePackageOrder1.setState(3); +// coursePackageOrderService.updateById(coursePackageOrder1); break; } if ("SUCCESS".equals(s)) { - coursePackagePayment.setPayStatus(2); - coursePackagePayment.setOrderNumber(transaction_id); - baseMapper1.updateById(coursePackagePayment); + coursePackageOrder1.setPayStatus(2); + coursePackageOrder1.setOrderNumber(transaction_id); + coursePackageOrder1.setAppUserId(null); + coursePackageOrderService.updateById(coursePackageOrder1); + //修改课时有效期 + + CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() + .eq("coursePackageId", coursePackageOrder1.getId()) + .eq("classHours", coursePackageOrder1.getClassHours()) + ); + coursePackageService.addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); break; } if ("USERPAYING".equals(s)) { @@ -966,54 +971,67 @@ ResultUtil alipay = payMoneyUtil.alipay(smid1,"课包购买", "课包购买", "", code, request.toString(), "/base/coursePackage/alipayRegisteredCoursesCallback"); if (alipay.getCode() == 200) { + String finalCode = code; new Thread(new Runnable() { @Override public void run() { try { + Thread.sleep(1000); int num = 1; int wait = 0; while (num <= 10) { int min = 5000; wait += (min * num); Thread.sleep(wait); - TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code); - if (coursePackagePayment.getPayStatus() == 2) { + CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() + .eq("code", finalCode).eq("state", 1)); + if (coursePackageOrder1.getPayStatus() == 2) { break; } - AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); - - if (coursePackagePayment.getPayStatus() == 1) { + AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(finalCode); + if (null != alipayTradeQueryResponse) { /** * WAIT_BUYER_PAY(交易创建,等待买家付款)、 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 * TRADE_SUCCESS(交易支付成功)、 * TRADE_FINISHED(交易结束,不可退款) */ -// Map<String, String> data1 = resultUtil.getData(); String s = alipayTradeQueryResponse.getTradeStatus(); + String tradeNo = alipayTradeQueryResponse.getTradeNo(); if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { - coursePackagePayment.setState(3); - baseMapper1.deleteById(coursePackagePayment.getId()); - + //有待支付的订单,这里不处理 +// coursePackageOrder1.setState(3); +// coursePackageOrderService.updateById(coursePackageOrder1); break; } if ("TRADE_SUCCESS".equals(s)) { - coursePackagePayment.setPayStatus(2); - coursePackagePayment.setOrderNumber(tradeNo); - baseMapper1.updateById(coursePackagePayment); - // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 - Integer coursePackageId = coursePackagePayment.getCoursePackageId(); - TCoursePackage byId = coursePackageService.getById(coursePackageId); - Store store = storeClient.queryStoreById(byId.getStoreId()); - if (store.getOperatorId()== null ){ - // 说明是平台的门店 - payMoneyUtil.confirm(smid,code,tradeNo,request.toString()); - }else{ - String smid = storeClient.getSMIDByOperatorId(store.getOperatorId()); - payMoneyUtil.confirm(smid,code,tradeNo,request.toString()); - } - break; + coursePackageOrder1.setPayStatus(2); + coursePackageOrder1.setOrderNumber(tradeNo); + coursePackageOrder1.setAppUserId(null); + coursePackageOrderService.updateById(coursePackageOrder1); + CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() + .eq("coursePackageId", coursePackageOrder1.getId()) + .eq("classHours", coursePackageOrder1.getClassHours()) + ); + coursePackageService.addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); + coursePackageService.moneyOut(tradeNo,tradeNo,finalCode); + // 根据课程id 查询这个课程属于哪个门店 属于哪个运营商 + TCoursePackage byId = coursePackageService.getById(coursePackageOrder1.getCoursePackageId()); + Integer storeId = byId.getStoreId(); + Store store = storeClient.queryStoreById(storeId); + Integer operatorId = store.getOperatorId(); + if (operatorId==null){ + String smid ="2088330203191220"; + // 说明是平台的 + payMoneyUtil.confirm(smid,finalCode,tradeNo,request.toString()); + break; + }else{ + // 当前课程不属于门店 查询这个课程属于哪个门店 属于哪个运营商 + String smidByOperatorId = storeClient.getSMIDByOperatorId(operatorId); + payMoneyUtil.confirm(smidByOperatorId,finalCode,tradeNo,request.toString()); + break; + } } if ("WAIT_BUYER_PAY".equals(s)) { num++; @@ -1063,17 +1081,8 @@ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); if (tCoursePackagePayments.size() > 0) { - -// int pageNum = 1; // 页码 int pageSize = 10; // 每页记录数 Page<CoursePackageStudent> page = new Page<>(pageNum, pageSize); - -// for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { -// List<CoursePackageStudent> coursePackageStudent1 = cpsMapper.selectList(new QueryWrapper<CoursePackageStudent>() -// .in("coursePackageId",ids) -// .eq("studentId",stuId) -// .eq("appUserId",appUserId) -// .eq("reservationStatus",1)); IPage<CoursePackageStudent> coursePackageStudentPage = cpsMapper.selectPage(page, new QueryWrapper<CoursePackageStudent>() .in("coursePackageId", ids) .eq("studentId", stuId) @@ -1110,19 +1119,8 @@ } } -// recordVo.setCourseHours(tCoursePackagePayment.getClassHours()); - Date date = DateUtil.getDate(); - - CoursePackageScheduling byId = coursePackageSchedulingService.getById(coursePackageStudent.getCoursePackageSchedulingId()); -// String classStartTime = coursePackage.getClassStartTime(); -// String classEndTime = coursePackage.getClassEndTime(); //这里是过滤今天之后的数据 - -// if (byId == null||byId.getClassDate().after(new Date())){ -// continue; -// } - if (byId == null) { continue; } @@ -1132,8 +1130,6 @@ recordVo.setTimeFrame(dateString1 + "-" + dateString2.substring(11)); - -// recordVo.setTimeFrame(simpleDateFormat.format(date)+" "+classStartTime+"-"+classEndTime); Store store = stoClient.queryStoreById(coursePackage.getStoreId()); recordVo.setStoreNameAddr(store.getName() + store.getAddress()); recordVo.setCourseStuRecordId(coursePackageStudent.getId()); @@ -1160,12 +1156,7 @@ //待上课 recordVo.setStatus(1); } -// else if(coursePackageStudent.getSignInOrNot()==2){ -// recordVo.setStatus(5); -// } else { -// CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() -// .eq("coursePackageId",coursePackageStudent.getCoursePackageId())); CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() .eq("coursePackageSchedulingId", byId.getId()).last("limit 1")); if (ToolUtil.isNotEmpty(cancelledClasses)) { @@ -1196,8 +1187,6 @@ } } -// } - return recordVoList; } @@ -1221,13 +1210,26 @@ @Override public ResultUtil insertVipPaymentCallback(String code, String orderNumber) { - TCoursePackagePayment coursePackagePayment = this.baseMapper.getCoursePackagePaymentByCode(code); - if (coursePackagePayment.getPayStatus() != 1) { + CoursePackageOrder coursePackageOrder1 = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() + .eq("code", code).eq("state", 1)); + if (coursePackageOrder1.getPayStatus() == 2) { return ResultUtil.success(); } - coursePackagePayment.setPayStatus(2); - coursePackagePayment.setOrderNumber(orderNumber); - this.baseMapper.updateById(coursePackagePayment); + coursePackageOrder1.setPayStatus(2); + coursePackageOrder1.setOrderNumber(orderNumber); + coursePackageOrder1.setAppUserId(null); + coursePackageOrderService.updateById(coursePackageOrder1); + + CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getOne(new QueryWrapper<CoursePackagePaymentConfig>() + .eq("coursePackageId", coursePackageOrder1.getId()) + .eq("classHours", coursePackageOrder1.getClassHours()) + ); + coursePackageService.addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); + try { + coursePackageService.moneyOut(orderNumber,orderNumber,code); + } catch (AlipayApiException e) { + e.printStackTrace(); + } return ResultUtil.success(); } -- Gitblit v1.7.1