cloud-server-account/pom.xml
@@ -129,6 +129,7 @@ <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.4.RELEASE</version> <executions> <execution> <goals> cloud-server-account/src/main/java/com/dsh/account/model/dto/Coupon.java
@@ -1,6 +1,7 @@ package com.dsh.account.model.dto; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.math.BigDecimal; @@ -107,6 +108,7 @@ /** * 添加时间 */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date insertTime; /** * 封面图 cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -76,7 +76,7 @@ private String key = "";//微信商户号 private String callbackPath = "http://221.182.45.100:56666/account";//支付回调网关地址 private String callbackPath = "http://8.137.22.229:56666/account";//支付回调网关地址 private String app_cert_path = "C:/cert/alipay/user/app_cert_path.crt";//应用公钥证书路径 cloud-server-account/src/main/resources/logback-spring.xml
@@ -7,7 +7,7 @@ <contextName>logback</contextName> <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --> <property name="log.path" value="/Users/java/logs"/> <property name="log.path" value="/usr/playpai/server/logs"/> <!--0. 日志格式和颜色渲染 --> <!-- 彩色日志依赖的渲染类 --> cloud-server-account/src/main/resources/sharding-jdbc.properties
@@ -11,3 +11,16 @@ #datasource.names=master0 #datasource.master0.type=com.alibaba.druid.pool.DruidDataSource #datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver #datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai #datasource.master0.username=root #datasource.master0.password=playpai2023! #datasource.master0.maxActive=20 #datasource.master0.maxWait=60000 #datasource.master0.minIdle=5 #datasource.master0.initialSize=2 cloud-server-activity/pom.xml
@@ -96,6 +96,7 @@ <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.4.RELEASE</version> <executions> <execution> <goals> cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
@@ -69,6 +69,7 @@ * 领取时间 */ @TableField("insertTime") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date insertTime; /** * 现金支付方式(1=微信2支付宝) cloud-server-activity/src/main/resources/logback-spring.xml
@@ -7,7 +7,7 @@ <contextName>logback</contextName> <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --> <property name="log.path" value="/Users/java/logs"/> <property name="log.path" value="/usr/playpai/server/logs"/> <!--0. 日志格式和颜色渲染 --> <!-- 彩色日志依赖的渲染类 --> @@ -223,7 +223,7 @@ <appender-ref ref="ERROR_FILE"/> <appender-ref ref="ALL_FILE"/> </root> <logger name="com.dsh.course.mapper" level="error"/> <logger name="com.dsh.course.mapper" level="debug"/> <logger name="business-log" level="warn"/> </springProfile> cloud-server-activity/src/main/resources/sharding-jdbc.properties
@@ -11,4 +11,17 @@ #datasource.names=master0 #datasource.master0.type=com.alibaba.druid.pool.DruidDataSource #datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver #datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai #datasource.master0.username=root #datasource.master0.password=playpai2023! #datasource.master0.maxActive=20 #datasource.master0.maxWait=60000 #datasource.master0.minIdle=5 #datasource.master0.initialSize=2 cloud-server-auth/pom.xml
@@ -112,6 +112,7 @@ <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.4.RELEASE</version> <executions> <execution> <goals> cloud-server-auth/src/main/resources/logback-spring.xml
@@ -7,7 +7,7 @@ <contextName>logback</contextName> <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --> <property name="log.path" value="/Users/java/logs"/> <property name="log.path" value="/usr/playpai/server/logs"/> <!--0. 日志格式和颜色渲染 --> <!-- 彩色日志依赖的渲染类 --> cloud-server-competition/pom.xml
@@ -101,6 +101,7 @@ <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.4.RELEASE</version> <executions> <execution> <goals> cloud-server-competition/src/main/resources/logback-spring.xml
@@ -7,7 +7,7 @@ <contextName>logback</contextName> <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --> <property name="log.path" value="/Users/java/logs"/> <property name="log.path" value="/usr/playpai/server/logs"/> <!--0. 日志格式和颜色渲染 --> <!-- 彩色日志依赖的渲染类 --> cloud-server-competition/src/main/resources/sharding-jdbc.properties
@@ -11,3 +11,16 @@ #datasource.names=master0 #datasource.master0.type=com.alibaba.druid.pool.DruidDataSource #datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver #datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_competition?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai #datasource.master0.username=root #datasource.master0.password=playpai2023! #datasource.master0.maxActive=20 #datasource.master0.maxWait=60000 #datasource.master0.minIdle=5 #datasource.master0.initialSize=2 cloud-server-course/pom.xml
@@ -144,6 +144,7 @@ <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.4.RELEASE</version> <executions> <execution> <goals> cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java
@@ -115,7 +115,9 @@ cancelClassesVO.setStartAndEnd(temp); TCoursePackagePayment byId = coursePackagePaymentService.getById(cancelClassesVO.getCoursePackagePaymentId()); cancelClassesVO.setStoreName(storeClient.queryStoreById(cancelClassesVO.getStoreId()).getName()); cancelClassesVO.setStudentName(studentClient.queryStudentById(byId.getStudentId()).getName()); if(null != byId){ cancelClassesVO.setStudentName(studentClient.queryStudentById(byId.getStudentId()).getName()); } cancelClassesVO.setCoachName(coachClient.queryCoachById(cancelClassesVO.getCoachId()).getName()); } cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -180,7 +180,6 @@ coursePackageOrder.setStudentIds(String.valueOf(packagePayment.getStudentId())); coursePackageOrder.setCoursePackageId(packagePayment.getCoursePackageId()); coursePackageOrder.setClassHours(packagePayment.getClassHours()); coursePackageOrder.setLaveClassHours(packagePayment.getClassHours()); coursePackageOrder.setOriginalPrice(packagePayment.getOriginalPrice()); coursePackageOrder.setCashPayment(packagePayment.getCashPayment()); coursePackageOrder.setPlayPaiCoin(packagePayment.getPlayPaiCoin()); @@ -471,7 +470,8 @@ } } TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId()); Student student = studentClient.queryStudentById(re.getStudentId()); String[] split = re.getStudentIds().split(","); Student student = studentClient.queryStudentById(Integer.valueOf(split[0])); re.setPayStudent(student.getName()); re.setPayUser(appUser.getName()); re.setPhone(appUser.getPhone()); @@ -1962,7 +1962,6 @@ coursePackageScheduling.setAppUserId(userId); coursePackageScheduling.setStudentId(sId); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); coursePackageScheduling.setCoursePackagePaymentIds(coursePackageOrder.getId().toString()); Date parse = format1.parse(format.format(time) + " " + split[j]); Date parse1 = format1.parse(format.format(time) + " " + split1[j]); coursePackageScheduling.setClassDate(parse); @@ -2023,7 +2022,6 @@ coursePackageScheduling.setAppUserId(userId); coursePackageScheduling.setStudentId(sId); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); coursePackageScheduling.setCoursePackagePaymentIds(coursePackageOrder.getId().toString()); Date parse = format1.parse(format.format(time) + " " + split[j]); Date parse1 = format1.parse(format.format(time) + " " + split1[j]); coursePackageScheduling.setClassDate(parse); @@ -2100,7 +2098,6 @@ } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); coursePackageScheduling.setCoursePackagePaymentIds(coursePackagePayment.getId().toString()); Date parse = format1.parse(format.format(date) + " " + split[i1]); Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); @@ -2164,7 +2161,6 @@ } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); coursePackageScheduling.setCoursePackagePaymentIds(coursePackagePayment.getId().toString()); Date parse = format1.parse(format.format(date) + " " + split[i1]); Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); @@ -2277,7 +2273,6 @@ } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); coursePackageScheduling.setCoursePackagePaymentIds(pay.getId().toString()); Date parse = format1.parse(format.format(date) + " " + split[i1]); Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -76,18 +76,7 @@ @RequestMapping("/bypac") @ResponseBody public List<Map<String, Object>> bypac(@RequestBody PacQueryDto pacQueryDto) { System.out.println("-====studentQeryDto=========" + pacQueryDto); if (pacQueryDto.getStoreIds() != null && pacQueryDto.getStoreIds().size() != 0) { // 根据门店id 查询课包ids List<Integer> coursePackageIds = coursePackageService.list(new QueryWrapper<TCoursePackage>() .in("storeId", pacQueryDto.getStoreIds())).stream() .map(TCoursePackage::getId).collect(Collectors.toList()); pacQueryDto.setStoreIds(coursePackageIds); } List<Map<String, Object>> pays = paymentService.bypac(pacQueryDto); System.out.println("=========pays======" + pays); return pays; } @@ -688,7 +677,6 @@ coursePackageScheduling.setAppUserId(userId); coursePackageScheduling.setStudentId(sId); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); coursePackageScheduling.setCoursePackagePaymentId(); Date parse = format1.parse(format.format(time) + " " + split[j]); Date parse1 = format1.parse(format.format(time) + " " + split1[j]); coursePackageScheduling.setClassDate(parse); @@ -749,7 +737,6 @@ coursePackageScheduling.setAppUserId(userId); coursePackageScheduling.setStudentId(sId); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); coursePackageScheduling.setCoursePackagePaymentId(); Date parse = format1.parse(format.format(time) + " " + split[j]); Date parse1 = format1.parse(format.format(time) + " " + split1[j]); coursePackageScheduling.setClassDate(parse); @@ -879,7 +866,6 @@ coursePackageScheduling.setAppUserId(student.getAppUserId()); coursePackageScheduling.setStudentId(Integer.valueOf(stuId)); coursePackageScheduling.setCoursePackageId(coursePackage1.getId()); coursePackageScheduling.setCoursePackagePaymentId(); Date parse = format1.parse(format.format(time) + " " + split[j]); Date parse1 = format1.parse(format.format(time) + " " + split1[j]); coursePackageScheduling.setClassDate(parse); cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
@@ -79,7 +79,8 @@ List<Map<String, Object>> getStudentTotal(@Param("appUserIds") List<Integer> appUserIds, @Param("start") String start, @Param("end") String end); List<Map<String, Object>> pacQueryDto(PacQueryDto pacQueryDto); List<Map<String, Object>> pacQueryDto(@Param("start") String start, @Param("end") String end, @Param("storeIds") List<Integer> storeIds, @Param("name") String name); List<TCoursePackagePayment> listOne(@Param("ids") List<Integer> ids); cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderVO.java
@@ -39,7 +39,7 @@ private String payUser; private String phone; // 学员id private Integer studentId; private String studentIds; private String payStudent; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date insertTime; cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java
@@ -216,9 +216,12 @@ .eq("status", 1) .eq("type", 1) ); laveClassHours -= count; Integer codeTime = coursePackage.getCodeTime(); laveClassHours -= count; //剩余数量不足以排课 if (laveClassHours.compareTo(codeTime) < 0) { break; } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //生成一周的排课数据 for (int i = 0; i < num; i++) { cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -49,6 +49,7 @@ import javax.annotation.Resource; import javax.persistence.criteria.CriteriaBuilder; import java.math.BigDecimal; import java.math.MathContext; import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -152,140 +153,96 @@ @Override public List<Map<String, Object>> getStudentTotal(StudentQeryDto studentQeryDto) { // String cityCode = studentQeryDto.getCityCode(); // String start = studentQeryDto.getStart(); // String end = studentQeryDto.getEnd(); // //获取用户数据 // List<Integer> appUserIds = null; // if(ToolUtil.isNotEmpty(cityCode)){ // List<AppUser> appUsers = appuClient.queryAppUserByCityCode(cityCode); // if(appUsers.size() > 0){ // appUserIds = appUsers.stream().map(AppUser::getId).collect(Collectors.toList()); // } // } // QueryWrapper<CoursePackageStudent> status = new QueryWrapper<CoursePackageStudent>().eq("payStatus", 2).eq("status", 1); // if(null != appUserIds){ // status.in("appUserId", appUserIds); // } // List<Map<String, Object>> maps = this.baseMapper.getStudentTotal(appUserIds, studentQeryDto.getStart(), studentQeryDto.getEnd()); // List<Map<String, Object>> list = new ArrayList<>(); // for (Map<String, Object> objectMap : maps) { // Integer studentId = Integer.valueOf(objectMap.get("studentId").toString()); // Integer appUserId = Integer.valueOf(objectMap.get("appUserId").toString()); // Integer coursePackageId = Integer.valueOf(objectMap.get("coursePackageId").toString()); // Integer number = Integer.valueOf(objectMap.get("number").toString()); // Map<String, Object> map = new HashMap<>(); // Student student = studentClient.queryStudentById(studentId); // map.put("studentName", student.getName()); // AppUser appUser = appuClient.queryAppUser(appUserId); // map.put("province", appUser.getProvince()); // map.put("provinceCode", appUser.getProvinceCode()); // map.put("city", appUser.getCity()); // map.put("cityCode", appUser.getCityCode()); // TCoursePackage coursePackage = coursePackageService.getById(coursePackageId); // map.put("courseName", coursePackage.getName()); // map.put("totalClassHours", number); // map.put("cashPayment", coursePackageOrder.getCashPayment()); // map.put("hasHours", ) // // // } String cityCode = studentQeryDto.getCityCode(); //获取用户数据 List<Integer> appUserIds = null; if(ToolUtil.isNotEmpty(cityCode)){ List<AppUser> appUsers = appuClient.queryAppUserByCityCode(cityCode); if(appUsers.size() > 0){ appUserIds = appUsers.stream().map(AppUser::getId).collect(Collectors.toList()); } } QueryWrapper<CoursePackageStudent> status = new QueryWrapper<CoursePackageStudent>().eq("payStatus", 2).eq("status", 1); if(null != appUserIds){ status.in("appUserId", appUserIds); } List<Map<String, Object>> maps = this.baseMapper.getStudentTotal(appUserIds, studentQeryDto.getStart(), studentQeryDto.getEnd()); List<Map<String, Object>> list = new ArrayList<>(); for (Map<String, Object> objectMap : maps) { if(null == objectMap.get("studentId")){ continue; } Integer studentId = Integer.valueOf(objectMap.get("studentId").toString()); Integer appUserId = Integer.valueOf(objectMap.get("appUserId").toString()); Integer coursePackageId = Integer.valueOf(objectMap.get("coursePackageId").toString()); Integer number = Integer.valueOf(objectMap.get("number").toString()); Map<String, Object> map = new HashMap<>(); Student student = studentClient.queryStudentById(studentId); if(null == student){ continue; } map.put("studentName", student.getName()); AppUser appUser = appuClient.queryAppUser(appUserId); if(null == appUser){ continue; } map.put("province", appUser.getProvince()); map.put("provinceCode", appUser.getProvinceCode()); map.put("city", appUser.getCity()); map.put("cityCode", appUser.getCityCode()); TCoursePackage coursePackage = coursePackageService.getById(coursePackageId); map.put("courseName", coursePackage.getName()); map.put("totalClassHours", number); CoursePackageOrder coursePackageOrder = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>().eq("appUserId", appUserId) .eq("coursePackageId", coursePackageId).eq("payStatus", 2).eq("state", 1) .gt("cashPayment", 0).last(" and studentIds like '%" + studentId + "%' order by insertTime desc limit 0, 1")); Double cashPayment = 0D; if(null != coursePackageOrder && coursePackageOrder.getClassHours() > 0){ cashPayment = coursePackageOrder.getCashPayment().divide(new BigDecimal(coursePackageOrder.getClassHours()), new MathContext(2, RoundingMode.HALF_EVEN)).doubleValue(); } map.put("cashPayment", cashPayment * number); // List<Map<String, Object>> studentTotal = this.baseMapper.getStudentTotal(studentQeryDto); // for (Map<String, Object> student : studentTotal) { // Integer appUserId = (Integer) student.get("appUserId"); // AppUser appUser = appuClient.queryAppUser(appUserId); // student.put("province", appUser.getProvince()); // student.put("provinceCode", appUser.getProvinceCode()); // // student.put("city", appUser.getCity()); // student.put("cityCode", appUser.getCityCode()); // // Student studentId = studentClient.queryStudentById((Integer) student.get("studentId")); // student.put("studentName", studentId.getName()); // BigDecimal cashPayment = (BigDecimal) student.get("cashPayment"); // BigDecimal totalClassHours = (BigDecimal) student.get("totalClassHours"); // BigDecimal hasHours = (BigDecimal) student.get("hasHours"); // if (cashPayment == null) { // continue; // } // if (totalClassHours.compareTo(BigDecimal.ZERO) == 0) { // totalClassHours = totalClassHours.add(new BigDecimal("1")); // } // BigDecimal hasPayment = cashPayment.divide(totalClassHours, 2, RoundingMode.HALF_UP) // .multiply(hasHours).setScale(2, RoundingMode.HALF_UP); // student.put("hasPayment", hasPayment); // } // // if (studentQeryDto.getCityCode() != null && studentQeryDto.getCityCode() != "") { // String value = studentQeryDto.getCityCode(); // boolean allZeros = value.substring(value.length() - 4).endsWith("0000"); // System.out.println(allZeros); // Output: true // if (allZeros) { // Iterator<Map<String, Object>> iterator = studentTotal.iterator(); // while (iterator.hasNext()) { // Map<String, Object> student = iterator.next(); // String cityCode = (String) student.get("provinceCode"); // if (!cityCode.equals(studentQeryDto.getCityCode())) { // iterator.remove(); // Remove the element from the list // } // } // } else { // Iterator<Map<String, Object>> iterator = studentTotal.iterator(); // while (iterator.hasNext()) { // Map<String, Object> student = iterator.next(); // String cityCode = (String) student.get("cityCode"); // if (!cityCode.equals(studentQeryDto.getCityCode())) { // iterator.remove(); // Remove the element from the list // } // } // } // } // // if (studentQeryDto.getStudentName() != null && studentQeryDto.getStudentName() != "") { // List<Map<String, Object>> totallike = new ArrayList<>(); // for (Map<String, Object> student : studentTotal) { // String studentName = (String) student.get("studentName"); // if (studentName.contains(studentQeryDto.getStudentName())) { // totallike.add(student); // } // // } // return totallike; // } // return studentTotal; return null; int count = coursePackageSchedulingService.count(new QueryWrapper<CoursePackageScheduling>().eq("studentId", studentId) .eq("coursePackageId", coursePackageId).eq("status", 3)); map.put("hasHours", count); map.put("hasPayment", count * cashPayment); list.add(map); } return list; } @Override public List<Map<String, Object>> bypac(PacQueryDto pacQueryDto) { if (pacQueryDto.getCityCode() != null && pacQueryDto.getCityCode() != "") { String value = pacQueryDto.getCityCode(); boolean allZeros = value.substring(value.length() - 4).endsWith("0000"); System.out.println(allZeros); // Output: true List<Map<String, Object>> maps = this.baseMapper.pacQueryDto(pacQueryDto.getStart(), pacQueryDto.getEnd(), pacQueryDto.getStoreIds(), pacQueryDto.getName()); for (Map<String, Object> map : maps) { Integer id = Integer.valueOf(map.get("id").toString()); Integer storeId = Integer.valueOf(map.get("storeId").toString()); Integer number = Integer.valueOf(map.get("number").toString()); Store store = storeClient.queryStoreById(storeId); map.put("store", store.getName()); map.put("totalClassHours", number); if (allZeros) { pacQueryDto.setProvinceCode(pacQueryDto.getCityCode()); pacQueryDto.setCityCode(null); List<CoursePackageOrder> list = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>() .eq("coursePackageId", id).eq("payStatus", 2).eq("state", 1) .gt("cashPayment", 0)); Double cashPayment = 0D; BigDecimal p = new BigDecimal(0); for (CoursePackageOrder coursePackageOrder : list) { p = p.add(coursePackageOrder.getCashPayment()); } } List<Map<String, Object>> maps = this.baseMapper.pacQueryDto(pacQueryDto); if (pacQueryDto.getName() != null && pacQueryDto.getName() != "") { List<Map<String, Object>> totallike = new ArrayList<>(); for (Map<String, Object> student : maps) { String studentName = (String) student.get("name"); if (studentName.contains(pacQueryDto.getName())) { totallike.add(student); } if(list.size() > 0){ cashPayment = p.divide(new BigDecimal(list.size()), new MathContext(2, RoundingMode.HALF_EVEN)).doubleValue(); } return totallike; map.put("cashPayment", cashPayment * number); int count = coursePackageSchedulingService.count(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", id).eq("status", 3)); map.put("hasHours", count); map.put("lavePay", count * cashPayment); } return maps; } cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1210,6 +1210,7 @@ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); coursePackageOrderStudent.setUseTime(calendar.getTime()); coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent); //更新学员课时有效期 if(null == student.getValidity()){ student.setValidity(calendar.getTime()); @@ -1222,6 +1223,9 @@ //开始排课 addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent, student.getValidity()); //课时记录 CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setPaymentId(coursePackageOrderStudent.getId()); @@ -1315,6 +1319,31 @@ //上课星期 String classWeeks = tCoursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); CoursePackageScheduling one = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>() .eq("studentId", sId) .eq("coursePackageId", tCoursePackage.getId()) .eq("status", 1) .orderByDesc("classDate") .last(" limit 0, 1") ); if(null != one){ //先检测是否需要继续进行排课 Calendar calendar1 = Calendar.getInstance(); calendar1.setTime(one.getClassDate()); int day_week1 = calendar1.get(Calendar.DAY_OF_WEEK); day_week1 = day_week1 - 1 == 0 ? 7 : day_week1 - 1; int week_of_month = calendar1.get(Calendar.WEEK_OF_MONTH); Calendar calendar2 = Calendar.getInstance(); calendar2.setTime(new Date()); int week_of_month1 = calendar2.get(Calendar.WEEK_OF_MONTH); //最后一次的排课时间不在本周,且是一周的最后一天。(如果是本周则表明已经课时用完了) if(week.get(week.size() - 1).equals(day_week1) && week_of_month == week_of_month1){ return; } } //上课时段 String[] split = tCoursePackage.getClassStartTime().split(","); String[] split1 = tCoursePackage.getClassEndTime().split(","); @@ -1468,7 +1497,7 @@ /** * 课时有效期更新后-更新历史排课数据 * 课时有效期更新后-更新历史排课数据(因有效期限制的排课数据,还有剩余课时) * @param student */ public void addOldPackageStudent(Student student){ @@ -1493,18 +1522,26 @@ ); Calendar calendar = Calendar.getInstance(); //上课星期 String classWeeks = coursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); Integer codeTime = coursePackage.getCodeTime(); String classStartTime = coursePackage.getClassStartTime(); String classEndTime = coursePackage.getClassEndTime(); String format = sdf1.format(one.getClassDate()); String time = format.substring(format.indexOf(" ") + 1); String[] split = classStartTime.split(","); String[] split1 = classEndTime.split(","); if(null == one){ calendar.setTime(new Date()); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); }else{ Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); Integer codeTime = coursePackage.getCodeTime(); String classStartTime = coursePackage.getClassStartTime(); String classEndTime = coursePackage.getClassEndTime(); String format = sdf1.format(one.getClassDate()); String time = format.substring(format.indexOf(" ") + 1); String[] split = classStartTime.split(","); String[] split1 = classEndTime.split(","); int n = Arrays.asList(split).indexOf(time); if(n != split.length - 1){ calendar.setTime(one.getClassDate()); @@ -1544,72 +1581,84 @@ } }else{ calendar.setTime(one.getClassDate()); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); int day_week1 = calendar.get(Calendar.DAY_OF_WEEK); //先检测是否需要继续进行排课 Calendar calendar1 = Calendar.getInstance(); calendar1.setTime(one.getClassDate()); int day_week1 = calendar1.get(Calendar.DAY_OF_WEEK); day_week1 = day_week1 - 1 == 0 ? 7 : day_week1 - 1; int num = 8 - day_week1 + 7; int week_of_month = calendar1.get(Calendar.WEEK_OF_MONTH); //上课星期 String classWeeks = coursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); Calendar calendar2 = Calendar.getInstance(); calendar2.setTime(new Date()); int week_of_month1 = calendar2.get(Calendar.WEEK_OF_MONTH); for (int i = 0; i < num; i++) { Date time1 = calendar.getTime(); //判断当天是否在排课星期内 int day = calendar.get(Calendar.DAY_OF_WEEK); day = day - 1 == 0 ? 7 : day - 1; if (!week.contains(day)) { calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); continue; } //大于有效期不进行排课 if (calendar.getTimeInMillis() >= validity.getTime()) { break; } for (int j = 0; j < split.length; j++) { //剩余数量不足以排课 if (laveClassHours.compareTo(codeTime) < 0) { break; } laveClassHours -= codeTime; CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); packageScheduling.setType(coursePackage.getType()); packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); packageScheduling.setStudentId(coursePackageOrderStudent.getStudentId()); packageScheduling.setCoursePackageId(coursePackage.getId()); try { Date parse = sdf.parse(sdf1.format(time1) + " " + split[j]); Date parse1 = sdf.parse(sdf1.format(time1) + " " + split1[j]); packageScheduling.setClassDate(parse); packageScheduling.setEndDate(parse1); }catch (Exception e){ e.printStackTrace(); } packageScheduling.setStatus(1); coursePackageSchedulingService.save(packageScheduling); CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(coursePackageOrderStudent.getAppUserId()); student1.setStudentId(coursePackageOrderStudent.getStudentId()); student1.setCoursePackageId(coursePackage.getId()); student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); student1.setCoursePackageSchedulingId(packageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); student1.setInsertTime(new Date()); coursePackageStudentMapper.insert(student1); } //增加日期,用于判断 calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); //最后一次的排课时间不在本周,且是一周的最后一天。(如果是本周则表明已经课时用完了) if(week.get(week.size() - 1).equals(day_week1) && week_of_month != week_of_month1){ break; } } calendar.setTime(one.getClassDate()); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); } int day_week = calendar.get(Calendar.DAY_OF_WEEK); day_week = day_week - 1 == 0 ? 7 : day_week - 1; int num = 8 - day_week + 7; for (int i = 0; i < num; i++) { Date time1 = calendar.getTime(); //判断当天是否在排课星期内 int day = calendar.get(Calendar.DAY_OF_WEEK); day = day - 1 == 0 ? 7 : day - 1; if (!week.contains(day)) { calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); continue; } //大于有效期不进行排课 if (calendar.getTimeInMillis() >= validity.getTime()) { break; } for (int j = 0; j < split.length; j++) { //剩余数量不足以排课 if (laveClassHours.compareTo(codeTime) < 0) { break; } laveClassHours -= codeTime; CoursePackageScheduling packageScheduling = new CoursePackageScheduling(); packageScheduling.setType(coursePackage.getType()); packageScheduling.setAppUserId(coursePackageOrderStudent.getAppUserId()); packageScheduling.setStudentId(coursePackageOrderStudent.getStudentId()); packageScheduling.setCoursePackageId(coursePackage.getId()); try { Date parse = sdf.parse(sdf1.format(time1) + " " + split[j]); Date parse1 = sdf.parse(sdf1.format(time1) + " " + split1[j]); packageScheduling.setClassDate(parse); packageScheduling.setEndDate(parse1); }catch (Exception e){ e.printStackTrace(); } packageScheduling.setStatus(1); coursePackageSchedulingService.save(packageScheduling); CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(coursePackageOrderStudent.getAppUserId()); student1.setStudentId(coursePackageOrderStudent.getStudentId()); student1.setCoursePackageId(coursePackage.getId()); student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); student1.setCoursePackageSchedulingId(packageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); student1.setInsertTime(new Date()); coursePackageStudentMapper.insert(student1); } //增加日期,用于判断 calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); } } } cloud-server-course/src/main/resources/logback-spring.xml
@@ -7,7 +7,7 @@ <contextName>logback</contextName> <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --> <property name="log.path" value="/Users/java/logs"/> <property name="log.path" value="/usr/playpai/server/logs"/> <!--0. 日志格式和颜色渲染 --> <!-- 彩色日志依赖的渲染类 --> cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml
@@ -63,11 +63,11 @@ </select> <select id="listAllRegister" resultType="com.dsh.course.model.RegisterOrderVO"> select t1.id,t1.studentId,t1.payUserType,t1.payStatus,t1.payType,t1.originalPrice,t1.userCouponId,t1.payUserId,t1.giftClassHours,t1.appUserId,t1.cashPayment t1.id,t1.studentIds,t1.payUserType,t1.payStatus,t1.payType,t1.originalPrice,t1.userCouponId,t1.payUserId,t1.appUserId,t1.cashPayment as money,t1.playPaiCoin, t1.insertTime, CONCAT(t2.province,t2.city) as provinceAndCity,t2.coursePackageTypeId,t2.storeId,t2.name as coursePackageName from t_course_package_payment t1 from t_course_package_order t1 left join t_course_package t2 on t1.coursePackageId = t2.id <where> <if test="query.amount!=null and query.amount!= ''"> cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -191,48 +191,37 @@ group by a.appUserId, a.studentId, a.coursePackageId </select> <select id="pacQueryDto" resultType="map"> SELECT coursePackageId, SUM( cashPayment ) AS cashPayment, SUM( totalClassHours ) AS totalClassHours, SUM( totalClassHours - laveClassHours ) AS hasHours, ROUND( SUM(( totalClassHours - laveClassHours ) * ( cashPayment / totalClassHours )), 2 ) AS lavePay, cp.`name` , cp.province, cp.city, cp.storeId,cp.cityCode,cp.provinceCode,py.insertTime FROM t_course_package_payment py LEFT JOIN t_course_package cp ON py.coursePackageId = cp.id <where> <if test="storeIds != null and storeIds.size()>0"> AND cp.id IN <foreach collection="storeIds" separator="," item="id" open="(" close=")"> #{id} select id, name, province, city, storeId, count(1) as number from ( select b.id, b.`name`, b.province, b.city, b.storeId from t_course_package_scheduling a left join t_course_package b on (a.coursePackageId = b.id) where a.`status` != 4 and b.status != 4 and b.auditStatus = 2 and b.state = 1 <if test="null != storeIds and storeIds.size() > 0"> and b.storeId in <foreach collection="storeIds" item="item" index="index" open="(" separator="," close=")"> #{item} </foreach> </if> <if test="null != start and '' != start and null != end and '' != end"> py.insertTime between #{start} and #{end} and DATE_FORMAT(a.classDate, '%Y-%m-%d') between #{start} and #{end} </if> <if test="null != cityCode and '' != cityCode"> and cityCode =#{cityCode} </if> <if test="null != provinceCode and '' != provinceCode"> and provinceCode =#{provinceCode} </if> <if test="null != name and '' != name"> and name like CONCAT('%', #{name}, '%') and b.name like CONCAT('%', #{name}, '%') </if> </where> GROUP BY coursePackageId order by classDate ) as aa group by aa.id, aa.name, aa.province, aa.city, aa.storeId </select> <select id="listOne" resultType="com.dsh.course.entity.TCoursePackagePayment"> cloud-server-course/src/main/resources/sharding-jdbc.properties
@@ -11,3 +11,16 @@ #datasource.names=master0 #datasource.master0.type=com.alibaba.druid.pool.DruidDataSource #datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver #datasource.master0.url=jdbc:mysql://127.0.0.1:3306/playpai_course?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai #datasource.master0.username=root #datasource.master0.password=playpai2023! #datasource.master0.maxActive=20 #datasource.master0.maxWait=60000 #datasource.master0.minIdle=5 #datasource.master0.initialSize=2 cloud-server-gateway/pom.xml
@@ -52,6 +52,7 @@ <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.4.RELEASE</version> <executions> <execution> <goals> cloud-server-gateway/src/main/resources/logback-spring.xml
@@ -7,7 +7,7 @@ <contextName>logback</contextName> <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --> <property name="log.path" value="/Users/java/logs"/> <property name="log.path" value="/usr/playpai/server/logs"/> <!--0. 日志格式和颜色渲染 --> <!-- 彩色日志依赖的渲染类 --> cloud-server-management/pom.xml
@@ -261,6 +261,7 @@ <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.4.RELEASE</version> <executions> <execution> <goals> cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TFinanceController.java
@@ -411,6 +411,9 @@ IncomeVO temp = new IncomeVO(); TAppUser tAppUser = appUserClient.queryById(competition.getAppUserId()); Competition competition1 = competitionClient.queryById(competition.getCompetitionId()); if(null == competition1){ continue; } if (!competition1.getStoreId().equals("")){ String[] split = competition1.getStoreId().split(","); List<Integer> list = new ArrayList<>(); @@ -663,6 +666,9 @@ IncomeVO temp = new IncomeVO(); TAppUser tAppUser = appUserClient.queryById(competition.getAppUserId()); Competition competition1 = competitionClient.queryById(competition.getCompetitionId()); if(null == competition1){ continue; } if (!competition1.getStoreId().equals("")){ String[] split = competition1.getStoreId().split(","); List<Integer> list = new ArrayList<>(); cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java
@@ -22,6 +22,7 @@ import com.dsh.course.service.TGameConfigService; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.controller.util.MD5; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.model.dto.*; @@ -899,19 +900,37 @@ @RequestMapping("/bypac") @ResponseBody public List<Map<String, Object>>bypac(@RequestBody PacQueryDto pacQueryDto) { System.out.println("========ballQueryDto======"+pacQueryDto); if (pacQueryDto.getTimes()!=null&& pacQueryDto.getTimes()!=""){ String[] split = pacQueryDto.getTimes().split(","); pacQueryDto.setStart(split[0]); pacQueryDto.setEnd(split[1]); } if (UserExt.getUser().getObjectType() == 2){ List<Integer> storeIds = storeService.list(new QueryWrapper<TStore>().eq("operatorId", UserExt.getUser().getObjectId())) QueryWrapper<TStore> queryWrapper = new QueryWrapper<TStore>().eq("operatorId", UserExt.getUser().getObjectId()).eq("state", 1); if(ToolUtil.isNotEmpty(pacQueryDto.getCityCode())){ queryWrapper.eq("cityCode", pacQueryDto.getCityCode()); } if(ToolUtil.isNotEmpty(pacQueryDto.getName())){ queryWrapper.like("name", pacQueryDto.getName()); } List<Integer> storeIds = storeService.list(queryWrapper) .stream().map(TStore::getId).collect(Collectors.toList()); storeIds.add(-1); pacQueryDto.setStoreIds(storeIds); }else{ QueryWrapper<TStore> queryWrapper = new QueryWrapper<TStore>().eq("state", 1); if(ToolUtil.isNotEmpty(pacQueryDto.getCityCode())){ queryWrapper.eq("cityCode", pacQueryDto.getCityCode()); } if(ToolUtil.isNotEmpty(pacQueryDto.getName())){ queryWrapper.like("name", pacQueryDto.getName()); } List<Integer> storeIds = storeService.list(queryWrapper) .stream().map(TStore::getId).collect(Collectors.toList()); storeIds.add(-1); pacQueryDto.setStoreIds(storeIds); } List<Map<String, Object>> pays = coursePackageClient.bypac(pacQueryDto); System.out.println("=========getStudentTotal======="+pays); return pays; } cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/paike.html
@@ -62,7 +62,7 @@ "columns": [ { "name": "studentName", "label": "学院姓名", "label": "学员姓名", "type": "text", "id": "u:631a38f8ab8f" }, @@ -232,7 +232,7 @@ "perPageField": "", "alwaysShowPagination": true, "loadDataOnce": true, "perPage": 5, "perPage": 10, "combineNum": 3 } ], cloud-server-other/pom.xml
@@ -113,6 +113,7 @@ <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.4.RELEASE</version> <executions> <execution> <goals> @@ -121,7 +122,6 @@ </execution> </executions> </plugin> </plugins> </build> <repositories> cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java
@@ -67,6 +67,9 @@ List<SiteBooking> siteBookings = siteBookingMapper.selectList (new LambdaQueryWrapper<SiteBooking>().eq(SiteBooking::getStatus, 1)); for (SiteBooking siteBooking : siteBookings) { if(null == siteBooking.getEndTime()){ continue; } long time = siteBooking.getEndTime().getTime(); if (System.currentTimeMillis() > time) { siteBooking.setStatus(4); @@ -87,6 +90,9 @@ List<SiteBooking> siteBookings = siteBookingMapper.selectList(new LambdaQueryWrapper<SiteBooking>() .eq(SiteBooking::getStatus, 1)); for (SiteBooking siteBooking : siteBookings) { if(null == siteBooking.getEndTime()){ continue; } long time = siteBooking.getEndTime().getTime(); if (System.currentTimeMillis() > time) { siteBooking.setStatus(4); cloud-server-other/src/main/resources/logback-spring.xml
@@ -7,7 +7,7 @@ <contextName>logback</contextName> <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 --> <property name="log.path" value="/Users/java/logs"/> <property name="log.path" value="/usr/playpai/server/logs"/> <!--0. 日志格式和颜色渲染 --> <!-- 彩色日志依赖的渲染类 -->