cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CourseOfStoreVo.java
@@ -3,6 +3,9 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; import java.util.List; @Data public class CourseOfStoreVo { @@ -19,7 +22,7 @@ @ApiModelProperty(value = "课包结束时间") private String classEndTime; @ApiModelProperty(value = "课包 周列表 分号隔开") @ApiModelProperty(value = "课包 周列表 分号隔开1;2;3;4;5") private String classWeeks; @ApiModelProperty(value = "门店id") @@ -34,10 +37,23 @@ @ApiModelProperty(value = "纬度") private String lon; public CourseOfStoreVo(Integer courseId, String courseName, Integer storeId, String storeName) { public CourseOfStoreVo(Integer courseId, String courseName, Integer storeId, String storeName,String classWeeks) { this.courseId = courseId; this.courseName = courseName; this.storeId = storeId; this.storeName = storeName; this.classWeeks = classWeeks; } @ApiModelProperty(value = "周列表") private List<Integer> classWeekList; public List<Integer> getClassWeekList() { String[] split = this.classWeeks.split(";"); List<Integer> integers = new ArrayList<>(); for (String s : split) { int num = Integer.parseInt(s); integers.add(num); } return integers; } } cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/CourseVenue.java
@@ -8,6 +8,9 @@ @Data public class CourseVenue { @ApiModelProperty(value = "门店Id") private Integer storeId; @ApiModelProperty(value = "门店名称") private String areaName; @@ -18,7 +21,7 @@ private List<CouList> courses; @Data static class CouList{ public static class CouList{ @ApiModelProperty(value = "课包ID") Integer courseID; cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -17,6 +17,7 @@ import com.dsh.account.model.LoginSMSCodeVo; import com.dsh.account.model.LoginWeChatVo; import com.dsh.account.model.vo.classDetails.CourseVenue; import com.dsh.account.model.vo.classDetails.ExerciseVideo; import com.dsh.account.model.vo.classDetails.RegisteredCourse; import com.dsh.account.model.vo.classDetails.WeekedCourse; import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo; @@ -28,7 +29,6 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -45,7 +45,7 @@ public class TAppUserServiceImpl extends ServiceImpl<TAppUserMapper, TAppUser> implements TAppUserService { @Resource @Autowired private TStudentMapper tsmapper; @Resource @@ -63,21 +63,21 @@ @Autowired private JwtTokenUtil jwtTokenUtil; @Resource @Autowired private CoursePaymentClient paymentClient; @Override public ClassInfoVo queryUserOfStus(Integer id,String longitude,String latitude) { public ClassInfoVo queryUserOfStus(Integer id,String latitude,String longitude) { TAppUser tAppUser = this.baseMapper.selectById(id); ClassInfoVo classInfoVo = new ClassInfoVo(); if (ToolUtil.isNotEmpty(tAppUser)){ List<TStudent> tStudents = tsmapper.selectList(new QueryWrapper<TStudent>() .eq("appUserId",tAppUser.getId()) .eq("state",1) .eq("isDefault",1)); ClassInfoVo classInfoVo = new ClassInfoVo(); if (tStudents.size() > 0 ){ TStudent tStudent = tStudents.get(0); classInfoVo.setIsThere(1); @@ -115,25 +115,12 @@ classInfoVo.setRemainingNums(remain); List<CourseOfStoreVo> storeOfCourses = paymentClient.getStoreOfCourses(); classInfoVo.setWeekCourseList(dealDatas(storeOfCourses,longitude,latitude)); List<WeekedCourse> courses = new ArrayList<>(); List<ExerciseVideo> videos = new ArrayList<>(); if (storeOfCourses.size() > 0){ Map<Integer, List<CourseOfStoreVo>> map = storeOfCourses.stream().collect(Collectors.groupingBy(CourseOfStoreVo::getStoreId)); for (Map.Entry<Integer, List<CourseOfStoreVo>> integerListEntry : map.entrySet()) { WeekedCourse weekedCourse = new WeekedCourse(); Integer key = integerListEntry.getKey(); System.out.println(key); List<CourseOfStoreVo> value = integerListEntry.getValue(); System.out.println(value); } } // classInfoVo.setWeekCourseList(); classInfoVo.setExerciseVideoList(videos); }else { classInfoVo.setIsThere(2); List<TImgConfig> tImgConfigs = configClient.getNoneStuImgs(); @@ -142,51 +129,54 @@ } } } return null; return classInfoVo; } /** * 处理数据 * @param storeOfCourses * @param longitude * @param latitude * @return */ public List<WeekedCourse> dealDatas(List<CourseOfStoreVo> storeOfCourses){ public List<WeekedCourse> dealDatas(List<CourseOfStoreVo> storeOfCourses,String longitude ,String latitude){ List<WeekedCourse> weekedCourses = new ArrayList<>(); int weekStr = LocalDateTimeUtils.getWeekStr(); for (int i = 1; i < 8; i++) { if (weekStr == i){ for (CourseOfStoreVo storeOfCours : storeOfCourses) { String[] split = storeOfCours.getClassWeeks().split(";"); List<String> list = Arrays.asList(split); if (list.contains(weekStr)){ WeekedCourse weekedCourse = new WeekedCourse(); weekedCourse.setIsToday(1); weekedCourse.setWeekNum(weekStr); weekedCourse.setWeekStr(WeeksEnum.getStr(weekStr)); String weekOfDays = LocalDateTimeUtils.getWeekOfDays(weekStr); weekedCourse.setWeekNum(i); weekedCourse.setWeekStr(WeeksEnum.getStr(i)); String weekOfDays = LocalDateTimeUtils.getWeekOfDays(i); weekedCourse.setDayStr(weekOfDays); List<CourseVenue> courseVenues = new ArrayList<>(); // courseVenues.add(); weekedCourse.setDetails(courseVenues); } } }else { for (CourseOfStoreVo storeOfCours : storeOfCourses) { String[] split = storeOfCours.getClassWeeks().split(";"); List<String> list = Arrays.asList(split); if (list.contains(i)){ WeekedCourse weekedCourse = new WeekedCourse(); if (weekStr == i) { weekedCourse.setIsToday(1); weekedCourse.setWeekNum(weekStr); weekedCourse.setWeekStr(WeeksEnum.getStr(weekStr)); String weekOfDays = LocalDateTimeUtils.getWeekOfDays(weekStr); weekedCourse.setDayStr(weekOfDays); } else { weekedCourse.setIsToday(2); } Map<Integer, List<CourseOfStoreVo>> map = storeOfCourses.stream().collect(Collectors.groupingBy(CourseOfStoreVo::getStoreId)); for (Map.Entry<Integer, List<CourseOfStoreVo>> integerListEntry : map.entrySet()) { List<CourseOfStoreVo> value = integerListEntry.getValue(); CourseVenue courseVenue = new CourseVenue(); courseVenue.setStoreId(value.get(0).getStoreId()); courseVenue.setAreaName(value.get(0).getStoreName()); courseVenue.setSiteDistance(LonlatUtils.distance(Double.parseDouble(longitude), Double.parseDouble(latitude), Double.parseDouble(value.get(0).getLon()), Double.parseDouble(value.get(0).getLat())) + ""); List<CourseVenue.CouList> courses = new ArrayList<>(); for (CourseOfStoreVo courseOfStoreVo : value) { CourseVenue.CouList couList = new CourseVenue.CouList(); couList.setCourseID(courseOfStoreVo.getCourseId()); couList.setCourseName(courseOfStoreVo.getCourseName()); couList.setTimeStr(courseOfStoreVo.getClassStartTime() + "-" + courseOfStoreVo.getClassEndTime()); couList.setDetail(""); courses.add(couList); } courseVenue.setCourses(courses); courseVenues.add(courseVenue); } } weekedCourse.setDetails(courseVenues); weekedCourses.add(weekedCourse); } return weekedCourses; } cloud-server-account/src/main/java/com/dsh/account/util/LonlatUtils.java
New file @@ -0,0 +1,32 @@ package com.dsh.account.util; /** * 经纬度工具类 */ public class LonlatUtils { public static final double R = 6371; // Earth radius in kilometers /** * 计算两个经纬度之间的直线距离 * @param lat1 经度1 * @param lon1 纬度1 * @param lat2 经度2 * @param lon2 纬度2 * @return 两者距离 */ public static double distance(double lat1, double lon1, double lat2, double lon2) { double dLat = Math.toRadians(lat2 - lat1); double dLon = Math.toRadians(lon2 - lon1); double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * Math.sin(dLon / 2) * Math.sin(dLon / 2); double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); double distance = R * c; return distance; } } cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
New file @@ -0,0 +1,50 @@ package com.dsh.course.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.entity.TCourse; import com.dsh.course.feignclient.model.ExerciseVideo; import com.dsh.course.service.TCourseService; import io.swagger.annotations.Api; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.ArrayList; import java.util.List; @Api @CrossOrigin @RestController @RequestMapping("") public class CourseController { private Logger logger = LoggerFactory.getLogger("business-log"); @Autowired private TCourseService courseService; @PostMapping("/course/queryList") public List<ExerciseVideo> queryStuCourseAfterVideos(List<Integer> courseIds){ List<ExerciseVideo> videos = new ArrayList<>(); List<TCourse> list = courseService.list(new QueryWrapper<TCourse>() .in("id", courseIds) .eq("state",1)); if (list.size() > 0){ list.forEach( vs ->{ ExerciseVideo video = new ExerciseVideo(); video.setVideoUrl(vs.getCourseVideo()); video.setVideoName(vs.getName()); video.setVideoCoverImgUrl(vs.getCoverDrawing()); videos.add(video); }); } return videos; } } cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -5,16 +5,13 @@ import com.dsh.course.entity.TCoursePackagePayment; import com.dsh.course.feignclient.model.CourseOfStoreVo; import com.dsh.course.feignclient.model.StuCourseResp; import com.dsh.course.service.TCoursePackagePaymentService; import com.dsh.course.service.TCoursePackageService; import com.dsh.course.servs.CoursePackagePaymentRepository; import io.swagger.annotations.Api; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @@ -27,8 +24,9 @@ private Logger logger = LoggerFactory.getLogger("business-log"); @Autowired private CoursePackagePaymentRepository coursePackagePaymentRepository; private TCoursePackagePaymentService packagePaymentService; @Autowired private TCoursePackageService tcpService; @@ -39,9 +37,9 @@ * @return 课包列表 */ @PostMapping("/coursePack/queryPayment") public List<StuCourseResp> getStuCoursePackagePayment(Integer stuId){ public List<StuCourseResp> getStuCoursePackagePayment(@RequestBody Integer stuId){ List<StuCourseResp> resps = new ArrayList<>(); List<TCoursePackagePayment> byUserId = coursePackagePaymentRepository.findByUserId(stuId); List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(stuId); if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); @@ -51,6 +49,7 @@ resp.setTotalCourseNums(tCoursePackagePayment.getTotalClassHours()); resp.setResidueNums(tCoursePackagePayment.getLaveClassHours()); resp.setDeductionNums(tCoursePackagePayment.getTotalClassHours()-tCoursePackagePayment.getLaveClassHours()); resps.add(resp); } } return resps; @@ -62,6 +61,18 @@ */ @PostMapping("/coursePack/storeOfCourse") public List<CourseOfStoreVo> getStuCourseWithStores(){ List<CourseOfStoreVo> courseOfStoreVos = tcpService.queryStoreOfCourse(); if (courseOfStoreVos.size() > 0){ for (CourseOfStoreVo courseOfStoreVo : courseOfStoreVos) { String[] split = courseOfStoreVo.getClassWeeks().split(";"); List<Integer> integers = new ArrayList<>(); for (String s : split) { int num = Integer.parseInt(s); integers.add(num); } courseOfStoreVo.setClassWeekList(integers); } } return tcpService.queryStoreOfCourse(); } cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
@@ -1,14 +1,14 @@ package com.dsh.course.entity; import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.math.BigDecimal; import java.util.Date; /** * <p> @@ -23,7 +23,7 @@ @Accessors(chain = true) @TableName("t_course_package_payment") public class TCoursePackagePayment { private static final long serialVersionUID = 1L; /** * 主键 cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseListClient.java
New file @@ -0,0 +1,15 @@ package com.dsh.course.feignclient; import com.dsh.course.feignclient.model.ExerciseVideo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import java.util.List; @FeignClient(value = "mb-cloud-course") public interface CourseListClient { @PostMapping("/course/queryList") List<ExerciseVideo> queryStuCourseAfterVideos(List<Integer> courseIds); } cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseOfStoreVo.java
@@ -3,6 +3,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data public class CourseOfStoreVo { @@ -34,4 +36,6 @@ @ApiModelProperty(value = "纬度") private String lon; private List<Integer> classWeekList; } cloud-server-course/src/main/java/com/dsh/course/feignclient/model/ExerciseVideo.java
New file @@ -0,0 +1,17 @@ package com.dsh.course.feignclient.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class ExerciseVideo { @ApiModelProperty(value = "课后视频封面图链接") private String videoCoverImgUrl; @ApiModelProperty(value = "课后视频链接") private String videoUrl; @ApiModelProperty(value = "课后视频标题") private String videoName; } cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java
@@ -2,6 +2,9 @@ import com.dsh.course.entity.TCoursePackagePayment; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -13,4 +16,6 @@ */ public interface TCoursePackagePaymentMapper extends BaseMapper<TCoursePackagePayment> { List<TCoursePackagePayment> queryAllCoursePackage(@Param("stuId") Integer stuId); } cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java
@@ -3,6 +3,8 @@ import com.dsh.course.entity.TCoursePackagePayment; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** * <p> * 用户课程包购买记录 服务类 @@ -13,4 +15,6 @@ */ public interface TCoursePackagePaymentService extends IService<TCoursePackagePayment> { List<TCoursePackagePayment> queryAllCoursePackage(Integer stuId); } cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; import java.util.List; /** * <p> * 用户课程包购买记录 服务实现类 @@ -17,4 +19,8 @@ @Service public class TCoursePackagePaymentServiceImpl extends ServiceImpl<TCoursePackagePaymentMapper, TCoursePackagePayment> implements TCoursePackagePaymentService { @Override public List<TCoursePackagePayment> queryAllCoursePackage(Integer stuId) { return this.baseMapper.queryAllCoursePackage(stuId); } } cloud-server-course/src/main/java/com/dsh/course/servs/CoursePackagePaymentRepository.java
File was deleted cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
@@ -25,5 +25,25 @@ <result column="state" property="state" /> <result column="insertTime" property="insertTime" /> </resultMap> <select id="queryAllCoursePackage" resultType="com.dsh.course.entity.TCoursePackagePayment"> SELECT * FROM t_course_package_payment UNION ALL SELECT * FROM t_course_package_payment1 UNION ALL SELECT * FROM t_course_package_payment2 UNION ALL SELECT * FROM t_course_package_payment3 UNION ALL SELECT * FROM t_course_package_payment4 UNION ALL SELECT * FROM t_course_package_payment5 WHERE user_id = #{stuId} </select> </mapper> cloud-server-other/src/main/resources/mapper/StoreConfigMapper.xml
@@ -1,8 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dsh.other.mapper.StoreConfigMapper"> <!-- 开启二级缓存 --> <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/> </mapper> cloud-server-other/src/main/resources/mapper/StoreMapper.xml
@@ -2,7 +2,5 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dsh.other.mapper.StoreMapper"> <!-- 开启二级缓存 --> <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/> </mapper>