From 197431f6ce578d87a0156d2b8b13f1d327ba5e1e Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期二, 30 一月 2024 14:55:51 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 147 +++++++++++++++++++++++-------------------------- 1 files changed, 69 insertions(+), 78 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 5f7274c..96d6024 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)) { @@ -968,36 +973,38 @@ 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)) { @@ -1067,17 +1074,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) @@ -1114,19 +1112,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; } @@ -1136,8 +1123,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()); @@ -1164,12 +1149,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)) { @@ -1200,8 +1180,6 @@ } } -// } - return recordVoList; } @@ -1225,13 +1203,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