cloud-server-account/src/main/java/com/dsh/account/entity/User.java
New file @@ -0,0 +1,270 @@ package com.dsh.account.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 java.io.Serializable; import java.util.Date; /** * <p> * 管理员表 * </p> * * @author stylefeng * @since 2017-07-11 */ @TableName("sys_user") public class User extends Model<User> { private static final long serialVersionUID = 1L; /** * 主键id */ @TableId(value="id", type= IdType.AUTO) private Integer id; /** * 头像 */ private String avatar; /** * 账号 */ private String account; /** * 密码 */ private String password; /** * md5密码盐 */ private String salt; /** * 名字 */ private String name; /** * 生日 */ private Date birthday; /** * 性别(1:男 2:女) */ private Integer sex; /** * 电子邮件 */ private String email; /** * 电话 */ private String phone; /** * 角色id */ private String roleid; /** * 部门id */ private Integer deptid; /** * 状态(1:启用 2:冻结 3:删除) */ private Integer status; /** * 创建时间 */ private Date createtime; /** * 保留字段 */ private Integer version; /** * 对象类型(1=平台,2=城市管理员,3=门店) */ @TableField("objectType") private Integer objectType; /** * objectId */ @TableField("objectId") private Integer objectId; @TableField("idCard") private String idCard; public String getIdCard() { return idCard; } public void setIdCard(String idCard) { this.idCard = idCard; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getAvatar() { return avatar; } public void setAvatar(String avatar) { this.avatar = avatar; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSalt() { return salt; } public void setSalt(String salt) { this.salt = salt; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getRoleid() { return roleid; } public void setRoleid(String roleid) { this.roleid = roleid; } public Integer getDeptid() { return deptid; } public void setDeptid(Integer deptid) { this.deptid = deptid; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Date getCreatetime() { return createtime; } public void setCreatetime(Date createtime) { this.createtime = createtime; } public Integer getVersion() { return version; } public void setVersion(Integer version) { this.version = version; } public Integer getObjectType() { return objectType; } public void setObjectType(Integer objectType) { this.objectType = objectType; } public Integer getObjectId() { return objectId; } public void setObjectId(Integer objectId) { this.objectId = objectId; } @Override protected Serializable pkVal() { return this.id; } @Override public String toString() { return "User{" + "id=" + id + ", avatar=" + avatar + ", account=" + account + ", password=" + password + ", salt=" + salt + ", name=" + name + ", birthday=" + birthday + ", sex=" + sex + ", email=" + email + ", phone=" + phone + ", roleid=" + roleid + ", deptid=" + deptid + ", status=" + status + ", createtime=" + createtime + ", version=" + version + "}"; } } cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java
@@ -1,6 +1,7 @@ package com.dsh.account.feignclient.other; import com.dsh.account.entity.OperatorUser; import com.dsh.account.entity.User; import com.dsh.account.feignclient.competition.model.BillingDataRequestVo; import com.dsh.account.feignclient.other.model.SiteBooking; import com.dsh.account.model.BillingRequestOfType; @@ -39,4 +40,6 @@ @PostMapping("/base/site/counts") Integer counts(Integer stuId); @PostMapping("/base/site/queryUserName") User queryUserName(Integer coachId); } cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java
@@ -5,6 +5,8 @@ import com.dsh.account.entity.Coach; import com.dsh.account.entity.EvaluateStudent; import com.dsh.account.entity.TStudent; import com.dsh.account.entity.User; import com.dsh.account.feignclient.other.SiteClient; import com.dsh.account.mapper.EvaluateStudentMapper; import com.dsh.account.mapper.TStudentMapper; import com.dsh.account.model.vo.commentDetail.StuCommentsVo; @@ -38,24 +40,27 @@ @Autowired private CoachService coachService; @Resource private SiteClient siteClient; @Override public List<StuCommentsVo> queryStuCommentsList(Integer stuId) { List<StuCommentsVo> stuCommentsVos = new ArrayList<>(); TStudent tStudent = tstuMapper.selectById(stuId); List<EvaluateStudent> evaluateStudents = this.list(new QueryWrapper<EvaluateStudent>() .eq("studentId", stuId)); .eq("studentId",stuId )); if (evaluateStudents.size() > 0) { if (evaluateStudents.size() > 0){ for (EvaluateStudent evaluateStudent : evaluateStudents) { StuCommentsVo vo = new StuCommentsVo(); Coach coach = coachService.getById(evaluateStudent.getCoachId()); // Coach coach = coachService.getById(evaluateStudent.getCoachId()); User user = siteClient.queryUserName(evaluateStudent.getCoachId()); // vo.setHeadImg(tStudent.getHeadImg()); vo.setHeadImg(coach.getDiploma()); vo.setHeadImg(user.getAvatar()); // vo.setStuName(tStudent.getName()); vo.setStuName(coach.getName()); vo.setStuName(user.getName()); vo.setComTime(format.format(tStudent.getInsertTime())); vo.setContents(evaluateStudent.getContent()); String imgs = evaluateStudent.getImgs(); cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -234,107 +234,7 @@ @Override public List<PurchaseRecordVo> queryDeduRecordDetails(RecordTimeRequest timeRequest, Integer appUserId) { List<PurchaseRecordVo> purchaseRecordVoList = new ArrayList<>(); String time = timeRequest.getTime(); List<PurchaseRecordVo> record1 = sessionNameClient.getRecord(timeRequest); // // Date monthStart = null; // Date monthEnd = null; // if (StringUtils.hasText(time)) { // monthStart = DateTimeHelper.getCurrentIdetMouthStart(time); // monthEnd = DateTimeHelper.getCurrentIdeaMouthEnd(time); // } else { // monthStart = DateTimeHelper.getCurrentMouthStart(); // monthEnd = DateTimeHelper.getCurrentMouthEnd(); // } // // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM"); // Date startTime = DateTimeHelper.getCurrentIdetMouthStart(simpleDateFormat.format(monthStart)); // Date endTime = DateTimeHelper.getCurrentIdeaMouthEnd(simpleDateFormat.format(monthEnd)); // GetStuSourseList getStuSourseList = new GetStuSourseList(); // getStuSourseList.setStartTime(startTime); // getStuSourseList.setEndTime(endTime); // getStuSourseList.setAppUserId(appUserId); // // 报名赛事 // List<PurchaseRecordVo> stuSourseList = dcttClient.getStuSourseList1(getStuSourseList); // purchaseRecordVoList.addAll(stuSourseList); // // GetStuSessionList sessionList = new GetStuSessionList(); // sessionList.setStartTime(startTime); // sessionList.setEndTime(endTime); // sessionList.setStuId(timeRequest.getStuId()); // sessionList.setAppUserId(appUserId); // List<PurchaseRecordVo> cancelCourseList = cancelcClient.getCancelCourseList(sessionList); // // purchaseRecordVoList.addAll(cancelCourseList); // GetStuSessionList getStuSessionList = new GetStuSessionList(); // getStuSessionList.setStartTime(startTime); // getStuSessionList.setEndTime(endTime); // getStuSessionList.setStuId(timeRequest.getStuId()); // getStuSessionList.setAppUserId(appUserId); // // 购买课包 // List<PurchaseRecordVo> purchaseRecordVos = sessionNameClient.queryCourseDetails(getStuSessionList); // purchaseRecordVoList.addAll(purchaseRecordVos); // List<TAppUser> tAppUsers = tauMapper.selectList(new QueryWrapper<TAppUser>() // .eq("referralUserId",appUserId ) // .between("insertTime",startTime ,endTime)); // if (ToolUtil.isNotEmpty(tAppUsers)){ // List<Integer> userIds = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList()); // IntrduceOfUserRequest request = new IntrduceOfUserRequest(); // request.setStartTime(startTime); // request.setEndTime(endTime); // request.setUserIds(userIds); // // 介绍有礼 // List<PurchaseRecordVo> purchaseRecordVos1 = idrClient.queryAppUsersofIntroduce(request); // purchaseRecordVoList.addAll(purchaseRecordVos1); // } // // LambdaQueryWrapper<TCourseInfoRecord> eq = new LambdaQueryWrapper<TCourseInfoRecord>().eq(TCourseInfoRecord::getUserId, appUserId); // if(timeRequest.getType()!=null){ // eq.eq(TCourseInfoRecord::getType,timeRequest.getType()); // } // if (timeRequest.getLessionId()!=null){ // eq.eq(TCourseInfoRecord::getCourseId,timeRequest.getLessionId()); // // } // // 2.0其他记录 // List<TCourseInfoRecord> list = courseInfoRecordService.list(eq); // List<PurchaseRecordVo> list1=new ArrayList<>(); // for (TCourseInfoRecord tCourseInfoRecord : list) { // PurchaseRecordVo purchaseRecordVo = new PurchaseRecordVo(); // purchaseRecordVo.setPurchaseTime(new SimpleDateFormat("MM-dd HH:mm").format(tCourseInfoRecord.getTime())); // purchaseRecordVo.setPurchaseType(tCourseInfoRecord.getName()); // if(tCourseInfoRecord.getType()==1){ // purchaseRecordVo.setPurchaseAmount("+"+tCourseInfoRecord.getNum()); // }else { // purchaseRecordVo.setPurchaseAmount("-"+tCourseInfoRecord.getNum()); // } // list1.add(purchaseRecordVo); // } // purchaseRecordVoList.addAll(list1); // // if (purchaseRecordVoList.size() > 0 ){ // purchaseRecordVoList = purchaseRecordVoList.stream() // .filter(record -> { // String fieldValue = record.getPurchaseAmount(); // if (ToolUtil.isNotEmpty(timeRequest.getType())){ // switch (timeRequest.getType()){ // case 2: // return fieldValue != null && !fieldValue.isEmpty() && fieldValue.charAt(0) == '-'; // case 1: // return fieldValue != null && !fieldValue.isEmpty() && fieldValue.charAt(0) == '+'; // default: // break; // } // } // return true; // }) // .collect(Collectors.toList()); // } // // purchaseRecordVoList = dealDataOfTime(purchaseRecordVoList); return record1; } @@ -879,9 +779,23 @@ return this.baseMapper.getGiftSelect(giftSearchDto); } @Resource private SiteClient siteClient; @Override public List<Map<String, Object>> queryCom(Integer id) { return this.baseMapper.queryCom(id); List<Map<String, Object>> maps = this.baseMapper.queryCom(id); for (Map<String, Object> map : maps) { Integer coachId = (Integer) map.get("coachId"); System.err.println("==============XXXXXXXXXXXX"+coachId); if (coachId!=null) { User name = siteClient.queryUserName(coachId); map.put("name",name.getName()); } } return maps; } cloud-server-account/src/main/resources/mapper/TStudentMapper.xml
@@ -86,13 +86,10 @@ <select id="queryCom" resultType="java.util.Map"> SELECT es.id as id ,tc.name,es.content,es.insertTime,es.imgs as images es.id as id ,es.coachId,es.content,es.insertTime,es.imgs as images FROM t_evaluate_student es left JOIN t_student ts on es.studentId = ts.id LEFT JOIN t_coach tc on es.coachId = tc.id where es.studentId = #{id} cloud-server-course/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java
@@ -70,6 +70,7 @@ //分片规则配置 ShardingRuleConfiguration result1 = new ShardingRuleConfiguration(); result1.getTables().add(getCoursePackagePaymentTableRuleConfiguration()); Properties props1 = new Properties(); props1.setProperty("algorithm-expression", "t_course_package_payment$->{appUserId % 5 + 1}"); @@ -107,7 +108,7 @@ //分片规则配置 result1.getTables().add(getCoursePackageOrderTableRuleConfiguration()); Properties props6 = new Properties(); props1.setProperty("algorithm-expression", "t_course_package_order$->{appUserId % 5 + 1}"); props6.setProperty("algorithm-expression", "t_course_package_order$->{appUserId % 5 + 1}"); result1.getShardingAlgorithms().put("t_course_package_order-inline", new AlgorithmConfiguration("INLINE", props6)); result1.getKeyGenerators().put("t_course_package_order-snowflake", new AlgorithmConfiguration("SNOWFLAKE", new Properties())); cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -21,6 +21,7 @@ import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; import com.dsh.course.mapper.CoursePackageSchedulingMapper; import com.dsh.course.mapper.TCoursePackageMapper; import com.dsh.course.model.*; import com.dsh.course.model.dto.DiscountJsonDto; import com.dsh.course.model.vo.CourseDetailRequest; @@ -28,6 +29,7 @@ import com.dsh.course.model.vo.request.*; import com.dsh.course.model.vo.response.*; import com.dsh.course.service.*; import com.dsh.course.service.impl.CoursePackageOrderStudentServiceImpl; import com.dsh.course.util.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -585,6 +587,8 @@ } } @Autowired private ICoursePackageOrderStudentService orderStudentService; /** * 课程名称列表 @@ -592,12 +596,12 @@ @PostMapping("/base/coursePack/sessionNames") public List<StuSessionDetailsVo> getStuSessionList(@RequestBody CourseDetailRequest request) { List<StuSessionDetailsVo> detailsVos = new ArrayList<>(); List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() List<CoursePackageOrderStudent> byUserId = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() .between("insertTime", request.getStartTime(), request.getEndTime()) .eq("appUserId", request.getAppUserId()) .eq("studentId", request.getStuId())); if (byUserId.size() > 0) { List<Integer> collect = byUserId.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList()); List<Integer> collect = byUserId.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList()); List<TCoursePackage> list = tcpService.list(new QueryWrapper<TCoursePackage>() .in("id", collect)); @@ -670,22 +674,23 @@ @PostMapping("/base/coursePack/getRecord") public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) { List<TCoursePackagePayment> list = new ArrayList<>(); List<CoursePackageOrderStudent> list = new ArrayList<>(); Integer[] changes = {1, 0}; if (recordTimeRequest.getType() == null) { list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); } else { list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); } List<Long> ids = new ArrayList<>(); for (TCoursePackagePayment coursePackagePayment : list) { ids.add(coursePackagePayment.getId()); } List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList()); List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() .in("appUserId", appUserIds) .eq("coursePackageId", recordTimeRequest.getLessionId()) .eq("state", 1) ); List<Long> collect = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList()); QueryWrapper<CourseCounsum> in = new QueryWrapper<CourseCounsum>().in("paymentId", ids).in("changeType", changes); QueryWrapper<CourseCounsum> in = new QueryWrapper<CourseCounsum>().in("paymentId", collect).in("changeType", changes); if (recordTimeRequest.getType() != null) { if (recordTimeRequest.getType() == 2) { @@ -1255,8 +1260,8 @@ @PostMapping("/coursePackagePayment/queryResidueClassHourById") public Integer queryResidueClassHourById(@RequestBody Long id) { try { TCoursePackagePayment list = packagePaymentService.getById(id); return list.getLaveClassHours(); CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(id); return coursePackageOrderStudent.getLaveClassHours(); } catch (Exception e) { e.printStackTrace(); return 0; @@ -1293,128 +1298,162 @@ public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour) { try { // 2.0 用id进行查询 TCoursePackagePayment coursePackagePayment = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", paymentDeductionClassHour.getCourseId()).eq("payStatus", 2) .eq("status", 1).eq("state", 1).gt("laveClassHours", 0)); Integer classHour = paymentDeductionClassHour.getClassHour(); // TCoursePackagePayment coursePackagePayment = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", paymentDeductionClassHour.getCourseId()).eq("payStatus", 2) // .eq("status", 1).eq("state", 1).gt("laveClassHours", 0)); // Integer classHour = paymentDeductionClassHour.getClassHour(); // for (TCoursePackagePayment coursePackagePayment : list) { if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) { coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour); coursePackagePayment.setAppUserId(null); packagePaymentService.updateById(coursePackagePayment); CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setPaymentId(coursePackagePayment.getId()); courseCounsum.setChangeType(0); courseCounsum.setNum(classHour); courseCounsum.setInsertTime(new Date()); courseCounsum.setReason("报名赛事"); courseCounsumService.save(courseCounsum); List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(paymentDeductionClassHour.getCourseId()); // if (paymentDeductionClassHour.getClassHour() > coursePackageOrderStudent.getLaveClassHours()) { // return ResultUtil.error("当前课包课时数不足"); // } TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - paymentDeductionClassHour.getClassHour()); coursePackageOrderStudentService.updateById(coursePackageOrderStudent); //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录 List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>() .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1) .eq("type", 1).orderByDesc("classDate")); //已经排课但没有使用的课时数量 int number = list1.size() * coursePackage.getNeedNum(); Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours(); //需要删除多余的排课记录 if(number > laveClassHours1){ int n = number - laveClassHours1; for (int i = 0; i < n; i++) { CoursePackageScheduling coursePackageScheduling = list1.get(i); coursePackageSchedulingService.getBaseMapper().deleteById(coursePackageScheduling.getId()); TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId()); String classWeeks = tCoursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId())); Date today = new Date(); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -1); today = calendar.getTime(); Integer laveClassHours = pay.getLaveClassHours(); Integer codeTime = tCoursePackage.getCodeTime(); Integer can = laveClassHours / codeTime; int count = 0; String[] split = tCoursePackage.getClassStartTime().split(","); String[] split1 = tCoursePackage.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date[] dates = generateDateArray(14, today); for (Date date : dates) { if (count == can) { break; } int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date); if (week.contains(wei)) { for (int i1 = 0; i1 < split.length; i1++) { if (count == can) { break; } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); Date parse = format1.parse(format.format(date) + " " + split[i1]); Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); coursePackageScheduling.setEndDate(parse1); coursePackageScheduling.setStatus(1); coursePackageSchedulingService.save(coursePackageScheduling); CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(pay.getAppUserId()); student1.setStudentId(pay.getStudentId()); student1.setCoursePackageId(pay.getCoursePackageId()); student1.setCoursePackagePaymentId(pay.getId()); student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); student1.setInsertTime(new Date()); studentService.save(student1); count++; } } coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>() .eq("coursePackageSchedulingId", coursePackageScheduling.getId())); } // 2.0 少于3课时 推送 if (coursePackagePayment.getLaveClassHours() <= 3) { Integer appUserId = coursePackagePayment.getAppUserId(); //调用推送 HttpHeaders headers = new HttpHeaders(); // 以表单的方式提交 headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); String s1 = appUserId + "_" + "Three"; //定时修改排课状态 String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id=" + s1, String.class); JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); if (jsonObject1.getIntValue("code") != 200) { System.err.println(jsonObject1.getString("msg")); } } CancelledClasses cancelledClasses = new CancelledClasses(); cancelledClasses.setType(2); cancelledClasses.setVoucher(paymentDeductionClassHour.getCode()); cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId()); cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId()); cancelledClasses.setCancelledClassesNumber(classHour); cancelledClasses.setInsertTime(new Date()); cancelledClassesService.save(cancelledClasses); } else { CancelledClasses cancelledClasses = new CancelledClasses(); cancelledClasses.setType(2); cancelledClasses.setVoucher(paymentDeductionClassHour.getCode()); cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId()); cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId()); cancelledClasses.setCancelledClassesNumber(coursePackagePayment.getLaveClassHours()); cancelledClasses.setInsertTime(new Date()); cancelledClassesService.save(cancelledClasses); coursePackagePayment.setLaveClassHours(0); packagePaymentService.updateById(coursePackagePayment); classHour -= cancelledClasses.getCancelledClassesNumber(); } // if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) { // coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour); // coursePackagePayment.setAppUserId(null); // packagePaymentService.updateById(coursePackagePayment); // // CourseCounsum courseCounsum = new CourseCounsum(); // courseCounsum.setPaymentId(coursePackagePayment.getId()); // courseCounsum.setChangeType(0); // courseCounsum.setNum(classHour); // courseCounsum.setInsertTime(new Date()); // courseCounsum.setReason("报名赛事"); // courseCounsumService.save(courseCounsum); // // // List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); // List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); // coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); // coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); // // // TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId()); // String classWeeks = tCoursePackage.getClassWeeks(); // List<Integer> week = week(classWeeks); // // TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId())); // // Date today = new Date(); // Calendar calendar = Calendar.getInstance(); // calendar.add(Calendar.DATE, -1); // today = calendar.getTime(); // // // Integer laveClassHours = pay.getLaveClassHours(); // Integer codeTime = tCoursePackage.getCodeTime(); // Integer can = laveClassHours / codeTime; // // int count = 0; // String[] split = tCoursePackage.getClassStartTime().split(","); // String[] split1 = tCoursePackage.getClassEndTime().split(","); // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); // SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // // Date[] dates = generateDateArray(14, today); // for (Date date : dates) { // if (count == can) { // break; // } // int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date); // if (week.contains(wei)) { // for (int i1 = 0; i1 < split.length; i1++) { // if (count == can) { // break; // } // CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); // coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); // Date parse = format1.parse(format.format(date) + " " + split[i1]); // Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); // coursePackageScheduling.setClassDate(parse); // coursePackageScheduling.setEndDate(parse1); // coursePackageScheduling.setStatus(1); // coursePackageSchedulingService.save(coursePackageScheduling); // CoursePackageStudent student1 = new CoursePackageStudent(); // student1.setAppUserId(pay.getAppUserId()); // student1.setStudentId(pay.getStudentId()); // student1.setCoursePackageId(pay.getCoursePackageId()); // student1.setCoursePackagePaymentId(pay.getId()); // student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); // student1.setSignInOrNot(1); // student1.setReservationStatus(1); // student1.setInsertTime(new Date()); // studentService.save(student1); // count++; // } // } // } // // // // 2.0 少于3课时 推送 // if (coursePackagePayment.getLaveClassHours() <= 3) { // Integer appUserId = coursePackagePayment.getAppUserId(); // // //调用推送 // HttpHeaders headers = new HttpHeaders(); // // 以表单的方式提交 // headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); // String s1 = appUserId + "_" + "Three"; // //定时修改排课状态 // String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id=" + s1, String.class); // JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); // if (jsonObject1.getIntValue("code") != 200) { // System.err.println(jsonObject1.getString("msg")); // } // } // // CancelledClasses cancelledClasses = new CancelledClasses(); // cancelledClasses.setType(2); // cancelledClasses.setVoucher(paymentDeductionClassHour.getCode()); // cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId()); // cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId()); // cancelledClasses.setCancelledClassesNumber(classHour); // cancelledClasses.setInsertTime(new Date()); // cancelledClassesService.save(cancelledClasses); // // } else { // CancelledClasses cancelledClasses = new CancelledClasses(); // cancelledClasses.setType(2); // cancelledClasses.setVoucher(paymentDeductionClassHour.getCode()); // cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId()); // cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId()); // cancelledClasses.setCancelledClassesNumber(coursePackagePayment.getLaveClassHours()); // cancelledClasses.setInsertTime(new Date()); // cancelledClassesService.save(cancelledClasses); // // coursePackagePayment.setLaveClassHours(0); // packagePaymentService.updateById(coursePackagePayment); // // classHour -= cancelledClasses.getCancelledClassesNumber(); // } // } @@ -1478,6 +1517,8 @@ } @Resource private TCoursePackageMapper tcpmapper; /** * 找出符合门店的课包 * @@ -1499,21 +1540,42 @@ for (String s2 : split1) { storeIds.add(Integer.valueOf(s2)); } List<TCoursePackagePayment> list = packagePaymentService.list(new LambdaQueryWrapper<TCoursePackagePayment>().eq(TCoursePackagePayment::getAppUserId, integer).ge(TCoursePackagePayment::getLaveClassHours, 0).eq(TCoursePackagePayment::getStatus, 1).eq(TCoursePackagePayment::getState, 1)); for (TCoursePackagePayment tCoursePackagePayment : list) { Integer coursePackageId = tCoursePackagePayment.getCoursePackageId(); TCoursePackage byId = tcpService.getById(coursePackageId); if (byId.getType() == 3) { // List<TCoursePackagePayment> list = packagePaymentService.list(new LambdaQueryWrapper<TCoursePackagePayment>().eq(TCoursePackagePayment::getAppUserId, integer).ge(TCoursePackagePayment::getLaveClassHours, 0).eq(TCoursePackagePayment::getStatus, 1).eq(TCoursePackagePayment::getState, 1)); // for (TCoursePackagePayment tCoursePackagePayment : list) { // Integer coursePackageId = tCoursePackagePayment.getCoursePackageId(); // TCoursePackage byId = tcpService.getById(coursePackageId); // if (byId.getType() == 3) { // continue; // } // if (storeIds.contains(byId.getStoreId())) { // PayCourseRes payCourseRes = new PayCourseRes(); // payCourseRes.setCourseNum(tCoursePackagePayment.getLaveClassHours()); // payCourseRes.setId(tCoursePackagePayment.getId()); // payCourseRes.setName(byId.getName()); // objects.add(payCourseRes); // } // } List<CoursePackageOrderStudent> tCoursePackagePayments = coursePackageOrderStudentService.list(new LambdaQueryWrapper<CoursePackageOrderStudent>().eq(CoursePackageOrderStudent::getAppUserId, integer)); // ArrayList<PayCourseRes> payCourseRes = new ArrayList<>(); for (CoursePackageOrderStudent tCoursePackagePayment : tCoursePackagePayments) { TCoursePackage tCoursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); if (tCoursePackage.getType() != 1) { continue; } if (storeIds.contains(byId.getStoreId())) { if (storeIds.contains(tCoursePackage.getStoreId())) { PayCourseRes payCourseRes = new PayCourseRes(); payCourseRes.setCourseNum(tCoursePackagePayment.getLaveClassHours()); payCourseRes.setId(tCoursePackagePayment.getId()); payCourseRes.setName(byId.getName()); payCourseRes.setName(tCoursePackage.getName()); objects.add(payCourseRes); } } return objects; } @@ -1880,7 +1942,7 @@ @PostMapping("/base/coursePack/obtainStudentClassDetails") public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId) { // try { return packagePaymentService.obtainStuClassDetails(stuId.getStuId(), stuId.getAppUserId(), stuId.getPageNum()); return coursePackageOrderStudentService.obtainStuClassDetails(stuId.getStuId(), stuId.getAppUserId(), stuId.getPageNum()); // }catch (Exception e){ // e.printStackTrace(); // throw new RuntimeException(); cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageScheduling.java
@@ -35,6 +35,21 @@ @TableId(value = "id", type = IdType.NONE) private Long id; /** * 1=常规,2=假期,3=体验购课 */ @TableField("type") private Integer type; /** * 用户id */ @TableField("appUserId") private Integer appUserId; /** * 学员id */ @TableField("studentId") private Integer studentId; /** * 课包id */ @TableField("coursePackageId") cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageOrderStudentService.java
@@ -2,10 +2,22 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.course.entity.CoursePackageOrderStudent; import com.dsh.course.feignclient.model.RecordAppoint; import java.util.List; /** * @author zhibing.pu * @Date 2023/11/25 14:05 */ public interface ICoursePackageOrderStudentService extends IService<CoursePackageOrderStudent> { /** * 查询学员的课包上课记录 * * @param stuId * @param appUserId * @return */ List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId, Integer pageNum); } cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java
@@ -1,10 +1,30 @@ package com.dsh.course.service.impl; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.course.entity.CoursePackageOrderStudent; import com.dsh.course.mapper.CoursePackageOrderStudentMapper; import com.dsh.course.entity.*; import com.dsh.course.feignclient.model.RecordAppoint; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; import com.dsh.course.mapper.*; import com.dsh.course.service.ICoursePackageOrderStudentService; import com.dsh.course.service.ICoursePackageSchedulingService; import com.dsh.course.util.DateTimeHelper; import com.dsh.course.util.DateUtil; import com.dsh.course.util.ToolUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; /** * @author zhibing.pu @@ -12,4 +32,169 @@ */ @Service public class CoursePackageOrderStudentServiceImpl extends ServiceImpl<CoursePackageOrderStudentMapper, CoursePackageOrderStudent> implements ICoursePackageOrderStudentService { @Resource private CoursePackageStudentMapper cpsMapper; @Resource private CancelledClassesMapper cacMapper; @Autowired private ICoursePackageSchedulingService coursePackageSchedulingService; @Resource private TCoursePackageMapper tcpmapper; @Resource private StoreClient stoClient; @Override public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId, Integer pageNum) { List<RecordAppoint> recordVoList = new ArrayList<>(); List<CoursePackageOrderStudent> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<CoursePackageOrderStudent>() .eq("studentId", stuId) .eq("appUserId", appUserId) .eq("status", 1) .orderByDesc("insertTime")); List<Integer> ids = new ArrayList<>(); for (CoursePackageOrderStudent tCoursePackagePayment : tCoursePackagePayments) { ids.add(tCoursePackagePayment.getCoursePackageId()); } SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); if (tCoursePackagePayments.size() > 0) { // int pageNum = 1; // 页码 int pageSize = 10; // 每页记录数 Page<CoursePackageStudent> page = new Page<>(pageNum, pageSize); IPage<CoursePackageStudent> coursePackageStudentPage = cpsMapper.selectPage(page, new QueryWrapper<CoursePackageStudent>() .in("coursePackageId", ids) .eq("studentId", stuId) .eq("appUserId", appUserId) .eq("reservationStatus", 1)); List<CoursePackageStudent> coursePackageStudent1 = coursePackageStudentPage.getRecords(); if (ToolUtil.isNotEmpty(coursePackageStudent1) && coursePackageStudent1.size() > 0) { TCoursePackage coursePackage = new TCoursePackage(); Integer coursePackageId = -1; for (CoursePackageStudent coursePackageStudent : coursePackageStudent1) { RecordAppoint recordVo = new RecordAppoint(); recordVo.setCoursePackageId(coursePackageStudent.getCoursePackageId()); if (!coursePackageStudent.getCoursePackageId().equals(coursePackageId)) { coursePackage = tcpmapper.selectById(coursePackageStudent.getCoursePackageId()); coursePackageId = coursePackageStudent.getCoursePackageId(); } recordVo.setSid(Arrays.asList(coursePackage.getStoreId())); List<Integer> rid = stoClient.querySiteId(coursePackage.getStoreId()); recordVo.setRid(rid); recordVo.setUserId(appUserId); recordVo.setSiteId(coursePackage.getSiteId()); List<Integer> ids1 = getIds(coursePackage.getSiteId()); recordVo.setIds(ids1); recordVo.setCoursePackageName(coursePackage.getName()); for (CoursePackageOrderStudent tCoursePackagePayment : tCoursePackagePayments) { if (Objects.equals(coursePackageStudent.getCoursePackageId(), tCoursePackagePayment.getCoursePackageId())) { recordVo.setCourseHours(tCoursePackagePayment.getTotalClassHours()); } } CoursePackageScheduling byId = coursePackageSchedulingService.getById(coursePackageStudent.getCoursePackageSchedulingId()); if (byId == null) { continue; } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String dateString1 = sdf.format(byId.getClassDate()); String dateString2 = sdf.format(byId.getEndDate()); recordVo.setTimeFrame(dateString1 + "-" + dateString2.substring(11)); Store store = stoClient.queryStoreById(coursePackage.getStoreId()); recordVo.setStoreNameAddr(store.getName() + store.getAddress()); recordVo.setCourseStuRecordId(coursePackageStudent.getId()); String classWeeks = coursePackage.getClassWeeks(); String[] split = classWeeks.split(";"); List<String> integerList = Arrays.asList(split); String weekOfDate = DateTimeHelper.getWeekOfDate(new Date()); if (integerList.contains(weekOfDate)) { String dat = simpleDateFormat.format(byId.getClassDate()) + " " + dateString1.substring(11); Date start = null; try { start = format.parse(dat); } catch (ParseException e) { throw new RuntimeException(e); } //已取消 if (byId.getStatus() == 4) { recordVo.setStatus(4); } else if (coursePackageStudent.getSignInOrNot() == 2) { //已请假 recordVo.setStatus(5); } else if (start.after(new Date())) { //待上课 recordVo.setStatus(1); } else { CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() .eq("coursePackageSchedulingId", byId.getId()).last("limit 1")); if (ToolUtil.isNotEmpty(cancelledClasses)) { recordVo.setStatus(3); // 消课 到课状态0 旷课 if (coursePackageStudent.getSignInOrNot() == 0) { recordVo.setStatus(6); } } else { Date now = new Date(); if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) { recordVo.setStatus(2); } else { recordVo.setStatus(3); } } } } else { recordVo.setStatus(1); } recordVoList.add(recordVo); } } else { } } return recordVoList; } public List<Integer> getIds(Integer siteId) { HttpRequest httpRequest = HttpRequest.get("https://try.daowepark.com/v7/user_api/general/get_space_area?space_id=" + siteId); HttpResponse execute = httpRequest.execute(); String body = execute.body(); JSONObject jsonObject = JSONObject.parseObject(body); Object data = jsonObject.get("data"); JSONArray array = JSONArray.parseArray(data.toString()); List<Integer> ids = new ArrayList<>(); for (Object o : array) { JSONObject jsonObject1 = JSONObject.parseObject(o.toString()); Object id = jsonObject1.get("id"); Integer integer = Integer.valueOf(id.toString()); ids.add(integer); } return ids; } } cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -502,12 +502,31 @@ @Autowired private ICoursePackageOrderService coursePackageOrderService; @Autowired private ICoursePackageOrderStudentService coursePackageOrderStudentService; @Autowired private TCoursePackageService coursePackageService; @Override public CourseDetailsResponse queryRegisteredCourseDetails(Long coursePayId, Integer appUserId, String lon, String lat) { AppUser appUser = appuClient.queryAppUser(appUserId); CourseDetailsResponse response = new CourseDetailsResponse(); CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(coursePayId); CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(coursePayId); CoursePackageOrder coursePackageOrder = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>() .eq("appUserId", coursePackageOrderStudent.getAppUserId()) .eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()) .eq("payStatus", 2) .eq("state", 1) .like("studentIds", coursePackageOrderStudent.getStudentId()) .orderByDesc("insertTime") .last(" limit 0, 1") ); response.setChooseHours(coursePackageOrder.getClassHours()); if (null != coursePackageOrder) { @@ -1215,10 +1234,6 @@ Integer integer = cpsMapper.selectCount(new QueryWrapper<CoursePackageStudent>().eq("appUserId", appUserId) .eq("studentId", studentId).eq("coursePackagePaymentId", id).eq("signInOrNot", 2)); map.put("already", integer); // if (student != null && student.getName().equals("杨锴1")) { // map.put("totalClassHours", "测试"); // } ; } return list; } @@ -1277,9 +1292,9 @@ @Override public List<PayCourseRes> getMyCourseList(Integer storeId, Integer appUserId) { // 找到购买的课包 List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new LambdaQueryWrapper<TCoursePackagePayment>().eq(TCoursePackagePayment::getAppUserId, appUserId)); List<CoursePackageOrderStudent> tCoursePackagePayments = coursePackageOrderStudentService.list(new LambdaQueryWrapper<CoursePackageOrderStudent>().eq(CoursePackageOrderStudent::getAppUserId, appUserId)); ArrayList<PayCourseRes> payCourseRes = new ArrayList<>(); for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { for (CoursePackageOrderStudent tCoursePackagePayment : tCoursePackagePayments) { TCoursePackage tCoursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); if (tCoursePackage.getType() != 1) { continue; @@ -1396,121 +1411,46 @@ // 添加购买课时 paytyoe为7 // 排课可期 判断课程时间段 添加排课表 添加上课记录表 // 找到原来的课包 扣课时 TCoursePackagePayment tCoursePackagePayment = this.baseMapper.selectById(req.getOldCourseId()); if (req.getNum() > tCoursePackagePayment.getLaveClassHours()) { CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(req.getOldCourseId()); if (req.getNum() > coursePackageOrderStudent.getLaveClassHours()) { return ResultUtil.error("当前课包课时数不足"); } tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours() - req.getNum()); this.baseMapper.updateHoursById(tCoursePackagePayment.getId(), -req.getNum()); TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId()); coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - req.getNum()); coursePackageOrderStudentService.updateById(coursePackageOrderStudent); //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录 List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>() .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1) .eq("type", 1).orderByDesc("classDate")); //已经排课但没有使用的课时数量 int number = list1.size() * coursePackage.getNeedNum(); Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours(); //需要删除多余的排课记录 if(number > laveClassHours1){ int n = number - laveClassHours1; for (int i = 0; i < n; i++) { CoursePackageScheduling coursePackageScheduling = list1.get(i); coursePackageSchedulingService.getBaseMapper().deleteById(coursePackageScheduling.getId()); List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", tCoursePackagePayment.getStudentId()).eq("coursePackageId", tCoursePackagePayment.getCoursePackageId())); List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); List<CoursePackageScheduling> list = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id", collect).le("classDate", new Date())); coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect).le("classDate", new Date())); List<Long> collect1 = list.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()); // coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id",collect)); coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", tCoursePackagePayment.getStudentId()).eq("coursePackageId", tCoursePackagePayment.getCoursePackageId())); TCoursePackage tCoursePackage = tcpmapper.selectById(req.getCourseId()); String classWeeks = tCoursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", tCoursePackagePayment.getCoursePackageId()).eq("studentId", tCoursePackagePayment.getStudentId())); Date today = new Date(); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, -1); today = calendar.getTime(); Integer laveClassHours = pay.getLaveClassHours(); Integer codeTime = tCoursePackage.getCodeTime(); Integer can = laveClassHours / codeTime; int count = 0; String[] split = tCoursePackage.getClassStartTime().split(","); String[] split1 = tCoursePackage.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date[] dates = generateDateArray(14, today); for (Date date : dates) { if (count == can) { break; } int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date); if (week.contains(wei)) { for (int i1 = 0; i1 < split.length; i1++) { if (count == can) { break; } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); Date parse = format1.parse(format.format(date) + " " + split[i1]); Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); coursePackageScheduling.setClassDate(parse); coursePackageScheduling.setEndDate(parse1); coursePackageScheduling.setStatus(1); coursePackageSchedulingService.save(coursePackageScheduling); CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(pay.getAppUserId()); student1.setStudentId(pay.getStudentId()); student1.setCoursePackageId(pay.getCoursePackageId()); student1.setCoursePackagePaymentId(pay.getId()); student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); student1.setInsertTime(new Date()); coursePackageStudentService.save(student1); count++; } coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>() .eq("coursePackageSchedulingId", coursePackageScheduling.getId())); } } // TCoursePackage tCoursePackage = tcpmapper.selectById(req.getCourseId()); // 添加课包 TCoursePackagePayment tCoursePackagePayment1 = new TCoursePackagePayment(); // tCoursePackagePayment1.setAppUserId(userId); // Student student = studentClient.queryDefaultStudent(userId); // // student ID // // Integer sId=null; // if(student!=null){ // tCoursePackagePayment1.setStudentId(student.getId()); // sId=student.getId(); // } tCoursePackagePayment1.setCoursePackageId(tCoursePackage.getId()); tCoursePackagePayment1.setStudentId(req.getStuId()); tCoursePackagePayment1.setPayType(7); tCoursePackagePayment1.setClassHours(req.getNum()); tCoursePackagePayment1.setOriginalPrice(0.0); tCoursePackagePayment1.setTotalClassHours(req.getNum()); tCoursePackagePayment1.setLaveClassHours(req.getNum()); tCoursePackagePayment1.setAbsencesNumber(0); tCoursePackagePayment1.setPayUserType(1); tCoursePackagePayment1.setPayStatus(2); tCoursePackagePayment1.setPayUserId(userId); tCoursePackagePayment1.setStatus(1); tCoursePackagePayment1.setAppUserId(userId); tCoursePackagePayment1.setState(1); tCoursePackagePayment1.setInsertTime(new Date()); this.baseMapper.insert(tCoursePackagePayment1); // 找出课包时间段 // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String classStartTime = tCoursePackage.getClassStartTime(); String classEndTime = tCoursePackage.getClassEndTime(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String classStartTime = coursePackage.getClassStartTime(); String classEndTime = coursePackage.getClassEndTime(); String[] split5 = classStartTime.split(","); String[] split6 = classEndTime.split(","); List<String> time = req.getTime(); for (String s : time) { for (int i = 0; i < split5.length; i++) { CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); coursePackageScheduling.setType(3); coursePackageScheduling.setAppUserId(userId); coursePackageScheduling.setStudentId(req.getStuId()); coursePackageScheduling.setCoursePackageId(coursePackage.getId()); try { Date parse = format.parse(s + " " + split5[i]); Date parse1 = format.parse(s + " " + split6[i]); @@ -1522,8 +1462,8 @@ CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(userId); student1.setStudentId(req.getStuId()); student1.setCoursePackageId(tCoursePackage.getId()); student1.setCoursePackagePaymentId(tCoursePackagePayment1.getId()); student1.setCoursePackageId(coursePackage.getId()); student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId()); student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); @@ -1538,18 +1478,10 @@ } // 2.0 // TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); // tCourseInfoRecord.setUserId(userId); // tCourseInfoRecord.setCourseId(req.getCourseId()); // tCourseInfoRecord.setName("体验购课"); // tCourseInfoRecord.setNum(req.getNum()); // tCourseInfoRecord.setTime(new Date()); // tCourseInfoRecord.setType(2); // appuClient.addCourseInfoRecord(tCourseInfoRecord); CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setPaymentId(tCoursePackagePayment.getId()); courseCounsum.setPaymentId(coursePackageOrderStudent.getId()); courseCounsum.setChangeType(0); courseCounsum.setNum(req.getNum()); courseCounsum.setInsertTime(new Date()); @@ -1558,7 +1490,7 @@ courseCounsumService.save(courseCounsum); if (tCoursePackagePayment.getLaveClassHours() <= 3) { if (coursePackageOrderStudent.getLaveClassHours() <= 3) { Integer appUserId = userId; //调用推送 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1001,7 +1001,7 @@ coursePackageOrder1.setOrderNumber(transaction_id); coursePackageOrder1.setAppUserId(null); coursePackageOrderService.updateById(coursePackageOrder1); addCoursePackageOrderStudent(coursePackageOrder1, coursePackagePaymentConfig); addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); break; } if ("USERPAYING".equals(s)) { @@ -1091,7 +1091,7 @@ coursePackageOrder1.setOrderNumber(tradeNo); coursePackageOrder1.setAppUserId(null); coursePackageOrderService.updateById(coursePackageOrder1); addCoursePackageOrderStudent(coursePackageOrder1, coursePackagePaymentConfig); addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); break; } if ("WAIT_BUYER_PAY".equals(s)) { @@ -1147,7 +1147,7 @@ coursePackageOrder.setInsertTime(new Date()); coursePackageOrderService.save(coursePackageOrder); addCoursePackageOrderStudent(coursePackageOrder, coursePackagePaymentConfig); addCoursePackageOrderStudent(coursePackageOrder.getId(), coursePackagePaymentConfig); return ResultUtil.success(); } @@ -1172,7 +1172,7 @@ coursePackageOrderService.updateById(coursePackageOrder1); CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(attach); addCoursePackageOrderStudent(coursePackageOrder1, coursePackagePaymentConfig); addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig); return ResultUtil.success(); } @@ -1180,10 +1180,10 @@ /** * 支付成功后添加学员课时数据 * * @param coursePackageOrder * @param coursePackagePaymentConfig */ public void addCoursePackageOrderStudent(CoursePackageOrder coursePackageOrder, CoursePackagePaymentConfig coursePackagePaymentConfig) { public void addCoursePackageOrderStudent(Long coursePackageOrderId, CoursePackagePaymentConfig coursePackagePaymentConfig) { CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(coursePackageOrderId); // 发放优惠券 userCouponClient.sendUserCoupon(new SendCouponReq(coursePackageOrder.getAppUserId(), coursePackagePaymentConfig.getCouponIds())); @@ -1211,6 +1211,7 @@ calendar.setTime(new Date()); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); coursePackageOrderStudent.setUseTime(calendar.getTime()); coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent); //开始排课 addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent); @@ -1223,15 +1224,15 @@ calendar.setTime(useTime.compareTo(new Date()) < 0 ? new Date() : useTime); calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays); coursePackageOrderStudent.setUseTime(calendar.getTime()); coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent); //中间断课,没有连续续费的情况需要重新排课 if (useTime.compareTo(new Date()) < 0) { addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent); } } coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent); CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setPaymentId(coursePackageOrder.getId()); courseCounsum.setPaymentId(coursePackageOrderStudent.getId()); courseCounsum.setChangeType(1); courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); courseCounsum.setInsertTime(new Date()); @@ -1301,6 +1302,9 @@ laveClassHours -= codeTime; CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setType(tCoursePackage.getType()); coursePackageScheduling.setAppUserId(userId); coursePackageScheduling.setStudentId(sId); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); Date parse = format1.parse(format.format(time) + " " + split[j]); Date parse1 = format1.parse(format.format(time) + " " + split1[j]); @@ -1360,6 +1364,9 @@ break; } CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setType(tCoursePackage.getType()); coursePackageScheduling.setAppUserId(userId); coursePackageScheduling.setStudentId(sId); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); Date parse = format1.parse(format.format(time) + " " + split[j]); Date parse1 = format1.parse(format.format(time) + " " + split1[j]); cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -75,7 +75,7 @@ laveClassHours, absencesNumber, `status` from t_course_package_payment where payStatus = 2 and state = 1 from t_course_package_order_student where state = 1 <if test="null != coursePackageId"> and coursePackageId = #{coursePackageId} </if> cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -260,17 +260,19 @@ //查询学员信息 TStudentDto tStudentDto = itStudentService.listOne(tStudentId); model.addAttribute("item", tStudentDto); if (tStudentDto.getLateralSurface()!=null) { if (tStudentDto.getLateralSurface()!=null&&!tStudentDto.getLateralSurface().equals("")) { String[] pics = tStudentDto.getLateralSurface().split(";"); model.addAttribute("pic1", pics[0]); System.out.println("=====pic1==" + pics[0]); if (pics.length > 1) { model.addAttribute("pic2", pics[1]); System.out.println("=====pic2==" + pics[1]); } if (pics.length > 2) { model.addAttribute("pic3", pics[2]); System.out.println("=====pic3==" + pics[2]); if (pics.length>0) { model.addAttribute("pic1", pics[0]); System.out.println("=====pic1==" + pics[0]); if (pics.length > 1) { model.addAttribute("pic2", pics[1]); System.out.println("=====pic2==" + pics[1]); } if (pics.length > 2) { model.addAttribute("pic3", pics[2]); System.out.println("=====pic3==" + pics[2]); } } } @@ -306,7 +308,7 @@ model.addAttribute("item", tStudentDto); if (tStudentDto.getLateralSurface()!=null) { if (tStudentDto.getLateralSurface()!=null&&!tStudentDto.equals("")) { String[] pics = tStudentDto.getLateralSurface().split(";"); model.addAttribute("pic1", pics[0]); System.out.println("=====pic1==" + pics[0]); @@ -434,8 +436,6 @@ List<Map<String,Object>> maps = studentClient.listCom(id); return maps; } @@ -450,7 +450,8 @@ evaluateStudent.setImgs(image); // evaluateStudent.setInsertTime(new Date()); User user = UserExt.getUser(); evaluateStudent.setCoachId(user.getId()); appUserClient.save(evaluateStudent); // evaluateStudentService.save(evaluateStudent); cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html
@@ -1369,7 +1369,7 @@ "actionType": "dialog", "dialog": { "type": "dialog", "title": "弹框标题", "title": "课时变更记录", "body": [ { "type": "form", @@ -1431,7 +1431,7 @@ { "type": "input-date-range", "name": "start", "label": "上传时间", "label": "时间", "id": "u:b2fb064aa9ac", "inputFormat": "YYYY-MM-DD HH:mm", "format": "YYYY-MM-DD HH:mm", @@ -1440,7 +1440,7 @@ }, { "type": "select", "label": "是否启用", "label": "变更类型", "name": "changeType", "options": [ { cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -682,6 +682,19 @@ } @Autowired private IUserService userService; @ResponseBody @PostMapping("/base/site/queryUserName") public User queryUserName(@RequestBody Integer coachId){ User byId = userService.getById(coachId); return byId; } @ResponseBody @PostMapping("/base/site/queryOperator") public OperatorUser queryOperator(@RequestBody List<Integer> stores) { cloud-server-other/src/main/java/com/dsh/other/mapper/UserMapper.java
New file @@ -0,0 +1,24 @@ package com.dsh.other.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.other.model.User; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; /** * <p> * 管理员表 Mapper 接口 * </p> * * @author stylefeng * @since 2017-07-11 */ public interface UserMapper extends BaseMapper<User> { } cloud-server-other/src/main/java/com/dsh/other/model/User.java
New file @@ -0,0 +1,270 @@ package com.dsh.other.model; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import java.io.Serializable; import java.util.Date; /** * <p> * 管理员表 * </p> * * @author stylefeng * @since 2017-07-11 */ @TableName("sys_user") public class User extends Model<User> { private static final long serialVersionUID = 1L; /** * 主键id */ @TableId(value="id", type= IdType.AUTO) private Integer id; /** * 头像 */ private String avatar; /** * 账号 */ private String account; /** * 密码 */ private String password; /** * md5密码盐 */ private String salt; /** * 名字 */ private String name; /** * 生日 */ private Date birthday; /** * 性别(1:男 2:女) */ private Integer sex; /** * 电子邮件 */ private String email; /** * 电话 */ private String phone; /** * 角色id */ private String roleid; /** * 部门id */ private Integer deptid; /** * 状态(1:启用 2:冻结 3:删除) */ private Integer status; /** * 创建时间 */ private Date createtime; /** * 保留字段 */ private Integer version; /** * 对象类型(1=平台,2=城市管理员,3=门店) */ @TableField("objectType") private Integer objectType; /** * objectId */ @TableField("objectId") private Integer objectId; @TableField("idCard") private String idCard; public String getIdCard() { return idCard; } public void setIdCard(String idCard) { this.idCard = idCard; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getAvatar() { return avatar; } public void setAvatar(String avatar) { this.avatar = avatar; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getSalt() { return salt; } public void setSalt(String salt) { this.salt = salt; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getRoleid() { return roleid; } public void setRoleid(String roleid) { this.roleid = roleid; } public Integer getDeptid() { return deptid; } public void setDeptid(Integer deptid) { this.deptid = deptid; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public Date getCreatetime() { return createtime; } public void setCreatetime(Date createtime) { this.createtime = createtime; } public Integer getVersion() { return version; } public void setVersion(Integer version) { this.version = version; } public Integer getObjectType() { return objectType; } public void setObjectType(Integer objectType) { this.objectType = objectType; } public Integer getObjectId() { return objectId; } public void setObjectId(Integer objectId) { this.objectId = objectId; } @Override protected Serializable pkVal() { return this.id; } @Override public String toString() { return "User{" + "id=" + id + ", avatar=" + avatar + ", account=" + account + ", password=" + password + ", salt=" + salt + ", name=" + name + ", birthday=" + birthday + ", sex=" + sex + ", email=" + email + ", phone=" + phone + ", roleid=" + roleid + ", deptid=" + deptid + ", status=" + status + ", createtime=" + createtime + ", version=" + version + "}"; } } cloud-server-other/src/main/java/com/dsh/other/service/IUserService.java
New file @@ -0,0 +1,23 @@ package com.dsh.other.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.other.model.User; import org.apache.ibatis.annotations.Param; import java.util.List; import java.util.Map; /** * <p> * 管理员表 服务类 * </p> * * @author stylefeng123 * @since 2018-02-22 */ public interface IUserService extends IService<User> { } cloud-server-other/src/main/java/com/dsh/other/service/impl/UserServiceImpl.java
New file @@ -0,0 +1,29 @@ package com.dsh.other.service.impl; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.other.mapper.UserMapper; import com.dsh.other.model.User; import com.dsh.other.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** * <p> * 管理员表 服务实现类 * </p> * * @author stylefeng123 * @since 2018-02-22 */ @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService { } cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java
@@ -36,7 +36,8 @@ long l = time + 1800 * 1000; if (System.currentTimeMillis() > l) { siteBooking.setStatus(5); siteBookingMapper.deleteById(siteBooking.getId()); siteBookingMapper.updateById(siteBooking); // siteBookingMapper.deleteById(siteBooking.getId()); } } //定时修改赛事状态