From 9d909e5f8048b74ac56d8f853758cfccfea61759 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期二, 28 十一月 2023 15:23:55 +0800 Subject: [PATCH] 后台1 --- cloud-server-activity/src/main/java/com/dsh/activity/service/IUserCouponPaymentService.java | 11 cloud-server-course/src/main/java/com/dsh/course/model/vo/request/UpdateCourseVideoStatusRequest.java | 3 cloud-server-account/src/main/java/com/dsh/account/entity/TStudent.java | 5 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserCouponPayment.java | 64 ++++ cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/SaveUserIntegralChangesVo.java | 23 + cloud-server-other/src/main/resources/mapper/BannerMapper.xml | 7 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 42 -- cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageSchedulingService.java | 1 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 3 cloud-server-activity/src/main/java/com/dsh/activity/model/UserCouponPayment.java | 78 +++++ cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java | 17 - cloud-server-activity/pom.xml | 1 cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponPaymentMapper.java | 11 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponPaymentServiceImpl.java | 15 + cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java | 9 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 5 cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java | 62 ++++ cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 2 cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java | 19 + cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java | 30 -- cloud-server-other/src/main/java/com/dsh/other/model/BannerVo.java | 2 cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponPaymentController.java | 53 +++ cloud-server-account/src/main/java/com/dsh/account/model/Student.java | 5 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 309 +++++++++++++++++--- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 22 + cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserCouponPaymentClient.java | 37 ++ cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js | 11 cloud-server-course/src/main/java/com/dsh/course/feignclient/account/UserIntegralChangesClient.java | 22 + cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java | 10 cloud-server-activity/src/main/resources/mapper/UserCouponPaymentMapper.xml | 5 30 files changed, 720 insertions(+), 164 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java index f5619c9..7d92af3 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java @@ -382,8 +382,6 @@ } return ResultUtil.success(istuService.updateById(tStudent)); - -// return ResultUtil.success(istuService.commitEditStudentInfo(stu,userIdFormRedis)); } catch (Exception e) { return ResultUtil.runErr(); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java index d3347a1..3ce9631 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java @@ -8,6 +8,7 @@ import com.dsh.account.service.RechargeRecordsService; import com.dsh.account.service.TAppUserService; import com.dsh.account.service.UserIntegralChangesService; +import com.dsh.account.util.PayMoneyUtil; import com.dsh.account.util.ResultUtil; import com.dsh.account.util.TokenUtil; import com.dsh.account.util.ToolUtil; @@ -20,8 +21,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.List; +import java.util.Map; /** * 使用福利 控制器 @@ -48,6 +52,9 @@ private UserIntegralChangesService uicService; private final SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); + + @Autowired + private PayMoneyUtil payMoneyUtil; @ResponseBody @@ -407,7 +414,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) - public synchronized ResultUtil productRedemptionOperation(GoodsExchangeVo exchangeType) { + public ResultUtil productRedemptionOperation(GoodsExchangeVo exchangeType) { try { Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(); if (null == userIdFormRedis) { @@ -420,6 +427,59 @@ } + + + @ResponseBody + @PostMapping("/base/coupon/weChatPaymentCouponCallback") + public void weChatPaymentCouponCallback(HttpServletRequest request, HttpServletResponse response){ + try { + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + if(null != map){ + String code = map.get("out_trade_no"); + String trade_no = map.get("transaction_id"); + String result = map.get("result"); + ResultUtil resultUtil = tauService.paymentCouponCallback(code, trade_no); + if(resultUtil.getCode() == 200){ + PrintWriter out = response.getWriter(); + out.print(result); + out.flush(); + out.close(); + } + } + }catch (Exception e){ + e.printStackTrace(); + } + } + + + + @ResponseBody + @PostMapping("/base/coupon/aliPaymentCouponCallback") + public void aliPaymentCouponCallback(HttpServletRequest request, HttpServletResponse response){ + try { + Map<String, String> map = payMoneyUtil.alipayCallback(request); + if(null != map){ + String code = map.get("out_trade_no"); + String trade_no = map.get("trade_no"); + ResultUtil resultUtil = tauService.paymentCouponCallback(code, trade_no); + if(resultUtil.getCode() == 200){ + PrintWriter out = response.getWriter(); + out.print("success"); + out.flush(); + out.close(); + } + } + }catch (Exception e){ + e.printStackTrace(); + } + } + + + + + + + /** * 积分明细 */ diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/TStudent.java b/cloud-server-account/src/main/java/com/dsh/account/entity/TStudent.java index 5e44d75..15142ba 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/entity/TStudent.java +++ b/cloud-server-account/src/main/java/com/dsh/account/entity/TStudent.java @@ -104,6 +104,11 @@ */ @TableField("isDefault") private Integer isDefault; + /** + * 所有课时有效期 + */ + @TableField("validity") + private Date validity; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserCouponPaymentClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserCouponPaymentClient.java new file mode 100644 index 0000000..c12c599 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserCouponPaymentClient.java @@ -0,0 +1,37 @@ +package com.dsh.account.feignclient.activity; + +import com.dsh.account.feignclient.activity.model.UserCouponPayment; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @author zhibing.pu + * @Date 2023/11/28 11:10 + */ +@FeignClient(value = "mb-cloud-activity") +public interface UserCouponPaymentClient { + + + /** + * 添加数据 + * @param userCouponPayment + */ + @PostMapping("/userCouponPayment/addUserCouponPayment") + void addUserCouponPayment(UserCouponPayment userCouponPayment); + + + /** + * 获取数据 + * @param code + * @return + */ + @PostMapping("/userCouponPayment/getUserCouponPayment") + UserCouponPayment getUserCouponPayment(String code); + + /** + * 修改数据 + * @param userCouponPayment + */ + @PostMapping("/userCouponPayment/updateUserCouponPayment") + void updateUserCouponPayment(UserCouponPayment userCouponPayment); +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserCouponPayment.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserCouponPayment.java new file mode 100644 index 0000000..23a9b6f --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserCouponPayment.java @@ -0,0 +1,64 @@ +package com.dsh.account.feignclient.activity.model; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * @author zhibing.pu + * @Date 2023/11/28 10:38 + */ +@Data +public class UserCouponPayment { + /** + * 主键 + */ + private Long id; + /** + * 优惠券id + */ + private Integer couponId; + /** + * 用户id + */ + private Integer userId; + /** + * 支付状态(1=待支付,2=已支付) + */ + private Integer status; + /** + * 流水号 + */ + private String code; + /** + * 支付方式(1=积分兑换,2=积分+现金) + */ + private Integer payType; + /** + * 积分支付数量 + */ + private Integer integral; + /** + * 现金支付金额 + */ + private Double cash; + /** + * 现金支付方式(1=微信,2=支付宝) + */ + private Integer cashPayType; + /** + * 第三方支付流水号 + */ + private String orderNumber; + /** + * 支付时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date paymentTime; + /** + * 添加时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date insertTime; +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/Student.java b/cloud-server-account/src/main/java/com/dsh/account/model/Student.java index 4907004..b666214 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/model/Student.java +++ b/cloud-server-account/src/main/java/com/dsh/account/model/Student.java @@ -70,4 +70,9 @@ * 是否默认 1默认 2不是默认 */ private Integer isDefault; + /** + * 所有课时有效期 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date validity; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java index 88dc565..a6c7435 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java @@ -150,6 +150,16 @@ ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeVo); + /** + * 优惠券支付回调处理 + * @param code + * @param orderNumber + * @return + */ + ResultUtil paymentCouponCallback(String code, String orderNumber); + + + ResultUtil exchangeAddPaymentCallback(String code, String orderNumber, Integer payType); List<StoreResponse> queryStoresOfExchange(Integer goodsType, Integer pointsMerId); diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java index e5a6145..bb4fc3d 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java @@ -1,7 +1,6 @@ package com.dsh.account.service.impl; -import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; @@ -19,15 +18,10 @@ import com.dsh.account.dto.*; import com.dsh.account.entity.*; import com.dsh.account.enums.RechargeRecordEnum; -import com.dsh.account.feignclient.activity.IntroduceRewardsClient; -import com.dsh.account.feignclient.activity.MerChandiseClient; -import com.dsh.account.feignclient.activity.MerChandiseStoreClient; -import com.dsh.account.feignclient.activity.UserConponClient; +import com.dsh.account.feignclient.activity.*; import com.dsh.account.feignclient.activity.model.*; import com.dsh.account.feignclient.competition.DeductionCompetitionsClient; import com.dsh.account.feignclient.competition.model.BillingDataRequestVo; -import com.dsh.account.feignclient.competition.model.PaymentCompetition; -import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; import com.dsh.account.feignclient.course.CoursePackageClient; import com.dsh.account.feignclient.course.CoursePackageConfigClient; import com.dsh.account.feignclient.course.CoursePaymentClient; @@ -37,7 +31,6 @@ import com.dsh.account.feignclient.other.RechargeConfigClient; import com.dsh.account.feignclient.other.SiteClient; import com.dsh.account.feignclient.other.StoreClient; -import com.dsh.account.feignclient.other.model.SiteBooking; import com.dsh.account.feignclient.other.model.Store; import com.dsh.account.feignclient.other.model.StoreDetailOfCourse; import com.dsh.account.feignclient.other.model.TImgConfig; @@ -46,7 +39,6 @@ import com.dsh.account.model.AppUserByNameAndPhoneDTO; import com.dsh.account.model.dto.Coupon; import com.dsh.account.model.query.appUserQuery.QueryAppUser; -import com.dsh.account.model.vo.DetailsListVo; import com.dsh.account.model.vo.QueryAppUserVO; import com.dsh.account.model.vo.classDetails.CourseVenue; import com.dsh.account.model.vo.classDetails.ExerciseVideo; @@ -156,9 +148,6 @@ private CoursePackageConfigClient cpconClient; @Resource - private PayMoneyUtil payMoneyUtil; - - @Resource private SiteClient stClient; @Autowired private TAppUserMapper appUserMapper; @@ -182,6 +171,16 @@ private TAppUserService appUserService; @Resource private MerChandiseClient merChandiseClient; + + @Autowired + private PayMoneyUtil payMoneyUtil; + + @Resource + private UserCouponPaymentClient userCouponPaymentClient; + + + + // 对数据进行分页处理的方法 private static Page<Goods> getPage(List<Goods> dataList, Pageable pageable) { @@ -1281,9 +1280,6 @@ @Override @Transactional public synchronized ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) { - System.out.println("exchangeType:--->"); - - ReturnModel returnModel = new ReturnModel(); Long returnId = null; //如果是兑换优惠卷 @@ -1295,7 +1291,7 @@ queryIds.add(coupon.getId()); queryIds.add(userIdFormRedis); Integer counts = userConponClient.queryCounts(queryIds); - if (coupon.getQuantityIssued() - counts == 0) { + if (coupon.getQuantityIssued().compareTo(counts) == 0) { return new ResultUtil(0, "当前数量不足"); } //查询该用户是否超出限领数量 @@ -1304,40 +1300,56 @@ if (usercounts == coupon.getPickUpQuantity()) { return new ResultUtil<>(0, "限领数量已达最大"); } -// userConponClient.queryCouponById(exchangeType.getGoodId()); - UserCoupon userCoupon = new UserCoupon(); - userCoupon.setCouponId(exchangeType.getGoodId()); - userCoupon.setUserId(userIdFormRedis); - userCoupon.setStatus(1); - userCoupon.setInsertTime(new Date()); - userConponClient.insertToAppuserCoupon(userCoupon); - //扣积分 - TAppUser user = appUserService.getById(userIdFormRedis); - if (user.getIntegral() < coupon.getIntegral().intValue()) { - return new ResultUtil<>(0, "当前用户积分不足"); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); + //生成支付订单 + UserCouponPayment userCouponPayment = new UserCouponPayment(); + userCouponPayment.setCouponId(exchangeType.getGoodId()); + userCouponPayment.setUserId(userIdFormRedis); + userCouponPayment.setStatus(1); + userCouponPayment.setCode(code); + userCouponPayment.setPayType(coupon.getRedemptionMethod()); + userCouponPayment.setIntegral(coupon.getIntegral().intValue()); + userCouponPayment.setCash(coupon.getCash().doubleValue()); + userCouponPayment.setCashPayType(exchangeType.getPayType()); + userCouponPayment.setInsertTime(new Date()); + + //积分兑换 + if(coupon.getRedemptionMethod() == 1){ + UserCoupon userCoupon = new UserCoupon(); + userCoupon.setCouponId(exchangeType.getGoodId()); + userCoupon.setUserId(userIdFormRedis); + userCoupon.setStatus(1); + userCoupon.setInsertTime(new Date()); + userConponClient.insertToAppuserCoupon(userCoupon); + //扣积分 + TAppUser user = appUserService.getById(userIdFormRedis); + if (user.getIntegral() < coupon.getIntegral().intValue()) { + return new ResultUtil<>(0, "当前用户积分不足"); + } + user.setIntegral(user.getIntegral() - coupon.getIntegral().intValue()); + appUserService.updateById(user); + + userCouponPayment.setStatus(2); + userCouponPayment.setPaymentTime(new Date()); + userCouponPaymentClient.addUserCouponPayment(userCouponPayment); + return ResultUtil.success(returnId); } - user.setIntegral(user.getIntegral() - coupon.getIntegral().intValue()); - appUserService.updateById(user); - - //记录 -// UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise(); -// pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId()); -// pointsMerchandise.setUserId(userIdFormRedis); -// pointsMerchandise.setStatus(1); -// pointsMerchandise.setState(1); -// pointsMerchandise.setPayStatus(1); -//// if (merchandise.getUseScope() == 3){ -//// if (exchangeType.getGoodsType() == 2){ -//// CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId()); -//// pointsMerchandise.setStoreId(coursePackage.getStoreId()); -//// }else { -//// pointsMerchandise.setStoreId(exchangeType.getStoreId()); -//// } -//// } -//// pointsMerchandise.setCode(code); -// returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise); - - return ResultUtil.success(returnId); + //积分+现金 + if(coupon.getRedemptionMethod() == 1){ + userCouponPaymentClient.addUserCouponPayment(userCouponPayment); + try { + if(exchangeType.getPayType() == 1){ + return weChatPaymentCoupon("购买优惠券", userCouponPayment); + } + if(exchangeType.getPayType() == 2){ + return aliPaymentCoupon("购买优惠券", userCouponPayment); + } + } catch (Exception e) { + e.printStackTrace(); + } + } } @@ -1558,6 +1570,205 @@ } + + /** + * 优惠券微信支付 + * @param body + * @param userCouponPayment + * @return + * @throws Exception + */ + public ResultUtil weChatPaymentCoupon(String body, UserCouponPayment userCouponPayment) throws Exception { + String code = userCouponPayment.getCode(); + Double cash = userCouponPayment.getCash(); + ResultUtil weixinpay = payMoneyUtil.weixinpay(body, "", code, cash.toString(), "/base/coupon/weChatPaymentCouponCallback", "APP", ""); + if (weixinpay.getCode() == 200) { + new Thread(new Runnable() { + @Override + public void run() { + try { + int num = 1; + int wait = 0; + while (num <= 10) { + int min = 5000; + wait += (min * num); + Thread.sleep(wait); + UserCouponPayment userCouponPayment1 = userCouponPaymentClient.getUserCouponPayment(code); + if (userCouponPayment1.getStatus() == 2) { + break; + } + ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, ""); + if (resultUtil.getCode() == 200 && userCouponPayment1.getStatus() == 1) { + /** + * SUCCESS—支付成功, + * REFUND—转入退款, + * NOTPAY—未支付, + * CLOSED—已关闭, + * REVOKED—已撤销(刷卡支付), + * USERPAYING--用户支付中, + * PAYERROR--支付失败(其他原因,如银行返回失败) + */ + Map<String, String> data1 = resultUtil.getData(); + 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) { + //有待支付的订单,这里不处理 + userCouponPayment1.setStatus(-1); + userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); + break; + } + if ("SUCCESS".equals(s)) { + userCouponPayment1.setStatus(2); + userCouponPayment1.setPaymentTime(new Date()); + userCouponPayment1.setOrderNumber(transaction_id); + userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); + + UserCoupon userCoupon = new UserCoupon(); + userCoupon.setCouponId(userCouponPayment1.getCouponId()); + userCoupon.setUserId(userCouponPayment1.getUserId()); + userCoupon.setStatus(1); + userCoupon.setInsertTime(new Date()); + userConponClient.insertToAppuserCoupon(userCoupon); + + if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){ + //扣积分 + TAppUser user = appUserService.getById(userCouponPayment1.getUserId()); + user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue()); + appUserService.updateById(user); + } + break; + } + if ("USERPAYING".equals(s)) { + num++; + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); + } + return weixinpay; + } + + + /** + * 优惠券支付宝支付 + * + * @param uid + * @param paymentPrice + * @param paymentCourseVo + * @return + * @throws Exception + */ + public ResultUtil aliPaymentCoupon(String body, UserCouponPayment userCouponPayment) throws Exception { + String code = userCouponPayment.getCode(); + Double cash = userCouponPayment.getCash(); + + ResultUtil alipay = payMoneyUtil.alipay(body, body, "", code, cash.toString(), "/base/coupon/aliPaymentCouponCallback"); + if (alipay.getCode() == 200) { + 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); + UserCouponPayment userCouponPayment1 = userCouponPaymentClient.getUserCouponPayment(code); + if (userCouponPayment1.getStatus() == 2) { + break; + } + AlipayTradeQueryResponse alipayTradeQueryResponse = payMoneyUtil.queryALIOrder(code); + if (null != alipayTradeQueryResponse) { + /** + * WAIT_BUYER_PAY(交易创建,等待买家付款)、 + * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、 + * TRADE_SUCCESS(交易支付成功)、 + * TRADE_FINISHED(交易结束,不可退款) + */ + String s = alipayTradeQueryResponse.getTradeStatus(); + + String tradeNo = alipayTradeQueryResponse.getTradeNo(); + if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { + //有待支付的订单,这里不处理 + userCouponPayment1.setStatus(-1); + userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); + break; + } + if ("TRADE_SUCCESS".equals(s)) { + userCouponPayment1.setStatus(2); + userCouponPayment1.setPaymentTime(new Date()); + userCouponPayment1.setOrderNumber(tradeNo); + userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); + + UserCoupon userCoupon = new UserCoupon(); + userCoupon.setCouponId(userCouponPayment1.getCouponId()); + userCoupon.setUserId(userCouponPayment1.getUserId()); + userCoupon.setStatus(1); + userCoupon.setInsertTime(new Date()); + userConponClient.insertToAppuserCoupon(userCoupon); + + if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){ + //扣积分 + TAppUser user = appUserService.getById(userCouponPayment1.getUserId()); + user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue()); + appUserService.updateById(user); + } + break; + } + if ("WAIT_BUYER_PAY".equals(s)) { + num++; + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }).start(); + } + return alipay; + } + + /** + * 支付回调 + * @param code + * @param orderNumber + * @return + */ + @Override + public ResultUtil paymentCouponCallback(String code, String orderNumber) { + UserCouponPayment userCouponPayment1 = userCouponPaymentClient.getUserCouponPayment(code); + if (userCouponPayment1.getStatus() == 2) { + return ResultUtil.success(); + } + userCouponPayment1.setStatus(2); + userCouponPayment1.setPaymentTime(new Date()); + userCouponPayment1.setOrderNumber(orderNumber); + userCouponPaymentClient.updateUserCouponPayment(userCouponPayment1); + + UserCoupon userCoupon = new UserCoupon(); + userCoupon.setCouponId(userCouponPayment1.getCouponId()); + userCoupon.setUserId(userCouponPayment1.getUserId()); + userCoupon.setStatus(1); + userCoupon.setInsertTime(new Date()); + userConponClient.insertToAppuserCoupon(userCoupon); + + if(null != userCouponPayment1.getIntegral() && 0 != userCouponPayment1.getIntegral()){ + //扣积分 + TAppUser user = appUserService.getById(userCouponPayment1.getUserId()); + user.setIntegral(user.getIntegral() - userCouponPayment1.getIntegral().intValue()); + appUserService.updateById(user); + } + return ResultUtil.success(); + } + public boolean dealAppUserIntegral(Integer appUserId, TAppUser appUser, Integer points) { try { if (ToolUtil.isEmpty(appUser.getIntegral()) || (ToolUtil.isNotEmpty(appUser.getIntegral()) && appUser.getIntegral() < points)) { diff --git a/cloud-server-activity/pom.xml b/cloud-server-activity/pom.xml index 9254ebe..2435023 100644 --- a/cloud-server-activity/pom.xml +++ b/cloud-server-activity/pom.xml @@ -84,7 +84,6 @@ <artifactId>geodesy</artifactId> <version>1.1.3</version> </dependency> - </dependencies> <build> diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponPaymentController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponPaymentController.java new file mode 100644 index 0000000..0dd286f --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponPaymentController.java @@ -0,0 +1,53 @@ +package com.dsh.activity.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.dsh.activity.model.UserCouponPayment; +import com.dsh.activity.service.IUserCouponPaymentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @author zhibing.pu + * @Date 2023/11/28 11:12 + */ +@RestController +@RequestMapping("") +public class UserCouponPaymentController { + + @Autowired + private IUserCouponPaymentService userCouponPaymentService; + + + /** + * 添加数据 + * @param userCouponPayment + */ + @ResponseBody + @PostMapping("/userCouponPayment/addUserCouponPayment") + public void addUserCouponPayment(@RequestBody UserCouponPayment userCouponPayment){ + userCouponPaymentService.save(userCouponPayment); + } + + + /** + * 获取数据 + * @param code + * @return + */ + @ResponseBody + @PostMapping("/userCouponPayment/getUserCouponPayment") + public UserCouponPayment getUserCouponPayment(@RequestBody String code){ + return userCouponPaymentService.getOne(new QueryWrapper<UserCouponPayment>().eq("code", code)); + } + + + /** + * 修改数据 + * @param userCouponPayment + */ + @ResponseBody + @PostMapping("/userCouponPayment/updateUserCouponPayment") + public void updateUserCouponPayment(@RequestBody UserCouponPayment userCouponPayment){ + userCouponPaymentService.updateById(userCouponPayment); + } +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponPaymentMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponPaymentMapper.java new file mode 100644 index 0000000..09f4539 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponPaymentMapper.java @@ -0,0 +1,11 @@ +package com.dsh.activity.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsh.activity.model.UserCouponPayment; + +/** + * @author zhibing.pu + * @Date 2023/11/28 10:44 + */ +public interface UserCouponPaymentMapper extends BaseMapper<UserCouponPayment> { +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/UserCouponPayment.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/UserCouponPayment.java new file mode 100644 index 0000000..ee18da6 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/UserCouponPayment.java @@ -0,0 +1,78 @@ +package com.dsh.activity.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author zhibing.pu + * @Date 2023/11/28 10:38 + */ +@Data +@TableName("t_user_coupon_payment") +public class UserCouponPayment { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.NONE) + private Long id; + /** + * 优惠券id + */ + @TableField("couponId") + private Integer couponId; + /** + * 用户id + */ + @TableField("userId") + private Integer userId; + /** + * 支付状态(1=待支付,2=已支付) + */ + @TableField("status") + private Integer status; + /** + * 流水号 + */ + @TableField("code") + private String code; + /** + * 支付方式(1=积分兑换,2=积分+现金) + */ + @TableField("payType") + private Integer payType; + /** + * 积分支付数量 + */ + @TableField("integral") + private Integer integral; + /** + * 现金支付金额 + */ + @TableField("cash") + private Double cash; + /** + * 现金支付方式(1=微信,2=支付宝) + */ + @TableField("cashPayType") + private Integer cashPayType; + /** + * 第三方支付流水号 + */ + @TableField("orderNumber") + private String orderNumber; + /** + * 支付时间 + */ + @TableField("paymentTime") + private Date paymentTime; + /** + * 添加时间 + */ + @TableField("insertTime") + private Date insertTime; +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/IUserCouponPaymentService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/IUserCouponPaymentService.java new file mode 100644 index 0000000..a9a1465 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/IUserCouponPaymentService.java @@ -0,0 +1,11 @@ +package com.dsh.activity.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.activity.model.UserCouponPayment; + +/** + * @author zhibing.pu + * @Date 2023/11/28 10:45 + */ +public interface IUserCouponPaymentService extends IService<UserCouponPayment> { +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponPaymentServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponPaymentServiceImpl.java new file mode 100644 index 0000000..8a69103 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponPaymentServiceImpl.java @@ -0,0 +1,15 @@ +package com.dsh.activity.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.activity.mapper.UserCouponPaymentMapper; +import com.dsh.activity.model.UserCouponPayment; +import com.dsh.activity.service.IUserCouponPaymentService; +import org.springframework.stereotype.Service; + +/** + * @author zhibing.pu + * @Date 2023/11/28 10:45 + */ +@Service +public class UserCouponPaymentServiceImpl extends ServiceImpl<UserCouponPaymentMapper, UserCouponPayment> implements IUserCouponPaymentService { +} diff --git a/cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java b/cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java index 3409f5a..4e66630 100644 --- a/cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java +++ b/cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java @@ -89,8 +89,13 @@ props3.setProperty("algorithm-expression", "t_user_benefits_videos$->{appUserId % 5 + 1}"); result1.getShardingAlgorithms().put("t_user_benefits_videos-inline", new AlgorithmConfiguration("INLINE", props3)); result1.getKeyGenerators().put("t_user_benefits_videos-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties())); - linkedList.add(result1); + result1.getTables().add(getUserCouponTableRulePaymentConfiguration()); + Properties props4 = new Properties(); + props4.setProperty("algorithm-expression", "t_user_coupon_payment$->{userId % 5 + 1}"); + result1.getShardingAlgorithms().put("t_user_coupon_payment-inline", new AlgorithmConfiguration("INLINE", props4)); + result1.getKeyGenerators().put("t_user_coupon_payment-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties())); + linkedList.add(result1); return linkedList; } @@ -132,4 +137,16 @@ return result; } + /** + * 分片算法配置 + * + * @return + */ + private ShardingTableRuleConfiguration getUserCouponTableRulePaymentConfiguration() { + ShardingTableRuleConfiguration result = new ShardingTableRuleConfiguration("t_user_coupon_payment", "m_$->{0}.t_user_coupon_payment$->{1..5}");//50 + result.setTableShardingStrategy(new StandardShardingStrategyConfiguration("userId", "t_user_coupon_payment-inline")); + result.setKeyGenerateStrategy(new KeyGenerateStrategyConfiguration("id", "t_user_coupon_payment-snowflake")); + return result; + } + } diff --git a/cloud-server-activity/src/main/resources/mapper/UserCouponPaymentMapper.xml b/cloud-server-activity/src/main/resources/mapper/UserCouponPaymentMapper.xml new file mode 100644 index 0000000..b752298 --- /dev/null +++ b/cloud-server-activity/src/main/resources/mapper/UserCouponPaymentMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.dsh.activity.mapper.UserCouponPaymentMapper"> + +</mapper> \ No newline at end of file diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java index f469119..680f6e6 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java @@ -672,6 +672,7 @@ List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList()); List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() .in("appUserId", appUserIds) + .in("studentId", recordTimeRequest.getStuId()) .eq("coursePackageId", recordTimeRequest.getLessionId()) .eq("state", 1) ); @@ -896,7 +897,6 @@ Set<BaseVo> set = new HashSet<>(list); List<BaseVo> back = new ArrayList<>(set); - return ResultUtil.success(back); } catch (Exception e) { e.printStackTrace(); @@ -914,25 +914,11 @@ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), }) public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList(CourseOfAfterRequest search) throws Exception { -// try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if (null == appUserId) { return ResultUtil.tokenErr(); } -// -// List<Integer> courseIds = new ArrayList<>(); -// QueryWrapper<TCoursePackagePayment> queryWrapper = new QueryWrapper<TCoursePackagePayment>().eq("appUserId", appUserId) -// .groupBy("coursePackageId"); -// if (ToolUtil.isNotEmpty(search.getCourseTypeId())){ -// queryWrapper.eq("coursePackageId",search.getCourseTypeId()); -// } -// List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(queryWrapper); -// if (tCoursePackagePayments.size() > 0 ){ -// courseIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); -// } - - QueryWrapper<CoursePackageStudent> queryWrapper1 = new QueryWrapper<CoursePackageStudent>().eq("studentId", search.getStuId()); if (ToolUtil.isNotEmpty(search.getCourseTypeId())) { queryWrapper1.eq("coursePackageId", search.getCourseTypeId()); @@ -945,7 +931,6 @@ } System.out.println("======longs========" + longs); -// List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId")); List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs); if (search.getSearch() != null) { @@ -960,11 +945,6 @@ } return ResultUtil.success(coursePackageSchedulings1); - - -// }catch (Exception e){ -// return ResultUtil.runErr(); -// } } /** @@ -2266,7 +2246,9 @@ map.put("lon", lon); map.put("lat", lat); // 找出门店的所有课程 排出体验 - List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3).eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week)); + List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>() + .eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3) + .eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week)); List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList()); if (collect.size() == 0) { collect.add(-1); @@ -2278,14 +2260,14 @@ .in(CoursePackageScheduling::getCoursePackageId, collect) ); List<Integer> collect1 = list8.stream().map(CoursePackageScheduling::getCoursePackageId).collect(Collectors.toList()); - // 找出购买的课包 - List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() - .eq("appUserId", courseDetailReq.getAppUserId()) - .eq("studentId", courseDetailReq.getStuId()) - .in("coursePackageId", collect1) - .eq("status", 1) - .eq("state", 1) - ); +// // 找出购买的课包 +// List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() +// .eq("appUserId", courseDetailReq.getAppUserId()) +// .eq("studentId", courseDetailReq.getStuId()) +// .in("coursePackageId", collect1) +// .eq("status", 1) +// .eq("state", 1) +// ); diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java index 3cdcbf9..18e5477 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java @@ -421,8 +421,7 @@ @ResponseBody public void toClass(@RequestBody ToClassDto toClassDto) throws ParseException { System.out.println("===========到达getSelect=======" + toClassDto); - TCoursePackagePayment orinPay = - paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", toClassDto.getId())); + TCoursePackagePayment orinPay = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", toClassDto.getId())); TCoursePackagePayment studentPay = paymentService.getOne (new QueryWrapper<TCoursePackagePayment>() .eq("studentId", toClassDto.getToStudentId()) diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/UserIntegralChangesClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/UserIntegralChangesClient.java new file mode 100644 index 0000000..62683fe --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/UserIntegralChangesClient.java @@ -0,0 +1,22 @@ +package com.dsh.course.feignclient.account; + +import com.dsh.course.feignclient.account.model.SaveUserIntegralChangesVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @author zhibing.pu + * @date 2023/7/12 11:40 + */ +@FeignClient("mb-cloud-account") +public interface UserIntegralChangesClient { + + + /** + * 保存用户积分变动记录 + * + * @param vo + */ + @PostMapping("/userIntegralChanges/saveUserIntegralChanges") + void saveUserIntegralChanges(SaveUserIntegralChangesVo vo); +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/SaveUserIntegralChangesVo.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/SaveUserIntegralChangesVo.java new file mode 100644 index 0000000..6faaadf --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/SaveUserIntegralChangesVo.java @@ -0,0 +1,23 @@ +package com.dsh.course.feignclient.account.model; + +import lombok.Data; + +/** + * @author zhibing.pu + * @date 2023/7/12 11:26 + */ +@Data +public class SaveUserIntegralChangesVo { + /** + * 用户id + */ + private Integer appUserId; + /** + * 积分类型(1=赠送积分,2=兑换商品,3=完成课后练习,4=观看教学视频) + */ + private Integer type; + /** + * 积分 + */ + private Integer integral; +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/UpdateCourseVideoStatusRequest.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/UpdateCourseVideoStatusRequest.java index bee3540..398ace3 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/UpdateCourseVideoStatusRequest.java +++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/UpdateCourseVideoStatusRequest.java @@ -14,6 +14,9 @@ @ApiModelProperty(value = "课包id") private Integer coursePackageId; + @ApiModelProperty(value = "排课id") + private Long scId; + @ApiModelProperty(value = "是否看完 1是 2否") private Integer isOver; diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageSchedulingService.java b/cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageSchedulingService.java index d9b43d5..09ea539 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageSchedulingService.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageSchedulingService.java @@ -34,7 +34,6 @@ List<AppUserVideoResponse> queryAll(List<Long> longs); - void cancel(); /** diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java index c4797d5..fe4934d 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java @@ -84,36 +84,6 @@ * 定时修改状态 */ @Override - public void cancel() { - new Thread(new Runnable() { - @Override - public void run() { - List<TCoursePackagePayment> list = packagePaymentService.list(); - Date now = new Date(); - List<Long> pays = new ArrayList<>(); - for (TCoursePackagePayment coursePackagePayment : list) { - if (now.before(coursePackagePayment.getUseTime())) { - pays.add(coursePackagePayment.getId()); - } - } - - List<CoursePackageStudent> coursePackagePaymentId = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().in("coursePackagePaymentId", pays)); - List<Long> scs = new ArrayList<>(); - for (CoursePackageStudent coursePackageStudent : coursePackagePaymentId) { - scs.add(coursePackageStudent.getCoursePackageSchedulingId()); - } - coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().in("coursePackagePaymentId", pays)); - coursePackageSchedulingMapper.delete(new QueryWrapper<CoursePackageScheduling>().in("id", scs)); - - - } - }).start(); - } - - /** - * 定时修改状态 - */ - @Override public void taskSetStatus() { new Thread(new Runnable() { @Override 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 624cee3..682ca6f 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 @@ -18,10 +18,8 @@ import com.dsh.course.feignclient.account.AppUserClient; import com.dsh.course.feignclient.account.CoachClient; import com.dsh.course.feignclient.account.StudentClient; -import com.dsh.course.feignclient.account.model.AppUser; -import com.dsh.course.feignclient.account.model.Coach; -import com.dsh.course.feignclient.account.model.Student; -import com.dsh.course.feignclient.account.model.TCourseInfoRecord; +import com.dsh.course.feignclient.account.UserIntegralChangesClient; +import com.dsh.course.feignclient.account.model.*; import com.dsh.course.feignclient.activity.BenefitVideoClient; import com.dsh.course.feignclient.activity.CouponClient; import com.dsh.course.feignclient.activity.model.BenefitsVideos; @@ -118,9 +116,11 @@ @Autowired private ICoursePackageSchedulingService coursePackageSchedulingService; - @Autowired private RestTemplate internalRestTemplate; + + @Resource + private UserIntegralChangesClient userIntegralChangesClient; @Override @@ -326,7 +326,6 @@ @Override public CourseOfVideoResponse queryVideoDetails(CourseWithDetailsRequest detailsRequest, Integer appUserId) { CourseOfVideoResponse response = new CourseOfVideoResponse(); -// BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(detailsRequest.getVideoId()); TCourse byId = courseService.getById(detailsRequest.getVideoId()); TCoursePackage coursePackage = tcpmapper.selectById(detailsRequest.getCoursePackageId()); CoursePackageScheduling byId1 = new CoursePackageScheduling(); @@ -373,6 +372,17 @@ userVideoDetails.setState(2); userVideoDetails.setUpdateTime(new Date()); uvdmapper.updateById(userVideoDetails); + + CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getById(detailsRequest.getScId()); + //添加积分 + AppUser appUser = appuClient.queryAppUser(coursePackageScheduling.getAppUserId()); + appUser.setIntegral((null == appUser.getIntegral() ? 0 : appUser.getIntegral()) + (null == coursePackageScheduling.getIntegral() ? 0 : coursePackageScheduling.getIntegral())); + appuClient.updateAppUser(appUser); + SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); + vo.setAppUserId(coursePackageScheduling.getAppUserId()); + vo.setIntegral(coursePackageScheduling.getIntegral()); + vo.setType(4); + userIntegralChangesClient.saveUserIntegralChanges(vo); return "SUCCESS"; } return "ERROR"; 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 3226306..a14b9c3 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 @@ -607,7 +607,6 @@ String[] split = coursePackage.getClassWeeks().split(";"); coursePackageInfo.setWeeks(Arrays.asList(split)); - // 2.0 String classStartTime = coursePackage.getClassStartTime(); String classEndTime = coursePackage.getClassEndTime(); ArrayList<String> classTime = new ArrayList<>(); @@ -643,7 +642,6 @@ coursePackagePaymentConfigVo.setPayType(2); } -// coursePackagePaymentConfigVo.setPayType(coursePackage.getPayType()); //会员显示原价和支付价(会员价)。非会员显示会员价和支付价(最低) // if(appUser.getIsVip() == 0){//非会员 List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) @@ -981,6 +979,9 @@ coursePackageOrder1.setOrderNumber(transaction_id); coursePackageOrder1.setAppUserId(null); coursePackageOrderService.updateById(coursePackageOrder1); + //修改课时有效期 + + addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); break; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java b/cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java index fd4f410..1065e31 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java +++ b/cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java @@ -91,15 +91,6 @@ /** - * 零时任务 - */ - @Scheduled(cron = "0 0 23 * * *") - public void zeroTask() { - coursePackageSchedulingService.cancel(); - } - - - /** * 每周一执行的定时任务 */ @Scheduled(cron = "0 0 0 * * 2") diff --git a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js index ee68969..0ca98b7 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/coursePackage/coursePackageStudent.js @@ -42,16 +42,7 @@ } } } - }, - {title: '预定状态', field: 'reservationStatus', align: 'center', valign: 'middle',hidden:true, - formatter: function (v) { - if (v == 0) { - return '已取消'; - } else { - return '正常'; - } - } - }, + } ]; return columns; }; diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java index 493cda4..4338689 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java @@ -85,25 +85,8 @@ @ApiImplicitParam(value = "位置(1=首页,2=首页底部,3=线上课得积分,4=看视频得奖励,5=常见问题)", name = "position", dataType = "int", required = true), }) public ResultUtil<List<BannerVo>> queryBannerList(Integer position) { -// try { -// List<Banner> list = bannerService.list(new QueryWrapper<Banner>().eq("position", position).eq("state", 1).orderByAsc("sort")); - -// if (position == 4) { List<BannerVo> list2 = bannerService.list1(position); return ResultUtil.success(list2); -// } - -// List<BannerVo> list1 = new ArrayList<>(); -// for (Banner banner : list) { -// BannerVo bannerVo = new BannerVo(); -// BeanUtils.copyProperties(banner, bannerVo); -// list1.add(bannerVo); -// } -// return ResultUtil.success(list1); -// }catch (Exception e){ -// e.printStackTrace(); -// return ResultUtil.runErr(); -// } } diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/BannerVo.java b/cloud-server-other/src/main/java/com/dsh/other/model/BannerVo.java index 972eaa5..cceae31 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/model/BannerVo.java +++ b/cloud-server-other/src/main/java/com/dsh/other/model/BannerVo.java @@ -25,4 +25,6 @@ private Integer turnId; @ApiModelProperty("跳转模块") private String model; + @ApiModelProperty("跳转列表类型id") + private Integer typeId; } diff --git a/cloud-server-other/src/main/resources/mapper/BannerMapper.xml b/cloud-server-other/src/main/resources/mapper/BannerMapper.xml index cee1903..0accb48 100644 --- a/cloud-server-other/src/main/resources/mapper/BannerMapper.xml +++ b/cloud-server-other/src/main/resources/mapper/BannerMapper.xml @@ -49,9 +49,10 @@ where position = 6 </select> <select id="list1" resultType="com.dsh.other.model.BannerVo"> - select tb.id as id,tb.img as img, tb.page as page,tb.name as name,tb.type as type,tb.turnId as turnId , tb.model as model - from t_banner tb - where tb.position = #{position} and tb.state =1 + select tb.id as id,tb.img as img, tb.page as page,tb.name as name,tb.type as type, + tb.turnId as turnId , tb.model as model, tb.typeId + from t_banner tb + where tb.position = #{position} and tb.state =1 </select> </mapper> -- Gitblit v1.7.1