cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
@@ -1,11 +1,12 @@ package com.dsh.account.controller; import com.dsh.account.feignclient.other.model.StoreDetailList; import com.dsh.account.feignclient.other.model.StoreInfo; import com.dsh.account.feignclient.other.model.SysNotice; import com.dsh.account.model.vo.exploreDetail.ExploreDatasVo; import com.dsh.account.model.vo.exploreDetail.LonLatRequest; import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo; import com.dsh.account.model.vo.exploreDetails.QuestionIns; import com.dsh.account.model.vo.exploreDetail.QuestionIns; import com.dsh.account.model.vo.exploreDetail.StoreDetailsVo; import com.dsh.account.service.TStudentService; import com.dsh.account.util.ResultUtil; import io.swagger.annotations.ApiImplicitParam; @@ -33,7 +34,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil<ExploreDatasVo> indexOfExploreDetail(LonLatRequest llrequest){ public ResultUtil<List<StoreInfo>> indexOfExploreDetail(LonLatRequest llrequest){ try { return ResultUtil.success(tsService.queryIndexOfExplores(llrequest)); }catch (Exception e){ @@ -70,7 +71,7 @@ @ResponseBody @PostMapping("/base/exploreWP/exceptionList") @ApiOperation(value = "联系客服-常见问题列表", tags = {"APP-探索玩湃"}) public ResultUtil<QuestionDetailsVo> queryFrequentlyAskedQuestionDetails(){ public ResultUtil<List<QuestionIns>> queryFrequentlyAskedQuestionDetails(){ try { return ResultUtil.success(tsService.queryQuestionData()); }catch (Exception e){ @@ -105,4 +106,39 @@ } @ResponseBody @PostMapping("/base/exploreWP/storeList") @ApiOperation(value = "联系客服-门店列表", tags = {"APP-探索玩湃"}) @ApiImplicitParams({ @ApiImplicitParam(value = "距离数值", name = "space", required = true, dataType = "int"), @ApiImplicitParam(value = "城市code", name = "space", required = true, dataType = "string"), @ApiImplicitParam(value = "纬度", name = "latitude", required = true, dataType = "string"), @ApiImplicitParam(value = "经度", name = "longitude", required = true, dataType = "string"), }) public ResultUtil<List<StoreDetailList>> getStoreListCon(Integer space,String cityCode,String latitude,String longitude){ try { return ResultUtil.success(tsService.queryStoreList(space,cityCode,latitude,longitude)); }catch (Exception e){ return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/base/exploreWP/storeDetail") @ApiOperation(value = "联系客服-门店详情", tags = {"APP-探索玩湃"}) @ApiImplicitParams({ @ApiImplicitParam(value = "门店id", name = "storeId", required = true, dataType = "int"), }) public ResultUtil<StoreDetailsVo> getStoreDetails(Integer storeId){ try { return ResultUtil.success(tsService.getStoreDetail(storeId)); }catch (Exception e){ return ResultUtil.runErr(); } } } cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseListClient.java
New file @@ -0,0 +1,21 @@ package com.dsh.account.feignclient.course; import com.dsh.account.model.vo.classDetails.ExerciseVideo; import com.dsh.account.model.vo.exploreDetail.StoreOfCourseVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @FeignClient(value = "mb-cloud-course") public interface CourseListClient { @PostMapping("/base/cancelSource/queryList") List<ExerciseVideo> queryStuCourseAfterVideos(@RequestBody List<Integer> courseIds); @PostMapping("/base/coursePack/courseList") List<StoreOfCourseVo> getStoreOfCourseList(@RequestBody Integer storeId); } cloud-server-account/src/main/java/com/dsh/account/feignclient/other/QuestionClient.java
@@ -1,17 +1,18 @@ package com.dsh.account.feignclient.other; import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo; import com.dsh.account.model.vo.exploreDetails.QuestionIns; import com.dsh.account.model.vo.exploreDetail.QuestionIns; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @FeignClient(value = "mb-cloud-other") public interface QuestionClient { @PostMapping("/base/notice/queryQuestionDetails") QuestionDetailsVo getSysQuestionDetails(); List<QuestionIns> getSysQuestionDetails(); @PostMapping("/base/notice/queryQuestion") QuestionIns getSysQuestionBuId(@RequestParam("quesId") Integer quesId); 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.feignclient.other.model.SiteBooking; import com.dsh.account.model.vo.exploreDetail.SiteVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -19,4 +20,7 @@ List<SiteBooking> wanpaiGoldSiteBookingList(@RequestBody Integer appUserId); @PostMapping("/base/site/getNewAddSiteList") List<SiteVo> getAppUserSiteList(); } cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java
@@ -35,7 +35,15 @@ @PostMapping("/base/protocol/storeDetail/nearbyStore") List<StoreInfo> getAllNearbyStoreList(@RequestBody GetAllNearbyStoreList getAllNearbyStoreList); @PostMapping("/base/protocol/storeDetail/citycodeLoLa") List<StoreDetailList> getQueryStoreList(@RequestBody StoreOfCitycodeResp citycodeResp); @PostMapping("/base/protocol/storeDetail/storeOfLonLat") List<StoreLonLatList> getAllStoreLonLats(@RequestBody GetAllNearbyStoreList getAllNearbyStoreList); /** * 根据门店id获取门店信息 * @param id * @return */ @PostMapping("/store/queryStoreById") Store queryStoreById(Integer id); } cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreDetailList.java
New file @@ -0,0 +1,33 @@ package com.dsh.account.feignclient.other.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class StoreDetailList { @ApiModelProperty(value = "门店id") private Integer storeId; @ApiModelProperty(value = "门店封面图") private String storeImg; @ApiModelProperty(value = "门店名称") private String storeName; @ApiModelProperty(value = "门店详细地址") private String storeAddress; @ApiModelProperty(value = "门店联系电话") private String storePhone; @ApiModelProperty(value = "门店距离当前位置 的距离") private long storeDistance; @ApiModelProperty(value = "门店营业时间范围") private String storeTime; @ApiModelProperty(value = "门店信息") private String storeInfo; } cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreInfo.java
@@ -22,4 +22,10 @@ @ApiModelProperty(value = "门店详细地址") private String storeAddr; @ApiModelProperty(value = "经度") String longitude; @ApiModelProperty(value = "纬度") String latitude; } cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreLonLatList.java
@@ -15,5 +15,8 @@ @ApiModelProperty(value = "纬度") String latitude; @ApiModelProperty(value = "门店标题") String title; } cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreOfCitycodeResp.java
New file @@ -0,0 +1,22 @@ package com.dsh.account.feignclient.other.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class StoreOfCitycodeResp { @ApiModelProperty(value = "距离") private Integer space; @ApiModelProperty(value = "城市code") private String cityCode; @ApiModelProperty(value = "纬度") private String latitude; @ApiModelProperty(value = "经度") private String longitude; } cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/QuestionDetailsVo.java
File was renamed from cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionDetailsVo.java @@ -1,4 +1,4 @@ package com.dsh.account.model.vo.exploreDetails; package com.dsh.account.model.vo.exploreDetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/QuestionIns.java
File was renamed from cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetails/QuestionIns.java @@ -1,4 +1,4 @@ package com.dsh.account.model.vo.exploreDetails; package com.dsh.account.model.vo.exploreDetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/SiteVo.java
New file @@ -0,0 +1,24 @@ package com.dsh.account.model.vo.exploreDetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class SiteVo { @ApiModelProperty(value = "场地id") private Integer siteId; @ApiModelProperty(value = "场地名称") private String siteName; @ApiModelProperty(value = "场地类型:足球场") private String siteType; @ApiModelProperty(value = "预约时间段") private String siteTime; @ApiModelProperty(value = "价格") private double price; } cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/StoreDetailsVo.java
New file @@ -0,0 +1,45 @@ package com.dsh.account.model.vo.exploreDetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data public class StoreDetailsVo { @ApiModelProperty(value = "门店图片数组") private List<String> images; @ApiModelProperty(value = "门店id") private Integer storeId; @ApiModelProperty(value = "门店名称") private String storeName; @ApiModelProperty(value = "门店经度") private String lon; @ApiModelProperty(value = "门店纬度") private String lat; @ApiModelProperty(value = "电话号码") private String phone; @ApiModelProperty(value = "门店地址") private String storeAddress; @ApiModelProperty(value = "门店营业时间段") private String storeTime; @ApiModelProperty(value = "门店信息") private String storeInfo; @ApiModelProperty(value = "场地列表") private List<SiteVo> venueList; @ApiModelProperty(value = "课程列表") private List<StoreOfCourseVo> courseVoList; } cloud-server-account/src/main/java/com/dsh/account/model/vo/exploreDetail/StoreOfCourseVo.java
New file @@ -0,0 +1,35 @@ package com.dsh.account.model.vo.exploreDetail; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author zhibing.pu * @date 2023/6/24 17:34 */ @Data @ApiModel public class StoreOfCourseVo { @ApiModelProperty("课程id") private Integer courseId; @ApiModelProperty("课程名称+门店名称") private String name; @ApiModelProperty("封面图") private String coverDrawing; @ApiModelProperty("上课时间") private String classStartTime; @ApiModelProperty("已报名人数") private Integer applicantsNumber; @ApiModelProperty("包含课时数") private Integer classHours; @ApiModelProperty("价格") private Double originalPrice; } cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
@@ -3,16 +3,17 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.account.entity.TStudent; import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; import com.dsh.account.feignclient.other.model.StoreDetailList; import com.dsh.account.feignclient.other.model.StoreInfo; import com.dsh.account.feignclient.other.model.SysNotice; import com.dsh.account.model.vo.classDetails.AppointmentRecordVo; import com.dsh.account.model.vo.classDetails.ClasspaymentRequest; import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo; import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq; import com.dsh.account.model.vo.classDetails.classInsVo.StuListVo; import com.dsh.account.model.vo.exploreDetail.ExploreDatasVo; import com.dsh.account.model.vo.exploreDetail.LonLatRequest; import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo; import com.dsh.account.model.vo.exploreDetails.QuestionIns; import com.dsh.account.model.vo.exploreDetail.QuestionIns; import com.dsh.account.model.vo.exploreDetail.StoreDetailsVo; import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo; import com.dsh.account.model.vo.sourceDetail.CourseDetailsOfContinuationResp; import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest; @@ -50,7 +51,7 @@ /** * 查询常见问题列表 */ QuestionDetailsVo queryQuestionData(); List<QuestionIns> queryQuestionData(); /** * 查询常见问题详情 @@ -65,7 +66,7 @@ /** * 查询探索页面首页 */ ExploreDatasVo queryIndexOfExplores(LonLatRequest llrequest); List<StoreInfo> queryIndexOfExplores(LonLatRequest llrequest); /** * 切换学员 @@ -86,4 +87,14 @@ ResultUtil cancelReservationOfCourse( Integer courseStuRecordId); /** * * @param space 距离 * @param cityCode 城市code * @return */ List<StoreDetailList> queryStoreList(Integer space,String cityCode,String latitude,String longitude); StoreDetailsVo getStoreDetail(Integer storeId); } cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -13,13 +13,11 @@ import com.dsh.account.feignclient.competition.model.GetStuSourseList; import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; import com.dsh.account.feignclient.competition.model.SaveParticipant; import com.dsh.account.feignclient.course.CancelListClient; import com.dsh.account.feignclient.course.CoursePaymentClient; import com.dsh.account.feignclient.course.CourseRecordClient; import com.dsh.account.feignclient.course.CourseSessionNameClient; import com.dsh.account.feignclient.course.*; import com.dsh.account.feignclient.course.model.*; import com.dsh.account.feignclient.other.NoticeClient; import com.dsh.account.feignclient.other.QuestionClient; import com.dsh.account.feignclient.other.SiteClient; import com.dsh.account.feignclient.other.StoreClient; import com.dsh.account.feignclient.other.model.*; import com.dsh.account.mapper.CoachMapper; @@ -30,10 +28,9 @@ import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo; import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq; import com.dsh.account.model.vo.classDetails.classInsVo.StuListVo; import com.dsh.account.model.vo.exploreDetail.ExploreDatasVo; import com.dsh.account.model.vo.exploreDetail.LonLatRequest; import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo; import com.dsh.account.model.vo.exploreDetails.QuestionIns; import com.dsh.account.model.vo.exploreDetail.QuestionIns; import com.dsh.account.model.vo.exploreDetail.StoreDetailsVo; import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo; import com.dsh.account.model.vo.sourceDetail.CourseDetailsOfContinuationResp; import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest; @@ -103,6 +100,12 @@ @Autowired private PayMoneyUtil payMoneyUtil; @Resource private SiteClient steClient; @Resource private CourseListClient culisClient; @@ -305,7 +308,7 @@ } @Override public QuestionDetailsVo queryQuestionData() { public List<QuestionIns> queryQuestionData() { return quesClient.getSysQuestionDetails(); } @@ -320,16 +323,11 @@ } @Override public ExploreDatasVo queryIndexOfExplores(LonLatRequest llrequest) { ExploreDatasVo datasVo = new ExploreDatasVo(); public List<StoreInfo> queryIndexOfExplores(LonLatRequest llrequest) { GetAllNearbyStoreList getAllNearbyStoreList = new GetAllNearbyStoreList(); getAllNearbyStoreList.setLongitude(llrequest.getLongitude()); getAllNearbyStoreList.setLatitude(llrequest.getLatitude()); List<StoreInfo> allNearbyStoreList = storeClient.getAllNearbyStoreList(getAllNearbyStoreList); List<StoreLonLatList> allStoreLonLats = storeClient.getAllStoreLonLats(getAllNearbyStoreList); datasVo.setStoreLists(allNearbyStoreList); datasVo.setLonLatLists(allStoreLonLats); return datasVo; return storeClient.getAllNearbyStoreList(getAllNearbyStoreList); } @Override @@ -595,5 +593,35 @@ return null; } @Override public List<StoreDetailList> queryStoreList(Integer space,String cityCode,String latitude,String longitude) { StoreOfCitycodeResp citycodeResp = new StoreOfCitycodeResp(); citycodeResp.setSpace(space); citycodeResp.setCityCode(cityCode); citycodeResp.setLongitude(latitude); citycodeResp.setLatitude(longitude); return storeClient.getQueryStoreList(citycodeResp); } @Override public StoreDetailsVo getStoreDetail(Integer storeId) { Store store = storeClient.queryStoreById(storeId); StoreDetailsVo detailsVo = new StoreDetailsVo(); String realPicture = store.getRealPicture(); String[] split = realPicture.split(","); detailsVo.setImages(Arrays.asList(split)); detailsVo.setStoreId(store.getId()); detailsVo.setStoreName(store.getName()); detailsVo.setStoreAddress(store.getAddress()); detailsVo.setStoreTime(store.getStartTime() + "至" +store.getEndTime()); detailsVo.setStoreInfo(store.getIntroduce()); detailsVo.setLon(store.getLon()); detailsVo.setLat(store.getLat()); detailsVo.setPhone(store.getPhone()); detailsVo.setVenueList(steClient.getAppUserSiteList()); detailsVo.setCourseVoList(culisClient.getStoreOfCourseList(storeId)); return detailsVo; } } cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java
@@ -62,7 +62,7 @@ @PostMapping("/course/queryList") @PostMapping("/base/course/queryList") public List<ExerciseVideo> queryStuCourseAfterVideos(@RequestBody List<Integer> courseIds){ List<ExerciseVideo> videos = new ArrayList<>(); List<TCourse> list = courseService.list(new QueryWrapper<TCourse>() cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java
@@ -1,9 +1,17 @@ package com.dsh.course.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.entity.CoursePackagePaymentConfig; import com.dsh.course.entity.TCoursePackage; import com.dsh.course.entity.TCoursePackagePayment; import com.dsh.course.feignclient.model.StoreOfCourseVo; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; import com.dsh.course.model.vo.response.Details; import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse; import com.dsh.course.service.ICoursePackagePaymentConfigService; import com.dsh.course.service.TCoursePackageDiscountService; import com.dsh.course.service.TCoursePackagePaymentService; import com.dsh.course.service.TCoursePackageService; import com.dsh.course.util.ResultUtil; import com.dsh.course.util.TokenUtil; @@ -13,6 +21,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Comparator; import java.util.List; /** @@ -29,6 +40,15 @@ @Autowired private TCoursePackageDiscountService tcpdService; @Resource private StoreClient storeClient; @Resource private TCoursePackagePaymentService tcppmenService; @Resource private ICoursePackagePaymentConfigService icppconfigService; @Autowired @@ -96,4 +116,40 @@ } } @ResponseBody @PostMapping("/base/coursePack/courseList") public List<StoreOfCourseVo> getStoreOfCourseList(@RequestBody Integer storeId){ List<StoreOfCourseVo> courseVoList = new ArrayList<>(); Store store = storeClient.queryStoreById(storeId); List<TCoursePackage> list = coursePackageService.list(new QueryWrapper<TCoursePackage>() .eq("storeId", storeId) .eq("auditStatus",2) .eq("state",1)); if (list.size() > 0){ for (TCoursePackage coursePackage : list) { int count = tcppmenService.count(new QueryWrapper<TCoursePackagePayment>() .eq("coursePackageId",coursePackage.getId())); StoreOfCourseVo courseVo = new StoreOfCourseVo(); courseVo.setCourseId(coursePackage.getId()); courseVo.setName(coursePackage.getName()+"(" + store.getName() + ")"); courseVo.setClassStartTime(coursePackage.getClassStartTime() +"-"+ coursePackage.getClassEndTime()); courseVo.setApplicantsNumber(count); List<CoursePackagePaymentConfig> list1 = icppconfigService.list(new QueryWrapper<CoursePackagePaymentConfig>() .eq("coursePackageId",coursePackage.getId())); // 取价格最低的课时 CoursePackagePaymentConfig minConfig = list1.stream() .min(Comparator.comparingDouble(CoursePackagePaymentConfig::getCashPayment)) .orElse(null); if (minConfig != null){ courseVo.setClassHours(minConfig.getClassHours()); courseVo.setOriginalPrice(minConfig.getCashPayment()); } courseVoList.add(courseVo); } } return courseVoList; } } cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseListClient.java
@@ -2,6 +2,7 @@ import com.dsh.course.feignclient.model.ExerciseVideo; import com.dsh.course.feignclient.model.StoreOfCourseVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -11,6 +12,10 @@ @FeignClient(value = "mb-cloud-course") public interface CourseListClient { @PostMapping("/course/queryList") @PostMapping("/base/cancelSource/queryList") List<ExerciseVideo> queryStuCourseAfterVideos(@RequestBody List<Integer> courseIds); @PostMapping("/base/coursePack/courseList") List<StoreOfCourseVo> getStoreOfCourseList(@RequestBody Integer storeId); } cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StoreOfCourseVo.java
New file @@ -0,0 +1,35 @@ package com.dsh.course.feignclient.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author zhibing.pu * @date 2023/6/24 17:34 */ @Data @ApiModel public class StoreOfCourseVo { @ApiModelProperty("课程id") private Integer courseId; @ApiModelProperty("课程名称+门店名称") private String name; @ApiModelProperty("封面图") private String coverDrawing; @ApiModelProperty("上课时间") private String classStartTime; @ApiModelProperty("已报名人数") private Integer applicantsNumber; @ApiModelProperty("包含课时数") private Integer classHours; @ApiModelProperty("价格") private Double originalPrice; } cloud-server-other/src/main/java/com/dsh/other/controller/AskedQuestionsController.java
@@ -26,8 +26,7 @@ @PostMapping("/base/notice/queryQuestionDetails") public QuestionDetailsVo getSysQuestionDetails(){ QuestionDetailsVo notices = new QuestionDetailsVo(); public List<QuestionIns> getSysQuestionDetails(){ List<QuestionIns> sysS = new ArrayList<>(); List<FrequentlyAskedQuestions> list = faqService.list(new QueryWrapper<FrequentlyAskedQuestions>() .eq("state", 1) @@ -40,9 +39,8 @@ notice.setQuesContents(noList.getAnswer()); sysS.add(notice); }); notices.setSysS(sysS); } return notices; return sysS; } cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
@@ -3,8 +3,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.other.entity.Site; import com.dsh.other.entity.SiteBooking; import com.dsh.other.entity.SiteType; import com.dsh.other.feignclient.activity.UserCouponClient; import com.dsh.other.feignclient.activity.model.UserCoupon; import com.dsh.other.feignclient.model.SiteVo; import com.dsh.other.model.*; import com.dsh.other.service.ISiteBookingService; import com.dsh.other.service.ISiteService; @@ -393,4 +395,26 @@ } @PostMapping("/base/site/getNewAddSiteList") public List<SiteVo> getAppUserSiteList(){ List<SiteVo> siteVos = new ArrayList<>(); List<Site> list = siteService.list(new QueryWrapper<Site>() .orderByDesc("insertTime")); if (list.size() > 0 ){ for (Site site : list) { SiteVo vo = new SiteVo(); vo.setSiteId(site.getId()); vo.setSiteName(site.getName()); vo.setSiteTime(site.getAppointmentStartTime() + "-" + site.getAppointmentEndTime()); SiteType byId = siteTypeService.getById(site.getSiteTypeId()); vo.setSiteType(byId.getName()); vo.setPrice(site.getCashPrice()); siteVos.add(vo); } } return siteVos; } } cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java
@@ -4,13 +4,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.other.entity.Store; import com.dsh.other.feignclient.model.*; import com.dsh.other.model.BaseVo; import com.dsh.other.model.ProvinceAndCityVo; import com.dsh.other.model.QueryStoreList; import com.dsh.other.model.StoreFreeBenefitVo; import com.dsh.other.model.*; import com.dsh.other.service.StoreService; import com.dsh.other.util.GDMapGeocodingUtil; import com.dsh.other.util.ResultUtil; import com.dsh.other.util.ToolUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -70,6 +68,8 @@ info.setStoreImg(store.getRealPicture()); info.setDistance(Long.parseLong(distanceTOKilometer)); info.setStoreAddr(store.getAddress()); info.setLatitude(storeLat); info.setLongitude(storeLon); storeInfos.add(info); } Comparator<StoreInfo> distanceComparator = new Comparator<StoreInfo>() { @@ -98,28 +98,34 @@ } @PostMapping("/base/protocol/storeDetail/storeOfLonLat") public List<StoreLonLatList> getAllStoreLonLats(@RequestBody GetAllNearbyStoreList list ){ List<StoreLonLatList> storeInfos = new ArrayList<>(); try { Map<String, String> geocode = gdMapGeocodingUtil.geocode(list.getLongitude(), list.getLatitude()); String cityCode = geocode.get("cityCode"); List<Store> storeList = storeService.list(new QueryWrapper<Store>() .eq("cityCode",cityCode)); if (storeList.size() > 0){ for (Store store : storeList) { StoreLonLatList latList = new StoreLonLatList(); latList.setStoreId(store.getId()); latList.setLongitude(store.getLon()); latList.setLatitude(store.getLat()); storeInfos.add(latList); @PostMapping("/base/protocol/storeDetail/citycodeLoLa") public List<StoreDetailList> getQueryStoreList(@RequestBody StoreOfCitycodeResp citycodeResp){ List<StoreDetailList> detailLists = new ArrayList<>(); List<Store> list = storeService.list(new QueryWrapper<Store>() .eq("state",1 ) .eq("cityCode",citycodeResp.getCityCode())); if (list.size() > 0 ){ for (Store store : list) { String current = citycodeResp.getLongitude() +","+citycodeResp.getLatitude(); String result = store.getLon()+","+store.getLat(); String distanceTOKilometer = gdMapGeocodingUtil.getDistanceTOKilometer(current, result); long l = Long.parseLong(distanceTOKilometer); if (ToolUtil.isNotEmpty(citycodeResp.getSpace()) && l > citycodeResp.getSpace()){ continue; } StoreDetailList detailList = new StoreDetailList(); detailList.setStoreId(store.getId()); detailList.setStoreImg(store.getCoverDrawing()); detailList.setStoreName(store.getName()); detailList.setStoreAddress(store.getAddress()); detailList.setStorePhone(store.getPhone()); detailList.setStoreDistance(l); detailList.setStoreTime(store.getStartTime() + "-" + store.getEndTime()); detailList.setStoreInfo(store.getIntroduce()); detailLists.add(detailList); } }catch (Exception e){ e.printStackTrace(); } return storeInfos; return detailLists; } cloud-server-other/src/main/java/com/dsh/other/controller/StoreEvaluationController.java
New file @@ -0,0 +1,62 @@ package com.dsh.other.controller; import com.dsh.other.entity.StoreEvaluation; import com.dsh.other.model.StoreDetailsVo; import com.dsh.other.service.StoreEvaluationService; import com.dsh.other.util.ResultUtil; import com.dsh.other.util.TokenUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.Date; import java.util.List; @RestController @RequestMapping("") public class StoreEvaluationController { @Resource private StoreEvaluationService evaluationService; @Resource private TokenUtil tokenUtil; @ResponseBody @PostMapping("/base/storeEvaluation/saveEvaluation") @ApiOperation(value = "联系客服-门店评价", tags = {"APP-探索玩湃"}) @ApiImplicitParams({ @ApiImplicitParam(value = "门店id", name = "storeId", required = true, dataType = "int"), }) public ResultUtil getStoreDetails(Integer storeId, String content, double score, String imgs){ try { Integer uid = tokenUtil.getUserIdFormRedis(); if(null == uid){ return ResultUtil.tokenErr(); } StoreEvaluation storeEvaluation = new StoreEvaluation(); storeEvaluation.setAppUserId(uid); storeEvaluation.setStoreId(storeId); storeEvaluation.setScore(score); storeEvaluation.setContent(content); storeEvaluation.setImgs(imgs); storeEvaluation.setState(1); storeEvaluation.setInsertTime(new Date()); evaluationService.save(storeEvaluation); return ResultUtil.success(); }catch (Exception e){ return ResultUtil.runErr(); } } } cloud-server-other/src/main/java/com/dsh/other/controller/SystemNoticeController.java
@@ -12,6 +12,7 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -68,7 +69,9 @@ List<String> tellS = new ArrayList<>(); List<Phone> list = phoneService.list(); if (list.size() > 0 ){ tellS = list.stream().map(Phone::getPhone).collect(Collectors.toList()); String phone = list.get(0).getPhone(); String[] split = phone.split(","); tellS = Arrays.asList(split); } return tellS; cloud-server-other/src/main/java/com/dsh/other/entity/StoreEvaluation.java
New file @@ -0,0 +1,76 @@ package com.dsh.other.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import java.io.Serializable; import java.util.Date; /** * <p> * 门店评价 * </p> * * @author jqs * @since 2023-06-14 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_store_evaluation") public class StoreEvaluation extends Model<StoreEvaluation> { private static final long serialVersionUID = 1L; /** * 主键 */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 评价用户id */ @TableField("appUserId") private Integer appUserId; /** * 门店id */ @TableField("storeId") private Integer storeId; /** * 评分 */ @TableField("score") private Double score; /** * 评价内容 */ @TableField("content") private String content; /** * 评价图片 */ @TableField("imgs") private String imgs; /** * 状态(1=正常,2=冻结,3=删除) */ @TableField("state") private Integer state; /** * 评价时间 */ @TableField("insertTime") private Date insertTime; @Override protected Serializable pkVal() { return this.id; } } cloud-server-other/src/main/java/com/dsh/other/feignclient/QuestionClient.java
@@ -6,12 +6,14 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @FeignClient(value = "mb-cloud-other") public interface QuestionClient { @PostMapping("/base/notice/queryQuestionDetails") QuestionDetailsVo getSysQuestionDetails(); List<QuestionIns> getSysQuestionDetails(); @PostMapping("/base/notice/queryQuestion") QuestionIns getSysQuestionBuId(@RequestParam("quesId") Integer quesId); cloud-server-other/src/main/java/com/dsh/other/feignclient/SiteClient.java
@@ -1,6 +1,7 @@ package com.dsh.other.feignclient; import com.dsh.other.entity.SiteBooking; import com.dsh.other.feignclient.model.SiteVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -17,4 +18,8 @@ @PostMapping("/base/site/queryPlaypaiGoldSiteDetail") List<SiteBooking> wanpaiGoldSiteBookingList(@RequestBody Integer appUserId); @PostMapping("/base/site/getNewAddSiteList") List<SiteVo> getAppUserSiteList(); } cloud-server-other/src/main/java/com/dsh/other/feignclient/StoreClient.java
@@ -20,10 +20,11 @@ List<StoreInfo> getAllNearbyStoreList(@RequestBody GetAllNearbyStoreList list); @PostMapping("/base/protocol/storeDetail/storeOfLonLat") List<StoreLonLatList> getAllStoreLonLats(@RequestBody GetAllNearbyStoreList list); @PostMapping("/base/protocol/storeDetail/distanceCal") public long calculateDistance(@RequestBody GetDistanceVo distanceVo); @PostMapping("/base/protocol/storeDetail/citycodeLoLa") List<StoreDetailList> getQueryStoreList(@RequestBody StoreOfCitycodeResp citycodeResp); } cloud-server-other/src/main/java/com/dsh/other/feignclient/model/SiteVo.java
New file @@ -0,0 +1,24 @@ package com.dsh.other.feignclient.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class SiteVo { @ApiModelProperty(value = "场地id") private Integer siteId; @ApiModelProperty(value = "场地名称") private String siteName; @ApiModelProperty(value = "场地类型:足球场") private String siteType; @ApiModelProperty(value = "预约时间段") private String siteTime; @ApiModelProperty(value = "价格") private double price; } cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreDetailList.java
New file @@ -0,0 +1,33 @@ package com.dsh.other.feignclient.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class StoreDetailList { @ApiModelProperty(value = "门店id") private Integer storeId; @ApiModelProperty(value = "门店封面图") private String storeImg; @ApiModelProperty(value = "门店名称") private String storeName; @ApiModelProperty(value = "门店详细地址") private String storeAddress; @ApiModelProperty(value = "门店联系电话") private String storePhone; @ApiModelProperty(value = "门店距离当前位置 的距离") private long storeDistance; @ApiModelProperty(value = "门店营业时间范围") private String storeTime; @ApiModelProperty(value = "门店信息") private String storeInfo; } cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreInfo.java
@@ -22,4 +22,10 @@ @ApiModelProperty(value = "门店详细地址") private String storeAddr; @ApiModelProperty(value = "经度") private String longitude; @ApiModelProperty(value = "纬度") private String latitude; } cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreLonLatList.java
@@ -15,5 +15,8 @@ @ApiModelProperty(value = "纬度") String latitude; @ApiModelProperty(value = "门店标题") String title; } cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreOfCitycodeResp.java
New file @@ -0,0 +1,22 @@ package com.dsh.other.feignclient.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class StoreOfCitycodeResp { @ApiModelProperty(value = "距离") private Integer space; @ApiModelProperty(value = "城市code") private String cityCode; @ApiModelProperty(value = "纬度") private String latitude; @ApiModelProperty(value = "经度") private String longitude; } cloud-server-other/src/main/java/com/dsh/other/mapper/StoreEvaluationMapper.java
New file @@ -0,0 +1,18 @@ package com.dsh.other.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.other.entity.StoreConfig; import com.dsh.other.entity.StoreEvaluation; /** * <p> * 门店基础配置 Mapper 接口 * </p> * * @author jqs * @since 2023-06-14 */ public interface StoreEvaluationMapper extends BaseMapper<StoreEvaluation> { } cloud-server-other/src/main/java/com/dsh/other/model/StoreDetailsVo.java
New file @@ -0,0 +1,56 @@ package com.dsh.other.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @Data public class StoreDetailsVo { @ApiModelProperty(value = "门店图片数组") private List<String> images; @ApiModelProperty(value = "门店id") private Integer storeId; @ApiModelProperty(value = "门店名称") private String storeName; @ApiModelProperty(value = "门店地址") private String storeAddress; @ApiModelProperty(value = "门店营业时间段") private String storeTime; @ApiModelProperty(value = "门店信息") private String storeInfo; @ApiModelProperty(value = "场地列表") private List<Site> venueList; @ApiModelProperty(value = "课程列表") private List<StoreOfCourseVo> courseVoList; @Data public static class Site{ @ApiModelProperty(value = "场地id") private Integer siteId; @ApiModelProperty(value = "场地名称") private String siteName; @ApiModelProperty(value = "场地类型:足球场") private String siteType; @ApiModelProperty(value = "预约时间段") private String siteTime; @ApiModelProperty(value = "价格") private double price; } } cloud-server-other/src/main/java/com/dsh/other/model/StoreOfCourseVo.java
New file @@ -0,0 +1,35 @@ package com.dsh.other.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author zhibing.pu * @date 2023/6/24 17:34 */ @Data @ApiModel public class StoreOfCourseVo { @ApiModelProperty("课程id") private Integer courseId; @ApiModelProperty("课程名称+门店名称") private String name; @ApiModelProperty("封面图") private String coverDrawing; @ApiModelProperty("上课时间") private String classStartTime; @ApiModelProperty("已报名人数") private Integer applicantsNumber; @ApiModelProperty("包含课时数") private Integer classHours; @ApiModelProperty("价格") private Double originalPrice; } cloud-server-other/src/main/java/com/dsh/other/service/StoreEvaluationService.java
New file @@ -0,0 +1,22 @@ package com.dsh.other.service; import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.other.entity.Store; import com.dsh.other.entity.StoreEvaluation; import com.dsh.other.model.BaseVo; import com.dsh.other.model.ProvinceAndCityVo; import java.util.List; /** * <p> * 门店信息 服务类 * </p> * * @author jqs * @since 2023-06-14 */ public interface StoreEvaluationService extends IService<StoreEvaluation> { } cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreEvaluationServiceImpl.java
New file @@ -0,0 +1,12 @@ package com.dsh.other.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.other.entity.StoreEvaluation; import com.dsh.other.mapper.StoreEvaluationMapper; import com.dsh.other.service.StoreEvaluationService; import org.springframework.stereotype.Service; @Service public class StoreEvaluationServiceImpl extends ServiceImpl<StoreEvaluationMapper, StoreEvaluation> implements StoreEvaluationService { } cloud-server-other/src/main/resources/mapper/StoreEvaluationMapper.xml
New file @@ -0,0 +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.StoreEvaluationMapper"> </mapper>