From 75e4afe327894168f7d65e87b9fbf0fac4612db3 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 19 七月 2023 17:44:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java | 2
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java | 25 -
cloud-server-other/src/main/java/com/dsh/other/feignclient/SiteClient.java | 20 +
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 71 +++++
cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml | 8
cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java | 39 +++
cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java | 6
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java | 2
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java | 22 +
cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java | 5
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java | 2
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 24 +
cloud-server-other/src/main/java/com/dsh/OtherApplication.java | 2
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 292 +++++++++++++++++-----
cloud-server-other/src/main/resources/mapper/SiteMapper.xml | 2
cloud-server-other/src/main/java/com/dsh/other/model/QueryMySiteVo.java | 2
cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java | 3
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java | 6
cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java | 38 ++
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java | 5
cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java | 25 +
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/SiteBooking.java | 125 +++++++++
22 files changed, 608 insertions(+), 118 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java
new file mode 100644
index 0000000..4a5661e
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java
@@ -0,0 +1,22 @@
+package com.dsh.account.feignclient.other;
+
+import com.dsh.account.feignclient.other.model.SiteBooking;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+
+@FeignClient("mb-cloud-other")
+public interface SiteClient {
+
+ @PostMapping("/base/site/queryPaymentSiteDetail")
+ List<SiteBooking> getAllSiteBookingList(@RequestBody Integer appUserId);
+
+
+ @PostMapping("/base/site/queryPlaypaiGoldSiteDetail")
+ List<SiteBooking> wanpaiGoldSiteBookingList(@RequestBody Integer appUserId);
+
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/SiteBooking.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/SiteBooking.java
new file mode 100644
index 0000000..586b9dd
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/SiteBooking.java
@@ -0,0 +1,125 @@
+package com.dsh.account.feignclient.other.model;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/13 16:11
+ */
+@Data
+public class SiteBooking {
+ /**
+ * 主键
+ */
+ private Integer id;
+ /**
+ * 业务流水号
+ */
+ private String orderNo;
+ /**
+ * 省
+ */
+ private String province;
+ /**
+ * 省编号
+ */
+ private String provinceCode;
+ /**
+ * 市名称
+ */
+ private String city;
+ /**
+ * 市编号
+ */
+ private String cityCode;
+ /**
+ * 门店id
+ */
+ private Integer storeId;
+ /**
+ * 场地id
+ */
+ private Integer siteId;
+ /**
+ * 用户id
+ */
+ private Integer appUserId;
+ /**
+ * 预约时段
+ */
+ private String times;
+ /**
+ * 预约开始时间
+ */
+ private Date startTime;
+ /**
+ * 预约结束
+ */
+ private Date endTime;
+ /**
+ * 预约人
+ */
+ private String booker;
+ /**
+ * 联系方式
+ */
+ private String phone;
+ /**
+ * 支付方式(1=微信,2=支付宝,3=玩湃比,4=手动支付)
+ */
+ private Integer payType;
+ /**
+ * 支付时间
+ */
+ private Date payTime;
+ /**
+ * 支付金额
+ */
+ private Double payMoney;
+ /**
+ * 优惠券id
+ */
+ private Long userCouponId;
+ /**
+ * 状态(0=待支付,1=待核销,2=已到店,3=已完成,4=已过期,5=已取消)
+ */
+ private Integer status;
+ /**
+ * 第三方支付流水号
+ */
+ private String payOrderNo;
+ /**
+ * 手动支付操作用户id
+ */
+ private Integer payUserId;
+ /**
+ * 取消用户id
+ */
+ private Integer cancelUserId;
+ /**
+ * 取消凭证
+ */
+ private String voucher;
+ /**
+ * 取消备注
+ */
+ private String remark;
+ /**
+ * 取消时间
+ */
+ private Date cancelTime;
+ /**
+ * 第三方取消退款流水号
+ */
+ private String refundOrderNo;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ private Date insertTime;
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
index db3d035..daf66de 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java
@@ -10,6 +10,8 @@
import com.dsh.account.feignclient.course.CoursePaymentClient;
import com.dsh.account.feignclient.course.model.TCoursePackagePayment;
import com.dsh.account.feignclient.other.RechargeConfigClient;
+import com.dsh.account.feignclient.other.SiteClient;
+import com.dsh.account.feignclient.other.model.SiteBooking;
import com.dsh.account.mapper.RechargeRecordsMapper;
import com.dsh.account.mapper.TAppUserMapper;
import com.dsh.account.model.vo.userBenefitDetail.RechargeDetailsVo;
@@ -25,11 +27,9 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* <p>
@@ -57,6 +57,9 @@
@Autowired
private PayMoneyUtil payMoneyUtil;
+
+ @Resource
+ private SiteClient stClient;
@Resource
@@ -108,8 +111,16 @@
}
}
// 3.场地预约
- // TODO: 2023/7/14 充值明细的场地预约查询
-
+ List<SiteBooking> siteBookings = stClient.wanpaiGoldSiteBookingList(appUserId);
+ if (siteBookings.size() > 0 ){
+ for (SiteBooking booking : siteBookings) {
+ RechargeDetailsVo.RechargesDetail consumeDetail = new RechargeDetailsVo.RechargesDetail();
+ consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.name());
+ consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getInsertTime()));
+ consumeDetail.setConsumeAmount("-" + booking.getPayMoney());
+ details.add(consumeDetail);
+ }
+ }
// 4.智慧球场
// 5.充值
@@ -126,6 +137,21 @@
details.add(consumeDetail);
}
}
+ if (details.size() > 0 ){
+ Collections.sort(details, new Comparator<RechargeDetailsVo.RechargesDetail>() {
+ @Override
+ public int compare(RechargeDetailsVo.RechargesDetail o1, RechargeDetailsVo.RechargesDetail o2) {
+ try {
+ Date date1 = simpleDateFormat.parse(o1.getConsumeTime());
+ Date date2 = simpleDateFormat.parse(o2.getConsumeTime());
+ return date2.compareTo(date1); // 降序排序
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ return 0;
+ }
+ });
+ }
vo.setDetailList(details);
return vo;
}
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 96b94e1..97acc47 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
@@ -17,7 +17,9 @@
import com.dsh.account.feignclient.course.model.*;
import com.dsh.account.feignclient.other.ImgConfigClient;
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;
@@ -119,8 +121,11 @@
@Resource
private CoursePackageConfigClient cpconClient;
- @Autowired
+ @Resource
private PayMoneyUtil payMoneyUtil;
+
+ @Resource
+ private SiteClient stClient;
@Override
public ClassInfoVo queryUserOfStus(Integer id,String latitude,String longitude) {
@@ -545,7 +550,22 @@
}
}
// 4.场地预约
- // TODO: 2023/7/14 账单的场地预约查询
+ List<SiteBooking> allSiteBookingList = stClient.getAllSiteBookingList(appUserId);
+ if (allSiteBookingList.size() > 0){
+ for (SiteBooking booking : allSiteBookingList) {
+ BillingDetailsVo.ConsumeDetail consumeDetail = new BillingDetailsVo.ConsumeDetail();
+ if (booking.getStatus() != 5){
+ consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg());
+ consumeDetail.setConsumeAmount("-" + booking.getPayMoney());
+ consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getPayTime()));
+ }else {
+ consumeDetail.setConsumeName(RechargeRecordEnum.CANCEL_VENUE_RESERVATION.getMsg());
+ consumeDetail.setConsumeAmount("+" + booking.getPayMoney());
+ consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getCancelTime()));
+ }
+ details.add(consumeDetail);
+ }
+ }
// 5.智慧球场
// 6.年度会员
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
index 665f569..be425d3 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
@@ -87,6 +87,11 @@
return availableVos;
}
+ @PostMapping("/base/userConpon/queryCouponRules")
+ public Map<String,Object> getCouponRules(@RequestBody Integer couponId){
+ return cService.queryConponRuleOfJson(couponId);
+ }
+
@ResponseBody
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java
index 5ded3e7..5b9d00b 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java
@@ -10,6 +10,7 @@
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
+import java.util.Map;
@FeignClient(value = "mb-cloud-activity")
public interface UserConponClient {
@@ -32,4 +33,8 @@
@PostMapping("/userCoupon/queryCouponOfStore")
List<Integer> getCouponStoreIds(@RequestBody Integer couponId);
+
+
+ @PostMapping("/base/userConpon/queryCouponRules")
+ Map<String,Object> getCouponRules(@RequestBody Integer couponId);
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
index e3ebf20..8fb6b20 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
@@ -96,29 +96,4 @@
}
}
-
- /**
- * 折扣课包支付
- */
- @ResponseBody
- @PostMapping("/api/useBenefit/paymentOfDiscountCoursePack")
- @ApiOperation(value = "本周福利-折扣课包支付", tags = {"APP-使用福利"})
- @ApiImplicitParams({
- @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
- @ApiImplicitParam(name = "coursePackageDiscountId",value = "限时折扣配置id/赠送课时配置id",dataType = "int"),
- @ApiImplicitParam(name = "lon",value = "经度",dataType = "String"),
- @ApiImplicitParam(name = "lat",value = "纬度",dataType = "String"),
- })
- public ResultUtil paymentWeeksFreeCourse(Integer coursePackageDiscountId){
- try {
- Integer appuserId = tokenUtil.getUserIdFormRedis();
- if(null == appuserId){
- return ResultUtil.tokenErr();
- }
- return tcpdService.paymentDiscountCoursePack(coursePackageDiscountId,appuserId);
- }catch (Exception e){
- return ResultUtil.runErr();
- }
- }
-
}
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 34105c7..346ebf8 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
@@ -28,11 +28,16 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
@Api
@@ -75,7 +80,9 @@
private CancelledClassesService cancelledClassesService;
@Autowired
- private AppUserClient appuClient;
+ private PayMoneyUtil payMoneyUtil;
+ @Resource
+ private AppUserClient auClitn;
private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
@@ -342,7 +349,7 @@
@ResponseBody
@PostMapping("/api/course/queryArrangeCourseList")
- @ApiOperation(value = "获取布置课程列表", tags = {"APP-课程列表"})
+ @ApiOperation(value = "课后练习-获取布置课程列表", tags = {"APP-开始上课"})
@ApiImplicitParams({
})
public ResultUtil<List<BaseVo>> queryArrangePackageType(){
@@ -374,7 +381,7 @@
*/
@ResponseBody
@PostMapping("/api/startCource/afterSourceList")
- @ApiOperation(value = "课后视频课表", tags = {"APP-开始上课"})
+ @ApiOperation(value = "课后练习-课后视频列表", tags = {"APP-开始上课"})
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
@@ -403,7 +410,7 @@
*/
@ResponseBody
@PostMapping("/api/startCource/afterSourceDetail")
- @ApiOperation(value = "课后视频详情", tags = {"APP-开始上课"})
+ @ApiOperation(value = "课后练习-课后视频详情", tags = {"APP-开始上课"})
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
@@ -534,6 +541,58 @@
}
+
+ /**
+ * 课包续课支付宝支付回调接口
+ */
+ @PostMapping("/base/coursePackage/alipayRegisteredCoursesCallback")
+ public void alipayCallback(HttpServletRequest request, HttpServletResponse response){
+ try {
+ Map<String, String> map = payMoneyUtil.alipayCallback(request);
+ if(null != map){
+ String out_trade_no = map.get("out_trade_no");
+ String transaction_id = map.get("transaction_id");
+ ResultUtil resultUtil = packagePaymentService.insertVipPaymentCallback(out_trade_no, transaction_id);
+ if(resultUtil.getCode() == 200){
+ PrintWriter out = response.getWriter();
+ out.write("success");
+ out.flush();
+ out.close();
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+
+ /**
+ * 课包续课微信支付回调接口
+ */
+ @PostMapping("/base/coursePackage/wechatRegisteredCoursesCallback")
+ public void weChatCallback(HttpServletRequest request, HttpServletResponse response){
+ try {
+ Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
+ if(null != map){
+ String out_trade_no = map.get("out_trade_no");
+ String transaction_id = map.get("transaction_id");
+ String result = map.get("result");
+ ResultUtil resultUtil = packagePaymentService.insertVipPaymentCallback(out_trade_no, transaction_id);
+ if(resultUtil.getCode() == 200){
+ PrintWriter out = response.getWriter();
+ out.write(result);
+ out.flush();
+ out.close();
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+
+
+
+
/**
* 获取学员剩余课时
* @param id
@@ -638,7 +697,7 @@
return 2;
}
CoursePackagePaymentConfig paymentConfig = icppcService.getById(coursePackage.getCoursePayConfigId());
- AppUser appUser = appuClient.queryAppUser(userIdFormRedis);
+ AppUser appUser = auClitn.queryAppUser(userIdFormRedis);
if (appUser.getPlayPaiCoins() < paymentConfig.getPlayPaiCoin()){
return 3;
}
@@ -653,7 +712,7 @@
packagePaymentService.updateById(packagePayment);
appUser.setPlayPaiCoins(appUser.getPlayPaiCoins()-paymentConfig.getPlayPaiCoin());
- appuClient.updateAppUser(appUser);
+ auClitn.updateAppUser(appUser);
} catch (Exception e) {
return 4;
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java
index 8b18450..14d78a6 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java
@@ -3,6 +3,9 @@
import com.dsh.course.feignclient.activity.model.Coupon;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Map;
/**
* @author zhibing.pu
@@ -19,4 +22,7 @@
*/
@PostMapping("/coupon/queryCouponById")
Coupon queryCouponById(Integer id);
+
+ @PostMapping("/base/userConpon/queryCouponRules")
+ Map<String,Object> getCouponRules(@RequestBody Integer couponId);
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
index 63917a7..ad694c5 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
@@ -23,4 +23,6 @@
*/
Integer queryCountNumber(@Param("coursePackageId") Integer coursePackageId);
+ TCoursePackagePayment getCoursePackagePaymentByCode(@Param("code") String code);
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java
index f56ccc1..9f2495d 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/request/ClasspaymentRequest.java
@@ -25,5 +25,8 @@
@ApiModelProperty(value = "支付记录id")
private Long coursePayId;
+ @ApiModelProperty(value = "课时数")
+ private Integer courseHoursNum;
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java
index 6af20df..cd02a1a 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java
@@ -4,7 +4,6 @@
import com.dsh.course.entity.TCoursePackageDiscount;
import com.dsh.course.model.vo.response.Details;
import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse;
-import com.dsh.course.util.ResultUtil;
import java.util.List;
@@ -23,6 +22,5 @@
ExchangeCoursePackageResponse getWeekFreeCourseDetails(Integer coursePackageDiscountId,String lat,String lon);
- ResultUtil paymentDiscountCoursePack(Integer coursePackageDiscountId, Integer appuserId);
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
index d41eb94..763ec2b 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -86,4 +86,6 @@
*/
List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId);
+ ResultUtil insertVipPaymentCallback(String code, String orderNumber);
+
}
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
index 218bcba..e0f8400 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
@@ -21,7 +21,6 @@
import com.dsh.course.service.TCoursePackageDiscountService;
import com.dsh.course.util.DateTimeHelper;
import com.dsh.course.util.LocalDateTimeUtils;
-import com.dsh.course.util.ResultUtil;
import com.dsh.course.util.StrUtils;
import org.springframework.stereotype.Service;
@@ -391,11 +390,6 @@
return packageResponse;
}
- @Override
- public ResultUtil paymentDiscountCoursePack(Integer coursePackageDiscountId, Integer appuserId) {
- // TODO: 2023/7/13 折扣课包支付
- return null;
- }
private static boolean isDateWithinRange(Date date, Date startTime, Date endTime) {
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 72d255f..7ac9917 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
@@ -1,9 +1,13 @@
package com.dsh.course.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsh.course.entity.*;
+import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.CoachClient;
+import com.dsh.course.feignclient.account.model.AppUser;
import com.dsh.course.feignclient.account.model.Coach;
import com.dsh.course.feignclient.activity.BenefitVideoClient;
import com.dsh.course.feignclient.activity.CouponClient;
@@ -26,7 +30,6 @@
import com.dsh.course.util.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -78,11 +81,18 @@
@Resource
private TCoursePackageDiscountMapper tcpdMapper;
+
+ @Resource
+ private CoursePackagePaymentConfigMapper cpConfigMapper;
+
@Resource
private CouponClient client;
- @Autowired
+ @Resource
private PayMoneyUtil payMoneyUtil;
+
+ @Resource
+ private AppUserClient appuClient;
/**
@@ -174,7 +184,7 @@
uvdmapper.updateById(userVideoDetails);
return "SUCCESS";
}
- return null;
+ return "ERROR";
}
@Override
@@ -289,26 +299,61 @@
}
@Override
- public ResultUtil ContinuationOrpaymentCourse(Integer userIdFormRedis, ClasspaymentRequest request) {
+ public ResultUtil ContinuationOrpaymentCourse(Integer ids, ClasspaymentRequest request) {
+ AppUser userIdFormRedis = appuClient.queryAppUser(ids);
TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(request.getCoursePayId());
String code = "";
+ BigDecimal money = tCoursePackagePayment.getCashPayment();
+ Integer wpGold = tCoursePackagePayment.getPlayPaiCoin();
if (tCoursePackagePayment.getPayStatus() == 1){
+// 待支付的订单
code = tCoursePackagePayment.getCode();
+ tCoursePackagePayment.setPayType(request.getPayType());
+ if (request.getUseConpon() == 1){
+ tCoursePackagePayment.setUserCouponId(Long.valueOf(request.getUseConpon()));
+ }
+ this.baseMapper.updateById(tCoursePackagePayment);
}else {
+// 续课的订单
+// 查询是否续课优惠
+
+ CoursePackagePaymentConfig paymentConfig = cpConfigMapper.selectOne(new QueryWrapper<CoursePackagePaymentConfig>()
+ .eq("coursePackageId", request.getLessonId())
+ .eq("classHours", request.getCourseHoursNum()));
+ TCoursePackageDiscount coursePackageDiscount = tcpdMapper.selectOne(new QueryWrapper<TCoursePackageDiscount>()
+ .eq("coursePackageId", request.getLessonId())
+ .eq("type", 2)
+ .eq("auditStatus", 1)
+ .eq("coursePackagePaymentConfigId", paymentConfig.getCoursePackageId()));
+ if (ToolUtil.isNotEmpty(coursePackageDiscount)){
+ String content = coursePackageDiscount.getContent();
+ JSONObject jsonObject = JSON.parseObject(content);
+ if (userIdFormRedis.getIsVip() == 1){
+ Double jsonObjectDouble = jsonObject.getDouble("num1");
+ money = BigDecimal.valueOf(jsonObjectDouble);
+ }else {
+ Double jsonObjectDouble = jsonObject.getDouble("num2");
+ money = BigDecimal.valueOf(jsonObjectDouble);
+ }
+ }
TCoursePackagePayment newPayment = new TCoursePackagePayment();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
newPayment.setCode(sdf.format(new Date()) + UUIDUtil.getNumberRandom(5));
- newPayment.setAppUserId(userIdFormRedis);
+ newPayment.setAppUserId(userIdFormRedis.getId());
newPayment.setStudentId(request.getStuId());
newPayment.setCoursePackageId(request.getLessonId());
newPayment.setClassHours(tCoursePackagePayment.getClassHours());
newPayment.setOriginalPrice(tCoursePackagePayment.getOriginalPrice());
newPayment.setTotalClassHours(tCoursePackagePayment.getTotalClassHours());
newPayment.setLaveClassHours(tCoursePackagePayment.getTotalClassHours());
+ if (request.getUseConpon() == 1){
+ newPayment.setUserCouponId(Long.valueOf(request.getUseConpon()));
+ }
newPayment.setAbsencesNumber(0);
newPayment.setPayUserType(1);
newPayment.setPayStatus(1);
newPayment.setStatus(1);
+ newPayment.setPayType(request.getPayType());
newPayment.setState(1);
newPayment.setInsertTime(new Date());
this.baseMapper.insert(newPayment);
@@ -316,13 +361,47 @@
}
switch (request.getPayType()){
case 1:
- WeChatPayment(code,request);
- break;
+ if (request.getUseConpon() == 1){
+ Coupon coupon = client.queryCouponById(request.getConponId());
+ if (coupon.getType() == 1){
+ Map<String, Object> couponRules = client.getCouponRules(coupon.getId());
+ Double conditionalAmount = (Double) couponRules.get("conditionalAmount");
+ Double deductionAmount = (Double) couponRules.get("deductionAmount");
+ if (money.compareTo(BigDecimal.valueOf(conditionalAmount)) >= 0){
+ money = BigDecimal.valueOf(deductionAmount);
+ }
+ }
+ if (coupon.getType() == 2){
+ Map<String, Object> couponRules = client.getCouponRules(coupon.getId());
+ Object amount = couponRules.get("deductionAmount");
+ money = BigDecimal.valueOf((Double) amount);
+ }
+ }
+ try {
+ return WeChatPayment(code,money);
+ }catch (Exception e){
+ return ResultUtil.runErr();
+ }
case 2:
- AlipayPayment(code,request);
- break;
+ if (request.getUseConpon() == 1){
+ Coupon coupon = client.queryCouponById(request.getConponId());
+ if (coupon.getType() == 1){
+ Map<String, Object> couponRules = client.getCouponRules(coupon.getId());
+ Double conditionalAmount = (Double) couponRules.get("conditionalAmount");
+ Double deductionAmount = (Double) couponRules.get("deductionAmount");
+ if (money.compareTo(BigDecimal.valueOf(conditionalAmount)) >= 0){
+ money = BigDecimal.valueOf(deductionAmount);
+ }
+ }
+ if (coupon.getType() == 2){
+ Map<String, Object> couponRules = client.getCouponRules(coupon.getId());
+ Object amount = couponRules.get("deductionAmount");
+ money = BigDecimal.valueOf((Double) amount);
+ }
+ }
+ return AlipayPayment(code,money);
case 3:
- PlaypaiGoldPayment(code,request);
+ PlaypaiGoldPayment(userIdFormRedis,code,wpGold);
break;
default:
break;
@@ -331,73 +410,135 @@
}
- public void WeChatPayment(String code, ClasspaymentRequest request){
-
+ public ResultUtil WeChatPayment(String code, BigDecimal request) throws Exception {
+ TCoursePackagePaymentMapper baseMapper1 = this.baseMapper;
+ ResultUtil weixinpay = payMoneyUtil.weixinpay("课包续费", "", code, request.toString(),
+ "/base/coursePackage/wechatRegisteredCoursesCallback", "APP", "");
+ if(weixinpay.getCode() == 200){
+ 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);
+ TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code);
+ if(coursePackagePayment.getPayStatus() == 2){
+ break;
+ }
+ ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
+ if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 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){
+ coursePackagePayment.setState(3);
+ baseMapper1.deleteById(coursePackagePayment.getId());
+ break;
+ }
+ if("SUCCESS".equals(s)){
+ coursePackagePayment.setPayStatus(2);
+ coursePackagePayment.setOrderNumber(transaction_id);
+ baseMapper1.updateById(coursePackagePayment);
+ break;
+ }
+ if("USERPAYING".equals(s)){
+ num++;
+ }
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
+ return weixinpay;
}
- public ResultUtil AlipayPayment(String code, ClasspaymentRequest request){
- BigDecimal amount = BigDecimal.ZERO;
- if (request.getUseConpon() == 1){
- Coupon coupon = client.queryCouponById(request.getConponId());
- //TODO: 2023/7/11 课包购买的微信支付
- }
- ResultUtil alipay = payMoneyUtil.alipay("课包购买", "", "", code, amount.toString(),
- "/base/coursePackage/alipayNewPaymentCallback");
-// if(alipay.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);
-// TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
-// if(coursePackagePayment.getPayStatus() == 2){
-// break;
-// }
-// ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
-// if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){
-// /**
-// * WAIT_BUYER_PAY(交易创建,等待买家付款)、
-// * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
-// * TRADE_SUCCESS(交易支付成功)、
-// * TRADE_FINISHED(交易结束,不可退款)
-// */
-// Map<String, String> data1 = resultUtil.getData();
-// String s = data1.get("tradeStatus");
-// String tradeNo = data1.get("tradeNo");
-// if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){
-// coursePackagePayment.setState(3);
-// couPayClient.delPaymentCoursePackage(coursePackagePayment.getId());
-// break;
-// }
-// if("TRADE_SUCCESS".equals(s)){
-// coursePackagePayment.setPayStatus(2);
-// coursePackagePayment.setOrderNumber(tradeNo);
-// couPayClient.updatePaymentCoursePackage(coursePackagePayment);
-// break;
-// }
-// if("WAIT_BUYER_PAY".equals(s)){
-// num++;
-// }
-// }
-// }
-// }catch (Exception e){
-// e.printStackTrace();
-// }
-// }
-// }).start();
-// }
+ public ResultUtil AlipayPayment(String code, BigDecimal request){
+ TCoursePackagePaymentMapper baseMapper1 = this.baseMapper;
+ ResultUtil alipay = payMoneyUtil.alipay("课包购买", "", "", code, request.toString(),
+ "/base/coursePackage/alipayRegisteredCoursesCallback");
+ if(alipay.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);
+ TCoursePackagePayment coursePackagePayment = baseMapper1.getCoursePackagePaymentByCode(code);
+ if(coursePackagePayment.getPayStatus() == 2){
+ break;
+ }
+ ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
+ if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){
+ /**
+ * WAIT_BUYER_PAY(交易创建,等待买家付款)、
+ * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
+ * TRADE_SUCCESS(交易支付成功)、
+ * TRADE_FINISHED(交易结束,不可退款)
+ */
+ Map<String, String> data1 = resultUtil.getData();
+ String s = data1.get("tradeStatus");
+ String tradeNo = data1.get("tradeNo");
+ if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){
+ coursePackagePayment.setState(3);
+ baseMapper1.deleteById(coursePackagePayment.getId());
+ break;
+ }
+ if("TRADE_SUCCESS".equals(s)){
+ coursePackagePayment.setPayStatus(2);
+ coursePackagePayment.setOrderNumber(tradeNo);
+ baseMapper1.updateById(coursePackagePayment);
+ break;
+ }
+ if("WAIT_BUYER_PAY".equals(s)){
+ num++;
+ }
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
return alipay;
}
- public void PlaypaiGoldPayment(String code, ClasspaymentRequest request){
+ public ResultUtil PlaypaiGoldPayment(AppUser appUser,String code, Integer wpGold){
+ TCoursePackagePayment packagePayment = this.baseMapper.selectOne(new QueryWrapper<TCoursePackagePayment>()
+ .eq("code",code ));
+ if (appUser.getPlayPaiCoins() < wpGold){
+ return ResultUtil.error("玩牌币不足!");
+ }
+ packagePayment.setPayStatus(2);
+ packagePayment.setPayUserId(appUser.getId());
+ packagePayment.setPlayPaiCoin(wpGold);
+ this.baseMapper.updateById(packagePayment);
+ appUser.setPlayPaiCoins(ToolUtil.isNotEmpty(appUser.getPlayPaiCoins()) ? appUser.getPlayPaiCoins()-wpGold : wpGold);
+ appuClient.updateAppUser(appUser);
+ return ResultUtil.success();
}
@@ -476,4 +617,17 @@
return recordVoList;
}
+ @Override
+ public ResultUtil insertVipPaymentCallback(String code, String orderNumber) {
+ TCoursePackagePayment coursePackagePayment = this.baseMapper.getCoursePackagePaymentByCode(code);
+ if(coursePackagePayment.getPayStatus() != 1){
+ return ResultUtil.success();
+ }
+ coursePackagePayment.setPayStatus(2);
+ coursePackagePayment.setOrderNumber(orderNumber);
+ this.baseMapper.updateById(coursePackagePayment);
+ return ResultUtil.success();
+ }
+
+
}
diff --git a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
index 67802be..6df7fb4 100644
--- a/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
+++ b/cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -34,4 +34,12 @@
SELECT appUserId FROM t_course_package_payment WHERE payStatus = 2 AND state = 1 and coursePackageId = #{coursePackageId} GROUP BY appUserId
) AS aa
</select>
+
+
+ <select id="getCoursePackagePaymentByCode" resultType="com.dsh.course.entity.TCoursePackagePayment">
+ select * from t_course_package_payment where 1=1
+ <if test="code != null">
+ and `code` = #{code}
+ </if>
+ </select>
</mapper>
diff --git a/cloud-server-other/src/main/java/com/dsh/OtherApplication.java b/cloud-server-other/src/main/java/com/dsh/OtherApplication.java
index 7439d4b..4ace9f9 100644
--- a/cloud-server-other/src/main/java/com/dsh/OtherApplication.java
+++ b/cloud-server-other/src/main/java/com/dsh/OtherApplication.java
@@ -11,6 +11,7 @@
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
+import org.springframework.scheduling.annotation.EnableScheduling;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import javax.annotation.PostConstruct;
@@ -20,6 +21,7 @@
* @author jason
*/
@EnableSwagger2
+@EnableScheduling
@EnableFeignClients
@MBCloudApplication
@Import({WebConfig.class})
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
index 2b42da9..5111d86 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -22,6 +22,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -353,5 +354,43 @@
}
}
+ /**
+ * 查询所有现金支付的预约记录
+ * @param appUserId
+ * @return
+ */
+ @PostMapping("/base/site/queryPaymentSiteDetail")
+ public List<SiteBooking> getAllSiteBookingList(@RequestBody Integer appUserId){
+ ArrayList<Integer> integers = new ArrayList<>();
+ integers.add(1);
+ integers.add(2);
+ integers.add(3);
+ integers.add(4);
+ integers.add(5);
+ return siteBookingService.list(new QueryWrapper<SiteBooking>()
+ .in("status",integers)
+ .ne("payType",3)
+ .eq("appUserId",appUserId));
+ }
+
+ /**
+ * 查询所有玩湃币支付的预约记录
+ * @param appUserId
+ * @return
+ */
+ @PostMapping("/base/site/queryPlaypaiGoldSiteDetail")
+ public List<SiteBooking> wanpaiGoldSiteBookingList(@RequestBody Integer appUserId){
+ ArrayList<Integer> integers = new ArrayList<>();
+ integers.add(1);
+ integers.add(2);
+ integers.add(3);
+ integers.add(4);
+ integers.add(5);
+ return siteBookingService.list(new QueryWrapper<SiteBooking>()
+ .in("status",integers)
+ .eq("payType",3)
+ .eq("appUserId",appUserId));
+ }
+
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/SiteClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/SiteClient.java
new file mode 100644
index 0000000..8f03d45
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/SiteClient.java
@@ -0,0 +1,20 @@
+package com.dsh.other.feignclient;
+
+import com.dsh.other.entity.SiteBooking;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+
+@FeignClient("mb-cloud-other")
+public interface SiteClient {
+
+ @PostMapping("/base/site/queryPaymentSiteDetail")
+ List<SiteBooking> getAllSiteBookingList(@RequestBody Integer appUserId);
+
+ @PostMapping("/base/site/queryPlaypaiGoldSiteDetail")
+ List<SiteBooking> wanpaiGoldSiteBookingList(@RequestBody Integer appUserId);
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/QueryMySiteVo.java b/cloud-server-other/src/main/java/com/dsh/other/model/QueryMySiteVo.java
index ef7ea19..1251527 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/model/QueryMySiteVo.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/QueryMySiteVo.java
@@ -32,5 +32,5 @@
@ApiModelProperty("状态(0=待支付,1=待核销,2=已到店,3=已完成,4=已过期,5=已取消)")
private Integer status;
@ApiModelProperty("创建时间")
- private String insertTime;
+ private Long insertTime;
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java
new file mode 100644
index 0000000..ca148cc
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java
@@ -0,0 +1,25 @@
+package com.dsh.other.util;
+
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/7/19 14:19
+ */
+@Component
+public class TaskUtil {
+
+
+ /**
+ * 每隔一分钟去处理的定时任务
+ */
+ @Scheduled(fixedRate = 60000)
+ public void taskMinute(){
+ try {
+ //定时修改赛事状态
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
index d9c0015..3b6aa00 100644
--- a/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
+++ b/cloud-server-other/src/main/resources/mapper/SiteMapper.xml
@@ -50,7 +50,7 @@
a.payMoney as payMoney,
CONCAT(DATE_FORMAT(a.startTime, '%Y-%m-%d %H:%i'), '-', DATE_FORMAT(a.endTime, '%H:%i')) as appointment,
a.`status`,
- DATE_FORMAT(a.insertTime, '%Y-%m-%d %H:%i:%s') as insertTime
+ UNIX_TIMESTAMP(a.insertTime) * 1000 as insertTime
from t_site_booking a
left join t_site b on (a.siteId = b.id)
left join t_store c on (b.storeId = c.id)
--
Gitblit v1.7.1