cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -476,6 +476,7 @@ if(null != map){ String out_trade_no = map.get("out_trade_no"); String trade_no = map.get("trade_no"); String appUserId = map.get("passback_params"); ResultUtil resultUtil = vipPaymentService.addVipPaymentCallback(out_trade_no, trade_no); if(resultUtil.getCode() == 200){ PrintWriter out = response.getWriter(); cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -719,7 +719,11 @@ IndexOfUserBenefirVo benefirVo = new IndexOfUserBenefirVo(); TAppUser appUser = this.getById(appUserId); benefirVo.setUserHeadImg(appUser.getHeadImg()); if (appUser.getHeadImg()!=null) { benefirVo.setUserHeadImg(appUser.getHeadImg()); }else { benefirVo.setUserHeadImg("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/630864764d3c4e98822ff976a2389559.jpg"); } benefirVo.setUserName(appUser.getName()); benefirVo.setWpCoin(ToolUtil.isEmpty(appUser.getPlayPaiCoins()) ? 0 : appUser.getPlayPaiCoins()); benefirVo.setUserIntegral(ToolUtil.isEmpty(appUser.getIntegral()) ? 0 : appUser.getIntegral()); cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -157,7 +157,7 @@ */ public ResultUtil alipay(VipPayment vipPayment) throws Exception{ String code = vipPayment.getCode(); ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", "", code, vipPayment.getAmount().toString(), ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", vipPayment.getAppUserId()+"", code, vipPayment.getAmount().toString(), "/base/appUser/addVipPaymentAliCallback"); if(alipay.getCode() == 200){ new Thread(new Runnable() { cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -289,7 +289,7 @@ TCoursePackagePayment one = list.get(0); if(one.getPayStatus() == 1){ for (TCoursePackagePayment coursePackagePayment : list) { coursePackagePayment.setPayStatus(2); coursePackagePayment.setPayStatus(1); coursePackagePayment.setOrderNumber(trade_no); coursePackagePayment.setAppUserId(null); } cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -458,9 +458,17 @@ .eq("appUserId",student.getAppUserId()) .eq("studentId",stuId).eq("payStatus",2)); Date date = new Date(); if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); if (tCoursePackagePayment.getUseTime()!=null) { if (tCoursePackagePayment.getUseTime().after(date)) { date = tCoursePackagePayment.getUseTime(); } } if (tCoursePackage.getType()==3){ continue; } @@ -477,6 +485,7 @@ }else { resp.setIsAble(1); } if (tCoursePackagePayment.getUseTime()!=null){ // String afterDayDate = DateUtil.getAfterDayDate2(tCoursePackage.getInsertTime(),tCoursePackage.getValidDays() + ""); // resp.setPeriodOfValidity(afterDayDate); @@ -492,6 +501,16 @@ resps.add(resp); } } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String str = sdf.format(date); for (StuCourseResp resp : resps) { resp.setPeriodOfValidity(str); } return resps; } @@ -1077,8 +1096,10 @@ @ApiImplicitParam(value = "经度", name = "lon", dataType = "string", required = false), @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = false), @ApiImplicitParam(name = "coursePayId" ,value = "课包记录id",dataType = "long"), @ApiImplicitParam(name = "orderId" ,value = "订单id",dataType = "int") }) public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat){ public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat,Integer orderId){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
@@ -189,4 +189,7 @@ @TableField(exist = false) private Integer type; @TableField(exist = false) private Integer orderId; } cloud-server-course/src/main/java/com/dsh/course/entity/TOrder.java
New file @@ -0,0 +1,39 @@ package com.dsh.course.entity; 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 com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.math.BigDecimal; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_order") public class TOrder extends Model<TOrder> { private static final long serialVersionUID = 1L; @TableId(value = "id", type = IdType.AUTO) private Integer id; @TableField("paysId") private String paysId; @TableField("orderNum") private String orderNum; @TableField("isPay") private Integer isPay; @TableField("payType") private Integer payType; @TableField("appUserId") private Integer appUserId; @TableField("price") private Double price; @TableField("code") private String code; @TableField("studentId") private Integer studentId; } cloud-server-course/src/main/java/com/dsh/course/mapper/TOrderMapper.java
New file @@ -0,0 +1,8 @@ package com.dsh.course.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.course.entity.TOrder; public interface TOrderMapper extends BaseMapper<TOrder> { // 可以在这里自定义其他的查询方法 } cloud-server-course/src/main/java/com/dsh/course/model/PaymentCourseVo.java
@@ -23,4 +23,6 @@ private String studentIds; @ApiModelProperty(value = "优惠券id", dataType = "long", required = false) private Long couponId; @ApiModelProperty(value = "订单id", dataType = "int", required = false) private Integer orderId; } cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java
@@ -39,4 +39,7 @@ @ApiModelProperty(value = "假期课时间段") private String time; @ApiModelProperty(value = "订单id") private Integer orderId; } cloud-server-course/src/main/java/com/dsh/course/service/TOrderService.java
New file @@ -0,0 +1,8 @@ package com.dsh.course.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.course.entity.TOrder; public interface TOrderService extends IService<TOrder> { // 可以在这里自定义其他的服务方法 } cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -377,11 +377,36 @@ return "ERROR"; } @Autowired private TOrderService orderService; @Override public List<RegisterCourseVo> queryRegisteredCourseList(CourseOfAfterRequest courseTypeId, Integer appUserId) { List<RegisterCourseVo> courseVos = new ArrayList<>(); List<TCoursePackagePayment> tCoursePackagePayments = this.list(new QueryWrapper<TCoursePackagePayment>() .eq("appUserId",appUserId )); List<TOrder> orders = orderService.list(new QueryWrapper<TOrder>().eq("appUserId", appUserId)); List<String> paysId = new ArrayList<>(); List<TCoursePackagePayment> tCoursePackagePayments = new ArrayList<>(); for (TOrder order : orders) { String[] split = order.getPaysId().split(","); // paysId.add(split[0]); TCoursePackagePayment byId = this.getById(split[0]); byId.setPayStatus(order.getIsPay()); byId.setOrderId(order.getId()); tCoursePackagePayments.add(byId); } // List<TCoursePackagePayment> tCoursePackagePayments = this.list(new QueryWrapper<TCoursePackagePayment>() // .eq("appUserId",appUserId )); // List<TCoursePackagePayment> tCoursePackagePayments = this.list(new QueryWrapper<TCoursePackagePayment>() // .in("id",paysId )); System.out.println(tCoursePackagePayments); if (tCoursePackagePayments.size() > 0){ try { @@ -392,6 +417,7 @@ // 2.0 registerCourseVo.setType(coursePackage.getType()); registerCourseVo.setOrderId(tCoursePackagePayment.getOrderId()); registerCourseVo.setCoursePayId(tCoursePackagePayment.getId()); registerCourseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); registerCourseVo.setCoursePackTypeId(coursePackage.getCoursePackageTypeId()); @@ -436,7 +462,9 @@ // registerCourseVo.setCourseNums(coursePackageStudents.size() * 2); registerCourseVo.setCourseNums(counts); } // registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus()); registerCourseVo.setPayStatus(tCoursePackagePayment.getPayStatus()); courseVos.add(registerCourseVo); } }catch (Exception e){ @@ -475,12 +503,12 @@ AppUser appUser = appuClient.queryAppUser(appUserId); CourseDetailsResponse response = new CourseDetailsResponse(); TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(coursePayId); List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<TCoursePackagePayment>().eq("appUserId", appUserId).eq("coursePackageId", tCoursePackagePayment.getCoursePackageId())); List<Integer> stuIds = new ArrayList<>(); for (TCoursePackagePayment coursePackagePayment : tCoursePackagePayments) { stuIds.add(coursePackagePayment.getStudentId()); } response.setStuIds(stuIds); // List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<TCoursePackagePayment>().eq("appUserId", appUserId).eq("coursePackageId", tCoursePackagePayment.getCoursePackageId())); // List<Integer> stuIds = new ArrayList<>(); // for (TCoursePackagePayment coursePackagePayment : tCoursePackagePayments) { // stuIds.add(coursePackagePayment.getStudentId()); // } // response.setStuIds(stuIds); response.setChooseHours(tCoursePackagePayment.getClassHours()); cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -762,6 +762,7 @@ if(appUser.getIsVip() == 1) { if (coursePackagePaymentConfigVo.getVipPrice()<coursePackagePaymentConfigVo.getPaymentPrice()){ coursePackagePaymentConfigVo.setPaymentPrice(coursePackagePaymentConfigVo.getVipPrice()); coursePackagePaymentConfigVo.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); } } @@ -856,9 +857,10 @@ paymentPrice = new BigDecimal(students.length).multiply(new BigDecimal(paymentPrice)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); Double playPaiCoin = coursePackagePaymentConfigVo.getPlayPaiCoin().doubleValue();//支付币 playPaiCoin = new BigDecimal(students.length).multiply(new BigDecimal(playPaiCoin)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); if(paymentCourseVo.getPayType() != 3 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0&&paymentCourseVo.getCouponId()!=null){ return ResultUtil.error("支付金额异常,请刷新后重试"); } // if(paymentCourseVo.getPayType() != 3 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0&&paymentCourseVo.getCouponId()!=null){ // return ResultUtil.error("支付金额异常,请刷新后重试"); // } if(paymentCourseVo.getPayType() == 3 && playPaiCoin.compareTo(paymentCourseVo.getPrice()) != 0){ return ResultUtil.error("支付金额异常,请刷新后重试"); } @@ -1034,6 +1036,8 @@ return weixinpay; } @Autowired private TOrderService orderService; /** * 课程支付宝支付 @@ -1048,6 +1052,8 @@ String[] split = paymentCourseVo.getStudentIds().split(";"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); List<Long> pays = new ArrayList<>(); for (String s : split) { // TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); // coursePackagePayment.setCode(code); @@ -1096,6 +1102,7 @@ } if (coursePackagePaymentServiceOne==null) { TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); coursePackagePayment.setCode(code); @@ -1122,6 +1129,8 @@ sId = student.getId(); } pays.add(coursePackagePayment.getId()); // coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); // addPackageStudent(paymentCourseVo.getId(), uid, Integer.valueOf(s), coursePackagePayment.getId()); @@ -1134,6 +1143,9 @@ courseCounsum.setReason("购买课包"); courseCounsumService.save(courseCounsum); if (hour!=0){ CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setPaymentId(coursePackagePayment.getId()); @@ -1145,6 +1157,9 @@ } //保存订单 }else { @@ -1155,11 +1170,14 @@ // coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()); coursePackagePaymentServiceOne.setCode(code); // // coursePackagePaymentServiceOne.setPayStatus(2); coursePackagePaymentServiceOne.setSalesName("续课"); coursePackagePaymentServiceOne.setPayStatus(1); // coursePackagePaymentServiceOne.setSalesName("续课"); coursePackagePaymentServiceOne.setAppUserId(null); // coursePackagePaymentServiceOne.setPayStatus(2); coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); pays.add(coursePackagePaymentServiceOne.getId()); // // Integer sId = null; // Student student = studentClient.queryDefaultStudent(uid); @@ -1179,6 +1197,25 @@ } } if (paymentCourseVo.getOrderId()==null) { TOrder order = new TOrder(); order.setIsPay(1); order.setPayType(2); order.setAppUserId(uid); order.setPrice(paymentPrice); order.setCode(code); String paysStr = pays.stream() .map(String::valueOf) .collect(Collectors.joining(",")); order.setPaysId(paysStr); orderService.save(order); } Student student = studentClient.queryDefaultStudent(uid); @@ -1221,11 +1258,6 @@ String tradeNo = alipayTradeQueryResponse.getTradeNo(); if("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10){ for (TCoursePackagePayment coursePackagePayment : list) { if (coursePackagePayment.getStudentName()!=null){ if (coursePackagePayment.getStudentName().equals("续课")){ coursePackagePayment.setPayStatus(2); } } coursePackagePayment.setStatus(3); } @@ -1239,8 +1271,11 @@ coursePackagePayment.setAppUserId(null); } coursePackagePaymentService.updateBatchById(list); for (String s1 : split) { TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", paymentCourseVo.getId())); TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s1).eq("coursePackageId", paymentCourseVo.getId())); if (coursePackagePaymentServiceOne!=null) { TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("type",4).eq("coursePackageId", paymentCourseVo.getId()).last("limit 1")); @@ -1300,7 +1335,6 @@ } } coursePackagePaymentService.updateBatchById(list); System.out.println("===========到达支付"); // 2.0 String[] coupons = coursePackagePaymentConfig.getCouponIds().split(","); @@ -1311,8 +1345,6 @@ for (TCoursePackagePayment coursePackagePayment : list) { addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentCourseVo.getPrice()); } moneyOut(tradeNo,tradeNo); cloud-server-course/src/main/java/com/dsh/course/service/impl/TOrderServiceImpl.java
New file @@ -0,0 +1,12 @@ package com.dsh.course.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.course.entity.TOrder; import com.dsh.course.mapper.TOrderMapper; import com.dsh.course.service.TOrderService; import org.springframework.stereotype.Service; @Service public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> implements TOrderService { // 可以在这里实现自定义的服务方法 }