From 35fec86ca49916eb8a8082f7f1e99185ee1e3c24 Mon Sep 17 00:00:00 2001 From: luo <2855143437@qq.com> Date: 星期一, 25 九月 2023 18:02:17 +0800 Subject: [PATCH] 9.25 --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 220 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 217 insertions(+), 3 deletions(-) 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 e381c62..f2c8f54 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 @@ -8,11 +8,14 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.entity.*; +import com.dsh.course.entity.TAppUser; import com.dsh.course.feignclient.account.AppUserClient; import com.dsh.course.feignclient.account.StudentClient; import com.dsh.course.feignclient.account.model.AppUser; import com.dsh.course.feignclient.account.model.Student; import com.dsh.course.feignclient.account.model.TCourseInfoRecord; +import com.dsh.course.feignclient.activity.CouponClient; +import com.dsh.course.feignclient.activity.model.Coupon; import com.dsh.course.feignclient.model.*; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; @@ -31,6 +34,8 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import net.bytebuddy.asm.Advice; +import org.aspectj.weaver.ast.Var; import io.swagger.models.auth.In; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -108,12 +113,220 @@ @Autowired private RestTemplate internalRestTemplate; + @Autowired + private CouponClient couponClient; + @Autowired + private StoreClient storeClient; + @Autowired + private TCoursePackageDiscountService discountService; @Resource private CoursePackageSchedulingMapper coursePackageSchedulingMapper; - + @Autowired + private ICoursePackageSchedulingService coursePackageSchedulingService; private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm"); + /** + * 添加购课记录-后台 + * @return + */ + @RequestMapping("/base/coursePackagePayment/add") + public Object addCoursePackagePayment(@RequestBody TCoursePackagePayment packagePayment){ + packagePayment.setInsertTime(new Date()); + packagePayment.setInsertTime(new Date()); + Integer studentId = packagePayment.getStudentId(); + TCoursePackagePayment one = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", packagePayment) + .orderByDesc("insertTime") + .last("LIMIT 1")); + + if (one!=null){ + Integer totalClassHours = one.getTotalClassHours(); + Integer absencesNumber = one.getAbsencesNumber(); + // 没有过期 + if (one.getUseTime().after(new Date())){ + packagePayment.setTotalClassHours(packagePayment.getClassHours()+one.getTotalClassHours()); + packagePayment.setLaveClassHours(packagePayment.getClassHours()+one.getLaveClassHours()); + packagePayment.setAbsencesNumber(one.getAbsencesNumber()); + } + packagePayment.setTotalClassHours(packagePayment.getClassHours()); + packagePayment.setLaveClassHours(packagePayment.getClassHours()); + packagePayment.setAbsencesNumber(one.getAbsencesNumber()); + }else{ + packagePayment.setTotalClassHours(packagePayment.getClassHours()); + packagePayment.setLaveClassHours(packagePayment.getClassHours()); + packagePayment.setAbsencesNumber(0); + } + // 生成排课数据 + TCoursePackage coursePackage = tcpService.getById(packagePayment.getCoursePackageId()); + //生成排课数据 + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00"); + List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";")); + String value = coursePackage.getClassStartTime(); + String value1 = coursePackage.getClassEndTime(); + + String[] star = value.split(","); + String[] end = value1.split(","); + for (int i = 0; i < star.length; i++) { + // int index = star[i].indexOf(","); + // + // + // String result = value.substring(0, index).trim(); + String classStartTime = star[i]; + String[] split = classStartTime.split(":"); + // String value1 = en; + int index1 = value1.indexOf(","); + // String result1 = value.substring(0, index1).trim(); + String classEndTime = end[i]; + String[] split1 = classEndTime.split(":"); + Calendar s = Calendar.getInstance(); + s.setTime(date); + s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); + s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); + s.set(Calendar.MINUTE, Integer.valueOf(split[1])); + s.set(Calendar.SECOND, 0); + + Calendar e = Calendar.getInstance(); + e.setTime(date); + e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13); + long timeInMillis = e.getTimeInMillis(); + + while (true){ + int w = s.get(Calendar.DAY_OF_WEEK); + WeekEnum weekEnum = WeekEnum.getWeekEnum(w); + if(list.contains(weekEnum.getChineseName())){ + Calendar classDate = Calendar.getInstance(); + classDate.setTime(s.getTime()); + classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0])); + classDate.set(Calendar.MINUTE, Integer.valueOf(split[1])); + classDate.set(Calendar.SECOND, 0); + + Calendar endDate = Calendar.getInstance(); + endDate.setTime(s.getTime()); + endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0])); + endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1])); + endDate.set(Calendar.SECOND, 0); + + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(coursePackage.getId()); + coursePackageScheduling.setClassDate(classDate.getTime()); + coursePackageScheduling.setEndDate(endDate.getTime()); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.save(coursePackageScheduling); + List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>() + .eq("coursePackageId", coursePackage.getId()) + .eq("classDate", classDate.getTime()) + .eq("endDate", endDate.getTime())); + if (list.size()+1>coursePackage.getMaxSubscribeNumber()){ + // 当前课包预约人数已满 + return 5001; + } + } + s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1); + if(s.getTimeInMillis() > timeInMillis){ + break; + } + } + } + } catch (ParseException e) { + e.printStackTrace(); + } + return packagePaymentService.save(packagePayment); + } + /** + * 手动支付 + * @return + */ + @RequestMapping("/base/coursePackagePayment/changeState") + public Object changeState(@RequestBody CoursePackagePayDTO dto){ + + return packagePaymentService.changeState(dto); + } + /** + * 获取购课记录 + */ + @ResponseBody + @RequestMapping("/coursePackagePayment/listAll") + public List<CoursePackagePaymentVO> listAll(@RequestBody CoursePackagePaymentQuery query){ + List<CoursePackagePaymentVO> res = packagePaymentService.listAll(query); + List<CoursePackagePaymentVO> result = new ArrayList<>(); + for (CoursePackagePaymentVO re : res) { + if (re.getCashPayment()==null){ + if (re.getPlayPaiCoin()!=null){ + String value = String.valueOf(re.getPlayPaiCoin()); + re.setCashPayment(new BigDecimal(value)); + } + } + + Store store = storeClient.queryStoreById(re.getStoreId()); + TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId()); + Student student = studentClient.queryStudentById(re.getStudentId()); + re.setPayStudent(student.getName()); + re.setPayUser(appUser.getName()); + re.setPhone(appUser.getPhone()); + re.setStoreName(store.getName()); + if (query.getPayUser()== null || query.getPayUser().equals("") ){ + }else{ + List<AppUser> appUsers = appUserClient.queryAppUserListByName(query.getPayUser()); + for (AppUser user : appUsers) { + if (appUser.getName().equals(user.getName())){ + result.add(re); + } + } + } + if (query.getPayStudent()== null || query.getPayStudent().equals("")){ + }else{ + List<Student> students = studentClient.queryStudentListByName(query.getPayStudent()); + for (Student student1 : students) { + if (student.getName().equals(student1.getName())){ + result.add(re); + } + } + } + if (re.getPayType()!=null){ + if (re.getPayType()==1){ + re.setBuyTypeName("微信支付"); + }else if(re.getPayType()==2){ + re.setBuyTypeName("支付宝支付"); + }else if(re.getPayType()==3){ + re.setBuyTypeName("玩湃币支付"); + }else if(re.getPayType()==4){ + re.setBuyTypeName("积分支付"); + }else if(re.getPayType()==5){ + re.setBuyTypeName("积分+微信支付"); + }else if(re.getPayType()==6){ + re.setBuyTypeName("积分+支付宝支付"); + }else if(re.getPayType()==7){ + re.setBuyTypeName("手动支付"+"-"+re.getBuyTypeName()); + } + } + + // 如果支付用户类型为管理员 则购买方式则为1线下购买 + if (re.getPayUserType()== 2){ + re.setBuyType(1); + }else{ + // 如果当前课包有折扣 则为3折扣购买 + if (discountService.list(new QueryWrapper<TCoursePackageDiscount>() + .eq("coursePackageId",re.getCoursePackageId()).eq("auditStatus",2)).size()>0){ + re.setBuyType(3); + re.setDiscountAmount(re.getOriginalPrice().subtract(re.getPayMoney())); + }else{ + re.setBuyType(2); + } + } + } + if (query.getPayStudent()== null || query.getPayStudent().equals("")){ + if (query.getPayUser()== null || query.getPayUser().equals("")){ + return res; + }else{ + return result; + } + }else{ + return result; + } + } /** * 获取 没有学员信息的图片配置 @@ -958,7 +1171,7 @@ @PostMapping("/base/coursePack/savePaymentCoursePackage") public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment){ - packagePayment.setInsertTime(new Date()); + return packagePaymentService.save(packagePayment); } @@ -1051,7 +1264,7 @@ */ @ResponseBody @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById") - public TCoursePackagePayment queryCoursePackagePaymentById(@RequestBody Long id){ + public TCoursePackagePayment queryCoursePackagePaymentById(@RequestParam("id")Long id){ return packagePaymentService.getById(id); } @@ -1073,6 +1286,7 @@ @ResponseBody @PostMapping("/coursePackagePayment/editCoursePackagePayment") public void editCoursePackagePayment(TCoursePackagePayment coursePackagePayment){ + coursePackagePayment.setAppUserId(null); packagePaymentService.updateById(coursePackagePayment); } -- Gitblit v1.7.1