From bbee9271b06ede8c00f795be690835e28a142d4a Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期三, 01 十一月 2023 17:21:29 +0800 Subject: [PATCH] 10.31.2 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 234 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 157 insertions(+), 77 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java index 77735e7..1e9f9bb 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java @@ -9,7 +9,10 @@ import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.*; import com.alipay.api.request.AlipayTradeOrderSettleRequest; +import com.alipay.api.request.AlipayTradeRoyaltyRelationBindRequest; import com.alipay.api.response.AlipayTradeOrderSettleResponse; +import com.alipay.api.response.AlipayTradeQueryResponse; +import com.alipay.api.response.AlipayTradeRoyaltyRelationBindResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -135,7 +138,7 @@ List<Store> stores = storeClient.queryStoreListByName(coursePackageList.getSearch()); List<Integer> collect = stores.stream().map(Store::getId).collect(Collectors.toList()); if(collect.size() > 0){ - wrapper.or().in("id", collect); + wrapper.or().in("storeId", collect); } } List<TCoursePackage> list = this.list(wrapper.last(" order by sort, insertTime desc")); @@ -169,9 +172,21 @@ coursePackageListVo.setApplicantsNumber(integer); - coursePackageListVo.setPayType(coursePackage.getPayType()); - coursePackageListVo.setPlayPaiCoin(coursePackagePaymentConfig.getPlayPaiCoin()); + Double cashPayment1 = coursePackagePaymentConfig.getCashPayment(); + Integer playPaiCoin = coursePackagePaymentConfig.getPlayPaiCoin(); + if(ToolUtil.isNotEmpty(cashPayment1) && cashPayment1>0 && ToolUtil.isNotEmpty(playPaiCoin) && playPaiCoin>0){ + coursePackageListVo.setPayType(3); + }else if(ToolUtil.isNotEmpty(cashPayment1) && cashPayment1>0){ + coursePackageListVo.setPayType(1); + }else if(ToolUtil.isNotEmpty(playPaiCoin) && playPaiCoin>0){ + coursePackageListVo.setPayType(2); + } + + + if (coursePackagePaymentConfig!=null) { + coursePackageListVo.setPlayPaiCoin(coursePackagePaymentConfig.getPlayPaiCoin()); + } //会员显示原价和会员价(最低)。非会员显示会员价和支付价(最低) if(appUser.getIsVip() == 0){//非会员 List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) @@ -508,6 +523,7 @@ coursePackageInfo.setTime(format.format(coursePackage.getStartTime())+"-"+format.format(coursePackage.getEndTime())); } coursePackageInfo.setCoverDrawing(coursePackage.getCoverDrawing()); + coursePackageInfo.setName(coursePackage.getName()); Store store = storeClient.queryStoreById(coursePackage.getStoreId()); coursePackageInfo.setStoreName(store.getName()); @@ -548,8 +564,17 @@ CoursePackagePaymentConfigVo coursePackagePaymentConfigVo = new CoursePackagePaymentConfigVo(); coursePackagePaymentConfigVo.setId(coursePackagePaymentConfig.getId()); coursePackagePaymentConfigVo.setClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackagePaymentConfigVo.setPayType(coursePackage.getPayType()); coursePackagePaymentConfigVo.setPlayPaiCoin(coursePackagePaymentConfig.getPlayPaiCoin()); + + if(ToolUtil.isNotEmpty(coursePackagePaymentConfig.getCashPayment()) && coursePackagePaymentConfig.getCashPayment()>0 && ToolUtil.isNotEmpty(coursePackagePaymentConfig.getPlayPaiCoin()) && coursePackagePaymentConfig.getPlayPaiCoin()>0 ){ + coursePackagePaymentConfigVo.setPayType(3); + }else if(ToolUtil.isNotEmpty(coursePackagePaymentConfig.getCashPayment()) && coursePackagePaymentConfig.getCashPayment()>0){ + coursePackagePaymentConfigVo.setPayType(1); + }else if( ToolUtil.isNotEmpty(coursePackagePaymentConfig.getPlayPaiCoin()) && coursePackagePaymentConfig.getPlayPaiCoin()>0 ){ + coursePackagePaymentConfigVo.setPayType(2); + } + +// coursePackagePaymentConfigVo.setPayType(coursePackage.getPayType()); //会员显示原价和支付价(会员价)。非会员显示会员价和支付价(最低) if(appUser.getIsVip() == 0){//非会员 List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) @@ -926,7 +951,7 @@ sid=student.getId(); } - ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", "", code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback"); + ResultUtil alipay = payMoneyUtil.alipay("购买课程", "购买课程", student.getId().toString(), code, paymentPrice.toString(), "/base/course/aliPaymentCourseCallback"); if(alipay.getCode() == 200){ Integer finalSid = sid; new Thread(new Runnable() { @@ -944,17 +969,17 @@ if(one.getPayStatus() == 2){ break; } - ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code); - if(resultUtil.getCode() == 200 && one.getPayStatus() == 1){ + AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); + if( one.getPayStatus() == 1){ /** * WAIT_BUYER_PAY(交易创建,等待买家付款)、 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 * TRADE_SUCCESS(交易支付成功)、 * TRADE_FINISHED(交易结束,不可退款) */ - Map<String, String> data1 = resultUtil.getData(); - String s = data1.get("tradeStatus"); - String tradeNo = data1.get("tradeNo"); + String s = alipayTradeQueryResponse.getTradeStatus(); + + String tradeNo = alipayTradeQueryResponse.getTradeNo(); if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){ for (TCoursePackagePayment coursePackagePayment : list) { coursePackagePayment.setStatus(3); @@ -966,6 +991,7 @@ for (TCoursePackagePayment coursePackagePayment : list) { coursePackagePayment.setPayStatus(2); coursePackagePayment.setOrderNumber(tradeNo); + coursePackagePayment.setAppUserId(null); } coursePackagePaymentService.updateBatchById(list); System.out.println("===========到达支付"); @@ -1005,6 +1031,8 @@ } + @Autowired + private TCoursePackageService coursePackageService; 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(); @@ -1012,28 +1040,81 @@ model.setOutRequestNo(outNum); model.setTradeNo(tradeNo); List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>(); +// + + AlipayTradeRoyaltyRelationBindRequest request1 = new AlipayTradeRoyaltyRelationBindRequest(); + AlipayTradeRoyaltyRelationBindModel bindModel = new AlipayTradeRoyaltyRelationBindModel(); - RoyaltyDetailInfos royaltyDetailInfos1 = new RoyaltyDetailInfos(); - royaltyDetailInfos1.setTransOutType("userId"); - royaltyDetailInfos1.setTransOut("2021004105665036"); - royaltyDetailInfos1.setTransInType("loginName"); - royaltyDetailInfos1.setTransIn("18398968484"); - royaltyDetailInfos1.setAmount("0.1"); + 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.add(royaltyDetailInfos1); + +// 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); + + TCoursePackagePayment one = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("code", outNum)); + TCoursePackage byId = coursePackageService.getById(one.getCoursePackageId()); + OperatorUser operatorUser = storeClient.queryByStoreId(byId.getStoreId()); + + + +// 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 response = alipayClient.execute(request); - if(response.isSuccess()){ + AlipayTradeOrderSettleResponse response1 = alipayClient.execute(request); + if(response1.isSuccess()){ System.out.println("调用成功"); } else { System.out.println("调用失败"); } } + @@ -1092,13 +1173,11 @@ } - private void addPackageStudent(Integer courseId, Integer userId, Integer sId,Long paymentId){ + private void addPackageStudent(Integer courseId, Integer userId, Integer sId,Long paymentId) throws ParseException { // 课包 TCoursePackage tCoursePackage = this.baseMapper.selectById(courseId); - - - String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); String[] split = tCoursePackage.getClassStartTime().split(","); @@ -1118,27 +1197,23 @@ CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - try { - Date parse = format1.parse(format.format(time) + " " + split[i1]); + Date parse = format1.parse(format.format(time) + " " + split[i1]); Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); coursePackageScheduling.setEndDate(parse1); coursePackageScheduling.setStatus(1); coursePackageSchedulingService.save(coursePackageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(userId); - student1.setStudentId(sId); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(paymentId); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - cpsMapper.insert(student1); - } catch (ParseException e) { - e.printStackTrace(); - } + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(paymentId); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); } @@ -1155,45 +1230,12 @@ for (int i1 = 0; i1 < split.length; i1++) { CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - try { - Date parse = format1.parse(format.format(time) + " " + split[i1]); + Date parse = format1.parse(format.format(time) + " " + split[i1]); Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); coursePackageScheduling.setEndDate(parse1); coursePackageScheduling.setStatus(1); coursePackageSchedulingService.save(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(userId); - student1.setStudentId(sId); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(paymentId); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - cpsMapper.insert(student1); - } catch (ParseException e) { - e.printStackTrace(); - } - } - } - - }else { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7); - Date time = instance.getTime(); - - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - try { - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(userId); @@ -1205,9 +1247,34 @@ student1.setReservationStatus(1); student1.setInsertTime(new Date()); cpsMapper.insert(student1); - } catch (ParseException e) { - e.printStackTrace(); } + } + + }else { + Calendar instance = Calendar.getInstance(); + instance.add(Calendar.DATE,7); + Date time = instance.getTime(); + + for (int i1 = 0; i1 < split.length; i1++) { + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + Date parse = format1.parse(format.format(time) + " " + split[i1]); + Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.save(coursePackageScheduling); + + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(paymentId); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); } } } @@ -1330,7 +1397,7 @@ Calendar e = Calendar.getInstance(); e.setTime(date); - e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13); + e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14); long timeInMillis = e.getTimeInMillis(); while (true) { @@ -1357,7 +1424,7 @@ coursePackageSchedulingService.save(coursePackageScheduling); } s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); - if (s.getTimeInMillis() > timeInMillis) { + if (s.getTimeInMillis() >= timeInMillis) { break; } } @@ -1391,6 +1458,7 @@ coursePackageSchedulingService.remove(coursePackageSchedulingQueryWrapper); this.baseMapper.updateById(coursePackage); + //生成排课数据 Date date = null; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @@ -1417,7 +1485,7 @@ int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue(); e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d); }else{ - e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13); + e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14); } long timeInMillis = e.getTimeInMillis(); @@ -1499,6 +1567,18 @@ coursePackagePaymentConfig.setCouponIds("-1"); } List<Coupon> coupons = couponClient.getCoupons(coursePackagePaymentConfig.getCouponIds()); + + for (Coupon coupon : coupons) { + Date date1 = coupon.getStartTime(); // 2023-10-01 00:00:00 + Date date2 = coupon.getEndTime(); // 2023-10-12 00:00:00 + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); + String dateString1 = sdf.format(date1); + String dateString2 = sdf.format(date2); + + String result = dateString1 + "-" + dateString2; + coupon.setTimePeriod(result); + } return ResultUtil.success(coupons); } } -- Gitblit v1.7.1