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