44323
2023-11-27 aa925d851857f50eff0556411366690d9a78a0e5
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai

 Conflicts:
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
 cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
 cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml
 cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java
516个文件已修改
20个文件已添加
22530 ■■■■ 已修改文件
cloud-server-account/pom.xml 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/AccountApplication.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java 214 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java 211 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/CoachTypeController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/StoreStaffController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java 802 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java 179 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/UserIntegralChangesController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/dto/StudentSearch.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/CourseCounsum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/EvaluateStudent.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/HonorRules.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/IntroduceRewards.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/IntroduceUser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/TAppGift.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/TCourseInfoRecord.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/User.java 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/UserIntegral.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/UserIntegralChanges.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/entity/VipPayment.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/enums/RechargeRecordEnum.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/enums/WeeksEnum.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/IntegralCommodity.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/ParticipantClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseListClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/VideoOfCourseListClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CourseDetailReq.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/NoticeClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/RechargeConfigClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/StoreClient.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreOfCitycodeResp.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/mapper/RechargeRecordsMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/AddAppUserVo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/JoinPlayPaiVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/QueryDataFee.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/query/appUserQuery/QueryAppUser.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachSerchVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/RechargeRecordsVO.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/CourseVenue.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/StuDetailsVo.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/StuEditInfoReq.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ExchangeDetailsResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/GoodsExchangeVo.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/RechargesDetail.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/EvaluateStudentService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/IVipPaymentService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/RechargeRecordsService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TAppGiftService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/EvaluateStudentServiceImpl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppGiftServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java 719 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java 331 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/BMIBodyUtil.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/DateTimeHelper.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/GDMapGeocodingUtil.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/GeodesyUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/HeaderAuthUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/JsonUtil.java 239 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/JuHeUtil.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/JwtTokenUtil.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/LocalDateTimeUtils.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/LonlatUtils.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/MD5AndKL.java 169 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/OssUploadUtil.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java 257 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/RedisUtil.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/ResultUtil.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/StrUtils.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/StudyTimeUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/TaskUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/TokenUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/ToolUtil.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/UUIDUtil.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/akeylogin/SignUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/httpClinet/HttpClientUtil.java 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/httpClinet/HttpResult.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/weChat/AES.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/weChat/WXCore.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/weChat/WeChatUtil.java 98 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/weChat/WxPKCS7Encoder.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/config/MyLocaleResolver.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/config/RedisConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/config/Sharding_jdbc/DatasourceModel.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/config/Sharding_jdbc/Master0DataSource.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/config/SwaggerConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/bootstrap.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/logback-spring.xml 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/CoachMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/RechargeRecordsMapper.xml 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/TStudentMapper.xml 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/UserIntegralChangesMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/mapper/VipPaymentMapper.tld 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/redis.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/resources/sharding-jdbc.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/pom.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java 300 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java 719 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideoClassification.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/BodySideAppointment.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/IntroduceRewards.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/QueryStoreList.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/CouponClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/AppUserClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/StoreStaffClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/StudentClient.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/UserIntegralChangesClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CourseClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ExchangeDetailsResponse.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/SiteClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/TOperatorCity.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideoClassificationMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponMapper.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/mapper/IntroduceRewardsMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/model/ConponJsonRuleModel.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/model/IntroduceQuery.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/model/IntroduceUser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/model/IntroduceVO.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/model/PointMerchandiseIncomeVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBenefitsVedioVO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointmentVO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/model/SendCouponReq.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/ICouponService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/IntroduceUserService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/UserCouponService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideoClassificationServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BodySideAppointmentServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/IntroduceRewardsServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/DateTimeHelper.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/DateUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/GDMapGeocodingUtil.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/GeodesyUtil.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/HeaderAuthUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/JsonUtil.java 239 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/LocalDateTimeUtils.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/RedisUtil.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/ResultUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/StrUtils.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/StudyTimeUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/TokenUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/ToolUtil.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/UUIDUtil.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/akeylogin/SignUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/httpClinet/HttpClientUtil.java 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/util/httpClinet/HttpResult.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/config/JsonLongSerializer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/config/MessageLocalConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/config/MyLocaleResolver.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/config/RedisConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/DatasourceModel.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/Master0DataSource.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/config/SwaggerConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/bootstrap.properties 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/logback-spring.xml 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml 68 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/CouponMapper.tld 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/CouponMapper.xml 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/IntroduceRewardsMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml 82 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/redis.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/sharding-jdbc.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java 460 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/controller/UserCompetitionController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/entity/PaymentCompetition.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/AppUserClient.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/StudentClient.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/TStudent.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/mapper/ParticipantMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/mapper/PaymentCompetitionMapper.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionInfo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/model/TCompetition.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/service/CompetitionService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/service/IParticipantService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/service/IPaymentCompetitionService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java 130 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java 71 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/DateTimeHelper.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/DateUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/GeodesyUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/HeaderAuthUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/JsonUtil.java 239 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/JuHeUtil.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/LocalDateTimeUtils.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/MD5AndKL.java 169 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java 253 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/RedisUtil.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/ResultUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/StrUtils.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/StudyTimeUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/TaskUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/TaskUtilCompetition.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/TokenUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/ToolUtil.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/UUIDUtil.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/akeylogin/SignUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/httpClinet/HttpClientUtil.java 107 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/competition/util/httpClinet/HttpResult.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/config/JsonLongSerializer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/config/MessageLocalConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/config/MyLocaleResolver.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/config/RedisConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/config/Sharding_jdbc/DatasourceModel.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/config/Sharding_jdbc/Master0DataSource.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/config/SwaggerConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/page/WafKit.java 148 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java 210 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/resources/bootstrap.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/resources/logback-spring.xml 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/resources/mapper/CompetitionMapper.xml 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-competition/src/main/resources/sharding-jdbc.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/config/JsonLongSerializer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/config/MessageLocalConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/config/MyLocaleResolver.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/config/RedisConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/config/Sharding_jdbc/DatasourceModel.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/config/Sharding_jdbc/Master0DataSource.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/config/SwaggerConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CancelSourceController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java 224 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java 126 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentConfigController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 1587 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageStudentController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageTypeController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java 335 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/PostCourseVideoController.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/CourseCounsum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageOrder.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageOrderStudent.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageScheduling.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TAppUser.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TCourse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageType.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TOrder.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/dto/ToHoliDto.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseListClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/VideoOfCourseListClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Coach.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/TCourseInfoRecord.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/UserCouponClient.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/BenefitsVideos.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/CancelledClassesMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageOrderMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageOrderStudentMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageSchedulingMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/CancelClassesVO.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/CourseDetailReq.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/DetailsListVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderVO.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/WeekEnum.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/dto/DiscountJsonDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/TQueryBenefitsVideosVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/request/CourseOfAfterRequest.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/request/PayCourseReq.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseOfVideoResponse.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/model/vo/response/Details.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageSchedulingService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageOrderService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageOrderStudentService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageSchedulingService.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CancelledClassesServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CourseCounsumServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderServiceImpl.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java 382 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java 101 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java 778 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java 1873 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/DateTimeHelper.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/DateUtil.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/GDMapGeocodingUtil.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/GeodesyUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/HeaderAuthUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/JsonUtil.java 239 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/LocalDateTimeUtils.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/MD5AndKL.java 169 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java 255 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/RedisUtil.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/ResultUtil.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/StrUtils.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/StudyTimeUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/TokenUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/ToolUtil.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/UUIDUtil.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/akeylogin/SignUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/HttpClientUtil.java 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/HttpResult.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/bootstrap.properties 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/logback-spring.xml 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/CoursePackageOrderMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/CoursePackageOrderStudentMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCourseMapper.xml 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml 61 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml 120 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/TCoursePackageTypeMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/sharding-jdbc.properties 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/entity/SiteLock.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteLock.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICoursePackageService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/DateComparisonExample.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/OtherApplication.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/config/JsonLongSerializer.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/config/MessageLocalConfig.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/config/MyLocaleResolver.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/config/RedisConfig.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/config/SwaggerConfig.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/AskedQuestionsController.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java 99 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java 40 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/ProtocolController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/SiteLockController.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java 155 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/StoreEvaluationController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/SystemNoticeController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/TGameController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/TPhoneController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/TRegionController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/controller/UserLoginLogController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/Banner.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/CourseCounsum.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/Region.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/Site.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/SiteLock.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/StoreEvaluation.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/StoredValueConfig.java 88 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/TBackRecord.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/TGame.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/TGameConfig.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/TGameRecord.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/TSite.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/TStoreOther.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/entity/TStoreOtherConfigTrue.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/CourseRecordClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/CustomerClient.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/NoticeClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/StoreClient.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/account/AppUserClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/account/CityManagerClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/CouponClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/UserCouponClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/model/AdvertisementChangeStateDTO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreOfCitycodeResp.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/FrequentlyAskedQuestionsMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/SiteBookingMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/TGameMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/TGameRecordMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/TOperatorUserMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/TStoreOtherConfigTrueMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/TStoreOtherMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/mapper/UserMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/model/ReservationSite.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/model/StoreDetailsVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/model/User.java 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/ExpireSiteSearchVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/ISiteTypeService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/IUserService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/TGameRecordService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/TGameService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/TStoreOtherConfigTrueService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/TStoreOtherService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/FrequentlyAskedQuestionsServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/HonorRulesServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteBookingServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteLockServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java 328 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteTypeServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/TGameRecordServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/TOperatorUserServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/TStoreOtherConfigTrueServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/TStoreOtherServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/service/impl/UserServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/DateComparisonExample.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/DateTimeHelper.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/DateUtil.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/GDMapGeocodingUtil.java 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/GeodesyUtil.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/HeaderAuthUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/HttpClientUtil.java 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/HttpRequestUtil.java 461 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/HttpResult.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/JsonUtil.java 239 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/LocalDateTimeUtils.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/MD5AndKL.java 169 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java 265 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/RedisUtil.java 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/ResultUtil.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/StrUtils.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/StudyTimeUtil.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/TaskUtilCompetition.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/TokenUtil.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/ToolUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/UUIDUtil.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/akeylogin/SignUtil.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/httpClinet/HttpClientUtil.java 109 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/java/com/dsh/other/util/httpClinet/HttpResult.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/bootstrap.properties 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/logback-spring.xml 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/BannerMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/FrequentlyAskedQuestionsMapper.xml 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/GameMapper.xml 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/HonorRulesMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/ProtocolMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/SiteMapper.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-other/src/main/resources/mapper/TImgConfigMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/pom.xml
@@ -16,17 +16,17 @@
    <dependencies>
        <!--日志处理-->
<!--        <dependency>-->
<!--            <groupId>com.github.binarywang</groupId>-->
<!--            <artifactId>wx-java-pay-spring-boot-starter</artifactId>-->
<!--            <version>4.4.0</version>-->
<!--            <exclusions>-->
<!--                <exclusion>-->
<!--                    <artifactId>guava</artifactId>-->
<!--                    <groupId>com.google.guava</groupId>-->
<!--                </exclusion>-->
<!--            </exclusions>-->
<!--        </dependency>-->
        <!--        <dependency>-->
        <!--            <groupId>com.github.binarywang</groupId>-->
        <!--            <artifactId>wx-java-pay-spring-boot-starter</artifactId>-->
        <!--            <version>4.4.0</version>-->
        <!--            <exclusions>-->
        <!--                <exclusion>-->
        <!--                    <artifactId>guava</artifactId>-->
        <!--                    <groupId>com.google.guava</groupId>-->
        <!--                </exclusion>-->
        <!--            </exclusions>-->
        <!--        </dependency>-->
        <dependency>
            <groupId>cn.mb.cloud</groupId>
@@ -41,8 +41,8 @@
            <artifactId>mb-cloud-common-api</artifactId>
        </dependency>
        <dependency>
          <groupId>cn.mb.cloud</groupId>
          <artifactId>mb-cloud-common-sentinel</artifactId>
            <groupId>cn.mb.cloud</groupId>
            <artifactId>mb-cloud-common-sentinel</artifactId>
        </dependency>
        <dependency>
            <groupId>org.flywaydb</groupId>
cloud-server-account/src/main/java/com/dsh/AccountApplication.java
@@ -30,7 +30,7 @@
    public static void main(String[] args) {
        try {
            SpringApplication.run(AccountApplication.class, args);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -55,30 +55,33 @@
    @Autowired
    private TAppGiftService appGiftService;
    /**
     * 根据介绍有礼id查询当前活动参与次数
     */
    @ResponseBody
    @PostMapping("/base/appUser/getActivityPeoples")
    public Integer getActivityPeoples(@RequestBody Integer activityId){
    public Integer getActivityPeoples(@RequestBody Integer activityId) {
        int activityId1 = appGiftService.list(new QueryWrapper<TAppGift>().eq("activityId", activityId))
                .size();
        return activityId1;
    }
    /**
     * 介绍有礼 -- 参与用户列表
     */
    @ResponseBody
    @PostMapping("/base/appUser/queryIntroduceAll")
    public List<IntroduceUser> queryIntroduceAll(@RequestBody IntroduceUserQuery query){
    public List<IntroduceUser> queryIntroduceAll(@RequestBody IntroduceUserQuery query) {
        return appGiftService.queryIntroduceAll(query);
    }
    /**
     * 获取所有用户
     */
    @ResponseBody
    @PostMapping("/base/appUser/queryAppUserList")
    public List<TAppUser> queryAppUserList(@RequestBody AppUserByNameAndPhoneDTO dto){
    public List<TAppUser> queryAppUserList(@RequestBody AppUserByNameAndPhoneDTO dto) {
        return appUserService.queryAPPUserByNameAndPhone(dto);
    }
@@ -87,41 +90,45 @@
     */
    @ResponseBody
    @PostMapping("/base/appUser/queryAPPUserByNameAndPhone")
    public List<TAppUser> queryAPPUserByNameAndPhone(@RequestBody AppUserByNameAndPhoneDTO dto){
    public List<TAppUser> queryAPPUserByNameAndPhone(@RequestBody AppUserByNameAndPhoneDTO dto) {
        return appUserService.queryAPPUserByNameAndPhone(dto);
    }
    /**
     * 根据用户id获取用户信息
     *
     * @param appUserId
     * @return
     */
    @ResponseBody
    @PostMapping("/base/appUser/queryAppUser1")
    public TAppUser queryAppUser1(@RequestBody Integer appUserId){
         TAppUser appUser = appUserService.getById(appUserId);
         return appUser;
    public TAppUser queryAppUser1(@RequestBody Integer appUserId) {
        TAppUser appUser = appUserService.getById(appUserId);
        return appUser;
    }
    /**
     * 冻结/解冻 1=解冻 2=冻结
     */
    @RequestMapping("/base/appUser/changeState")
    public Object changeState(@RequestBody AdvertisementChangeStateDTO dto){
    public Object changeState(@RequestBody AdvertisementChangeStateDTO dto) {
        return appUserService.changeState(dto);
    }
    /**
     *  后台添加
     * 后台添加
     */
    @RequestMapping("/base/appUser/addAppUser1")
    public Object addAppUser1(@RequestBody TAppUser query){
    public Object addAppUser1(@RequestBody TAppUser query) {
        // 修改
        if (query.getId()!=null){
            TAppUser phone = appUserService.getOne(new QueryWrapper<TAppUser>().eq("phone", query.getPhone()).ne("id",query.getId()));
            if (null != phone){
        if (query.getId() != null) {
            TAppUser phone = appUserService.getOne(new QueryWrapper<TAppUser>().eq("phone", query.getPhone()).ne("id", query.getId()));
            if (null != phone) {
                return 5001;
            }
        }else {
        } else {
            TAppUser phone = appUserService.getOne(new QueryWrapper<TAppUser>().eq("phone", query.getPhone()));
            if (null != phone){
            if (null != phone) {
                return 5001;
            }
        }
@@ -135,27 +142,27 @@
     */
    @ResponseBody
    @RequestMapping("/base/appUser/listAll")
    public List<QueryAppUserVO> listAll(@RequestBody QueryAppUser query){
    public List<QueryAppUserVO> listAll(@RequestBody QueryAppUser query) {
        List<QueryAppUserVO> queryAppUserVOS = appUserService.listAll(query);
        ArrayList<QueryAppUserVO> res = new ArrayList<>();
        if (query.getUserIds()!=null && query.getUserIds().size()!=0){
        if (query.getUserIds() != null && query.getUserIds().size() != 0) {
            List<QueryAppUserVO> queryAppUserVOS1 = appUserService.listAll1(query);
            queryAppUserVOS.addAll(queryAppUserVOS1);
        }
        List<QueryAppUserVO> collect = queryAppUserVOS.stream().distinct().collect(Collectors.toList());
        for (QueryAppUserVO vo : collect) {
            // 会员到期时间小于当前时间或者会员到期时间为null 则会员过期
            if (vo.getVipEndTime()!=null && vo.getVipEndTime().after(new Date())){
            if (vo.getVipEndTime() != null && vo.getVipEndTime().after(new Date())) {
                vo.setIsVip(1);
            }else{
            } else {
                vo.setIsVip(0);
            }
            if (query.getIsVip() != null && (!query.getIsVip().equals("")) ){
                if (vo.getIsVip() == query.getIsVip()){
            if (query.getIsVip() != null && (!query.getIsVip().equals(""))) {
                if (vo.getIsVip() == query.getIsVip()) {
                    res.add(vo);
                }
            }else{
            } else {
                res.add(vo);
            }
        }
@@ -167,7 +174,7 @@
     */
    @ResponseBody
    @GetMapping("/base/appUser/getAppUserByPhone/{phone}")
    public TAppUser getAppUserByPhone(@PathVariable("phone") String phone){
    public TAppUser getAppUserByPhone(@PathVariable("phone") String phone) {
        TAppUser appUser = appUserService.getOne(new QueryWrapper<TAppUser>().eq("phone", phone));
        return appUser;
    }
@@ -180,17 +187,17 @@
            @ApiImplicitParam(value = "类型(1:登录,2:注册,3:修改密码,4:忘记密码)", name = "type", dataType = "int", required = true),
            @ApiImplicitParam(value = "电话号码", name = "phone", dataType = "string", required = true)
    })
    public ResultUtil getSMSCode(Integer type, String phone){
        if(ToolUtil.isEmpty(phone)){
    public ResultUtil getSMSCode(Integer type, String phone) {
        if (ToolUtil.isEmpty(phone)) {
            return ResultUtil.paranErr("phone");
        }
        if(ToolUtil.isEmpty(type)){
        if (ToolUtil.isEmpty(type)) {
            return ResultUtil.paranErr("type");
        }
        try {
            ResultUtil smsCode = appUserService.getSMSCode(type, phone);
            return smsCode;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -199,20 +206,21 @@
    @Autowired
    private TStudentService studentService;
    @ResponseBody
    @PostMapping("/base/appUser/logOff")
    @ApiOperation(value = "注销", tags = {"注销"})
    @ApiImplicitParams({
            @ApiImplicitParam(value = "账号id", name = "appId", dataType = "int", required = true)
    })
    public ResultUtil<String> logOff(Integer appId){
    public ResultUtil<String> logOff(Integer appId) {
        try {
            appUserService.removeById(appId);
            studentService.remove(new QueryWrapper<TStudent>().eq("appUserId",appId));
            studentService.remove(new QueryWrapper<TStudent>().eq("appUserId", appId));
            return ResultUtil.success("注销成功");
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -224,10 +232,10 @@
    @ApiOperation(value = "注册用户", tags = {"APP-登录注册"})
    @ApiImplicitParams({
    })
    public ResultUtil addAppUser(AddAppUserVo addAppUserVo){
    public ResultUtil addAppUser(AddAppUserVo addAppUserVo) {
        try {
            return appUserService.addAppUser(addAppUserVo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -241,21 +249,20 @@
            @ApiImplicitParam(value = "电话号码", name = "phone", dataType = "string", required = true),
            @ApiImplicitParam(value = "登录密码", name = "password", dataType = "string", required = true)
    })
    public ResultUtil<String> loginPassword(String phone, String password){
        if(ToolUtil.isEmpty(phone)){
    public ResultUtil<String> loginPassword(String phone, String password) {
        if (ToolUtil.isEmpty(phone)) {
            return ResultUtil.paranErr("phone");
        }
        if(ToolUtil.isEmpty(password)){
        if (ToolUtil.isEmpty(password)) {
            return ResultUtil.paranErr("password");
        }
        try {
            return appUserService.loginPassword(phone, password);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -263,23 +270,24 @@
    @ApiOperation(value = "短信验证码登录", tags = {"APP-登录注册"})
    @ApiImplicitParams({
    })
    public ResultUtil<String> loginSMSCode(LoginSMSCodeVo loginSMSCodeVo){
    public ResultUtil<String> loginSMSCode(LoginSMSCodeVo loginSMSCodeVo) {
        try {
            return appUserService.loginSMSCode(loginSMSCodeVo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/base/appUser/bind")
    @ApiOperation(value = "微信登录绑定手机号", tags = {"APP-登录注册"})
    @ApiImplicitParams({
    })
    public ResultUtil bind(BindDto dto){
    public ResultUtil bind(BindDto dto) {
        try {
            return appUserService.bind(dto);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -291,15 +299,14 @@
    @ApiOperation(value = "微信登录", tags = {"APP-登录注册"})
    @ApiImplicitParams({
    })
    public ResultUtil<String> loginWeChat(LoginWeChatVo loginWeChatVo){
    public ResultUtil<String> loginWeChat(LoginWeChatVo loginWeChatVo) {
        try {
            return appUserService.loginWechat(loginWeChatVo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -307,22 +314,18 @@
    @ApiOperation(value = "修改个人信息", tags = {"APP-登录注册"})
    @ApiImplicitParams({
    })
    public ResultUtil<String> updateInfo(UpdateInfoDto dto){
    public ResultUtil<String> updateInfo(UpdateInfoDto dto) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            return appUserService.updateInfo(dto,uid);
        }catch (Exception e){
            return appUserService.updateInfo(dto, uid);
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -333,19 +336,19 @@
            @ApiImplicitParam(value = "短信验证码", name = "code", dataType = "string", required = true),
            @ApiImplicitParam(value = "新密码", name = "password", dataType = "string", required = true)
    })
    public ResultUtil updatePassword(String phone, String code, String password){
        if(ToolUtil.isEmpty(phone)){
    public ResultUtil updatePassword(String phone, String code, String password) {
        if (ToolUtil.isEmpty(phone)) {
            return ResultUtil.paranErr("phone");
        }
        if(ToolUtil.isEmpty(code)){
        if (ToolUtil.isEmpty(code)) {
            return ResultUtil.paranErr("code");
        }
        if(ToolUtil.isEmpty(password)){
        if (ToolUtil.isEmpty(password)) {
            return ResultUtil.paranErr("password");
        }
        try {
            return appUserService.updatePassword(phone, code, password);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -360,24 +363,23 @@
            @ApiImplicitParam(value = "短信验证码", name = "code", dataType = "string", required = true),
            @ApiImplicitParam(value = "新密码", name = "password", dataType = "string", required = true)
    })
    public ResultUtil forgetPassword(String phone, String code, String password){
        if(ToolUtil.isEmpty(phone)){
    public ResultUtil forgetPassword(String phone, String code, String password) {
        if (ToolUtil.isEmpty(phone)) {
            return ResultUtil.paranErr("phone");
        }
        if(ToolUtil.isEmpty(code)){
        if (ToolUtil.isEmpty(code)) {
            return ResultUtil.paranErr("code");
        }
        if(ToolUtil.isEmpty(password)){
        if (ToolUtil.isEmpty(password)) {
            return ResultUtil.paranErr("password");
        }
        try {
            return appUserService.updatePassword(phone, code, password);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -388,23 +390,20 @@
            @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = false),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<JoinPlayPaiVo> queryJoinPlayPai(String lon, String lat){
    public ResultUtil<JoinPlayPaiVo> queryJoinPlayPai(String lon, String lat) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            JoinPlayPaiVo joinPlayPaiVo = appUserService.queryJoinPlayPai(uid, lon, lat);
            return ResultUtil.success(joinPlayPaiVo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -414,50 +413,47 @@
            @ApiImplicitParam(value = "支付方式(1=微信,2=支付宝)", name = "payType", dataType = "int", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil addVipPayment(Integer payType){
        if(ToolUtil.isEmpty(payType)){
    public ResultUtil addVipPayment(Integer payType) {
        if (ToolUtil.isEmpty(payType)) {
            return ResultUtil.paranErr("payType");
        }
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            return vipPaymentService.addVipPayment(uid, payType);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    /**
     * 购买年度会员支付微信回调
     *
     * @param request
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/appUser/addVipPaymentWeChatCallback")
    public void addVipPaymentWeChatCallback(HttpServletRequest request, HttpServletResponse response){
    public void addVipPaymentWeChatCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
            if(null != map){
            if (null != map) {
                String out_trade_no = map.get("out_trade_no");
                String transaction_id = map.get("transaction_id");
                String result = map.get("result");
                ResultUtil resultUtil = vipPaymentService.addVipPaymentCallback(out_trade_no, transaction_id);
                if(resultUtil.getCode() == 200){
                if (resultUtil.getCode() == 200) {
                    PrintWriter out = response.getWriter();
                    out.write(result);
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -465,28 +461,29 @@
    /**
     * 购买年度会员支付支付宝回调
     *
     * @param request
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/appUser/addVipPaymentAliCallback")
    public void addVipPaymentAliCallback(HttpServletRequest request, HttpServletResponse response){
    public void addVipPaymentAliCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            System.err.println("==============购买优惠卷回调=========");
            Map<String, String> map = payMoneyUtil.alipayCallback(request);
            if(null != map){
            if (null != map) {
                String out_trade_no = map.get("out_trade_no");
                String trade_no = map.get("trade_no");
                String appUserId = map.get("passback_params");
                ResultUtil resultUtil = vipPaymentService.addVipPaymentCallback(out_trade_no, trade_no);
                if(resultUtil.getCode() == 200){
                if (resultUtil.getCode() == 200) {
                    PrintWriter out = response.getWriter();
                    out.write("success");
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -494,16 +491,17 @@
    /**
     * 根据用户id获取用户信息
     *
     * @param appUserId
     * @return
     */
    @ResponseBody
    @PostMapping("/base/appUser/queryAppUser")
    public TAppUser queryAppUser(@RequestBody Integer appUserId){
    public TAppUser queryAppUser(@RequestBody Integer appUserId) {
        try {
            TAppUser appUser = appUserService.getById(appUserId);
            return appUser;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -512,25 +510,27 @@
    @Autowired
    private UserIntegralChangesService userIntegralChangesService;
    /**
     * 修改用户信息
     *
     * @param appUser
     */
    @ResponseBody
    @PostMapping("/base/appUser/updateAppUser")
    public void updateAppUser(@RequestBody TAppUser appUser){
    public void updateAppUser(@RequestBody TAppUser appUser) {
        try {
            appUserService.updateById(appUser);
            UserIntegralChanges userIntegralChanges = new UserIntegralChanges();
            userIntegralChanges.setAppUserId(appUser.getId());
            userIntegralChanges.setOldIntegral(appUser.getIntegral()+appUser.getPoints());
            userIntegralChanges.setOldIntegral(appUser.getIntegral() + appUser.getPoints());
            userIntegralChanges.setType(5);
            userIntegralChanges.setNewIntegral(appUser.getIntegral());
            userIntegralChanges.setInsertTime(new Date());
            userIntegralChanges.setCategory(2);
            userIntegralChangesService.save(userIntegralChanges);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -538,38 +538,38 @@
    @PostMapping("/base/appUser/getAllUser")
    @ResponseBody
    public List<TAppUser> getAllUser(){
    public List<TAppUser> getAllUser() {
        try {
            return appUserService.list();
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return new ArrayList<>();
        }
    }
    @PostMapping("/base/appUser/queryByNamePhone")
    public List<TAppUser> queryByNamePhone(@RequestBody QueryByNamePhone queryByNamePhone){
    public List<TAppUser> queryByNamePhone(@RequestBody QueryByNamePhone queryByNamePhone) {
        try {
            LambdaQueryWrapper<TAppUser> tAppUserLambdaQueryWrapper = new LambdaQueryWrapper<>();
            if(ToolUtil.isNotEmpty(queryByNamePhone.getName())){
                tAppUserLambdaQueryWrapper.like(TAppUser::getName,queryByNamePhone.getName());
            if (ToolUtil.isNotEmpty(queryByNamePhone.getName())) {
                tAppUserLambdaQueryWrapper.like(TAppUser::getName, queryByNamePhone.getName());
            }
            if(ToolUtil.isNotEmpty(queryByNamePhone.getPhone())){
                tAppUserLambdaQueryWrapper.like(TAppUser::getPhone,queryByNamePhone.getPhone());
            if (ToolUtil.isNotEmpty(queryByNamePhone.getPhone())) {
                tAppUserLambdaQueryWrapper.like(TAppUser::getPhone, queryByNamePhone.getPhone());
            }
            List<TAppUser> list = appUserService.list(tAppUserLambdaQueryWrapper);
            return list;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return new ArrayList<>();
        }
    }
    @PostMapping("/base/appUser/queryById")
    public TAppUser queryById(@RequestBody Integer appUserId){
    public TAppUser queryById(@RequestBody Integer appUserId) {
        try {
            return appUserService.getById(appUserId);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return new TAppUser();
        }
@@ -578,27 +578,27 @@
    /**
     * 根据名称模糊搜索用户
     *
     * @param name
     * @return
     */
    @ResponseBody
    @PostMapping("/appUser/queryAppUserListByName")
    public List<TAppUser> queryAppUserListByName(@RequestBody String name){
    public List<TAppUser> queryAppUserListByName(@RequestBody String name) {
        return appUserService.list(new QueryWrapper<TAppUser>().eq("state", 1).like("name", name));
    }
    @PostMapping("/appUser/addCourseInfoRecord")
    public Boolean addCourseInfoRecord(@RequestBody TCourseInfoRecord tCourseInfoRecord){
    public Boolean addCourseInfoRecord(@RequestBody TCourseInfoRecord tCourseInfoRecord) {
        boolean save = courseInfoRecordService.save(tCourseInfoRecord);
        return save;
    }
    @PostMapping("/appUser/getSelects")
    public List<SelectDto> getSelects(@RequestBody List<Integer> studentIds){
        List<SelectDto> selectDtos =    appUserService.getSelects(studentIds);
        System.out.println("=======selectDtos======>"+selectDtos);
    public List<SelectDto> getSelects(@RequestBody List<Integer> studentIds) {
        List<SelectDto> selectDtos = appUserService.getSelects(studentIds);
        System.out.println("=======selectDtos======>" + selectDtos);
        return selectDtos;
    }
}
cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java
@@ -40,26 +40,26 @@
    @PostMapping("/base/city/list")
    public Page<TCityManager> list(@RequestBody CityListQuery listQuery){
    public Page<TCityManager> list(@RequestBody CityListQuery listQuery) {
        try {
            Page<TCityManager> page = new Page<>(listQuery.getOffset(), listQuery.getLimit());
            LambdaQueryWrapper<TCityManager> tCityManagerLambdaQueryWrapper = new LambdaQueryWrapper<>();
            tCityManagerLambdaQueryWrapper.ne(TCityManager::getState,3);
            if(ToolUtil.isNotEmpty(listQuery.getProvinceCode())){
                tCityManagerLambdaQueryWrapper.eq(TCityManager::getProvinceCode,listQuery.getProvinceCode());
            tCityManagerLambdaQueryWrapper.ne(TCityManager::getState, 3);
            if (ToolUtil.isNotEmpty(listQuery.getProvinceCode())) {
                tCityManagerLambdaQueryWrapper.eq(TCityManager::getProvinceCode, listQuery.getProvinceCode());
            }
            if(ToolUtil.isNotEmpty(listQuery.getCityCode())){
                tCityManagerLambdaQueryWrapper.eq(TCityManager::getCityCode,listQuery.getCityCode());
            if (ToolUtil.isNotEmpty(listQuery.getCityCode())) {
                tCityManagerLambdaQueryWrapper.eq(TCityManager::getCityCode, listQuery.getCityCode());
            }
            if(ToolUtil.isNotEmpty(listQuery.getName())){
                tCityManagerLambdaQueryWrapper.like(TCityManager::getName,listQuery.getName());
            if (ToolUtil.isNotEmpty(listQuery.getName())) {
                tCityManagerLambdaQueryWrapper.like(TCityManager::getName, listQuery.getName());
            }
            if(ToolUtil.isNotEmpty(listQuery.getPhone())){
                tCityManagerLambdaQueryWrapper.like(TCityManager::getPhone,listQuery.getPhone());
            if (ToolUtil.isNotEmpty(listQuery.getPhone())) {
                tCityManagerLambdaQueryWrapper.like(TCityManager::getPhone, listQuery.getPhone());
            }
            Page<TCityManager> page1 = cityService.page(page, tCityManagerLambdaQueryWrapper);
            return page1;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -67,11 +67,11 @@
    @PostMapping("/base/city/add")
    public Integer add(@RequestBody TCityManager manager){
    public Integer add(@RequestBody TCityManager manager) {
        try {
            cityService.save(manager);
            return manager.getId();
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -79,10 +79,10 @@
    @PostMapping("/base/city/getById")
    public TCityManager getById(@RequestBody Integer id){
    public TCityManager getById(@RequestBody Integer id) {
        try {
            return cityService.getById(id);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -90,32 +90,33 @@
    @PostMapping("/base/city/update")
    public void update(@RequestBody TCityManager manager){
    public void update(@RequestBody TCityManager manager) {
        try {
             cityService.updateById(manager);
        }catch (Exception e){
            cityService.updateById(manager);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @PostMapping("/base/city/freeze")
    public void freeze(@RequestBody Integer id){
    public void freeze(@RequestBody Integer id) {
        try {
            TCityManager byId = cityService.getById(id);
            byId.setState(2);
            cityService.updateById(byId);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @PostMapping("/base/city/unfreeze")
    public void unfreeze(@RequestBody Integer id){
    public void unfreeze(@RequestBody Integer id) {
        try {
            TCityManager byId = cityService.getById(id);
            byId.setState(1);
            cityService.updateById(byId);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
cloud-server-account/src/main/java/com/dsh/account/controller/CityManagerController.java
@@ -33,23 +33,25 @@
     * 根据管理员id获取详情信息
     */
    @RequestMapping("/cityManager/getStoreById")
    public CityManager getStoreById(@RequestParam Integer id){
        return cityManagerService.getOne(new QueryWrapper<CityManager>().eq("id",id));
    public CityManager getStoreById(@RequestParam Integer id) {
        return cityManagerService.getOne(new QueryWrapper<CityManager>().eq("id", id));
    }
    /**
     * 获取已有城市管理的省、市
     */
    @ResponseBody
    @RequestMapping("/cityManager/listAll")
    public List<CityManager> listAll(){
    public List<CityManager> listAll() {
        return cityManagerService.listAll();
    }
    /**
     * 选择省 展示市
     */
    @RequestMapping("/cityManager/getCity")
    @ResponseBody
    public List<CityManager> getCity(@RequestBody String province){
    public List<CityManager> getCity(@RequestBody String province) {
        List<CityManager> province1 = cityManagerService.list(new QueryWrapper<CityManager>().eq("province", province));
        List<CityManager> distinctCities = province1.stream()
                .collect(Collectors.collectingAndThen(
@@ -65,21 +67,20 @@
     */
    @RequestMapping("/cityManager/getAccount")
    @ResponseBody
    public List<CityManager> getAccount(@RequestBody String city){
        return cityManagerService.list(new QueryWrapper<CityManager>().eq("city",city).ne("state",2).ne("state",3));
    public List<CityManager> getAccount(@RequestBody String city) {
        return cityManagerService.list(new QueryWrapper<CityManager>().eq("city", city).ne("state", 2).ne("state", 3));
    }
    /**
     * 根据id获取数据
     *
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/cityManager/queryCityManagerById")
    public CityManager queryCityManagerById(@RequestBody Integer id){
    public CityManager queryCityManagerById(@RequestBody Integer id) {
        return cityManagerService.getById(id);
    }
cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
@@ -63,21 +63,20 @@
    private TAppGiftService appGiftService;
    @ResponseBody
    @PostMapping("/api/startCource/queryStudentData")
    @ApiOperation(value = "上课首页", tags = {"APP-开始上课"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<ClassInfoVo> queryCouponRecord(Integer stuId){
    public ResultUtil<ClassInfoVo> queryCouponRecord(Integer stuId) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(tappuService.queryUserOfStus(stuId,userIdFormRedis));
        }catch (Exception e){
            return ResultUtil.success(tappuService.queryUserOfStus(stuId, userIdFormRedis));
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -94,19 +93,20 @@
            @ApiImplicitParam(value = "用户经度", name = "longitude", required = false, dataType = "string"),
            @ApiImplicitParam(value = "用户纬度", name = "latitude", required = false, dataType = "string"),
    })
    public ResultUtil<List<CourseVenue>> queryWeeksOfClassInfo(String time,Integer stuId, String longitude, String latitude){
    public ResultUtil<List<CourseVenue>> queryWeeksOfClassInfo(String time, Integer stuId, String longitude, String latitude) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(tappuService.queryWeekOfCourseDetails(appUserId,stuId,time,longitude,latitude));
        }catch (Exception e){
            return ResultUtil.success(tappuService.queryWeekOfCourseDetails(appUserId, stuId, time, longitude, latitude));
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/api/startCource/weeksOfCourseDetailsList")
    @ApiOperation(value = "上课首页-课程列表2.0", tags = {"APP-开始上课"})
@@ -118,14 +118,14 @@
            @ApiImplicitParam(value = "用户经度", name = "longitude", required = false, dataType = "string"),
            @ApiImplicitParam(value = "用户纬度", name = "latitude", required = false, dataType = "string"),
    })
    public ResultUtil<Map<String,Object>> weeksOfCourseDetailsList(String time, Integer stuId, Integer storeId, String longitude, String latitude){
    public ResultUtil<Map<String, Object>> weeksOfCourseDetailsList(String time, Integer stuId, Integer storeId, String longitude, String latitude) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(tappuService.weeksOfCourseDetailsList(appUserId,stuId,time,storeId,longitude,latitude));
        }catch (Exception e){
            return ResultUtil.success(tappuService.weeksOfCourseDetailsList(appUserId, stuId, time, storeId, longitude, latitude));
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -137,16 +137,16 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil<Integer> weeksOfGetHours(){
    public ResultUtil<Integer> weeksOfGetHours() {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, appUserId));
            return ResultUtil.success(one==null?0:one.getNum());
        }catch (Exception e){
            return ResultUtil.success(one == null ? 0 : one.getNum());
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -160,28 +160,28 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "分配给课包id", name = "packetId", required = true, dataType = "Long"),
    })
    public ResultUtil<Integer> weeksOfAddHours(Long packetId){
    public ResultUtil<Integer> weeksOfAddHours(Long packetId) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, appUserId));
            Boolean b= false;
            Integer i=0;
            if(one!=null && one.getNum()>0){
                 i=appGiftService.weeksOfAddHours(packetId,appUserId,one.getNum());
            Boolean b = false;
            Integer i = 0;
            if (one != null && one.getNum() > 0) {
                i = appGiftService.weeksOfAddHours(packetId, appUserId, one.getNum());
            }
            if(i==1){
            if (i == 1) {
                // 送完清0
                one.setNum(0);
                appGiftService.updateById(one);
                return ResultUtil.success();
            }else {
            } else {
                return ResultUtil.runErr();
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -195,13 +195,13 @@
            @ApiImplicitParam(value = "学员id", name = "stuID", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<StuPhysicalVo> getStuPhysicalInfo(Integer stuID){
    public ResultUtil<StuPhysicalVo> getStuPhysicalInfo(Integer stuID) {
        StuPhysicalVo vo = new StuPhysicalVo();
        TStudent tStudent = istuService.getById(stuID);
        if (ToolUtil.isNotEmpty(tStudent)){
        if (ToolUtil.isNotEmpty(tStudent)) {
            vo.setBmi(tStudent.getBmi());
            vo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi()));
            if (tStudent.getLateralSurface()!=null) {
            if (tStudent.getLateralSurface() != null) {
                String[] split = tStudent.getLateralSurface().split(";");
                vo.setUrls(split);
            }
@@ -221,14 +221,14 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    @Transactional
    public ResultUtil addStu(StuDetailsReq stu){
    public ResultUtil addStu(StuDetailsReq stu) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return istuService.addStuOfAppUser(stu,userIdFormRedis);
        }catch (Exception e){
            return istuService.addStuOfAppUser(stu, userIdFormRedis);
        } catch (Exception e) {
            return ResultUtil.runErr(ResultUtil.ERROR);
        }
    }
@@ -242,22 +242,22 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<StuListVo>> queryStuList(){
    public ResultUtil<List<StuListVo>> queryStuList() {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            List<StuListVo> stuListVos = new ArrayList<>();
            List<TStudent> tStudents = istuService.list(new QueryWrapper<TStudent>()
                    .eq("appUserId",userIdFormRedis).eq("state",1));
            if (tStudents.size() > 0){
                    .eq("appUserId", userIdFormRedis).eq("state", 1));
            if (tStudents.size() > 0) {
                tStudents.forEach(sts -> {
                    StuListVo vo = new StuListVo();
                    vo.setStuId(sts.getId());
                    vo.setStuHeadImg(sts.getHeadImg());
                    vo.setStuPhone(ToolUtil.isEmpty(sts.getPhone()) ? "" : sts.getPhone());
                    vo.setIdCard(ToolUtil.isEmpty(sts.getIdCard()) ? "":sts.getIdCard());
                    vo.setIdCard(ToolUtil.isEmpty(sts.getIdCard()) ? "" : sts.getIdCard());
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                    vo.setBirthday(simpleDateFormat.format(sts.getBirthday()));
                    vo.setStuName(sts.getName());
@@ -271,7 +271,7 @@
                });
            }
            return ResultUtil.success(stuListVos);
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -287,18 +287,17 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
    })
    public ResultUtil<List<StuListVo>> dealSwitchStudents(Integer stuId){
    public ResultUtil<List<StuListVo>> dealSwitchStudents(Integer stuId) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(istuService.switchStudentActions(userIdFormRedis,stuId));
        }catch (Exception e){
            return ResultUtil.success(istuService.switchStudentActions(userIdFormRedis, stuId));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    /**
@@ -311,10 +310,10 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
    })
    public ResultUtil<StuDetailsVo> editStudentInfo(Integer stuId){
    public ResultUtil<StuDetailsVo> editStudentInfo(Integer stuId) {
        try {
            TStudent byId = istuService.getById(stuId);
            if (ToolUtil.isEmpty(byId)){
            if (ToolUtil.isEmpty(byId)) {
                ResultUtil.error("未查询到该学员!");
            }
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
@@ -325,14 +324,13 @@
            detailsVo.setBirthday(simpleDateFormat.format(byId.getBirthday()));
            detailsVo.setStuHeight(byId.getHeight());
            detailsVo.setStuWeight(byId.getWeight());
            detailsVo.setIdCard(ToolUtil.isEmpty(byId.getIdCard()) ? "": byId.getIdCard());
            detailsVo.setStuPhone(ToolUtil.isEmpty(byId.getPhone()) ?  "" : byId.getPhone());
            detailsVo.setIdCard(ToolUtil.isEmpty(byId.getIdCard()) ? "" : byId.getIdCard());
            detailsVo.setStuPhone(ToolUtil.isEmpty(byId.getPhone()) ? "" : byId.getPhone());
            return ResultUtil.success(detailsVo);
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    /**
@@ -345,23 +343,21 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
    })
    public ResultUtil commitEditStu(StuDetailsReq stu){
    public ResultUtil commitEditStu(StuDetailsReq stu) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Double height = stu.getHeight();
            Double squareHeight = Math.pow(height/100, 2);
            Double squareHeight = Math.pow(height / 100, 2);
            Double weight = stu.getWeight();
            Double bim = weight/squareHeight;
            Double bim = weight / squareHeight;
            TStudent tStudent = new TStudent();
            tStudent.setId(stu.getStuId());
@@ -375,21 +371,20 @@
            tStudent.setIdCard(stu.getIdCard());
            tStudent.setBmi(bim);
            if(ToolUtil.isNotEmpty(tStudent.getName()) && ToolUtil.isNotEmpty(tStudent.getIdCard())){
            if (ToolUtil.isNotEmpty(tStudent.getName()) && ToolUtil.isNotEmpty(tStudent.getIdCard())) {
                Boolean aBoolean = JuHeUtil.idcardAuthentication(tStudent.getIdCard(), tStudent.getName());
                if(!aBoolean){
                if (!aBoolean) {
                    return ResultUtil.error("身份证和姓名不匹配");
                }
            }
          return  ResultUtil.success(istuService.updateById(tStudent));
            return ResultUtil.success(istuService.updateById(tStudent));
//            return ResultUtil.success(istuService.commitEditStudentInfo(stu,userIdFormRedis));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    /**
@@ -402,32 +397,30 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
    })
    public ResultUtil editDefault(Integer stuId){
    public ResultUtil editDefault(Integer stuId) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            TStudent byId = istuService.getById(stuId);
            if (ToolUtil.isEmpty(byId)){
            if (ToolUtil.isEmpty(byId)) {
                ResultUtil.error("未查询到该学员!");
            }
            byId.setIsDefault(1);
            istuService.updateById(byId);
            List<TStudent> list = istuService.list(new LambdaQueryWrapper<TStudent>()
                    .eq(TStudent::getAppUserId,userIdFormRedis)
                    .ne(TStudent::getId,byId.getId()));
                    .eq(TStudent::getAppUserId, userIdFormRedis)
                    .ne(TStudent::getId, byId.getId()));
            for (TStudent tStudent : list) {
                tStudent.setIsDefault(2);
                istuService.updateById(tStudent);
            }
            return ResultUtil.success();
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    /**
@@ -441,20 +434,19 @@
            @ApiImplicitParam(value = "课包id", name = "lessonId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
    })
    public ResultUtil<ClassDetailsInsVo> coursePackageDetails(Integer lessonId, Integer stuId){
    public ResultUtil<ClassDetailsInsVo> coursePackageDetails(Integer lessonId, Integer stuId) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(istuService.querySessionDetailsDt(userIdFormRedis,lessonId,stuId));
        }catch (Exception e){
            return ResultUtil.success(istuService.querySessionDetailsDt(userIdFormRedis, lessonId, stuId));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    /**
@@ -466,14 +458,14 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil<List<PurchaseRecordVo>> recordList(RecordTimeRequest timeRequest){
    public ResultUtil<List<PurchaseRecordVo>> recordList(RecordTimeRequest timeRequest) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(istuService.queryDeduRecordDetails(timeRequest,userIdFormRedis));
        }catch (Exception e){
            return ResultUtil.success(istuService.queryDeduRecordDetails(timeRequest, userIdFormRedis));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -490,14 +482,14 @@
            @ApiImplicitParam(value = "课包id", name = "lessonId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
    })
    public ResultUtil<CourseDetailsOfContinuationResp> renewalOfCourses(Integer lessonId, Integer stuId){
    public ResultUtil<CourseDetailsOfContinuationResp> renewalOfCourses(Integer lessonId, Integer stuId) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(istuService.queryStuOfCourseDetails(lessonId,stuId,userIdFormRedis));
        }catch (Exception e){
            return ResultUtil.success(istuService.queryStuOfCourseDetails(lessonId, stuId, userIdFormRedis));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
@@ -513,19 +505,18 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<CouponStuAvailableVo>> queryCouponList(){
    public ResultUtil<List<CouponStuAvailableVo>> queryCouponList() {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(istuService.queryStuOfConponDetails(userIdFormRedis));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    /**
@@ -537,14 +528,14 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil continuationOperation(ClasspaymentRequest request){
    public ResultUtil continuationOperation(ClasspaymentRequest request) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return istuService.renewClassPayment(userIdFormRedis,request);
        }catch (Exception e){
            return istuService.renewClassPayment(userIdFormRedis, request);
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -562,10 +553,10 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
    })
    public ResultUtil<List<StuCommentsVo>> queryStuComment( Integer stuId){
    public ResultUtil<List<StuCommentsVo>> queryStuComment(Integer stuId) {
        try {
            return ResultUtil.success(evalstuService.queryStuCommentsList(stuId));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -581,17 +572,16 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
    })
    public ResultUtil<List<StuMedalVo>> queryStuMedal( Integer stuId){
    public ResultUtil<List<StuMedalVo>> queryStuMedal(Integer stuId) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(honorService.queryHonorDetails(stuId));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -607,14 +597,14 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
    })
    public ResultUtil<List<GongVo>> queryStuGoog(Integer stuId){
    public ResultUtil<List<GongVo>> queryStuGoog(Integer stuId) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(honorService.queryStuOfMedalData(stuId));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -632,18 +622,13 @@
            @ApiImplicitParam(value = "时间类型 0=全部 1=近一周 2=近一个月 3=近一年", name = "timeType", required = false, dataType = "int"),
            @ApiImplicitParam(value = "课程名称", name = "appointStatus", required = false, dataType = "string"),
    })
    public ResultUtil<List<RecordAppoint>> cgeClassAppointmentRecordList(Integer stuId, Integer appointStatus, Integer timeType, String search,Integer pageNum){
//        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(istuService.getAppointmentRecords(stuId,appUserId,appointStatus,timeType,search,pageNum));
//        }catch (Exception e){
//            return ResultUtil.runErr();
//        }
    public ResultUtil<List<RecordAppoint>> cgeClassAppointmentRecordList(Integer stuId, Integer appointStatus, Integer timeType, String search, Integer pageNum) {
        Integer appUserId = tokenUtil.getUserIdFormRedis();
        if (null == appUserId) {
            return ResultUtil.tokenErr();
        }
        return ResultUtil.success(istuService.getAppointmentRecords(stuId, appUserId, appointStatus, timeType, search, pageNum));
    }
    /**
@@ -656,14 +641,14 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "上课记录id", name = "courseStuRecordId", required = true, dataType = "int"),
    })
    public ResultUtil cancelReservation(Integer courseStuRecordId){
    public ResultUtil cancelReservation(Integer courseStuRecordId) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            return istuService.cancelReservationOfCourse(courseStuRecordId);
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
cloud-server-account/src/main/java/com/dsh/account/controller/CoachController.java
@@ -23,20 +23,23 @@
    /**
     * 根据名称模糊搜索数据
     *
     * @param name
     * @return
     */
    @PostMapping("/coach/queryCoachListByName")
    @ResponseBody
    public List<Coach> queryCoachListByName(@RequestBody String name){
        return service.list(new QueryWrapper<Coach>().like("name",name));
    public List<Coach> queryCoachListByName(@RequestBody String name) {
        return service.list(new QueryWrapper<Coach>().like("name", name));
    }
    /**根据运营商id查询教练
    /**
     * 根据运营商id查询教练
     */
    @PostMapping("/coach/queryCoachByOperatorId")
    @ResponseBody
    public List<Coach> queryCoachByOperatorId(@RequestBody Integer operatorId){
        return service.list(new QueryWrapper<Coach>().eq("cityManagerId",operatorId));
    public List<Coach> queryCoachByOperatorId(@RequestBody Integer operatorId) {
        return service.list(new QueryWrapper<Coach>().eq("cityManagerId", operatorId));
    }
    /**
@@ -44,40 +47,44 @@
     */
    @ResponseBody
    @RequestMapping("/coach/listAll")
    public List<CoachSerchVO> listAll(@RequestBody CoachQuery query){
    public List<CoachSerchVO> listAll(@RequestBody CoachQuery query) {
        List<CoachSerchVO> coachSerchVOS = service.listAll(query);
        for (CoachSerchVO coachSerchVO : coachSerchVOS) {
            coachSerchVO.setNameAndPhone(coachSerchVO.getAccountName()+"-"+coachSerchVO.getAccountPhone());
            coachSerchVO.setNameAndPhone(coachSerchVO.getAccountName() + "-" + coachSerchVO.getAccountPhone());
        }
        return coachSerchVOS;
    }
    /**
     * 上/下架、删除常见问题 type=1为上架 2为下架
     */
    @RequestMapping("/coach/changeState")
    public Object changeState(@RequestBody CoachChangeStateVO vo){
    public Object changeState(@RequestBody CoachChangeStateVO vo) {
        return service.changeState(vo);
    }
    /**
     * 添加教练
     *
     * @return
     */
    @RequestMapping("/base/site/addCoach")
    public Object addCoach(@RequestBody Coach coach){
    public Object addCoach(@RequestBody Coach coach) {
        if(coach.getId()!= null ){
        if (coach.getId() != null) {
            return service.updateById(coach);
        }else {
        } else {
            return service.save(coach);
        }
    }
    /**
     * 获取所有省
     */
    @ResponseBody
    @PostMapping("/coach/getProvince")
    public List<Coach> getProvince(){
    public List<Coach> getProvince() {
        return service.list();
    }
@@ -86,21 +93,22 @@
     */
    @ResponseBody
    @PostMapping("/coach/getCity")
    public List<Coach> getCity(@RequestBody String city){
        return service.list(new QueryWrapper<Coach>().eq("province",city));
    public List<Coach> getCity(@RequestBody String city) {
        return service.list(new QueryWrapper<Coach>().eq("province", city));
    }
    /**
     * 根据门店
     *
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/coach/queryCoachById")
    public Coach queryCoachById(@RequestBody Integer id){
    public Coach queryCoachById(@RequestBody Integer id) {
        try {
            return service.getById(id);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -109,12 +117,13 @@
    /**
     * 获取城市下的所有教练
     *
     * @param cityCode
     * @return
     */
    @ResponseBody
    @PostMapping("/coach/queryCoachByCity")
    public List<Coach> queryCoachByCity(@RequestBody String cityCode){
    public List<Coach> queryCoachByCity(@RequestBody String cityCode) {
        return service.list(new QueryWrapper<Coach>().eq("cityCode", cityCode).eq("state", 1));
    }
}
cloud-server-account/src/main/java/com/dsh/account/controller/CoachTypeController.java
@@ -25,29 +25,31 @@
    /**
     * 根据门店
     *
     * @param
     * @return
     */
    @ResponseBody
    @PostMapping("/coachType/list")
    public List<CoachType> list(){
    public List<CoachType> list() {
        return typeService.list(new QueryWrapper<CoachType>().ne("state",3));
        return typeService.list(new QueryWrapper<CoachType>().ne("state", 3));
    }
    /**
     * 新增教练类型
     *
     * @param
     * @return
     */
    @ResponseBody
    @RequestMapping("/coachType/add")
    public Object add(@RequestBody String name){
    public Object add(@RequestBody String name) {
        List<CoachType> list = typeService.list(new QueryWrapper<CoachType>().eq("name", name));
        if (list.size()!= 0){
        if (list.size() != 0) {
            return 500;
        }else{
        } else {
            CoachType coachType = new CoachType();
            coachType.setName(name);
            coachType.setState(1);
@@ -55,14 +57,16 @@
            return 200;
        }
    }
    /**
     * 删除教练类型
     *
     * @param
     * @return
     */
    @ResponseBody
    @RequestMapping("/coachType/delete")
    public Object delete(@RequestBody Integer id){
    public Object delete(@RequestBody Integer id) {
        CoachType coachType = new CoachType();
        coachType.setId(id);
        coachType.setState(3);
@@ -71,16 +75,17 @@
    /**
     * 修改教练类型
     *
     * @param
     * @return
     */
    @ResponseBody
    @RequestMapping("/coachType/update")
    public Object update(@RequestBody CoachType coachType){
    public Object update(@RequestBody CoachType coachType) {
        List<CoachType> list = typeService.list(new QueryWrapper<CoachType>().eq("name", coachType.getName()));
        if (list.size()!= 0){
        if (list.size() != 0) {
            return 500;
        }else{
        } else {
            typeService.updateById(coachType);
            return 200;
cloud-server-account/src/main/java/com/dsh/account/controller/ExploreWPController.java
@@ -34,23 +34,22 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<StoreInfo>> indexOfExploreDetail(LonLatRequest llrequest){
    public ResultUtil<List<StoreInfo>> indexOfExploreDetail(LonLatRequest llrequest) {
        try {
            return ResultUtil.success(tsService.queryIndexOfExplores(llrequest));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/base/exploreWP/noticeList")
    @ApiOperation(value = "联系客服-公告列表", tags = {"APP-探索玩湃"})
    public ResultUtil<List<SysNotice>> queryNoticeListDatas(){
    public ResultUtil<List<SysNotice>> queryNoticeListDatas() {
        try {
            return ResultUtil.success(tsService.querySystemNoticeDetails());
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -59,10 +58,10 @@
    @ResponseBody
    @PostMapping("/base/exploreWP/noticeDetail")
    @ApiOperation(value = "联系客服-公告详情", tags = {"APP-探索玩湃"})
    public ResultUtil<SysNotice> queryNotice(Integer noId){
    public ResultUtil<SysNotice> queryNotice(Integer noId) {
        try {
            return ResultUtil.success(tsService.queryNoticeData(noId));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -71,11 +70,11 @@
    @ResponseBody
    @PostMapping("/base/exploreWP/exceptionList")
    @ApiOperation(value = "联系客服-常见问题列表", tags = {"APP-探索玩湃"})
    public ResultUtil<List<QuestionIns>> queryFrequentlyAskedQuestionDetails(){
    public ResultUtil<List<QuestionIns>> queryFrequentlyAskedQuestionDetails() {
        try {
            List<QuestionIns> questionIns = tsService.queryQuestionData();
            return ResultUtil.success(questionIns);
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -87,10 +86,10 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "问题记录id", name = "quesId", required = true, dataType = "int"),
    })
    public ResultUtil<QuestionIns> queryQuestionData(Integer quesId){
    public ResultUtil<QuestionIns> queryQuestionData(Integer quesId) {
        try {
            return ResultUtil.success(tsService.queryQuestionDataInfo(quesId));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -98,10 +97,10 @@
    @ResponseBody
    @PostMapping("/base/exploreWP/customerList")
    @ApiOperation(value = "联系客服-客服电话列表", tags = {"APP-探索玩湃"})
    public ResultUtil<List<String>> queryCustomerData(){
    public ResultUtil<List<String>> queryCustomerData() {
        try {
            return ResultUtil.success(tsService.queryCustomerDetails());
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -117,9 +116,9 @@
            @ApiImplicitParam(value = "经度", name = "longitude", required = true, dataType = "string"),
            @ApiImplicitParam(value = "搜索", name = "search", required = true, dataType = "string"),
    })
    public ResultUtil<List<StoreDetailList>> getStoreListCon(Integer space,String cityCode,String latitude,String longitude,String search){
    public ResultUtil<List<StoreDetailList>> getStoreListCon(Integer space, String cityCode, String latitude, String longitude, String search) {
//        try {
            return ResultUtil.success(tsService.queryStoreList(space,cityCode,longitude,latitude,search));
        return ResultUtil.success(tsService.queryStoreList(space, cityCode, longitude, latitude, search));
//        }catch (Exception e){
//            return ResultUtil.runErr();
//        }
@@ -132,15 +131,13 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "门店id", name = "storeId", required = true, dataType = "int"),
    })
    public ResultUtil<StoreDetailsVo> getStoreDetails(Integer storeId){
    public ResultUtil<StoreDetailsVo> getStoreDetails(Integer storeId) {
        try {
            return ResultUtil.success(tsService.getStoreDetail(storeId));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
}
cloud-server-account/src/main/java/com/dsh/account/controller/FinanceController.java
@@ -40,30 +40,31 @@
     */
    @ResponseBody
    @RequestMapping("/finance/rechargeList")
    public List<RechargeRecordsVO> rechargeList(@RequestBody RechargeRecordsQuery query){
    public List<RechargeRecordsVO> rechargeList(@RequestBody RechargeRecordsQuery query) {
        List<RechargeRecordsVO> rechargeRecordsVOS = rechargeRecordsService.rechargeList(query);
        for (RechargeRecordsVO rechargeRecordsVO : rechargeRecordsVOS) {
            TAppUser byId = appUserService.getById(rechargeRecordsVO.getAppUserId());
            if (byId==null)continue;
            if (byId == null) continue;
            Date vipEndTime = byId.getVipEndTime();
            if (vipEndTime==null){
            if (vipEndTime == null) {
                rechargeRecordsVO.setType(2);
                continue;
            }
            if (rechargeRecordsVO.getPayTime().after(vipEndTime)){
            if (rechargeRecordsVO.getPayTime().after(vipEndTime)) {
                rechargeRecordsVO.setType(2);
            }else{
            } else {
                rechargeRecordsVO.setType(1);
            }
        }
        return  rechargeRecordsVOS;
        return rechargeRecordsVOS;
    }
    /**
     * 数据统计-充值记录列表数据
     */
    @ResponseBody
    @RequestMapping("/finance/rechargeList1")
    public List<RechargeRecords> rechargeList1(@RequestBody RechargeRecordsQuery query){
    public List<RechargeRecords> rechargeList1(@RequestBody RechargeRecordsQuery query) {
        List<RechargeRecords> payStatus = rechargeRecordsService.list(new QueryWrapper<RechargeRecords>().eq("payStatus", 2));
        for (RechargeRecords list : payStatus) {
            TAppUser byId = appUserService.getById(list.getAppUserId());
@@ -72,12 +73,13 @@
        }
        return payStatus;
    }
    /**
     * 加入会员列表数据
     */
    @ResponseBody
    @RequestMapping("/finance/vipPaymentList")
    public List<VipPayment> registrationList(@RequestBody IncomeQuery query){
    public List<VipPayment> registrationList(@RequestBody IncomeQuery query) {
        return rechargeRecordsService.listAll(query);
    }
}
cloud-server-account/src/main/java/com/dsh/account/controller/PaymentCallbackController.java
@@ -42,21 +42,21 @@
     * 课包续课支付宝支付回调接口
     */
    @PostMapping("/base/coursePackage/alipayPaymentCallback")
    public void alipayCallback(HttpServletRequest request, HttpServletResponse response){
    public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.alipayCallback(request);
            if(null != map){
            if (null != map) {
                String out_trade_no = map.get("out_trade_no");
                String transaction_id = map.get("transaction_id");
                ResultUtil resultUtil = tstuService.insertVipPaymentCallback(out_trade_no, transaction_id);
                if(resultUtil.getCode() == 200){
                if (resultUtil.getCode() == 200) {
                    PrintWriter out = response.getWriter();
                    out.write("success");
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -66,22 +66,22 @@
     * 课包续课微信支付回调接口
     */
    @PostMapping("/base/coursePackage/wechatPaymentCallback")
    public void weChatCallback(HttpServletRequest request, HttpServletResponse response){
    public void weChatCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
            if(null != map){
            if (null != map) {
                String out_trade_no = map.get("out_trade_no");
                String transaction_id = map.get("transaction_id");
                String result = map.get("result");
                ResultUtil resultUtil = tstuService.insertVipPaymentCallback(out_trade_no, transaction_id);
                if(resultUtil.getCode() == 200){
                if (resultUtil.getCode() == 200) {
                    PrintWriter out = response.getWriter();
                    out.write(result);
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -90,21 +90,21 @@
     * 充值玩湃币支付宝支付回调接口
     */
    @PostMapping("/base/recharge/alipayRechargeCallback")
    public void alipayRechargeCallback(HttpServletRequest request, HttpServletResponse response){
    public void alipayRechargeCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.alipayCallback(request);
            if(null != map){
            if (null != map) {
                String out_trade_no = map.get("out_trade_no");
                String transaction_id = map.get("transaction_id");
                ResultUtil resultUtil = recordsService.addRechargeCallbackPay(out_trade_no, transaction_id);
                if(resultUtil.getCode() == 200){
                if (resultUtil.getCode() == 200) {
                    PrintWriter out = response.getWriter();
                    out.write("success");
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -114,22 +114,22 @@
     * 课包续课微信支付回调接口
     */
    @PostMapping("/base/recharge/wechatRechargeCallback")
    public void wechatRechargeCallback(HttpServletRequest request, HttpServletResponse response){
    public void wechatRechargeCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
            if(null != map){
            if (null != map) {
                String out_trade_no = map.get("out_trade_no");
                String transaction_id = map.get("transaction_id");
                String result = map.get("result");
                ResultUtil resultUtil = recordsService.addRechargeCallbackPay(out_trade_no, transaction_id);
                if(resultUtil.getCode() == 200){
                if (resultUtil.getCode() == 200) {
                    PrintWriter out = response.getWriter();
                    out.write(result);
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -137,27 +137,28 @@
    /**
     * 兑换商品支付的微信回调
     *
     * @param request
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/pointMer/exchangeGoodPaymentWeChatCallback")
    public void addVipPaymentWeChatCallback(HttpServletRequest request, HttpServletResponse response){
    public void exchangeGoodPaymentWeChatCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
            if(null != map){
            if (null != map) {
                String out_trade_no = map.get("out_trade_no");
                String transaction_id = map.get("transaction_id");
                String result = map.get("result");
                ResultUtil resultUtil = tappService.exchangeAddPaymentCallback(out_trade_no, transaction_id,1);
                if(resultUtil.getCode() == 200){
                ResultUtil resultUtil = tappService.exchangeAddPaymentCallback(out_trade_no, transaction_id, 1);
                if (resultUtil.getCode() == 200) {
                    PrintWriter out = response.getWriter();
                    out.write(result);
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -165,26 +166,27 @@
    /**
     * 兑换商品支付的支付宝回调
     *
     * @param request
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/pointMer/exchangeGoodPaymentAliCallback")
    public void addVipPaymentAliCallback(HttpServletRequest request, HttpServletResponse response){
    public void addVipPaymentAliCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.alipayCallback(request);
            if(null != map){
            if (null != map) {
                String out_trade_no = map.get("out_trade_no");
                String trade_no = map.get("trade_no");
                ResultUtil resultUtil = tappService.exchangeAddPaymentCallback(out_trade_no, trade_no,2);
                if(resultUtil.getCode() == 200){
                ResultUtil resultUtil = tappService.exchangeAddPaymentCallback(out_trade_no, trade_no, 2);
                if (resultUtil.getCode() == 200) {
                    PrintWriter out = response.getWriter();
                    out.write("success");
                    out.flush();
                    out.close();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
cloud-server-account/src/main/java/com/dsh/account/controller/StoreStaffController.java
@@ -21,7 +21,7 @@
    @ResponseBody
    @PostMapping("/base/storeStaff/infoById")
    public TStoreStaff baseInfo(@RequestBody Integer id){
    public TStoreStaff baseInfo(@RequestBody Integer id) {
        return tsstaService.getById(id);
    }
}
cloud-server-account/src/main/java/com/dsh/account/controller/StudentController.java
@@ -54,35 +54,40 @@
    /**
     * 添加学员
     *
     * @return
     */
    @RequestMapping("/base/student/addStudent")
    public Object addStudent(@RequestBody TStudent student){
    public Object addStudent(@RequestBody TStudent student) {
        student.setInsertTime(new Date());
        student.setIsDefault(1);
       return studentService.save(student);
        return studentService.save(student);
    }
    /**
     * 获取有学员的用户ids
     *
     * @return
     */
    @ResponseBody
    @PostMapping("/student/getHasStudentUser")
    public List<Integer> getHasStudentUser(){
       return studentService.list(new QueryWrapper<TStudent>()).stream().map(TStudent::getAppUserId).distinct().collect(Collectors.toList());
    public List<Integer> getHasStudentUser() {
        return studentService.list(new QueryWrapper<TStudent>()).stream().map(TStudent::getAppUserId).distinct().collect(Collectors.toList());
    }
    /**
     * 获取用户学员列表
     *
     * @param appUserId
     * @return
     */
    @ResponseBody
    @PostMapping("/student/queryStudentList")
    public List<TStudent> queryStudentList(@RequestBody Integer appUserId){
    public List<TStudent> queryStudentList(@RequestBody Integer appUserId) {
        try {
            List<TStudent> list = studentService.list(new QueryWrapper<TStudent>().eq("appUserId", appUserId).eq("state", 1));
            return list;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return new ArrayList<>();
        }
@@ -91,11 +96,11 @@
    @ResponseBody
    @PostMapping("/student/queryListByIds")
    public List<TStudent> queryListByIds(@RequestBody List<Integer> collect){
    public List<TStudent> queryListByIds(@RequestBody List<Integer> collect) {
        try {
            List<TStudent> list = studentService.list(new QueryWrapper<TStudent>().in("id",collect).eq("state", 1));
            List<TStudent> list = studentService.list(new QueryWrapper<TStudent>().in("id", collect).eq("state", 1));
            return list;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return new ArrayList<>();
        }
@@ -104,30 +109,28 @@
    @ResponseBody
    @PostMapping("/student/queryStudentCom")
    public  List<Map<String, Object>> queryStudentCom(@RequestBody Integer id){
    public List<Map<String, Object>> queryStudentCom(@RequestBody Integer id) {
        List<Map<String, Object>> list = studentService.queryCom(id);
            return list;
        return list;
    }
    @ResponseBody
    @PostMapping("/student/frozen")
    public  void frozen(@RequestBody TStudent student){
            studentService.updateById(student);
    public void frozen(@RequestBody TStudent student) {
        studentService.updateById(student);
    }
    @ResponseBody
    @PostMapping("/student/queryDefaultStudent")
    public TStudent queryDefaultStudent(@RequestBody Integer appUserId){
    public TStudent queryDefaultStudent(@RequestBody Integer appUserId) {
        try {
            TStudent one = studentService.getOne(new QueryWrapper<TStudent>().eq("appUserId", appUserId).eq("isDefault", 1).eq("state", 1).last("limit 1"));
            return one;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -140,10 +143,10 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<StudentVo>> queryStudentList(){
    public ResultUtil<List<StudentVo>> queryStudentList() {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<TStudent> list = studentService.list(new QueryWrapper<TStudent>().eq("appUserId", uid).eq("state", 1));
@@ -158,7 +161,7 @@
                studentVo.setName(tStudent.getName());
            }
            return ResultUtil.success(listVo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -167,16 +170,17 @@
    /**
     * 根据电话号码学员信息
     *
     * @param phone
     * @return
     */
    @ResponseBody
    @PostMapping("/student/queryStudentByPhone")
    public TStudent queryStudentByPhone(@RequestBody String phone){
    public TStudent queryStudentByPhone(@RequestBody String phone) {
        try {
            TStudent one = studentService.getOne(new QueryWrapper<TStudent>().eq("phone", phone).eq("state", 1));
            return one;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -186,51 +190,53 @@
    @ResponseBody
    @PostMapping("/student/queryById")
    public TStudent queryById(@RequestBody Integer id) {
            return studentService.getById(id);
        return studentService.getById(id);
    }
    @ResponseBody
    @PostMapping("/base/appUser/updateTStudent")
    public void updateTStudent(@RequestBody TStudent student){
    public void updateTStudent(@RequestBody TStudent student) {
        try {
            studentService.updateById(student);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 根据id获取数据
     *
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/student/queryStudentById")
    public TStudent queryStudentById(@RequestBody Integer id){
    public TStudent queryStudentById(@RequestBody Integer id) {
        TStudent student = studentService.getById(id);
        return student;
    }
    /**
     * 根据名称模糊搜索学员
     *
     * @param name
     * @return
     */
    @ResponseBody
    @PostMapping("/student/queryStudentListByName")
    public List<TStudent> queryStudentListByName(@RequestBody String name){
    public List<TStudent> queryStudentListByName(@RequestBody String name) {
        return studentService.list(new QueryWrapper<TStudent>().eq("state", 1).like("name", name));
    }
    /**
     * 根据名称模糊搜索学员
     *
     * @param name
     * @return
     */
    @PostMapping("/student/queryTStudentListByName")
    public List<TStudent> queryTStudentListByName(@RequestBody String name){
    public List<TStudent> queryTStudentListByName(@RequestBody String name) {
        return studentService.list(new QueryWrapper<TStudent>().eq("state", 1).like("name", name));
    }
@@ -242,53 +248,54 @@
    @ResponseBody
    @PostMapping("/student/webStudentList")
    public List<TStudentDto> querywebStudent(@RequestBody StudentSearch search){
    public List<TStudentDto> querywebStudent(@RequestBody StudentSearch search) {
        return studentService.listAll(search);
    }
    @ResponseBody
    @PostMapping("/student/webOneStudent")
    public TStudentDto querywebStudentOne(@RequestParam("id")Integer id){
        System.out.println("===?==》"+id);
    public TStudentDto querywebStudentOne(@RequestParam("id") Integer id) {
        System.out.println("===?==》" + id);
        return studentService.listOne(id);
    }
    @ResponseBody
    @PostMapping("/student/update")
    public  void update(@RequestBody TStudent tStudent){
        System.out.println("======tStudent======"+tStudent);
    public void update(@RequestBody TStudent tStudent) {
        System.out.println("======tStudent======" + tStudent);
        studentService.updateById(tStudent);
    }
    @ResponseBody
    @PostMapping("/student/createHistory")
    public  void createHistory(@RequestBody CreateHistoryDto createHistoryDto){
    public void createHistory(@RequestBody CreateHistoryDto createHistoryDto) {
        createHistoryDto.setDate(new Date());
        studentService.createHistory(createHistoryDto);
    }
    @ResponseBody
    @PostMapping("/student/getHisory")
    public  List<GetHistoryDto> getHisory(){
        List<GetHistoryDto> getHistoryDtos =  studentService.getHistory();
    public List<GetHistoryDto> getHisory() {
        List<GetHistoryDto> getHistoryDtos = studentService.getHistory();
        return getHistoryDtos;
    }
    @Resource
    private CoursePaymentClient paymentClient;
    @ResponseBody
    @PostMapping("/student/giftSelect")
    public  List<SelectDto> giftSelect(@RequestBody GiftSearchDto giftSearchDto){
        System.out.println("======giftSelect=========giftSearchDto===="+giftSearchDto);
    public List<SelectDto> giftSelect(@RequestBody GiftSearchDto giftSearchDto) {
        System.out.println("======giftSelect=========giftSearchDto====" + giftSearchDto);
        TAppUser one = appUserService.getOne(new QueryWrapper<TAppUser>().eq("name", giftSearchDto.getName())
                .eq("phone", giftSearchDto.getPhone()));
//       Integer appId = studentService.getGiftSelect(giftSearchDto);
        TCoursePackagePayment1 coursePackagePaymentById = paymentClient.getCoursePackagePaymentById1(giftSearchDto.getId());
//        System.out.println("=======giftSelect======appId====>"+appId);
        List<TStudent> selectDtos =  studentService.list(new QueryWrapper<TStudent>()
        List<TStudent> selectDtos = studentService.list(new QueryWrapper<TStudent>()
                .eq("state", 1)
                .eq("appUserId",one.getId()));
                .eq("appUserId", one.getId()));
        List<SelectDto> list = new ArrayList<>();
        for (TStudent student : selectDtos) {
            SelectDto selectDto = new SelectDto();
@@ -298,63 +305,65 @@
        }
        // 只筛选当前用户已经购买了这个课程的学员
        System.out.println("=======giftSelect======selectDtos====>"+list);
        System.out.println("=======giftSelect======selectDtos====>" + list);
        return list;
    }
    @PostMapping("/student/getUserPt")
    @ResponseBody
    public List<Integer> getUserPt(@RequestBody List<Integer> ids){
        if(ids.size()==0){
    public List<Integer> getUserPt(@RequestBody List<Integer> ids) {
        if (ids.size() == 0) {
            ids.add(-1);
        }
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1));
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @PostMapping("/student/getUserYYs")
    @ResponseBody
   public  List<Integer> getUserYYs(@RequestBody Integer id){
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id));
    public List<Integer> getUserYYs(@RequestBody Integer id) {
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id));
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @PostMapping("/student/getUserStore")
    @ResponseBody
    public  List<Integer> getUserStore(@RequestBody Integer id){
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id));
    public List<Integer> getUserStore(@RequestBody Integer id) {
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id));
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @PostMapping("/student/getUserYys")
    @ResponseBody
    public  List<Integer> getUserYys(@RequestBody Integer id){
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id));
    public List<Integer> getUserYys(@RequestBody Integer id) {
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id));
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @ResponseBody
    @PostMapping("/student/getUserPtVip")
    public List<Integer> getUserPtVip(){
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1));
    public List<Integer> getUserPtVip() {
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1));
        return list.stream().map(TAppUser::getId).collect(Collectors.toList());
    }
    @ResponseBody
    @PostMapping("/student/userAndVipPt")
    public HashMap<String, Object>  userAndVipPt(@RequestBody Integer type){
    public HashMap<String, Object> userAndVipPt(@RequestBody Integer type) {
        HashMap<String, Object> map = new HashMap<>();
        // 所有的
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1));
        map.put("allUser",list.size());
        List<TAppUser> list1 = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1));
        map.put("allVip",list1.size());
        map.put("allUser", list.size());
        List<TAppUser> list1 = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1));
        map.put("allVip", list1.size());
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
            integers.add(year - i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
@@ -367,8 +376,8 @@
            years.add(count);
            yearsVip.add(count1);
        }
        map.put("yearData",years);
        map.put("yearsVip",yearsVip);
        map.put("yearData", years);
        map.put("yearsVip", yearsVip);
        ArrayList<Long> months = new ArrayList<>();
        ArrayList<Long> monthsVip = new ArrayList<>();
@@ -376,9 +385,9 @@
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 月
        for (int i = 1; i <= 12; i++) {
            String m=i+"";
            if(i<10){
                m="0"+i;
            String m = i + "";
            if (i < 10) {
                m = "0" + i;
            }
            String s = year + "-" + m;
            long count = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
@@ -386,8 +395,8 @@
            months.add(count);
            monthsVip.add(count1);
        }
        map.put("monthData",months);
        map.put("monthsVip",monthsVip);
        map.put("monthData", months);
        map.put("monthsVip", monthsVip);
        // 周
@@ -410,24 +419,24 @@
        int count = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s7, s8));
        int countVip = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s7, s8));
        int countVip = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s7, s8));
        int count1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime,s5,s6));
        int countVip1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s5,s6));
        int count1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s5, s6));
        int countVip1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s5, s6));
        int count2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime,s3,s4));
        int countVip2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s3,s4));
        int count2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s3, s4));
        int countVip2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s3, s4));
        int count3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime,s1,s2));
        int countVip3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s1,s2));
        map.put("count",count);
        map.put("count1",count1);
        map.put("count2",count2);
        map.put("count3",count3);
        map.put("countVip",countVip);
        map.put("countVip1",countVip1);
        map.put("countVip2",countVip2);
        map.put("countVip3",countVip3);
        int count3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s1, s2));
        int countVip3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s1, s2));
        map.put("count", count);
        map.put("count1", count1);
        map.put("count2", count2);
        map.put("count3", count3);
        map.put("countVip", countVip);
        map.put("countVip1", countVip1);
        map.put("countVip2", countVip2);
        map.put("countVip3", countVip3);
        // 日
@@ -436,35 +445,36 @@
        for (int i = 6; i >= 0; i--) {
            String s = minNow.minusDays(i).toString();
            String s9 = maxNow.minusDays(i).toString();
            int count4 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime,s,s9));
            int countVip5 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s,s9));
            int count4 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).between(TAppUser::getInsertTime, s, s9));
            int countVip5 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s, s9));
            days.add(count4);
            daysVip.add(countVip5);
        }
        map.put("dayData",days);
        map.put("daysVip",daysVip);
        map.put("dayData", days);
        map.put("daysVip", daysVip);
        return map;
    }
    @ResponseBody
    @PostMapping("/student/stuPt")
    public HashMap<String, Object>  stuPt(){
    public HashMap<String, Object> stuPt() {
        HashMap<String, Object> map = new HashMap<>();
        // 所有的
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1));
        List<Integer> collect1 = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect1.size()==0){
        if (collect1.size() == 0) {
            collect1.add(-1);
        }
        List<TStudent> students = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1));
        map.put("allUser",students.size());
        map.put("allUser", students.size());
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
            integers.add(year - i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
@@ -474,7 +484,7 @@
            long count = students.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
            years.add(count);
        }
        map.put("yearData",years);
        map.put("yearData", years);
        ArrayList<Long> months = new ArrayList<>();
@@ -483,15 +493,15 @@
        // 月
        for (int i = 1; i <= 12; i++) {
            String m=i+"";
            if(i<10){
                m="0"+i;
            String m = i + "";
            if (i < 10) {
                m = "0" + i;
            }
            String s = year + "-" + m;
            long count = students.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
            months.add(count);
        }
        map.put("monthData",months);
        map.put("monthData", months);
        // 周
@@ -515,15 +525,15 @@
        int count = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s7, s8));
        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s5,s6));
        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s5, s6));
        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s3,s4));
        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s3, s4));
        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s1,s2));
        map.put("count",count);
        map.put("count1",count1);
        map.put("count2",count2);
        map.put("count3",count3);
        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s1, s2));
        map.put("count", count);
        map.put("count1", count1);
        map.put("count2", count2);
        map.put("count3", count3);
        // 日
@@ -531,34 +541,35 @@
        for (int i = 6; i >= 0; i--) {
            String s = minNow.minusDays(i).toString();
            String s9 = maxNow.minusDays(i).toString();
            int count4 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s,s9));
            int count4 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s, s9));
            days.add(count4);
        }
        map.put("dayData",days);
        map.put("dayData", days);
        return map;
    }
    @ResponseBody
    @PostMapping("/student/stuYys")
    public HashMap<String, Object>  stuYys(@RequestBody Integer id){
    public HashMap<String, Object> stuYys(@RequestBody Integer id) {
        HashMap<String, Object> map = new HashMap<>();
        // 所有的
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getAddUserId, id));
        List<Integer> collect1 = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect1.size()==0){
        if (collect1.size() == 0) {
            collect1.add(-1);
        }
        List<TStudent> students = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1));
        map.put("allUser",students.size());
        map.put("allUser", students.size());
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
            integers.add(year - i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
@@ -568,7 +579,7 @@
            long count = students.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
            years.add(count);
        }
        map.put("yearData",years);
        map.put("yearData", years);
        ArrayList<Long> months = new ArrayList<>();
@@ -577,15 +588,15 @@
        // 月
        for (int i = 1; i <= 12; i++) {
            String m=i+"";
            if(i<10){
                m="0"+i;
            String m = i + "";
            if (i < 10) {
                m = "0" + i;
            }
            String s = year + "-" + m;
            long count = students.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
            months.add(count);
        }
        map.put("monthData",months);
        map.put("monthData", months);
        // 周
@@ -609,15 +620,15 @@
        int count = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s7, s8));
        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s5,s6));
        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s5, s6));
        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s3,s4));
        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s3, s4));
        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s1,s2));
        map.put("count",count);
        map.put("count1",count1);
        map.put("count2",count2);
        map.put("count3",count3);
        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s1, s2));
        map.put("count", count);
        map.put("count1", count1);
        map.put("count2", count2);
        map.put("count3", count3);
        // 日
@@ -625,10 +636,10 @@
        for (int i = 6; i >= 0; i--) {
            String s = minNow.minusDays(i).toString();
            String s9 = maxNow.minusDays(i).toString();
            int count4 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s,s9));
            int count4 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s, s9));
            days.add(count4);
        }
        map.put("dayData",days);
        map.put("dayData", days);
        return map;
@@ -638,7 +649,7 @@
    @ResponseBody
    @PostMapping("/student/comdel")
    public void  comdel(@RequestBody Integer id) {
    public void comdel(@RequestBody Integer id) {
        evaluateStudentService.removeById(id);
    }
@@ -646,21 +657,21 @@
    @ResponseBody
    @PostMapping("/student/stuStores")
    public HashMap<String, Object>  stuStores(@RequestBody Integer id){
    public HashMap<String, Object> stuStores(@RequestBody Integer id) {
        HashMap<String, Object> map = new HashMap<>();
        // 所有的
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getAddUserId, id));
        List<Integer> collect1 = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect1.size()==0){
        if (collect1.size() == 0) {
            collect1.add(-1);
        }
        List<TStudent> students = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1));
        map.put("allUser",students.size());
        map.put("allUser", students.size());
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
            integers.add(year - i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
@@ -670,7 +681,7 @@
            long count = students.stream().filter(e -> e.getInsertTime().toString().contains(s)).count();
            years.add(count);
        }
        map.put("yearData",years);
        map.put("yearData", years);
        ArrayList<Long> months = new ArrayList<>();
@@ -679,15 +690,15 @@
        // 月
        for (int i = 1; i <= 12; i++) {
            String m=i+"";
            if(i<10){
                m="0"+i;
            String m = i + "";
            if (i < 10) {
                m = "0" + i;
            }
            String s = year + "-" + m;
            long count = students.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
            months.add(count);
        }
        map.put("monthData",months);
        map.put("monthData", months);
        // 周
@@ -711,15 +722,15 @@
        int count = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s7, s8));
        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s5,s6));
        int count1 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s5, s6));
        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s3,s4));
        int count2 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s3, s4));
        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s1,s2));
        map.put("count",count);
        map.put("count1",count1);
        map.put("count2",count2);
        map.put("count3",count3);
        int count3 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s1, s2));
        map.put("count", count);
        map.put("count1", count1);
        map.put("count2", count2);
        map.put("count3", count3);
        // 日
@@ -727,10 +738,10 @@
        for (int i = 6; i >= 0; i--) {
            String s = minNow.minusDays(i).toString();
            String s9 = maxNow.minusDays(i).toString();
            int count4 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime,s,s9));
            int count4 = studentService.count(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect1).between(TStudent::getInsertTime, s, s9));
            days.add(count4);
        }
        map.put("dayData",days);
        map.put("dayData", days);
        return map;
@@ -738,35 +749,33 @@
    }
    @Autowired
    private EvaluateStudentService evaluateStudentService;
    @ResponseBody
    @PostMapping("/student/save")
    public void   save(@RequestBody EvaluateStudent evaluateStudent) {
            evaluateStudent.setInsertTime(new Date());
    public void save(@RequestBody EvaluateStudent evaluateStudent) {
        evaluateStudent.setInsertTime(new Date());
        evaluateStudentService.saveOrUpdate(evaluateStudent);
    }
    @ResponseBody
    @PostMapping("/student/userAndVipYys")
    public HashMap<String, Object>  userAndVipYys(@RequestBody Integer id){
    public HashMap<String, Object> userAndVipYys(@RequestBody Integer id) {
        HashMap<String, Object> map = new HashMap<>();
        // 所有的
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id));
        map.put("allUser",list.size());
        List<TAppUser> list1 = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1));
        map.put("allVip",list1.size());
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id));
        map.put("allUser", list.size());
        List<TAppUser> list1 = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1));
        map.put("allVip", list1.size());
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
            integers.add(year - i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
@@ -779,17 +788,17 @@
            years.add(count);
            yearsVip.add(count1);
        }
        map.put("yearData",years);
        map.put("yearsVip",yearsVip);
        map.put("yearData", years);
        map.put("yearsVip", yearsVip);
        ArrayList<Long> months = new ArrayList<>();
        ArrayList<Long> monthsVip = new ArrayList<>();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 月
        for (int i = 1; i <= 12; i++) {
            String m=i+"";
            if(i<10){
                m="0"+i;
            String m = i + "";
            if (i < 10) {
                m = "0" + i;
            }
            String s = year + "-" + m;
            long count = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
@@ -797,8 +806,8 @@
            months.add(count);
            monthsVip.add(count1);
        }
        map.put("monthData",months);
        map.put("monthsVip",monthsVip);
        map.put("monthData", months);
        map.put("monthsVip", monthsVip);
        // 周
@@ -820,25 +829,25 @@
        String s8 = maxNow.minusDays(20).toString();
        int count = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime, s7, s8));
        int countVip = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s7, s8));
        int count = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s7, s8));
        int countVip = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s7, s8));
        int count1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s5,s6));
        int countVip1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s5,s6));
        int count1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s5, s6));
        int countVip1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s5, s6));
        int count2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s3,s4));
        int countVip2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s3,s4));
        int count2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s3, s4));
        int countVip2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s3, s4));
        int count3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s1,s2));
        int countVip3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s1,s2));
        map.put("count",count);
        map.put("count1",count1);
        map.put("count2",count2);
        map.put("count3",count3);
        map.put("countVip",countVip);
        map.put("countVip1",countVip1);
        map.put("countVip2",countVip2);
        map.put("countVip3",countVip3);
        int count3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s1, s2));
        int countVip3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s1, s2));
        map.put("count", count);
        map.put("count1", count1);
        map.put("count2", count2);
        map.put("count3", count3);
        map.put("countVip", countVip);
        map.put("countVip1", countVip1);
        map.put("countVip2", countVip2);
        map.put("countVip3", countVip3);
        // 日
@@ -847,33 +856,34 @@
        for (int i = 6; i >= 0; i--) {
            String s = minNow.minusDays(i).toString();
            String s9 = maxNow.minusDays(i).toString();
            int count4 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s,s9));
            int countVip5 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s,s9));
            int count4 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s, s9));
            int countVip5 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s, s9));
            days.add(count4);
            daysVip.add(countVip5);
        }
        map.put("dayData",days);
        map.put("daysVip",daysVip);
        map.put("dayData", days);
        map.put("daysVip", daysVip);
        return map;
    }
    @ResponseBody
    @PostMapping("/student/userAndVipStore")
    public HashMap<String, Object>  userAndVipStore(@RequestBody Integer id){
    public HashMap<String, Object> userAndVipStore(@RequestBody Integer id) {
        HashMap<String, Object> map = new HashMap<>();
        // 所有的
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id));
        map.put("allUser",list.size());
        List<TAppUser> list1 = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1));
        map.put("allVip",list1.size());
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id));
        map.put("allUser", list.size());
        List<TAppUser> list1 = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1));
        map.put("allVip", list1.size());
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
            integers.add(year - i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
@@ -886,8 +896,8 @@
            years.add(count);
            yearsVip.add(count1);
        }
        map.put("yearData",years);
        map.put("yearsVip",yearsVip);
        map.put("yearData", years);
        map.put("yearsVip", yearsVip);
        ArrayList<Long> months = new ArrayList<>();
        ArrayList<Long> monthsVip = new ArrayList<>();
@@ -895,9 +905,9 @@
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (int i = 1; i <= 12; i++) {
            String m=i+"";
            if(i<10){
                m="0"+i;
            String m = i + "";
            if (i < 10) {
                m = "0" + i;
            }
            String s = year + "-" + m;
            long count = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).count();
@@ -905,8 +915,8 @@
            months.add(count);
            monthsVip.add(count1);
        }
        map.put("monthData",months);
        map.put("monthsVip",monthsVip);
        map.put("monthData", months);
        map.put("monthsVip", monthsVip);
        // 周
@@ -928,25 +938,25 @@
        String s8 = maxNow.minusDays(20).toString();
        int count = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime, s7, s8));
        int countVip = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s7, s8));
        int count = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s7, s8));
        int countVip = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s7, s8));
        int count1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s5,s6));
        int countVip1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s5,s6));
        int count1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s5, s6));
        int countVip1 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s5, s6));
        int count2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s3,s4));
        int countVip2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s3,s4));
        int count2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s3, s4));
        int countVip2 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s3, s4));
        int count3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s1,s2));
        int countVip3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s1,s2));
        map.put("count",count);
        map.put("count1",count1);
        map.put("count2",count2);
        map.put("count3",count3);
        map.put("countVip",countVip);
        map.put("countVip1",countVip1);
        map.put("countVip2",countVip2);
        map.put("countVip3",countVip3);
        int count3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s1, s2));
        int countVip3 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s1, s2));
        map.put("count", count);
        map.put("count1", count1);
        map.put("count2", count2);
        map.put("count3", count3);
        map.put("countVip", countVip);
        map.put("countVip1", countVip1);
        map.put("countVip2", countVip2);
        map.put("countVip3", countVip3);
        // 日
@@ -955,118 +965,111 @@
        for (int i = 6; i >= 0; i--) {
            String s = minNow.minusDays(i).toString();
            String s9 = maxNow.minusDays(i).toString();
            int count4 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).between(TAppUser::getInsertTime,s,s9));
            int countVip5 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id).eq(TAppUser::getIsVip,1).between(TAppUser::getInsertTime, s,s9));
            int count4 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).between(TAppUser::getInsertTime, s, s9));
            int countVip5 = appUserService.count(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id).eq(TAppUser::getIsVip, 1).between(TAppUser::getInsertTime, s, s9));
            days.add(count4);
            daysVip.add(countVip5);
        }
        map.put("dayData",days);
        map.put("daysVip",daysVip);
        map.put("dayData", days);
        map.put("daysVip", daysVip);
        return map;
    }
    @PostMapping("/student/queryFee")
    public HashMap<String, Object> queryFee(@RequestBody QueryDataFee queryDataFee){
    public HashMap<String, Object> queryFee(@RequestBody QueryDataFee queryDataFee) {
        HashMap<String, Object> map = new HashMap<>();
        String data = queryDataFee.getData();
        List<Integer> ids = queryDataFee.getIds();
        if(ids.size()==0){
        if (ids.size() == 0) {
            ids.add(-1);
        }
        LambdaQueryWrapper<VipPayment> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
        if(ToolUtil.isNotEmpty(data)){
            String stime = data.split(" - ")[0]+" 00:00:00";
            String etime = data.split(" - ")[1]+" 23:59:59";
            vipPaymentLambdaQueryWrapper.between(VipPayment::getInsertTime,stime,etime);
        if (ToolUtil.isNotEmpty(data)) {
            String stime = data.split(" - ")[0] + " 00:00:00";
            String etime = data.split(" - ")[1] + " 23:59:59";
            vipPaymentLambdaQueryWrapper.between(VipPayment::getInsertTime, stime, etime);
        }
        vipPaymentLambdaQueryWrapper.in(VipPayment::getAppUserId,ids);
        vipPaymentLambdaQueryWrapper.eq(VipPayment::getPayStatus,2);
        vipPaymentLambdaQueryWrapper.in(VipPayment::getAppUserId, ids);
        vipPaymentLambdaQueryWrapper.eq(VipPayment::getPayStatus, 2);
        List<VipPayment> list = vipPaymentService.list(vipPaymentLambdaQueryWrapper);
        double sum = list.stream().mapToDouble(VipPayment::getAmount).sum();
        map.put("fee1",sum);
        map.put("fee1", sum);
        LambdaQueryWrapper<RechargeRecords> rechargeRecordsLambdaQueryWrapper = new LambdaQueryWrapper<>();
        if(ToolUtil.isNotEmpty(data)){
            String stime = data.split(" - ")[0]+" 00:00:00";
            String etime = data.split(" - ")[1]+" 23:59:59";
            rechargeRecordsLambdaQueryWrapper.between(RechargeRecords::getInsertTime,stime,etime);
        if (ToolUtil.isNotEmpty(data)) {
            String stime = data.split(" - ")[0] + " 00:00:00";
            String etime = data.split(" - ")[1] + " 23:59:59";
            rechargeRecordsLambdaQueryWrapper.between(RechargeRecords::getInsertTime, stime, etime);
        }
        rechargeRecordsLambdaQueryWrapper.in(RechargeRecords::getAppUserId,ids);
        rechargeRecordsLambdaQueryWrapper.eq(RechargeRecords::getPayStatus,2);
        rechargeRecordsLambdaQueryWrapper.in(RechargeRecords::getAppUserId, ids);
        rechargeRecordsLambdaQueryWrapper.eq(RechargeRecords::getPayStatus, 2);
        List<RechargeRecords> list1 = rechargeRecordsService.list(rechargeRecordsLambdaQueryWrapper);
        double sum1 = list1.stream().map(RechargeRecords::getAmount).reduce(BigDecimal.ZERO,BigDecimal::add).doubleValue();
        double sum1 = list1.stream().map(RechargeRecords::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).doubleValue();
        map.put("fee2",sum1);
        map.put("fee2", sum1);
        return map;
    }
    @PostMapping("/student/queryUserAge")
    public HashMap<String, Object> queryUserAge(){
    public HashMap<String, Object> queryUserAge() {
        HashMap<String, Object> map = new HashMap<>();
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1));
        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect.size()==0){
        if (collect.size() == 0) {
            collect.add(-1);
        }
        List<TStudent> list1 = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect));
        int age1=0;
        int age2=0;
        int age3=0;
        int age4=0;
        int boy=0;
        int girl=0;
        int age1 = 0;
        int age2 = 0;
        int age3 = 0;
        int age4 = 0;
        int boy = 0;
        int girl = 0;
        for (TStudent tStudent : list1) {
            Date birthday = tStudent.getBirthday();
            long l = DateUtil.betweenYear(birthday, new Date(), true);
            if(l<7){
            if (l < 7) {
                age1++;
            }else if(l>=8 && l<11){
            } else if (l >= 8 && l < 11) {
                age2++;
            }else if(l>=11 && l<=12){
            } else if (l >= 11 && l <= 12) {
                age3++;
            }else {
            } else {
                age4++;
            }
            if(tStudent.getSex()==1){
            if (tStudent.getSex() == 1) {
                boy++;
            }else {
            } else {
                girl++;
            }
        }
        map.put("age1",age1);
        map.put("age2",age2);
        map.put("age3",age3);
        map.put("age4",age4);
        map.put("boy",boy);
        map.put("girl",girl);
        map.put("age1", age1);
        map.put("age2", age2);
        map.put("age3", age3);
        map.put("age4", age4);
        map.put("boy", boy);
        map.put("girl", girl);
        return map;
    }
    @PostMapping("/student/queryUserAge1")
    public HashMap<String, Object> queryUserAge1(){
    public HashMap<String, Object> queryUserAge1() {
        HashMap<String, Object> map = new HashMap<>();
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 1));
        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect.size()==0){
        if (collect.size() == 0) {
            collect.add(-1);
        }
@@ -1079,68 +1082,68 @@
            int a = 0;
            strings1.add(string);
            for (TAppUser tAppUser : list) {
                if(tAppUser.getCity().equals(string)){
                if (tAppUser.getCity().equals(string)) {
                    a++;
                }
            }
            integers.add(a);
        }
        map.put("cityData",strings1);
        map.put("cityNum",integers);
        int age1=0;
        int age2=0;
        int age3=0;
        int age4=0;
        int age5=0;
        int age6=0;
        int boy=0;
        int girl=0;
        map.put("cityData", strings1);
        map.put("cityNum", integers);
        int age1 = 0;
        int age2 = 0;
        int age3 = 0;
        int age4 = 0;
        int age5 = 0;
        int age6 = 0;
        int boy = 0;
        int girl = 0;
        for (TAppUser tStudent : list) {
            Date birthday = tStudent.getBirthday();
            long l =0;
            if(birthday!=null){
            long l = 0;
            if (birthday != null) {
                 l = DateUtil.betweenYear(birthday, new Date(), true);
                l = DateUtil.betweenYear(birthday, new Date(), true);
            }
            if(l<=12){
            if (l <= 12) {
                age1++;
            }else if(l>12 && l<18){
            } else if (l > 12 && l < 18) {
                age2++;
            }else if(l>=19 && l<=25){
            } else if (l >= 19 && l <= 25) {
                age3++;
            }else if(l>=26 && l<=35){
            } else if (l >= 26 && l <= 35) {
                age4++;
            }else if(l>=36 && l<=50){
            } else if (l >= 36 && l <= 50) {
                age5++;
            }else {
            } else {
                age6++;
            }
            if(tStudent.getGender()!=null &&tStudent.getGender()==1){
            if (tStudent.getGender() != null && tStudent.getGender() == 1) {
                boy++;
            }else {
            } else {
                girl++;
            }
        }
        map.put("age1",age1);
        map.put("age2",age2);
        map.put("age3",age3);
        map.put("age4",age4);
        map.put("age5",age5);
        map.put("age6",age6);
        map.put("boy",boy);
        map.put("girl",girl);
        map.put("age1", age1);
        map.put("age2", age2);
        map.put("age3", age3);
        map.put("age4", age4);
        map.put("age5", age5);
        map.put("age6", age6);
        map.put("boy", boy);
        map.put("girl", girl);
        return map;
    }
    @PostMapping("/student/queryUserAgeYys")
    public HashMap<String, Object> queryUserAgeYys(@RequestBody Integer id){
    public HashMap<String, Object> queryUserAgeYys(@RequestBody Integer id) {
        HashMap<String, Object> map = new HashMap<>();
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id));
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id));
        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect.size()==0){
        if (collect.size() == 0) {
            collect.add(-1);
        }
@@ -1153,66 +1156,67 @@
            int a = 0;
            strings1.add(string);
            for (TAppUser tAppUser : list) {
                if(tAppUser.getCity().equals(string)){
                if (tAppUser.getCity().equals(string)) {
                    a++;
                }
            }
            integers.add(a);
        }
        map.put("cityData",strings1);
        map.put("cityNum",integers);
        int age1=0;
        int age2=0;
        int age3=0;
        int age4=0;
        int age5=0;
        int age6=0;
        int boy=0;
        int girl=0;
        map.put("cityData", strings1);
        map.put("cityNum", integers);
        int age1 = 0;
        int age2 = 0;
        int age3 = 0;
        int age4 = 0;
        int age5 = 0;
        int age6 = 0;
        int boy = 0;
        int girl = 0;
        for (TAppUser tStudent : list) {
            Date birthday = tStudent.getBirthday();
            long l =0;
            if(birthday!=null){
            long l = 0;
            if (birthday != null) {
                 l = DateUtil.betweenYear(birthday, new Date(), true);
                l = DateUtil.betweenYear(birthday, new Date(), true);
            }
            if(l<=12){
            if (l <= 12) {
                age1++;
            }else if(l>12 && l<18){
            } else if (l > 12 && l < 18) {
                age2++;
            }else if(l>=19 && l<=25){
            } else if (l >= 19 && l <= 25) {
                age3++;
            }else if(l>=26 && l<=35){
            } else if (l >= 26 && l <= 35) {
                age4++;
            }else if(l>=36 && l<=50){
            } else if (l >= 36 && l <= 50) {
                age5++;
            }else {
            } else {
                age6++;
            }
            if(tStudent.getGender()!=null &&tStudent.getGender()==1){
            if (tStudent.getGender() != null && tStudent.getGender() == 1) {
                boy++;
            }else {
            } else {
                girl++;
            }
        }
        map.put("age1",age1);
        map.put("age2",age2);
        map.put("age3",age3);
        map.put("age4",age4);
        map.put("age5",age5);
        map.put("age6",age6);
        map.put("boy",boy);
        map.put("girl",girl);
        map.put("age1", age1);
        map.put("age2", age2);
        map.put("age3", age3);
        map.put("age4", age4);
        map.put("age5", age5);
        map.put("age6", age6);
        map.put("boy", boy);
        map.put("girl", girl);
        return map;
    }
    @PostMapping("/student/queryUserAgeStore")
    public HashMap<String, Object> queryUserAgeStore(Integer id){
    public HashMap<String, Object> queryUserAgeStore(Integer id) {
        HashMap<String, Object> map = new HashMap<>();
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id));
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id));
        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect.size()==0){
        if (collect.size() == 0) {
            collect.add(-1);
        }
@@ -1225,142 +1229,144 @@
            int a = 0;
            strings1.add(string);
            for (TAppUser tAppUser : list) {
                if(tAppUser.getCity().equals(string)){
                if (tAppUser.getCity().equals(string)) {
                    a++;
                }
            }
            integers.add(a);
        }
        map.put("cityData",strings1);
        map.put("cityNum",integers);
        int age1=0;
        int age2=0;
        int age3=0;
        int age4=0;
        int age5=0;
        int age6=0;
        int boy=0;
        int girl=0;
        map.put("cityData", strings1);
        map.put("cityNum", integers);
        int age1 = 0;
        int age2 = 0;
        int age3 = 0;
        int age4 = 0;
        int age5 = 0;
        int age6 = 0;
        int boy = 0;
        int girl = 0;
        for (TAppUser tStudent : list) {
            Date birthday = tStudent.getBirthday();
            long l =0;
            if(birthday!=null){
            long l = 0;
            if (birthday != null) {
                 l = DateUtil.betweenYear(birthday, new Date(), true);
                l = DateUtil.betweenYear(birthday, new Date(), true);
            }
            if(l<=12){
            if (l <= 12) {
                age1++;
            }else if(l>12 && l<18){
            } else if (l > 12 && l < 18) {
                age2++;
            }else if(l>=19 && l<=25){
            } else if (l >= 19 && l <= 25) {
                age3++;
            }else if(l>=26 && l<=35){
            } else if (l >= 26 && l <= 35) {
                age4++;
            }else if(l>=36 && l<=50){
            } else if (l >= 36 && l <= 50) {
                age5++;
            }else {
            } else {
                age6++;
            }
            if(tStudent.getGender()!=null &&tStudent.getGender()==1){
            if (tStudent.getGender() != null && tStudent.getGender() == 1) {
                boy++;
            }else {
            } else {
                girl++;
            }
        }
        map.put("age1",age1);
        map.put("age2",age2);
        map.put("age3",age3);
        map.put("age4",age4);
        map.put("age5",age5);
        map.put("age6",age6);
        map.put("boy",boy);
        map.put("girl",girl);
        map.put("age1", age1);
        map.put("age2", age2);
        map.put("age3", age3);
        map.put("age4", age4);
        map.put("age5", age5);
        map.put("age6", age6);
        map.put("boy", boy);
        map.put("girl", girl);
        return map;
    }
    @PostMapping("/student/queryUserAgeYys1")
    public HashMap<String, Object> queryUserAgeYys1(@RequestBody Integer id){
    public HashMap<String, Object> queryUserAgeYys1(@RequestBody Integer id) {
        HashMap<String, Object> map = new HashMap<>();
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId,id));
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 2).eq(TAppUser::getAddUserId, id));
        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect.size()==0){
        if (collect.size() == 0) {
            collect.add(-1);
        }
        List<TStudent> list1 = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect));
        int age1=0;
        int age2=0;
        int age3=0;
        int age4=0;
        int boy=0;
        int girl=0;
        int age1 = 0;
        int age2 = 0;
        int age3 = 0;
        int age4 = 0;
        int boy = 0;
        int girl = 0;
        for (TStudent tStudent : list1) {
            Date birthday = tStudent.getBirthday();
            long l = DateUtil.betweenYear(birthday, new Date(), true);
            if(l<7){
            if (l < 7) {
                age1++;
            }else if(l>=8 && l<11){
            } else if (l >= 8 && l < 11) {
                age2++;
            }else if(l>=11 && l<=12){
            } else if (l >= 11 && l <= 12) {
                age3++;
            }else {
            } else {
                age4++;
            }
            if(tStudent.getSex()==1){
            if (tStudent.getSex() == 1) {
                boy++;
            }else {
            } else {
                girl++;
            }
        }
        map.put("age1",age1);
        map.put("age2",age2);
        map.put("age3",age3);
        map.put("age4",age4);
        map.put("boy",boy);
        map.put("girl",girl);
        map.put("age1", age1);
        map.put("age2", age2);
        map.put("age3", age3);
        map.put("age4", age4);
        map.put("boy", boy);
        map.put("girl", girl);
        return map;
    }
    @PostMapping("/student/queryUserAgeStore1")
    public HashMap<String, Object> queryUserAgeStore1(@RequestBody Integer id){
    public HashMap<String, Object> queryUserAgeStore1(@RequestBody Integer id) {
        HashMap<String, Object> map = new HashMap<>();
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId,id));
        List<TAppUser> list = appUserService.list(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getInsertType, 3).eq(TAppUser::getAddUserId, id));
        List<Integer> collect = list.stream().map(TAppUser::getId).collect(Collectors.toList());
        if(collect.size()==0){
        if (collect.size() == 0) {
            collect.add(-1);
        }
        List<TStudent> list1 = studentService.list(new LambdaQueryWrapper<TStudent>().in(TStudent::getAppUserId, collect));
        int age1=0;
        int age2=0;
        int age3=0;
        int age4=0;
        int boy=0;
        int girl=0;
        int age1 = 0;
        int age2 = 0;
        int age3 = 0;
        int age4 = 0;
        int boy = 0;
        int girl = 0;
        for (TStudent tStudent : list1) {
            Date birthday = tStudent.getBirthday();
            long l = DateUtil.betweenYear(birthday, new Date(), true);
            if(l<7){
            if (l < 7) {
                age1++;
            }else if(l>=8 && l<11){
            } else if (l >= 8 && l < 11) {
                age2++;
            }else if(l>=11 && l<=12){
            } else if (l >= 11 && l <= 12) {
                age3++;
            }else {
            } else {
                age4++;
            }
            if(tStudent.getSex()==1){
            if (tStudent.getSex() == 1) {
                boy++;
            }else {
            } else {
                girl++;
            }
        }
        map.put("age1",age1);
        map.put("age2",age2);
        map.put("age3",age3);
        map.put("age4",age4);
        map.put("boy",boy);
        map.put("girl",girl);
        map.put("age1", age1);
        map.put("age2", age2);
        map.put("age3", age3);
        map.put("age4", age4);
        map.put("boy", boy);
        map.put("girl", girl);
        return map;
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -55,23 +55,24 @@
    @ApiOperation(value = "福利主页", tags = {"APP-使用福利"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "lat",value = "经度",dataType = "string"),
            @ApiImplicitParam(name = "lon",value = "纬度",dataType = "string")
            @ApiImplicitParam(name = "lat", value = "经度", dataType = "string"),
            @ApiImplicitParam(name = "lon", value = "纬度", dataType = "string")
    })
    public ResultUtil<IndexOfUserBenefirVo> queryAppUserUser(String lon,String lat){
    public ResultUtil<IndexOfUserBenefirVo> queryAppUserUser(String lon, String lat) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            IndexOfUserBenefirVo indexOfUserBenefirVo = tauService.queryBenefitDetails(appUserId,lon,lat);
            IndexOfUserBenefirVo indexOfUserBenefirVo = tauService.queryBenefitDetails(appUserId, lon, lat);
            List<IntegralCommodity> commodities = indexOfUserBenefirVo.getCommodities();
            if (commodities.size() > 5) {
                commodities = commodities.subList(0, 5);
            }
            indexOfUserBenefirVo.setCommodities(commodities);
            return ResultUtil.success(indexOfUserBenefirVo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
@@ -82,52 +83,53 @@
    @ApiOperation(value = "用户个人信息", tags = {"APP-使用福利"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "lat",value = "经度",dataType = "string"),
            @ApiImplicitParam(name = "lon",value = "纬度",dataType = "string")
            @ApiImplicitParam(name = "lat", value = "经度", dataType = "string"),
            @ApiImplicitParam(name = "lon", value = "纬度", dataType = "string")
    })
    public ResultUtil<AppUserDetailsVo> queryAppUserDetails(){
    public ResultUtil<AppUserDetailsVo> queryAppUserDetails() {
        try {
            AppUserDetailsVo detailsVo = new AppUserDetailsVo();
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            TAppUser tAppUser = tauService.getBaseMapper().selectById(appUserId);
            if (tAppUser.getCode()==null){
            if (tAppUser.getCode() == null) {
                detailsVo.setNeedChange(1);
            }else {
            } else {
                detailsVo.setNeedChange(0);
            }
            if (null != tAppUser){
            if (null != tAppUser) {
                detailsVo.setUserId(appUserId);
                if (tAppUser.getHeadImg()!=null){
                detailsVo.setUserImage(tAppUser.getHeadImg());}
                else {
                    detailsVo.setUserImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/630864764d3c4e98822ff976a2389559.jpg");}
                if (tAppUser.getHeadImg() != null) {
                    detailsVo.setUserImage(tAppUser.getHeadImg());
                } else {
                    detailsVo.setUserImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/630864764d3c4e98822ff976a2389559.jpg");
                }
                detailsVo.setUserName(tAppUser.getName());
                detailsVo.setUserPhone(tAppUser.getPhone());
                detailsVo.setIsVip(tAppUser.getIsVip());
                if(tAppUser.getGender()!=null){
                if (tAppUser.getGender() != null) {
                    detailsVo.setSex(tAppUser.getGender() == 1 ? "男" : "女");
                }
                System.out.println("============="+tAppUser);
                System.out.println("=============" + tAppUser);
                if (tAppUser.getBirthday()!=null){
                detailsVo.setBirthday(format1.format(tAppUser.getBirthday()));
                if (tAppUser.getBirthday() != null) {
                    detailsVo.setBirthday(format1.format(tAppUser.getBirthday()));
                }
                detailsVo.setAddress(tAppUser.getProvince()+tAppUser.getCity());
                if(tAppUser.getVipEndTime()!=null){
                detailsVo.setAddress(tAppUser.getProvince() + tAppUser.getCity());
                if (tAppUser.getVipEndTime() != null) {
                    detailsVo.setMemberLifespan(format1.format(tAppUser.getVipEndTime()));
                }
            }
            return ResultUtil.success(detailsVo);
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -138,27 +140,26 @@
    @ApiOperation(value = "上传用户头像", tags = {"APP-使用福利"})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(name = "userImage",value = "用户头像连接",dataType = "string")
            @ApiImplicitParam(name = "userImage", value = "用户头像连接", dataType = "string")
    })
    public ResultUtil uploadAppUserProfile(String userImage){
    public ResultUtil uploadAppUserProfile(String userImage) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            TAppUser byId = tauService.getById(appUserId);
            if (ToolUtil.isNotEmpty(userImage)){
            if (ToolUtil.isNotEmpty(userImage)) {
                byId.setHeadImg(userImage);
                tauService.updateById(byId);
            }else {
            } else {
                ResultUtil.error("头像不能为空!");
            }
            return ResultUtil.success();
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -167,10 +168,10 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil cancellationAccount(){
    public ResultUtil cancellationAccount() {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
//            变更账号的状态为删除
@@ -180,11 +181,10 @@
//            删除redis中用户key
            tokenUtil.logout();
            return ResultUtil.success();
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -193,10 +193,10 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil logOutAccount(){
    public ResultUtil logOutAccount() {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            //            增加一条退出账号的日志
@@ -204,11 +204,10 @@
            //            删除redis中用户key
            tokenUtil.logout();
            return ResultUtil.success();
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -219,14 +218,14 @@
            @ApiImplicitParam(value = "年月", name = "yearMonth", required = true, dataType = "string"),
            @ApiImplicitParam(value = "记录(1充值 2扣除)", name = "recordId", required = false, dataType = "int"),
    })
    public ResultUtil<List<ConsumeDetail>> getUserBillingDetails(String yearMonth,Integer recordId){
    public ResultUtil<List<ConsumeDetail>> getUserBillingDetails(String yearMonth, Integer recordId) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(tauService.queryUserBillingDetails(yearMonth,recordId,appUserId));
        }catch (Exception e){
            return ResultUtil.success(tauService.queryUserBillingDetails(yearMonth, recordId, appUserId));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -242,14 +241,14 @@
            @ApiImplicitParam(value = "每页数量", name = "pageSize", required = true, dataType = "int"),
            @ApiImplicitParam(value = "记录(1充值 2扣除)", name = "recordId", required = false, dataType = "int"),
    })
    public ResultUtil<List<RechargesDetail>> wpGoldRechargeRecord(String yearMonth, Integer recordId,Integer pageNum,Integer pageSize){
    public ResultUtil<List<RechargesDetail>> wpGoldRechargeRecord(String yearMonth, Integer recordId, Integer pageNum, Integer pageSize) {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(rechargeRService.getAppUserRechargeRecord(yearMonth,recordId,appUserId,pageNum,pageSize));
        }catch (Exception e){
            return ResultUtil.success(rechargeRService.getAppUserRechargeRecord(yearMonth, recordId, appUserId, pageNum, pageSize));
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -262,14 +261,14 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil<List<RechargeCentVo>> rechargeCenterConfig(){
    public ResultUtil<List<RechargeCentVo>> rechargeCenterConfig() {
        try {
            Integer appUserId = tokenUtil.getUserIdFormRedis();
            if(null == appUserId){
            if (null == appUserId) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(tauService.getSysRechargeConfig(appUserId));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -283,14 +282,14 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil rechargeCenPayment(RechargePayRequest request){
    public ResultUtil rechargeCenPayment(RechargePayRequest request) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return rechargeRService.rechargeCenPayment(userIdFormRedis,request);
        }catch (Exception e){
            return rechargeRService.rechargeCenPayment(userIdFormRedis, request);
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -307,10 +306,10 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public ResultUtil<List<Goods>> pointsMallList(MallRequest request){
    public ResultUtil<List<Goods>> pointsMallList(MallRequest request) {
//        try {
        System.out.println("======request========"+request);
            return ResultUtil.success(tauService.queryAppUserIntegral(request));
        System.out.println("======request========" + request);
        return ResultUtil.success(tauService.queryAppUserIntegral(request));
//        }catch (Exception e){
//            return ResultUtil.runErr();
//        }
@@ -328,14 +327,13 @@
            @ApiImplicitParam(value = "商品id", name = "goodId", required = true, dataType = "int"),
            @ApiImplicitParam(value = "商品类型 1实物 2课包 3门票 4优惠券", name = "goodsType", required = true, dataType = "int"),
    })
    public ResultUtil<ProductDetailsVo> productDetails(Integer goodId, Integer goodsType){
    public ResultUtil<ProductDetailsVo> productDetails(Integer goodId, Integer goodsType) {
        try {
            return ResultUtil.success(tauService.productDetails(goodId,goodsType));
        }catch (Exception e){
            return ResultUtil.success(tauService.productDetails(goodId, goodsType));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -345,14 +343,13 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "商品id", name = "goodId", required = true, dataType = "int"),
    })
    public ResultUtil<ProductDetailsVo> goodsDetailsOne(Integer goodId){
    public ResultUtil<ProductDetailsVo> goodsDetailsOne(Integer goodId) {
        try {
            return ResultUtil.success(tauService.goodsDetailsOne(goodId));
        }catch (Exception e){
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    /**
@@ -368,14 +365,14 @@
            @ApiImplicitParam(value = "是否为课包商品(1=是 2=否)", name = "isCourse", required = true, dataType = "int"),
            @ApiImplicitParam(value = "商品id", name = "pointsMerId", required = true, dataType = "int"),
    })
    public ResultUtil<StuAndStoreResponse> goodsOfCourseStore(String lat, String lon,Integer isCourse,Integer pointsMerId){
    public ResultUtil<StuAndStoreResponse> goodsOfCourseStore(String lat, String lon, Integer isCourse, Integer pointsMerId) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(tauService.queryAppUserDefaultStuAndStore(userIdFormRedis,pointsMerId,lat,lon,isCourse));
        }catch (Exception e){
            return ResultUtil.success(tauService.queryAppUserDefaultStuAndStore(userIdFormRedis, pointsMerId, lat, lon, isCourse));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -392,14 +389,13 @@
            @ApiImplicitParam(value = "商品类型 1实物 2课包 3门票 4优惠券", name = "goodsType", required = true, dataType = "String"),
            @ApiImplicitParam(value = "商品id", name = "pointsMerId", required = true, dataType = "int"),
    })
    public ResultUtil<List<StoreResponse>> getExchangeStoreIds( Integer goodsType,Integer pointsMerId){
    public ResultUtil<List<StoreResponse>> getExchangeStoreIds(Integer goodsType, Integer pointsMerId) {
        try {
            return ResultUtil.success(tauService.queryStoresOfExchange(goodsType,pointsMerId));
        }catch (Exception e){
            return ResultUtil.success(tauService.queryStoresOfExchange(goodsType, pointsMerId));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
    /**
@@ -411,14 +407,14 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
    })
    public synchronized ResultUtil productRedemptionOperation(GoodsExchangeVo exchangeType){
    public synchronized ResultUtil productRedemptionOperation(GoodsExchangeVo exchangeType) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return tauService.productRedemptionOperation(userIdFormRedis,exchangeType);
        }catch (Exception e){
            return tauService.productRedemptionOperation(userIdFormRedis, exchangeType);
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -435,14 +431,14 @@
            @ApiImplicitParam(value = "年月", name = "yearMonth", required = false, dataType = "string"),
            @ApiImplicitParam(value = "记录(1充值 2扣除)", name = "recordId", required = false, dataType = "int"),
    })
    public ResultUtil<List<IntegralsData>> pointDetails(String yearMonth, Integer recordId){
    public ResultUtil<List<IntegralsData>> pointDetails(String yearMonth, Integer recordId) {
        try {
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(uicService.queryUserPointsDetails(yearMonth,recordId,userIdFormRedis));
        }catch (Exception e){
            return ResultUtil.success(uicService.queryUserPointsDetails(yearMonth, recordId, userIdFormRedis));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -461,18 +457,18 @@
            @ApiImplicitParam(value = "page", name = "页数", required = true, dataType = "int"),
            @ApiImplicitParam(value = "size", name = "size", required = true, dataType = "int"),
    })
    public ResultUtil<List<ExchangeDetailsResponse>> exchangeRecordsDetails(Integer useType, Integer goodType,Integer page,Integer size){
    public ResultUtil<List<ExchangeDetailsResponse>> exchangeRecordsDetails(Integer useType, Integer goodType, Integer page, Integer size) {
        try {
            if(page==null || size==null){
                page=1;
                size=10;
            if (page == null || size == null) {
                page = 1;
                size = 10;
            }
            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
            if(null == userIdFormRedis){
            if (null == userIdFormRedis) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(uicService.queryExchangeGoodsdetails1(userIdFormRedis,useType,goodType,page,size));
        }catch (Exception e){
            return ResultUtil.success(uicService.queryExchangeGoodsdetails1(userIdFormRedis, useType, goodType, page, size));
        } catch (Exception e) {
            return ResultUtil.runErr();
        }
    }
@@ -488,16 +484,15 @@
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "记录id", name = "detailsId", required = true, dataType = "string"),
    })
    public ResultUtil<PointDetailsVo> redemptionDetails(Long detailsId){
    public ResultUtil<PointDetailsVo> redemptionDetails(Long detailsId) {
//        try {
            PointDetailsVo pointDetailsVo = uicService.queryRedemptionDetails(detailsId);
            pointDetailsVo.getPics().remove(0);
            return ResultUtil.success(pointDetailsVo);
        PointDetailsVo pointDetailsVo = uicService.queryRedemptionDetails(detailsId);
        pointDetailsVo.getPics().remove(0);
        return ResultUtil.success(pointDetailsVo);
//        }catch (Exception e){
//            return ResultUtil.runErr();
//        }
    }
}
cloud-server-account/src/main/java/com/dsh/account/controller/UserIntegralChangesController.java
@@ -26,26 +26,27 @@
    /**
     * 保存用户积分变动记录
     *
     * @param vo
     */
    @ResponseBody
    @PostMapping("/userIntegralChanges/saveUserIntegralChanges")
    public void saveUserIntegralChanges(@RequestBody SaveUserIntegralChangesVo vo){
    public void saveUserIntegralChanges(@RequestBody SaveUserIntegralChangesVo vo) {
        try {
            userIntegralChangesService.saveUserIntegralChanges(vo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @PostMapping("/userIntegralChanges/list")
    public Page<UserIntegral> list(@RequestBody IntegralListQuery integralListQuery){
    public Page<UserIntegral> list(@RequestBody IntegralListQuery integralListQuery) {
        try {
            Page<UserIntegral> userIntegralPage = new Page<>(integralListQuery.getOffset(), integralListQuery.getLimit());
            Page<UserIntegral> list = userIntegralChangesService.listAll(userIntegralPage,integralListQuery);
            Page<UserIntegral> list = userIntegralChangesService.listAll(userIntegralPage, integralListQuery);
            return list;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return new Page<>();
        }
cloud-server-account/src/main/java/com/dsh/account/dto/StudentSearch.java
@@ -11,7 +11,8 @@
@NoArgsConstructor
public class StudentSearch {
    private String province;
    private String city;String name;
    private String city;
    String name;
    private String userName;
    private String phone;
    private List<Integer> ids;
cloud-server-account/src/main/java/com/dsh/account/entity/Coach.java
@@ -129,7 +129,7 @@
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
cloud-server-account/src/main/java/com/dsh/account/entity/CourseCounsum.java
@@ -25,7 +25,7 @@
    @TableField("paymentId")
    Long paymentId;
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    Date insertTime;
    @TableField("appUserId")
    Integer appUserId;
cloud-server-account/src/main/java/com/dsh/account/entity/EvaluateStudent.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.io.Serializable;
cloud-server-account/src/main/java/com/dsh/account/entity/HonorRules.java
@@ -16,7 +16,6 @@
 * <p>
 * 荣誉规则
 * </p>
 *
 */
@Data
@EqualsAndHashCode(callSuper = false)
cloud-server-account/src/main/java/com/dsh/account/entity/IntroduceRewards.java
@@ -58,13 +58,13 @@
     * 开始时间
     */
    @TableField("startTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date startTime;
    /**
     * 结束时间
     */
    @TableField("endTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date endTime;
    /**
     * 赠送课时
@@ -80,7 +80,7 @@
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
cloud-server-account/src/main/java/com/dsh/account/entity/IntroduceUser.java
@@ -31,6 +31,6 @@
    private String userName;
    // 活动id
    private Integer activityId;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
}
cloud-server-account/src/main/java/com/dsh/account/entity/TAppGift.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
@@ -27,7 +28,7 @@
@TableName("t_app_gift")
public class TAppGift extends Model<TAppGift> {
    private static final long serialVersionUID=1L;
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
@@ -78,7 +79,7 @@
     * 介绍有礼活动id
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    @Override
cloud-server-account/src/main/java/com/dsh/account/entity/TCourseInfoRecord.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.Date;
@@ -27,7 +28,7 @@
@TableName("t_course_info_record")
public class TCourseInfoRecord extends Model<TCourseInfoRecord> {
    private static final long serialVersionUID=1L;
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
@@ -50,7 +51,7 @@
    private String name;
    /**
     * 课时数
     * 课时数
     */
    private Integer num;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
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/entity/UserIntegral.java
@@ -35,7 +35,7 @@
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String city;
    private String  province;
    private String province;
    private String name;
    private String phone;
    private Integer type;
cloud-server-account/src/main/java/com/dsh/account/entity/UserIntegralChanges.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.io.Serializable;
cloud-server-account/src/main/java/com/dsh/account/entity/VipPayment.java
@@ -67,11 +67,11 @@
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    public static String CODE(){
    public static String CODE() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
        return sdf.format(new Date()) + UUIDUtil.getNumberRandom(3);
    }
cloud-server-account/src/main/java/com/dsh/account/enums/RechargeRecordEnum.java
@@ -1,7 +1,6 @@
package com.dsh.account.enums;
public enum RechargeRecordEnum {
    COURSE_PACKAGE_PURCHASE("课包购买"),
    VENUE_RESERVATION("场地预约"),
@@ -12,7 +11,6 @@
    EVENT_REGISTRATION("赛事报名"),
    CANCEL_EVENT_REGISTRATION("取消赛事报名"),
    CANCEL_VENUE_RESERVATION("取消场地预约"),
    ;
cloud-server-account/src/main/java/com/dsh/account/enums/WeeksEnum.java
@@ -5,13 +5,13 @@
public enum WeeksEnum {
    Mon(1,"M"),
    Tues(2,"T"),
    Wed(3,"W"),
    Thurs(4,"T"),
    Fri(5,"F"),
    Sat(6,"S"),
    Sun(7,"S"),
    Mon(1, "M"),
    Tues(2, "T"),
    Wed(3, "W"),
    Thurs(4, "T"),
    Fri(5, "F"),
    Sat(6, "S"),
    Sun(7, "S"),
    ;
    Integer ins;
@@ -23,10 +23,10 @@
        this.msg = msg;
    }
    public static String getStr(Integer wks){
    public static String getStr(Integer wks) {
        WeeksEnum[] values = WeeksEnum.values();
        for (WeeksEnum value : values) {
            if (Objects.equals(wks, value.ins)){
            if (Objects.equals(wks, value.ins)) {
                return value.msg;
            }
        }
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
@@ -36,14 +36,14 @@
    ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId);
    @PostMapping("/base/pointMerchars/getSpecificsOfGoods")
     PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId);
    PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId);
    @PostMapping("/base/pointMerchars/selectPointsMerchandiseById")
    public PointsMerchandise selectPointsMerchandiseById(@RequestBody Integer speMercharsId);
    @PostMapping("/base/pointMerchars/saveDetailsUserPointMercase")
    public Long saveDetailsUserPointMercase( UserPointsMerchandise merchandise);
    public Long saveDetailsUserPointMercase(UserPointsMerchandise merchandise);
    @PostMapping("/base/pointMerchars/updateDetailsUserPointMercase")
@@ -56,6 +56,7 @@
    @PostMapping("/base/pointMerchars/queryUserHasGoodsNums")
    int queryUserHasGoodsNums(@RequestBody AppUserGoodResp goodResp);
    @PostMapping("/base/pointMerchars/queryUserHasGoodsNums1")
    int queryUserHasGoodsNums1(@RequestBody AppUserGoodResp goodResp);
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/UserConponClient.java
@@ -15,7 +15,7 @@
     * 查询注册赠送优惠券 判断当前优惠券限领数量
     */
    @PostMapping("/coupon/queryCouponByUser/{userId}")
    public List<Integer> queryCouponByUser(@PathVariable("userId") Integer userId);
    public List<Long> queryCouponByUser(@PathVariable("userId") Integer userId);
    @PostMapping("/base/userConpon/getStuOfConpons")
    public List<CouponStuAvailableVo> queryUserWithConponList(@RequestParam("appUserId") Integer appUserId);
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/IntegralCommodity.java
@@ -27,5 +27,4 @@
    private Integer sort;
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java
@@ -18,7 +18,7 @@
 * @since 2023-06-29
 */
@Data
public class UserPointsMerchandise{
public class UserPointsMerchandise {
    private static final long serialVersionUID = 1L;
@@ -94,9 +94,6 @@
     */
    @TableField("state")
    private Integer state;
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/DeductionCompetitionsClient.java
@@ -29,7 +29,7 @@
    @PostMapping("/base/competition/getPlayPaiFGoldPayRecord")
    List<PaymentCompetition> getPlayPaiFGoldPayRecord(@RequestBody Integer appUserId);
    @PostMapping("/base/competition/queryByCode")
    @PostMapping("/base/competition/queryByCode")
    Integer queryByCode(@RequestBody String code);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/ParticipantClient.java
@@ -14,10 +14,12 @@
    /**
     * 保存学员后同步参赛人员信息
     *
     * @param saveParticipant
     */
    @PostMapping("/participant/saveParticipant")
    void saveParticipant(SaveParticipant saveParticipant);
    @PostMapping("/participant/counts")
    Integer counts(Integer stuId);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseListClient.java
@@ -17,5 +17,5 @@
    @PostMapping("/base/coursePack/courseList")
    List<StoreOfCourseVo> getStoreOfCourseList(@RequestBody Integer storeId);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java
@@ -18,15 +18,19 @@
    /**
     * 根据id获取课包
     *
     * @param id
     * @return
     */
    @PostMapping("/base/coursePackage/queryCoursePackageById")
    CoursePackage queryCoursePackageById(Integer id);
    @PostMapping("/base/coursePackage/queryByCode")
    Integer queryByCode(String code);
    @PostMapping("/base/coursePackage/counts")
    Integer counts(Integer stuId);
    @PostMapping("/base/coursePackage/counts1")
    Integer counts1(Integer stuId);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java
@@ -37,7 +37,7 @@
    List<AfterVideoVo> getAfterCourseTwos(@RequestParam("appUserId") Integer appUserId);
    @PostMapping("/base/coursePack/courseOfPurchased")
     List<PurchaseVo> getAppUsersCourseData(@RequestBody Integer appUserId);
    List<PurchaseVo> getAppUsersCourseData(@RequestBody Integer appUserId);
    @PostMapping("/base/coursePack/allPaymentCourseList")
    public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId);
@@ -94,7 +94,6 @@
//    @PostMapping("/base/coursePack/getClassHour")
//    Integer getClassHour(Integer courseConfigId);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java
@@ -20,6 +20,7 @@
    @PostMapping("/base/coursePack/paymentCourse")
    public List<PurchaseRecordVo> queryCourseDetails(@RequestBody GetStuSessionList getStuSessionList);
    @PostMapping("/base/coursePack/getRecord")
    List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest timeRequest);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/VideoOfCourseListClient.java
@@ -16,5 +16,5 @@
    @PostMapping("/base/courseVideo/query")
    List<ExerciseVideo> query(@RequestBody Integer id);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/CourseDetailReq.java
@@ -8,10 +8,10 @@
@AllArgsConstructor
@NoArgsConstructor
public class CourseDetailReq {
   private Integer appUserId;
   private Integer stuId;
   private String time;
   private Integer storeId;
   private String lon;
   private String lat;
    private Integer appUserId;
    private Integer stuId;
    private String time;
    private Integer storeId;
    private String lon;
    private String lat;
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuSessionDetailsVo.java
@@ -15,4 +15,13 @@
    @ApiModelProperty(value = "课时有效期")
    private String periodOfValidity;
    @ApiModelProperty(value = "总学时数")
    private Integer totalNums;
    @ApiModelProperty(value = "已扣学时数")
    private Integer deductedNums;
    @ApiModelProperty(value = "剩余学时数")
    private Integer remainingNums;
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java
@@ -13,6 +13,7 @@
    @PostMapping("/base/honor/stuHonors")
    public List<StuMedalVo> getStuHonors(@RequestBody List<Integer> honorIds);
    @PostMapping("/base/honor/getHonor")
    HonorRules getHonor(@RequestBody List<Integer> integers);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/NoticeClient.java
@@ -13,10 +13,10 @@
    @PostMapping("/base/notice/queryNoticeDetails")
     List<SysNotice> getSysNoticeDetails();
    List<SysNotice> getSysNoticeDetails();
    @PostMapping("/base/notice/queryNotice")
     SysNotice getSysNoticeBuId(@RequestParam("noticeId") Integer noticeId);
    SysNotice getSysNoticeBuId(@RequestParam("noticeId") Integer noticeId);
    @PostMapping("/base/notice/sysTell")
    List<String> queryCustomerTel();
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/RechargeConfigClient.java
@@ -12,6 +12,6 @@
public interface RechargeConfigClient {
    @PostMapping("/base/stored/getRechargeArrange")
    List<Map<String,Object>> getRechargeConfig();
    List<Map<String, Object>> getRechargeConfig();
}
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;
@@ -27,13 +28,18 @@
    @PostMapping("/base/site/getNewAddSiteList")
    List<SiteVo> getAppUserSiteList(Integer storeId);
    @PostMapping("/base/site/queryByCode")
    Integer queryByCode(@RequestBody String code);
    @PostMapping("/base/site/queryOperator")
    OperatorUser queryOperator(@RequestBody List<Integer> stores);
    @PostMapping("/base/site/game")
    List<Map<String, Object>> game(Integer appUserId);
    @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/feignclient/other/StoreClient.java
@@ -14,20 +14,17 @@
public interface StoreClient {
    @PostMapping("/store/queryByStoreId")
    OperatorUser queryByStoreId(Integer storeId);
    /**
     * 获取门店列表
     *
     * @return
     */
    @PostMapping("/store/queryStoreList")
    List<Store> queryStoreList(QueryStoreList queryStoreList);
    @PostMapping("/base/protocol/storeDetail/courseOfSto")
@@ -42,6 +39,7 @@
    /**
     * 根据门店id获取门店信息
     *
     * @param id
     * @return
     */
cloud-server-account/src/main/java/com/dsh/account/feignclient/other/model/StoreOfCitycodeResp.java
@@ -14,7 +14,7 @@
    private String cityCode;
    @ApiModelProperty(value = "纬度")
    private  String latitude;
    private String latitude;
    @ApiModelProperty(value = "经度")
    private String longitude;
cloud-server-account/src/main/java/com/dsh/account/mapper/RechargeRecordsMapper.java
@@ -21,7 +21,8 @@
 */
public interface RechargeRecordsMapper extends BaseMapper<RechargeRecords> {
    List<RechargeRecordsVO> rechargeList(@Param("query") RechargeRecordsQuery query,@Param("sTime")String sTime,@Param("eTime")String eTime);
    List<VipPayment> listAll(@Param("query") IncomeQuery query, @Param("sTime")String sTime, @Param("eTime")String eTime, @Param("amount") BigDecimal amount,@Param("insertType")Integer insertType);
    List<RechargeRecordsVO> rechargeList(@Param("query") RechargeRecordsQuery query, @Param("sTime") String sTime, @Param("eTime") String eTime);
    List<VipPayment> listAll(@Param("query") IncomeQuery query, @Param("sTime") String sTime, @Param("eTime") String eTime, @Param("amount") BigDecimal amount, @Param("insertType") Integer insertType);
}
cloud-server-account/src/main/java/com/dsh/account/mapper/TAppUserMapper.java
@@ -40,22 +40,25 @@
    List<SelectDto> getSelects(@Param("studentIds") List<Integer> studentIds);
    int changeState(@Param("ids") List<Integer> ids,@Param("state") Integer state);
    int changeState(@Param("ids") List<Integer> ids, @Param("state") Integer state);
    List<TAppUser> queryAPPUserByNameAndPhone(@Param("query") AppUserByNameAndPhoneDTO dto);
    List<YearData> getYearUserCount(@Param("dto") UserInfoQueryDTO dto);
    List<MonthData> getMonthUserCount(@Param("dto")UserInfoQueryDTO dto);
    List<MonthData> getMonthUserCount(@Param("dto") UserInfoQueryDTO dto);
    WeekData getWeekUserCount4(@Param("dto")UserInfoQueryDTO dto);
    WeekData getWeekUserCount3(@Param("dto")UserInfoQueryDTO dto);
    WeekData getWeekUserCount2(@Param("dto")UserInfoQueryDTO dto);
    WeekData getWeekUserCount1(@Param("dto")UserInfoQueryDTO dto);
    WeekData getWeekUserCount4(@Param("dto") UserInfoQueryDTO dto);
    List<DayData> getDayUserCount(@Param("dto")UserInfoQueryDTO dto);
    WeekData getWeekUserCount3(@Param("dto") UserInfoQueryDTO dto);
    List<GroupCityInfoVO> groupCityInfo(@Param("dto")UserInfoQueryDTO dto);
    WeekData getWeekUserCount2(@Param("dto") UserInfoQueryDTO dto);
    WeekData getWeekUserCount1(@Param("dto") UserInfoQueryDTO dto);
    List<DayData> getDayUserCount(@Param("dto") UserInfoQueryDTO dto);
    List<GroupCityInfoVO> groupCityInfo(@Param("dto") UserInfoQueryDTO dto);
    List<QueryAppUserVO> listAll1(@Param("query") QueryAppUser query);
}
cloud-server-account/src/main/java/com/dsh/account/mapper/TStudentMapper.java
@@ -31,8 +31,7 @@
    List<GetHistoryDto> getHistory();
    Integer getGiftSelect(@Param("giftSearchDto")GiftSearchDto giftSearchDto);
    Integer getGiftSelect(@Param("giftSearchDto") GiftSearchDto giftSearchDto);
    List<Map<String, Object>> queryCom(@Param("id") Integer id);
}
cloud-server-account/src/main/java/com/dsh/account/model/AddAppUserVo.java
@@ -6,7 +6,7 @@
@Data
@ApiModel
public class AddAppUserVo{
public class AddAppUserVo {
    @ApiModelProperty(value = "手机号", dataType = "string", required = true)
    private String phone;
    @ApiModelProperty(value = "验证码", dataType = "string", required = true)
@@ -15,8 +15,8 @@
    private String password;
    @ApiModelProperty(value = "邀请人id", dataType = "int", required = false)
    private Integer referralUserId;
    private String  invitePhone;
    private String invitePhone;
    private String lon;
    private String lat;
cloud-server-account/src/main/java/com/dsh/account/model/JoinPlayPaiVo.java
@@ -21,7 +21,7 @@
    private String lon;
    @ApiModelProperty("门店纬度")
    private String lat;
    private String province;
    private String provinceCode;
    private String city;
cloud-server-account/src/main/java/com/dsh/account/model/QueryDataFee.java
@@ -11,6 +11,6 @@
@NoArgsConstructor
public class QueryDataFee {
    private String data;
    private List<Integer> ids;
}
cloud-server-account/src/main/java/com/dsh/account/model/query/appUserQuery/QueryAppUser.java
@@ -9,16 +9,16 @@
 */
@Data
public class QueryAppUser {
   private String province;
   private String city;
   private String name;
   private String phone;
   private Integer isVip;
   private Integer state;
   private Integer salesmanUser;
   // 角色类型
   private Integer insertType;
   // 平台/运营商/门店id
   private Integer typeId;
   private List<Integer> userIds;
    private String province;
    private String city;
    private String name;
    private String phone;
    private Integer isVip;
    private Integer state;
    private Integer salesmanUser;
    // 角色类型
    private Integer insertType;
    // 平台/运营商/门店id
    private Integer typeId;
    private List<Integer> userIds;
}
cloud-server-account/src/main/java/com/dsh/account/model/vo/CoachSerchVO.java
@@ -46,7 +46,7 @@
     * 教练类型id
     */
    private Integer coachTypeId;
    private String  coachTypeName;
    private String coachTypeName;
    /**
     * 姓名
     */
cloud-server-account/src/main/java/com/dsh/account/model/vo/RechargeRecordsVO.java
@@ -13,14 +13,13 @@
@Data
public class RechargeRecordsVO {
    /**
     *
     *         {title: '所在省市', field: 'provinceAndCity', visible: true, align: 'center', valign: 'middle'},
     *         {title: '充值用户', field: 'name', visible:  true, align: 'center', valign: 'middle'},
     *         {title:  '联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
     *         {title:  '充值时间', field: 'time', visible: true, align: 'center', valign: 'middle'},
     *         {title: '充值金额', field: 'amount', visible: true, align: 'center', valign: 'middle'},
     *         {title: '玩湃币数量', field: 'playPaiCoins', visible: true, align: 'center', valign: 'middle'},
     *         {title: '充值类型', field: 'type', visible: true, align: 'center', valign: 'middle'},
     * {title: '所在省市', field: 'provinceAndCity', visible: true, align: 'center', valign: 'middle'},
     * {title: '充值用户', field: 'name', visible:  true, align: 'center', valign: 'middle'},
     * {title:  '联系方式', field: 'phone', visible: true, align: 'center', valign: 'middle'},
     * {title:  '充值时间', field: 'time', visible: true, align: 'center', valign: 'middle'},
     * {title: '充值金额', field: 'amount', visible: true, align: 'center', valign: 'middle'},
     * {title: '玩湃币数量', field: 'playPaiCoins', visible: true, align: 'center', valign: 'middle'},
     * {title: '充值类型', field: 'type', visible: true, align: 'center', valign: 'middle'},
     */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;
@@ -36,7 +35,7 @@
    private Integer type;
    private Integer appUserId;
    private Integer state;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    private Integer payStatus;
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/CourseVenue.java
@@ -21,7 +21,7 @@
    private List<CouList> courses;
    @Data
    public static class CouList{
    public static class CouList {
        @ApiModelProperty(value = "课包ID")
        Long courseID;
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/StuDetailsVo.java
@@ -5,7 +5,6 @@
import lombok.Data;
@Data
public class StuDetailsVo {
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/StuEditInfoReq.java
@@ -5,7 +5,7 @@
import lombok.Data;
@Data
public class StuEditInfoReq  extends StuDetailsReq {
public class StuEditInfoReq extends StuDetailsReq {
    @ApiModelProperty(value = "id")
    private Integer id;
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java
@@ -12,7 +12,7 @@
public class ClassInfoVo {
    @ApiModelProperty(value = "是否有学员信息 (1. 有学员信息  2.没有学员信息)")
    private Integer  isThere;
    private Integer isThere;
    @ApiModelProperty(value = "没有学员信息 对应的banner图")
    private String imgs;
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ExchangeDetailsResponse.java
@@ -37,7 +37,7 @@
    @ApiModelProperty(value = "商品类型  1实物 2课包 3门票 4优惠券")
    private Integer goodType;
    private Integer  userId;
    private Integer userId;
    private List<Integer> rid;
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/GoodsExchangeVo.java
@@ -13,24 +13,24 @@
@AllArgsConstructor
@NoArgsConstructor
public class GoodsExchangeVo {
    @ApiModelProperty(value = "商品id",required = true)
    @ApiModelProperty(value = "商品id", required = true)
    Integer goodId;
    @ApiModelProperty(value = "商品类型 1实物 2课包 3门票 4优惠券",required = true)
    @ApiModelProperty(value = "商品类型 1实物 2课包 3门票 4优惠券", required = true)
    Integer goodsType;
    @ApiModelProperty(value = "兑换数量",required = false)
    @ApiModelProperty(value = "兑换数量", required = false)
    Integer nums;
    @ApiModelProperty(value = "兑换方式(1=积分,2=积分+现金 3=现金)",required = true)
    @ApiModelProperty(value = "兑换方式(1=积分,2=积分+现金 3=现金)", required = true)
    Integer exchangeType;
    @ApiModelProperty(value = "现金支付方式(1=微信 2=支付宝)",required = false)
    @ApiModelProperty(value = "现金支付方式(1=微信 2=支付宝)", required = false)
    Integer payType;
    @ApiModelProperty(value = "学员id列表",required = false)
    @ApiModelProperty(value = "学员id列表", required = false)
    List<Integer> stuIds;
    @ApiModelProperty(value = "门店id",required = false)
    @ApiModelProperty(value = "门店id", required = false)
    Integer storeId;
}
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java
@@ -26,7 +26,7 @@
    private Integer userIntegral;
    @ApiModelProperty(value = "商品列表")
    private List<IntegralCommodity>  commodities;
    private List<IntegralCommodity> commodities;
    @ApiModelProperty(value = "banners")
    private UserBenefitImage image;
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java
@@ -8,7 +8,7 @@
import java.util.List;
@Data
public class   PointDetailsVo {
public class PointDetailsVo {
    @ApiModelProperty(value = "记录id")
    private Long detailsId;
@@ -59,8 +59,8 @@
    private Integer exchangeType;
    @ApiModelProperty(value = "1日卡 2月卡 3季卡 4年卡")
    private  Integer cardType;
    private Integer cardType;
    @ApiModelProperty(value = "使用范围")
    private  Integer exchangeAddrType;
    private Integer exchangeAddrType;
}
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/RechargesDetail.java
@@ -4,8 +4,6 @@
import lombok.Data;
@Data
public class RechargesDetail {
cloud-server-account/src/main/java/com/dsh/account/service/EvaluateStudentService.java
@@ -17,7 +17,6 @@
public interface EvaluateStudentService extends IService<EvaluateStudent> {
    List<StuCommentsVo> queryStuCommentsList(Integer stuId);
}
cloud-server-account/src/main/java/com/dsh/account/service/IVipPaymentService.java
@@ -17,6 +17,7 @@
    /**
     * 购买年度会员
     *
     * @param uid
     * @return
     * @throws Exception
@@ -26,6 +27,7 @@
    /**
     * 购买年度会员回调处理
     *
     * @throws Exception
     */
    ResultUtil addVipPaymentCallback(String code, String orderNumber) throws Exception;
cloud-server-account/src/main/java/com/dsh/account/service/RechargeRecordsService.java
@@ -23,12 +23,13 @@
 */
public interface RechargeRecordsService extends IService<RechargeRecords> {
    List<RechargesDetail> getAppUserRechargeRecord(String yearMonth, Integer recordId, Integer appUserId,Integer pageNum,Integer pageSize);
    List<RechargesDetail> getAppUserRechargeRecord(String yearMonth, Integer recordId, Integer appUserId, Integer pageNum, Integer pageSize);
    ResultUtil rechargeCenPayment(Integer userIdFormRedis, RechargePayRequest request);
    ResultUtil addRechargeCallbackPay(String code, String orderNumber);
    List<RechargeRecordsVO> rechargeList(RechargeRecordsQuery query);
    List<VipPayment> listAll(IncomeQuery query);
}
cloud-server-account/src/main/java/com/dsh/account/service/TAppGiftService.java
@@ -17,7 +17,7 @@
 */
public interface TAppGiftService extends IService<TAppGift> {
    Integer weeksOfAddHours(Long packetId,Integer appUserId,Integer num);
    Integer weeksOfAddHours(Long packetId, Integer appUserId, Integer num);
    List<IntroduceUser> queryIntroduceAll(IntroduceUserQuery query);
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -35,11 +35,12 @@
 */
public interface TAppUserService extends IService<TAppUser> {
    ClassInfoVo queryUserOfStus(Integer id,Integer uid);
    ClassInfoVo queryUserOfStus(Integer id, Integer uid);
    /**
     * 获取短信验证码
     *
     * @param type
     * @param phone
     * @return
@@ -50,6 +51,7 @@
    /**
     * 注册账号
     *
     * @return
     * @throws Exception
     */
@@ -58,6 +60,7 @@
    /**
     * 账号密码登录
     *
     * @param phone
     * @param password
     * @return
@@ -68,6 +71,7 @@
    /**
     * 验证码登录
     *
     * @return
     * @throws Exception
     */
@@ -76,6 +80,7 @@
    /**
     * 微信登录
     *
     * @return
     * @throws Exception
     */
@@ -84,6 +89,7 @@
    /**
     * 修改密码
     *
     * @param phone
     * @param code
     * @param password
@@ -101,6 +107,7 @@
    /**
     * 获取加入玩湃首页数据
     *
     * @param lon
     * @param lat
     * @return
@@ -110,21 +117,24 @@
    /**
     * 获取使用福利首页数据
     *
     * @param appUserId
     * @return
     */
    IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId,String lon,String lat);
    IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId, String lon, String lat);
    /**
     * 获取用户账单列表
     *
     * @param yearMonth 年月
     * @param recordId 记录
     * @param recordId  记录
     * @return
     */
    List<ConsumeDetail>  queryUserBillingDetails(String yearMonth, Integer recordId,Integer appUserId);
    List<ConsumeDetail> queryUserBillingDetails(String yearMonth, Integer recordId, Integer appUserId);
    /**
     * 注销账号
     *
     * @param appUserId
     */
    void cancellation(Integer appUserId);
@@ -134,21 +144,21 @@
    List<Goods> queryAppUserIntegral(MallRequest request);
    ProductDetailsVo productDetails(Integer goodId, Integer goodsType );
    ProductDetailsVo productDetails(Integer goodId, Integer goodsType);
    StuAndStoreResponse queryAppUserDefaultStuAndStore(Integer userIdFormRedis ,Integer pointsMerId, String lat, String lon,Integer isCourse);
    StuAndStoreResponse queryAppUserDefaultStuAndStore(Integer userIdFormRedis, Integer pointsMerId, String lat, String lon, Integer isCourse);
    ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeVo);
    ResultUtil exchangeAddPaymentCallback(String code, String orderNumber,Integer payType);
    ResultUtil exchangeAddPaymentCallback(String code, String orderNumber, Integer payType);
    List<StoreResponse> queryStoresOfExchange(Integer goodsType,Integer pointsMerId);
    List<StoreResponse> queryStoresOfExchange(Integer goodsType, Integer pointsMerId);
    List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId ,Integer stuId, String time, String longitude, String latitude);
    List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId, Integer stuId, String time, String longitude, String latitude);
    List<QueryAppUserVO> listAll(QueryAppUser query);
    Map<String,Object> weeksOfCourseDetailsList(Integer appUserId, Integer stuId, String time, Integer storeId,String lon,String lat);
    Map<String, Object> weeksOfCourseDetailsList(Integer appUserId, Integer stuId, String time, Integer storeId, String lon, String lat);
    List<SelectDto> getSelects(List<Integer> studentIds);
@@ -163,8 +173,11 @@
    List<MonthData> getMonthUserCount(UserInfoQueryDTO dto);
    WeekData getWeekUserCount4(UserInfoQueryDTO dto);
    WeekData getWeekUserCount3(UserInfoQueryDTO dto);
    WeekData getWeekUserCount2(UserInfoQueryDTO dto);
    WeekData getWeekUserCount1(UserInfoQueryDTO dto);
    List<DayData> getDayUserCount(UserInfoQueryDTO dto);
@@ -177,7 +190,7 @@
    ResultUtil bind(BindDto dto);
    ResultUtil<String> updateInfo(UpdateInfoDto dto,Integer uid);
    ResultUtil<String> updateInfo(UpdateInfoDto dto, Integer uid);
    List<QueryAppUserVO> listAll1(QueryAppUser query);
cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
@@ -35,23 +35,26 @@
 */
public interface TStudentService extends IService<TStudent> {
    ResultUtil addStuOfAppUser(StuDetailsReq stu,Integer appUserId) throws Exception;
    ResultUtil addStuOfAppUser(StuDetailsReq stu, Integer appUserId) throws Exception;
    ClassDetailsInsVo querySessionDetailsDt(Integer userIdFormRedis, Integer lessonId, Integer stuId);
    List<PurchaseRecordVo> queryDeduRecordDetails(RecordTimeRequest timeRequest,Integer appUserId);
    List<PurchaseRecordVo> queryDeduRecordDetails(RecordTimeRequest timeRequest, Integer appUserId);
    List<CouponStuAvailableVo> queryStuOfConponDetails(Integer appUserId);
    CourseDetailsOfContinuationResp queryStuOfCourseDetails(Integer lessonId, Integer stuId, Integer appUserId);
    /**
     * 查询探索-公告列表
     */
    List<SysNotice> querySystemNoticeDetails();
    /**
     * 查询公告详情
     */
    SysNotice queryNoticeData(Integer noId);
    /**
     * 查询常见问题列表
     */
@@ -83,28 +86,28 @@
    /**
     * 查询学院的上课记录
     *
     * @param stuId
     * @param appUserId
     * @return
     */
    List<RecordAppoint> getAppointmentRecords(Integer stuId, Integer appUserId, Integer appointStatus, Integer timeType, String search,Integer pageNum);
    List<RecordAppoint> getAppointmentRecords(Integer stuId, Integer appUserId, Integer appointStatus, Integer timeType, String search, Integer pageNum);
    ResultUtil cancelReservationOfCourse( Integer courseStuRecordId);
    ResultUtil cancelReservationOfCourse(Integer courseStuRecordId);
    /**
     *
     * @param space 距离
     * @param space    距离
     * @param cityCode 城市code
     * @return
     */
    List<StoreDetailList> queryStoreList(Integer space,String cityCode,String latitude,String longitude,String search);
    List<StoreDetailList> queryStoreList(Integer space, String cityCode, String latitude, String longitude, String search);
    StoreDetailsVo getStoreDetail(Integer storeId);
    ResultUtil commitEditStudentInfo(StuEditInfoReq stu, Integer userIdFormRedis);
    List<TStudentDto> listAll( StudentSearch search);
    List<TStudentDto> listAll(StudentSearch search);
    TStudentDto listOne(Integer id);
cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java
@@ -27,6 +27,7 @@
    /**
     * 保存用户积分变动
     *
     * @param vo
     * @throws Exception
     */
cloud-server-account/src/main/java/com/dsh/account/service/impl/CoachServiceImpl.java
@@ -24,6 +24,7 @@
public class CoachServiceImpl extends ServiceImpl<CoachMapper, Coach> implements CoachService {
    @Autowired
    private CoachMapper coachMapper;
    @Override
    public List<CoachSerchVO> listAll(CoachQuery query) {
@@ -32,6 +33,6 @@
    @Override
    public Object changeState(CoachChangeStateVO vo) {
        return coachMapper.changeState(vo.getIds(),vo.getState());
        return coachMapper.changeState(vo.getIds(), vo.getState());
    }
}
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,6 +40,8 @@
    @Autowired
    private CoachService coachService;
    @Resource
    private SiteClient siteClient;
    @Override
    public List<StuCommentsVo> queryStuCommentsList(Integer stuId) {
        List<StuCommentsVo> stuCommentsVos = new ArrayList<>();
@@ -50,11 +54,13 @@
            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/RechargeRecordsServiceImpl.java
@@ -78,7 +78,7 @@
    @Override
    public List<RechargesDetail> getAppUserRechargeRecord(String yearMonth, Integer recordId, Integer appUserId,Integer pageNum,Integer pageSize) {
    public List<RechargesDetail> getAppUserRechargeRecord(String yearMonth, Integer recordId, Integer appUserId, Integer pageNum, Integer pageSize) {
        List<RechargesDetail> details = new ArrayList<>();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
@@ -94,16 +94,16 @@
//            1.赛事报名
        List<PaymentCompetition> playPaiFGoldPayRecord = deducClient.getPlayPaiFGoldPayRecord(appUserId);
        if (playPaiFGoldPayRecord.size() > 0 ){
        if (playPaiFGoldPayRecord.size() > 0) {
            for (PaymentCompetition competition : playPaiFGoldPayRecord) {
                if (competition.getPayStatus()==2) {
                if (competition.getPayStatus() == 2) {
                    RechargesDetail consumeDetail = new RechargesDetail();
                    consumeDetail.setConsumeName(RechargeRecordEnum.EVENT_REGISTRATION.getMsg());
                    consumeDetail.setConsumeTime(simpleDateFormat.format(competition.getInsertTime()));
                    consumeDetail.setConsumeAmount("-" + competition.getAmount());
                    consumeDetail.setRecordId(2);
                    details.add(consumeDetail);
                }else {
                } else {
                    RechargesDetail consumeDetail1 = new RechargesDetail();
@@ -126,10 +126,10 @@
        }
//            2.课包购买
        List<CouponPaymentVo> appuserCourseList = cpClient.getAppuserCourseList(appUserId);
        if (appuserCourseList.size() > 0){
        if (appuserCourseList.size() > 0) {
            for (CouponPaymentVo tCoursePackagePayment : appuserCourseList) {
                RechargesDetail consumeDetail = new RechargesDetail();
                consumeDetail.setConsumeName(RechargeRecordEnum.COURSE_PACKAGE_PURCHASE.getMsg() );
                consumeDetail.setConsumeName(RechargeRecordEnum.COURSE_PACKAGE_PURCHASE.getMsg());
                consumeDetail.setConsumeTime(tCoursePackagePayment.getTime());
                consumeDetail.setConsumeAmount("-" + tCoursePackagePayment.getAmount());
                consumeDetail.setRecordId(2);
@@ -138,31 +138,49 @@
        }
//            3.场地预约
        List<SiteBooking> siteBookings = stClient.wanpaiGoldSiteBookingList(appUserId);
        if (siteBookings.size() > 0 ){
        if (siteBookings.size() > 0) {
            for (SiteBooking booking : siteBookings) {
                RechargesDetail consumeDetail = new RechargesDetail();
                consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg());
                consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getInsertTime()));
                consumeDetail.setConsumeAmount("-" + booking.getPayMoney());
                consumeDetail.setRecordId(2);
                details.add(consumeDetail);
                if (booking.getStatus() != 5) {
                    RechargesDetail consumeDetail = new RechargesDetail();
                    consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg());
                    consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getInsertTime()));
                    consumeDetail.setConsumeAmount("-" + booking.getPayMoney());
                    consumeDetail.setRecordId(2);
                    details.add(consumeDetail);
                } else {
                    RechargesDetail consumeDetail1 = new RechargesDetail();
                    consumeDetail1.setConsumeName(RechargeRecordEnum.CANCEL_VENUE_RESERVATION.getMsg());
                    consumeDetail1.setConsumeTime(simpleDateFormat.format(booking.getCancelTime()));
                    consumeDetail1.setConsumeAmount("+" + booking.getPayMoney());
                    consumeDetail1.setRecordId(1);
                    details.add(consumeDetail1);
                    RechargesDetail consumeDetail = new RechargesDetail();
                    consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg());
                    consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getInsertTime()));
                    consumeDetail.setConsumeAmount("-" + booking.getPayMoney());
                    consumeDetail.setRecordId(2);
                    details.add(consumeDetail);
                }
            }
        }
        //    4.智慧球场
        List<Map<String,Object>> list = stClient.game(appUserId);
        if (list.size() > 0 ){
            for (Map<String,Object> booking : list) {
        List<Map<String, Object>> list = stClient.game(appUserId);
        if (list.size() > 0) {
            for (Map<String, Object> booking : list) {
                RechargesDetail consumeDetail = new RechargesDetail();
                consumeDetail.setConsumeName("激战游戏");
                consumeDetail.setConsumeTime(simpleDateFormat.format(new Date(Long.valueOf(booking.get("time").toString()))));
                consumeDetail.setConsumeAmount("-"+String.valueOf(booking.get("money")));
                consumeDetail.setConsumeAmount("-" + String.valueOf(booking.get("money")));
                consumeDetail.setRecordId(2);
                details.add(consumeDetail);
            }
        }
       //  5.充值
        //  5.充值
        List<RechargeRecords> rechargeRecords = this.baseMapper.selectList(new QueryWrapper<RechargeRecords>()
                .eq("payStatus", 2)
                .eq("appUserId", appUserId)
@@ -177,12 +195,12 @@
                details.add(consumeDetail);
            }
        }
        if (ToolUtil.isNotEmpty(recordId)){
        if (ToolUtil.isNotEmpty(recordId)) {
            details = details.stream()
                    .filter(record -> record.getRecordId().equals(recordId))
                    .collect(Collectors.toList());
        }
        if (details.size() > 0 ){
        if (details.size() > 0) {
            Collections.sort(details, new Comparator<RechargesDetail>() {
                @Override
                public int compare(RechargesDetail o1, RechargesDetail o2) {
@@ -219,7 +237,6 @@
        }
        //分页
        filteredList = filteredList.stream().skip((pageNo - 1) * size).limit(size).
                collect(Collectors.toList());
@@ -238,7 +255,7 @@
        List<Map<String, Object>> rechargeConfig = reconMapper.getRechargeConfig();
        BigDecimal amount = BigDecimal.ZERO;
        if (rechargeConfig.size() > 0){
        if (rechargeConfig.size() > 0) {
            for (Map<String, Object> stringObjectMap : rechargeConfig) {
                double o = (double) stringObjectMap.get("money");
                if (BigDecimal.valueOf(o).compareTo(request.getAmount()) == 0) {
@@ -257,45 +274,44 @@
        rechargeRecords.setInsertTime(new Date());
        this.baseMapper.insert(rechargeRecords);
        try {
            switch (request.getPayType()){
            switch (request.getPayType()) {
                case 1:
                    return WeChatPayment(code,amount);
                    return WeChatPayment(code, amount);
                case 2:
                    return AlipayPayment(code,amount);
                    return AlipayPayment(code, amount);
                default:
                    break;
            }
        }catch (Exception e){
        } catch (Exception e) {
            ResultUtil.runErr();
        }
        return ResultUtil.success();
    }
    private ResultUtil AlipayPayment(String code,BigDecimal amount) {
    private ResultUtil AlipayPayment(String code, BigDecimal amount) {
        ResultUtil alipay = payMoneyUtil.alipay("玩湃币充值", "玩湃币充值", "", code, amount.toString(),
                "/base/recharge/alipayRechargeCallback");
        if(alipay.getCode() == 200){
        if (alipay.getCode() == 200) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
                        while (num <= 10) {
                            int min = 5000;
                            wait += (min * num);
                            Thread.sleep(wait);
                            RechargeRecords records = rereMapper.selectOne(new QueryWrapper<RechargeRecords>()
                                    .eq("code",code));
                            if(records.getPayStatus() == 2){
                                    .eq("code", code));
                            if (records.getPayStatus() == 2) {
                                break;
                            }
                            AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
                            if(resultUtil.getCode().equals("10000")&& records.getPayStatus() == 1){
                            if (resultUtil.getCode().equals("10000") && records.getPayStatus() == 1) {
                                /**
                                 * WAIT_BUYER_PAY(交易创建,等待买家付款)、
                                 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
@@ -308,13 +324,13 @@
                                String tradeNo = resultUtil.getTradeNo();
                                String tradeStatus = resultUtil.getTradeStatus();
                                System.out.println("ssssss"+tradeStatus);
                                if("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus) || num == 10){
                                System.out.println("ssssss" + tradeStatus);
                                if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus) || num == 10) {
                                    records.setState(3);
                                    rereMapper.deleteById(records.getId());
                                    break;
                                }
                                if("TRADE_SUCCESS".equals(tradeStatus)){
                                if ("TRADE_SUCCESS".equals(tradeStatus)) {
                                    records.setAppUserId(null);
                                    records.setPayStatus(2);
                                    records.setPayTime(new Date());
@@ -323,24 +339,22 @@
                                    RechargeRecords rechargeRecords = rereMapper.selectOne(new QueryWrapper<RechargeRecords>()
                                            .eq("code", code));
                                    if (rechargeRecords.getPayStatus() == 2){
                                    if (rechargeRecords.getPayStatus() == 2) {
                                        TAppUser tAppUser = tappMapper.selectById(rechargeRecords.getAppUserId());
                                        tAppUser.setPlayPaiCoins(null == tAppUser.getPlayPaiCoins()? rechargeRecords.getPlayPaiCoins(): tAppUser.getPlayPaiCoins() +rechargeRecords.getPlayPaiCoins() );
                                        tAppUser.setPlayPaiCoins(null == tAppUser.getPlayPaiCoins() ? rechargeRecords.getPlayPaiCoins() : tAppUser.getPlayPaiCoins() + rechargeRecords.getPlayPaiCoins());
                                        tappMapper.updateById(tAppUser);
                                        break;
                                    }
                                    break;
                                }
                                if("WAIT_BUYER_PAY".equals(tradeStatus)){
                                if ("WAIT_BUYER_PAY".equals(tradeStatus)) {
                                    num++;
                                }
                            }
                        }
                    }catch (Exception e){
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
@@ -349,27 +363,27 @@
        return alipay;
    }
    private ResultUtil WeChatPayment(String code,BigDecimal amount) throws Exception {
    private ResultUtil WeChatPayment(String code, BigDecimal amount) throws Exception {
        ResultUtil weixinpay = payMoneyUtil.weixinpay("玩湃币充值", "", code, amount.toString(),
                "/base/recharge/wechatRechargeCallback", "APP", "");
        if(weixinpay.getCode() == 200){
        if (weixinpay.getCode() == 200) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
                        while (num <= 10) {
                            int min = 5000;
                            wait += (min * num);
                            Thread.sleep(wait);
                            RechargeRecords records = rereMapper.selectOne(new QueryWrapper<RechargeRecords>()
                                    .eq("code",code));
                            if(records.getPayStatus() == 2){
                                    .eq("code", code));
                            if (records.getPayStatus() == 2) {
                                break;
                            }
                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
                            if(resultUtil.getCode() == 200 && records.getPayStatus() == 1){
                            if (resultUtil.getCode() == 200 && records.getPayStatus() == 1) {
                                /**
                                 * SUCCESS—支付成功,
                                 * REFUND—转入退款,
@@ -382,23 +396,23 @@
                                Map<String, String> data1 = resultUtil.getData();
                                String s = data1.get("trade_state");
                                String transaction_id = data1.get("transaction_id");
                                if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){
                                if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                    records.setState(3);
                                    rereMapper.deleteById(records.getId());
                                    break;
                                }
                                if("SUCCESS".equals(s)){
                                if ("SUCCESS".equals(s)) {
                                    records.setPayStatus(2);
                                    records.setOrderNumber(transaction_id);
                                    rereMapper.updateById(records);
                                    break;
                                }
                                if("USERPAYING".equals(s)){
                                if ("USERPAYING".equals(s)) {
                                    num++;
                                }
                            }
                        }
                    }catch (Exception e){
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
@@ -412,8 +426,8 @@
    public ResultUtil addRechargeCallbackPay(String code, String orderNumber) {
        RechargeRecords rechargeRecords = this.baseMapper.selectOne(new QueryWrapper<RechargeRecords>()
                .eq("code", code));
        if (rechargeRecords.getPayStatus() == 2){
            return  ResultUtil.success();
        if (rechargeRecords.getPayStatus() == 2) {
            return ResultUtil.success();
        }
        rechargeRecords.setAppUserId(null);
        rechargeRecords.setPayStatus(2);
@@ -422,7 +436,7 @@
        this.baseMapper.updateById(rechargeRecords);
        TAppUser tAppUser = tappMapper.selectById(rechargeRecords.getAppUserId());
        tAppUser.setPlayPaiCoins(null == tAppUser.getPlayPaiCoins()? rechargeRecords.getPlayPaiCoins(): tAppUser.getPlayPaiCoins() +rechargeRecords.getPlayPaiCoins() );
        tAppUser.setPlayPaiCoins(null == tAppUser.getPlayPaiCoins() ? rechargeRecords.getPlayPaiCoins() : tAppUser.getPlayPaiCoins() + rechargeRecords.getPlayPaiCoins());
        tappMapper.updateById(tAppUser);
        return null;
    }
@@ -436,7 +450,7 @@
            ETime = query.getTime().split(" - ")[1] + " 23:59:59";
        }
        return  rechargeRecordsMapper.rechargeList(query,STime,ETime);
        return rechargeRecordsMapper.rechargeList(query, STime, ETime);
    }
@@ -448,8 +462,9 @@
            STime = query.getTime().split(" - ")[0] + " 00:00:00";
            ETime = query.getTime().split(" - ")[1] + " 23:59:59";
        }
        return rechargeRecordsMapper.listAll(query,STime,ETime,query.getAmount(),query.getInsertType());
        return rechargeRecordsMapper.listAll(query, STime, ETime, query.getAmount(), query.getInsertType());
    }
    public static <T> List<T> pageList(List<T> list, int pageNum, int pageSize) {
        //计算总页数
        int page = list.size() % pageSize == 0 ? list.size() / pageSize : list.size() / pageSize + 1;
cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java
@@ -85,8 +85,8 @@
//                voList.add(vo);
//            });
//        }
        Integer count1 =coursePackageClient.counts(stuId);
        if (count1>0){
        Integer count1 = coursePackageClient.counts(stuId);
        if (count1 > 0) {
            GongVo vo = new GongVo();
            vo.setMedalType(1);
            vo.setMedalName("俱乐部之星");
@@ -94,7 +94,7 @@
        }
        Integer count2 = participantClient.counts(stuId);
        if (count2>0){
        if (count2 > 0) {
            GongVo vo = new GongVo();
            vo.setMedalType(2);
            vo.setMedalName("运动达人");
@@ -102,7 +102,7 @@
        }
        Integer count3 = siteClient.counts(student.getAppUserId());
        if (count3>0){
        if (count3 > 0) {
            GongVo vo = new GongVo();
            vo.setMedalType(3);
            vo.setMedalName("社区之王");
@@ -111,7 +111,7 @@
        Integer count4 = coursePackageClient.counts1(stuId);
        if (count4>0){
        if (count4 > 0) {
            GongVo vo = new GongVo();
            vo.setMedalType(4);
            vo.setMedalName("深度玩家");
@@ -123,14 +123,13 @@
    }
    @Override
    public List<StuMedalVo> queryHonorDetails(Integer stuId) {
        List<StuMedalVo> studentHonors = new ArrayList<>();
//        List<Integer> collect = studentHonors.stream().map(StudentHonor::getHonorRuleId).collect(Collectors.toList());
        Integer count1 =coursePackageClient.counts(stuId);
        if (count1>0){
        Integer count1 = coursePackageClient.counts(stuId);
        if (count1 > 0) {
            StuMedalVo vo = new StuMedalVo();
            vo.setMedalType(1);
            vo.setMedalName("俱乐部之星");
@@ -139,12 +138,12 @@
            integers.add(1);
            integers.add(count1);
            HonorRules honorRules = honorDeClient.getHonor(integers);
            if (count1<Integer.valueOf(honorRules.getCondition())){
                vo.setLevelNum(Integer.valueOf(honorRules.getLevel())-1);
            if (count1 < Integer.valueOf(honorRules.getCondition())) {
                vo.setLevelNum(Integer.valueOf(honorRules.getLevel()) - 1);
                vo.setNextLevel(Integer.valueOf(honorRules.getLevel()));
                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition())-count1));
                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition()) - count1));
                vo.setIsTopLevel(0);
            }else {
            } else {
                vo.setIsTopLevel(1);
            }
@@ -152,7 +151,7 @@
        }
        Integer count2 = participantClient.counts(stuId);
        if (count2>0){
        if (count2 > 0) {
            StuMedalVo vo = new StuMedalVo();
            vo.setMedalType(2);
            vo.setMedalName("运动达人");
@@ -161,12 +160,12 @@
            integers.add(2);
            integers.add(count2);
            HonorRules honorRules = honorDeClient.getHonor(integers);
            if (count2<Integer.valueOf(honorRules.getCondition())){
                vo.setLevelNum(Integer.valueOf(honorRules.getLevel())-1);
            if (count2 < Integer.valueOf(honorRules.getCondition())) {
                vo.setLevelNum(Integer.valueOf(honorRules.getLevel()) - 1);
                vo.setNextLevel(Integer.valueOf(honorRules.getLevel()));
                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition())-count2));
                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition()) - count2));
                vo.setIsTopLevel(0);
            }else {
            } else {
                vo.setIsTopLevel(1);
            }
@@ -175,7 +174,7 @@
        TStudent student = studentService.getById(stuId);
        Integer count3 = siteClient.counts(student.getAppUserId());
        if (count3>0){
        if (count3 > 0) {
            StuMedalVo vo = new StuMedalVo();
            vo.setMedalType(3);
            vo.setMedalName("社区之王");
@@ -184,12 +183,12 @@
            integers.add(3);
            integers.add(count3);
            HonorRules honorRules = honorDeClient.getHonor(integers);
            if (count3<Integer.valueOf(honorRules.getCondition())){
                vo.setLevelNum(Integer.valueOf(honorRules.getLevel())-1);
            if (count3 < Integer.valueOf(honorRules.getCondition())) {
                vo.setLevelNum(Integer.valueOf(honorRules.getLevel()) - 1);
                vo.setNextLevel(Integer.valueOf(honorRules.getLevel()));
                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition())-count3));
                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition()) - count3));
                vo.setIsTopLevel(0);
            }else {
            } else {
                vo.setIsTopLevel(1);
            }
@@ -198,7 +197,7 @@
        Integer count4 = coursePackageClient.counts1(stuId);
        if (count4>0){
        if (count4 > 0) {
            StuMedalVo vo = new StuMedalVo();
            vo.setMedalType(4);
            vo.setMedalName("深度玩家");
@@ -207,18 +206,17 @@
            integers.add(4);
            integers.add(count4);
            HonorRules honorRules = honorDeClient.getHonor(integers);
            if (count4<Integer.valueOf(honorRules.getCondition())){
                vo.setLevelNum(Integer.valueOf(honorRules.getLevel())-1);
            if (count4 < Integer.valueOf(honorRules.getCondition())) {
                vo.setLevelNum(Integer.valueOf(honorRules.getLevel()) - 1);
                vo.setNextLevel(Integer.valueOf(honorRules.getLevel()));
                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition())-count4));
                vo.setUpgradeConditions(String.valueOf(Integer.valueOf(honorRules.getCondition()) - count4));
                vo.setIsTopLevel(0);
            }else {
            } else {
                vo.setIsTopLevel(1);
            }
            studentHonors.add(vo);
        }
        return studentHonors;
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppGiftServiceImpl.java
@@ -30,8 +30,8 @@
    private TAppGiftMapper mapper;
    @Override
    public Integer weeksOfAddHours(Long packetId,Integer appUserId,Integer num) {
        Integer b = coursePaymentClient.sendHours(packetId+"_"+appUserId+"_"+num);
    public Integer weeksOfAddHours(Long packetId, Integer appUserId, Integer num) {
        Integer b = coursePaymentClient.sendHours(packetId + "_" + appUserId + "_" + num);
        return b;
    }
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -176,21 +176,32 @@
    private String alipayPublicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAouYvZ1v4RiydwNOnGcU0Hb4hQu0x6XUooaE2Bi6/atNOobtFdunnATGP6OMOW7yF9DpP8qH5mbFXAiaQD721y/7qlayI50UcV4mngRU4ZcaAVE3bp721Eg2H85RISa+Tb1CiOh+pc9p4l5UBseKsvB2ruHHForfZDPI8FL7AVUKBYCQPsa4zL6KAO2C6KULaTg/lCa+bYQKU0n9ca569VtdsqJUyxB9eSZjVd+9nKl62FLqp2NELGj7cXqiVBgDnBnVS5ZUO3mrBM5z/AxQbw3RwE3JqdkhzUA1BFjejAlT2zIGNOjUFagF8ao0wGElYfuk0bum6Hz5qWAt02QdNNwIDAQAB";//支付宝应用公钥
    private String alipay_public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmu8n/4yTHWbn7VOrNc9OsLtDL1bEQ8gC1dHkj8Wy5z0mkaOsjJRIG/28ze12M0V8jdCKuuDr5Z1OPKiqf+XO3ypguEh+mYUVMBM/cZodDFQfTY1TKLWjvQCuaqlA+QUTCK6f7T7stsgyQ1o9Jj0rXZDz6PM4QHSTzjrLIBaeqM5WIBvH+fy/X+QG5Utd+/UT0kc0JyvuKhZ65yVUd/C9VcwJJAPliRsAQNrqYterwAJ9zvw9tF11wj9W0XgJ8Ccu4x3gR1vrlLRJJo/OA97RmxPQ+5hSacWQZCUd1dwiBq+YCrKVHGTj14izRHXrLc0yBlRXo7tBOIqcy3IsvKVthQIDAQAB";//支付宝支付公钥
    @Resource
    private UserConponClient userConponClient;
    @Autowired
    private TAppUserService appUserService;
    @Resource
    private MerChandiseClient merChandiseClient;
    // 对数据进行分页处理的方法
    private static Page<Goods> getPage(List<Goods> dataList, Pageable pageable) {
        int start = (int) pageable.getOffset();
        int end = Math.min((start + pageable.getPageSize()), dataList.size());
        return new PageImpl<>(dataList.subList(start, end), pageable, dataList.size());
    }
    @Override
    public List<QueryAppUserVO> listAll(QueryAppUser query) {
       return appUserMapper.listAll(query);
        return appUserMapper.listAll(query);
    }
    @Override
    public HashMap<String,Object> weeksOfCourseDetailsList(Integer appUserId, Integer stuId, String time, Integer storeId,String lon,String lat) {
    public HashMap<String, Object> weeksOfCourseDetailsList(Integer appUserId, Integer stuId, String time, Integer storeId, String lon, String lat) {
        // 门店id 查出所有课程
        HashMap<String, Object> map = paymentClient.weeksOfCourseDetailsList(new CourseDetailReq(appUserId, stuId, time, storeId,lon,lat));
        HashMap<String, Object> map = paymentClient.weeksOfCourseDetailsList(new CourseDetailReq(appUserId, stuId, time, storeId, lon, lat));
        return map;
    }
    @Override
    public List<SelectDto> getSelects(List<Integer> studentIds) {
@@ -199,13 +210,14 @@
    @Override
    public Object changeState(AdvertisementChangeStateDTO dto) {
        return appUserMapper.changeState(dto.getIds(),dto.getState());
        return appUserMapper.changeState(dto.getIds(), dto.getState());
    }
    @Override
    public List<TAppUser> queryAPPUserByNameAndPhone(AppUserByNameAndPhoneDTO dto) {
        return appUserMapper.queryAPPUserByNameAndPhone(dto);
    }
    @Override
    public List<YearData> getYearUserCount(UserInfoQueryDTO dto) {
        return appUserMapper.getYearUserCount(dto);
@@ -228,14 +240,17 @@
    public WeekData getWeekUserCount4(UserInfoQueryDTO dto) {
        return appUserMapper.getWeekUserCount4(dto);
    }
    @Override
    public WeekData getWeekUserCount3(UserInfoQueryDTO dto) {
        return appUserMapper.getWeekUserCount3(dto);
    }
    @Override
    public WeekData getWeekUserCount2(UserInfoQueryDTO dto) {
        return appUserMapper.getWeekUserCount2(dto);
    }
    @Override
    public WeekData getWeekUserCount1(UserInfoQueryDTO dto) {
        return appUserMapper.getWeekUserCount1(dto);
@@ -244,17 +259,17 @@
    @Override
    public List<DayData> getDayUserCount(UserInfoQueryDTO dto) {
        List<DayData> dayUserCount = appUserMapper.getDayUserCount(dto);
        if(dayUserCount.size()<7){
        if (dayUserCount.size() < 7) {
            for (int i = 1; i <= 6; i++) {
                String time = LocalDate.now().minusDays(i).toString();
                for (DayData dayData : dayUserCount) {
                    if(!time.equals(dayData.getDay())){
                        dayUserCount.add(new DayData(time,0));
                    if (!time.equals(dayData.getDay())) {
                        dayUserCount.add(new DayData(time, 0));
                    }
                }
            }
        }
        dayUserCount.forEach(dayData->dayData.setDay(dayData.getDay().split("-")[2]));
        dayUserCount.forEach(dayData -> dayData.setDay(dayData.getDay().split("-")[2]));
        return dayUserCount.stream().sorted(Comparator.comparing(DayData::getDay)).collect(Collectors.toList());
    }
@@ -262,17 +277,14 @@
    public List<GroupCityInfoVO> groupCityInfo(UserInfoQueryDTO dto) {
        return appUserMapper.groupCityInfo(dto);
    }
    @Override
    public ClassInfoVo queryUserOfStus(Integer id,Integer uid) {
    public ClassInfoVo queryUserOfStus(Integer id, Integer uid) {
        TAppUser tAppUser = this.baseMapper.selectById(uid);
        ClassInfoVo classInfoVo = new ClassInfoVo();
//        if (ToolUtil.isNotEmpty(tAppUser)){
//
        List<TStudent> tStudents = new ArrayList<>();
        if (id!=null) {
             tStudents = tsmapper.selectList(new QueryWrapper<TStudent>()
        if (id != null) {
            tStudents = tsmapper.selectList(new QueryWrapper<TStudent>()
                    .eq("id", id).eq("state", 1));
            if (tStudents.size() == 0) {
@@ -280,75 +292,72 @@
                        .eq("appUserId", tAppUser.getId())
                        .eq("state", 1));
            }
        }else {
                 tStudents = tsmapper.selectList(new QueryWrapper<TStudent>()
                    .eq("appUserId",tAppUser.getId())
                    .eq("state",1)
                    .eq("isDefault",1));
                 if (tStudents.isEmpty()){
                     tStudents = tsmapper.selectList(new QueryWrapper<TStudent>()
                             .eq("appUserId",tAppUser.getId())
                             .eq("state",1))
                             ;
                 }
        } else {
            tStudents = tsmapper.selectList(new QueryWrapper<TStudent>()
                    .eq("appUserId", tAppUser.getId())
                    .eq("state", 1)
                    .eq("isDefault", 1));
            if (tStudents.isEmpty()) {
                tStudents = tsmapper.selectList(new QueryWrapper<TStudent>()
                        .eq("appUserId", tAppUser.getId())
                        .eq("state", 1))
                ;
            }
        }
            if (tStudents.size() > 0 ){
                TStudent tStudent = tStudents.get(0);
                classInfoVo.setStuId(tStudent.getId());
                classInfoVo.setIsThere(1);
                classInfoVo.setStuImg(tStudent.getHeadImg());
                classInfoVo.setStuSex(tStudent.getSex());
                classInfoVo.setStuAge(DateUtil.age(tStudent.getBirthday()));
                classInfoVo.setStuName(tStudent.getName());
                classInfoVo.setHeight(tStudent.getHeight());
                classInfoVo.setWeight(tStudent.getWeight());
                classInfoVo.setBmi(tStudent.getBmi());
                if (tStudent.getBmi()!=null) {
                    classInfoVo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi()));
                }
                List<RegisteredCourse> courseList = new ArrayList<>();
                List<StuCourseResp> stuCoursePayment = paymentClient.getStuCoursePayment(tStudent.getId());
                List<Integer> coursePackIds = new ArrayList<>();
                if (stuCoursePayment.size() > 0){
                    coursePackIds = stuCoursePayment.stream().map(StuCourseResp::getCourseId).collect(Collectors.toList());
                    for (StuCourseResp tCoursePackagePayment : stuCoursePayment) {
                        RegisteredCourse course = new RegisteredCourse();
                        course.setId(tCoursePackagePayment.getId());
                        course.setCourseId(tCoursePackagePayment.getCourseId());
                        course.setCourseName(tCoursePackagePayment.getCourseName());
                        course.setTotalNums(ToolUtil.isEmpty(tCoursePackagePayment.getTotalCourseNums()) ? 0 : tCoursePackagePayment.getTotalCourseNums());
                        course.setDeductedNums(ToolUtil.isEmpty(tCoursePackagePayment.getDeductionNums()) ? 0 : tCoursePackagePayment.getDeductionNums());
                        course.setRemainingNums(ToolUtil.isEmpty(tCoursePackagePayment.getResidueNums())? 0 : tCoursePackagePayment.getResidueNums());
                        course.setPeriodOfValidity(tCoursePackagePayment.getPeriodOfValidity());
                        course.setIsAble(tCoursePackagePayment.getIsAble());
                        course.setCourseType(tCoursePackagePayment.getCourseType());
                        courseList.add(course);
                    }
                }
                classInfoVo.setCourseList(courseList);
//                List<ExerciseVideo> stuCourseOfVideoList = voclClient.getStuCourseOfVideoList(coursePackIds);
                List<ExerciseVideo> query = voclClient.query(tStudent.getId());
                    classInfoVo.setExerciseVideoList(query);
            }else {
                classInfoVo.setIsThere(2);
                List<TImgConfig> tImgConfigs = configClient.getNoneStuImgs();
                if (tImgConfigs.size() > 0){
                    classInfoVo.setImgs(tImgConfigs.get(0).getContent());
        if (tStudents.size() > 0) {
            TStudent tStudent = tStudents.get(0);
            classInfoVo.setStuId(tStudent.getId());
            classInfoVo.setIsThere(1);
            classInfoVo.setStuImg(tStudent.getHeadImg());
            classInfoVo.setStuSex(tStudent.getSex());
            classInfoVo.setStuAge(DateUtil.age(tStudent.getBirthday()));
            classInfoVo.setStuName(tStudent.getName());
            classInfoVo.setHeight(tStudent.getHeight());
            classInfoVo.setWeight(tStudent.getWeight());
            classInfoVo.setBmi(tStudent.getBmi());
            if (tStudent.getBmi() != null) {
                classInfoVo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi()));
            }
            List<RegisteredCourse> courseList = new ArrayList<>();
            List<StuCourseResp> stuCoursePayment = paymentClient.getStuCoursePayment(tStudent.getId());
            if (stuCoursePayment.size() > 0) {
                for (StuCourseResp tCoursePackagePayment : stuCoursePayment) {
                    RegisteredCourse course = new RegisteredCourse();
                    course.setId(tCoursePackagePayment.getId());
                    course.setCourseId(tCoursePackagePayment.getCourseId());
                    course.setCourseName(tCoursePackagePayment.getCourseName());
                    course.setTotalNums(ToolUtil.isEmpty(tCoursePackagePayment.getTotalCourseNums()) ? 0 : tCoursePackagePayment.getTotalCourseNums());
                    course.setDeductedNums(ToolUtil.isEmpty(tCoursePackagePayment.getDeductionNums()) ? 0 : tCoursePackagePayment.getDeductionNums());
                    course.setRemainingNums(ToolUtil.isEmpty(tCoursePackagePayment.getResidueNums()) ? 0 : tCoursePackagePayment.getResidueNums());
                    course.setPeriodOfValidity(tCoursePackagePayment.getPeriodOfValidity());
                    course.setIsAble(tCoursePackagePayment.getIsAble());
                    course.setCourseType(tCoursePackagePayment.getCourseType());
                    courseList.add(course);
                }
            }
//        }
            classInfoVo.setCourseList(courseList);
            List<ExerciseVideo> query = voclClient.query(tStudent.getId());
            classInfoVo.setExerciseVideoList(query);
        } else {
            classInfoVo.setIsThere(2);
            List<TImgConfig> tImgConfigs = configClient.getNoneStuImgs();
            if (tImgConfigs.size() > 0) {
                classInfoVo.setImgs(tImgConfigs.get(0).getContent());
            }
        }
        return classInfoVo;
    }
    /**
     * 处理数据
     *
     * @param storeOfCourses
     * @param longitude
     * @param latitude
     * @return
     */
    public List<CourseVenue> dealDatas(List<CourseOfStoreVo> storeOfCourses, String longitude , String latitude){
    public List<CourseVenue> dealDatas(List<CourseOfStoreVo> storeOfCourses, String longitude, String latitude) {
        List<CourseVenue> courseVenues = new ArrayList<>();
        Map<Integer, List<CourseOfStoreVo>> map = storeOfCourses.stream().collect(Collectors.groupingBy(CourseOfStoreVo::getStoreId));
        for (Map.Entry<Integer, List<CourseOfStoreVo>> integerListEntry : map.entrySet()) {
@@ -357,9 +366,9 @@
            CourseVenue courseVenue = new CourseVenue();
            courseVenue.setStoreId(storeId);
            courseVenue.setAreaName(value.get(0).getCourseName());
            if (ToolUtil.isEmpty(longitude) && ToolUtil.isEmpty(latitude)){
                courseVenue.setSiteDistance(0+"");
            }else {
            if (ToolUtil.isEmpty(longitude) && ToolUtil.isEmpty(latitude)) {
                courseVenue.setSiteDistance(0 + "");
            } else {
                courseVenue.setSiteDistance(LonlatUtils.distance(Double.parseDouble(longitude), Double.parseDouble(latitude),
                        Double.parseDouble(value.get(0).getLon()), Double.parseDouble(value.get(0).getLat())) + "");
            }
@@ -383,28 +392,28 @@
        return courseVenues;
    }
    /**
     * 获取短信验证码
     * @param type 1:登录,2:注册,3:修改密码,4:忘记密码
     *
     * @param type  1:登录,2:注册,3:修改密码,4:忘记密码
     * @param phone
     * @return
     * @throws Exception
     */
    @Override
    public ResultUtil getSMSCode(Integer type, String phone) throws Exception {
        if(type == 2){
        if (type == 2) {
            TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", phone).ne("state", 3));
            if(null != tAppUser){
            if (null != tAppUser) {
                return ResultUtil.error("账号已存在");
            }
        }
        String numberRandom = UUIDUtil.getNumberRandom(6);
        String templateCode = "";
        if(type == 1 || type == 2){
        if (type == 1 || type == 2) {
            templateCode = "SMS_161275250";
        }
        if(type == 3 || type == 4){
        if (type == 3 || type == 4) {
            templateCode = "SMS_160960014";
        }
        aLiSendSms.sendSms(phone, templateCode, "{\"code\":\"" + numberRandom + "\"}");
@@ -412,9 +421,9 @@
        return ResultUtil.success();
    }
    /**
     * 注册用户
     *
     * @return
     * @throws Exception
     */
@@ -423,11 +432,11 @@
        TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>()
                .eq("phone", addAppUserVo.getPhone())
                .ne("state", 3));
        if(null != tAppUser){
        if (null != tAppUser) {
            return ResultUtil.error("账号已存在");
        }
        String value = redisUtil.getValue(addAppUserVo.getPhone());
        if(!"123456".equals(addAppUserVo.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(addAppUserVo.getCode()))){
        if (!"123456".equals(addAppUserVo.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(addAppUserVo.getCode()))) {
            return ResultUtil.error("验证码无效");
        }
@@ -440,63 +449,61 @@
        tAppUser.setInsertTime(new Date());
        // 注册用户
        int insert = this.baseMapper.insert(tAppUser);
            // 介绍有礼
            if(addAppUserVo.getReferralUserId()!=null || ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())){
                if(ToolUtil.isEmpty(addAppUserVo.getLat()) || ToolUtil.isEmpty(addAppUserVo.getLon())){
                    return ResultUtil.error("请先开启定位", "");
                }
                Map<String, String> geocode = gdMapGeocodingUtil.geocode(addAppUserVo.getLon(), addAppUserVo.getLat());
                Integer num=0;
                Integer activityId=null;
                if(null != geocode){
                    String province = geocode.get("province");
                    String provinceCode = geocode.get("provinceCode");
                    String city = geocode.get("city");
                    String cityCode = geocode.get("cityCode");
                    // 根据所在市code 查询是否有介绍有礼活动
                    IntroduceRewards res = introduceRewardsClient.getGiftList(cityCode);
                    if (res!=null){
                        num = res.getGiveClass();
                        activityId = res.getId();
                        if(ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())){
                            List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>()
                                    .eq(TAppUser::getPhone, addAppUserVo.getInvitePhone()));
                            if(tAppUsers.size()>0){
                                addAppUserVo.setReferralUserId(tAppUsers.get(0).getId());
                            }
        // 介绍有礼
        if (addAppUserVo.getReferralUserId() != null || ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())) {
            if (ToolUtil.isEmpty(addAppUserVo.getLat()) || ToolUtil.isEmpty(addAppUserVo.getLon())) {
                return ResultUtil.error("请先开启定位", "");
            }
            Map<String, String> geocode = gdMapGeocodingUtil.geocode(addAppUserVo.getLon(), addAppUserVo.getLat());
            Integer num = 0;
            Integer activityId = null;
            if (null != geocode) {
                String province = geocode.get("province");
                String provinceCode = geocode.get("provinceCode");
                String city = geocode.get("city");
                String cityCode = geocode.get("cityCode");
                // 根据所在市code 查询是否有介绍有礼活动
                IntroduceRewards res = introduceRewardsClient.getGiftList(cityCode);
                if (res != null) {
                    num = res.getGiveClass();
                    activityId = res.getId();
                    if (ToolUtil.isNotEmpty(addAppUserVo.getInvitePhone())) {
                        List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>()
                                .eq(TAppUser::getPhone, addAppUserVo.getInvitePhone()));
                        if (tAppUsers.size() > 0) {
                            addAppUserVo.setReferralUserId(tAppUsers.get(0).getId());
                        }
                        if (num!=0){
                            TAppGift tAppGift = new TAppGift();
                            TAppUser phone = appUserService.getOne(new QueryWrapper<TAppUser>()
                                    .eq("phone", addAppUserVo.getInvitePhone()));
                            if (phone == null){
                                return ResultUtil.error("推荐人手机号未注册玩湃会员!");
                            }else{
                                tAppGift.setUserName(phone.getName());
                                tAppGift.setUserPhone(phone.getPhone());
                            }
                            tAppGift.setUserId(addAppUserVo.getReferralUserId());
                            tAppGift.setNum(num);
                            tAppGift.setShareUserId(tAppUser.getId());
                            tAppGift.setShareUserName(tAppUser.getPhone());
                            tAppGift.setShareUserPhone(tAppUser.getPhone());
                            tAppGift.setActivityId(activityId);
                            tAppGift.setInsertTime(new Date());
                            appGiftService.save(tAppGift);
                    }
                    if (num != 0) {
                        TAppGift tAppGift = new TAppGift();
                        TAppUser phone = appUserService.getOne(new QueryWrapper<TAppUser>()
                                .eq("phone", addAppUserVo.getInvitePhone()));
                        if (phone == null) {
                            return ResultUtil.error("推荐人手机号未注册玩湃会员!");
                        } else {
                            tAppGift.setUserName(phone.getName());
                            tAppGift.setUserPhone(phone.getPhone());
                        }
                        tAppGift.setUserId(addAppUserVo.getReferralUserId());
                        tAppGift.setNum(num);
                        tAppGift.setShareUserId(tAppUser.getId());
                        tAppGift.setShareUserName(tAppUser.getPhone());
                        tAppGift.setShareUserPhone(tAppUser.getPhone());
                        tAppGift.setActivityId(activityId);
                        tAppGift.setInsertTime(new Date());
                        appGiftService.save(tAppGift);
                    }
                }
            }
        }
        return ResultUtil.success();
    }
    /**
     * 账号密码登录
     *
     * @param phone
     * @param password
     * @return
@@ -505,34 +512,34 @@
    @Override
    public ResultUtil loginPassword(String phone, String password) throws Exception {
        TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", phone).ne("state", 3));
        if(null == tAppUser){
        if (null == tAppUser) {
            return ResultUtil.error("请先注册", "");
        }
        if(tAppUser.getState() == 2){
        if (tAppUser.getState() == 2) {
            return ResultUtil.errorCode("您的账号已被冻结", "");
        }
//        password = Md5Util.MD5Encode(password, null);
        if(!tAppUser.getPassword().equals(password)){
        if (!tAppUser.getPassword().equals(password)) {
            return ResultUtil.error("账号密码错误", "");
        }
        String token = getToken(tAppUser);
        return ResultUtil.success(token);
    }
    /**
     * 验证码登录
     *
     * @return
     * @throws Exception
     */
    @Override
    public ResultUtil loginSMSCode(LoginSMSCodeVo loginSMSCodeVo) throws Exception {
        String value = redisUtil.getValue(loginSMSCodeVo.getPhone());
        if(!"123456".equals(loginSMSCodeVo.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(loginSMSCodeVo.getCode()))){
        if (!"123456".equals(loginSMSCodeVo.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(loginSMSCodeVo.getCode()))) {
            return ResultUtil.error("验证码无效", "");
        }
        TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", loginSMSCodeVo.getPhone()).ne("state", 3));
        if(null == tAppUser){
        if (null == tAppUser) {
            tAppUser = new TAppUser();
            tAppUser.setCode(UUIDUtil.getNumberRandom(16));
            tAppUser.setPhone(loginSMSCodeVo.getPhone());
@@ -541,16 +548,16 @@
            tAppUser.setState(1);
            this.baseMapper.insert(tAppUser);
        }
        if(tAppUser.getState() == 2){
        if (tAppUser.getState() == 2) {
            return ResultUtil.error("您的账号已被冻结", "");
        }
        String token = getToken(tAppUser);
        return ResultUtil.success(token);
    }
    /**
     * 微信登录
     *
     * @return
     * @throws Exception
     */
@@ -558,9 +565,9 @@
    public ResultUtil loginWechat(LoginWeChatVo loginWechatVo) throws Exception {
        TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("openid", loginWechatVo.getOpenId()).ne("state", 3));
        if(null == tAppUser){
        if (null == tAppUser) {
            tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", loginWechatVo.getPhone()).ne("state", 3));
            if(null == tAppUser){
            if (null == tAppUser) {
                tAppUser = new TAppUser();
                tAppUser.setCode(UUIDUtil.getNumberRandom(16));
                tAppUser.setOpenid(loginWechatVo.getOpenId());
@@ -575,14 +582,14 @@
                this.baseMapper.insert(tAppUser);
            }
        }
        if(tAppUser.getState() == 2){
        if (tAppUser.getState() == 2) {
            return ResultUtil.error("您的账号已被冻结", "");
        }
        if(ToolUtil.isEmpty(tAppUser.getOpenid())){
        if (ToolUtil.isEmpty(tAppUser.getOpenid())) {
            tAppUser.setOpenid(loginWechatVo.getOpenId());
        }
        if(ToolUtil.isEmpty(tAppUser.getPhone())){
        if (ToolUtil.isEmpty(tAppUser.getPhone())) {
            tAppUser.setPhone(loginWechatVo.getPhone());
        }
        this.updateById(tAppUser);
@@ -590,22 +597,22 @@
        String token = getToken(tAppUser);
        HashMap<String, String> map = new HashMap<>();
        map.put("token",token);
        if(ToolUtil.isEmpty(tAppUser.getPhone())){
            map.put("isBind","0");
        }else {
            map.put("isBind","1");
        map.put("token", token);
        if (ToolUtil.isEmpty(tAppUser.getPhone())) {
            map.put("isBind", "0");
        } else {
            map.put("isBind", "1");
        }
        return ResultUtil.success(map);
    }
    /**
     * 获取JWT token和存储个人信息
     *
     * @param appUser
     * @return
     */
    private String getToken(TAppUser appUser){
    private String getToken(TAppUser appUser) {
        String randomKey = jwtTokenUtil.getRandomKey();
        String token = jwtTokenUtil.generateToken(appUser.getId().toString(), randomKey);
        redisUtil.setStrValue(token.substring(token.length() - 32), String.valueOf(appUser.getId()), 7 * 24 * 60 * 60);
@@ -614,9 +621,9 @@
        return token;
    }
    /**
     * 修改密码
     *
     * @param phone
     * @param code
     * @param password
@@ -626,24 +633,23 @@
    @Override
    public ResultUtil updatePassword(String phone, String code, String password) throws Exception {
        String value = redisUtil.getValue(phone);
        if(!"123456".equals(code) && (ToolUtil.isEmpty(value) || !value.equals(code))){
        if (!"123456".equals(code) && (ToolUtil.isEmpty(value) || !value.equals(code))) {
            return ResultUtil.error("验证码无效");
        }
        TAppUser tAppUser = this.baseMapper.selectOne(new QueryWrapper<TAppUser>().eq("phone", phone).ne("state", 3));
        if(tAppUser==null){
        if (tAppUser == null) {
            return ResultUtil.error("该账号未注册", "");
        }
        if(tAppUser.getState() == 2){
        if (tAppUser.getState() == 2) {
            return ResultUtil.error("您的账号已被冻结", "");
        }
        if (tAppUser.getCode()==null){
        if (tAppUser.getCode() == null) {
            tAppUser.setCode(UUIDUtil.getNumberRandom(16));
        }
        tAppUser.setPassword(password);
        this.updateById(tAppUser);
        return ResultUtil.success();
    }
    /**
     * 定时任务修改到期会员的状态
@@ -653,9 +659,9 @@
        this.baseMapper.membershipEnd();
    }
    /**
     * 获取加入玩湃首页数据
     *
     * @param lon
     * @param lat
     * @return
@@ -664,9 +670,9 @@
    @Override
    public JoinPlayPaiVo queryJoinPlayPai(Integer uid, String lon, String lat) throws Exception {
        TAppUser appUser = this.getById(uid);
        if(ToolUtil.isEmpty(appUser.getProvince()) && ToolUtil.isNotEmpty(lon)){
        if (ToolUtil.isEmpty(appUser.getProvince()) && ToolUtil.isNotEmpty(lon)) {
            Map<String, String> geocode = gdMapGeocodingUtil.geocode(lon, lat);
            if(null != geocode){
            if (null != geocode) {
                String province = geocode.get("province");
                String provinceCode = geocode.get("provinceCode");
                String city = geocode.get("city");
@@ -682,12 +688,12 @@
        JoinPlayPaiVo joinPlayPaiVo = new JoinPlayPaiVo();
        joinPlayPaiVo.setIsVip(appUser.getIsVip());
        if(ToolUtil.isEmpty(lon) ||ToolUtil.isEmpty(lat)){
        if (ToolUtil.isEmpty(lon) || ToolUtil.isEmpty(lat)) {
            return joinPlayPaiVo;
        }
        Map<String, String> geocode = gdMapGeocodingUtil.geocode(lon, lat);
        if(null != geocode){
        if (null != geocode) {
            String provinceCode = geocode.get("provinceCode");
            String cityCode = geocode.get("cityCode");
            List<Store> stores = storeClient.queryStoreList(new QueryStoreList(provinceCode, cityCode));
@@ -696,7 +702,7 @@
            for (Store store : stores) {
                Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat());
                Double wgs84 = distance.get("WGS84");
                if(s == null || d>wgs84){
                if (s == null || d > wgs84) {
                    s = store;
                    d = wgs84;
                }
@@ -715,21 +721,21 @@
    }
    @Override
    public IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId,String lon,String lat) {
    public IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId, String lon, String lat) {
        IndexOfUserBenefirVo benefirVo = new IndexOfUserBenefirVo();
        TAppUser appUser = this.getById(appUserId);
        if (appUser.getHeadImg()!=null) {
        if (appUser.getHeadImg() != null) {
            benefirVo.setUserHeadImg(appUser.getHeadImg());
        }else {
        } else {
            benefirVo.setUserHeadImg("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/630864764d3c4e98822ff976a2389559.jpg");
        }
        benefirVo.setUserName(appUser.getName());
        benefirVo.setWpCoin(ToolUtil.isEmpty(appUser.getPlayPaiCoins()) ? 0 : appUser.getPlayPaiCoins());
        benefirVo.setUserIntegral(ToolUtil.isEmpty(appUser.getIntegral()) ? 0 : appUser.getIntegral());
        if (appUser.getIsVip() == 1){
        if (appUser.getIsVip() == 1) {
            benefirVo.setIsMember("年度会员");
        }else {
        } else {
            benefirVo.setIsMember("普通用户");
        }
@@ -743,7 +749,7 @@
    }
    @Override
    public List<ConsumeDetail>  queryUserBillingDetails(String yearMonth, Integer recordId, Integer appUserId) {
    public List<ConsumeDetail> queryUserBillingDetails(String yearMonth, Integer recordId, Integer appUserId) {
        List<ConsumeDetail> details = new ArrayList<>();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm");
@@ -764,7 +770,7 @@
        requestVo.setAppUserId(appUserId);
//            1.赛事报名
        BillingRequestVo allCompetitionPayRecord = deducClient.getAllCompetitionPayRecord(requestVo);
        if (ToolUtil.isNotEmpty(allCompetitionPayRecord.getRequests())){
        if (ToolUtil.isNotEmpty(allCompetitionPayRecord.getRequests())) {
            for (BillingRequest paymentCompetition : allCompetitionPayRecord.getRequests()) {
                ConsumeDetail consumeDetail = new ConsumeDetail();
                consumeDetail.setConsumeName(RechargeRecordEnum.EVENT_REGISTRATION.getMsg());
@@ -776,7 +782,7 @@
        }
//            2.取消赛事报名
        BillingRequestVo cancelOrderOfUserPayRecord = deducClient.getCancelOrderOfUserPayRecord(requestVo);
        if (ToolUtil.isNotEmpty(cancelOrderOfUserPayRecord.getRequests())){
        if (ToolUtil.isNotEmpty(cancelOrderOfUserPayRecord.getRequests())) {
            for (BillingRequest paymentCompetition : cancelOrderOfUserPayRecord.getRequests()) {
                ConsumeDetail consumeDetail = new ConsumeDetail();
                consumeDetail.setConsumeName(RechargeRecordEnum.CANCEL_EVENT_REGISTRATION.getMsg());
@@ -800,7 +806,7 @@
//        }
        //2.0
        List<CourseCounsum> courseCounsums  = paymentClient.getConsumes(requestVo);
        List<CourseCounsum> courseCounsums = paymentClient.getConsumes(requestVo);
        for (CourseCounsum courseCounsum : courseCounsums) {
            ConsumeDetail consumeDetail = new ConsumeDetail();
@@ -808,8 +814,8 @@
            consumeDetail.setConsumeName(split[0]);
            consumeDetail.setConsumeTime(simpleDateFormat.format(courseCounsum.getInsertTime()));
//            if (courseCounsum.getChangeType()==3){
                consumeDetail.setConsumeAmount("-" + split[1]);
                consumeDetail.setType(2);
            consumeDetail.setConsumeAmount("-" + split[1]);
            consumeDetail.setType(2);
//            }
//
//            consumeDetail.setConsumeAmount("-" + coursePackagePayment.getAmount());
@@ -820,16 +826,16 @@
//            4.场地预约
        RequestOfTypeVo allSiteBookingList = stClient.getAllSiteBookingList(requestVo);
        if (ToolUtil.isNotEmpty(allSiteBookingList.getRequest())){
        if (ToolUtil.isNotEmpty(allSiteBookingList.getRequest())) {
            for (BillingRequestOfType booking : allSiteBookingList.getRequest()) {
                ConsumeDetail consumeDetail = new ConsumeDetail();
                if (booking.getStatus() != 5){
                if (booking.getStatus() != 5) {
                    consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg());
                    consumeDetail.setConsumeAmount("-" + booking.getAmount());
                    consumeDetail.setConsumeTime(booking.getTime());
                    consumeDetail.setType(2);
                    details.add(consumeDetail);
                }else {
                } else {
                    ConsumeDetail consumeDetail1 = new ConsumeDetail();
                    consumeDetail1.setConsumeName(RechargeRecordEnum.CANCEL_VENUE_RESERVATION.getMsg());
                    consumeDetail1.setConsumeAmount("+" + booking.getAmount());
@@ -872,7 +878,7 @@
        if (rechargeRecords.size() > 0) {
            for (RechargeRecords rechargeRecord : rechargeRecords) {
                ConsumeDetail consumeDetail = new ConsumeDetail();
                consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.getMsg() + ":" + rechargeRecord.getPlayPaiCoins()+"币");
                consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.getMsg() + ":" + rechargeRecord.getPlayPaiCoins() + "币");
                consumeDetail.setConsumeTime(simpleDateFormat.format(rechargeRecord.getInsertTime()));
                consumeDetail.setConsumeAmount("-" + rechargeRecord.getAmount());
                consumeDetail.setType(2);
@@ -886,7 +892,7 @@
        details.addAll(consumeDetails);
        if (details.size() > 0 ){
        if (details.size() > 0) {
            Collections.sort(details, new Comparator<ConsumeDetail>() {
                @Override
                public int compare(ConsumeDetail record1, ConsumeDetail record2) {
@@ -904,7 +910,7 @@
                }
            });
            if (ToolUtil.isNotEmpty(recordId)){
            if (ToolUtil.isNotEmpty(recordId)) {
                details = details.stream()
                        .filter(response -> Objects.equals(response.getType(), recordId))
                        .collect(Collectors.toList());
@@ -916,7 +922,7 @@
    @Override
    public void cancellation(Integer appUserId) {
        TAppUser tAppUser = this.baseMapper.selectById(appUserId);
        if (null != tAppUser){
        if (null != tAppUser) {
            tAppUser.setState(3);
            this.baseMapper.updateById(tAppUser);
        }
@@ -928,14 +934,14 @@
        TAppUser tAppUser = this.baseMapper.selectById(appUserId);
        List<Map<String, Object>> rechargeConfig = reconMapper.getRechargeConfig();
        System.out.println(rechargeConfig);
        if (rechargeConfig.size() > 0 ){
        if (rechargeConfig.size() > 0) {
            for (Map<String, Object> stringObjectMap : rechargeConfig) {
                RechargeCentVo vo = new RechargeCentVo();
                Double money = (Double) stringObjectMap.get("money");
                vo.setAmount(BigDecimal.valueOf(money) );
                if (tAppUser.getIsVip() == 1){
                vo.setAmount(BigDecimal.valueOf(money));
                if (tAppUser.getIsVip() == 1 && tAppUser.getVipEndTime().after(new Date())) {
                    vo.setWpGold((Integer) stringObjectMap.get("MemberCoins"));
                }else {
                } else {
                    vo.setWpGold((Integer) stringObjectMap.get("usersCoins"));
                }
                centVos.add(vo);
@@ -945,7 +951,7 @@
    }
    @Override
    public List<Goods> queryAppUserIntegral(MallRequest request ) {
    public List<Goods> queryAppUserIntegral(MallRequest request) {
        List<Goods> goods = new ArrayList<>();
        CommodityRequest commodityRequest = new CommodityRequest();
@@ -964,7 +970,7 @@
                        if (vicinityGood.getRedemptionMethod() == 1) {
                            commodity.setIntegral(vicinityGood.getIntegral().intValue());
                        } else {
                            commodity.setIntegral(ToolUtil.isEmpty(vicinityGood.getIntegral())?0:vicinityGood.getIntegral());
                            commodity.setIntegral(ToolUtil.isEmpty(vicinityGood.getIntegral()) ? 0 : vicinityGood.getIntegral());
                            commodity.setAmount(vicinityGood.getCash());
                        }
                        commodity.setBelongsType(vicinityGood.getUserPopulation());
@@ -1004,7 +1010,7 @@
                        if (vicinityGood.getRedemptionMethod() == 1) {
                            commodity.setIntegral(vicinityGood.getIntegral().intValue());
                        } else {
                            commodity.setIntegral(ToolUtil.isEmpty(vicinityGood.getIntegral())?0:vicinityGood.getIntegral());
                            commodity.setIntegral(ToolUtil.isEmpty(vicinityGood.getIntegral()) ? 0 : vicinityGood.getIntegral());
                            commodity.setAmount(vicinityGood.getCash());
                        }
                        commodity.setBelongsType(vicinityGood.getUserPopulation());
@@ -1030,7 +1036,7 @@
                if (allCoupon.getRedemptionMethod() == 1) {
                    commodity.setIntegral(allCoupon.getIntegral().intValue());
                } else {
                    if (allCoupon.getIntegral()!=null) {
                    if (allCoupon.getIntegral() != null) {
                        commodity.setIntegral(allCoupon.getIntegral().intValue());
                    }
                    commodity.setAmount(allCoupon.getCash());
@@ -1044,40 +1050,40 @@
            }
        }
        if (StringUtils.hasText(request.getSearch())){
            if (goods.size() > 0 ){
        if (StringUtils.hasText(request.getSearch())) {
            if (goods.size() > 0) {
                goods = goods.stream()
                        .filter(merchandise -> merchandise.getGoodName().contains(request.getSearch()))
                        .collect(Collectors.toList());
            }
        }
        // 2.0 门店筛选
        if (request.getShopId()!=null){
            if (goods.size() > 0 ){
        if (request.getShopId() != null) {
            if (goods.size() > 0) {
                goods = goods.stream()
                        .filter( merchandise ->(merchandise.getGoodsType() == 1&&merchandise.getUseScope() == 2)||(merchandise.getGoodsType() == 1&&merchandise.getUseScope() == 1)||(merchandise.getGoodsType() == 4&&merchandise.getUseScope() == 2)||(merchandise.getGoodsType() == 4&&merchandise.getUseScope() == 1)||merchandise.getShopIds().contains(request.getShopId()))
                        .filter(merchandise -> (merchandise.getGoodsType() == 1 && merchandise.getUseScope() == 2) || (merchandise.getGoodsType() == 1 && merchandise.getUseScope() == 1) || (merchandise.getGoodsType() == 4 && merchandise.getUseScope() == 2) || (merchandise.getGoodsType() == 4 && merchandise.getUseScope() == 1) || merchandise.getShopIds().contains(request.getShopId()))
                        .collect(Collectors.toList());
            }
        }
        if (null != request.getRank()){
            switch (request.getRank()){
        if (null != request.getRank()) {
            switch (request.getRank()) {
                case 1:
                    if (goods.size() > 0 ){
                    if (goods.size() > 0) {
                        goods = goods.stream()
                                .sorted(Comparator.comparing(Goods::getIntegral).reversed())
                                .collect(Collectors.toList());
                    }
                    break;
                case 2:
                    if (goods.size() > 0 ){
                    if (goods.size() > 0) {
                        goods = goods.stream()
                                .sorted(Comparator.comparing(Goods::getIntegral))
                                .collect(Collectors.toList());
                    }
                    break;
                case 3:
                    if (goods.size() > 0 ){
                    if (goods.size() > 0) {
                        goods = goods.stream()
                                .sorted(Comparator.comparing(Goods::getNums).reversed())
                                .collect(Collectors.toList());
@@ -1088,8 +1094,8 @@
            }
        }
        if (null != request.getGoodsType()){
            if (goods.size() > 0 ){
        if (null != request.getGoodsType()) {
            if (goods.size() > 0) {
                goods = goods.stream()
                        .filter(merchandise -> merchandise.getGoodsType().equals(request.getGoodsType()))
                        .collect(Collectors.toList());
@@ -1107,22 +1113,16 @@
        return goods;
    }
    // 对数据进行分页处理的方法
    private static Page<Goods> getPage(List<Goods> dataList, Pageable pageable) {
        int start = (int) pageable.getOffset();
        int end = Math.min((start + pageable.getPageSize()), dataList.size());
        return new PageImpl<>(dataList.subList(start, end), pageable, dataList.size());
    }
    @Override
    public ProductDetailsVo productDetails(Integer goodId, Integer goodsType ) {
    public ProductDetailsVo productDetails(Integer goodId, Integer goodsType) {
        ProductDetailRequest detailsVo = new ProductDetailRequest();
        detailsVo.setGoodsType(goodsType);
        detailsVo.setGoodId(goodId);
        return mcClient.getGoodDetailsWithId(detailsVo);
    }
    @Override
    public ProductDetailsVo goodsDetailsOne(Integer goodId ) {
    public ProductDetailsVo goodsDetailsOne(Integer goodId) {
        return mcClient.getGoodDetailsWithIdOne(goodId);
    }
@@ -1131,55 +1131,55 @@
        HashMap<String, String> map = new HashMap<>();
        // 1 验证手机号
        String value = redisUtil.getValue(dto.getPhone());
        if(!"123456".equals(dto.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(dto.getCode()))){
        if (!"123456".equals(dto.getCode()) && (ToolUtil.isEmpty(value) || !value.equals(dto.getCode()))) {
            return ResultUtil.error("验证码无效");
        }
        String token="";
        String token = "";
        // 通过openId 找到
        TAppUser tAppUser = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getOpenid, dto.getOpenId()).eq(TAppUser::getState,1));
        TAppUser tAppUser = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getOpenid, dto.getOpenId()).eq(TAppUser::getState, 1));
        if(tAppUser==null){
        if (tAppUser == null) {
            return ResultUtil.error("该账号未注册");
        }
        if(tAppUser.getState() == 2){
        if (tAppUser.getState() == 2) {
            return ResultUtil.error("您的账号已被冻结");
        }
        List<TAppUser> tAppUsers1 = appUserMapper.selectList(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getPhone()).eq(TAppUser::getState,1));
        if(tAppUsers1.size()>0){
        List<TAppUser> tAppUsers1 = appUserMapper.selectList(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getPhone()).eq(TAppUser::getState, 1));
        if (tAppUsers1.size() > 0) {
            TAppUser tAppUser1 = tAppUsers1.get(0);
            if(ToolUtil.isNotEmpty(tAppUser1.getOpenid())){
            if (ToolUtil.isNotEmpty(tAppUser1.getOpenid())) {
                return ResultUtil.error("该手机号已绑定其他微信");
            }else {
            } else {
                tAppUser1.setOpenid(dto.getOpenId());
                appUserMapper.updateById(tAppUser1);
                appUserMapper.deleteById(tAppUser.getId());
                token = getToken(tAppUser1);
                map.put("token",token);
                map.put("token", token);
            }
        }else {
        } else {
            tAppUser.setPhone(dto.getPhone());
            appUserMapper.updateById(tAppUser);
          token = getToken(tAppUser);
            map.put("token",token);
            token = getToken(tAppUser);
            map.put("token", token);
        }
//        tAppUser.setPhone(dto.getPhone());
        if(ToolUtil.isNotEmpty(dto.getInvitePhone())){
            if(ToolUtil.isEmpty(dto.getLat()) || ToolUtil.isEmpty(dto.getLon())){
        if (ToolUtil.isNotEmpty(dto.getInvitePhone())) {
            if (ToolUtil.isEmpty(dto.getLat()) || ToolUtil.isEmpty(dto.getLon())) {
                return ResultUtil.error("请先开启定位");
            }
            TAppUser tAppUser1 = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getInvitePhone()).eq(TAppUser::getState,1));
            if(tAppUser1!=null){
            TAppUser tAppUser1 = appUserMapper.selectOne(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getInvitePhone()).eq(TAppUser::getState, 1));
            if (tAppUser1 != null) {
                Map<String, String> geocode = null;
                try {
                    geocode = gdMapGeocodingUtil.geocode(dto.getLon(), dto.getLat());
                } catch (Exception e) {
                    e.printStackTrace();
                }
                Integer num=0;
                if(null != geocode){
                Integer num = 0;
                if (null != geocode) {
                    String province = geocode.get("province");
                    String provinceCode = geocode.get("provinceCode");
                    String city = geocode.get("city");
@@ -1187,19 +1187,19 @@
                    IntroduceRewards giftList = introduceRewardsClient.getGiftList(cityCode);
                    num = giftList.getGiveClass();
                }
                Integer userId=null;
                if(ToolUtil.isNotEmpty(dto.getInvitePhone())){
                Integer userId = null;
                if (ToolUtil.isNotEmpty(dto.getInvitePhone())) {
                    List<TAppUser> tAppUsers = this.baseMapper.selectList(new LambdaQueryWrapper<TAppUser>().eq(TAppUser::getPhone, dto.getInvitePhone()));
                    if(tAppUsers.size()>0){
                    if (tAppUsers.size() > 0) {
                        userId = tAppUsers.get(0).getId();
                    }
                }
                if(userId!=null){
                if (userId != null) {
                    TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, userId));
                    if(one!=null){
                        one.setNum(one.getNum()+num);
                    if (one != null) {
                        one.setNum(one.getNum() + num);
                        appGiftService.updateById(one);
                    }else {
                    } else {
                        TAppGift tAppGift = new TAppGift();
                        tAppGift.setUserId(userId);
                        tAppGift.setNum(num);
@@ -1215,12 +1215,12 @@
    }
    @Override
    public ResultUtil<String> updateInfo(UpdateInfoDto dto,Integer uid) {
    public ResultUtil<String> updateInfo(UpdateInfoDto dto, Integer uid) {
        TAppUser tAppUser = appUserMapper.selectById(uid);
        if(ToolUtil.isNotEmpty(dto.getName())){
        if (ToolUtil.isNotEmpty(dto.getName())) {
            tAppUser.setName(dto.getName());
        }
        if(ToolUtil.isNotEmpty(dto.getBirthday())){
        if (ToolUtil.isNotEmpty(dto.getBirthday())) {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            try {
                Date parse = format.parse(dto.getBirthday());
@@ -1230,7 +1230,7 @@
            }
        }
        if(ToolUtil.isNotEmpty(dto.getGender())){
        if (ToolUtil.isNotEmpty(dto.getGender())) {
            tAppUser.setGender(dto.getGender());
        }
        appUserMapper.updateById(tAppUser);
@@ -1243,33 +1243,33 @@
    }
    @Override
    public StuAndStoreResponse queryAppUserDefaultStuAndStore(Integer userIdFormRedis,Integer pointsMerId, String lat, String lon,Integer isCourse) {
    public StuAndStoreResponse queryAppUserDefaultStuAndStore(Integer userIdFormRedis, Integer pointsMerId, String lat, String lon, Integer isCourse) {
        StuAndStoreResponse response = new StuAndStoreResponse();
        if (isCourse == 1){
        if (isCourse == 1) {
            List<TStudent> tStudents = tsmapper.selectList(new QueryWrapper<TStudent>()
                    .eq("appUserId",userIdFormRedis)
                    .eq("state",1)
                    .eq("isDefault",1));
            if (tStudents.size() > 0 ){
                    .eq("appUserId", userIdFormRedis)
                    .eq("state", 1)
                    .eq("isDefault", 1));
            if (tStudents.size() > 0) {
                response.setStuId(tStudents.get(0).getId());
                response.setStuName(tStudents.get(0).getName());
                response.setStuPhone(tStudents.get(0).getPhone());
                response.setStuAge(DateUtil.age(tStudents.get(0).getBirthday()));
            }
            return response;
        }else {
        } else {
            PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerId);
            if (pointsMerchandise.getType() == 4){
            if (pointsMerchandise.getType() == 4) {
                List<Integer> couponStoreIds = ucponClient.getCouponStoreIds(pointsMerId);
                StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStoreIds.get(0));
                if(ToolUtil.isNotEmpty(courseOfStore)){
                if (ToolUtil.isNotEmpty(courseOfStore)) {
                    response.setStoreId(couponStoreIds.get(0));
                    response.setStoreName(courseOfStore.getStoreName());
                }
            }else {
            } else {
                List<Integer> integers = mcsClient.queryPointMerStoreIds(pointsMerId);
                StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(integers.get(0));
                if(ToolUtil.isNotEmpty(courseOfStore)){
                if (ToolUtil.isNotEmpty(courseOfStore)) {
                    response.setStoreId(integers.get(0));
                    response.setStoreName(courseOfStore.getStoreName());
                }
@@ -1278,40 +1278,31 @@
        }
    }
        @Resource
        private UserConponClient userConponClient;
@Autowired
private TAppUserService appUserService;
    @Override
    @Transactional
    public synchronized ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) {
        System.out.println("exchangeType:--->");
        ReturnModel returnModel = new ReturnModel();
        Long returnId = null;
            //如果是兑换优惠卷
        if (exchangeType.getGoodsType()==4){
        //如果是兑换优惠卷
        if (exchangeType.getGoodsType() == 4) {
            //查询优惠卷
            Coupon coupon = userConponClient.queryCouponById(exchangeType.getGoodId());
            //查询该优惠卷的数量够不够
            List<Integer> queryIds = new ArrayList<>();
            queryIds.add(coupon.getId());
            queryIds.add(userIdFormRedis);
           Integer counts =  userConponClient.queryCounts(queryIds);
           if (coupon.getQuantityIssued()-counts == 0){
               return new ResultUtil(0,"当前数量不足");
           }
            Integer counts = userConponClient.queryCounts(queryIds);
            if (coupon.getQuantityIssued() - counts == 0) {
                return new ResultUtil(0, "当前数量不足");
            }
            //查询该用户是否超出限领数量
            Integer usercounts =  userConponClient.queryCounts1(queryIds);
            Integer usercounts = userConponClient.queryCounts1(queryIds);
            if (usercounts == coupon.getPickUpQuantity()){
                return new ResultUtil<>(0,"限领数量已达最大");
            if (usercounts == coupon.getPickUpQuantity()) {
                return new ResultUtil<>(0, "限领数量已达最大");
            }
//            userConponClient.queryCouponById(exchangeType.getGoodId());
            UserCoupon userCoupon = new UserCoupon();
@@ -1322,10 +1313,10 @@
            userConponClient.insertToAppuserCoupon(userCoupon);
            //扣积分
            TAppUser user = appUserService.getById(userIdFormRedis);
            if (user.getIntegral()<coupon.getIntegral().intValue()){
                return  new ResultUtil<>(0,"当前用户积分不足");
            if (user.getIntegral() < coupon.getIntegral().intValue()) {
                return new ResultUtil<>(0, "当前用户积分不足");
            }
            user.setIntegral(user.getIntegral()-coupon.getIntegral().intValue());
            user.setIntegral(user.getIntegral() - coupon.getIntegral().intValue());
            appUserService.updateById(user);
            //记录
@@ -1350,8 +1341,6 @@
        }
        System.out.println(exchangeType);
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
@@ -1359,39 +1348,37 @@
            PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId());
            if (ToolUtil.isEmpty(merchandise)){
            if (ToolUtil.isEmpty(merchandise)) {
                return ResultUtil.error("商品不存在");
            }
            TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis);
            if(merchandise.getUserPopulation()==2){
                if(tAppUser.getIsVip()==0){
            if (merchandise.getUserPopulation() == 2) {
                if (tAppUser.getIsVip() == 0) {
                    return ResultUtil.error("该商品只能年度会员购买");
                }
            }
            if(merchandise.getUserPopulation()==3){
            if (merchandise.getUserPopulation() == 3) {
                List<TStudent> students = tsmapper.selectList(new LambdaQueryWrapper<TStudent>().eq(TStudent::getAppUserId, userIdFormRedis));
                if(students.size()==0){
                if (students.size() == 0) {
                    return ResultUtil.error("该商品只能已有学员用户购买");
                }
            }
            if (ToolUtil.isEmpty(tAppUser)){
            if (ToolUtil.isEmpty(tAppUser)) {
                return ResultUtil.error("用户不存在");
            }
            int goodsNums = 0;
            if (ToolUtil.isEmpty(exchangeType.getNums())){
            if (ToolUtil.isEmpty(exchangeType.getNums())) {
                goodsNums = 1;
            }else {
            } else {
                goodsNums = exchangeType.getNums();
            }
            TAppUser user = appUserService.getById(userIdFormRedis);
            if (merchandise.getIntegral()!=null) {
            if (merchandise.getIntegral() != null) {
                if (user.getIntegral() < merchandise.getIntegral().intValue() * goodsNums) {
                    return new ResultUtil<>(0, "当前用户积分不足");
                }
@@ -1402,15 +1389,13 @@
            goodResp.setAppUserId(userIdFormRedis);
            goodResp.setGoodId(merchandise.getId());
            int count = mcClient.queryUserHasGoodsNums(goodResp);
            if (ToolUtil.isNotEmpty(count) && count+exchangeType.getNums() > merchandise.getPickUpQuantity()){
            if (ToolUtil.isNotEmpty(count) && count + exchangeType.getNums() > merchandise.getPickUpQuantity()) {
                return ResultUtil.error("超过限领数量");
            }
            int count1 = mcClient.queryUserHasGoodsNums1(goodResp);
            if (ToolUtil.isNotEmpty(count1) && count1 >= merchandise.getQuantityIssued()){
            if (ToolUtil.isNotEmpty(count1) && count1 >= merchandise.getQuantityIssued()) {
                return ResultUtil.error("超过发放数量");
            }
            for (int i = 0; i < goodsNums; i++) {
@@ -1418,23 +1403,23 @@
                UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise();
                pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId());
                pointsMerchandise.setUserId(userIdFormRedis);
                if (exchangeType.getGoodsType()==2){
                if (exchangeType.getGoodsType() == 2) {
                    pointsMerchandise.setStatus(2);
                    pointsMerchandise.setVerificationTime(new Date());
                }else {
                } else {
                    pointsMerchandise.setStatus(1);
                }
                pointsMerchandise.setState(1);
                if (exchangeType.getExchangeType()==1) {
                if (exchangeType.getExchangeType() == 1) {
                    pointsMerchandise.setPayStatus(2);
                }else {
                } else {
                    pointsMerchandise.setPayStatus(1);
                }
                if (merchandise.getUseScope() == 3){
                    if (exchangeType.getGoodsType() == 2){
                if (merchandise.getUseScope() == 3) {
                    if (exchangeType.getGoodsType() == 2) {
                        CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId());
                        pointsMerchandise.setStoreId(coursePackage.getStoreId());
                    }else {
                    } else {
                        pointsMerchandise.setStoreId(exchangeType.getStoreId());
                    }
                }
@@ -1442,20 +1427,20 @@
                returnId = mcClient.saveDetailsUserPointMercase(pointsMerchandise);
            }
            switch (exchangeType.getExchangeType()){
            switch (exchangeType.getExchangeType()) {
//            积分
                case 1:
                    boolean b =true;
                    boolean b = true;
                    for (int i = 0; i < goodsNums; i++) {
                         b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
                        b = dealAppUserIntegral(userIdFormRedis, tAppUser, merchandise.getIntegral());
                    }
                    if (b){
                        switch (exchangeType.getGoodsType()){
                    if (b) {
                        switch (exchangeType.getGoodsType()) {
                            case 2:
                                Integer stuNums = 0;
                                if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){
                                if (ToolUtil.isNotEmpty(exchangeType.getStuIds())) {
                                    stuNums = exchangeType.getStuIds().size();
                                }else {
                                } else {
                                    stuNums = 1;
                                }
                                for (int i = 0; i < stuNums; i++) {
@@ -1506,15 +1491,15 @@
                            default:
                                break;
                        }
                    }else {
                    } else {
                        return ResultUtil.error("用户积分不足!");
                    }
                    break;
                case 2:
//                积分+现金
                    boolean dealt =true;
                    boolean dealt = true;
                    for (int i = 0; i < goodsNums; i++) {
                        dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
                        dealt = dealAppUserIntegral(userIdFormRedis, tAppUser, merchandise.getIntegral());
                    }
                    switch (exchangeType.getPayType()) {
@@ -1530,9 +1515,9 @@
                            }
                        case 2:
                            if (merchandise.getType() == 2) {
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code,returnId);
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code, returnId);
                            } else {
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code,returnId);
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code, returnId);
                            }
                        default:
                            break;
@@ -1552,9 +1537,9 @@
                            }
                        case 2:
                            if (merchandise.getType() == 2) {
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code,returnId);
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code, returnId);
                            } else {
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code,returnId);
                                return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code, returnId);
                            }
                        default:
                            break;
@@ -1564,25 +1549,25 @@
                    break;
            }
        returnModel.setReturnId(returnId);
            returnModel.setReturnId(returnId);
            return ResultUtil.success(returnModel);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    public boolean dealAppUserIntegral(Integer appUserId,TAppUser appUser,Integer points){
    public boolean dealAppUserIntegral(Integer appUserId, TAppUser appUser, Integer points) {
        try {
            if (ToolUtil.isEmpty(appUser.getIntegral()) || (ToolUtil.isNotEmpty(appUser.getIntegral()) && appUser.getIntegral() < points)){
            if (ToolUtil.isEmpty(appUser.getIntegral()) || (ToolUtil.isNotEmpty(appUser.getIntegral()) && appUser.getIntegral() < points)) {
                return false;
            }
            //        积分变更记录
            UserIntegralChanges userIntegralChanges = new UserIntegralChanges();
            userIntegralChanges.setAppUserId(appUserId);
            userIntegralChanges.setOldIntegral(appUser.getIntegral());
            userIntegralChanges.setType(5);
            userIntegralChanges.setType(2);
            appUser.setIntegral(null == appUser.getIntegral() ? points : appUser.getIntegral() - points);
            userIntegralChanges.setNewIntegral(appUser.getIntegral());
            userIntegralChanges.setInsertTime(new Date());
@@ -1591,35 +1576,35 @@
            this.baseMapper.updateById(appUser);
            return true;
        }catch (Exception e){
        } catch (Exception e) {
            return false;
        }
    }
    private ResultUtil AlipayPayment(BigDecimal cash, String code,Long  returnId) {
        System.out.println("金额:"+cash);
    private ResultUtil AlipayPayment(BigDecimal cash, String code, Long returnId) {
        System.out.println("金额:" + cash);
        ResultUtil alipay = payMoneyUtil.alipay("优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(),
                "/base/pointMer/exchangeGoodPaymentAliCallback");
        if(alipay.getCode() == 200){
        if (alipay.getCode() == 200) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
                        while (num <= 10) {
                            int min = 5000;
                            wait += (min * num);
                            Thread.sleep(wait);
                            System.out.println("code:"+code);
                            System.out.println("code:" + code);
                            List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
                            System.out.println("list-----"+userPointsMerchandises);
                            if(userPointsMerchandises.get(0).getPayStatus() == 2){
                            System.out.println("list-----" + userPointsMerchandises);
                            if (userPointsMerchandises.get(0).getPayStatus() == 2) {
                                break;
                            }
//                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryALIOrder(code);
                            AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
                            if(resultUtil.getCode().equals("10000") && userPointsMerchandises.get(0).getPayStatus() == 1){
                            if (resultUtil.getCode().equals("10000") && userPointsMerchandises.get(0).getPayStatus() == 1) {
                                /**
                                 * WAIT_BUYER_PAY(交易创建,等待买家付款)、
                                 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
@@ -1632,9 +1617,9 @@
                                String tradeNo = resultUtil.getTradeNo();
                                String tradeStatus = resultUtil.getTradeStatus();
                                System.out.println("ssssss"+tradeStatus);
                                System.out.println("ssssss" + tradeStatus);
                                if("TRADE_SUCCESS".equals(tradeStatus)){
                                if ("TRADE_SUCCESS".equals(tradeStatus)) {
                                    for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) {
                                        userPointsMerchandise.setPayStatus(2);
                                        userPointsMerchandise.setOrderNumber(tradeNo);
@@ -1643,7 +1628,7 @@
                                        userPointsMerchandise.setUserId(null);
                                        mcClient.updateDetailsUserPointMercase(userPointsMerchandise);
                                    }
                                    moneyOut(tradeNo,tradeNo);
                                    moneyOut(tradeNo, tradeNo);
                                    break;
                                }
//                                if("REFUND".equals(tradeStatus) || "NOTPAY".equals(tradeStatus) || "CLOSED".equals(tradeStatus) || "REVOKED".equals(tradeStatus) || "PAYERROR".equals(tradeStatus) || num == 10){
@@ -1651,12 +1636,12 @@
//                                    break;
//                                }
                                if("WAIT_BUYER_PAY".equals(tradeStatus)){
                                if ("WAIT_BUYER_PAY".equals(tradeStatus)) {
                                    num++;
                                }
                            }
                        }
                    }catch (Exception e){
                    } catch (Exception e) {
                        mcClient.deletePaymentRecord(code);
                        e.printStackTrace();
                    }
@@ -1666,13 +1651,7 @@
        return alipay;
    }
    @Resource
    private  MerChandiseClient merChandiseClient;
    public void moneyOut(String outNum,String tradeNo) throws AlipayApiException {
    public void moneyOut(String outNum, String tradeNo) throws AlipayApiException {
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
@@ -1695,15 +1674,14 @@
                "      \"memo\":\"分账给测试商户\"," +
                "    }" +
                "  ]," +
                "  \"out_request_no\":\""+tradeNo+"\"" +
                "  \"out_request_no\":\"" + tradeNo + "\"" +
                "}");
        AlipayTradeRoyaltyRelationBindResponse response = alipayClient.execute(request1);
        if(response.isSuccess()){
        if (response.isSuccess()) {
            System.out.println("绑定调用成功");
        } else {
            System.out.println("调用失败");
        }
//        RoyaltyDetailInfos royaltyDetailInfos1 = new RoyaltyDetailInfos();
@@ -1727,9 +1705,7 @@
//        TCoursePackage byId = coursePackageService.getById(one.getCoursePackageId());
        OperatorUser operatorUser =  storeClient.queryByStoreId(storeId);
        OperatorUser operatorUser = storeClient.queryByStoreId(storeId);
//        Integer paymentCompetitions = competitionsClient.queryByCode(outTradeNo);
@@ -1739,8 +1715,6 @@
//        stores.add(paymentCompetitions);
//        stores.add(siteBookings);
//        OperatorUser operatorUser = siteClient.queryOperator(stores);
        OpenApiRoyaltyDetailInfoPojo op = new OpenApiRoyaltyDetailInfoPojo();
@@ -1758,7 +1732,7 @@
        AlipayTradeOrderSettleResponse response1 = alipayClient.execute(request);
        if(response1.isSuccess()){
        if (response1.isSuccess()) {
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
@@ -1769,23 +1743,23 @@
    private ResultUtil WechatPayment(BigDecimal cash, String code) throws Exception {
        ResultUtil weixinpay = payMoneyUtil.weixinpay("课包", "", code, cash.toString(),
                "/base/pointMer/exchangeGoodPaymentWeChatCallback", "APP", "");
        if(weixinpay.getCode() == 200){
        if (weixinpay.getCode() == 200) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
                        while (num <= 10) {
                            int min = 5000;
                            wait += (min * num);
                            Thread.sleep(wait);
                            List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
                            if(userPointsMerchandises.get(0).getPayStatus() == 2){
                            if (userPointsMerchandises.get(0).getPayStatus() == 2) {
                                break;
                            }
                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
                            if(resultUtil.getCode() == 200 && userPointsMerchandises.get(0).getPayStatus() == 1){
                            if (resultUtil.getCode() == 200 && userPointsMerchandises.get(0).getPayStatus() == 1) {
                                /**
                                 * SUCCESS—支付成功,
                                 * REFUND—转入退款,
@@ -1798,11 +1772,11 @@
                                Map<String, String> data1 = resultUtil.getData();
                                String s = data1.get("trade_state");
                                String transaction_id = data1.get("transaction_id");
                                if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){
                                if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                    mcClient.deletePaymentRecord(code);
                                    break;
                                }
                                if("SUCCESS".equals(s)){
                                if ("SUCCESS".equals(s)) {
                                    for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) {
                                        userPointsMerchandise.setPayStatus(2);
                                        userPointsMerchandise.setOrderNumber(transaction_id);
@@ -1811,12 +1785,12 @@
                                    }
                                    break;
                                }
                                if("USERPAYING".equals(s)){
                                if ("USERPAYING".equals(s)) {
                                    num++;
                                }
                            }
                        }
                    }catch (Exception e){
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
@@ -1826,18 +1800,21 @@
    }
    @Override
    public ResultUtil exchangeAddPaymentCallback(String code, String orderNumber,Integer payType) {
    public ResultUtil exchangeAddPaymentCallback(String code, String orderNumber, Integer payType) {
        List<UserPointsMerchandise> userPointsMerchandises = mcClient.queryUserPointMerchaseByCode(code);
        if (userPointsMerchandises.size() > 1){
        if (userPointsMerchandises.get(0).getPayStatus() == 2) {
            return ResultUtil.success();
        }
        if (userPointsMerchandises.size() > 1) {
            for (int i = 0; i < userPointsMerchandises.size(); i++) {
                userPointsMerchandises.get(i).setOrderNumber(orderNumber+ "-" + (i+1));
                userPointsMerchandises.get(i).setOrderNumber(orderNumber + "-" + (i + 1));
                userPointsMerchandises.get(i).setPayType(payType);
                userPointsMerchandises.get(i).setPayStatus(2);
                mcClient.updateDetailsUserPointMercase(userPointsMerchandises.get(i));
                Integer pointsMerchandiseId = userPointsMerchandises.get(i).getPointsMerchandiseId();
                PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId);
                switch (pointsMerchandise.getType()){
                switch (pointsMerchandise.getType()) {
                    case 2:
                        List<TCoursePackagePayment> coursePackagePaymentOfCode = paymentClient.getCoursePackagePaymentOfCode(code);
                        for (TCoursePackagePayment coursePackagePayment : coursePackagePaymentOfCode) {
@@ -1859,7 +1836,7 @@
                        break;
                }
            }
        }else {
        } else {
            userPointsMerchandises.get(0).setOrderNumber(orderNumber);
            userPointsMerchandises.get(0).setPayType(payType);
            userPointsMerchandises.get(0).setPayStatus(2);
@@ -1867,11 +1844,11 @@
            Integer pointsMerchandiseId = userPointsMerchandises.get(0).getPointsMerchandiseId();
            PointsMerchandise pointsMerchandise = mcClient.selectPointsMerchandiseById(pointsMerchandiseId);
            switch (pointsMerchandise.getType()){
            switch (pointsMerchandise.getType()) {
                case 2:
                    List<TCoursePackagePayment> coursePackagePaymentOfCode = paymentClient.getCoursePackagePaymentOfCode(code);
                    TCoursePackagePayment packagePayment =coursePackagePaymentOfCode.get(0);
                    TCoursePackagePayment packagePayment = coursePackagePaymentOfCode.get(0);
                    packagePayment.setPayStatus(2);
                    packagePayment.setPayType(payType);
                    packagePayment.setOrderNumber(orderNumber);
@@ -1894,14 +1871,14 @@
    }
    @Override
    public List<StoreResponse> queryStoresOfExchange(Integer goodsType,Integer pointsMerId) {
    public List<StoreResponse> queryStoresOfExchange(Integer goodsType, Integer pointsMerId) {
        List<StoreResponse> responses = new ArrayList<>();
        if (goodsType == 4){
        if (goodsType == 4) {
            List<Integer> couponStoreIds = ucponClient.getCouponStoreIds(pointsMerId);
            if (couponStoreIds.size() > 0 ){
            if (couponStoreIds.size() > 0) {
                for (Integer couponStoreId : couponStoreIds) {
                    StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStoreId);
                    if(ToolUtil.isNotEmpty(courseOfStore)){
                    if (ToolUtil.isNotEmpty(courseOfStore)) {
                        StoreResponse response = new StoreResponse();
                        response.setStoreId(couponStoreId);
                        response.setStoreName(courseOfStore.getStoreName());
@@ -1910,12 +1887,12 @@
                }
            }
        }else {
        } else {
            List<Integer> integers = mcsClient.queryPointMerStoreIds(pointsMerId);
            if (integers.size() > 0 ){
            if (integers.size() > 0) {
                for (Integer integer : integers) {
                    StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(integer);
                    if(ToolUtil.isNotEmpty(courseOfStore)){
                    if (ToolUtil.isNotEmpty(courseOfStore)) {
                        StoreResponse response = new StoreResponse();
                        response.setStoreId(integer);
                        response.setStoreName(courseOfStore.getStoreName());
@@ -1929,7 +1906,7 @@
    @Override
    public List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId ,Integer stuId, String time,String longitude,String latitude) {
    public List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId, Integer stuId, String time, String longitude, String latitude) {
        List<CourseVenue> courseVenues = new ArrayList<>();
        WeeksOfCourseRest weeksOfCourseRest = new WeeksOfCourseRest();
        weeksOfCourseRest.setTime(time);
@@ -1937,13 +1914,11 @@
        weeksOfCourseRest.setAppUserId(appUserId);
        List<CourseOfStoreVo> storeOfCourses = paymentClient.getStoreOfCourses(weeksOfCourseRest);
        System.out.println(storeOfCourses);
        if (storeOfCourses.size() > 0 ){
            courseVenues = dealDatas(storeOfCourses,longitude,latitude);
        if (storeOfCourses.size() > 0) {
            courseVenues = dealDatas(storeOfCourses, longitude, latitude);
        }
        return courseVenues;
    }
}
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -116,13 +116,12 @@
    private TCourseInfoRecordService courseInfoRecordService;
    @Override
    public ResultUtil addStuOfAppUser(StuDetailsReq stu,Integer appUserId) throws Exception {
    public ResultUtil addStuOfAppUser(StuDetailsReq stu, Integer appUserId) throws Exception {
        TStudent student = new TStudent();
        if(ToolUtil.isNotEmpty(stu.getName()) && ToolUtil.isNotEmpty(stu.getIdCard())){
        if (ToolUtil.isNotEmpty(stu.getName()) && ToolUtil.isNotEmpty(stu.getIdCard())) {
            Boolean aBoolean = JuHeUtil.idcardAuthentication(stu.getIdCard(), stu.getName());
            if(!aBoolean){
            if (!aBoolean) {
                return ResultUtil.error("身份证和姓名不匹配");
            }
        }
@@ -131,7 +130,7 @@
        student.setHeadImg(stu.getHeadImg());
        student.setPhone(ToolUtil.isNotEmpty(stu.getPhone()) ? stu.getPhone() : "");
        student.setSex(stu.getSex());
        student.setIdCard(ToolUtil.isNotEmpty(stu.getIdCard())?stu.getIdCard() : "");
        student.setIdCard(ToolUtil.isNotEmpty(stu.getIdCard()) ? stu.getIdCard() : "");
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        student.setBirthday(sdf.parse(stu.getBirthday()));
        student.setHeight(stu.getHeight());
@@ -147,9 +146,9 @@
        student.setState(1);
        List<TStudent> tStudents = this.baseMapper.selectList(new LambdaQueryWrapper<TStudent>().eq(TStudent::getAppUserId, appUserId));
        if(tStudents.size()>0){
        if (tStudents.size() > 0) {
            student.setIsDefault(2);
        }else {
        } else {
            student.setIsDefault(1);
        }
        this.baseMapper.insert(student);
@@ -180,7 +179,7 @@
        getStuSessionList.setAppUserId(userIdFormRedis);
        List<StuSessionDetailsVo> stuSessionList = sessionNameClient.getStuSessionList(getStuSessionList);
        TStudent tStudent = this.baseMapper.selectById(stuId);
        if (ToolUtil.isNotEmpty(tStudent)){
        if (ToolUtil.isNotEmpty(tStudent)) {
            insVo.setStuId(tStudent.getId());
            insVo.setStuName(tStudent.getName());
            insVo.setStuImage(tStudent.getHeadImg());
@@ -204,10 +203,10 @@
            List<PurchaseRecordVo> purchaseRecordVos = sessionNameClient.queryCourseDetails(getStuSessionList);
            purchaseRecordVoList.addAll(purchaseRecordVos);
            List<TAppUser> tAppUsers = tauMapper.selectList(new QueryWrapper<TAppUser>()
                    .eq("referralUserId",userIdFormRedis )
                    .between("insertTime",localMonthStart ,localMonthEnd));
                    .eq("referralUserId", userIdFormRedis)
                    .between("insertTime", localMonthStart, localMonthEnd));
            List<Integer> userIds = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList());
            IntrduceOfUserRequest request  = new IntrduceOfUserRequest();
            IntrduceOfUserRequest request = new IntrduceOfUserRequest();
            request.setStartTime(localMonthStart);
            request.setEndTime(localMonthEnd);
            request.setUserIds(userIds);
@@ -234,108 +233,8 @@
    }
    @Override
    public List<PurchaseRecordVo> queryDeduRecordDetails(RecordTimeRequest timeRequest,Integer appUserId) {
        List<PurchaseRecordVo> purchaseRecordVoList = new ArrayList<>();
        String time = timeRequest.getTime();
    public List<PurchaseRecordVo> queryDeduRecordDetails(RecordTimeRequest timeRequest, Integer appUserId) {
        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;
    }
@@ -417,7 +316,7 @@
        List<StuListVo> stuListVos = new ArrayList<>();
        List<TStudent> tStudents = this.baseMapper.selectList(new QueryWrapper<TStudent>()
                .eq("appUserId", appUserId)
                .eq("state",1));
                .eq("state", 1));
        if (tStudents.size() > 0) {
            tStudents.forEach(sts -> {
                if (Objects.equals(sts.getId(), stuId)) {
@@ -488,12 +387,12 @@
        try {
            switch (request.getPayType()) {
                case 1:
                    return WeChatPayment(code,request.getPayAmount(),hour);
                    return WeChatPayment(code, request.getPayAmount(), hour);
                case 2:
                    return AlipayPayment(code,request.getPayAmount(),hour);
                    return AlipayPayment(code, request.getPayAmount(), hour);
                case 3:
                    int i = PlaypaiGoldPayment(code,request);
                    switch (i){
                    int i = PlaypaiGoldPayment(code, request);
                    switch (i) {
                        case 1:
                            return ResultUtil.success();
                        case 2:
@@ -506,33 +405,33 @@
                default:
                    break;
            }
        }catch (Exception e){
        } catch (Exception e) {
            ResultUtil.runErr();
        }
        return ResultUtil.success();
    }
    public ResultUtil WeChatPayment(String code,BigDecimal amount,Integer hour) throws Exception {
    public ResultUtil WeChatPayment(String code, BigDecimal amount, Integer hour) throws Exception {
        ResultUtil weixinpay = payMoneyUtil.weixinpay("课包续费", "", code, amount.toString(),
                "/base/coursePackage/wechatPaymentCallback", "APP", "");
        if(weixinpay.getCode() == 200){
        if (weixinpay.getCode() == 200) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
                        while (num <= 10) {
                            int min = 5000;
                            wait += (min * num);
                            Thread.sleep(wait);
                            TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
                            if(coursePackagePayment.getPayStatus() == 2){
                            if (coursePackagePayment.getPayStatus() == 2) {
                                break;
                            }
                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
                            if(resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1){
                            if (resultUtil.getCode() == 200 && coursePackagePayment.getPayStatus() == 1) {
                                /**
                                 * SUCCESS—支付成功,
                                 * REFUND—转入退款,
@@ -545,12 +444,12 @@
                                Map<String, String> data1 = resultUtil.getData();
                                String s = data1.get("trade_state");
                                String transaction_id = data1.get("transaction_id");
                                if("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10){
                                if ("REFUND".equals(s) || "NOTPAY".equals(s) || "CLOSED".equals(s) || "REVOKED".equals(s) || "PAYERROR".equals(s) || num == 10) {
                                    coursePackagePayment.setState(3);
                                    couPayClient.delPaymentCoursePackage(coursePackagePayment.getId());
                                    break;
                                }
                                if("SUCCESS".equals(s)){
                                if ("SUCCESS".equals(s)) {
                                    coursePackagePayment.setPayStatus(2);
                                    coursePackagePayment.setTotalClassHours(hour);
                                    coursePackagePayment.setLaveClassHours(hour);
@@ -558,12 +457,12 @@
                                    couPayClient.updatePaymentCoursePackage(coursePackagePayment);
                                    break;
                                }
                                if("USERPAYING".equals(s)){
                                if ("USERPAYING".equals(s)) {
                                    num++;
                                }
                            }
                        }
                    }catch (Exception e){
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
@@ -572,27 +471,27 @@
        return weixinpay;
    }
    public ResultUtil AlipayPayment(String code,BigDecimal amount,Integer hour){
    public ResultUtil AlipayPayment(String code, BigDecimal amount, Integer hour) {
        ResultUtil alipay = payMoneyUtil.alipay("课包续费", "课包续费", "", code, amount.toString(),
                "/base/coursePackage/alipayPaymentCallback");
        if(alipay.getCode() == 200){
        if (alipay.getCode() == 200) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
                        while (num <= 10) {
                            int min = 5000;
                            wait += (min * num);
                            Thread.sleep(wait);
                            TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
                            if(coursePackagePayment.getPayStatus() == 2){
                            if (coursePackagePayment.getPayStatus() == 2) {
                                break;
                            }
                            AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
                            if(resultUtil.getCode().equals("10000") && coursePackagePayment.getPayStatus() == 1){
                            if (resultUtil.getCode().equals("10000") && coursePackagePayment.getPayStatus() == 1) {
                                /**
                                 * WAIT_BUYER_PAY(交易创建,等待买家付款)、
                                 * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
@@ -604,13 +503,13 @@
//                                String tradeNo = data1.get("tradeNo");
                                String tradeNo = resultUtil.getTradeNo();
                                String tradeStatus = resultUtil.getTradeStatus();
                                System.out.println("ssssss"+tradeStatus);
                                if("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus) || num == 10){
                                System.out.println("ssssss" + tradeStatus);
                                if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus) || num == 10) {
                                    coursePackagePayment.setState(3);
                                    couPayClient.delPaymentCoursePackage(coursePackagePayment.getId());
                                    break;
                                }
                                if("TRADE_SUCCESS".equals(tradeStatus)){
                                if ("TRADE_SUCCESS".equals(tradeStatus)) {
                                    coursePackagePayment.setPayStatus(2);
                                    coursePackagePayment.setTotalClassHours(hour);
                                    coursePackagePayment.setLaveClassHours(hour);
@@ -618,17 +517,14 @@
                                    couPayClient.updatePaymentCoursePackage(coursePackagePayment);
                                    break;
                                }
                                if("WAIT_BUYER_PAY".equals(tradeStatus)){
                                if ("WAIT_BUYER_PAY".equals(tradeStatus)) {
                                    num++;
                                }
                            }
                        }
                    }catch (Exception e){
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
@@ -637,7 +533,7 @@
        return alipay;
    }
    public int PlaypaiGoldPayment(String code,ClasspaymentRequest request){
    public int PlaypaiGoldPayment(String code, ClasspaymentRequest request) {
        PlayPaiGoldCoursePackage paiGoldCoursePackage = new PlayPaiGoldCoursePackage();
        paiGoldCoursePackage.setCoursePackageId(request.getLessonId());
        paiGoldCoursePackage.setStuId(request.getStuId());
@@ -650,7 +546,7 @@
    @Override
    public ResultUtil insertVipPaymentCallback(String code, String orderNumber) {
        TCoursePackagePayment coursePackagePayment = couPayClient.getCoursePackagePaymentByCode(code);
        if(coursePackagePayment.getPayStatus() != 1){
        if (coursePackagePayment.getPayStatus() != 1) {
            return ResultUtil.success();
        }
        coursePackagePayment.setPayStatus(2);
@@ -660,16 +556,15 @@
    }
    /**
     *
     * @param stuId 学员id
     * @param appUserId 用户id
     * @param appointStatus  预约状态 0=全部 1=待上课 2=已完成 3=已取消
     * @param timeType 时间类型 0=全部 1=近一周 2=近一个月 3=近一年
     * @param search 课程名称
     * @param stuId         学员id
     * @param appUserId     用户id
     * @param appointStatus 预约状态 0=全部 1=待上课 2=已完成 3=已取消
     * @param timeType      时间类型 0=全部 1=近一周 2=近一个月 3=近一年
     * @param search        课程名称
     * @return
     */
    @Override
    public List<RecordAppoint> getAppointmentRecords(Integer stuId, Integer appUserId,Integer appointStatus,Integer timeType,String search,Integer pageNum) {
    public List<RecordAppoint> getAppointmentRecords(Integer stuId, Integer appUserId, Integer appointStatus, Integer timeType, String search, Integer pageNum) {
        WeeksOfCourseRest courseRest = new WeeksOfCourseRest();
        courseRest.setAppUserId(appUserId);
        courseRest.setStuId(stuId);
@@ -677,16 +572,15 @@
        List<RecordAppoint> recordAppoints = couPayClient.obtainStudentClassDetailsData(courseRest);
        if (recordAppoints.size() > 0) {
            if (ToolUtil.isNotEmpty(appointStatus) && appointStatus != 0) {
                if (appointStatus ==2){
                if (appointStatus == 2) {
                    recordAppoints = recordAppoints.stream()
                            .filter(record -> record.getStatus().equals(3))
                            .collect(Collectors.toList());
                }else if (appointStatus ==3){
                } else if (appointStatus == 3) {
                    recordAppoints = recordAppoints.stream()
                            .filter(record -> record.getStatus().equals(4))
                            .collect(Collectors.toList());
                }
                else {
                } else {
                    recordAppoints = recordAppoints.stream()
                            .filter(record -> record.getStatus().equals(appointStatus))
@@ -694,9 +588,9 @@
                }
            }
            if (ToolUtil.isNotEmpty(search)) {
                    recordAppoints = recordAppoints.stream()
                            .filter(record -> record.getCoursePackageName().contains(search))
                            .collect(Collectors.toList());
                recordAppoints = recordAppoints.stream()
                        .filter(record -> record.getCoursePackageName().contains(search))
                        .collect(Collectors.toList());
            }
            if (ToolUtil.isNotEmpty(timeType) && timeType != 0) {
@@ -705,46 +599,46 @@
                switch (timeType) {
                    case 1:
                        Date lastWeekStartDate = DateUtil.getLastWeekStartDate();
                            recordAppoints = recordAppoints.stream()
                                    .filter(record -> {
                                        try {
                                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                                            String substring = record.getTimeFrame().substring(11);
                                            Date time = sdf.parse(substring);
                                            return !time.before(lastWeekStartDate) && !time.after(lastOfDate);
                                        } catch (ParseException e) {
                                            return false;
                                        }
                                    })
                                    .collect(Collectors.toList());
                        recordAppoints = recordAppoints.stream()
                                .filter(record -> {
                                    try {
                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                                        String substring = record.getTimeFrame().substring(11);
                                        Date time = sdf.parse(substring);
                                        return !time.before(lastWeekStartDate) && !time.after(lastOfDate);
                                    } catch (ParseException e) {
                                        return false;
                                    }
                                })
                                .collect(Collectors.toList());
                        break;
                    case 2:
                        Date lastMonthStartDate = DateUtil.getLastMonthStartDate();
                            recordAppoints = recordAppoints.stream()
                                    .filter(record -> {
                                        try {
                                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                                            Date time = sdf.parse(record.getTimeFrame().substring(11));
                                            return !time.before(lastMonthStartDate) && !time.after(lastOfDate);
                                        } catch (ParseException e) {
                                            return false;
                                        }
                                    })
                                    .collect(Collectors.toList());
                        recordAppoints = recordAppoints.stream()
                                .filter(record -> {
                                    try {
                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
                                        return !time.before(lastMonthStartDate) && !time.after(lastOfDate);
                                    } catch (ParseException e) {
                                        return false;
                                    }
                                })
                                .collect(Collectors.toList());
                        break;
                    case 3:
                        Date lastYearStartDate = DateUtil.getLastYearStartDate();
                            recordAppoints = recordAppoints.stream()
                                    .filter(record -> {
                                        try {
                                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                                            Date time = sdf.parse(record.getTimeFrame().substring(11));
                                            return !time.before(lastYearStartDate) && !time.after(lastOfDate);
                                        } catch (ParseException e) {
                                            return false;
                                        }
                                    })
                                    .collect(Collectors.toList());
                        recordAppoints = recordAppoints.stream()
                                .filter(record -> {
                                    try {
                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
                                        return !time.before(lastYearStartDate) && !time.after(lastOfDate);
                                    } catch (ParseException e) {
                                        return false;
                                    }
                                })
                                .collect(Collectors.toList());
                        break;
                    default:
@@ -758,7 +652,7 @@
    @Override
    public ResultUtil cancelReservationOfCourse(Integer courseStuRecordId) {
        Integer integer = crClient.cancelCourseRecordClass(courseStuRecordId);
        switch (integer){
        switch (integer) {
            case 1:
                ResultUtil.success();
                break;
@@ -773,31 +667,30 @@
    }
    /**
     *
     * @param space 1=升序/2=降序
     * @param cityCode 城市code
     * @param space     1=升序/2=降序
     * @param cityCode  城市code
     * @param latitude
     * @param longitude
     * @return
     */
    @Override
    public List<StoreDetailList> queryStoreList(Integer space,String cityCode,String latitude,String longitude,String search) {
    public List<StoreDetailList> queryStoreList(Integer space, String cityCode, String latitude, String longitude, String search) {
        StoreOfCitycodeResp citycodeResp = new StoreOfCitycodeResp();
        citycodeResp.setCityCode(cityCode);
        citycodeResp.setLongitude(latitude);
        citycodeResp.setLatitude(longitude);
        List<StoreDetailList> queryStoreList = storeClient.getQueryStoreList(citycodeResp);
        if (queryStoreList.size() > 0){
            if (ToolUtil.isEmpty(space) || space == 2){
        if (queryStoreList.size() > 0) {
            if (ToolUtil.isEmpty(space) || space == 2) {
                queryStoreList = queryStoreList.stream()
                        .sorted(Comparator.comparing(StoreDetailList::getStoreDistance).reversed())
                        .collect(Collectors.toList());
            }else {
                queryStoreList =  queryStoreList.stream().sorted(Comparator.comparing(o -> o.getStoreDistance())).collect(Collectors.toList());
            } else {
                queryStoreList = queryStoreList.stream().sorted(Comparator.comparing(o -> o.getStoreDistance())).collect(Collectors.toList());
            }
            if (ToolUtil.isNotEmpty(search)){
                queryStoreList =  queryStoreList.stream().filter(o -> o.getStoreName().contains(search)).collect(Collectors.toList());
            if (ToolUtil.isNotEmpty(search)) {
                queryStoreList = queryStoreList.stream().filter(o -> o.getStoreName().contains(search)).collect(Collectors.toList());
            }
        }
@@ -809,14 +702,14 @@
        Store store = storeClient.queryStoreById(storeId);
        StoreDetailsVo detailsVo = new StoreDetailsVo();
        String realPicture = store.getRealPicture();
        if (ToolUtil.isNotEmpty(realPicture)){
        if (ToolUtil.isNotEmpty(realPicture)) {
            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.setStoreTime(store.getStartTime() + "至" + store.getEndTime());
        detailsVo.setStoreInfo(store.getIntroduce());
        detailsVo.setLon(store.getLon());
        detailsVo.setLat(store.getLat());
@@ -825,10 +718,10 @@
        List<StoreOfCourseVo> storeOfCourseList = culisClient.getStoreOfCourseList(storeId);
        System.out.println(storeOfCourseList);
        for (StoreOfCourseVo storeOfCourseVo : storeOfCourseList) {
            if (storeOfCourseVo.getClassHours().equals("0")){
            if (storeOfCourseVo.getClassHours().equals("0")) {
                storeOfCourseVo.setClassHours(null);
            }
            if (storeOfCourseVo.getClassStartTime().equals("-")){
            if (storeOfCourseVo.getClassStartTime().equals("-")) {
                storeOfCourseVo.setClassStartTime(null);
            }
        }
@@ -839,15 +732,15 @@
    @Override
    public ResultUtil commitEditStudentInfo(StuEditInfoReq stu, Integer userIdFormRedis) {
        TStudent tStudent = this.baseMapper.selectOne(new LambdaQueryWrapper<TStudent>()
                .eq(TStudent::getId,stu.getId())
                .eq(TStudent::getAppUserId,userIdFormRedis));
        if (ToolUtil.isEmpty(tStudent)){
                .eq(TStudent::getId, stu.getId())
                .eq(TStudent::getAppUserId, userIdFormRedis));
        if (ToolUtil.isEmpty(tStudent)) {
            ResultUtil.error("会员信息不存在!");
        }
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        tStudent.setHeadImg(stu.getHeadImg());
        tStudent.setName(stu.getName());
        tStudent.setPhone(ToolUtil.isEmpty(stu.getPhone()) ? "":stu.getPhone());
        tStudent.setPhone(ToolUtil.isEmpty(stu.getPhone()) ? "" : stu.getPhone());
        try {
            tStudent.setBirthday(simpleDateFormat.parse(stu.getBirthday()));
        } catch (ParseException e) {
@@ -856,7 +749,7 @@
        tStudent.setSex(stu.getSex());
        tStudent.setHeight(stu.getHeight());
        tStudent.setWeight(stu.getWeight());
        tStudent.setIdCard(ToolUtil.isEmpty(stu.getIdCard()) ? ""  : stu.getIdCard());
        tStudent.setIdCard(ToolUtil.isEmpty(stu.getIdCard()) ? "" : stu.getIdCard());
        this.baseMapper.updateById(tStudent);
        return ResultUtil.success();
    }
@@ -873,7 +766,7 @@
    @Override
    public void createHistory(CreateHistoryDto createHistoryDto) {
         this.baseMapper.createHistory(createHistoryDto);
        this.baseMapper.createHistory(createHistoryDto);
    }
    @Override
@@ -886,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/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -61,36 +61,36 @@
            monthEnd = DateTimeHelper.getCurrentMouthEnd();
        }
        List<UserIntegralChanges> userIntegralChanges = this.baseMapper.selectList(new QueryWrapper<UserIntegralChanges>()
                .eq("appUserId",userIdFormRedis )
                .between("insertTime",monthStart,monthEnd)
                .eq("appUserId", userIdFormRedis)
                .between("insertTime", monthStart, monthEnd)
                .orderByDesc("insertTime"));
        if (userIntegralChanges.size() > 0 ){
        if (userIntegralChanges.size() > 0) {
            for (UserIntegralChanges userIntegralChange : userIntegralChanges) {
                IntegralsData detail= new IntegralsData();
                switch (userIntegralChange.getType()){
                IntegralsData detail = new IntegralsData();
                switch (userIntegralChange.getType()) {
                    case 1:
                        detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeAmount("+" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeName("赠送积分");
                        detail.setDetailsType(2);
                        break;
                    case 2:
                        detail.setConsumeAmount(""+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeName("兑换商品");
                        detail.setDetailsType(1);
                        break;
                    case 3:
                        detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeAmount("+" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeName("完成课后练习");
                        detail.setDetailsType(2);
                        break;
                    case 4:
                        detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeAmount("+" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeTime(simpleDateFormat.format(userIntegralChange.getInsertTime()));
                        detail.setConsumeName("观看教学视频");
                        detail.setDetailsType(2);
                        break;
                    case 5:
                        detail.setConsumeAmount(""+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral()));
                        detail.setConsumeName("智慧球场开始游戏");
                        detail.setDetailsType(1);
                        break;
@@ -100,7 +100,7 @@
                detail.setConsumeTime(simpleDateFormat.format(userIntegralChange.getInsertTime()));
                details.add(detail);
            }
            if (null != recordId){
            if (null != recordId) {
                details = details.stream()
                        .filter(obj -> obj instanceof IntegralsData)
                        .filter(obj -> !Objects.equals(obj.getDetailsType(), recordId))
@@ -113,6 +113,7 @@
    /**
     * 保存用户积分变动
     *
     * @param vo
     * @throws Exception
     */
@@ -137,14 +138,14 @@
    public List<ExchangeDetailsResponse> queryExchangeGoodsdetails(Integer userIdFormRedis, Integer useType, Integer goodType) {
        List<ExchangeDetailsResponse> detailsResponses = new ArrayList<>();
        ExchangeDetailsVo integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis);
        if (ToolUtil.isNotEmpty(integralExchangeDetails.getDetailsResponses())){
        if (ToolUtil.isNotEmpty(integralExchangeDetails.getDetailsResponses())) {
            detailsResponses = integralExchangeDetails.getDetailsResponses();
            if (ToolUtil.isNotEmpty(useType)){
            if (ToolUtil.isNotEmpty(useType)) {
                detailsResponses = integralExchangeDetails.getDetailsResponses().stream()
                        .filter(response -> Objects.equals(response.getUseStatus(), useType))
                        .collect(Collectors.toList());
            }
            if (ToolUtil.isNotEmpty(goodType)){
            if (ToolUtil.isNotEmpty(goodType)) {
                detailsResponses = integralExchangeDetails.getDetailsResponses().stream()
                        .filter(response -> Objects.equals(response.getGoodType(), goodType))
                        .collect(Collectors.toList());
@@ -161,18 +162,18 @@
    @Override
    public Page<UserIntegral> listAll(Page<UserIntegral> userIntegralPage, IntegralListQuery integralListQuery) {
        String sTime =null;
        String eTime =null;
        if(ToolUtil.isNotEmpty(integralListQuery.getTime())){
            sTime = integralListQuery.getTime().split(" - ")[0]+" 00:00:00";
            eTime = integralListQuery.getTime().split(" - ")[1]+" 23:59:59";
        String sTime = null;
        String eTime = null;
        if (ToolUtil.isNotEmpty(integralListQuery.getTime())) {
            sTime = integralListQuery.getTime().split(" - ")[0] + " 00:00:00";
            eTime = integralListQuery.getTime().split(" - ")[1] + " 23:59:59";
        }
        Page<UserIntegral> userIntegrals = this.baseMapper.listAll(userIntegralPage, integralListQuery, sTime, eTime);
        for (UserIntegral userIntegral : userIntegrals.getRecords()) {
            if(userIntegral.getCategory()==1){
                userIntegral.setIntegral(userIntegral.getNewIntegral()-userIntegral.getOldIntegral());
            }else {
                userIntegral.setIntegral(userIntegral.getOldIntegral()-userIntegral.getNewIntegral());
            if (userIntegral.getCategory() == 1) {
                userIntegral.setIntegral(userIntegral.getNewIntegral() - userIntegral.getOldIntegral());
            } else {
                userIntegral.setIntegral(userIntegral.getOldIntegral() - userIntegral.getNewIntegral());
            }
        }
        return userIntegrals;
@@ -182,19 +183,23 @@
    public List<ExchangeDetailsResponse> queryExchangeGoodsdetails1(Integer userIdFormRedis, Integer useType, Integer goodType, Integer page, Integer size) {
        List<ExchangeDetailsResponse> detailsResponses = new ArrayList<>();
        ExchangeDetailsVo integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis);
        if (ToolUtil.isNotEmpty(integralExchangeDetails.getDetailsResponses())){
        if (ToolUtil.isNotEmpty(integralExchangeDetails.getDetailsResponses())) {
            detailsResponses = integralExchangeDetails.getDetailsResponses();
            if (ToolUtil.isNotEmpty(useType)){
            if (ToolUtil.isNotEmpty(useType)) {
                detailsResponses = detailsResponses.stream()
                        .filter(response -> Objects.equals(response.getUseStatus(), useType))
                        .collect(Collectors.toList());
            }
            if (ToolUtil.isNotEmpty(goodType)){
            if (ToolUtil.isNotEmpty(goodType)) {
                detailsResponses = detailsResponses.stream()
                        .filter(response -> Objects.equals(response.getGoodType(), goodType))
                        .collect(Collectors.toList());
            }
        }
        int totalItems = detailsResponses.size();
        int startIndex = (page - 1) * size;
        int endIndex = Math.min(startIndex + size, totalItems);
@@ -204,8 +209,6 @@
        } else {
            detailsResponses.clear();
        }
        return detailsResponses;
cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -1,5 +1,6 @@
package com.dsh.account.service.impl;
import com.alibaba.fastjson.JSON;
import com.alipay.api.response.AlipayTradeQueryResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -11,11 +12,13 @@
import com.dsh.account.service.IVipPaymentService;
import com.dsh.account.service.TAppUserService;
import com.dsh.account.util.PayMoneyUtil;
import com.dsh.account.util.RedisUtil;
import com.dsh.account.util.ResultUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Date;
@@ -35,8 +38,16 @@
    @Autowired
    private PayMoneyUtil payMoneyUtil;
    @Resource
    private UserConponClient userConponClient;
    @Autowired
    private RedisUtil redisUtil;
    /**
     * 购买年度会员
     *
     * @param uid
     * @return
     * @throws Exception
@@ -51,10 +62,10 @@
        vipPayment.setPayStatus(1);
        vipPayment.setState(1);
        this.baseMapper.insert(vipPayment);
        if(payType == 1){//微信
        if (payType == 1) {//微信
            return weixinpay(vipPayment);
        }
        if(payType == 2){//支付宝
        if (payType == 2) {//支付宝
            return alipay(vipPayment);
        }
        return ResultUtil.success();
@@ -63,26 +74,27 @@
    /**
     * 微信
     *
     * @param vipPayment
     * @return
     * @throws Exception
     */
    public ResultUtil weixinpay(VipPayment vipPayment) throws Exception{
    public ResultUtil weixinpay(VipPayment vipPayment) throws Exception {
        String code = vipPayment.getCode();
        ResultUtil weixinpay = payMoneyUtil.weixinpay("购买年度会员", "", code, vipPayment.getAmount().toString(),
                "/base/appUser/addVipPaymentWeChatCallback", "APP", "");
        if(weixinpay.getCode() == 200){
        if (weixinpay.getCode() == 200) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
                        while (num <= 10) {
                            int min = 5000;
                            wait += (min * num);
                            VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code));
                            if(vipPayment1.getPayStatus() != 1){
                            if (vipPayment1.getPayStatus() == 2) {
                                return;
                            }
                            /**
@@ -96,24 +108,24 @@
                             * ACCEPT--已接收,等待扣款
                             */
                            ResultUtil<Map<String, String>> resultUtil = payMoneyUtil.queryWXOrder(code, "");
                            if(resultUtil.getCode() == 200){
                            if (resultUtil.getCode() == 200) {
                                Map<String, String> map = resultUtil.getData();
                                String trade_type = map.get("trade_type");
                                String trade_state = map.get("trade_state");
                                String transaction_id = map.get("transaction_id");
                                if("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)){
                                if ("REFUND".equals(trade_state) || "NOTPAY".equals(trade_state) || "CLOSED".equals(trade_state) || "REVOKED".equals(trade_state) || "PAYERROR".equals(trade_state)) {
                                    vipPayment1.setState(3);
                                    VipPaymentServiceImpl.this.updateById(vipPayment1);
                                    return;
                                }
                                if("SUCCESS".equals(trade_state)){
                                if ("SUCCESS".equals(trade_state)) {
                                    vipPayment1.setPayStatus(2);
                                    vipPayment1.setPayTime(new Date());
                                    vipPayment1.setOrderNumber(transaction_id);
                                    VipPaymentServiceImpl.this.updateById(vipPayment1);
                                    TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId());
                                    Date vipEndTime = appUser.getVipEndTime();
                                    if(null == vipEndTime){
                                    if (null == vipEndTime) {
                                        vipEndTime = new Date();
                                    }
                                    Calendar calendar = Calendar.getInstance();
@@ -123,23 +135,24 @@
                                    appUser.setVipEndTime(calendar.getTime());
                                    appUserService.updateById(appUser);
                                    // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
                                    userConponClient.queryCouponByUser(appUser.getId());
                                    List<Long> longs = userConponClient.queryCouponByUser(appUser.getId());
                                    redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
                                    return;
                                }
                                if("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)){
                                if ("USERPAYING".equals(trade_state) || "ACCEPT".equals(trade_state)) {
                                    Thread.sleep(wait);
                                    num++;
                                }
                            }else{
                            } else {
                                Thread.sleep(wait);
                                num++;
                            }
                            if(10 == num){
                            if (10 == num) {
                                vipPayment1.setState(3);
                                VipPaymentServiceImpl.this.updateById(vipPayment1);
                            }
                        }
                    }catch (Exception e){
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
@@ -151,26 +164,27 @@
    /**
     * 支付宝
     *
     * @param vipPayment
     * @return
     * @throws Exception
     */
    public ResultUtil alipay(VipPayment vipPayment) throws Exception{
    public ResultUtil alipay(VipPayment vipPayment) throws Exception {
        String code = vipPayment.getCode();
        ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", vipPayment.getAppUserId()+"", code, vipPayment.getAmount().toString(),
        ResultUtil alipay = payMoneyUtil.alipay("购买年度会员", "购买年度会员", vipPayment.getAppUserId() + "", code, vipPayment.getAmount().toString(),
                "/base/appUser/addVipPaymentAliCallback");
        if(alipay.getCode() == 200){
        if (alipay.getCode() == 200) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    try {
                        int num = 1;
                        int wait = 0;
                        while (num <= 10){
                        while (num <= 10) {
                            int min = 5000;
                            wait += (min * num);
                            VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code));
                            if(vipPayment1.getPayStatus() != 1){
                            if (vipPayment1.getPayStatus() != 1) {
                                return;
                            }
@@ -183,20 +197,20 @@
                             */
                            AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
                            if(resultUtil.getCode().equals("10000")){
                            if (resultUtil.getCode().equals("10000")) {
//                                Map<String, String> map = resultUtil.getData();
//                                String tradeStatus = map.get("tradeStatus");
//                                String tradeNo = map.get("tradeNo");
                                String tradeNo = resultUtil.getTradeNo();
                                String tradeStatus = resultUtil.getTradeStatus();
                                System.out.println("ssssss"+tradeStatus);
                                if("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)){
                                System.out.println("ssssss" + tradeStatus);
                                if ("TRADE_CLOSED".equals(tradeStatus) || "TRADE_FINISHED".equals(tradeStatus)) {
                                    vipPayment1.setState(3);
                                    VipPaymentServiceImpl.this.updateById(vipPayment1);
                                    return;
                                }
                                if("TRADE_SUCCESS".equals(tradeStatus)){
                                if ("TRADE_SUCCESS".equals(tradeStatus)) {
                                    vipPayment1.setPayStatus(2);
                                    vipPayment1.setPayTime(new Date());
                                    vipPayment1.setOrderNumber(tradeNo);
@@ -205,7 +219,7 @@
                                    TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId());
                                    Date vipEndTime = appUser.getVipEndTime();
                                    appUser.setIsVip(1);
                                    if(null == vipEndTime){
                                    if (null == vipEndTime) {
                                        vipEndTime = new Date();
                                    }
                                    Calendar calendar = Calendar.getInstance();
@@ -214,23 +228,24 @@
                                    appUser.setVipEndTime(calendar.getTime());
                                    appUserService.updateById(appUser);
                                    // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
                                    userConponClient.queryCouponByUser(appUser.getId());
                                    List<Long> longs = userConponClient.queryCouponByUser(appUser.getId());
                                    redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
                                    return;
                                }
                                if("WAIT_BUYER_PAY".equals(tradeStatus)){
                                if ("WAIT_BUYER_PAY".equals(tradeStatus)) {
                                    Thread.sleep(wait);
                                    num++;
                                }
                            }else{
                            } else {
                                Thread.sleep(wait);
                                num++;
                            }
                            if(10 == num){
                            if (10 == num) {
                                vipPayment1.setState(3);
                                VipPaymentServiceImpl.this.updateById(vipPayment1);
                            }
                        }
                    }catch (Exception e){
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
@@ -240,11 +255,9 @@
    }
    @Autowired
    private UserConponClient userConponClient;
    /**
     * 购买年度会员支付回调处理
     *
     * @param code
     * @param orderNumber
     * @throws Exception
@@ -252,7 +265,7 @@
    @Override
    public synchronized ResultUtil addVipPaymentCallback(String code, String orderNumber) throws Exception {
        VipPayment vipPayment1 = VipPaymentServiceImpl.this.getOne(new QueryWrapper<VipPayment>().eq("code", code));
        if(vipPayment1.getPayStatus() != 1){
        if (vipPayment1.getPayStatus() == 2) {
            return ResultUtil.success();
        }
        vipPayment1.setPayStatus(2);
@@ -261,16 +274,14 @@
        VipPaymentServiceImpl.this.updateById(vipPayment1);
        TAppUser appUser = appUserService.getById(vipPayment1.getAppUserId());
        Date vipEndTime = appUser.getVipEndTime();
        if(null == vipEndTime){
            vipEndTime = new Date();
        }
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(new Date());
        calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) + 1);
        appUser.setVipEndTime(calendar.getTime());
        appUserService.updateById(appUser);
        // 注册会员送券 先判断是否有注册送券类型的优惠券 判断优惠券状态 审核是否通过 是否删除 是否在有效期内 是否领取数量达上限
        List<Long> longs = userConponClient.queryCouponByUser(appUser.getId());
        redisUtil.setStrValue("VIP_P_" + vipPayment1.getAppUserId(), JSON.toJSONString(longs), 3600);
        return ResultUtil.success();
    }
cloud-server-account/src/main/java/com/dsh/account/util/BMIBodyUtil.java
@@ -1,7 +1,6 @@
package com.dsh.account.util;
public class BMIBodyUtil {
    public static String getBodyStatus(double bmi) {
cloud-server-account/src/main/java/com/dsh/account/util/DateTimeHelper.java
@@ -958,6 +958,7 @@
    /**
     * 把给定的时间加上指定的年份,可以为负, 返回新的被加上了年份的日期对象,不影响参数日期对象值
     * Given a certain time and a specified year, which can be negative, returns a new date object with the added year, without affecting the value of the original date object.
     *
     * @param d
     * @param years
     * @return 日期对象
@@ -976,6 +977,7 @@
    /**
     * 把给定的时间加上指定的月份,可以为负
     * Adding the specified number of month to the given time is possible, including negative values.
     *
     * @param d
     * @param months
     * @return 日期对象
@@ -993,6 +995,7 @@
    /**
     * 把给定的时间加上指定的天数,可以为负
     * Adding the specified number of day to the given time is possible, including negative values.
     *
     * @param d    日期对象
     * @param days
     * @return 日期对象
@@ -1010,6 +1013,7 @@
    /**
     * 把给定的时间加上指定的小时,可以为负
     * Adding the specified number of hour to the given time is possible, including negative values.
     *
     * @param d     日期对象
     * @param hours
     * @return 日期对象
@@ -1027,6 +1031,7 @@
    /**
     * 把给定的时间加上指定的分钟,可以为负
     * Adding the specified number of minute to the given time is possible, including negative values.
     *
     * @param d
     * @param minutes
     * @return 日期对象
@@ -1044,6 +1049,7 @@
    /**
     * 把给定的时间加上指定的秒数,可以为负
     * Adding the specified number of seconds to the given time is possible, including negative values.
     *
     * @param d
     * @param seconds
     * @return 日期对象
@@ -1061,6 +1067,7 @@
    /**
     * 把给定的时间加上指定的毫秒数,可以为负
     * Adding the specified number of milliseconds to the given time can result in a negative value.
     *
     * @param d
     * @param milliseconds
     * @return 日期对象
@@ -1078,6 +1085,7 @@
    /**
     * 设置一个日期对象的年份是新的给定的年份
     * Setting the year of a date object to a new given year.
     *
     * @param d    需要设定的日期对象
     * @param year 新的年份
     * @return 日期对象
@@ -1095,6 +1103,7 @@
    /**
     * 设置一个日期对象的月份是新的给定的月份
     * Set the month of a date object to a new given month.
     *
     * @param d     需要设定的日期对象
     * @param month 新的月份
     * @return 新日期对象
@@ -1112,6 +1121,7 @@
    /**
     * 设置一个日期对象的天是新的给定的天
     * Set the day of a date object to a new given day.
     *
     * @param d   需要设定的日期对象
     * @param day 新的天
     * @return 新日期对象
@@ -1129,6 +1139,7 @@
    /**
     * 设置一个日期对象的小时是新的给定的小时
     * Setting the hour of a date object to a new given hour.
     *
     * @param d    需要设定的日期对象
     * @param hour 新的小时数
     * @return 新日期对象
@@ -1146,6 +1157,7 @@
    /**
     * 设置一个日期对象的分钟是新的给定的分钟数
     * Set the minutes of a date object to a new given minute value.
     *
     * @param d      需要设定的日期对象
     * @param minute 新的分钟数
     * @return 新日期对象
@@ -1181,6 +1193,7 @@
    /**
     * 设置一个日期对象的毫秒数是新的给定的分钟数
     * Setting the milliseconds of a date object to a new given minute value.
     *
     * @param d           需要设定的日期对象
     * @param millisecond 新的毫秒数
     * @return 新日期对象
@@ -1199,6 +1212,7 @@
    /**
     * 返回指定日期的月份的天数量
     * Retrieve the number of days in the month of the specified date.
     *
     * @param d 日期对象
     */
    public static int getDaysOfMonth(Date d) {
@@ -1210,6 +1224,7 @@
    /**
     * 返回指定日期的月份的天数量
     * Retrieve the number of days in the month of the specified date.
     *
     * @param year  年
     * @param month 月
     */
@@ -1306,6 +1321,7 @@
    /**
     * 取得下个月的这天,比如2月1日可取得3月1日,此方法有很大局限性,不能用于月末的天数
     * Obtain the same day of the following month, for example, February 1st can obtain March 1st. This method has significant limitations and cannot be used for the last days of the month.
     *
     * @param date
     * @return
     */
@@ -1348,6 +1364,7 @@
    /**
     * 获取指定月份开始时0点0分0秒
     *
     * @param input 输入的时间,"yyyy-MM"
     * @return
     */
@@ -1380,6 +1397,7 @@
    /**
     * 获取指定月份结束时23点59分59秒
     *
     * @param input 输入的时间,"yyyy-MM"
     * @return
     */
@@ -1408,6 +1426,7 @@
    /**
     * 根据时间获取和当前时间的差距.
     * Obtain the difference between the current time and the time in question.
     *
     * @param date - 待比较实际
     * @return 时间差距字符串
     */
@@ -1449,6 +1468,7 @@
    /**
     * 获取当前日期后几天的日期
     * Obtaining the date of the day after several days from the current date.
     *
     * @param day 天数
     * @return
     */
@@ -1468,6 +1488,7 @@
    /**
     * 获取当前日期是星期几<br>
     * Obtain the day of the week for the current date.
     *
     * @param dt
     * @return 当前日期是星期几
     */
@@ -1485,6 +1506,7 @@
    /**
     * 获取当前日期是星期几<br>
     * Obtain the day of the week for the current date.
     *
     * @param dt
     * @return 当前日期是星期几
     */
@@ -1570,6 +1592,7 @@
    /**
     * 根据时间获取和当前时间的差距.
     * Obtain the difference between the current time and the time in question.
     *
     * @param date - 待比较实际
     * @return 时间差距字符串
     */
@@ -1617,6 +1640,7 @@
    /**
     * 是否是同一天
     * it the same day
     *
     * @param first
     * @param second
     * @return
@@ -1638,6 +1662,7 @@
    /**
     * 是否超过指定时刻
     * Has the specified time limit been exceeded
     *
     * @param day  时间
     * @param time 指定时刻
     * @return
@@ -1677,6 +1702,7 @@
    /**
     * 指定一天哪一个小时
     * Specify which hour of a particular day.
     *
     * @param time
     * @return
     */
@@ -1709,6 +1735,7 @@
    /**
     * 数字换算成中文(周)
     * Conversion of numbers to Chinese (weeks)
     *
     * @param time
     * @return
     */
@@ -1755,6 +1782,7 @@
    /**
     * 获取两个时间的间隔(秒)
     * Obtain the time difference between two instances (in seconds).
     *
     * @param d1
     * @param d2
     * @return
@@ -1765,7 +1793,7 @@
    /**
     * @param date
     * @return 获取今天最后的时间
     * @return 获取今天最后的时间
     * Obtain the final time of today.
     */
    public static Date getEndDate(Date date) {
@@ -1781,7 +1809,7 @@
    }
    /**
     * 日期天数差
     * 日期天数差
     * Days Difference
     */
    public static int daysBetween(Date today, Date endDate) throws ParseException {
@@ -1798,8 +1826,9 @@
    }
    /**
     * 获取到当月所有日期
     * 获取到当月所有日期
     * Obtain all dates of the current month
     *
     * @param date
     * @return
     */
cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java
@@ -150,7 +150,7 @@
     */
    public static Date parse(String date, String pattern) {
        try {
            if(Objects.nonNull(date)) {
            if (Objects.nonNull(date)) {
                return DateUtils.parseDate(date, pattern);
            }
        } catch (ParseException e) {
@@ -286,6 +286,7 @@
        Calendar cal = Calendar.getInstance();
        return cal;
    }
    /**
     * 毫秒转日期时间
     *
@@ -338,6 +339,7 @@
    /**
     * 计算年龄
     *
     * @param birthDate
     * @return
     */
@@ -361,9 +363,13 @@
        // 粗计算年龄
        int age = yearNow - yearBirth;
        // 当前月份小于出生月份年龄减一
        if (monthNow < monthBirth) { age--; }
        if (monthNow < monthBirth) {
            age--;
        }
        // 当前月份等于出生月份,日小于生日年龄减一
        else if (monthNow == monthBirth && dayNow < dayBirth) { age--; }
        else if (monthNow == monthBirth && dayNow < dayBirth) {
            age--;
        }
        // 返回年龄值
        return age;
    }
cloud-server-account/src/main/java/com/dsh/account/util/GDMapGeocodingUtil.java
@@ -31,25 +31,26 @@
    /**
     * 将行政区域名称转化为坐标
     *
     * @param province
     * @param city
     * @param county
     * @param address
     * @return
     */
    public Map<String, Object> geocoding(String province, String city, String county, String address) throws Exception{
    public Map<String, Object> geocoding(String province, String city, String county, String address) throws Exception {
        Map<String, Object> map = new HashMap<>();
        if(ToolUtil.isEmpty(province)){
        if (ToolUtil.isEmpty(province)) {
            map.put("status", -1);
            map.put("data", "省不能为空");
            return map;
        }
        if((ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(county)) || (ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(address))){
        if ((ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(county)) || (ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(address))) {
            map.put("status", -1);
            map.put("data", "市不能为空");
            return map;
        }
        if((ToolUtil.isEmpty(county) && ToolUtil.isNotEmpty(address))){
        if ((ToolUtil.isEmpty(county) && ToolUtil.isNotEmpty(address))) {
            map.put("status", -1);
            map.put("data", "县/区不能为空");
            return map;
@@ -62,9 +63,9 @@
        String status = jsonObject.getString("status");
        List<String> list = new ArrayList<>();
        if(status.equals("1")){
        if (status.equals("1")) {
            JSONArray geocodes = jsonObject.getJSONArray("geocodes");
            for(int i = 0; i < geocodes.size(); i++){
            for (int i = 0; i < geocodes.size(); i++) {
                String location = geocodes.getJSONObject(i).getString("location");
                list.add(location);
            }
@@ -75,8 +76,7 @@
    }
    public Map<String, Object> geocoding(String address) throws Exception{
    public Map<String, Object> geocoding(String address) throws Exception {
        Map<String, Object> map = new HashMap<>();
        String url = "https://restapi.amap.com/v3/geocode/geo?key=" + key + "&output=JSON&address=" + address;
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "json");
@@ -84,9 +84,9 @@
        String status = jsonObject.getString("status");
        List<String> list = new ArrayList<>();
        if(status.equals("1")){
        if (status.equals("1")) {
            JSONArray geocodes = jsonObject.getJSONArray("geocodes");
            for(int i = 0; i < geocodes.size(); i++){
            for (int i = 0; i < geocodes.size(); i++) {
                String location = geocodes.getJSONObject(i).getString("location");
                list.add(location);
            }
@@ -97,21 +97,21 @@
    }
    /**
     * 根据经纬度获取行政区域信息
     *
     * @param lon
     * @param lan
     * @return
     * @throws Exception
     */
    public Map<String, String> geocode(String lon, String lan) throws Exception{
    public Map<String, String> geocode(String lon, String lan) throws Exception {
        String url = "https://restapi.amap.com/v3/geocode/regeo?key=" + key + "&location=" + lon + "," + lan;
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "json");
        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
        Map<String, String> map = new HashMap<>();
        if(jsonObject.getString("status").equals("1")){
        if (jsonObject.getString("status").equals("1")) {
            JSONObject regeocode = jsonObject.getJSONObject("regeocode");
            JSONObject addressComponent = regeocode.getJSONObject("addressComponent");
            String address = regeocode.getString("formatted_address");
@@ -133,21 +133,22 @@
    /**
     * 坐标转换
     *
     * @param locations 经度和纬度用","分割,经度在前,纬度在后,经纬度小数点后不得超过6位。多个坐标对之间用”|”进行分隔最多支持40对坐标。
     * @param coordsys  可选值:gps;mapbar;baidu;autonavi(不进行转换)
     * @return
     * @throws Exception
     */
    public Map<String, String> convert(String locations, String coordsys) throws Exception{
    public Map<String, String> convert(String locations, String coordsys) throws Exception {
        String url = "https://restapi.amap.com/v3/assistant/coordinate/convert?locations=" + locations + "&coordsys=" + coordsys + "&output=json&key=" + key;
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "json");
        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
        Map<String, String> map = new HashMap<>();
        if("1".equals(jsonObject.getString("status"))){
        if ("1".equals(jsonObject.getString("status"))) {
            map.put("code", jsonObject.getString("infocode"));//"10000"
            map.put("info", jsonObject.getString("info"));//status为0时,info返回错误原;否则返回“OK”。
            map.put("locations", jsonObject.getString("locations").split(";")[0]);//转换之后的坐标。若有多个坐标,则用 “;”进行区分和间隔
        }else{
        } else {
            map.put("code", jsonObject.getString("infocode"));
            map.put("info", jsonObject.getString("info"));//status为0时,info返回错误原;否则返回“OK”。
        }
@@ -200,7 +201,7 @@
            String queryResult = getResponse(queryUrl);
            JSONObject job = JSONObject.parseObject(queryResult);
            JSONArray ja = job.getJSONArray("results");
            if (ja.size() == 0){
            if (ja.size() == 0) {
                return 0.00;
            }
            JSONObject jobO = JSONObject.parseObject(ja.getString(0));
cloud-server-account/src/main/java/com/dsh/account/util/GeodesyUtil.java
@@ -16,11 +16,12 @@
    /**
     * 获取直线距离
     *
     * @param fromLonLat
     * @param toLonLat
     * @return
     */
    public static Map<String, Double> getDistance(String fromLonLat, String toLonLat){
    public static Map<String, Double> getDistance(String fromLonLat, String toLonLat) {
        String[] from = fromLonLat.split(",");
        String[] to = toLonLat.split(",");
        GlobalCoordinates source = new GlobalCoordinates(Double.valueOf(from[1]), Double.valueOf(from[0]));
@@ -54,7 +55,7 @@
    }
    private static double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid){
    private static double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid) {
        //创建GeodeticCalculator,调用计算方法,传入坐标系、经纬度用于计算距离
        GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo);
        return geoCurve.getEllipsoidalDistance();
cloud-server-account/src/main/java/com/dsh/account/util/HeaderAuthUtil.java
@@ -11,9 +11,10 @@
    /**
     * 获取Request请求头UserId
     *
     * @return
     */
    public static String getLoginAuthUserId (HttpServletRequest request) {
    public static String getLoginAuthUserId(HttpServletRequest request) {
        String userId = request.getHeader(HEADER_USERID);
        return userId;
    }
cloud-server-account/src/main/java/com/dsh/account/util/JsonUtil.java
@@ -14,9 +14,8 @@
import java.util.Map;
/**
 *
 * 返回json数据封装工具类
 *
 *
 * @ClassName: JsonUtil
 * @author: yuds
 * @date: 2019-09-20 09:19:27
@@ -24,134 +23,134 @@
 */
public class JsonUtil {
    /**
     * <li>将对象转化为json输出
     * <li>QuoteFieldNames ———-输出key时是否使用双引号,默认为true
     * <li>WriteMapNullValue ——–是否输出值为null的字段,默认为false
     * <li>WriteNullNumberAsZero —-数值字段如果为null,输出为0,而非null
     * <li>WriteNullListAsEmpty —–List字段如果为null,输出为[],而非null
     * <li>WriteNullStringAsEmpty —字符类型字段如果为null,输出为”“,而非null
     * <li>WriteNullBooleanAsFalse –Boolean字段如果为null,输出为false,而非null
     * <li>DisableCircularReferenceDetect 禁止循环引用检测
     */
    private static SerializerFeature[] serializerFeaturess = { SerializerFeature.WriteMapNullValue,
            SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullListAsEmpty,
            SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullBooleanAsFalse,
            SerializerFeature.DisableCircularReferenceDetect, };
    /**
     * <li>将对象转化为json输出
     * <li>QuoteFieldNames ———-输出key时是否使用双引号,默认为true
     * <li>WriteMapNullValue ——–是否输出值为null的字段,默认为false
     * <li>WriteNullNumberAsZero —-数值字段如果为null,输出为0,而非null
     * <li>WriteNullListAsEmpty —–List字段如果为null,输出为[],而非null
     * <li>WriteNullStringAsEmpty —字符类型字段如果为null,输出为”“,而非null
     * <li>WriteNullBooleanAsFalse –Boolean字段如果为null,输出为false,而非null
     * <li>DisableCircularReferenceDetect 禁止循环引用检测
     */
    private static SerializerFeature[] serializerFeaturess = {SerializerFeature.WriteMapNullValue,
            SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullListAsEmpty,
            SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullBooleanAsFalse,
            SerializerFeature.DisableCircularReferenceDetect,};
    private JsonUtil() {
    private JsonUtil() {
    }
    }
    /**
     * fastJson Object转json
     *
     * @param obj
     * @return
     */
    public static String objToJson(Object obj) {
        return JSON.toJSONString(obj, serializerFeaturess);
    }
    /**
     * fastJson Object转json
     *
     * @param obj
     * @return
     */
    public static String objToJson(Object obj) {
        return JSON.toJSONString(obj, serializerFeaturess);
    }
    /**
     * fastJson Object转json
     *
     * @param obj
     * @param dateFormat 时间格式化
     * @return
     */
    public static String objToJson(Object obj, String dateFormat) {
        return JSON.toJSONStringWithDateFormat(obj, dateFormat, serializerFeaturess);
    }
    /**
     * fastJson Object转json
     *
     * @param obj
     * @param dateFormat 时间格式化
     * @return
     */
    public static String objToJson(Object obj, String dateFormat) {
        return JSON.toJSONStringWithDateFormat(obj, dateFormat, serializerFeaturess);
    }
    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();
    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();
    /**
     * 将对象转换成json字符串。
     * <p>
     * Title: pojoToJson
     * </p>
     * <p>
     * Description:
     * </p>
     *
     * @param data
     * @return
     */
    public static String objectToJson(Object data) {
        try {
            SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            MAPPER.setDateFormat(fmt);
            String string = MAPPER.writeValueAsString(data);
            return string;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将对象转换成json字符串。
     * <p>
     * Title: pojoToJson
     * </p>
     * <p>
     * Description:
     * </p>
     *
     * @param data
     * @return
     */
    public static String objectToJson(Object data) {
        try {
            SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            MAPPER.setDateFormat(fmt);
            String string = MAPPER.writeValueAsString(data);
            return string;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将json结果集转化为对象
     *
     * @param jsonData json数据
     * @param beanType    对象中的object类型
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = MAPPER.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将json结果集转化为对象
     *
     * @param jsonData json数据
     * @param beanType 对象中的object类型
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = MAPPER.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将json数据转换成pojo对象list
     * <p>
     * Title: jsonToList
     * </p>
     * <p>
     * Description:
     * </p>
     *
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
        try {
            List<T> list = MAPPER.readValue(jsonData, javaType);
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }
    /**
     * 将json数据转换成pojo对象list
     * <p>
     * Title: jsonToList
     * </p>
     * <p>
     * Description:
     * </p>
     *
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
        try {
            List<T> list = MAPPER.readValue(jsonData, javaType);
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
        return null;
    }
    public static JsonNode jsonToNode(String jsonData) {
        try {
            return MAPPER.readTree(jsonData);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
    public static JsonNode jsonToNode(String jsonData) {
        try {
            return MAPPER.readTree(jsonData);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
    public static Map<String, String> jsonToMap(String json) {
        JsonNode nodes = jsonToNode(json);
        Iterator<Map.Entry<String, JsonNode>> fields = nodes.fields();
        Map<String, String> map = new HashMap<>();
        while (fields.hasNext()) {
            Map.Entry<String, JsonNode> next = fields.next();
            String value = next.getValue().asText("");
            map.put(next.getKey(), value);
        }
        return map;
    }
    public static Map<String, String> jsonToMap(String json) {
        JsonNode nodes = jsonToNode(json);
        Iterator<Map.Entry<String, JsonNode>> fields = nodes.fields();
        Map<String, String> map = new HashMap<>();
        while (fields.hasNext()) {
            Map.Entry<String, JsonNode> next = fields.next();
            String value = next.getValue().asText("");
            map.put(next.getKey(), value);
        }
        return map;
    }
}
cloud-server-account/src/main/java/com/dsh/account/util/JuHeUtil.java
@@ -17,23 +17,24 @@
    /**
     * 校验实名认证
     *
     * @param idcard
     * @param name
     * @return
     * @throws Exception
     */
    public static Boolean idcardAuthentication(String idcard, String name) throws Exception{
    public static Boolean idcardAuthentication(String idcard, String name) throws Exception {
        Map<String, Object> params = new HashMap<>();
        params.put("idcard", idcard);
        params.put("realname", name);
        params.put("key", "29fec4bbe3108e4fbf52704e5a906fe0");
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("POST", "http://op.juhe.cn/idcard/query", params, null, "form");
        if(httpResult.getCode() != 200){
        if (httpResult.getCode() != 200) {
            return false;
        }
        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
        Integer error_code = jsonObject.getInteger("error_code");
        if(0 == error_code){
        if (0 == error_code) {
            JSONObject result = jsonObject.getJSONObject("result");
            Integer res = result.getInteger("res");
            return res == 1 ? true : false;
cloud-server-account/src/main/java/com/dsh/account/util/JwtTokenUtil.java
@@ -15,9 +15,9 @@
 *     jwt的claim里一般包含以下几种数据:
 *         1. iss -- token的发行者 token Publish
 *         2. sub -- 该JWT所面向的用户 to user
 *         3. aud -- 接收该JWT的一方
 *         3. aud -- 接收该JWT的一方
 *         4. exp -- token的失效时间 token invaild time
 *         5. nbf -- 在此时间段之前,不会被处理
 *         5. nbf -- 在此时间段之前,不会被处理
 *         6. iat -- jwt发布时间
 *         7. jti -- jwt唯一标识,防止重复使用
 * </pre>
@@ -46,14 +46,14 @@
    }
    /**
     * 获取jwt失效时间 obtain jwt invalid time
     * 获取jwt失效时间 obtain jwt invalid time
     */
    public Date getExpirationDateFromToken(String token) {
        return getClaimFromToken(token).getExpiration();
    }
    /**
     * 获取jwt接收者 obtain jwt obserive
     * 获取jwt接收者 obtain jwt obserive
     */
    public String getAudienceFromToken(String token) {
        return getClaimFromToken(token).getAudience();
cloud-server-account/src/main/java/com/dsh/account/util/LocalDateTimeUtils.java
@@ -15,8 +15,8 @@
 * @version V1.0
 */
public class LocalDateTimeUtils {
    private final static int[] dayArr = new int[] { 20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22 };
    private final static String[] constellationArr = new String[] { "摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座" };
    private final static int[] dayArr = new int[]{20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22};
    private final static String[] constellationArr = new String[]{"摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座"};
    /**
@@ -33,16 +33,17 @@
    /**
     * 通过生日计算年龄
     *
     * @param birthDay 生日
     * @return
     * @throws ParseException
     */
    public static int getAgeByBirth(LocalDate birthDay) throws ParseException {
        int age = 0;
       //出生日期晚于当前时间,无法计算
        LocalDate now=LocalDate.now();
        //出生日期晚于当前时间,无法计算
        LocalDate now = LocalDate.now();
        if (birthDay.isAfter(now)) {
            throw new IllegalArgumentException( "生日大于当前时间!");
            throw new IllegalArgumentException("生日大于当前时间!");
        }
        //当前年份
        int yearNow = now.getYear();
@@ -51,14 +52,14 @@
        //当前日期
        int dayOfMonthNow = now.getDayOfMonth();
        int yearBirth =birthDay.getYear();
        int yearBirth = birthDay.getYear();
        int monthBirth = birthDay.getMonthValue();
        int dayOfMonthBirth = birthDay.getDayOfMonth();
        //计算整岁数
        age = yearNow - yearBirth;
        if (monthNow <= monthBirth) {
            if (monthNow == monthBirth) {
                if (dayOfMonthNow < dayOfMonthBirth){
                if (dayOfMonthNow < dayOfMonthBirth) {
                    //当前日期在生日之前,年龄减一
                    age--;
                }
@@ -75,22 +76,23 @@
     */
    public static String getConstellation(LocalDate date) {
        Integer month=date.getMonthValue();
        Integer day=date.getDayOfMonth();
        Integer month = date.getMonthValue();
        Integer day = date.getDayOfMonth();
        return day < dayArr[month - 1] ? constellationArr[month - 1] : constellationArr[month];
    }
    /**
     * 获取当天的星期几
     *
     * @return
     */
    public static int getWeekStr(){
    public static int getWeekStr() {
        LocalDate today = LocalDate.now();
        DayOfWeek dayOfWeek = today.getDayOfWeek();
        return dayOfWeek.getValue();
    }
    public static String getWeekOfDays(int desiredDayOfWeek){
    public static String getWeekOfDays(int desiredDayOfWeek) {
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();
cloud-server-account/src/main/java/com/dsh/account/util/LonlatUtils.java
@@ -11,10 +11,11 @@
    /**
     * 计算两个经纬度之间的直线距离
     * @param lat1  经度1
     * @param lon1  纬度1
     * @param lat2  经度2
     * @param lon2  纬度2
     *
     * @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) {
cloud-server-account/src/main/java/com/dsh/account/util/MD5AndKL.java
@@ -3,99 +3,98 @@
import java.security.MessageDigest;
public class MD5AndKL {
    /**
     * MD5加码。32位
     *
     * @param inStr
     * @return
     */
    public static String MD5(String inStr) {
        MessageDigest md5 = null;
        try {
            md5 = MessageDigest.getInstance("MD5");
        } catch (Exception e) {
            throw new RuntimeException(e.toString());
        }
        byte[] md5Bytes = md5.digest(inStr.getBytes());
        StringBuffer hexValue = new StringBuffer();
        for (int i = 0; i < md5Bytes.length; i++) {
            int val = ((int) md5Bytes[i]) & 0xff;
            if (val < 16) {
                hexValue.append("0");
            }
            hexValue.append(Integer.toHexString(val));
        }
        return hexValue.toString();
    }
    /**
     * 可逆的加密算法
     *
     * @param inStr
     * @return
     */
    public static String KL(String inStr) {
        char[] a = inStr.toCharArray();
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 't');
        }
        String s = new String(a);
        return s;
    }
    /**
     * MD5加码。32位
     *
     * @param inStr
     * @return
     */
    public static String MD5(String inStr) {
        MessageDigest md5 = null;
        try {
            md5 = MessageDigest.getInstance("MD5");
        } catch (Exception e) {
            throw new RuntimeException(e.toString());
        }
        byte[] md5Bytes = md5.digest(inStr.getBytes());
        StringBuffer hexValue = new StringBuffer();
        for (int i = 0; i < md5Bytes.length; i++) {
            int val = ((int) md5Bytes[i]) & 0xff;
            if (val < 16) {
                hexValue.append("0");
            }
            hexValue.append(Integer.toHexString(val));
        }
        return hexValue.toString();
    }
    /**
     * 加密后解密
     *
     * @param inStr
     * @return
     */
    public static String JM(String inStr) {
        char[] a = inStr.toCharArray();
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 't');
        }
        String k = new String(a);
        return k;
    }
    /**
     * 可逆的加密算法
     *
     * @param inStr
     * @return
     */
    public static String KL(String inStr) {
        char[] a = inStr.toCharArray();
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 't');
        }
        String s = new String(a);
        return s;
    }
    /**
     * 加密后解密
     *
     * @param inStr
     * @return
     */
    public static String JM(String inStr) {
        char[] a = inStr.toCharArray();
        for (int i = 0; i < a.length; i++) {
            a[i] = (char) (a[i] ^ 't');
        }
        String k = new String(a);
        return k;
    }
    private static String byteArrayToHexString(byte b[]) {
        StringBuffer resultSb = new StringBuffer();
        for (int i = 0; i < b.length; i++)
            resultSb.append(byteToHexString(b[i]));
    private static String byteArrayToHexString(byte b[]) {
        StringBuffer resultSb = new StringBuffer();
        for (int i = 0; i < b.length; i++)
            resultSb.append(byteToHexString(b[i]));
        return resultSb.toString();
    }
        return resultSb.toString();
    }
    private static String byteToHexString(byte b) {
        int n = b;
        if (n < 0)
            n += 256;
        int d1 = n / 16;
        int d2 = n % 16;
        return hexDigits[d1] + hexDigits[d2];
    }
    private static String byteToHexString(byte b) {
        int n = b;
        if (n < 0)
            n += 256;
        int d1 = n / 16;
        int d2 = n % 16;
        return hexDigits[d1] + hexDigits[d2];
    }
    public static String MD5Encode(String origin, String charsetname) {
        String resultString = null;
        try {
            resultString = new String(origin);
            MessageDigest md = MessageDigest.getInstance("MD5");
            if (charsetname == null || "".equals(charsetname)) {
                resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
            } else {
                resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return resultString;
    }
    public static String MD5Encode(String origin, String charsetname) {
        String resultString = null;
        try {
            resultString = new String(origin);
            MessageDigest md = MessageDigest.getInstance("MD5");
            if (charsetname == null || "".equals(charsetname)){
                resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
            }else{
                resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return resultString;
    }
    private static final String hexDigits[] = { "0", "1", "2", "3", "4", "5",
            "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };
    private static final String hexDigits[] = {"0", "1", "2", "3", "4", "5",
            "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
//    public static void main(String args[]) {
//
cloud-server-account/src/main/java/com/dsh/account/util/OssUploadUtil.java
@@ -10,30 +10,30 @@
import java.util.UUID;
public class OssUploadUtil {
    //OSS图片访问域名
    public static String oss_domain = "https://newok.oss-cn-shenzhen.aliyuncs.com/";
    public static String accessKeyId = "LTAI4G9Zez9H4B36vakPXGy4";
    public static String accessKeySecret = "BOVPUeZndKVbrPOq6Ef5j6oiydB3XZ";
    public static String bucketName="newok";
    public static String endpoint = "oss-cn-shenzhen.aliyuncs.com";
    public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId,accessKeySecret);
    public static String ossUpload(HttpServletRequest request, MultipartFile file) throws IOException{
        //CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
        String fileName = "";
            if(file!=null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename()!=null){
                InputStream content = file.getInputStream();//获得指定文件的输入流
                ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
                meta.setContentLength(file.getSize());  // 必须设置ContentLength
                String originalFilename = file.getOriginalFilename();
                fileName =  UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
                ossClient.putObject(bucketName,"img/"+fileName,content,meta);// 上传Object.
                if(fileName != null && !"".equals(fileName)){
                    System.out.println(fileName);
                    fileName = oss_domain+"img/"+fileName;
                }
            }
        return fileName;
    }
    //OSS图片访问域名
    public static String oss_domain = "https://newok.oss-cn-shenzhen.aliyuncs.com/";
    public static String accessKeyId = "LTAI4G9Zez9H4B36vakPXGy4";
    public static String accessKeySecret = "BOVPUeZndKVbrPOq6Ef5j6oiydB3XZ";
    public static String bucketName = "newok";
    public static String endpoint = "oss-cn-shenzhen.aliyuncs.com";
    public static OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
    public static String ossUpload(HttpServletRequest request, MultipartFile file) throws IOException {
        //CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
        String fileName = "";
        if (file != null && !"".equals(file.getOriginalFilename()) && file.getOriginalFilename() != null) {
            InputStream content = file.getInputStream();//获得指定文件的输入流
            ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
            meta.setContentLength(file.getSize());  // 必须设置ContentLength
            String originalFilename = file.getOriginalFilename();
            fileName = UUID.randomUUID().toString().replaceAll("-", "") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
            ossClient.putObject(bucketName, "img/" + fileName, content, meta);// 上传Object.
            if (fileName != null && !"".equals(fileName)) {
                System.out.println(fileName);
                fileName = oss_domain + "img/" + fileName;
            }
        }
        return fileName;
    }
}
cloud-server-account/src/main/java/com/dsh/account/util/PayMoneyUtil.java
@@ -87,11 +87,10 @@
    private String certPath = "C:\\cert\\1523106371_20211206_cert\\apiclient_cert.p12";//微信证书
    /**
     * 支付宝支付
     */
    public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl){
    public ResultUtil alipay(String body, String subject, String passbackParams, String outTradeNo, String amount, String notifyUrl) {
//        //构造client
//        CertAlipayRequest certAlipayRequest = new CertAlipayRequest ();
//        //设置网关地址
@@ -204,7 +203,7 @@
            AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
            Map<String, String> map = new HashMap<>();
            map.put("orderString", response.getBody());
            map.put("returnId",passbackParams);
            map.put("returnId", passbackParams);
            System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。
            return ResultUtil.success(map);
        } catch (AlipayApiException e) {
@@ -216,6 +215,7 @@
    /**
     * 支付宝扫码支付下单
     *
     * @param body
     * @param subject
     * @param outTradeNo
@@ -223,7 +223,7 @@
     * @param notifyUrl
     * @return
     */
    public ResultUtil aliScanCodePay(String body, String subject, String outTradeNo, String amount, String notifyUrl){
    public ResultUtil aliScanCodePay(String body, String subject, String outTradeNo, String amount, String notifyUrl) {
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); //获得初始化的AlipayClient
        AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();//创建API对应的request类
        request.setBizContent("{" +
@@ -249,13 +249,14 @@
    /**
     * 支付成功后的回调处理逻辑
     *
     * @param request
     */
    public Map<String, String> alipayCallback(HttpServletRequest request){
    public Map<String, String> alipayCallback(HttpServletRequest request) {
        //获取支付宝POST过来反馈信息
        Map<String,String> params = new HashMap<String,String>();
        Map<String, String> params = new HashMap<String, String>();
        Map requestParams = request.getParameterMap();
        for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
        for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {
            String name = (String) iter.next();
            String[] values = (String[]) requestParams.get(name);
            String valueStr = "";
@@ -311,12 +312,13 @@
    /**
     * 支付宝查询订单支付状态
     *
     * @param out_trade_no
     * @return
     * @throws Exception
     */
    public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception{
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",aliAppid, appPrivateKey,"json","UTF-8",alipay_public_key,"RSA2");
    public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception {
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
        AlipayTradeQueryRequest request = new AlipayTradeQueryRequest();
        request.setBizContent("{" +
                "  \"out_trade_no\":\"" + out_trade_no + "\"" +
@@ -332,18 +334,18 @@
    }
    /**
     * 微信统一下单
     * @param body          商品描述
     * @param attach        附加数据
     * @param out_trade_no  商户订单号
     * @param total_fee     标价金额
     * @param notify_url    通知地址
     * @param tradeType     交易类型
     *
     * @param body         商品描述
     * @param attach       附加数据
     * @param out_trade_no 商户订单号
     * @param total_fee    标价金额
     * @param notify_url   通知地址
     * @param tradeType    交易类型
     * @return
     */
    public ResultUtil weixinpay(String body, String attach, String out_trade_no, String total_fee, String notify_url, String tradeType, String openId) throws Exception{
    public ResultUtil weixinpay(String body, String attach, String out_trade_no, String total_fee, String notify_url, String tradeType, String openId) throws Exception {
        int i = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue();
        String hostAddress = null;
        try {
@@ -363,7 +365,7 @@
        map.put("spbill_create_ip", hostAddress);
        map.put("notify_url", callbackPath + notify_url);
        map.put("trade_type", tradeType);
        if("JSAPI".equals(tradeType)){
        if ("JSAPI".equals(tradeType)) {
            map.put("openid", openId);
        }
        String s = this.weixinSignature(map);
@@ -379,7 +381,7 @@
        keys = strings.toArray(keys);
        Arrays.sort(keys);
        xmlString.append("<xml>");
        for(int l = 0; l < keys.length; l++){
        for (int l = 0; l < keys.length; l++) {
            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
        }
        xmlString.append("</xml>");
@@ -387,7 +389,7 @@
        Map<String, String> map1 = null;
        String body1 = HttpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>()).getData();
        //将结果xml解析成map
        body1 = body1.replaceAll("<!\\[CDATA\\[","");
        body1 = body1.replaceAll("<!\\[CDATA\\[", "");
        body1 = body1.replaceAll("]]>", "");
        try {
            map1 = this.xmlToMap(body1, "UTF-8");
@@ -397,16 +399,14 @@
            e.printStackTrace();
        }
        String return_code = map1.get("return_code");
        if("SUCCESS".equals(return_code)){
        if ("SUCCESS".equals(return_code)) {
            String result_code = map1.get("result_code");
            if("SUCCESS".equals(result_code)){
            if ("SUCCESS".equals(result_code)) {
                String type = map1.get("trade_type");
                String prepay_id = map1.get("prepay_id");
                switch (type){
                switch (type) {
                    case "JSAPI":
                        //重新进行签名后返回给前端
                        Map<String, Object> map2 = new HashMap<>();
@@ -441,11 +441,11 @@
                        return ResultUtil.success(map3);
                }
                return null;
            }else{
            } else {
                System.err.println(map1.get("err_code_des"));
                return ResultUtil.error(map1.get("err_code_des"));
            }
        }else{
        } else {
            System.err.println(map1.get("return_msg") + appid + "----" + mchId);
            return ResultUtil.error(map1.get("return_msg"), new JSONObject());
        }
@@ -458,18 +458,19 @@
    /**
     * 微信支付成功后的回调处理
     *
     * @param request
     */
    public Map<String, String> weixinpayCallback(HttpServletRequest request){
    public Map<String, String> weixinpayCallback(HttpServletRequest request) {
        try {
            String param = this.getParam(request);
            param = param.replaceAll("<!\\[CDATA\\[","");
            param = param.replaceAll("<!\\[CDATA\\[", "");
            param = param.replaceAll("]]>", "");
            Map<String, String> map = this.xmlToMap(param, "UTF-8");
            String return_code = map.get("return_code");
            if("SUCCESS".equals(return_code)){
            if ("SUCCESS".equals(return_code)) {
                String result_code = map.get("result_code");
                if("SUCCESS".equals(result_code)){
                if ("SUCCESS".equals(result_code)) {
                    Map<String, String> map1 = new HashedMap();
                    map1.put("nonce_str", map.get("nonce_str"));
                    map1.put("out_trade_no", map.get("out_trade_no"));//存储的订单code
@@ -480,12 +481,11 @@
                    map1.put("result", result);
                    return map1;
                }else{
                } else {
                    System.err.println(map.get("err_code_des"));
                }
            }else{
            } else {
                System.err.println(map.get("return_msg"));
            }
        } catch (IOException e) {
@@ -498,8 +498,8 @@
        return null;
    }
@Resource
private CoursePackageClient coursePackageClient;
    @Resource
    private CoursePackageClient coursePackageClient;
    @Resource
    private DeductionCompetitionsClient competitionsClient;
@@ -609,15 +609,16 @@
    /**
     * 微信扫码收款
     * @param body              商品描述
     * @param attach            附加数据
     * @param nonce_str         随机字符串
     * @param out_trade_no      商户订单号
     * @param total_fee         订单金额
     * @param auth_code         授权码    扫码支付授权码,设备读取用户微信中的条码或者二维码信息(注:用户付款码条形码规则:18位纯数字,以10、11、12、13、14、15开头)
     *
     * @param body         商品描述
     * @param attach       附加数据
     * @param nonce_str    随机字符串
     * @param out_trade_no 商户订单号
     * @param total_fee    订单金额
     * @param auth_code    授权码    扫码支付授权码,设备读取用户微信中的条码或者二维码信息(注:用户付款码条形码规则:18位纯数字,以10、11、12、13、14、15开头)
     * @return
     */
    public ResultUtil wxScanQRCodePay(String body, String attach, String nonce_str, String out_trade_no, String total_fee, String auth_code){
    public ResultUtil wxScanQRCodePay(String body, String attach, String nonce_str, String out_trade_no, String total_fee, String auth_code) {
        int i = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue();
        String hostAddress = null;
        try {
@@ -655,7 +656,7 @@
        keys = strings.toArray(keys);
        Arrays.sort(keys);
        xmlString.append("<xml>");
        for(int l = 0; l < keys.length; l++){
        for (int l = 0; l < keys.length; l++) {
            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
        }
        xmlString.append("</xml>");
@@ -668,7 +669,7 @@
            e.printStackTrace();
        }
        //将结果xml解析成map
        body1 = body1.replaceAll("<!\\[CDATA\\[","");
        body1 = body1.replaceAll("<!\\[CDATA\\[", "");
        body1 = body1.replaceAll("]]>", "");
        try {
            map1 = this.xmlToMap(body1, "UTF-8");
@@ -678,11 +679,11 @@
            e.printStackTrace();
        }
        String return_code = map1.get("return_code");
        if("SUCCESS".equals(return_code)){
        if ("SUCCESS".equals(return_code)) {
            String result_code = map1.get("result_code");
            if("SUCCESS".equals(result_code)){
            if ("SUCCESS".equals(result_code)) {
                String type = map1.get("trade_type");
                switch (type){
                switch (type) {
                    case "JSAPI":
                        break;
                    case "NATIVE":
@@ -706,11 +707,11 @@
                        return ResultUtil.success(map2);
                }
                return null;
            }else{
            } else {
//                System.err.println(map1.get("err_code_des"));
                return ResultUtil.error(map1.get("err_code_des"));
            }
        }else{
        } else {
//            System.err.println(map1.get("return_msg") + appid + "----" + mchId);
            return ResultUtil.error(map1.get("return_msg"), new JSONObject());
        }
@@ -719,24 +720,26 @@
    /**
     * 支付宝扫码收款
     *
     * @param data
     * @return
     */
    public Object aliScanQRCodePay(String data){
    public Object aliScanQRCodePay(String data) {
        return null;
    }
    /**
     * 微信退款申请
     * @param transaction_id    微信订单号。微信生成的订单号,在支付通知中有返回
     * @param out_refund_no     商户退款单号。商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@ ,同一退款单号多次请求只退一笔。
     * @param total_fee         订单金额。订单总金额,单位为分,只能为整数
     * @param refund_fee        退款金额。退款总金额,订单总金额,单位为分,只能为整数
     * @param notify_url        退款结果通知url。异步接收微信支付退款结果通知的回调地址,通知URL必须为外网可访问的url,不允许带参数 如果参数中传了notify_url,则商户平台上配置的回调地址将不会生效。
     *
     * @param transaction_id 微信订单号。微信生成的订单号,在支付通知中有返回
     * @param out_refund_no  商户退款单号。商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@ ,同一退款单号多次请求只退一笔。
     * @param total_fee      订单金额。订单总金额,单位为分,只能为整数
     * @param refund_fee     退款金额。退款总金额,订单总金额,单位为分,只能为整数
     * @param notify_url     退款结果通知url。异步接收微信支付退款结果通知的回调地址,通知URL必须为外网可访问的url,不允许带参数 如果参数中传了notify_url,则商户平台上配置的回调地址将不会生效。
     * @return
     */
    public Map<String, String> wxRefund(String transaction_id, String out_refund_no, String total_fee, String refund_fee, String notify_url){
    public Map<String, String> wxRefund(String transaction_id, String out_refund_no, String total_fee, String refund_fee, String notify_url) {
        int tf = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue();
        int rf = new BigDecimal(refund_fee).multiply(new BigDecimal("100")).intValue();
        String nonce_str = UUIDUtil.getRandomCode();
@@ -762,7 +765,7 @@
        keys = strings.toArray(keys);
        Arrays.sort(keys);
        xmlString.append("<xml>");
        for(int l = 0; l < keys.length; l++){
        for (int l = 0; l < keys.length; l++) {
            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
        }
        xmlString.append("</xml>");
@@ -776,7 +779,7 @@
        }
        System.err.println(body1);
        //将结果xml解析成map
        body1 = body1.replaceAll("<!\\[CDATA\\[","");
        body1 = body1.replaceAll("<!\\[CDATA\\[", "");
        body1 = body1.replaceAll("]]>", "");
        try {
            map1 = this.xmlToMap(body1, "UTF-8");
@@ -787,19 +790,19 @@
        }
        String return_code = map1.get("return_code");
        Map<String, String> map2 = new HashMap<>();
        if("SUCCESS".equals(return_code)){
        if ("SUCCESS".equals(return_code)) {
            String result_code = map1.get("result_code");
            if("SUCCESS".equals(result_code)){
            if ("SUCCESS".equals(result_code)) {
                map2.put("return_code", result_code);
                map2.put("refund_id", String.valueOf(map1.get("refund_id")));//微信退款订单号
                map2.put("refund_fee", String.valueOf(map1.get("refund_fee")));//退款金额
                return map2;
            }else{
            } else {
                map2.put("return_code", result_code);
                map2.put("return_msg", map1.get("err_code_des"));
                return map2;
            }
        }else{
        } else {
            map2.put("return_code", return_code);
            map2.put("return_msg", map1.get("return_msg"));
            return map2;
@@ -809,20 +812,21 @@
    /**
     * 微信退款成功后的回调处理
     *
     * @param request
     * @return
     */
    public Map<String, String> wxRefundCallback(HttpServletRequest request){
    public Map<String, String> wxRefundCallback(HttpServletRequest request) {
        try {
            String param = this.getParam(request);
            param = param.replaceAll("<!\\[CDATA\\[","");
            param = param.replaceAll("<!\\[CDATA\\[", "");
            param = param.replaceAll("]]>", "");
            Map<String, String> map = this.xmlToMap(param, "UTF-8");
            String return_code = map.get("return_code");
            if("SUCCESS".equals(return_code)){
            if ("SUCCESS".equals(return_code)) {
                String req_info = map.get("req_info");//加密信息请用商户秘钥进行解密
                String s = this.wxDecrypt(req_info);
                s = s.replaceAll("<!\\[CDATA\\[","");
                s = s.replaceAll("<!\\[CDATA\\[", "");
                s = s.replaceAll("]]>", "");
                map = this.xmlToMap(s, "UTF-8");
                Map<String, String> map1 = new HashMap<>();
@@ -831,7 +835,7 @@
                String result = "<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>";
                map1.put("result", result);
                return map1;
            }else{
            } else {
//                System.err.println(map.get("return_msg"));
            }
        } catch (IOException e) {
@@ -857,13 +861,14 @@
    /**
     * 支付宝退款
     * @param trade_no          支付宝交易号
     * @param refund_amount     退款金额
     *
     * @param trade_no      支付宝交易号
     * @param refund_amount 退款金额
     * @return
     * @throws AlipayApiException
     */
    public Map<String, String> aliRefund(String trade_no, String refund_amount) throws AlipayApiException {
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey,"json","UTF-8", alipay_public_key,"RSA2");
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2");
        AlipayTradeRefundRequest request = new AlipayTradeRefundRequest();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("trade_no", trade_no);
@@ -871,7 +876,7 @@
        request.setBizContent(jsonObject.toJSONString());
        AlipayTradeRefundResponse response = alipayClient.execute(request);
        Map<String, String> map = new HashMap<>();
        if(response.isSuccess()){
        if (response.isSuccess()) {
            System.out.println("调用成功");
            String outTradeNo = response.getOutTradeNo();
            map.put("code", response.getCode());//10000
@@ -888,10 +893,11 @@
    /**
     * 查询微信支付订单
     *
     * @return
     * @throws Exception
     */
    public ResultUtil<Map<String, String>> queryWXOrder(String out_trade_no, String transaction_id) throws Exception{
    public ResultUtil<Map<String, String>> queryWXOrder(String out_trade_no, String transaction_id) throws Exception {
        String url = "https://api.mch.weixin.qq.com/pay/orderquery";
        String nonce_str = UUIDUtil.getRandomCode(16);
        Map<String, Object> map = new HashMap<>();
@@ -912,7 +918,7 @@
        keys = strings.toArray(keys);
        Arrays.sort(keys);
        xmlString.append("<xml>");
        for(int l = 0; l < keys.length; l++){
        for (int l = 0; l < keys.length; l++) {
            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
        }
        xmlString.append("</xml>");
@@ -920,7 +926,7 @@
        Map<String, String> map1 = null;
        String body1 = HttpClientUtil.pushHttpRequsetXml(url, xmlString.toString(), new HashMap<>()).getData();
        //将结果xml解析成map
        body1 = body1.replaceAll("<!\\[CDATA\\[","");
        body1 = body1.replaceAll("<!\\[CDATA\\[", "");
        body1 = body1.replaceAll("]]>", "");
        try {
            map1 = this.xmlToMap(body1, "UTF-8");
@@ -930,35 +936,35 @@
            e.printStackTrace();
        }
        String return_code = map1.get("return_code");
        if("SUCCESS".equals(return_code)){
        if ("SUCCESS".equals(return_code)) {
            String result_code = map1.get("result_code");
            if("SUCCESS".equals(result_code)){
            if ("SUCCESS".equals(result_code)) {
                Map<String, String> map2 = new HashMap<>();
                map2.put("trade_type", map1.get("trade_type"));
                map2.put("trade_state", map1.get("trade_state"));//订单状态SUCCESS—支付成功,REFUND—转入退款,NOTPAY—未支付,CLOSED—已关闭,REVOKED—已撤销(刷卡支付),USERPAYING--用户支付中,PAYERROR--支付失败(其他原因,如银行返回失败)
                map2.put("transaction_id", map1.get("transaction_id"));
                return ResultUtil.success(map2);
            }else{
            } else {
                System.err.println(map1.get("err_code_des"));
                return ResultUtil.error(map1.get("err_code_des"));
            }
        }else{
        } else {
            System.err.println(map1.get("return_msg") + appid + "----" + mchId);
            return ResultUtil.error(map1.get("return_msg"));
        }
    }
    /**
     * 微信转账功能(企业付款到零钱)
     * @param openid                商户appid下,某用户的openid
     * @param desc                  企业付款备注,必填。
     * @param total_fee             企业付款金额
     * @param partner_trade_no      商户订单号,需保持唯一性
     *
     * @param openid           商户appid下,某用户的openid
     * @param desc             企业付款备注,必填。
     * @param total_fee        企业付款金额
     * @param partner_trade_no 商户订单号,需保持唯一性
     * @return
     */
    public Map<String, String> wxTransfers(String openid, String desc, String total_fee, String partner_trade_no) throws Exception{
    public Map<String, String> wxTransfers(String openid, String desc, String total_fee, String partner_trade_no) throws Exception {
        int amount = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue();
        String nonce_str = UUIDUtil.getRandomCode();
        Map<String, Object> map = new HashMap<>();
@@ -983,7 +989,7 @@
        keys = strings.toArray(keys);
        Arrays.sort(keys);
        xmlString.append("<xml>");
        for(int l = 0; l < keys.length; l++){
        for (int l = 0; l < keys.length; l++) {
            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
        }
        xmlString.append("</xml>");
@@ -991,7 +997,7 @@
        Map<String, String> map1 = null;
        String body1 = HttpClientUtil.pushHttpsRequsetXml(url, xmlString.toString(), new HashMap<>(), mchId, certPath, "PKCS12");
        //将结果xml解析成map
        body1 = body1.replaceAll("<!\\[CDATA\\[","");
        body1 = body1.replaceAll("<!\\[CDATA\\[", "");
        body1 = body1.replaceAll("]]>", "");
        try {
            map1 = this.xmlToMap(body1, "UTF-8");
@@ -1002,20 +1008,20 @@
        }
        String return_code = map1.get("return_code");
        Map<String, String> map2 = new HashMap<>();
        if("SUCCESS".equals(return_code)){
        if ("SUCCESS".equals(return_code)) {
            String result_code = map1.get("result_code");
            if("SUCCESS".equals(result_code)){
            if ("SUCCESS".equals(result_code)) {
                map2.put("return_code", result_code);
                map2.put("payment_no", String.valueOf(map1.get("payment_no")));//付款订单号
                map2.put("payment_time", String.valueOf(map1.get("payment_time")));//付款时间
                return map2;
            }else{
            } else {
                map2.put("return_code", result_code);
                map2.put("err_code", map1.get("err_code"));
                map2.put("err_code_des", map1.get("err_code_des"));
                return map2;
            }
        }else{
        } else {
            map2.put("return_code", return_code);
            map2.put("return_msg", map1.get("return_msg"));
            return map2;
@@ -1025,16 +1031,17 @@
    /**
     * 微信转账功能(企业付款到银行卡)
     * @param desc              备注信息
     * @param total_fee         转账金额
     * @param partner_trade_no  订单号
     * @param enc_bank_no       银行卡号
     * @param enc_true_name     收款方用户名
     * @param bankName          银行名称
     *
     * @param desc             备注信息
     * @param total_fee        转账金额
     * @param partner_trade_no 订单号
     * @param enc_bank_no      银行卡号
     * @param enc_true_name    收款方用户名
     * @param bankName         银行名称
     * @return
     * @throws Exception
     */
    public Map<String, String> wxPayBank(String desc, String total_fee, String partner_trade_no, String enc_bank_no, String enc_true_name, String bankName) throws Exception{
    public Map<String, String> wxPayBank(String desc, String total_fee, String partner_trade_no, String enc_bank_no, String enc_true_name, String bankName) throws Exception {
        int amount = new BigDecimal(total_fee).multiply(new BigDecimal("100")).intValue();
        String nonce_str = UUIDUtil.getRandomCode();
        Map<String, Object> map = new HashMap<>();
@@ -1059,7 +1066,7 @@
        keys = strings.toArray(keys);
        Arrays.sort(keys);
        xmlString.append("<xml>");
        for(int l = 0; l < keys.length; l++){
        for (int l = 0; l < keys.length; l++) {
            xmlString.append("<" + keys[l] + ">" + map.get(keys[l]) + "</" + keys[l] + ">");
        }
        xmlString.append("</xml>");
@@ -1067,7 +1074,7 @@
        Map<String, String> map1 = null;
        String body1 = HttpClientUtil.pushHttpsRequsetXml(url, xmlString.toString(), new HashMap<>(), mchId, certPath, "PKCS12");
        //将结果xml解析成map
        body1 = body1.replaceAll("<!\\[CDATA\\[","");
        body1 = body1.replaceAll("<!\\[CDATA\\[", "");
        body1 = body1.replaceAll("]]>", "");
        try {
            map1 = this.xmlToMap(body1, "UTF-8");
@@ -1078,20 +1085,20 @@
        }
        String return_code = map1.get("return_code");
        Map<String, String> map2 = new HashMap<>();
        if("SUCCESS".equals(return_code)){
        if ("SUCCESS".equals(return_code)) {
            String result_code = map1.get("result_code");
            if("SUCCESS".equals(result_code)){
            if ("SUCCESS".equals(result_code)) {
                map2.put("return_code", result_code);
                map2.put("payment_no", String.valueOf(map1.get("payment_no")));//付款订单号
                map2.put("cmms_amt", String.valueOf(map1.get("cmms_amt")));//手续费金额 RMB:分
                return map2;
            }else{
            } else {
                map2.put("return_code", result_code);
                map2.put("err_code", map1.get("err_code"));
                map2.put("err_code_des", map1.get("err_code_des"));
                return map2;
            }
        }else{
        } else {
            map2.put("return_code", return_code);
            map2.put("return_msg", map1.get("return_msg"));
            return map2;
@@ -1100,15 +1107,16 @@
    /**
     * 微信转账到银行卡不编号
     *
     * @param bankName
     * @return
     */
    public String findBankCode(String bankName){
    public String findBankCode(String bankName) {
        String json = "{\"工商银行 \":1002,\"农业银行\":1005,\"建设银行\":1003,\"中国银行\":1026,\"交通银行 \":1020,\"招商银行 \":1001,\"邮储银行\":1066,\"民生银行 \":1006,\"平安银行 \":1010,\"中信银行\":1021,\"浦发银行 \":1004,\"兴业银行 \":1009,\"光大银行 \":1022,\"广发银行\":1027,\"华夏银行\":1025,\"宁波银行\":1056,\"北京银行\":4836,\"上海银行\":1024,\"南京银行\":1054,\"长子县融汇村镇银行\":4755,\"长沙银行\":4216,\"浙江泰隆商业银行\":4051,\"中原银行 \":4753,\"企业银行(中国)\":4761,\"顺德农商银行 \":4036,\"衡水银行\":4752,\"长治银行\":4756,\"大同银行\":4767,\"河南省农村信用社\":4115,\"宁夏黄河农村商业银行\":4150,\"山西省农村信用社\":4156,\"安徽省农村信用社\":4166,\"甘肃省农村信用社\":4157,\"天津农村商业银行\":4153,\"广西壮族自治区农村信用社\":4113,\"陕西省农村信用社\":4108,\"深圳农村商业银行\":4076,\"宁波鄞州农村商业银行\":4052,\"浙江省农村信用社联合社\":4764,\"江苏省农村信用社联合社\":4217,\"江苏紫金农村商业银行股份有限公司 \":4072,\"北京中关村银行股份有限公司 \":4769,\"星展银行( 中国) 有限公司 \":4778,\"枣庄银行股份有限公司 \":4766,\"海口联合农村商业银行股份有限公司 \":4758,\"南洋商业银行( 中国) 有限公司 \":4763}";
        JSONObject jsonObject = JSON.parseObject(json);
        Set<String> strings = jsonObject.keySet();
        for(String key : strings){
            if(key.indexOf(bankName) >= 0){
        for (String key : strings) {
            if (key.indexOf(bankName) >= 0) {
                return jsonObject.getString(key);
            }
        }
@@ -1116,19 +1124,19 @@
    }
    /**
     * 支付宝转账
     * @param out_biz_no        商家侧唯一订单号,由商家自定义。对于不同转账请求,商家需保证该订单号在自身系统唯一。
     * @param trans_amount      订单总金额,单位为元,精确到小数点后两位
     * @param order_title       转账业务的标题,用于在支付宝用户的账单里显示
     * @param identity          参与方的唯一标识(收款方支付宝账号)
     * @param name              参与方真实姓名,如果非空,将校验收款支付宝账号姓名一致性。
     * @param remark            业务备注
     *
     * @param out_biz_no   商家侧唯一订单号,由商家自定义。对于不同转账请求,商家需保证该订单号在自身系统唯一。
     * @param trans_amount 订单总金额,单位为元,精确到小数点后两位
     * @param order_title  转账业务的标题,用于在支付宝用户的账单里显示
     * @param identity     参与方的唯一标识(收款方支付宝账号)
     * @param name         参与方真实姓名,如果非空,将校验收款支付宝账号姓名一致性。
     * @param remark       业务备注
     * @return
     * @throws Exception
     */
    public Map<String, Object> aliTransfer(String out_biz_no, Double trans_amount, String order_title, String identity, String name, String remark) throws Exception{
    public Map<String, Object> aliTransfer(String out_biz_no, Double trans_amount, String order_title, String identity, String name, String remark) throws Exception {
        CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
        certAlipayRequest.setServerUrl("https://openapi.alipay.com/gateway.do");  //gateway:支付宝网关(固定)https://openapi.alipay.com/gateway.do
        certAlipayRequest.setAppId(aliAppid);  //APPID 即创建应用后生成,详情见创建应用并获取 APPID
@@ -1156,13 +1164,13 @@
                "}");
        AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request);
        Map<String, Object> map = new HashMap<>();
        if(response.isSuccess()){
        if (response.isSuccess()) {
            String status = response.getStatus();
            if(status.equals("SUCCESS")){//成功
            if (status.equals("SUCCESS")) {//成功
                map.put("code", response.getCode());
                map.put("order_id", response.getOrderId());//支付宝订单号
                map.put("pay_fund_order_id", response.getPayFundOrderId());//支付宝流水号
            }else{
            } else {
                map.put("code", response.getCode());
                map.put("sub_msg", response.getSubMsg());
            }
@@ -1176,6 +1184,7 @@
    /**
     * 获取请求内容
     *
     * @param request
     * @return
     * @throws IOException
@@ -1198,10 +1207,11 @@
    /**
     * 微信下单的签名算法
     *
     * @param map
     * @return
     */
    private String weixinSignature(Map<String, Object> map){
    private String weixinSignature(Map<String, Object> map) {
        try {
            Set<Map.Entry<String, Object>> entries = map.entrySet();
            List<Map.Entry<String, Object>> infoIds = new ArrayList<Map.Entry<String, Object>>(entries);
@@ -1234,10 +1244,11 @@
    /**
     * 微信下单的签名算法
     *
     * @param map
     * @return
     */
    private String weixinSignature(Map<String, Object> map, String key_){
    private String weixinSignature(Map<String, Object> map, String key_) {
        try {
            Set<Map.Entry<String, Object>> entries = map.entrySet();
            List<Map.Entry<String, Object>> infoIds = new ArrayList<Map.Entry<String, Object>>(entries);
@@ -1270,6 +1281,7 @@
    /**
     * 微信退款成功后的解密
     *
     * @param req_info
     * @return
     */
@@ -1277,7 +1289,7 @@
            InvalidKeyException, BadPaddingException, IllegalBlockSizeException {
        byte[] decode = Base64.getDecoder().decode(req_info);
        String sign = MD5AndKL.MD5Encode(key, "UTF-8").toLowerCase();
        if (Security.getProvider("BC") == null){
        if (Security.getProvider("BC") == null) {
            Security.addProvider(new BouncyCastleProvider());
        }
        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");
@@ -1303,6 +1315,7 @@
    /**
     * xml转map
     *
     * @param xml
     * @param charset
     * @return
@@ -1320,7 +1333,7 @@
        return respMap;
    }
    public static Map<String, String> xmlToMap(Element tmpElement, Map<String, String> respMap){
    public static Map<String, String> xmlToMap(Element tmpElement, Map<String, String> respMap) {
        if (tmpElement.isTextOnly()) {
            respMap.put(tmpElement.getName(), tmpElement.getText());
            return respMap;
cloud-server-account/src/main/java/com/dsh/account/util/RedisUtil.java
@@ -25,11 +25,12 @@
    /**
     * 向redis中存储字符串没有过期时间
     * Storing strings in Redis without an expiration time.
     *
     * @param key
     * @param value
     */
    public void setStrValue(String key, String value){
        if(StringUtil.isNotEmpty(key)){
    public void setStrValue(String key, String value) {
        if (StringUtil.isNotEmpty(key)) {
            Jedis resource = jedisPool.getResource();
            String set = resource.set(key, value);
            closeJedis(resource);
@@ -40,12 +41,13 @@
    /**
     * 以分钟为单位设置存储值(设置过期时间)
     * Set storage value in minutes (set expiration time) as units.
     *
     * @param key
     * @param value
     * @param time 秒
     * @param time  秒
     */
    public void setStrValue(String key, String value, int time){
        if(StringUtil.isNotEmpty(key)){
    public void setStrValue(String key, String value, int time) {
        if (StringUtil.isNotEmpty(key)) {
            Jedis resource = jedisPool.getResource();
            String setex = resource.setex(key, time, value);
            closeJedis(resource);
@@ -55,11 +57,12 @@
    /**
     * 从redis中获取值
     *
     * @param key
     * @return
     */
    public String getValue(String key){
        if(StringUtil.isNotEmpty(key)){
    public String getValue(String key) {
        if (StringUtil.isNotEmpty(key)) {
            Jedis resource = jedisPool.getResource();
            String data = resource.get(key);
            closeJedis(resource);
@@ -71,14 +74,15 @@
    /**
     * 批量获取
     *
     * @param kes
     * @return
     */
    public List<Object> getValues(List<String> kes){
        if(null != kes){
    public List<Object> getValues(List<String> kes) {
        if (null != kes) {
            Jedis resource = jedisPool.getResource();
            Pipeline pipelined = resource.pipelined();
            for(String key : kes){
            for (String key : kes) {
                pipelined.get(key);
            }
            List<Object> list = pipelined.syncAndReturnAll();
@@ -91,8 +95,8 @@
                e.printStackTrace();
            }
            List<Object> data = new ArrayList<>();
            for(Object o : list){
                if(null != o){
            for (Object o : list) {
                if (null != o) {
                    data.add(o);
                }
            }
@@ -104,10 +108,11 @@
    /**
     * 删除key
     *
     * @param key
     */
    public void remove(String key){
        if(StringUtil.isNotEmpty(key)){
    public void remove(String key) {
        if (StringUtil.isNotEmpty(key)) {
            Jedis resource = jedisPool.getResource();
            Long del = resource.del(key);
            closeJedis(resource);
@@ -117,10 +122,11 @@
    /**
     * 删除资源
     *
     * @param jedis
     */
    public void closeJedis(Jedis jedis){
        if(null != jedis){
    public void closeJedis(Jedis jedis) {
        if (null != jedis) {
            jedis.close();
        }
    }
cloud-server-account/src/main/java/com/dsh/account/util/ResultUtil.java
@@ -37,7 +37,6 @@
    private T data;//返回数据
    public String getMsg() {
        return msg;
    }
@@ -63,130 +62,144 @@
    }
    public static <T> ResultUtil<T> getResult(Integer code, String msg){
    public static <T> ResultUtil<T> getResult(Integer code, String msg) {
        return new ResultUtil<>(code, msg);
    }
    public static <T> ResultUtil<T> getResult(Integer code, String msg, T data){
    public static <T> ResultUtil<T> getResult(Integer code, String msg, T data) {
        return new ResultUtil<>(code, msg, data);
    }
    /**
     * 错误信息
     *
     * @return
     */
    public static ResultUtil error(String mag){
    public static ResultUtil error(String mag) {
        return ResultUtil.getResult(ResultUtil.ERROR, mag, new JSONObject());
    }
    /**
     * 错误信息
     *
     * @return
     */
    public static <T> ResultUtil <T> error(String mag, T obj){
    public static <T> ResultUtil<T> error(String mag, T obj) {
        return ResultUtil.getResult(ResultUtil.ERROR, mag, obj);
    }
    public static <T> ResultUtil <T> errorCode(String mag, T obj){
    public static <T> ResultUtil<T> errorCode(String mag, T obj) {
        return ResultUtil.getResult(501, mag, obj);
    }
    /**
     * token失效
     *
     * @return
     */
    public static ResultUtil tokenErr(){
    public static ResultUtil tokenErr() {
        return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, ResultUtil.Token, new JSONObject());
    }
    /**
     * token失效
     *
     * @return
     */
    public static ResultUtil tokenErr(String msg){
    public static ResultUtil tokenErr(String msg) {
        return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, msg, new JSONObject());
    }
    /**
     * 参数异常
     *
     * @return
     */
    public static  ResultUtil paranErr(String ages){
    public static ResultUtil paranErr(String ages) {
        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "【" + ages + "】参数异常", new JSONObject());
    }
    /**
     * 参数异常
     *
     * @return
     */
    public static <T> ResultUtil<T> paranErr(T data){
    public static <T> ResultUtil<T> paranErr(T data) {
        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "PARAM_ERROR", data);
    }
    /**
     * 运行异常
     *
     * @return
     */
    public static ResultUtil runErr(){
    public static ResultUtil runErr() {
        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", new JSONObject());
    }
    /**
     * 运行异常
     *
     * @return
     */
    public static <T>ResultUtil<T> runErr(T data){
    public static <T> ResultUtil<T> runErr(T data) {
        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", data);
    }
    /**
     * 运行异常
     *
     * @return
     */
    public static <T>ResultUtil<T> runErr(T data, String msg){
    public static <T> ResultUtil<T> runErr(T data, String msg) {
        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, msg, data);
    }
    /**
     * 返回成功
     *
     * @param
     * @return
     */
    public static ResultUtil success(){
    public static ResultUtil success() {
        return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", new JSONObject());
    }
    /**
     * 返回成功
     *
     * @param data
     * @param <T>
     * @return
     */
    public static <T> ResultUtil<T> success(T data){
    public static <T> ResultUtil<T> success(T data) {
        return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", data);
    }
    /**
     * 返回成功
     *
     * @param msg
     * @param data
     * @param <T>
     * @return
     */
    public static <T> ResultUtil<T> success(String msg, T data){
    public static <T> ResultUtil<T> success(String msg, T data) {
        return ResultUtil.getResult(ResultUtil.SUCCESS, msg, data);
    }
    /**
     * 签名无效
     *
     * @param <T>
     * @return
     */
    public static <T> ResultUtil<T> sign(){
    public static <T> ResultUtil<T> sign() {
        return ResultUtil.getResult(ResultUtil.SIGN_ERROR, SIGN);
    }
cloud-server-account/src/main/java/com/dsh/account/util/StrUtils.java
@@ -9,10 +9,11 @@
    /**
     * 把逗号分隔的字符串转换字符串数组
     * Convert comma-separated string to string array.
     *
     * @param str
     * @return
     */
    public static String[] splitStr2StrArr(String str,String split) {
    public static String[] splitStr2StrArr(String str, String split) {
        if (str != null && !str.equals("")) {
            return str.split(split);
        }
@@ -27,7 +28,7 @@
     * @return
     */
    public static List<Long> splitStr2LongArr(String str) {
        String[] strings = splitStr2StrArr(str,",");
        String[] strings = splitStr2StrArr(str, ",");
        if (strings == null) return null;
        List<Long> result = new ArrayList<>();
@@ -37,14 +38,15 @@
        return result;
    }
    /**
     * 把逗号分隔字符串转换List的Long
     *
     * @param str
     * @return
     */
    public static List<Long> splitStr2LongArr(String str,String split) {
        String[] strings = splitStr2StrArr(str,split);
    public static List<Long> splitStr2LongArr(String str, String split) {
        String[] strings = splitStr2StrArr(str, split);
        if (strings == null) return null;
        List<Long> result = new ArrayList<>();
@@ -77,18 +79,19 @@
        }
        return sb.toString();
    }
    public static String getClassCodeString(int length) {
        String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++) {
            int number =random.nextInt(36);
            int number = random.nextInt(36);
            sb.append(str.charAt(number));
        }
        return sb.toString();
    }
    public static String convertPropertiesToHtml(String properties){
    public static String convertPropertiesToHtml(String properties) {
        //1:容量:6:32GB_4:样式:12:塑料壳
        StringBuilder sBuilder = new StringBuilder();
        String[] propArr = properties.split("_");
cloud-server-account/src/main/java/com/dsh/account/util/StudyTimeUtil.java
@@ -14,7 +14,7 @@
    }
    /**
     * 获取两个时间的间隔(秒)Obtain the time difference between two instances (in seconds).
     * 获取两个时间的间隔(秒)Obtain the time difference between two instances (in seconds).
     *
     * @param startDate 开始的时间
     * @return 返回当前时间与开始时间的相差天数
@@ -24,7 +24,7 @@
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        long startDateTime = dateFormat.parse(dateFormat.format(startDate)).getTime();
        long endDateTime = dateFormat.parse(dateFormat.format(endDate)).getTime();
        int days = (int)((endDateTime - startDateTime)  / (1000 * 3600 * 24));
        int days = (int) ((endDateTime - startDateTime) / (1000 * 3600 * 24));
        return days;
    }
cloud-server-account/src/main/java/com/dsh/account/util/TaskUtil.java
@@ -21,7 +21,7 @@
     * 每隔一分钟去处理的定时任务
     */
    @Scheduled(fixedRate = 1000 * 60)
    public void taskMinute(){
    public void taskMinute() {
        try {
        } catch (Exception e) {
            e.printStackTrace();
@@ -33,10 +33,10 @@
     * 每天的凌晨执行的任务
     */
    @Scheduled(cron = "0 0 0 * * *")
    public void taskDay(){
    public void taskDay() {
        try {
            appUserService.membershipEnd();
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
cloud-server-account/src/main/java/com/dsh/account/util/TokenUtil.java
@@ -22,14 +22,14 @@
            requestHeader = requestHeader.substring(requestHeader.indexOf(" ") + 1);
            String key = null;
            int length = requestHeader.length();
            if(length > 32){
            if (length > 32) {
                key = requestHeader.substring(length - 32);
            }else{
            } else {
                key = requestHeader;
            }
            String value = redisUtil.getValue(key);
            return null != value ? Integer.valueOf(value) : null;
        }else{
        } else {
            return null;
        }
    }
cloud-server-account/src/main/java/com/dsh/account/util/ToolUtil.java
@@ -16,8 +16,6 @@
package com.dsh.account.util;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -388,7 +386,7 @@
     * map的key转为小写
     *
     * @param map
     * @return Map<String , Object>
     * @return Map<String   ,   Object>
     */
    public static Map<String, Object> caseInsensitiveMap(Map<String, Object> map) {
        Map<String, Object> tempMap = new HashMap<>();
@@ -468,7 +466,6 @@
    public static String currentTime() {
        return DateUtil.getTime();
    }
    /**
cloud-server-account/src/main/java/com/dsh/account/util/UUIDUtil.java
@@ -1,7 +1,6 @@
package com.dsh.account.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
@@ -16,51 +15,54 @@
    /**
     * 定义生成原生的UUID随机码
     *
     * @return
     */
    public static String getNativeUUID(){
    public static String getNativeUUID() {
        return UUID.randomUUID().toString();
    }
    /**
     * 生成32位随机码
     *
     * @return
     */
    public static String getRandomCode(){
    public static String getRandomCode() {
        return UUIDUtil.getNativeUUID().replaceAll("-", "");
    }
    /**
     * 获取给定长度的随机码
     *
     * @param num
     * @return
     * @throws Exception
     */
    public static String getRandomCode(Integer num) throws Exception{
    public static String getRandomCode(Integer num) throws Exception {
        String str = null;
        if(0 < num){
            if(num % 32 > 0){
        if (0 < num) {
            if (num % 32 > 0) {
                Integer s = num / 32;
                Integer l = num % 32;
                StringBuffer sb = new StringBuffer();
                for(int i = 0; i < s; i++){
                for (int i = 0; i < s; i++) {
                    sb.append(UUIDUtil.getRandomCode());
                }
                sb.append(UUIDUtil.getRandomCode().substring(0, l));
                str = sb.toString();
            }else if(num % 32 == 0){
            } else if (num % 32 == 0) {
                Integer s = num / 32;
                StringBuffer sb = new StringBuffer();
                for(int i = 0; i < s; i++){
                for (int i = 0; i < s; i++) {
                    sb.append(UUIDUtil.getRandomCode());
                }
                str = sb.toString();
            }else{
            } else {
                str = UUIDUtil.getRandomCode().substring(0, num);
            }
        }else{
        } else {
            throw new Exception("参数只能大于0");
        }
        return str;
@@ -69,9 +71,10 @@
    /**
     * 获取根据当前时间的字符串数据
     *
     * @return
     */
    public synchronized static String getTimeStr(){
    public synchronized static String getTimeStr() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmssS");
        return simpleDateFormat.format(new Date());
    }
@@ -85,17 +88,16 @@
     * @Return
     * @Exception
     */
    public static String getNumberRandom(Integer num){
        if(null == num){
    public static String getNumberRandom(Integer num) {
        if (null == num) {
            num = 32;
        }
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i < num; i++){
        for (int i = 0; i < num; i++) {
            sb.append(Double.valueOf(Math.random() * 10).intValue());
        }
        return sb.toString();
    }
}
cloud-server-account/src/main/java/com/dsh/account/util/akeylogin/SignUtil.java
@@ -12,7 +12,7 @@
        }
        //排序参数
        Map<String, Object> mappingList = new TreeMap<>(data);
        StringBuilder plainText= new StringBuilder();
        StringBuilder plainText = new StringBuilder();
        mappingList.forEach((k, v) -> {
            if (!"sign".equals(k) && !BaseUtils.isEmpty(v)) {
                plainText.append(String.format("%s=%s&", k, v));
cloud-server-account/src/main/java/com/dsh/account/util/httpClinet/HttpClientUtil.java
@@ -52,14 +52,14 @@
    /**
     * 创建一个httpClient对象
     */
    private static CloseableHttpClient getHttpCline(){
        return  HttpClients.custom()
    private static CloseableHttpClient getHttpCline() {
        return HttpClients.custom()
                .setConnectionManager(connectionManager)
                .disableAutomaticRetries()
                .build();
    }
    private static RequestConfig getRequestConfig(){
    private static RequestConfig getRequestConfig() {
        RequestConfig.Builder builder = RequestConfig.custom();
        builder.setSocketTimeout(60000)//3.1设置客户端等待服务端返回数据的超时时间
                .setConnectTimeout(30000)//3.2设置客户端发起TCP连接请求的超时时间
@@ -69,34 +69,34 @@
    }
    /**
     * 创建一个POST请求实例
     * @param url       请求地址
     * @param params    请求参数
     *
     * @param url    请求地址
     * @param params 请求参数
     */
    public static CloseableHttpResponse setPostHttpRequset(String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception{
    public static CloseableHttpResponse setPostHttpRequset(String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception {
        HttpPost httpPost = new HttpPost(url);
        httpPost.setConfig(getRequestConfig());
        if(null != header){
            for(String key : header.keySet()){
        if (null != header) {
            for (String key : header.keySet()) {
                httpPost.setHeader(key, header.get(key));
            }
        }
        List<NameValuePair> list = new ArrayList<>();
        if(null != params){
        if (null != params) {
            Set<String> keys = params.keySet();
            for(String key : keys){
            for (String key : keys) {
                list.add(new BasicNameValuePair(key, null == params.get(key) ? null : params.get(key).toString()));
            }
        }
        switch (contentType){
        switch (contentType) {
            case "form":
                httpPost.setEntity(new UrlEncodedFormEntity(list, "UTF-8"));
                break;
            case "json":
                ObjectMapper objectMapper = new ObjectMapper();
                String s =objectMapper.writeValueAsString(params);
                String s = objectMapper.writeValueAsString(params);
                httpPost.setEntity(new StringEntity(s, ContentType.create(ContentType.APPLICATION_JSON.getMimeType(), Charset.forName("UTF-8"))));
                break;
        }
@@ -106,23 +106,24 @@
    /**
     * 获取get请求实例
     * @param url       请求地址
     * @param params    请求参数
     *
     * @param url    请求地址
     * @param params 请求参数
     */
    private static CloseableHttpResponse setGetHttpRequset(String url, Map<String, Object> params, Map<String, String> header) throws Exception{
    private static CloseableHttpResponse setGetHttpRequset(String url, Map<String, Object> params, Map<String, String> header) throws Exception {
        StringBuffer sb = new StringBuffer();
        String p = "";
        if(null != params){
        if (null != params) {
            Set<String> keys = params.keySet();
            for(String key : keys){
            for (String key : keys) {
                sb.append(key + "=" + params.get(key) + "&");
            }
            p = "?" + sb.substring(0, sb.length() - 1);
        }
        HttpGet httpGet = new HttpGet(url + p);
        httpGet.setConfig(getRequestConfig());
        if(null != header){
            for(String key : header.keySet()){
        if (null != header) {
            for (String key : header.keySet()) {
                httpGet.setHeader(key, header.get(key));
            }
        }
@@ -132,19 +133,20 @@
    /**
     * 发送http请求
     * @param mothed        "GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS"
     * @param url           请求地址
     * @param params        请求参数
     * @param header        请求头
     * @param contentType   参数请求方式form/json
     *
     * @param mothed      "GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS"
     * @param url         请求地址
     * @param params      请求参数
     * @param header      请求头
     * @param contentType 参数请求方式form/json
     * @return
     */
    public static HttpResult pushHttpRequset(String mothed, String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception{
    public static HttpResult pushHttpRequset(String mothed, String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception {
        String randome = UUID.randomUUID().toString();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
        logger.info(sdf.format(new Date()) + "----(" + randome + ")请求参数:" + JSON.toJSONString(params));
        CloseableHttpResponse httpResponse = null;
        switch (mothed){
        switch (mothed) {
            case "GET":
                httpResponse = setGetHttpRequset(url, params, header);
                break;
@@ -163,15 +165,16 @@
    /**
     * 发送XML请求
     * @param url       请求地址
     * @param xml       XML数据
     * @param header    自定义请求头
     *
     * @param url    请求地址
     * @param xml    XML数据
     * @param header 自定义请求头
     * @return
     */
    public static HttpResult pushHttpRequsetXml(String url, String xml, Map<String, String> header) throws Exception{
    public static HttpResult pushHttpRequsetXml(String url, String xml, Map<String, String> header) throws Exception {
        HttpPost httpPost = new HttpPost(url);
        httpPost.setConfig(getRequestConfig());
        for(String key : header.keySet()){
        for (String key : header.keySet()) {
            httpPost.setHeader(key, header.get(key));
        }
        httpPost.setHeader("Content-Type", "application/xml");
@@ -185,21 +188,21 @@
    }
    /**
     * 请求https发送XML请求
     * @param url           接口路径
     * @param xml           内容
     * @param header        请求头
     * @param certPassword      证书密码
     * @param certPath      证书路径
     * @param certType      证书类型
     *
     * @param url          接口路径
     * @param xml          内容
     * @param header       请求头
     * @param certPassword 证书密码
     * @param certPath     证书路径
     * @param certType     证书类型
     * @return
     * @throws Exception
     */
    public static String pushHttpsRequsetXml(String url, String xml, Map<String, String> header, String certPassword, String certPath, String certType) throws Exception{
    public static String pushHttpsRequsetXml(String url, String xml, Map<String, String> header, String certPassword, String certPath, String certType) throws Exception {
        HttpPost httpPost = new HttpPost(url);
        for(String key : header.keySet()){
        for (String key : header.keySet()) {
            httpPost.setHeader(key, header.get(key));
        }
        httpPost.setHeader("Content-Type", "application/xml");
@@ -207,9 +210,9 @@
        CloseableHttpClient httpCline = initCert(certPassword, certPath, certType);
        CloseableHttpResponse httpResponse = httpCline.execute(httpPost);
        String content = null;
        if(httpResponse.getStatusLine().getStatusCode() == 200){
        if (httpResponse.getStatusLine().getStatusCode() == 200) {
            content = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
        }else{
        } else {
            content = "返回状态码:" + httpResponse.getStatusLine() + "。" + EntityUtils.toString(httpResponse.getEntity());
        }
        close(httpResponse);
@@ -220,9 +223,10 @@
    /**
     * 初始化https对象(带证书)
     * @param key       证书密码
     * @param certPath  证书路径
     * @param certType  证书类型
     *
     * @param key      证书密码
     * @param certPath 证书路径
     * @param certType 证书类型
     * @throws Exception
     */
    private static CloseableHttpClient initCert(String key, String certPath, String certType) throws Exception {
@@ -235,30 +239,29 @@
        }
        SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, key.toCharArray()).build();
        SSLConnectionSocketFactory sslsf =
                new SSLConnectionSocketFactory(sslcontext, new String[] {"TLSv1"}, null,
                new SSLConnectionSocketFactory(sslcontext, new String[]{"TLSv1"}, null,
                        SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
        return HttpClients.custom().setSSLSocketFactory(sslsf).build();
    }
    /**
     * 关闭资源
     */
    private static void close(CloseableHttpResponse httpResponse){
    private static void close(CloseableHttpResponse httpResponse) {
        try {
            if(null != httpResponse){
            if (null != httpResponse) {
                EntityUtils.consume(httpResponse.getEntity());//此处高能,通过源码分析,由EntityUtils是否回收HttpEntity
                httpResponse.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
        } finally {
            try {
                if(null != httpResponse){
                if (null != httpResponse) {
                    httpResponse.close();
                }
            }catch (Exception e){
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
cloud-server-account/src/main/java/com/dsh/account/util/httpClinet/HttpResult.java
@@ -18,11 +18,12 @@
    /**
     * 返回封装结果
     *
     * @param code
     * @param data
     * @return
     */
    public static HttpResult getHttpResult(Integer code, String data){
    public static HttpResult getHttpResult(Integer code, String data) {
        HttpResult httpResult = new HttpResult();
        httpResult.setCode(code);
        httpResult.setData(data);
cloud-server-account/src/main/java/com/dsh/account/util/weChat/AES.java
@@ -11,10 +11,11 @@
import java.security.*;
/**
* AES加密
* @author pzb
* @Date 2021/12/3 15:43
*/
 * AES加密
 *
 * @author pzb
 * @Date 2021/12/3 15:43
 */
public class AES {
    public static boolean initialized = false;
@@ -22,8 +23,7 @@
    /**
     * AES解密
     *
     * @param content
     *            密文
     * @param content 密文
     * @return
     * @throws InvalidAlgorithmParameterException
     * @throws NoSuchProviderException
cloud-server-account/src/main/java/com/dsh/account/util/weChat/WXCore.java
@@ -8,21 +8,21 @@
    private static final String WATERMARK = "watermark";
    @Value("${wx.appletsAppid}")
    private static String appid ;
    private static String appid;
    /**
     * 解密数据
     *
     * @return
     * @throws Exception
     */
    public static String decrypt(String encryptedData, String sessionKey, String iv){
    public static String decrypt(String encryptedData, String sessionKey, String iv) {
        String result = "";
        try {
            AES aes = new AES();
            byte[] resultByte = aes.decrypt(Base64.decodeBase64(encryptedData), Base64.decodeBase64(sessionKey), Base64.decodeBase64(iv));
            if(null != resultByte && resultByte.length > 0){
            if (null != resultByte && resultByte.length > 0) {
                result = new String(WxPKCS7Encoder.decode(resultByte), "UTF-8");
//                JSONObject jsonObject = JSON.parseObject(result);
//                String decryptAppid = jsonObject.getJSONObject(WATERMARK).getString("appid");
cloud-server-account/src/main/java/com/dsh/account/util/weChat/WeChatUtil.java
@@ -32,7 +32,7 @@
    @Value("${wx.appletsAppSecret}")
    private String wxAppletsAppSecret;
//    @Value("${wx.officialAccountAppid}")
    //    @Value("${wx.officialAccountAppid}")
    private String officialAccountAppid;
    @Value("{wx.officialAccountAppSecret}")
@@ -50,35 +50,36 @@
    /**
     * 小程序使用jscode获取openid
     *
     * @param jscode
     * @return
     */
    public Map<String, Object> code2Session(String jscode) throws Exception{
    public Map<String, Object> code2Session(String jscode) throws Exception {
        String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret
                + "&js_code=" + jscode + "&grant_type=authorization_code";
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
        if(null == httpResult || httpResult.getCode() != 200){
        if (null == httpResult || httpResult.getCode() != 200) {
            return null;
        }
        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
        int errcode = jsonObject.getIntValue("errcode");
        Map<String, Object> map = new HashMap<>();
        map.put("errcode", errcode);
        if(errcode == 0){//成功
        if (errcode == 0) {//成功
            map.put("openid", jsonObject.getString("openid"));
            map.put("sessionKey", jsonObject.getString("session_key"));
            map.put("unionid", jsonObject.getString("unionid"));
            return map;
        }
        if(errcode == -1){//系统繁忙,此时请开发者稍候再试
        if (errcode == -1) {//系统繁忙,此时请开发者稍候再试
            map.put("msg", jsonObject.getString("errmsg"));
            return map;
        }
        if(errcode == 40029){//code 无效
        if (errcode == 40029) {//code 无效
            map.put("msg", jsonObject.getString("errmsg"));
            return map;
        }
        if(errcode == 45011){//频率限制,每个用户每分钟100次
        if (errcode == 45011) {//频率限制,每个用户每分钟100次
            map.put("msg", jsonObject.getString("errmsg"));
            return map;
        }
@@ -88,12 +89,13 @@
    /**
     * 获取微信小程序token
     *
     * @return
     */
    public String getWxAppletsAccessToken() throws Exception{
    public String getWxAppletsAccessToken() throws Exception {
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret;
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
        if(httpResult.getCode() != 200){
        if (httpResult.getCode() != 200) {
            return "";
        }
        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
@@ -103,34 +105,35 @@
    /**
     * 网站应用登录
     *
     * @param code
     * @return
     */
    public Map<String, String> webAccessToken(String code) throws Exception{
    public Map<String, String> webAccessToken(String code) throws Exception {
        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + webAppId + "&secret=" + webAppSecret + "&code=" + code + "&grant_type=authorization_code";
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
        if(httpResult.getCode() != 200){
        if (httpResult.getCode() != 200) {
            return null;
        }
        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
        int errcode = jsonObject.getIntValue("errcode");
        Map<String, String> map = new HashMap<>();
        if(errcode == 0){//成功
        if (errcode == 0) {//成功
            map.put("access_token", jsonObject.getString("access_token"));
            map.put("openid", jsonObject.getString("openid"));
            map.put("refresh_token", jsonObject.getString("refresh_token"));
            map.put("unionid", jsonObject.getString("unionid"));
            return map;
        }
        if(errcode == -1){//系统繁忙,此时请开发者稍候再试
        if (errcode == -1) {//系统繁忙,此时请开发者稍候再试
            map.put("msg", jsonObject.getString("errmsg"));
            return map;
        }
        if(errcode == 40029){//code 无效
        if (errcode == 40029) {//code 无效
            map.put("msg", jsonObject.getString("errmsg"));
            return map;
        }
        if(errcode == 45011){//频率限制,每个用户每分钟100次
        if (errcode == 45011) {//频率限制,每个用户每分钟100次
            map.put("msg", jsonObject.getString("errmsg"));
            return map;
        }
@@ -140,35 +143,36 @@
    /**
     * 获取微信个人信息
     *
     * @param access_token
     * @param openid
     * @return
     */
    public Map<String, Object> getUserInfo(String access_token, String openid) throws Exception{
    public Map<String, Object> getUserInfo(String access_token, String openid) throws Exception {
        String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid;
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
        if(httpResult.getCode() != 200){
        if (httpResult.getCode() != 200) {
            return null;
        }
        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
        int errcode = jsonObject.getIntValue("errcode");
        Map<String, Object> map = new HashMap<>();
        if(errcode == 0){//成功
        if (errcode == 0) {//成功
            map.put("nickname", jsonObject.getString("nickname"));
            map.put("openid", jsonObject.getString("openid"));
            map.put("sex", jsonObject.getString("sex"));
            map.put("headimgurl", jsonObject.getString("headimgurl"));
            return map;
        }
        if(errcode == -1){//系统繁忙,此时请开发者稍候再试
        if (errcode == -1) {//系统繁忙,此时请开发者稍候再试
            map.put("msg", jsonObject.getString("errmsg"));
            return map;
        }
        if(errcode == 40029){//code 无效
        if (errcode == 40029) {//code 无效
            map.put("msg", jsonObject.getString("errmsg"));
            return map;
        }
        if(errcode == 45011){//频率限制,每个用户每分钟100次
        if (errcode == 45011) {//频率限制,每个用户每分钟100次
            map.put("msg", jsonObject.getString("errmsg"));
            return map;
        }
@@ -178,18 +182,19 @@
    /**
     * 公众号获取openid
     *
     * @param code
     * @return
     */
    public Map<String,Object> getOpenId(String code) throws Exception{
    public Map<String, Object> getOpenId(String code) throws Exception {
        if (code == null || code.length() == 0) {
            return null;
        }
        String grantType = "authorization_code";
        String params = "appid=" + officialAccountAppid + "&secret=" + officialAccountAppSecret + "&code=" + code + "&grant_type=" + grantType;
        System.out.println("sssss"+params);
        System.out.println("sssss" + params);
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", "https://api.weixin.qq.com/sns/oauth2/access_token?" + params, null, null, "form");
        if(httpResult.getCode() != 200){
        if (httpResult.getCode() != 200) {
            return null;
        }
        JSONObject json = JSON.parseObject(httpResult.getData());
@@ -199,9 +204,9 @@
        Integer expiresIn = json.getInteger("expires_in");
        String refresh_token = json.getString("refresh_token");
        String unionid = json.getString("unionid");
        Map<String,Object> map=new HashMap<>();
        map.put("openId",openId);
        map.put("accessToken",accessToken);
        Map<String, Object> map = new HashMap<>();
        map.put("openId", openId);
        map.put("accessToken", accessToken);
        map.put("expiresIn", expiresIn);
        map.put("refreshToken", refresh_token);
        map.put("unionid", unionid);
@@ -214,11 +219,11 @@
     * 来源www.vxzsk.com
     * @return
     */
    public String getAccessToken() throws Exception{
    public String getAccessToken() throws Exception {
        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + officialAccountAppid
                + "&secret=" + officialAccountAppSecret;
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
        if(httpResult.getCode() != 200){
        if (httpResult.getCode() != 200) {
            return null;
        }
        String accessToken = JSONObject.parseObject(httpResult.getData()).getString("access_token");
@@ -230,25 +235,26 @@
     * 来源 www.vxzsk.com
     * @return
     */
    public String getJSApiTicket() throws Exception{
    public String getJSApiTicket() throws Exception {
        //获取token
        String acess_token= this.getAccessToken();
        String acess_token = this.getAccessToken();
        String urlStr = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + acess_token + "&type=jsapi";
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", urlStr, null, null, "form");
        if(httpResult.getCode() != 200){
        if (httpResult.getCode() != 200) {
            return null;
        }
        System.out.println(httpResult.getData());
        String ticket = JSONObject.parseObject(httpResult.getData()).getString("ticket");
        return  ticket;
        return ticket;
    }
    /**
     * 通过config接口注入权限验证配置(公众号)
     * 附录1-JS-SDK使用权限签名算法,
     *
     * @return
     */
    public Map<String,Object> getSignatureConfig(String url) throws Exception{
    public Map<String, Object> getSignatureConfig(String url) throws Exception {
        //获取token
        try {
            url = URLDecoder.decode(url, "UTF-8");
@@ -260,25 +266,26 @@
        Long timestamp = System.currentTimeMillis();
        String content = "jsapi_ticket=" + ticket + "&noncestr=" + noncestr + "&timestamp=" + timestamp + "&url=" + url;
        String signature = DigestUtils.sha1Hex(content);
        Map<String,Object> map=new HashMap<>();
        Map<String, Object> map = new HashMap<>();
        map.put("appId", officialAccountAppid);
        map.put("timestamp", timestamp);
        map.put("nonceStr", noncestr);
        map.put("signature", signature);
        return  map;
        return map;
    }
    /**
     * 公众号获取用户个人信息
     *
     * @param access_token
     * @param openid
     * @return
     */
    public Map<String, Object> queryUserInfo(String access_token, String openid) throws Exception{
    public Map<String, Object> queryUserInfo(String access_token, String openid) throws Exception {
        String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid + "&lang=zh_CN";
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "form");
        if(httpResult.getCode() != 200){
        if (httpResult.getCode() != 200) {
            return null;
        }
        System.err.println(httpResult.getData());
@@ -294,13 +301,14 @@
    /**
     * 获取小程序二维码
     * @param page      跳转页 例如 pages/index/index
     * @param scene     参数 a=1&b=2
     *
     * @param page  跳转页 例如 pages/index/index
     * @param scene 参数 a=1&b=2
     */
    public InputStream getwxacodeunlimit(String page, String scene){
    public InputStream getwxacodeunlimit(String page, String scene) {
        try {
            String token = getWxAppletsAccessToken();
            if(ToolUtil.isEmpty(token)){
            if (ToolUtil.isEmpty(token)) {
                System.err.println("获取接口调用凭证失败");
            }
            String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + token;
@@ -308,17 +316,17 @@
            param.put("scene", scene);
            param.put("page", page);
            HttpHeaders httpHeaders = new HttpHeaders();
            MediaType type= MediaType.parseMediaType("application/json;charset=UTF-8");
            MediaType type = MediaType.parseMediaType("application/json;charset=UTF-8");
            httpHeaders.setContentType(type);
            HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(param, httpHeaders);
            ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class, new Object[0]);
            String body1 = exchange.getBody();
//            System.err.println(body1);
            ResponseEntity<byte[]> entity  = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
            ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
            byte[] body = entity.getBody();
//            System.err.println(Base64.encodeBase64String(body));
            return new ByteArrayInputStream(body);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
cloud-server-account/src/main/java/com/dsh/account/util/weChat/WxPKCS7Encoder.java
@@ -4,10 +4,11 @@
import java.util.Arrays;
/**
* 微信小程序加解密
* @author pzb
* @Date 2021/12/3 15:43
*/
 * 微信小程序加解密
 *
 * @author pzb
 * @Date 2021/12/3 15:43
 */
public class WxPKCS7Encoder {
    private static final Charset CHARSET = Charset.forName("utf-8");
    private static final int BLOCK_SIZE = 32;
@@ -15,8 +16,7 @@
    /**
     * 获得对明文进行补位填充的字节.
     *
     * @param count
     *            需要进行填充补位操作的明文字节个数
     * @param count 需要进行填充补位操作的明文字节个数
     * @return 补齐用的字节数组
     */
    public static byte[] encode(int count) {
@@ -37,8 +37,7 @@
    /**
     * 删除解密后明文的补位字符
     *
     * @param decrypted
     *            解密后的明文
     * @param decrypted 解密后的明文
     * @return 删除补位字符后的明文
     */
    public static byte[] decode(byte[] decrypted) {
@@ -52,8 +51,7 @@
    /**
     * 将数字转化成ASCII码对应的字符,用于对明文进行补码
     *
     * @param a
     *            需要转化的数字
     * @param a 需要转化的数字
     * @return 转化得到的字符
     */
    public static char chr(int a) {
cloud-server-account/src/main/java/com/dsh/config/MyLocaleResolver.java
@@ -42,37 +42,37 @@
    public String getQueryParams(HttpServletRequest request, String key) {
        try {
            String method = request.getMethod();
            if("POST".equals(method)){
            if ("POST".equals(method)) {
                String parameter = request.getParameter(key);
                if(!StringUtils.isEmpty(parameter)){
                if (!StringUtils.isEmpty(parameter)) {
                    return parameter;
                }
                Object attribute = request.getAttribute(key);
                if(null != attribute){
                if (null != attribute) {
                    return attribute.toString();
                }
                StringBuffer sb = new StringBuffer();
                ServletInputStream inputStream = request.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                String s;
                while ((s = bufferedReader.readLine()) != null){
                while ((s = bufferedReader.readLine()) != null) {
                    sb.append(s);
                }
                bufferedReader.close();
                inputStream.close();
                JSONObject jsonObject = JSON.parseObject(sb.toString());
                return jsonObject.getString(key);
            }else{
            } else {
                String parameter = request.getParameter(key);
                if(!StringUtils.isEmpty(parameter)){
                if (!StringUtils.isEmpty(parameter)) {
                    return parameter;
                }
                Object attribute = request.getAttribute(key);
                if(null != attribute){
                if (null != attribute) {
                    return attribute.toString();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
cloud-server-account/src/main/java/com/dsh/config/RedisConfig.java
@@ -35,10 +35,10 @@
    private String password;
    @Value("${spring.redis.block-when-exhausted}")
    private boolean  blockWhenExhausted;
    private boolean blockWhenExhausted;
    @Bean
    public JedisPool redisPoolFactory()  throws Exception{
    public JedisPool redisPoolFactory() throws Exception {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMinIdle(minIdle);
cloud-server-account/src/main/java/com/dsh/config/Sharding_jdbc/DatasourceModel.java
@@ -2,10 +2,11 @@
/**
* 数据源
* @author pzb
* @Date 2022/11/21 21:13
*/
 * 数据源
 *
 * @author pzb
 * @Date 2022/11/21 21:13
 */
public class DatasourceModel {
    private String url;
    private String username;
@@ -48,7 +49,7 @@
        this.driverClassName = driverClassName;
    }
    public DatasourceModel getDatasourceModel(){
    public DatasourceModel getDatasourceModel() {
        return this;
    }
cloud-server-account/src/main/java/com/dsh/config/Sharding_jdbc/Master0DataSource.java
@@ -6,10 +6,11 @@
/**
* 数据源配置
* @author pzb
* @Date 2022/11/21 20:32
*/
 * 数据源配置
 *
 * @author pzb
 * @Date 2022/11/21 20:32
 */
@Component
@PropertySource(value = "classpath:sharding-jdbc.properties")
@ConfigurationProperties(prefix = "datasource.master0")
cloud-server-account/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java
@@ -24,7 +24,7 @@
    @Bean
    public DataSource getDataSource(){
    public DataSource getDataSource() {
        DataSource dataSource = null;
        try {
            Properties properties = new Properties();
@@ -40,6 +40,7 @@
    /**
     * 配置多数据源
     *
     * @return
     */
    private Map<String, DataSource> createDataSourceMap() {
@@ -61,6 +62,7 @@
    /**
     * 分片配置
     *
     * @return
     */
    private Collection<RuleConfiguration> createShardingRuleConfiguration() {
@@ -94,6 +96,7 @@
    /**
     * 分片算法配置
     *
     * @return
     */
    private ShardingTableRuleConfiguration getPaymentHistoryTableRuleConfiguration() {
@@ -104,9 +107,9 @@
    }
    /**
     * 分片算法配置
     *
     * @return
     */
    private ShardingTableRuleConfiguration getRechargeRecordsTableRuleConfiguration() {
@@ -119,6 +122,7 @@
    /**
     * 分片算法配置
     *
     * @return
     */
    private ShardingTableRuleConfiguration getUserIntegralChangesTableRuleConfiguration() {
cloud-server-account/src/main/java/com/dsh/config/SwaggerConfig.java
@@ -27,7 +27,7 @@
@Configuration
@EnableSwagger2
@ConditionalOnProperty(prefix = "guns", name = "swagger-open", havingValue = "true")
public class SwaggerConfig{
public class SwaggerConfig {
    @Bean
    public Docket systemApi() {
@@ -47,7 +47,6 @@
                .paths(PathSelectors.any()).build().groupName("公共Aip接口")
                .apiInfo(apiInfo("公共Aip接口", "文档中可以查询及测试接口调用参数和结果", "1.0.0版本"));
    }
    private ApiInfo apiInfo(String name, String description, String version) {
cloud-server-account/src/main/resources/bootstrap.properties
@@ -18,12 +18,10 @@
spring.cloud.nacos.discovery.group=@profiles.group@
spring.main.allow-bean-definition-overriding=true
spring.flyway.enabled=false
# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0479\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
feign.compression.request.mime-types=text/xml,application/xml,application/json
feign.compression.request.min-request-size=4096
feign.compression.request.enabled=true
feign.compression.response.enabled=true
mybatis-plus.configuration.map-underscore-to-camel-case=false
cloud-server-account/src/main/resources/logback-spring.xml
@@ -3,7 +3,7 @@
<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration  scan="true" scanPeriod="10 seconds">
<configuration scan="true" scanPeriod="10 seconds">
    <contextName>logback</contextName>
    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
@@ -11,11 +11,14 @@
    <!--0. 日志格式和颜色渲染 -->
    <!-- 彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    <!-- 彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <!--1. 输出到控制台-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
@@ -187,12 +190,12 @@
                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
    <springProfile name="dev">
        <root level="info">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="DEBUG_FILE" />
            <appender-ref ref="INFO_FILE" />
            <appender-ref ref="WARN_FILE" />
            <appender-ref ref="ERROR_FILE" />
            <appender-ref ref="ALL_FILE" />
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="DEBUG_FILE"/>
            <appender-ref ref="INFO_FILE"/>
            <appender-ref ref="WARN_FILE"/>
            <appender-ref ref="ERROR_FILE"/>
            <appender-ref ref="ALL_FILE"/>
        </root>
        <logger name="com.dsh" level="debug"/>
        <logger name="business-log" level="warn"/>
@@ -200,12 +203,12 @@
    <springProfile name="fat">
        <root level="info">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="DEBUG_FILE" />
            <appender-ref ref="INFO_FILE" />
            <appender-ref ref="WARN_FILE" />
            <appender-ref ref="ERROR_FILE" />
            <appender-ref ref="ALL_FILE" />
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="DEBUG_FILE"/>
            <appender-ref ref="INFO_FILE"/>
            <appender-ref ref="WARN_FILE"/>
            <appender-ref ref="ERROR_FILE"/>
            <appender-ref ref="ALL_FILE"/>
        </root>
        <logger name="com.dsh.course.mapper" level="error"/>
        <logger name="business-log" level="warn"/>
@@ -214,11 +217,11 @@
    <springProfile name="prod">
        <root level="warn">
            <!-- 生产环境最好不配置console写文件 -->
            <appender-ref ref="DEBUG_FILE" />
            <appender-ref ref="INFO_FILE" />
            <appender-ref ref="WARN_FILE" />
            <appender-ref ref="ERROR_FILE" />
            <appender-ref ref="ALL_FILE" />
            <appender-ref ref="DEBUG_FILE"/>
            <appender-ref ref="INFO_FILE"/>
            <appender-ref ref="WARN_FILE"/>
            <appender-ref ref="ERROR_FILE"/>
            <appender-ref ref="ALL_FILE"/>
        </root>
        <logger name="com.dsh.course.mapper" level="error"/>
        <logger name="business-log" level="warn"/>
cloud-server-account/src/main/resources/mapper/CoachMapper.xml
@@ -29,7 +29,7 @@
            <if test="query.name!=null and query.name!= ''">
                AND t1.name LIKE concat('%',#{query.name},'%')
            </if>
             <if test="query.phone!=null and query.phone!= ''">
            <if test="query.phone!=null and query.phone!= ''">
                and t1.phone LIKE concat('%',#{query.phone},'%')
            </if>
            <if test="query.id!=null and query.id!= ''">
cloud-server-account/src/main/resources/mapper/RechargeRecordsMapper.xml
@@ -38,22 +38,22 @@
        select t1.* from t_vip_payment t1
        left join t_app_user t2 on t1.appUserId = t2.id
        <where>
        <if test="amount!=null and amount!= ''">
            and t1.amount &lt;= #{amount}
        </if>
            <if test="amount!=null and amount!= ''">
                and t1.amount &lt;= #{amount}
            </if>
            <if test="query.insertType!=null and query.insertType!= ''">
            and t2.insertType = #{query.insertType}
         </if>
        <if test="query.userIds != null and query.userIds.size()>0">
            AND t1.appUserId IN
            <foreach collection="query.userIds" separator="," item="id" open="(" close=")">
                #{id}
            </foreach>
        </if>
        <if test="sTime !=null and sTime!= '' and eTime !=null and eTime!= ''">
            and t1.insertTime between #{sTime} and #{eTime}
        </if>
        and t1.payStatus = 2
                and t2.insertType = #{query.insertType}
            </if>
            <if test="query.userIds != null and query.userIds.size()>0">
                AND t1.appUserId IN
                <foreach collection="query.userIds" separator="," item="id" open="(" close=")">
                    #{id}
                </foreach>
            </if>
            <if test="sTime !=null and sTime!= '' and eTime !=null and eTime!= ''">
                and t1.insertTime between #{sTime} and #{eTime}
            </if>
            and t1.payStatus = 2
        </where>
    </select>
</mapper>
cloud-server-account/src/main/resources/mapper/TAppUserMapper.xml
@@ -4,33 +4,32 @@
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.dsh.account.entity.TAppUser">
        <id column="id" property="id" />
        <result column="code" property="code" />
        <result column="name" property="name" />
        <result column="phone" property="phone" />
        <result column="password" property="password" />
        <result column="birthday" property="birthday" />
        <result column="gender" property="gender" />
        <result column="height" property="height" />
        <result column="weight" property="weight" />
        <result column="bmi" property="bmi" />
        <result column="idCard" property="idCard" />
        <result column="openid" property="openid" />
        <result column="province" property="province" />
        <result column="provinceCode" property="provinceCode" />
        <result column="city" property="city" />
        <result column="cityCode" property="cityCode" />
        <result column="isVip" property="isVip" />
        <result column="vipEndTime" property="vipEndTime" />
        <result column="viplevelId" property="viplevelId" />
        <result column="referralUserId" property="referralUserId" />
        <result column="salesmanUserId" property="salesmanUserId" />
        <result column="state" property="state" />
        <result column="integral" property="integral" />
        <result column="playPaiCoins" property="playPaiCoins" />
        <result column="headImg" property="headImg" />
        <id column="id" property="id"/>
        <result column="code" property="code"/>
        <result column="name" property="name"/>
        <result column="phone" property="phone"/>
        <result column="password" property="password"/>
        <result column="birthday" property="birthday"/>
        <result column="gender" property="gender"/>
        <result column="height" property="height"/>
        <result column="weight" property="weight"/>
        <result column="bmi" property="bmi"/>
        <result column="idCard" property="idCard"/>
        <result column="openid" property="openid"/>
        <result column="province" property="province"/>
        <result column="provinceCode" property="provinceCode"/>
        <result column="city" property="city"/>
        <result column="cityCode" property="cityCode"/>
        <result column="isVip" property="isVip"/>
        <result column="vipEndTime" property="vipEndTime"/>
        <result column="viplevelId" property="viplevelId"/>
        <result column="referralUserId" property="referralUserId"/>
        <result column="salesmanUserId" property="salesmanUserId"/>
        <result column="state" property="state"/>
        <result column="integral" property="integral"/>
        <result column="playPaiCoins" property="playPaiCoins"/>
        <result column="headImg" property="headImg"/>
    </resultMap>
    <update id="membershipEnd">
@@ -101,7 +100,7 @@
    <select id="getYearUserCount" resultType="com.dsh.account.vo.entity.YearData">
        select IFNULL(count(*),0) AS yearCount,DATE_FORMAT(insertTime,'%Y') AS `year`  from t_app_user
        select IFNULL(count(*),0) AS yearCount,DATE_FORMAT(insertTime,'%Y') AS `year` from t_app_user
        <where>
            <if test="dto.cityCode != null and dto.cityCode != ''">
                AND cityCode = #{dto.cityCode}
@@ -121,7 +120,7 @@
        GROUP BY DATE_FORMAT(insertTime,'%Y')
    </select>
    <select id="getMonthUserCount" resultType="com.dsh.account.vo.entity.MonthData">
        select IFNULL(count(*),0) AS monthCount,DATE_FORMAT(insertTime,'%Y%m') AS `month`  from t_app_user
        select IFNULL(count(*),0) AS monthCount,DATE_FORMAT(insertTime,'%Y%m') AS `month` from t_app_user
        <where>
            <if test="dto.cityCode != null and dto.cityCode != ''">
                AND cityCode = #{dto.cityCode}
@@ -141,7 +140,7 @@
        GROUP BY DATE_FORMAT(insertTime,'%Y%m')
    </select>
    <select id="getWeekUserCount4" resultType="com.dsh.account.vo.entity.WeekData">
        select IFNULL(count(*),0) AS weekCount,4 AS `week`  from t_app_user
        select IFNULL(count(*),0) AS weekCount,4 AS `week` from t_app_user
        <where>
            <if test="dto.startTime != null and dto.startTime != '' and dto.endTime != null and dto.endTime != ''">
                AND insertTime between #{dto.startTime} and #{dto.endTime}
@@ -164,7 +163,7 @@
    </select>
    <select id="getWeekUserCount3" resultType="com.dsh.account.vo.entity.WeekData">
        select IFNULL(count(*),0) AS weekCount,3 AS `week`  from t_app_user
        select IFNULL(count(*),0) AS weekCount,3 AS `week` from t_app_user
        <where>
            <if test="dto.startTime != null and dto.startTime != '' and dto.endTime != null and dto.endTime != ''">
                AND insertTime between #{dto.startTime} and #{dto.endTime}
@@ -187,7 +186,7 @@
    </select>
    <select id="getWeekUserCount2" resultType="com.dsh.account.vo.entity.WeekData">
        select IFNULL(count(*),0) AS weekCount,2 AS `week`  from t_app_user
        select IFNULL(count(*),0) AS weekCount,2 AS `week` from t_app_user
        <where>
            <if test="dto.startTime != null and dto.startTime != '' and dto.endTime != null and dto.endTime != ''">
                AND insertTime between #{dto.startTime} and #{dto.endTime}
@@ -210,7 +209,7 @@
    </select>
    <select id="getWeekUserCount1" resultType="com.dsh.account.vo.entity.WeekData">
        select IFNULL(count(*),0) AS weekCount,1 AS `week`  from t_app_user
        select IFNULL(count(*),0) AS weekCount,1 AS `week` from t_app_user
        <where>
            <if test="dto.startTime != null and dto.startTime != '' and dto.endTime != null and dto.endTime != ''">
                AND insertTime between #{dto.startTime} and #{dto.endTime}
@@ -233,7 +232,7 @@
    </select>
    <select id="getDayUserCount" resultType="com.dsh.account.vo.entity.DayData">
        select IFNULL(count(*),0) AS dayCount,DATE_FORMAT(insertTime,'%Y-%m-%d') AS `day`  from t_app_user
        select IFNULL(count(*),0) AS dayCount,DATE_FORMAT(insertTime,'%Y-%m-%d') AS `day` from t_app_user
        <where>
            <if test="dto.startTime != null and dto.startTime != '' and dto.endTime != null and dto.endTime != ''">
                AND insertTime between #{dto.startTime} and #{dto.endTime}
@@ -256,7 +255,7 @@
        GROUP BY DATE_FORMAT(insertTime,'%Y-%m-%d')
    </select>
    <select id="groupCityInfo" resultType="com.dsh.account.vo.GroupCityInfoVO">
        select IFNULL(count(*),0) AS userCount,cityCode,city  from t_app_user
        select IFNULL(count(*),0) AS userCount,cityCode,city from t_app_user
        <where>
            <if test="dto.startTime != null and dto.startTime != '' and dto.endTime != null and dto.endTime != ''">
                AND insertTime between #{dto.startTime} and #{dto.endTime}
cloud-server-account/src/main/resources/mapper/TStudentMapper.xml
@@ -4,21 +4,21 @@
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.dsh.account.dto.TStudentDto">
        <id column="id" property="id" />
        <result column="appUserId" property="appUserId" />
        <result column="name" property="name" />
        <result column="phone" property="phone" />
        <result column="birthday" property="birthday" />
        <result column="sex" property="sex" />
        <result column="height" property="height" />
        <result column="weight" property="weight" />
        <result column="bmi" property="bmi" />
        <result column="idCard" property="idCard" />
        <result column="lateralSurface" property="lateralSurface" />
        <result column="state" property="state" />
        <result column="insertTime" property="insertTime" />
        <result column="headImg" property="headImg" />
        <result column="isDefault" property="isDefault" />
        <id column="id" property="id"/>
        <result column="appUserId" property="appUserId"/>
        <result column="name" property="name"/>
        <result column="phone" property="phone"/>
        <result column="birthday" property="birthday"/>
        <result column="sex" property="sex"/>
        <result column="height" property="height"/>
        <result column="weight" property="weight"/>
        <result column="bmi" property="bmi"/>
        <result column="idCard" property="idCard"/>
        <result column="lateralSurface" property="lateralSurface"/>
        <result column="state" property="state"/>
        <result column="insertTime" property="insertTime"/>
        <result column="headImg" property="headImg"/>
        <result column="isDefault" property="isDefault"/>
    </resultMap>
    <insert id="createHistory">
@@ -43,18 +43,19 @@
                and o.city = #{item.city}
            </if>
            <if test="item.name != null and item.name != ''">
                and o.name  LIKE CONCAT('%',#{item.name},'%')
                and o.name LIKE CONCAT('%',#{item.name},'%')
            </if>
            <if test="item.userName != null and item.userName != ''">
                and o.userName  LIKE CONCAT('%',#{item.userName},'%')
                and o.userName LIKE CONCAT('%',#{item.userName},'%')
            </if>
            <if test="item.phone != null and item.phone != ''">
                and o.phone  LIKE CONCAT('%',#{item.phone},'%')
                and o.phone LIKE CONCAT('%',#{item.phone},'%')
            </if>
            <if test="item.ids != null and item.ids.size >0 ">
                and o.appUserId  in <foreach collection="item.ids" separator="," open="(" item="id" close=")">
                #{id}
            </foreach>
                and o.appUserId in
                <foreach collection="item.ids" separator="," open="(" item="id" close=")">
                    #{id}
                </foreach>
            </if>
        </where>
@@ -76,7 +77,6 @@
    </select>
    <select id="getGiftSelect" resultType="java.lang.Integer">
            SELECT appUserId FROM t_student
            WHERE name = #{giftSearchDto.name}
@@ -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-account/src/main/resources/mapper/UserIntegralChangesMapper.xml
@@ -4,7 +4,8 @@
    <select id="listAll" resultType="com.dsh.account.entity.UserIntegral">
        select t1.id,t2.province,t2.city,t2.name,t2.phone,t1.type,t1.oldIntegral,t1.newIntegral,t1.category ,t1.insertTime,t1.remark from t_user_integral_changes t1  left join t_app_user t2 on t1.appUserId = t2.id
        select t1.id,t2.province,t2.city,t2.name,t2.phone,t1.type,t1.oldIntegral,t1.newIntegral,t1.category
        ,t1.insertTime,t1.remark from t_user_integral_changes t1 left join t_app_user t2 on t1.appUserId = t2.id
        where 1=1
        <if test="query.name !=null and query.name !=''">
            and t2.name like concat("%",#{query.name},"%")
cloud-server-account/src/main/resources/mapper/VipPaymentMapper.tld
@@ -4,17 +4,17 @@
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.dsh.account.entity.VipPayment">
        <id column="id" property="id" />
        <result column="code" property="code" />
        <result column="appUserId" property="appUserId" />
        <result column="amount" property="amount" />
        <result column="payType" property="payType" />
        <result column="payStatus" property="payStatus" />
        <result column="payTime" property="payTime" />
        <result column="orderNumber" property="orderNumber" />
        <result column="state" property="state" />
        <result column="insertTime" property="insertTime" />
        <result column="isDefault" property="isDefault" />
        <id column="id" property="id"/>
        <result column="code" property="code"/>
        <result column="appUserId" property="appUserId"/>
        <result column="amount" property="amount"/>
        <result column="payType" property="payType"/>
        <result column="payStatus" property="payStatus"/>
        <result column="payTime" property="payTime"/>
        <result column="orderNumber" property="orderNumber"/>
        <result column="state" property="state"/>
        <result column="insertTime" property="insertTime"/>
        <result column="isDefault" property="isDefault"/>
    </resultMap>
cloud-server-account/src/main/resources/redis.properties
@@ -1,6 +1,5 @@
spring.redis.database=0
spring.redis.host=@redis.addr@
spring.redis.port=@redis.port@
spring.redis.password=@redis.password@
spring.redis.jedis.pool.max-active=1024
cloud-server-account/src/main/resources/sharding-jdbc.properties
@@ -1,5 +1,4 @@
datasource.names=master0
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_account?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
cloud-server-activity/pom.xml
@@ -79,6 +79,12 @@
            <artifactId>httpmime</artifactId>
            <version>4.5.2</version>
        </dependency>
        <dependency>
            <groupId>org.gavaghan</groupId>
            <artifactId>geodesy</artifactId>
            <version>1.1.3</version>
        </dependency>
    </dependencies>
    <build>
cloud-server-activity/src/main/java/com/dsh/activity/controller/BenefitVideoController.java
@@ -31,92 +31,96 @@
    private TokenUtil tokenUtil;
    /**
     * 获取所有福利视频分类
     *
     * @return
     */
    @RequestMapping("/base/benefitVideo/list")
    public List<TQueryBenefitsVO> listAll(@RequestBody QueryBenefitsVedioVO vo){
    public List<TQueryBenefitsVO> listAll(@RequestBody QueryBenefitsVedioVO vo) {
        return benefitsVideoClassificationService.listAll(vo);
    }
    /**
     * 查看详情/编辑
     *
     * @return
     */
    @RequestMapping("/base/benefitVideo/getById")
    public BenefitsVideoClassification getById(@RequestBody Integer id){
    public BenefitsVideoClassification getById(@RequestBody Integer id) {
        return benefitsVideoClassificationService.getById(id);
    }
    /**
     * 根据分类id查询福利视频分类下的视频
     *
     * @return
     */
    @RequestMapping("/base/benefitVideo/getBenefitVideoById")
    @ResponseBody
    public List<BenefitsVideos> getBenefitVideoById(@RequestBody Integer id){
    public List<BenefitsVideos> getBenefitVideoById(@RequestBody Integer id) {
        return bfvService.getBenefitVideoById(id);
    }
    /**
     * 根据福利视频id获取福利视频信息
     *
     * @return
     */
    @RequestMapping("/base/benefitVideo/getBenefitVideosById")
    @ResponseBody
    public BenefitsVideos getBenefitVideosById(@RequestBody Integer id){
    public BenefitsVideos getBenefitVideosById(@RequestBody Integer id) {
        return bfvService.getById(id);
    }
    /**
     * 添加/修改福利视频分类
     *
     * @return
     */
    @RequestMapping("/base/benefitVideo/add")
    public Object addSite(@RequestBody BenefitsVideoClassification site){
            if(site.getId()!= null ){
                benefitsVideoClassificationService.updateById(site);
                return 200;
            }else {
                return benefitsVideoClassificationService.save(site);
            }
    public Object addSite(@RequestBody BenefitsVideoClassification site) {
        if (site.getId() != null) {
            benefitsVideoClassificationService.updateById(site);
            return 200;
        } else {
            return benefitsVideoClassificationService.save(site);
        }
    }
    /**
     * 添加/修改视频详情
     *
     * @return
     */
    @RequestMapping("/base/addBenefitsVideos")
    public Object addBenefitsVideos(@RequestBody BenefitsVideos site){
    public Object addBenefitsVideos(@RequestBody BenefitsVideos site) {
        // 通过分类Id和课程id 查询视频
        List<BenefitsVideos> result = bfvService.getBybIdAndcId(site.getBenefitsVideoClassificationId(),site.getCourseId());
        if (result.size()>0){
        List<BenefitsVideos> result = bfvService.getBybIdAndcId(site.getBenefitsVideoClassificationId(), site.getCourseId());
        if (result.size() > 0) {
            return 500;
        }
        if (site.getId() == null){
        if (site.getId() == null) {
            return bfvService.save(site);
        }else {
        } else {
            return bfvService.updateById(site);
        }
    }
    /**
     * 上/下架、删除福利视频分类 type=1为上架 2为下架 3为删除
     */
    @RequestMapping("/base/benefitVideo/changeState")
    public Object changeState(@RequestBody BenefitsVedioChangeStateVO vo){
    public Object changeState(@RequestBody BenefitsVedioChangeStateVO vo) {
        return benefitsVideoClassificationService.changeState(vo);
    }
    @PostMapping("base/benefitVideo/getList")
    public BenefitsVideos getVideosWithIds(@RequestBody Integer id){
        return bfvService.getOne(new QueryWrapper<BenefitsVideos>().eq("id",id).eq("state",1));
    public BenefitsVideos getVideosWithIds(@RequestBody Integer id) {
        return bfvService.getOne(new QueryWrapper<BenefitsVideos>().eq("id", id).eq("state", 1));
    }
    @ResponseBody
@@ -127,19 +131,20 @@
            @ApiImplicitParam(value = "搜索内容", name = "search", dataType = "string", required = false),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<BenefitsVideoClassificationListVo>> queryClassificationBenefitsVideosList(Integer position, String search){
    public ResultUtil<List<BenefitsVideoClassificationListVo>> queryClassificationBenefitsVideosList(Integer position, String search) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<BenefitsVideoClassificationListVo> listVos = bfvService.queryClassificationBenefitsVideosList(uid, position, search);
            return ResultUtil.success(listVos);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/base/benefitsVideo/queryClassificationBenefitsVideosListOne")
    @ApiOperation(value = "获取视频列表", tags = {"APP-线上课得积分", "APP-看视频得奖励"})
@@ -148,12 +153,12 @@
            @ApiImplicitParam(value = "搜索内容", name = "search", dataType = "string", required = false),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<BenefitsVideoClassificationListVo>> queryClassificationBenefitsVideosListOne(Integer position, String search){
    public ResultUtil<List<BenefitsVideoClassificationListVo>> queryClassificationBenefitsVideosListOne(Integer position, String search) {
        try {
            Integer uid = -1;
            List<BenefitsVideoClassificationListVo> listVos = bfvService.queryClassificationBenefitsVideosListOne(uid, position, search);
            return ResultUtil.success(listVos);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -170,20 +175,19 @@
            @ApiImplicitParam(value = "搜索内容", name = "search", dataType = "string", required = false),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<BenefitsVideosListVo>> queryBenefitsVideosList(Integer classificationId, String search, Integer pageSize, Integer pageNo){
    public ResultUtil<List<BenefitsVideosListVo>> queryBenefitsVideosList(Integer classificationId, String search, Integer pageSize, Integer pageNo) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<BenefitsVideosListVo> benefitsVideosListVos = bfvService.queryBenefitsVideosList(uid, classificationId, search, pageSize, pageNo);
            return ResultUtil.success(benefitsVideosListVos);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -193,15 +197,15 @@
            @ApiImplicitParam(value = "视频id", name = "id", dataType = "int", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<BenefitsVideosInfoVo> queryBenefitsVideosInfo(Integer id){
    public ResultUtil<BenefitsVideosInfoVo> queryBenefitsVideosInfo(Integer id) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            BenefitsVideosInfoVo benefitsVideosInfoVo = bfvService.queryBenefitsVideosInfo(uid, id);
            return ResultUtil.success(benefitsVideosInfoVo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -217,12 +221,12 @@
    public ResultUtil receiveAward(Integer id) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            bfvService.receiveAward(uid, id);
            return ResultUtil.success();
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
cloud-server-activity/src/main/java/com/dsh/activity/controller/BodySideAppointmentsController.java
@@ -40,10 +40,11 @@
    /**
     * 获取所有体测预约记录
     *
     * @return
     */
    @RequestMapping("/base/bodySideAppointments/listAll")
    public List<QueryBodySideAppointmentVO> listAll(@RequestBody QueryBodySideAppointment vo){
    public List<QueryBodySideAppointmentVO> listAll(@RequestBody QueryBodySideAppointment vo) {
        List<QueryBodySideAppointmentVO> queryBodySideAppointmentVOS = bodySideAppointmentService.listAll(vo);
        List<Integer> list = new ArrayList<>();
        for (QueryBodySideAppointmentVO queryBodySideAppointmentVO : queryBodySideAppointmentVOS) {
@@ -52,7 +53,7 @@
        List<Store> stores = storeClient.queryStoreByIds(list);
        for (QueryBodySideAppointmentVO queryBodySideAppointmentVO : queryBodySideAppointmentVOS) {
            for (Store store : stores) {
                if (queryBodySideAppointmentVO.getStoreId() == store.getId()){
                if (queryBodySideAppointmentVO.getStoreId() == store.getId()) {
                    queryBodySideAppointmentVO.setStoreName(store.getName());
                    break;
                }
@@ -60,39 +61,43 @@
        }
        return queryBodySideAppointmentVOS;
    }
    /**
     * 增加/修改体测预约记录
     *
     * @return
     */
    @RequestMapping("/base/bodySideAppointments/addBodySideAppointments")
    public Object addBodySideAppointments(@RequestBody QueryBodySideAppointmentVO vo){
    public Object addBodySideAppointments(@RequestBody QueryBodySideAppointmentVO vo) {
        BodySideAppointment bodySideAppointment = new BodySideAppointment();
        BeanUtils.copyProperties(vo,bodySideAppointment);
        BeanUtils.copyProperties(vo, bodySideAppointment);
        bodySideAppointment.setStatus(1);
        bodySideAppointment.setState(1);
        bodySideAppointment.setInsertTime(new Date());
        if (vo.getId() != null){
           return bodySideAppointmentService.updateById(bodySideAppointment);
        }else {
        if (vo.getId() != null) {
            return bodySideAppointmentService.updateById(bodySideAppointment);
        } else {
            return bodySideAppointmentService.save(bodySideAppointment);
        }
    }
    /**
     * 手动标记用户已经到店并完成体测
     *
     * @return
     */
    @RequestMapping("/base/bodySideAppointments/changeState")
    public Object changeState(@RequestBody List<Integer> ids){
    public Object changeState(@RequestBody List<Integer> ids) {
        return bodySideAppointmentService.changeState(ids);
    }
    /**
     * 通过id获取体测预约记录
     *
     * @return
     */
    @RequestMapping("/base/bodySideAppointments/getInfoById")
    public BodySideAppointment getInfoById(@RequestBody Integer id){
    public BodySideAppointment getInfoById(@RequestBody Integer id) {
        return bodySideAppointmentService.getById(id);
    }
cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -1,4 +1,5 @@
package com.dsh.activity.controller;
import java.util.Date;
import com.alibaba.fastjson.JSON;
@@ -87,7 +88,6 @@
    private StoreClient stoClient;
    @Resource
    private RegionClient regionClient;
@@ -107,8 +107,8 @@
     */
    @ResponseBody
    @PostMapping("/coupon/queryCouponByUser/{userId}")
    public List<Integer> queryCouponByUser(@PathVariable("userId") Integer userId){
    public List<Long> queryCouponByUser(@PathVariable("userId") Integer userId) {
        List<Long> ids = new ArrayList<>();
        System.err.println("到达了赠送优惠价");
        List<Coupon> list = couponService.list(new QueryWrapper<Coupon>().eq("distributionMethod", 2)
                .le("startTime", new Date()).ge("endTime", new Date()).eq("auditStatus", 2)
@@ -124,10 +124,10 @@
            // 用户已领取该优惠券数量
            int count = ucService.count(new QueryWrapper<UserCoupon>().eq("couponId", coupon.getId()
            ).eq("userId", userId));
            if (couponId>=quantityIssued){
            if (couponId >= quantityIssued) {
                continue;
            }
            if (count>=pickUpQuantity){
            if (count >= pickUpQuantity) {
                continue;
            }
            // 条件满足 将优惠券送给用户
@@ -137,8 +137,9 @@
            userCoupon.setStatus(1);
            userCoupon.setInsertTime(new Date());
            ucService.save(userCoupon);
            ids.add(userCoupon.getId());
        }
        return null;
        return ids;
    }
    @ResponseBody
@@ -148,18 +149,18 @@
            @ApiImplicitParam(value = "1=积分购买,2=注册赠送", name = "distributionMethod", dataType = "int", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<CouponListVo>> queryCouponList(Integer distributionMethod){
        if(null == distributionMethod){
    public ResultUtil<List<CouponListVo>> queryCouponList(Integer distributionMethod) {
        if (null == distributionMethod) {
            return ResultUtil.paranErr("distributionMethod");
        }
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<CouponListVo> listVos = couponService.queryCouponList(uid, distributionMethod);
            return ResultUtil.success(listVos);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.success();
        }
@@ -168,16 +169,17 @@
    /**
     * 根据id获取优惠券信息
     *
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/coupon/queryCouponById")
    public Coupon queryCouponById(@RequestBody Integer id){
    public Coupon queryCouponById(@RequestBody Integer id) {
        try {
            Coupon coupon = couponService.getById(id);
            return coupon;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -186,9 +188,10 @@
    @Autowired
    private UserCouponService userCouponService;
    @ResponseBody
    @PostMapping("/coupon/queryCouponByUid")
    public List<Coupon> queryCouponByUid(@RequestBody Integer uid){
    public List<Coupon> queryCouponByUid(@RequestBody Integer uid) {
        try {
            LocalDateTime currentTime = LocalDateTime.now();
            LocalDateTime oneMinuteAgo = currentTime.minusSeconds(20);
@@ -199,14 +202,14 @@
                ids.add(userCoupon.getCouponId());
            }
            if (ids.size()>0){
            List<Coupon> userId = couponService.list(new QueryWrapper<Coupon>().in("id",ids));
            if (ids.size() > 0) {
                List<Coupon> userId = couponService.list(new QueryWrapper<Coupon>().in("id", ids));
                return userId;
            }
            return null;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -214,7 +217,8 @@
    /**
     *  我的券包列表
     * 我的券包列表
     *
     * @param req
     * @return
     */
@@ -224,14 +228,14 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<CouponPackageResp>> queryAppuserCouponList( CouponPackageReq req){
    public ResultUtil<List<CouponPackageResp>> queryAppuserCouponList(CouponPackageReq req) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            return ResultUtil.success(ucService.queryCouponPackagesList(uid, req));
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.success();
        }
@@ -239,39 +243,39 @@
    @PostMapping("/base/coupon/getAllCoupons")
    public List<Coupon> getAllCoupons(@RequestBody CommodityRequest request){
    public List<Coupon> getAllCoupons(@RequestBody CommodityRequest request) {
        List<Coupon> couponList = new ArrayList<>();
        String provinceCode = "";
        String cityCode = "";
        if (ToolUtil.isEmpty(request.getLat()) && ToolUtil.isEmpty(request.getLon())){
        if (ToolUtil.isEmpty(request.getLat()) && ToolUtil.isEmpty(request.getLon())) {
            return couponList;
        }
        try {
            Map<String, String> geocode = gdMapGeocodingUtil.geocode(request.getLon(), request.getLat());
            provinceCode = geocode.get("provinceCode");
            cityCode = geocode.get("cityCode");
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
        try {
            LocalDateTime currentDate = LocalDateTime.now();
            couponList = couponService.list(new QueryWrapper<Coupon>()
                    .eq("distributionMethod",1)
                    .eq("state",1)
                    .eq("status",1)
                     .le("startTime", currentDate)
                    .eq("distributionMethod", 1)
                    .eq("state", 1)
                    .eq("status", 1)
                    .le("startTime", currentDate)
                    .ge("endTime", currentDate));
            if (couponList.size() > 0 ){
            if (couponList.size() > 0) {
                Iterator<Coupon> iterator = couponList.iterator();
                while (iterator.hasNext()) {
                    Coupon merchandise = iterator.next();
                    if (merchandise.getUseScope() == 2){
                    if (merchandise.getUseScope() == 2) {
                        List<CouponCity> couponCities = cityService.list(new LambdaQueryWrapper<CouponCity>()
                                .eq(CouponCity::getCouponId,merchandise.getId()));
                        if (couponCities.size() > 0){
                                .eq(CouponCity::getCouponId, merchandise.getId()));
                        if (couponCities.size() > 0) {
                            for (CouponCity couponCity : couponCities) {
                                if (!Objects.equals(couponCity.getCityCode(), cityCode) && !Objects.equals(couponCity.getProvinceCode(), provinceCode)){
                                if (!Objects.equals(couponCity.getCityCode(), cityCode) && !Objects.equals(couponCity.getProvinceCode(), provinceCode)) {
                                    iterator.remove(); // 移除符合条件的商品
                                    break;
                                }
@@ -288,14 +292,14 @@
    }
    @PostMapping("/base/coupon/getRedeemedNums")
    public int getRedeemedQuantity(@RequestBody Integer id){
    public int getRedeemedQuantity(@RequestBody Integer id) {
        return ucService.count(new QueryWrapper<UserCoupon>()
                .eq("couponId",id));
                .eq("couponId", id));
    }
    @PostMapping("/base/coupon/insertToAppuserCoupon")
    public void insertToAppuserCoupon(@RequestBody UserCoupon coupon){
    public void insertToAppuserCoupon(@RequestBody UserCoupon coupon) {
        coupon.setInsertTime(new Date());
        ucService.save(coupon);
    }
@@ -303,25 +307,26 @@
    @Autowired
    private OperatorClient operatorClient;
    @ResponseBody
    @PostMapping("/base/coupon/queryCouponListSearch")
    public List<Map<String,Object>> getCouponListOfSearch(@RequestBody CouponListOfSearch ofSearch){
    public List<Map<String, Object>> getCouponListOfSearch(@RequestBody CouponListOfSearch ofSearch) {
        List<Map<String, Object>> mapList1 = couponService.queryCouponListOfSearch(ofSearch);
        List<Map<String, Object>> mapList = new ArrayList<>();
        if (ofSearch.getStoreIds()==null){
        if (ofSearch.getStoreIds() == null) {
            ArrayList<Integer> list = new ArrayList<>();
            ofSearch.setStoreIds(list);
        }
        if(ofSearch.getStoreId()!=null || ofSearch.getStoreIds().size()!=0){
        if (ofSearch.getStoreId() != null || ofSearch.getStoreIds().size() != 0) {
            for (Map<String, Object> map : mapList1) {
                // 如果当前登陆人是运营商 只能查看平台添加的优惠券应只展示使用范围为全国通用、
                // 指定城市有运营商管辖的、指定门店有运营商旗下门店
                if (ofSearch.getObjType()== 2){
                    if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 1){
                if (ofSearch.getObjType() == 2) {
                    if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 1) {
                        mapList.add(map);
                    }
                    if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 2){
                    if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 2) {
                        // 获取到优惠券id 查询这个优惠券指定了哪些城市
                        Integer id = Integer.parseInt(String.valueOf(map.get("id")));
                        // 获取到运营商管理的省和市
@@ -337,59 +342,59 @@
                        // 优惠券指定的省
                        List<String> collect2 = couponId.stream().map(CouponCity::getCityCode)
                                .collect(Collectors.toList());
                        if (!Collections.disjoint(collect, collect1)){
                        if (!Collections.disjoint(collect, collect1)) {
                            mapList.add(map);
                        }else{
                        } else {
                            // 如果没有交集 那么还需要判断运营商是否管理了整个省
                        }
                    }
                    if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 3){
                    if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 3) {
                        // 获取到优惠券id 查询这个优惠券指定了哪些门店
                        Integer id = Integer.parseInt(String.valueOf(map.get("id")));
                        // 当前运营商管理的门店ids
                        List<Integer> storeIds = ofSearch.getStoreIds();
                        // 优惠券指定的门店
                        List<Integer> collect = couStoreService.list(new QueryWrapper<CouponStore>().eq("couponId",id)
                        List<Integer> collect = couStoreService.list(new QueryWrapper<CouponStore>().eq("couponId", id)
                                .in("storeId", storeIds)).stream().map(CouponStore::getStoreId)
                                .collect(Collectors.toList());
                        // 判断两个集合是否相交
                        // 比较两个集合中是否有相同的元素;当两个集合中没有相同元素时返回true,
                        // 当有相同元素时返回false。
                        if (!Collections.disjoint(collect, storeIds)){
                        if (!Collections.disjoint(collect, storeIds)) {
                            mapList.add(map);
                        }
                    }
                }else{
                } else {
                    List<CouponStore> id = couStoreService.list(new LambdaQueryWrapper<CouponStore>()
                            .eq(CouponStore::getCouponId, map.get("id").toString()));
                    List<Integer> collect = id.stream().map(CouponStore::getStoreId).collect(Collectors.toList());
                    if(collect.size()==0){
                    if (collect.size() == 0) {
                        collect.add(-1);
                    }
                    if(collect.contains(ofSearch.getStoreId())){
                        if(collect.size()>1){
                            map.put("size",1);
                        }else {
                            map.put("size",0);
                    if (collect.contains(ofSearch.getStoreId())) {
                        if (collect.size() > 1) {
                            map.put("size", 1);
                        } else {
                            map.put("size", 0);
                        }
                        mapList.add(map);
                    }
                }
            }
        }else {
        } else {
            mapList = mapList1;
        }
        if (mapList.size() > 0){
        if (mapList.size() > 0) {
            for (Map<String, Object> stringObjectMap : mapList) {
                Integer o = (Integer) stringObjectMap.get("id");
                Object startTime = stringObjectMap.get("startTime");
                Object endTime = stringObjectMap.get("endTime");
                stringObjectMap.put("timeValue",startTime + "至"+endTime);
                stringObjectMap.put("timeValue", startTime + "至" + endTime);
                int count = ucService.count(new LambdaQueryWrapper<UserCoupon>()
                        .eq(UserCoupon::getCouponId, o));
                stringObjectMap.put("hasPickQty",count);
                stringObjectMap.put("hasPickQty", count);
            }
        }
        return mapList;
@@ -398,7 +403,7 @@
    @ResponseBody
    @PostMapping("/base/coupon/queryCouponListSearch1")
    public List<Map<String,Object>> getCouponListOfSearch1(@RequestBody CouponListOfSearch ofSearch){
    public List<Map<String, Object>> getCouponListOfSearch1(@RequestBody CouponListOfSearch ofSearch) {
        // 查询全国通用的优惠券和包含指定门店的优惠券
        List<Map<String, Object>> mapList = couponService.queryCouponListOfSearch1(ofSearch);
        Date currentDate = new Date();
@@ -415,30 +420,31 @@
        }
        if (mapList.size() > 0){
        if (mapList.size() > 0) {
            for (Map<String, Object> stringObjectMap : mapList) {
                Integer o = (Integer) stringObjectMap.get("id");
                Object startTime = stringObjectMap.get("startTime");
                Object endTime = stringObjectMap.get("endTime");
                stringObjectMap.put("timeValue",startTime + "至"+endTime);
                stringObjectMap.put("timeValue", startTime + "至" + endTime);
                int count = ucService.count(new LambdaQueryWrapper<UserCoupon>()
                        .eq(UserCoupon::getCouponId, o));
                stringObjectMap.put("hasPickQty",count);
                stringObjectMap.put("hasPickQty", count);
            }
        }
        return mapList;
    }
    @ResponseBody
    @PostMapping("/base/coupon/couponExamineListSearch")
    public List<Map<String,Object>> getCouponExamineListOfSearch(@RequestBody CouponExamineListSearch ofSearch){
    public List<Map<String, Object>> getCouponExamineListOfSearch(@RequestBody CouponExamineListSearch ofSearch) {
        List<Map<String, Object>> mapList = couponService.queryCouponExamineList(ofSearch);
        if (mapList.size() > 0){
        if (mapList.size() > 0) {
            for (Map<String, Object> stringObjectMap : mapList) {
                Object startTime = stringObjectMap.get("startTime");
                Object endTime = stringObjectMap.get("endTime");
                stringObjectMap.put("timeValue",startTime + "至"+endTime);
                stringObjectMap.put("timeValue", startTime + "至" + endTime);
                Integer publisherType = (Integer) stringObjectMap.get("publisherType");
                if (publisherType!=null) {
                if (publisherType != null) {
                    if (publisherType == 1) {
                    }
@@ -451,102 +457,102 @@
    @ResponseBody
    @PostMapping("/base/coupon/couponExamineDetail")
    Map<String, Object> queryCouponExamineDetail(@RequestBody Integer id){
    Map<String, Object> queryCouponExamineDetail(@RequestBody Integer id) {
        Map<String, Object> couponInfo = new HashMap<>();
        Coupon coupon = couponService.getById(id);
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        if (ToolUtil.isNotEmpty(coupon)){
            couponInfo.put("id",coupon.getId());
            couponInfo.put("auditStatus",coupon.getAuditStatus());
            couponInfo.put("publisherType",coupon.getPublisherType());
        if (ToolUtil.isNotEmpty(coupon)) {
            couponInfo.put("id", coupon.getId());
            couponInfo.put("auditStatus", coupon.getAuditStatus());
            couponInfo.put("publisherType", coupon.getPublisherType());
            couponInfo.put("name",coupon.getName());
            couponInfo.put("type",coupon.getType());
            couponInfo.put("name", coupon.getName());
            couponInfo.put("type", coupon.getType());
            JSONObject jsonObject = JSON.parseObject(coupon.getContent());
            switch (coupon.getType()){
            switch (coupon.getType()) {
                case 1:
//                {"conditionalAmount":50,"deductionAmount":10,"experienceName":""}
                    couponInfo.put("num1",jsonObject.getDouble("conditionalAmount"));
                    couponInfo.put("num2",jsonObject.getDouble("deductionAmount"));
                    couponInfo.put("num1", jsonObject.getDouble("conditionalAmount"));
                    couponInfo.put("num2", jsonObject.getDouble("deductionAmount"));
                    break;
                case 2:
                    couponInfo.put("num1",jsonObject.getDouble("conditionalAmount"));
                    couponInfo.put("num1", jsonObject.getDouble("conditionalAmount"));
                    break;
                case 3:
                    couponInfo.put("num1",jsonObject.getString("experienceName"));
                    couponInfo.put("num1", jsonObject.getString("experienceName"));
                    break;
                default:
                    break;
            }
            couponInfo.put("illustrate",coupon.getIllustrate());
            switch (coupon.getDistributionMethod()){
            couponInfo.put("illustrate", coupon.getIllustrate());
            switch (coupon.getDistributionMethod()) {
                case 1:
                    couponInfo.put("distributionMethod","积分注册");
                    couponInfo.put("distributionMethod", "积分注册");
                    break;
                case 2:
                    couponInfo.put("distributionMethod","注册赠送");
                    couponInfo.put("distributionMethod", "注册赠送");
                    break;
                case 3:
                    couponInfo.put("distributionMethod","自动发券");
                    couponInfo.put("distributionMethod", "自动发券");
                    break;
                default:
                    break;
            }
            couponInfo.put("redemptionMethod",coupon.getRedemptionMethod());
            couponInfo.put("integral",coupon.getIntegral());
            couponInfo.put("cash",coupon.getCash());
            switch (coupon.getUserPopulation()){
            couponInfo.put("redemptionMethod", coupon.getRedemptionMethod());
            couponInfo.put("integral", coupon.getIntegral());
            couponInfo.put("cash", coupon.getCash());
            switch (coupon.getUserPopulation()) {
                case 1:
                    couponInfo.put("userPopulation","全部用户");
                    couponInfo.put("userPopulation", "全部用户");
                    break;
                case 2:
                    couponInfo.put("userPopulation","年度会员");
                    couponInfo.put("userPopulation", "年度会员");
                    break;
                case 3:
                    couponInfo.put("userPopulation","已有学员用户");
                    couponInfo.put("userPopulation", "已有学员用户");
                    break;
                default:
                    break;
            }
            couponInfo.put("quantityIssued",coupon.getQuantityIssued());
            couponInfo.put("pickUpQuantity",coupon.getPickUpQuantity());
            couponInfo.put("quantityIssued", coupon.getQuantityIssued());
            couponInfo.put("pickUpQuantity", coupon.getPickUpQuantity());
            String startTime = simpleDateFormat.format(coupon.getStartTime());
            String endTime = simpleDateFormat.format(coupon.getEndTime());
            couponInfo.put("timeValue",startTime + "至"+endTime);
            couponInfo.put("useScope",coupon.getUseScope());
            couponInfo.put("timeValue", startTime + "至" + endTime);
            couponInfo.put("useScope", coupon.getUseScope());
            ArrayList<Map<String, Object>> maps = new ArrayList<>();
            switch (coupon.getUseScope()){
            switch (coupon.getUseScope()) {
                case 2:
                    List<CouponCity> couponCities = cityService.list(new LambdaQueryWrapper<CouponCity>()
                            .eq(CouponCity::getCouponId,coupon.getId()));
                    if (couponCities.size() > 0){
                            .eq(CouponCity::getCouponId, coupon.getId()));
                    if (couponCities.size() > 0) {
                        for (CouponCity couponCity : couponCities) {
                            HashMap<String, Object> stringObjectHashMap = new HashMap<>();
                            stringObjectHashMap.put("province",couponCity.getProvince());
                            stringObjectHashMap.put("city",couponCity.getCity());
                            stringObjectHashMap.put("province", couponCity.getProvince());
                            stringObjectHashMap.put("city", couponCity.getCity());
                            maps.add(stringObjectHashMap);
                        }
                        couponInfo.put("rangeData",maps);
                        couponInfo.put("rangeData", maps);
                    }
                    break;
                case 3:
                    List<CouponStore> list = couStoreService.list(new LambdaQueryWrapper<CouponStore>()
                            .eq(CouponStore::getCouponId,coupon.getId()));
                    if (list.size() > 0){
                            .eq(CouponStore::getCouponId, coupon.getId()));
                    if (list.size() > 0) {
                        // 获取门店ids
                        List<Integer> collect = list.stream().map(CouponStore::getStoreId).collect(Collectors.toList());
                        List<Store> storeList = stoClient.queryStoreByIds(collect);
                        if (storeList.size() > 0){
                        if (storeList.size() > 0) {
                            for (Store store : storeList) {
                                StoreInfoDto storeInfo = stoClient.getStoreInfo(store.getStoreStaffId());
                                HashMap<String, Object> stringObjectHashMap = new HashMap<>();
                                stringObjectHashMap.put("procity",store.getProvince()+store.getCity());
                                stringObjectHashMap.put("storeAccount",storeInfo.getInfo());
                                stringObjectHashMap.put("storeName",store.getName());
                                stringObjectHashMap.put("procity", store.getProvince() + store.getCity());
                                stringObjectHashMap.put("storeAccount", storeInfo.getInfo());
                                stringObjectHashMap.put("storeName", store.getName());
                                maps.add(stringObjectHashMap);
                            }
                            couponInfo.put("rangeData",maps);
                            couponInfo.put("rangeData", maps);
                        }
                    }
@@ -559,20 +565,19 @@
    }
    @ResponseBody
    @PostMapping("/base/coupon/updateCouponExamine")
    public boolean updateCouponData(@RequestBody Coupon coupon){
    public boolean updateCouponData(@RequestBody Coupon coupon) {
        try {
            return couponService.updateById(coupon);
        }catch (Exception e){
        } catch (Exception e) {
            return false;
        }
    }
    @ResponseBody
    @PostMapping("/base/coupon/insertIntoCouponData")
    public boolean saveCouponData(@RequestBody CouponDataVo dataVo){
    public boolean saveCouponData(@RequestBody CouponDataVo dataVo) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        try {
            System.out.println(dataVo);
@@ -581,19 +586,19 @@
            coupon.setType(dataVo.getPrescription());
            HashMap<String, Object> stringObjectHashMap = new HashMap<>();
            Gson gson = new Gson();
            switch (dataVo.getPrescription()){
            switch (dataVo.getPrescription()) {
//                {"conditionalAmount":50,"deductionAmount":10,"experienceName":""}
                case 1:
                    stringObjectHashMap.put("conditionalAmount",dataVo.getCondition());
                    stringObjectHashMap.put("deductionAmount",dataVo.getSubtraction());
                    stringObjectHashMap.put("conditionalAmount", dataVo.getCondition());
                    stringObjectHashMap.put("deductionAmount", dataVo.getSubtraction());
                    coupon.setContent(gson.toJson(stringObjectHashMap));
                    break;
                case 2:
                    stringObjectHashMap.put("conditionalAmount",dataVo.getDiscount());
                    stringObjectHashMap.put("conditionalAmount", dataVo.getDiscount());
                    coupon.setContent(gson.toJson(stringObjectHashMap));
                    break;
                case 3:
                    stringObjectHashMap.put("experienceName",dataVo.getExperience());
                    stringObjectHashMap.put("experienceName", dataVo.getExperience());
                    coupon.setContent(gson.toJson(stringObjectHashMap));
                    break;
                default:
@@ -602,8 +607,8 @@
            coupon.setIllustrate(dataVo.getIllustrate());
            coupon.setDistributionMethod(dataVo.getDistributionMethod());
            coupon.setRedemptionMethod(dataVo.getExchangeMethod());
            if (dataVo.getExchangeMethod()!=null){
                switch (dataVo.getExchangeMethod()){
            if (dataVo.getExchangeMethod() != null) {
                switch (dataVo.getExchangeMethod()) {
                    case 1:
                        coupon.setIntegral(BigDecimal.valueOf(dataVo.getRequiredPoints()));
                        break;
@@ -621,7 +626,7 @@
            coupon.setUseScope(dataVo.getCompany());
            coupon.setUserPopulation(dataVo.getUserGroup());
            String timeDeal = dataVo.getPeriodOfValidity();
            if (ToolUtil.isNotEmpty(timeDeal)){
            if (ToolUtil.isNotEmpty(timeDeal)) {
                String[] split = timeDeal.split(" - ");
                coupon.setStartTime(simpleDateFormat.parse(split[0]));
                coupon.setEndTime(simpleDateFormat.parse(split[1]));
@@ -633,24 +638,24 @@
            coupon.setCover(dataVo.getGoodImg());
            String goodImgs = dataVo.getGoodImgs();
            String[] imgsSplit = goodImgs.split(",");
            if (imgsSplit.length > 0){
                if (imgsSplit.length == 1){
            if (imgsSplit.length > 0) {
                if (imgsSplit.length == 1) {
                    coupon.setProductImages(imgsSplit[0]);
                }else {
                } else {
                    coupon.setProductImages(goodImgs);
                }
            }
            if (dataVo.getUserType() == 1){
            if (dataVo.getUserType() == 1) {
                coupon.setPublisherType(2);
                coupon.setAuditStatus(2);
                coupon.setCityManagerId(dataVo.getCityManagerId());
            }
            if (dataVo.getUserType() == 2){
            if (dataVo.getUserType() == 2) {
                coupon.setPublisherType(1);
                coupon.setAuditStatus(1);
                coupon.setCityManagerId(dataVo.getCityManagerId());
            }
            if (dataVo.getUserType() == 3){
            if (dataVo.getUserType() == 3) {
                coupon.setPublisherType(3);
                coupon.setAuditStatus(1);
                coupon.setCityManagerId(dataVo.getCityManagerId());
@@ -666,25 +671,25 @@
            // 赠送用户数量
            int count = quantityIssued / pickUpQuantity;
            // 自动发券
            if (dataVo.getDistributionMethod() == 3){
            if (dataVo.getDistributionMethod() == 3) {
                // 判断用户人群 再判断限领数量
                switch (dataVo.getUserGroup()){
                switch (dataVo.getUserGroup()) {
                    case 1:
                        // 给全部用户发券
                        // 全部用户ids
                        List<Integer> collect = tAppUsers.stream()
                                .map(TAppUser::getId).collect(Collectors.toList());
                        for (int i = 0; i < count; i++) {
                                for (int j = 0; j < pickUpQuantity; j++) {
                                    UserCoupon u1 = new UserCoupon();
                                    u1.setCouponId(coupon.getId());
                                    u1.setUserId(collect.get(i));
                                    u1.setStatus(1);
                                    u1.setVerificationUserId(null);
                                    u1.setVerificationTime(null);
                                    u1.setInsertTime(new Date());
                                    ucService.save(u1);
                                }
                            for (int j = 0; j < pickUpQuantity; j++) {
                                UserCoupon u1 = new UserCoupon();
                                u1.setCouponId(coupon.getId());
                                u1.setUserId(collect.get(i));
                                u1.setStatus(1);
                                u1.setVerificationUserId(null);
                                u1.setVerificationTime(null);
                                u1.setInsertTime(new Date());
                                ucService.save(u1);
                            }
                        }
                        break;
                    case 2:
@@ -723,8 +728,8 @@
                        break;
                }
            }
            if (save){
                if (dataVo.getCompany() == 3){
            if (save) {
                if (dataVo.getCompany() == 3) {
                    String[] split = dataVo.getStoreIds().split(",");
                    for (String storeId : split) {
                        CouponStore couponStore = new CouponStore();
@@ -733,10 +738,10 @@
                        couStoreService.save(couponStore);
                    }
                }
                String  cityIds = dataVo.getCityIds();
                String cityIds = dataVo.getCityIds();
                String[] split = cityIds.split(",");
                List<Integer> cityIdss = new ArrayList<>();
                if (dataVo.getCompany() == 2 && split.length > 0 ){
                if (dataVo.getCompany() == 2 && split.length > 0) {
                    for (String s : split) {
                        int intValue = Integer.parseInt(s);
                        cityIdss.add(intValue);
@@ -755,36 +760,35 @@
                }
            }
            return true;
        }catch (Exception e){
        } catch (Exception e) {
            return false;
        }
    }
    @ResponseBody
    @PostMapping("/base/coupon/queryCity")
    public List<CouponCity> queryCity(@RequestBody Integer id){
    public List<CouponCity> queryCity(@RequestBody Integer id) {
        List<CouponCity> list = cityService.list(new LambdaQueryWrapper<CouponCity>().eq(CouponCity::getCouponId, id));
        return list;
    }
    @ResponseBody
    @PostMapping("/base/coupon/queryStore")
    public List<Integer> queryStore(@RequestBody Integer id){
       return couStoreService.list(new LambdaQueryWrapper<CouponStore>().eq(CouponStore::getCouponId,id)).stream().map(CouponStore::getStoreId).collect(Collectors.toList());
    public List<Integer> queryStore(@RequestBody Integer id) {
        return couStoreService.list(new LambdaQueryWrapper<CouponStore>().eq(CouponStore::getCouponId, id)).stream().map(CouponStore::getStoreId).collect(Collectors.toList());
    }
    @PostMapping("/base/coupon/listRecord")
    @ResponseBody
    public List<Map<String,Object>> listRecord(@RequestBody CouponRecordQuery ofSearch){
    public List<Map<String, Object>> listRecord(@RequestBody CouponRecordQuery ofSearch) {
        Page<Object> objectPage = new Page<>(ofSearch.getOffset(), ofSearch.getLimit());
        return couponService.listRecord(objectPage,ofSearch.getId(),ofSearch.getIds(),ofSearch.getType());
        return couponService.listRecord(objectPage, ofSearch.getId(), ofSearch.getIds(), ofSearch.getType());
    }
    @PostMapping("/base/coupon/updateType")
    public void updateType(@RequestBody Long id){
    public void updateType(@RequestBody Long id) {
        couponService.updateType(id);
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java
@@ -40,27 +40,32 @@
    /**
     * 获取介绍有礼-参与用户记录表
     *
     * @return
     */
    @RequestMapping("/base/introduceUser/listAllUser")
    public List<IntroduceUser> listAllUser(@RequestBody IntroduceUserQuery query){
    public List<IntroduceUser> listAllUser(@RequestBody IntroduceUserQuery query) {
        return introduceUserService.listAll(query);
    }
    /**
     * 通过id获取介绍有礼
     *
     * @return
     */
    @RequestMapping("/base/introduce/getInfoById")
    public IntroduceRewards getInfoById(@RequestBody Integer id){
    public IntroduceRewards getInfoById(@RequestBody Integer id) {
        return idrService.getById(id);
    }
    /**
     * 获取介绍有礼记录表
     *
     * @return
     */
    @RequestMapping("/base/introduce/listAll")
    public List<IntroduceVO> listAll(@RequestBody IntroduceQuery query){
    public List<IntroduceVO> listAll(@RequestBody IntroduceQuery query) {
        Date date = new Date();
        List<IntroduceVO> introduceVOS = idrService.listAll(query);
        for (IntroduceVO introduceVO : introduceVOS) {
@@ -77,34 +82,36 @@
        }
        return introduceVOS;
    }
    /**
     * 增加/修改介绍有礼记录
     *
     * @return
     */
    @RequestMapping("/base/introduce/addIntroduce")
    public Object addIntroduce(@RequestBody IntroduceRewards  introduceRewards){
    public Object addIntroduce(@RequestBody IntroduceRewards introduceRewards) {
        if (introduceRewards.getId()!=null){
        if (introduceRewards.getId() != null) {
            IntroduceRewards byId = idrService.getById(introduceRewards.getId());
            // 判断当前活动有没有开始 如果开始了不能编辑赠送课时数 不能编辑活动开始时间
            Date endTime = byId.getEndTime();
            Date startTime = byId.getStartTime();
            Date local = new Date();
            if (startTime.before(local)&&endTime.after(local)){
            if (startTime.before(local) && endTime.after(local)) {
                // 证明当前活动已开始
                // 判断有没有修改开始时间
                if (!introduceRewards.getStartTime().equals(byId.getStartTime())){
                if (!introduceRewards.getStartTime().equals(byId.getStartTime())) {
                    // 表示不能修改开始时间
                    return 5002;
                }
                if (!introduceRewards.getGiveClass().equals(byId.getGiveClass())){
                if (!introduceRewards.getGiveClass().equals(byId.getGiveClass())) {
                    // 表示不能修改赠送课时数
                    return 5001;
                }
            }
            return idrService.updateById(introduceRewards);
        }else {
        } else {
            introduceRewards.setInsertTime(new Date());
            return idrService.save(introduceRewards);
        }
@@ -112,41 +119,42 @@
    /**
     * 上/下架介绍有礼 type = 1上架 type=2下架
     *
     * @return
     */
    @RequestMapping("/base/introduce/changeState")
    public Object changeState(@RequestBody IntroduceChangeStateDTO dto){
    public Object changeState(@RequestBody IntroduceChangeStateDTO dto) {
        return idrService.changeState(dto);
    }
    @PostMapping("/base/introduce/useOfRewards")
    public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody IntrduceOfUserRequest request){
    public List<PurchaseRecordVo> queryAppUsersofIntroduce(@RequestBody IntrduceOfUserRequest request) {
        List<PurchaseRecordVo> recordVos = new ArrayList<>();
        List<IntroduceRewards> list = idrService.list(new QueryWrapper<IntroduceRewards>()
                .ge("startTime",request.getStartTime())
                .lt("endTime",request.getEndTime()));
        if (request.getUserIds().size() > 0 && list.size() > 0){
                .ge("startTime", request.getStartTime())
                .lt("endTime", request.getEndTime()));
        if (request.getUserIds().size() > 0 && list.size() > 0) {
            IntroduceRewards introduceRewards = list.get(0);
            request.getUserIds().forEach( userId -> {
            request.getUserIds().forEach(userId -> {
                PurchaseRecordVo recordVo = new PurchaseRecordVo();
                recordVo.setPurchaseAmount("+"+introduceRewards.getGiveClass());
                recordVo.setPurchaseAmount("+" + introduceRewards.getGiveClass());
                recordVo.setPurchaseType("介绍有礼");
                recordVos.add(recordVo);
            } );
            });
        }
        return recordVos;
    }
    @PostMapping("/base/introduce/getGiftList")
    @ResponseBody
    public IntroduceRewards getGiftList(@RequestBody String cityCode){
    public IntroduceRewards getGiftList(@RequestBody String cityCode) {
        List<IntroduceRewards> list = idrService.list(new LambdaQueryWrapper<IntroduceRewards>()
                .eq(IntroduceRewards::getCityCode,cityCode)
                .le(IntroduceRewards::getStartTime,new Date())
                .ge(IntroduceRewards::getEndTime,new Date())
                .eq(IntroduceRewards::getCityCode, cityCode)
                .le(IntroduceRewards::getStartTime, new Date())
                .ge(IntroduceRewards::getEndTime, new Date())
                .orderByDesc(IntroduceRewards::getInsertTime)
                .last("LIMIT 1"));
        if (list.size()>0){
        if (list.size() > 0) {
            return list.get(0);
        }
        return null;
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -24,10 +24,7 @@
import com.dsh.activity.model.response.GoodsInfoOneVo;
import com.dsh.activity.model.response.StoreVos;
import com.dsh.activity.service.*;
import com.dsh.activity.util.GDMapGeocodingUtil;
import com.dsh.activity.util.StrUtils;
import com.dsh.activity.util.TokenUtil;
import com.dsh.activity.util.ToolUtil;
import com.dsh.activity.util.*;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -93,33 +90,34 @@
     * 门票上下架 state=1 上架 state=2 下架
     */
    @RequestMapping("/base/pointMerchars/changeState")
    public void changeState(@RequestBody CoachChangeStateVO dto){
    public void changeState(@RequestBody CoachChangeStateVO dto) {
         pmdsService.changeState(dto);
        pmdsService.changeState(dto);
    }
    /**
     * 根据id查询
     */
    @RequestMapping("/base/pointMerchars/getById")
    @ResponseBody
    public PointsMerchandise getById(@RequestBody Integer id){
    public PointsMerchandise getById(@RequestBody Integer id) {
        return pmdsService.getById(id);
    }
    /**
     * 门票核销
     */
    @RequestMapping("/base/course/changeState")
    @ResponseBody
    public Object changeState(@RequestBody CourseChangeStateDTO dto){
    public Object changeState(@RequestBody CourseChangeStateDTO dto) {
        return userPointsMerchandiseService.changeState(dto);
    }
    @RequestMapping("/base/pointMerchars/writeOff")
    public Object writeOff(@RequestBody WriteOffDTO dto){
    public Object writeOff(@RequestBody WriteOffDTO dto) {
        UserPointsMerchandise byId = userPointsMerchandiseService.getById(dto.getId());
        byId.setStoreId(dto.getVerifiStoreId());
        byId.setStatus(2);
@@ -128,53 +126,55 @@
        byId.setVerificationUserId(dto.getVerificationUserId());
        return userPointsMerchandiseService.updateById(byId);
    }
    @Autowired
    private OperatorClient operatorClient;
    @Resource
    private CouponCityService cityService;
    @ResponseBody
    @PostMapping("/base/pointMerchars/ticketList")
    public List<Map<String,Object>> ticketList(@RequestBody IntegralGoodsOfSearch ofSearch){
    public List<Map<String, Object>> ticketList(@RequestBody IntegralGoodsOfSearch ofSearch) {
        List<Map<String, Object>> result1 = pmdsService.ticketList(ofSearch);
        List<Map<String, Object>> result = new ArrayList<>();
        if(ofSearch.getObjType()==3){
        if (ofSearch.getObjType() == 3) {
            for (Map<String, Object> map : result1) {
                List<PointsMerchandiseStore> id = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>().eq(PointsMerchandiseStore::getPointsMerchandiseId, map.get("id")));
                List<Integer> collect = id.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
                if(collect.size()==0){
                if (collect.size() == 0) {
                    collect.add(-1);
                }
                if(collect.contains(ofSearch.getObjId())){
                    if(id.size()>1){
                        map.put("size",1);
                    }else {
                        map.put("size",0);
                if (collect.contains(ofSearch.getObjId())) {
                    if (id.size() > 1) {
                        map.put("size", 1);
                    } else {
                        map.put("size", 0);
                    }
                    result.add(map);
                }
            }
        }else if(ofSearch.getObjType()==2){
        } else if (ofSearch.getObjType() == 2) {
            for (Map<String, Object> map : result1) {
                // 拿到当前运营商下的门店的门票
                List<PointsMerchandiseStore> id = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>().in("storeId",ofSearch.getStoreIds()));
                List<PointsMerchandiseStore> id = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>().in("storeId", ofSearch.getStoreIds()));
                // 拿到积分商品id集合
                List<Integer> collect = id.stream().map(PointsMerchandiseStore::getPointsMerchandiseId).collect(Collectors.toList());
                if(collect.size()==0){
                if (collect.size() == 0) {
                    collect.add(-1);
                }
                Integer temp =(Integer)map.get("id");
                if (collect.contains(temp)){
                    if(id.size()>1){
                        map.put("size",1);
                    }else {
                        map.put("size",0);
                Integer temp = (Integer) map.get("id");
                if (collect.contains(temp)) {
                    if (id.size() > 1) {
                        map.put("size", 1);
                    } else {
                        map.put("size", 0);
                    }
                    result.add(map);
                }
                if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 1){
                if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 1) {
                    result.add(map);
                }
                if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 2){
                if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 2) {
                    // 获取到优惠券id 查询这个优惠券指定了哪些城市
                    Integer id1 = Integer.parseInt(String.valueOf(map.get("id")));
                    // 获取到运营商管理的省和市
@@ -190,94 +190,102 @@
                    // 优惠券指定的省
                    List<String> collect4 = couponId.stream().map(CouponCity::getCityCode)
                            .collect(Collectors.toList());
                    if (!Collections.disjoint(collect3, collect4)){
                    if (!Collections.disjoint(collect3, collect4)) {
                        result.add(map);
                    }else{
                    } else {
                        // 如果没有交集 那么还需要判断运营商是否管理了整个省
                    }
                }
                if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 3){
                if (Integer.parseInt(String.valueOf(map.get("useScope"))) == 3) {
                    // 获取到优惠券id 查询这个优惠券指定了哪些门店
                    Integer id3 = Integer.parseInt(String.valueOf(map.get("id")));
                    // 当前运营商管理的门店ids
                    List<Integer> storeIds = ofSearch.getStoreIds();
                    // 优惠券指定的门店
                    List<Integer> collect5 = cstoreService.list(new QueryWrapper<CouponStore>().eq("couponId",id3)
                    List<Integer> collect5 = cstoreService.list(new QueryWrapper<CouponStore>().eq("couponId", id3)
                            .in("storeId", storeIds)).stream().map(CouponStore::getStoreId)
                            .collect(Collectors.toList());
                    // 判断两个集合是否相交
                    // 比较两个集合中是否有相同的元素;当两个集合中没有相同元素时返回true,
                    // 当有相同元素时返回false。
                    if (!Collections.disjoint(collect5, storeIds)){
                    if (!Collections.disjoint(collect5, storeIds)) {
                        result.add(map);
                    }
                }
            }
        } else {
            result=result1;
            result = result1;
        }
        if (result.size() > 0){
        if (result.size() > 0) {
            for (Map<String, Object> stringObjectMap : result) {
                Integer o = (Integer) stringObjectMap.get("id");
                String startTime = (String) stringObjectMap.get("startTime");
                String endTime = (String) stringObjectMap.get("endTime");
                stringObjectMap.put("timeValue",startTime + "至"+endTime);
                stringObjectMap.put("timeValue", startTime + "至" + endTime);
                int count1 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                        .eq(UserPointsMerchandise::getPointsMerchandiseId, o));
                int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                        .eq(UserPointsMerchandise::getPointsMerchandiseId, o)
                        .eq(UserPointsMerchandise::getStatus,2));
                stringObjectMap.put("hasExchangeQty",count1);
                stringObjectMap.put("hasPickQty",count2);
                        .eq(UserPointsMerchandise::getStatus, 2));
                stringObjectMap.put("hasExchangeQty", count1);
                stringObjectMap.put("hasPickQty", count2);
                stringObjectMap.put("activeStatus",dealTimeStatus(startTime,endTime));
                stringObjectMap.put("activeStatus", dealTimeStatus(startTime, endTime));
            }
            if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())){
                result = dealTimeData(result,ofSearch.getActiveStatus());
            if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())) {
                result = dealTimeData(result, ofSearch.getActiveStatus());
            }
        }
        return result;
    }
    @ResponseBody
    @PostMapping("/base/pointMerchars/queryGoodsListSearch")
    public List<Map<String,Object>> getIntegralGoodsListOfSearch(@RequestBody IntegralGoodsOfSearch ofSearch){
    public List<Map<String, Object>> getIntegralGoodsListOfSearch(@RequestBody IntegralGoodsOfSearch ofSearch) {
        System.out.println(ofSearch);
        List<Map<String, Object>> mapList = pmdsService.queryGoodsListOfSearch(ofSearch);
        if (mapList.size() > 0){
        if (mapList.size() > 0) {
            for (Map<String, Object> stringObjectMap : mapList) {
                Integer o = (Integer) stringObjectMap.get("id");
                String startTime = (String) stringObjectMap.get("startTime");
                String endTime = (String) stringObjectMap.get("endTime");
                stringObjectMap.put("timeValue",startTime + "至"+endTime);
                stringObjectMap.put("timeValue", startTime + "至" + endTime);
                int count1 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                        .eq(UserPointsMerchandise::getPointsMerchandiseId, o)
                        .eq(UserPointsMerchandise::getStatus,2));
                        .eq(UserPointsMerchandise::getStatus, 2));
                int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                        .eq(UserPointsMerchandise::getPointsMerchandiseId, o)
                        );
                stringObjectMap.put("hasExchangeQty",count1);
                stringObjectMap.put("hasPickQty",count2);
                );
                stringObjectMap.put("hasExchangeQty", count1);
                stringObjectMap.put("hasPickQty", count2);
                stringObjectMap.put("activeStatus",dealTimeStatus(startTime,endTime));
                stringObjectMap.put("activeStatus", dealTimeStatus(startTime, endTime));
            }
            if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())){
                mapList = dealTimeData(mapList,ofSearch.getActiveStatus());
            if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())) {
                mapList = dealTimeData(mapList, ofSearch.getActiveStatus());
            }
        }
        System.out.println("mapList->"+mapList);
        System.out.println("mapList->" + mapList);
        return mapList;
    }
    /**
     * 获取积分商票消费金额
     */
    @ResponseBody
    @RequestMapping("/base/pointMerchars/getAmount")
    public List<PointMerchandiseIncomeVo> getAmount(){
        return  userPointsMerchandiseService.getAmount();
    public List<PointMerchandiseIncomeVo> getAmount() {
        return userPointsMerchandiseService.getAmount();
    }
    @Resource
    private StoreClient storeClient;
    @Autowired
    private PointsMerchandiseStoreService pointsMerchandiseStoreService;
    @ResponseBody
    @PostMapping("/base/pointMerchars/convertGoods")
@@ -289,43 +297,65 @@
        String cityCode = geocode.get("cityCode");
        List<PointsMerchandiseCity> cityCode1 = pmdsCityService.list(new QueryWrapper<PointsMerchandiseCity>().eq("cityCode", cityCode));
        List<Integer> cIds = new ArrayList<>();
        for (PointsMerchandiseCity pointsMerchandiseCity : cityCode1) {
            cIds.add(pointsMerchandiseCity.getPointsMerchandiseId());
//        if(null != geocode) {
        List<Store> stores = storeClient.queryStoreList(new QueryStoreList(provinceCode, cityCode));
        Store s = null;
        Double d = 0D;
        for (Store store : stores) {
            Map<String, Double> distance = GeodesyUtil.getDistance(location.getLon() + "," + location.getLat(), store.getLon() + "," + store.getLat());
            Double wgs84 = distance.get("WGS84");
            if (s == null || d > wgs84) {
                s = store;
                d = wgs84;
            }
        }
//        }
//        List<PointsMerchandiseCity> cityCode1 = pmdsCityService.list(new QueryWrapper<PointsMerchandiseCity>().eq("cityCode", cityCode));
        List<Integer> cIds = new ArrayList<>();
//        for (PointsMerchandiseCity pointsMerchandiseCity : cityCode1) {
//            cIds.add(pointsMerchandiseCity.getPointsMerchandiseId());
//        }
        List<PointsMerchandiseStore> storesids = pointsMerchandiseStoreService.list(new QueryWrapper<PointsMerchandiseStore>().eq("storeId", s.getId()));
        for (PointsMerchandiseStore storesid : storesids) {
            cIds.add(storesid.getPointsMerchandiseId());
        }
//        if (cIds.size()>0) {
            List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>()
                    .eq("state", 1)
                    .eq("shelves", 1)
                    .gt("endTime", new Date()).last("ORDER BY sort desc,insertTime desc"));
            if (merchandises.size() > 0){
                for (PointsMerchandise merchandise : merchandises) {
                    IntegralCommodity integralCommodity = new IntegralCommodity();
                    integralCommodity.setCommodityId(merchandise.getId());
                    integralCommodity.setCommodityImg(merchandise.getCover());
                    integralCommodity.setCommodityName(merchandise.getName());
                    integralCommodity.setCommodityPrice(merchandise.getPrice());
                    integralCommodity.setGoodsType(merchandise.getType());
                    integralCommodity.setSort(merchandise.getSort());
                    commodity.add(integralCommodity);
                }
        List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>().in("id", cIds)
                .eq("state", 1)
                .eq("shelves", 1)
                .gt("endTime", new Date()).last("ORDER BY sort desc,insertTime desc"));
        if (merchandises.size() > 0) {
            for (PointsMerchandise merchandise : merchandises) {
                IntegralCommodity integralCommodity = new IntegralCommodity();
                integralCommodity.setCommodityId(merchandise.getId());
                integralCommodity.setCommodityImg(merchandise.getCover());
                integralCommodity.setCommodityName(merchandise.getName());
                integralCommodity.setCommodityPrice(merchandise.getPrice());
                integralCommodity.setGoodsType(merchandise.getType());
                integralCommodity.setSort(merchandise.getSort());
                commodity.add(integralCommodity);
            }
//            }
        }
        System.out.println(commodity);
        return commodity;
    }
@Resource
private CoursePackageClient coursePackageClient;
    @Resource
    private CoursePackageClient coursePackageClient;
    @Autowired
     private PointsMerchandiseService pointsMerchandiseService;
    private PointsMerchandiseService pointsMerchandiseService;
    @ResponseBody
    @PostMapping("/base/pointMerchars/getCommoditys")
    public PointMerchandiseVo getVicinityGoods(@RequestBody CommodityRequest request){
    public PointMerchandiseVo getVicinityGoods(@RequestBody CommodityRequest request) {
//        if (request.getShopId()!=null){
//            List<CoursePackage> coursePackages = coursePackageClient.queryByStoreId(request.getShopId());
//            List<Integer> coursIds = new ArrayList<>();
@@ -340,26 +370,25 @@
//        }
        PointMerchandiseVo pointMerchandiseVo = new PointMerchandiseVo();
        List<PointsMerchandise> list =  new ArrayList<>();
        List<PointsMerchandise> list = new ArrayList<>();
        String provinceCode = "";
        String cityCode = "";
        if (ToolUtil.isEmpty(request.getLon()) && ToolUtil.isEmpty(request.getLat())){
        if (ToolUtil.isEmpty(request.getLon()) && ToolUtil.isEmpty(request.getLat())) {
            return pointMerchandiseVo;
        }
        try {
            Map<String, String> geocode = gdMapGeocodingUtil.geocode(request.getLon(), request.getLat());
            provinceCode = geocode.get("provinceCode");
            cityCode = geocode.get("cityCode");
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
        list = pmdsService.list(new QueryWrapper<PointsMerchandise>()
                .eq("state", 1)
                .eq("shelves",1).le("startTime",new Date()).ge("endTime",new Date()));
        if (list.size() > 0 ){
                .eq("shelves", 1).le("startTime", new Date()).ge("endTime", new Date()));
        if (list.size() > 0) {
            Iterator<PointsMerchandise> iterator = list.iterator();
            while (iterator.hasNext()) {
                PointsMerchandise merchandise = iterator.next();
@@ -373,18 +402,18 @@
    }
    @PostMapping("/base/pointMerchars/getRedeemedNums")
    public int getRedeemedQuantity(@RequestBody Integer goodId){
    public int getRedeemedQuantity(@RequestBody Integer goodId) {
        return upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                .eq("pointsMerchandiseId",goodId));
                .eq("pointsMerchandiseId", goodId));
    }
    @PostMapping("/base/pointMerchars/getGoodDetailsWithIdOne")
    public ProductDetailsVo getGoodDetailsWithIdOne(@RequestBody Integer id){
    public ProductDetailsVo getGoodDetailsWithIdOne(@RequestBody Integer id) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        ProductDetailsVo detailsVo = new ProductDetailsVo();
        PointsMerchandise merchandise = pmdsService.getById(id);
        detailsVo.setCardType(merchandise.getCardType());
        switch (merchandise.getType()){
        switch (merchandise.getType()) {
            case 2:
//                课包
                CoursePackage coursePackage = cpClient.queryCoursePackageById(merchandise.getCoursePackageId());
@@ -406,37 +435,37 @@
                detailsVo.setGoodName(coursePackage.getName());
                detailsVo.setBelongsScope(merchandise.getUserPopulation());
                int coursePackageNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId",merchandise.getId() ));
                        .eq("pointsMerchandiseId", merchandise.getId()));
                detailsVo.setRedeemedNum(coursePackageNums);
                detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - coursePackageNums, 0));
                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
                if (merchandise.getRedemptionMethod() == 1){
                if (merchandise.getRedemptionMethod() == 1) {
                    detailsVo.setExchangeType(1);
                    detailsVo.setIntegral(merchandise.getIntegral());
                }else {
                } else {
                    detailsVo.setExchangeType(2);
                    detailsVo.setIntegral(merchandise.getIntegral());
                    detailsVo.setCash(merchandise.getCash());
                }
                detailsVo.setCost(merchandise.getPrice());
                if (merchandise.getUseScope() == 1){
                if (merchandise.getUseScope() == 1) {
                    detailsVo.setExchangeAddrType(1);
                    detailsVo.setBelongs("全国通用");
                }else if (merchandise.getUseScope() == 2){
                } else if (merchandise.getUseScope() == 2) {
                    detailsVo.setExchangeAddrType(2);
                    detailsVo.setBelongs(merchandise.getProvince()+"|"+merchandise.getCity() + "用户可用");
                }else {
                    detailsVo.setBelongs(merchandise.getProvince() + "|" + merchandise.getCity() + "用户可用");
                } else {
                    detailsVo.setExchangeAddrType(3);
                    List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
                            .eq("pointsMerchandiseId",merchandise.getId() ));
                            .eq("pointsMerchandiseId", merchandise.getId()));
                    PointsMerchandiseStore pointsMerchandiseStore = list.get(0);
                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId());
                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
                    detailsVo.setBelongs(courseOfStore.getStoreName() + "可用");
                }
                List<CoursePackagePaymentConfig> courseConfigList = cpcfigClient.getCourseConfigList(coursePackage.getId());
                for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
                    if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())){
                    if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) {
                        detailsVo.setCourseHours(coursePackagePaymentConfig.getClassHours());
                        break;
                    }
@@ -469,31 +498,31 @@
                detailsVo.setGoodName(merchandise.getName());
                detailsVo.setBelongsScope(merchandise.getUserPopulation());
                int count = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId",merchandise.getId() ));
                        .eq("pointsMerchandiseId", merchandise.getId()));
                detailsVo.setRedeemedNum(count);
                detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - count, 0));
                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
                detailsVo.setExchangeType(merchandise.getRedemptionMethod());
                if (merchandise.getRedemptionMethod() == 1){
                if (merchandise.getRedemptionMethod() == 1) {
                    detailsVo.setIntegral(merchandise.getIntegral());
                }else {
                } else {
                    detailsVo.setIntegral(merchandise.getIntegral());
                    detailsVo.setCash(merchandise.getCash());
                }
                detailsVo.setCost(merchandise.getPrice());
                if (merchandise.getUseScope() == 1){
                if (merchandise.getUseScope() == 1) {
                    detailsVo.setExchangeAddrType(1);
                    detailsVo.setBelongs("全国通用");
                }else if (merchandise.getUseScope() == 2){
                } else if (merchandise.getUseScope() == 2) {
                    detailsVo.setExchangeAddrType(2);
                    detailsVo.setBelongs(merchandise.getProvince()+"|"+merchandise.getCity() + "用户可用");
                }else {
                    detailsVo.setBelongs(merchandise.getProvince() + "|" + merchandise.getCity() + "用户可用");
                } else {
                    detailsVo.setExchangeAddrType(3);
                    List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
                            .eq("pointsMerchandiseId",merchandise.getId() ));
                            .eq("pointsMerchandiseId", merchandise.getId()));
                    PointsMerchandiseStore pointsMerchandiseStore = list.get(0);
                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId());
                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
                    detailsVo.setBelongs(courseOfStore.getStoreName() + "可用");
                }
                detailsVo.setStartTime(format.format(merchandise.getStartTime()));
@@ -508,7 +537,7 @@
                detailsVo.setGoodId(coupon.getId());
                List<String> list3 = new ArrayList<>();
                list3.add(ToolUtil.isEmpty(coupon.getCover()) ? "" : coupon.getCover());
                if (ToolUtil.isNotEmpty(coupon.getProductImages())){
                if (ToolUtil.isNotEmpty(coupon.getProductImages())) {
                    list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")));
                }
                detailsVo.setPics(list3);
@@ -524,33 +553,33 @@
                detailsVo.setGoodName(coupon.getName());
                detailsVo.setBelongsScope(coupon.getUserPopulation());
                int couponNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId",merchandise.getId() ));
                        .eq("pointsMerchandiseId", merchandise.getId()));
                detailsVo.setRedeemedNum(couponNums);
                detailsVo.setResidueNum(Math.max(coupon.getQuantityIssued() - couponNums, 0));
                detailsVo.setPerLimit(coupon.getPickUpQuantity());
                detailsVo.setExchangeType(coupon.getRedemptionMethod());
                if (coupon.getRedemptionMethod() == 1){
                if (coupon.getRedemptionMethod() == 1) {
                    detailsVo.setIntegral(coupon.getIntegral().intValue());
                }else {
                } else {
                    detailsVo.setIntegral(coupon.getIntegral().intValue());
                    detailsVo.setCash(coupon.getCash());
                }
                if (coupon.getUseScope() == 1){
                if (coupon.getUseScope() == 1) {
                    detailsVo.setExchangeAddrType(1);
                    detailsVo.setBelongs("全国通用");
                }else if (coupon.getUseScope() == 2){
                } else if (coupon.getUseScope() == 2) {
                    detailsVo.setExchangeAddrType(2);
                    List<CouponCity> list = ccityService.list(new LambdaQueryWrapper<CouponCity>()
                            .eq(CouponCity::getCouponId, coupon.getId()));
                    if (list.size() > 0){
                        detailsVo.setBelongs(list.get(0).getProvince()+"|"+list.get(0).getCity() + "用户可用");
                    if (list.size() > 0) {
                        detailsVo.setBelongs(list.get(0).getProvince() + "|" + list.get(0).getCity() + "用户可用");
                    }
                }else {
                } else {
                    detailsVo.setExchangeAddrType(3);
                    List<CouponStore> list = cstoreService.list(new QueryWrapper<CouponStore>()
                            .eq("couponId",coupon.getId() ));
                            .eq("couponId", coupon.getId()));
                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(list.get(0).getStoreId());
                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
                    detailsVo.setBelongs(courseOfStore.getStoreName() + "可用");
                }
                detailsVo.setStartTime(format.format(coupon.getStartTime()));
                detailsVo.setEndTime(format.format(coupon.getEndTime()));
@@ -567,18 +596,18 @@
    @Autowired
    private UserCouponService userCouponService;
    @PostMapping("/base/pointMerchars/getGoodDetails")
    public ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest){
    public ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        ProductDetailsVo detailsVo = new ProductDetailsVo();
        PointsMerchandise merchandise = pmdsService.getById(detailRequest.getGoodId());
        if (merchandise!=null) {
        if (merchandise != null) {
            detailsVo.setCardType(merchandise.getCardType());
        }
        switch (detailRequest.getGoodsType()){
        switch (detailRequest.getGoodsType()) {
            case 2:
//                课包
                CoursePackage coursePackage = cpClient.queryCoursePackageById(merchandise.getCoursePackageId());
@@ -604,37 +633,37 @@
                detailsVo.setGoodName(coursePackage.getName());
                detailsVo.setBelongsScope(merchandise.getUserPopulation());
                int coursePackageNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId",merchandise.getId() ));
                        .eq("pointsMerchandiseId", merchandise.getId()));
                detailsVo.setRedeemedNum(coursePackageNums);
                detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - coursePackageNums, 0));
                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
                if (merchandise.getRedemptionMethod() == 1){
                if (merchandise.getRedemptionMethod() == 1) {
                    detailsVo.setExchangeType(1);
                    detailsVo.setIntegral(merchandise.getIntegral());
                }else {
                } else {
                    detailsVo.setExchangeType(2);
                    detailsVo.setIntegral(merchandise.getIntegral());
                    detailsVo.setCash(merchandise.getCash());
                }
                detailsVo.setCost(merchandise.getPrice());
                if (merchandise.getUseScope() == 1){
                if (merchandise.getUseScope() == 1) {
                    detailsVo.setExchangeAddrType(1);
                    detailsVo.setBelongs("全国通用");
                }else if (merchandise.getUseScope() == 2){
                } else if (merchandise.getUseScope() == 2) {
                    detailsVo.setExchangeAddrType(2);
                    detailsVo.setBelongs(merchandise.getProvince()+"|"+merchandise.getCity() + "用户可用");
                }else {
                    detailsVo.setBelongs(merchandise.getProvince() + "|" + merchandise.getCity() + "用户可用");
                } else {
                    detailsVo.setExchangeAddrType(3);
                    List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
                            .eq("pointsMerchandiseId",merchandise.getId() ));
                            .eq("pointsMerchandiseId", merchandise.getId()));
                    PointsMerchandiseStore pointsMerchandiseStore = list.get(0);
                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId());
                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
                    detailsVo.setBelongs(courseOfStore.getStoreName() + "可用");
                }
                List<CoursePackagePaymentConfig> courseConfigList = cpcfigClient.getCourseConfigList(coursePackage.getId());
                for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
                    if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())){
                    if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) {
                        detailsVo.setCourseHours(coursePackagePaymentConfig.getClassHours());
                        break;
                    }
@@ -667,31 +696,31 @@
                detailsVo.setGoodName(merchandise.getName());
                detailsVo.setBelongsScope(merchandise.getUserPopulation());
                int count = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
                        .eq("pointsMerchandiseId",merchandise.getId() ));
                        .eq("pointsMerchandiseId", merchandise.getId()));
                detailsVo.setRedeemedNum(count);
                detailsVo.setResidueNum(Math.max(merchandise.getQuantityIssued() - count, 0));
                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
                detailsVo.setExchangeType(merchandise.getRedemptionMethod());
                if (merchandise.getRedemptionMethod() == 1){
                if (merchandise.getRedemptionMethod() == 1) {
                    detailsVo.setIntegral(merchandise.getIntegral());
                }else {
                } else {
                    detailsVo.setIntegral(merchandise.getIntegral());
                    detailsVo.setCash(merchandise.getCash());
                }
                detailsVo.setCost(merchandise.getPrice());
                if (merchandise.getUseScope() == 1){
                if (merchandise.getUseScope() == 1) {
                    detailsVo.setExchangeAddrType(1);
                    detailsVo.setBelongs("全国通用");
                }else if (merchandise.getUseScope() == 2){
                } else if (merchandise.getUseScope() == 2) {
                    detailsVo.setExchangeAddrType(2);
                    detailsVo.setBelongs(merchandise.getProvince()+"|"+merchandise.getCity() + "用户可用");
                }else {
                    detailsVo.setBelongs(merchandise.getProvince() + "|" + merchandise.getCity() + "用户可用");
                } else {
                    detailsVo.setExchangeAddrType(3);
                    List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
                            .eq("pointsMerchandiseId",merchandise.getId() ));
                            .eq("pointsMerchandiseId", merchandise.getId()));
                    PointsMerchandiseStore pointsMerchandiseStore = list.get(0);
                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId());
                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
                    detailsVo.setBelongs(courseOfStore.getStoreName() + "可用");
                }
                detailsVo.setStartTime(format.format(merchandise.getStartTime()));
@@ -706,7 +735,7 @@
                detailsVo.setGoodId(coupon.getId());
                List<String> list3 = new ArrayList<>();
                list3.add(ToolUtil.isEmpty(coupon.getCover()) ? "" : coupon.getCover());
                if (ToolUtil.isNotEmpty(coupon.getProductImages())){
                if (ToolUtil.isNotEmpty(coupon.getProductImages())) {
                    list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")));
                }
                detailsVo.setPics(list3);
@@ -725,7 +754,6 @@
//                        .eq("pointsMerchandiseId",merchandise.getId() ));
                int couponCounts = userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId", coupon.getId()));
//                detailsVo.setRedeemedNum(coupon.getPickUpQuantity());
                detailsVo.setRedeemedNum(couponCounts);
@@ -734,28 +762,28 @@
                detailsVo.setPerLimit(coupon.getPickUpQuantity());
                detailsVo.setExchangeType(coupon.getRedemptionMethod());
                if (coupon.getRedemptionMethod() == 1){
                if (coupon.getRedemptionMethod() == 1) {
                    detailsVo.setIntegral(coupon.getIntegral().intValue());
                }else {
                } else {
                    detailsVo.setIntegral(coupon.getIntegral().intValue());
                    detailsVo.setCash(coupon.getCash());
                }
                if (coupon.getUseScope() == 1){
                if (coupon.getUseScope() == 1) {
                    detailsVo.setExchangeAddrType(1);
                    detailsVo.setBelongs("全国通用");
                }else if (coupon.getUseScope() == 2){
                } else if (coupon.getUseScope() == 2) {
                    detailsVo.setExchangeAddrType(2);
                    List<CouponCity> list = ccityService.list(new LambdaQueryWrapper<CouponCity>()
                            .eq(CouponCity::getCouponId, coupon.getId()));
                    if (list.size() > 0){
                        detailsVo.setBelongs(list.get(0).getProvince()+"|"+list.get(0).getCity() + "用户可用");
                    if (list.size() > 0) {
                        detailsVo.setBelongs(list.get(0).getProvince() + "|" + list.get(0).getCity() + "用户可用");
                    }
                }else {
                } else {
                    detailsVo.setExchangeAddrType(3);
                    List<CouponStore> list = cstoreService.list(new QueryWrapper<CouponStore>()
                            .eq("couponId",coupon.getId() ));
                            .eq("couponId", coupon.getId()));
                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(list.get(0).getStoreId());
                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
                    detailsVo.setBelongs(courseOfStore.getStoreName() + "可用");
                }
                detailsVo.setStartTime(format.format(coupon.getStartTime()));
                detailsVo.setEndTime(format.format(coupon.getEndTime()));
@@ -776,42 +804,42 @@
    @ResponseBody
    @PostMapping("/base/pointMerchars/getDetailsOfExchange")
    public ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId){
    public ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId) {
        ExchangeDetailsVo detailsVo = new ExchangeDetailsVo();
        List<ExchangeDetailsResponse> responses = new ArrayList<>();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        List<UserPointsMerchandise> pointsMerchandises = upmseService.list(new QueryWrapper<UserPointsMerchandise>()
                .eq("userId",appUserId ).eq("payStatus",2));
                .eq("userId", appUserId).eq("payStatus", 2));
        List<Coupon> list1 = couponService.list();
        List<Integer> ids = new ArrayList<>();
        for (Coupon coupon : list1) {
            if (coupon.getDistributionMethod()==1) {
            if (coupon.getDistributionMethod() == 1) {
                ids.add(coupon.getId());
            }
        }
        List<UserCoupon> userCoupons = new ArrayList<>();
        if (ids.size()>0) {
           userCoupons = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", appUserId).in("couponId", ids));
        if (ids.size() > 0) {
            userCoupons = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", appUserId).in("couponId", ids));
        }
        if (pointsMerchandises.size() > 0 ){
        if (pointsMerchandises.size() > 0) {
            for (UserPointsMerchandise pointsMerchandise : pointsMerchandises) {
                PointsMerchandise merchandise = pmdsService.getById(pointsMerchandise.getPointsMerchandiseId());
                if (merchandise==null){
                if (merchandise == null) {
                    continue;
                }
                ExchangeDetailsResponse detailsResponse = new ExchangeDetailsResponse();
                detailsResponse.setDetailsId(pointsMerchandise.getId());
                detailsResponse.setGoodName(merchandise.getName());
                if (merchandise.getRedemptionMethod() == 1){
                if (merchandise.getRedemptionMethod() == 1) {
                    detailsResponse.setExchangeType(1);
                    detailsResponse.setIntegral(merchandise.getIntegral());
                }else if (merchandise.getRedemptionMethod() == 2){
                } else if (merchandise.getRedemptionMethod() == 2) {
                    detailsResponse.setExchangeType(2);
                    detailsResponse.setIntegral(merchandise.getIntegral());
                    detailsResponse.setCash(merchandise.getCash());
                }else if (merchandise.getRedemptionMethod() == 3){
                } else if (merchandise.getRedemptionMethod() == 3) {
                    detailsResponse.setExchangeType(3);
                    detailsResponse.setCash(merchandise.getCash());
                }
@@ -819,35 +847,37 @@
                detailsResponse.setEndTime(simpleDateFormat.format(merchandise.getEndTime()));
                detailsResponse.setUseStatus(pointsMerchandise.getStatus() == 1 ? 2 : 1);
                detailsResponse.setGoodType(merchandise.getType());
                if(merchandise.getType()==3){
                if (merchandise.getType() == 3) {
                    detailsResponse.setCardType(merchandise.getCardType());
                    List<Integer> sids = new ArrayList<>();
                    detailsResponse.setUserId(appUserId);
                    if(merchandise.getUseScope()==1){
                    if (merchandise.getUseScope() == 1) {
                        sids.add(0);
                        detailsResponse.setSid(sids);
                        detailsResponse.setRid(new ArrayList<>());
                    }else if(merchandise.getUseScope()==2){
                    } else if (merchandise.getUseScope() == 2) {
                        // 指定城市
                        List<PointsMerchandiseCity> list = pmdsCityService.list(new LambdaQueryWrapper<PointsMerchandiseCity>().eq(PointsMerchandiseCity::getPointsMerchandiseId, merchandise.getId()));
                        List<String> collect = list.stream().map(PointsMerchandiseCity::getCityCode).collect(Collectors.toList());
                        if(collect.size()==0){
                        if (collect.size() == 0) {
                            collect.add("-1");
                        }
                        List<Integer> storeIds = stoClient.queryStoreIdByCityCode(collect);
                        detailsResponse.setSid(storeIds);
                        if(storeIds.size()>0){
                        if (storeIds.size() > 0) {
                            // 获取rid
                            List<Integer> rid= stoClient.querySiteIdById(storeIds);
                            List<Integer> rid = stoClient.querySiteIdById(storeIds);
                            detailsResponse.setRid(rid);
                        }
                    }else if(merchandise.getUseScope()==3){
                    } else if (merchandise.getUseScope() == 3) {
                        // 指定门店
                        List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>()
                                .eq(PointsMerchandiseStore::getPointsMerchandiseId, merchandise.getId()));
                        List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
                        detailsResponse.setSid(collect);
                        if(collect.size()>0){
                        if (collect.size() > 0) {
                            // 获取rid
//                            List<Integer> rid= stoClient.querySiteIdById(collect);
                            //detailsResponse.setRid(rid);
@@ -876,7 +906,9 @@
                            }
                        }
                    }
                    if (merchandise.getCardType()==1){
                    if (merchandise.getCardType() == 1) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(pointsMerchandise.getInsertTime());
@@ -908,7 +940,7 @@
                        }
                    } else if (merchandise.getCardType()==2) {
                    } else if (merchandise.getCardType() == 2) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(pointsMerchandise.getInsertTime());
@@ -920,11 +952,11 @@
                        detailsResponse.setEndTime(endDate);
                        Date now = new Date();
                        if (now.after(end)){
                        if (now.after(end)) {
                            detailsResponse.setUseStatus(3);
                        }
                    } else if (merchandise.getCardType()==3){
                    } else if (merchandise.getCardType() == 3) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(pointsMerchandise.getInsertTime());
@@ -936,11 +968,11 @@
                        detailsResponse.setEndTime(endDate);
                        Date now = new Date();
                        if (now.after(end)){
                        if (now.after(end)) {
                            detailsResponse.setUseStatus(3);
                        }
                    } else if (merchandise.getCardType()==4) {
                    } else if (merchandise.getCardType() == 4) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(pointsMerchandise.getInsertTime());
@@ -952,7 +984,7 @@
                        detailsResponse.setEndTime(endDate);
                        Date now = new Date();
                        if (now.after(end)){
                        if (now.after(end)) {
                            detailsResponse.setUseStatus(3);
                        }
@@ -965,21 +997,21 @@
            detailsVo.setDetailsResponses(responses);
        }
        if (userCoupons.size()>0){
        if (userCoupons.size() > 0) {
            for (UserCoupon userCoupon : userCoupons) {
                Coupon c = couponService.getById(userCoupon.getCouponId());
                if (c==null|| c.getRedemptionMethod()==null){
                if (c == null || c.getRedemptionMethod() == null) {
                    continue;
                }
                ExchangeDetailsResponse detailsResponse = new ExchangeDetailsResponse();
                detailsResponse.setDetailsId(Long.valueOf(c.getId()));
                detailsResponse.setGoodName(c.getName());
                if (c.getRedemptionMethod() == 1){
                if (c.getRedemptionMethod() == 1) {
                    detailsResponse.setExchangeType(1);
                    detailsResponse.setIntegral(c.getIntegral().intValue());
                }else {
                } else {
                    detailsResponse.setExchangeType(2);
                    detailsResponse.setIntegral(c.getIntegral().intValue());
                    detailsResponse.setCash(c.getCash());
@@ -1001,18 +1033,18 @@
    }
@Autowired
private PointsMerchandiseStoreService storeService;
    @Autowired
    private PointsMerchandiseStoreService storeService;
    @ResponseBody
    @PostMapping("/base/pointMerchars/getSpecificsOfGoods")
    public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId){
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
    public PointDetailsVo getSpecificsOfGoods(@RequestBody Long speMercharsId) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        PointDetailsVo detailsVo = new PointDetailsVo();
        UserPointsMerchandise byId = upmseService.getById(speMercharsId);
        if (ToolUtil.isNotEmpty(byId)){
        if (ToolUtil.isNotEmpty(byId)) {
            List<PointsMerchandiseStore> stores = storeService.list(new QueryWrapper<PointsMerchandiseStore>().eq("pointsMerchandiseId", byId.getPointsMerchandiseId()));
            PointsMerchandise pmdsServiceById = pmdsService.getById(byId.getPointsMerchandiseId());
@@ -1021,14 +1053,14 @@
            detailsVo.setExchangeAddrType(pmdsServiceById.getUseScope());
            detailsVo.setExchangeType(pmdsServiceById.getRedemptionMethod());
            detailsVo.setGoodType(pmdsServiceById.getType());
            if (pmdsServiceById.getRedemptionMethod() == 1){
            if (pmdsServiceById.getRedemptionMethod() == 1) {
                detailsVo.setIntegral(pmdsServiceById.getIntegral());
            }else {
            } else {
                detailsVo.setCash(pmdsServiceById.getCash());
                detailsVo.setIntegral(pmdsServiceById.getIntegral());
            }
            detailsVo.setDetailsId(byId.getId());
            switch (pmdsServiceById.getType()){
            switch (pmdsServiceById.getType()) {
                case 1:
                case 3:
                    List<String> list10 = Arrays.asList(StrUtils.splitStr2StrArr(pmdsServiceById.getProductImages(), ","));
@@ -1040,13 +1072,11 @@
                    for (PointsMerchandiseStore store : stores) {
                        StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(store.getStoreId());
                    detailsVo.setBelongs(courseOfStore.getStoreName());
                        detailsVo.setBelongs(courseOfStore.getStoreName());
                    }
                    String format = dateFormat5.format(byId.getInsertTime());
                    detailsVo.setOrderTime(format);
                    list2.add(pmdsServiceById.getCover());
@@ -1062,9 +1092,7 @@
                    });
                    if (pmdsServiceById.getCardType()==1){
                    if (pmdsServiceById.getCardType() == 1) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(byId.getInsertTime());
@@ -1095,9 +1123,8 @@
                        }
                    } else if (pmdsServiceById.getCardType()==2) {
                    } else if (pmdsServiceById.getCardType() == 2) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        Calendar calendar = Calendar.getInstance();
@@ -1110,13 +1137,12 @@
                        detailsVo.setEndTime(endDate);
                        Date now = new Date();
                        if (now.after(end)){
                        if (now.after(end)) {
                            detailsVo.setUseType(3);
                        }
                    } else if (pmdsServiceById.getCardType()==3) {
                    } else if (pmdsServiceById.getCardType() == 3) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        Calendar calendar = Calendar.getInstance();
@@ -1129,11 +1155,11 @@
                        detailsVo.setEndTime(endDate);
                        Date now = new Date();
                        if (now.after(end)){
                        if (now.after(end)) {
                            detailsVo.setUseType(3);
                        }
                    } else if (pmdsServiceById.getCardType()==4) {
                    } else if (pmdsServiceById.getCardType() == 4) {
                        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                        Calendar calendar = Calendar.getInstance();
                        calendar.setTime(byId.getInsertTime());
@@ -1145,14 +1171,11 @@
                        detailsVo.setEndTime(endDate);
                        Date now = new Date();
                        if (now.after(end)){
                        if (now.after(end)) {
                            detailsVo.setUseType(3);
                        }
                    }
                    break;
@@ -1196,30 +1219,30 @@
            detailsVo.setGoodName(pmdsServiceById.getName());
            // 2.0
            if (detailsVo.getStartTime()==null) {
            if (detailsVo.getStartTime() == null) {
                detailsVo.setStartTime(simpleDateFormat.format(byId.getInsertTime()));
                detailsVo.setEndTime(simpleDateFormat.format(pmdsServiceById.getEndTime()));
                detailsVo.setOrderTime(simpleDateFormat.format(byId.getInsertTime()));
            }
            if (byId.getStatus() == 1){
            if (byId.getStatus() == 1) {
                detailsVo.setUseType(2);
            }else {
            } else {
                detailsVo.setUseType(1);
                if (pmdsServiceById.getType()!=2) {
                if (pmdsServiceById.getType() != 2) {
                    detailsVo.setWriteOffTime(simpleDateFormat.format(byId.getVerificationTime()));
                }
                if (byId.getStoreId()!=null) {
                if (byId.getStoreId() != null) {
                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getStoreId());
                    detailsVo.setWriteOffName(courseOfStore.getStoreName());
                }
            }
            switch (pmdsServiceById.getUseScope()){
            switch (pmdsServiceById.getUseScope()) {
                case 1:
                    detailsVo.setBelongs("全国通用");
                    break;
                case 2:
                    detailsVo.setBelongs(pmdsServiceById.getProvince()+pmdsServiceById.getCity());
                    detailsVo.setBelongs(pmdsServiceById.getProvince() + pmdsServiceById.getCity());
                    break;
                case 3:
//                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getStoreId());
@@ -1230,12 +1253,12 @@
                    break;
            }
            detailsVo.setContents(pmdsServiceById.getRedemptionInstructions());
        }else {
        } else {
            Coupon coupon = iCouponService.getById(speMercharsId);
            detailsVo.setDetailsId(Long.valueOf(coupon.getId()));
            List<String> list3 = new ArrayList<>();
            list3.add(ToolUtil.isEmpty(coupon.getCover()) ? "" : coupon.getCover());
            if (ToolUtil.isNotEmpty(coupon.getProductImages())){
            if (ToolUtil.isNotEmpty(coupon.getProductImages())) {
                list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")));
            }
            detailsVo.setPics(list3);
@@ -1254,7 +1277,6 @@
//                        .eq("pointsMerchandiseId",merchandise.getId() ));
            int couponCounts = userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId", coupon.getId()));
//                detailsVo.setRedeemedNum(coupon.getPickUpQuantity());
//            detailsVo.setRedeemedNum(couponCounts);
@@ -1263,28 +1285,28 @@
//            detailsVo.setPerLimit(coupon.getPickUpQuantity());
            detailsVo.setExchangeType(coupon.getRedemptionMethod());
            if (coupon.getRedemptionMethod() == 1){
            if (coupon.getRedemptionMethod() == 1) {
                detailsVo.setIntegral(coupon.getIntegral().intValue());
            }else {
            } else {
                detailsVo.setIntegral(coupon.getIntegral().intValue());
                detailsVo.setCash(coupon.getCash());
            }
            if (coupon.getUseScope() == 1){
            if (coupon.getUseScope() == 1) {
                detailsVo.setExchangeAddrType(1);
                detailsVo.setBelongs("全国通用");
            }else if (coupon.getUseScope() == 2){
            } else if (coupon.getUseScope() == 2) {
                detailsVo.setExchangeAddrType(2);
                List<CouponCity> list = ccityService.list(new LambdaQueryWrapper<CouponCity>()
                        .eq(CouponCity::getCouponId, coupon.getId()));
                if (list.size() > 0){
                    detailsVo.setBelongs(list.get(0).getProvince()+"|"+list.get(0).getCity() + "用户可用");
                if (list.size() > 0) {
                    detailsVo.setBelongs(list.get(0).getProvince() + "|" + list.get(0).getCity() + "用户可用");
                }
            }else {
            } else {
                detailsVo.setExchangeAddrType(3);
                List<CouponStore> list = cstoreService.list(new QueryWrapper<CouponStore>()
                        .eq("couponId",coupon.getId() ));
                        .eq("couponId", coupon.getId()));
                StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(list.get(0).getStoreId());
                detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
                detailsVo.setBelongs(courseOfStore.getStoreName() + "可用");
            }
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            detailsVo.setStartTime(format.format(coupon.getStartTime()));
@@ -1298,13 +1320,13 @@
    @PostMapping("/base/pointMerchars/selectPointsMerchandiseById")
    public PointsMerchandise selectPointsMerchandiseById(@RequestBody Integer speMercharsId){
    public PointsMerchandise selectPointsMerchandiseById(@RequestBody Integer speMercharsId) {
        return pmdsService.getById(speMercharsId);
    }
    @PostMapping("/base/pointMerchars/saveDetailsUserPointMercase")
    public Long saveDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){
    public Long saveDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise) {
        merchandise.setInsertTime(new Date());
        upmseService.save(merchandise);
        return merchandise.getId();
@@ -1312,7 +1334,7 @@
    @PostMapping("/base/pointMerchars/updateDetailsUserPointMercase")
    public void  updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){
    public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise) {
        merchandise.setUserId(null);
        merchandise.setPointsMerchandiseId(null);
        upmseService.updateById(merchandise);
@@ -1320,21 +1342,21 @@
    @ResponseBody
    @PostMapping("/base/pointMerchars/queryUserPointMerchaseByCode")
    public List<UserPointsMerchandise> queryUserPointMerchaseByCode(@RequestBody String code){
    public List<UserPointsMerchandise> queryUserPointMerchaseByCode(@RequestBody String code) {
        return upmseService.list(new QueryWrapper<UserPointsMerchandise>()
                .eq("code",code));
                .eq("code", code));
    }
    @PostMapping("/base/pointMerchars/queryStoreIdsOfMerchandise")
    public List<Integer> queryPointMerStoreIds(@RequestBody Integer pointMerId){
    public List<Integer> queryPointMerStoreIds(@RequestBody Integer pointMerId) {
        List<Integer> storeIds = new ArrayList<>();
        List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
                .eq("pointsMerchandiseId",pointMerId));
        if (list.size() >  0){
                .eq("pointsMerchandiseId", pointMerId));
        if (list.size() > 0) {
            storeIds = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
        }
        if(storeIds.size()==0){
        if (storeIds.size() == 0) {
            storeIds.add(-1);
        }
        return storeIds;
@@ -1342,23 +1364,25 @@
    /**
     * 获取用户已兑换商品的数量
     *
     * @param goodResp
     * @return 数量
     */
    @ResponseBody
    @PostMapping("/base/pointMerchars/queryUserHasGoodsNums")
    public int queryUserHasGoodsNums(@RequestBody AppUserGoodResp goodResp){
    public int queryUserHasGoodsNums(@RequestBody AppUserGoodResp goodResp) {
        int count = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                .eq(UserPointsMerchandise::getUserId,goodResp.getAppUserId())
                .eq(UserPointsMerchandise::getPointsMerchandiseId,goodResp.getGoodId()));
                .eq(UserPointsMerchandise::getUserId, goodResp.getAppUserId())
                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId()));
        System.out.println(count);
        return count;
    }
    @ResponseBody
    @PostMapping("/base/pointMerchars/queryUserHasGoodsNums1")
    public int queryUserHasGoodsNums1(@RequestBody AppUserGoodResp goodResp){
    public int queryUserHasGoodsNums1(@RequestBody AppUserGoodResp goodResp) {
        int count = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                .eq(UserPointsMerchandise::getPointsMerchandiseId,goodResp.getGoodId()));
                .eq(UserPointsMerchandise::getPointsMerchandiseId, goodResp.getGoodId()));
        System.out.println(count);
        return count;
    }
@@ -1366,15 +1390,16 @@
    /**
     * 变更兑换商品的的状态
     *
     * @param code
     * @return 数量
     */
    @ResponseBody
    @PostMapping("/base/pointMerchars/deletePaymentRecord")
    public void deletePaymentRecord(@RequestBody String code){
    public void deletePaymentRecord(@RequestBody String code) {
        List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>()
                .eq(UserPointsMerchandise::getCode,code));
        if (list.size() > 0 ){
                .eq(UserPointsMerchandise::getCode, code));
        if (list.size() > 0) {
            for (UserPointsMerchandise pointsMerchandise : list) {
                pointsMerchandise.setState(2);
                upmseService.updateById(pointsMerchandise);
@@ -1386,15 +1411,14 @@
    //拿到积分商品现金的消费记录
    @ResponseBody
    @PostMapping("/base/pointMerchars/getConsumeDetails")
    public List<ConsumeDetail> getConsumeDetails(@RequestBody BillingDataRequestVo requestVo){
       return   upmseService.getConsumeDetails(requestVo);
    public List<ConsumeDetail> getConsumeDetails(@RequestBody BillingDataRequestVo requestVo) {
        return upmseService.getConsumeDetails(requestVo);
    }
    public int dealTimeStatus(String startTime, String endTime){
    public int dealTimeStatus(String startTime, String endTime) {
        LocalDate now = LocalDate.now();
        LocalDate start = LocalDate.parse(startTime);
        LocalDate end = LocalDate.parse(endTime);
@@ -1408,15 +1432,14 @@
    }
    /**
     *
     * @param mapLists
     * @param timeType  1=未开始 2=已开始 3=已结束
     * @param timeType 1=未开始 2=已开始 3=已结束
     * @return
     */
    public List<Map<String, Object>> dealTimeData(List<Map<String, Object>> mapLists,Integer timeType){
    public List<Map<String, Object>> dealTimeData(List<Map<String, Object>> mapLists, Integer timeType) {
        Date currentDate = new Date();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        switch (timeType){
        switch (timeType) {
            case 1:
                return mapLists.stream()
                        .filter(event -> {
@@ -1455,10 +1478,10 @@
    @PostMapping("/base/pointMerchars/queryPointMerchaseDetailOfId")
    public PointMercharsVo queryPointMerchaseDetailOfId(@RequestBody Integer pointMercharsId){
    public PointMercharsVo queryPointMerchaseDetailOfId(@RequestBody Integer pointMercharsId) {
        PointMercharsVo vo = new PointMercharsVo();
        PointsMerchandise byId = pmdsService.getById(pointMercharsId);
        if (ToolUtil.isNotEmpty(byId)){
        if (ToolUtil.isNotEmpty(byId)) {
            vo.setName(byId.getName());
            vo.setCover(byId.getCover());
            vo.setPics(byId.getProductImages());
@@ -1474,7 +1497,7 @@
    @PostMapping("/base/pointMerchars/updateGoodsGroudingStatus")
    boolean updateGoodsGroudingStatus(@RequestBody Map<String,Integer> map){
    boolean updateGoodsGroudingStatus(@RequestBody Map<String, Integer> map) {
        Integer id = map.get("id");
        Integer type = map.get("type");
        System.out.println(id);
@@ -1484,7 +1507,7 @@
            byId.setShelves(type);
            pmdsService.updateById(byId);
            return true;
        }catch (Exception e){
        } catch (Exception e) {
            return false;
        }
    }
@@ -1492,21 +1515,21 @@
    @ResponseBody
    @PostMapping("/base/pointMerchars/queryUserPayedGoodsList")
    public List<Map<String, Object>> queryUserPayedGoodsList(@RequestBody PointMercharsPayedVo pointMercharsPayedVo){
    public List<Map<String, Object>> queryUserPayedGoodsList(@RequestBody PointMercharsPayedVo pointMercharsPayedVo) {
        System.out.println(pointMercharsPayedVo);
        List<Map<String, Object>>  mapList = new ArrayList<>();
        List<Map<String, Object>> mapList = new ArrayList<>();
        LambdaQueryWrapper<UserPointsMerchandise> userPointsMerchandiseLambdaQueryWrapper = new LambdaQueryWrapper<>();
        userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getPointsMerchandiseId,pointMercharsPayedVo.getId());
        if (ToolUtil.isNotEmpty(pointMercharsPayedVo.getStatus())){
            userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getStatus,pointMercharsPayedVo.getStatus());
        userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getPointsMerchandiseId, pointMercharsPayedVo.getId());
        if (ToolUtil.isNotEmpty(pointMercharsPayedVo.getStatus())) {
            userPointsMerchandiseLambdaQueryWrapper.eq(UserPointsMerchandise::getStatus, pointMercharsPayedVo.getStatus());
        }
        List<UserPointsMerchandise> list = upmseService.list(userPointsMerchandiseLambdaQueryWrapper);
        System.out.println(list);
        if (list.size() > 0 ){
        if (list.size() > 0) {
            for (UserPointsMerchandise pointsMerchandise : list) {
                Map<String, Object> map = new HashMap<>();
                map.put("id",pointsMerchandise.getId());
                map.put("userId",pointsMerchandise.getUserId());
                map.put("id", pointsMerchandise.getId());
                map.put("userId", pointsMerchandise.getUserId());
                map.put("status", pointsMerchandise.getStatus());
                mapList.add(map);
            }
@@ -1516,11 +1539,11 @@
    }
    @PostMapping("/base/pointMerchars/queryPointMerchaseById")
    public PointsMerchandise queryPointMerchaseById(@RequestBody Integer id){
    public PointsMerchandise queryPointMerchaseById(@RequestBody Integer id) {
        PointsMerchandise byId = pmdsService.getById(id);
        int count1 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                .eq(UserPointsMerchandise::getPointsMerchandiseId, byId.getId())
                .eq(UserPointsMerchandise::getStatus,2));
                .eq(UserPointsMerchandise::getStatus, 2));
        int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                .eq(UserPointsMerchandise::getPointsMerchandiseId, byId.getId())
        );
@@ -1530,7 +1553,7 @@
    }
    @PostMapping("/base/pointMerchars/getshopName")
    public Integer getshopName(@RequestBody Integer id){
    public Integer getshopName(@RequestBody Integer id) {
        List<PointsMerchandiseStore> list = pmdstoService.list(new LambdaQueryWrapper<PointsMerchandiseStore>().eq(PointsMerchandiseStore::getPointsMerchandiseId, id));
        PointsMerchandiseStore pointsMerchandiseStore = list.get(0);
        Integer storeId = pointsMerchandiseStore.getStoreId();
@@ -1539,18 +1562,18 @@
    @PostMapping("/base/pointMerchars/queryDetailsOfGoods")
    public GoodsInfoOneVo queryDetailsOfGoods(@RequestBody Integer id){
    public GoodsInfoOneVo queryDetailsOfGoods(@RequestBody Integer id) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        GoodsInfoOneVo infoOneVo = new GoodsInfoOneVo();
        PointsMerchandise byId = pmdsService.getById(id);
        if (ToolUtil.isNotEmpty(byId)){
        if (ToolUtil.isNotEmpty(byId)) {
            infoOneVo.setName(byId.getName());
            infoOneVo.setCover(byId.getCover());
            infoOneVo.setPics(byId.getProductImages());
            infoOneVo.setPrice(byId.getPrice());
            infoOneVo.setExchangeMethod(byId.getRedemptionMethod());
            switch (byId.getRedemptionMethod()){
            switch (byId.getRedemptionMethod()) {
                case 1:
                    infoOneVo.setIntegral(byId.getIntegral());
                    break;
@@ -1564,7 +1587,7 @@
                default:
                    break;
            }
            switch (byId.getUserPopulation()){
            switch (byId.getUserPopulation()) {
                case 1:
                    infoOneVo.setUserPopulation("全部用户");
                    break;
@@ -1579,9 +1602,9 @@
            }
            infoOneVo.setQuantityIssued(byId.getQuantityIssued());
            List<UserPointsMerchandise> list = upmseService.list(new LambdaQueryWrapper<UserPointsMerchandise>()
                    .eq(UserPointsMerchandise::getPointsMerchandiseId,byId.getId()));
                    .eq(UserPointsMerchandise::getPointsMerchandiseId, byId.getId()));
            infoOneVo.setUseScope(byId.getUseScope());
            switch (byId.getUseScope()){
            switch (byId.getUseScope()) {
                case 1:
                    infoOneVo.setExchangeArea("全国通用");
                    break;
@@ -1596,7 +1619,7 @@
            }
            infoOneVo.setHasPicked(list.size());
            infoOneVo.setPickUpQuantity(byId.getPickUpQuantity());
            infoOneVo.setValidTime(simpleDateFormat.format(byId.getStartTime())+"至"+ simpleDateFormat.format(byId.getEndTime()));
            infoOneVo.setValidTime(simpleDateFormat.format(byId.getStartTime()) + "至" + simpleDateFormat.format(byId.getEndTime()));
            infoOneVo.setRedemptionInstructions(byId.getRedemptionInstructions());
            infoOneVo.setSort(byId.getSort());
        }
@@ -1606,11 +1629,11 @@
    @ResponseBody
    @PostMapping("/base/pointMerchars/getProvinces")
    public List<StoreVos> getProvinces(@RequestBody Integer id){
    public List<StoreVos> getProvinces(@RequestBody Integer id) {
        List<StoreVos> storeVos = new ArrayList<>();
        List<PointsMerchandiseCity> list = pmdsCityService.list(new LambdaQueryWrapper<PointsMerchandiseCity>()
                .eq(PointsMerchandiseCity::getPointsMerchandiseId,id));
        if (list.size() > 0 ){
                .eq(PointsMerchandiseCity::getPointsMerchandiseId, id));
        if (list.size() > 0) {
            for (PointsMerchandiseCity pointsMerchandiseCity : list) {
                StoreVos storeVos1 = new StoreVos();
                storeVos1.setNum1(pointsMerchandiseCity.getProvince());
@@ -1624,20 +1647,20 @@
    @ResponseBody
    @PostMapping("/base/pointMerchars/getStoreList")
    public List<StoreVos> getStoreList(@RequestBody Integer id){
    public List<StoreVos> getStoreList(@RequestBody Integer id) {
        List<StoreVos> storeVos = new ArrayList<>();
        List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
                .eq("pointsMerchandiseId",id));
        if (list.size() > 0 ){
                .eq("pointsMerchandiseId", id));
        if (list.size() > 0) {
            List<Integer> collect = list.stream().map(PointsMerchandiseStore::getStoreId).collect(Collectors.toList());
            List<Store> stores = stoClient.queryStoreByIds(collect);
            if (stores.size() > 0 ){
            if (stores.size() > 0) {
                for (Store store : stores) {
                    StoreVos storeVos1 = new StoreVos();
                    storeVos1.setNum1(store.getProvince() +"省"+ store.getCity() +"市");
                    if(store.getOperatorId()==0){
                    storeVos1.setNum1(store.getProvince() + "省" + store.getCity() + "市");
                    if (store.getOperatorId() == 0) {
                        storeVos1.setNum2("平台");
                    }else {
                    } else {
                        storeVos1.setNum2(store.getOName());
                    }
@@ -1651,14 +1674,13 @@
    }
    @ResponseBody
    @PostMapping("/base/pointMerchars/updateGoodsDetail")
    public boolean updateGoodsDetail(@RequestBody Map<String, Object> map){
    public boolean updateGoodsDetail(@RequestBody Map<String, Object> map) {
        try {
            Integer pointMerchandiseId = (Integer) map.get("pointMerchandiseId");
            PointsMerchandise byId1 = pmdsService.getById(pointMerchandiseId);
            if(Integer.valueOf(map.get("type").toString())!=1){
            if (Integer.valueOf(map.get("type").toString()) != 1) {
                byId1.setStatus(2);
            }
            Integer quantityIssued = (Integer) map.get("quantityIssued");
@@ -1671,65 +1693,63 @@
            byId1.setQuantityIssued(quantityIssued);
            byId1.setPickUpQuantity(pickUpQuantity);
            byId1.setRedemptionInstructions(redemptionInstructions);
            if (ToolUtil.isNotEmpty(cover)){
            if (ToolUtil.isNotEmpty(cover)) {
                byId1.setCover(cover);
            }
            if (ToolUtil.isNotEmpty(productImages)){
            if (ToolUtil.isNotEmpty(productImages)) {
                byId1.setProductImages(productImages);
            }
            byId1.setSort(sort);
            pmdsService.updateById(byId1);
            return true;
        }catch (Exception e){
        } catch (Exception e) {
            return false;
        }
    }
    @PostMapping("/base/pointMerchars/add")
    public Integer add(@RequestBody PointsMerchandise pointsMerchandise){
    public Integer add(@RequestBody PointsMerchandise pointsMerchandise) {
        Integer storeId = pointsMerchandise.getShelves();
        pointsMerchandise.setShelves(1);
        boolean save = pmdsService.save(pointsMerchandise);
        if(save && ToolUtil.isNotEmpty(storeId) && pointsMerchandise.getType()==2){
        if (save && ToolUtil.isNotEmpty(storeId) && pointsMerchandise.getType() == 2) {
            PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
            pointsMerchandiseStore.setPointsMerchandiseId(pointsMerchandise.getId());
            pointsMerchandiseStore.setStoreId(storeId);
            save =  pmdstoService.save(pointsMerchandiseStore);
            save = pmdstoService.save(pointsMerchandiseStore);
        }
        if(save  && pointsMerchandise.getType()==2 && ToolUtil.isNotEmpty(pointsMerchandise.getProvinceCode())){
            pmdsService.saveCity(pointsMerchandise.getId(),pointsMerchandise.getProvince(),pointsMerchandise.getProvinceCode(),pointsMerchandise.getCity(),pointsMerchandise.getCityCode());
        if (save && pointsMerchandise.getType() == 2 && ToolUtil.isNotEmpty(pointsMerchandise.getProvinceCode())) {
            pmdsService.saveCity(pointsMerchandise.getId(), pointsMerchandise.getProvince(), pointsMerchandise.getProvinceCode(), pointsMerchandise.getCity(), pointsMerchandise.getCityCode());
        }
        if(save){
        if (save) {
            return pointsMerchandise.getId();
        }
        return null;
    }
    @PostMapping("/base/pointMerchars/addOther")
    public Boolean addOther(@RequestBody String pam){
        Boolean save =false;
    public Boolean addOther(@RequestBody String pam) {
        Boolean save = false;
        String[] split = pam.split("_");
        for (String s : split[1].split(",")) {
            PointsMerchandiseStore pointsMerchandiseStore = new PointsMerchandiseStore();
            pointsMerchandiseStore.setPointsMerchandiseId(Integer.valueOf(split[0]));
            pointsMerchandiseStore.setStoreId(Integer.valueOf(s));
            save =  pmdstoService.save(pointsMerchandiseStore);
            save = pmdstoService.save(pointsMerchandiseStore);
        }
        return save;
    }
    @PostMapping("/base/pointMerchars/addCitys")
    public Boolean addCitys(@RequestBody ArrayList<Map<String, String>> objects){
    public Boolean addCitys(@RequestBody ArrayList<Map<String, String>> objects) {
        try {
            for (Map<String, String> object : objects) {
                pmdsService.saveCity(Integer.valueOf(object.get("id")),object.get("pName"),object.get("pCode"),object.get("cName"),object.get("cCode"));
                pmdsService.saveCity(Integer.valueOf(object.get("id")), object.get("pName"), object.get("pCode"), object.get("cName"), object.get("cCode"));
            }
            return true;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
@@ -1738,122 +1758,121 @@
    @ResponseBody
    @PostMapping("/base/pointMerchars/writeOffGoodsStatus")
    public boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map){
    public boolean writeOffGoodsStatus(@RequestBody Map<String, Object> map) {
        try {
            String o = (String) map.get("goodsId");
            Integer managerId = (Integer) map.get("managerId");
            UserPointsMerchandise byId = upmseService.getOne(new LambdaQueryWrapper<UserPointsMerchandise>()
                    .eq(UserPointsMerchandise::getId,Long.parseLong(o) ));
            if (byId.getStatus() == 2){
                    .eq(UserPointsMerchandise::getId, Long.parseLong(o)));
            if (byId.getStatus() == 2) {
                return false;
            }
            byId.setStatus(2);
            byId.setVerificationUserId(managerId);
            byId.setVerificationTime(new Date());
            upmseService.update(byId,new LambdaQueryWrapper<UserPointsMerchandise>()
                    .eq(UserPointsMerchandise::getUserId,byId.getUserId())
                    .eq(UserPointsMerchandise::getId,byId.getId()));
            upmseService.update(byId, new LambdaQueryWrapper<UserPointsMerchandise>()
                    .eq(UserPointsMerchandise::getUserId, byId.getUserId())
                    .eq(UserPointsMerchandise::getId, byId.getId()));
            System.out.println(byId);
            return true;
        }catch (Exception e){
        } catch (Exception e) {
            return false;
        }
    }
    @ResponseBody
    @PostMapping("/base/pointMerchars/getIntegralGoodsListOfSearchAudit")
    public List<Map<String,Object>> getIntegralGoodsListOfSearchAudit(@RequestBody IntegralGoodsOfSearch ofSearch){
    public List<Map<String, Object>> getIntegralGoodsListOfSearchAudit(@RequestBody IntegralGoodsOfSearch ofSearch) {
        System.out.println(ofSearch);
        List<Map<String, Object>> mapList = pmdsService.queryGoodsListOfSearchAudit(ofSearch);
        if (mapList.size() > 0){
        if (mapList.size() > 0) {
            for (Map<String, Object> stringObjectMap : mapList) {
                Integer o = (Integer) stringObjectMap.get("id");
                String startTime = (String) stringObjectMap.get("startTime");
                String endTime = (String) stringObjectMap.get("endTime");
                stringObjectMap.put("timeValue",startTime + "至"+endTime);
                stringObjectMap.put("timeValue", startTime + "至" + endTime);
                int count1 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                        .eq(UserPointsMerchandise::getPointsMerchandiseId, o));
                int count2 = upmseService.count(new LambdaQueryWrapper<UserPointsMerchandise>()
                        .eq(UserPointsMerchandise::getPointsMerchandiseId, o)
                        .eq(UserPointsMerchandise::getStatus,2));
                stringObjectMap.put("hasExchangeQty",count1);
                stringObjectMap.put("hasPickQty",count2);
                        .eq(UserPointsMerchandise::getStatus, 2));
                stringObjectMap.put("hasExchangeQty", count1);
                stringObjectMap.put("hasPickQty", count2);
                stringObjectMap.put("activeStatus",dealTimeStatus(startTime,endTime));
                stringObjectMap.put("activeStatus", dealTimeStatus(startTime, endTime));
            }
            if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())){
                mapList = dealTimeData(mapList,ofSearch.getActiveStatus());
            if (ToolUtil.isNotEmpty(ofSearch.getActiveStatus())) {
                mapList = dealTimeData(mapList, ofSearch.getActiveStatus());
            }
        }
        System.out.println("mapList->"+mapList);
        System.out.println("mapList->" + mapList);
        return mapList;
    }
    @PostMapping("/base/pointMerchars/updateType")
    @ResponseBody
    public Object updateType(@RequestBody String s){
    public Object updateType(@RequestBody String s) {
        String[] split = s.split("_");
        PointsMerchandise byId = pmdsService.getById(split[0]);
        byId.setStatus(Integer.valueOf(split[1]));
        if(Integer.valueOf(split[1])==3){
        if (Integer.valueOf(split[1]) == 3) {
            byId.setRemark(split[2]);
        }
        return   pmdsService.updateById(byId);
        return pmdsService.updateById(byId);
    }
    @PostMapping("/base/pointMerchars/queryFee")
    @ResponseBody
    public HashMap<String, Object> queryFee(@RequestBody QueryDataFee queryDataFee){
    public HashMap<String, Object> queryFee(@RequestBody QueryDataFee queryDataFee) {
        HashMap<String, Object> map = new HashMap<>();
        String data = queryDataFee.getData();
        List<Integer> ids = queryDataFee.getIds();
        if(ids.size()==0){
        if (ids.size() == 0) {
            ids.add(-1);
        }
        List<PointsMerchandise> list1 = pmdsService.list(new LambdaQueryWrapper<PointsMerchandise>().eq(PointsMerchandise::getRedemptionMethod, 3));
        LambdaQueryWrapper<UserPointsMerchandise> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
        if(ToolUtil.isNotEmpty(data)){
            String stime = data.split(" - ")[0]+" 00:00:00";
            String etime = data.split(" - ")[1]+" 23:59:59";
            vipPaymentLambdaQueryWrapper.between(UserPointsMerchandise::getInsertTime,stime,etime);
        if (ToolUtil.isNotEmpty(data)) {
            String stime = data.split(" - ")[0] + " 00:00:00";
            String etime = data.split(" - ")[1] + " 23:59:59";
            vipPaymentLambdaQueryWrapper.between(UserPointsMerchandise::getInsertTime, stime, etime);
        }
        vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getUserId,ids);
        vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getUserId, ids);
        List<Integer> collect = list1.stream().map(PointsMerchandise::getId).collect(Collectors.toList());
        if(collect.size()==0){
        if (collect.size() == 0) {
            collect.add(-1);
        }
        vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getPointsMerchandiseId,collect);
        vipPaymentLambdaQueryWrapper.eq(UserPointsMerchandise::getPayStatus,2);
        vipPaymentLambdaQueryWrapper.in(UserPointsMerchandise::getPointsMerchandiseId, collect);
        vipPaymentLambdaQueryWrapper.eq(UserPointsMerchandise::getPayStatus, 2);
        ArrayList<Integer> objects = new ArrayList<>();
        List<UserPointsMerchandise> list = upmseService.list(vipPaymentLambdaQueryWrapper);
        double a =0;
        double d =0;
        double m =0;
        double j =0;
        double y =0;
        double a = 0;
        double d = 0;
        double m = 0;
        double j = 0;
        double y = 0;
        for (UserPointsMerchandise userPointsMerchandise : list) {
            for (PointsMerchandise pointsMerchandise : list1) {
                if(pointsMerchandise.getId()==userPointsMerchandise.getPointsMerchandiseId()){
                if (pointsMerchandise.getId() == userPointsMerchandise.getPointsMerchandiseId()) {
                    a += pointsMerchandise.getCash().doubleValue();
                }
                if(pointsMerchandise.getType()==3){
                    if(pointsMerchandise.getCardType()==1){
                if (pointsMerchandise.getType() == 3) {
                    if (pointsMerchandise.getCardType() == 1) {
                        d += pointsMerchandise.getCash().doubleValue();
                    }
                    if(pointsMerchandise.getCardType()==2){
                    if (pointsMerchandise.getCardType() == 2) {
                        m += pointsMerchandise.getCash().doubleValue();
                    }
                    if(pointsMerchandise.getCardType()==3){
                    if (pointsMerchandise.getCardType() == 3) {
                        j += pointsMerchandise.getCash().doubleValue();
                    }
                    if(pointsMerchandise.getCardType()==4){
                    if (pointsMerchandise.getCardType() == 4) {
                        y += pointsMerchandise.getCash().doubleValue();
                    }
                }
@@ -1861,11 +1880,11 @@
        }
        map.put("all",a);
        map.put("day",d);
        map.put("month",m);
        map.put("quarter",j);
        map.put("year",y);
        map.put("all", a);
        map.put("day", d);
        map.put("month", m);
        map.put("quarter", j);
        map.put("year", y);
        return map;
cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
@@ -48,19 +48,17 @@
    private CouponStoreService csServie;
    private final SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
    @PostMapping("/base/userConpon/getStuOfConpons")
    public List<CouponStuAvailableVo> queryUserWithConponList(@RequestParam("appUserId") Integer appUserId){
    public List<CouponStuAvailableVo> queryUserWithConponList(@RequestParam("appUserId") Integer appUserId) {
        List<CouponStuAvailableVo> availableVos = new ArrayList<>();
        List<UserCoupon> list = userCouponService.list(new QueryWrapper<UserCoupon>()
                .eq("userId", appUserId)
                .eq("status",1));
        if (list.size() > 0){
                .eq("status", 1));
        if (list.size() > 0) {
            List<Integer> collect = list.stream().map(UserCoupon::getCouponId).collect(Collectors.toList());
            List<Coupon> conponList = cService.list(new QueryWrapper<Coupon>()
                    .in("id", collect));
@@ -69,8 +67,8 @@
                availableVo.setConponId(coupon.getId());
                availableVo.setConponName(coupon.getName());
                availableVo.setConponType(coupon.getType());
                Map<String,Object> conponRuleMap = cService.queryConponRuleOfJson(coupon.getId());
                switch (coupon.getType()){
                Map<String, Object> conponRuleMap = cService.queryConponRuleOfJson(coupon.getId());
                switch (coupon.getType()) {
                    case 1:
                        Object conditionalAmount = conponRuleMap.get("conditionalAmount");
                        Object deductionAmount = conponRuleMap.get("deductionAmount");
@@ -79,7 +77,7 @@
                        break;
                    case 2:
                        Object amount = conponRuleMap.get("deductionAmount");
                        availableVo.setAmount((double)amount);
                        availableVo.setAmount((double) amount);
                        break;
                    default:
                        break;
@@ -92,19 +90,19 @@
    }
    @PostMapping("/base/userConpon/queryCouponRules")
    public Map<String,Object> getCouponRules(@RequestBody Integer couponId){
    public Map<String, Object> getCouponRules(@RequestBody Integer couponId) {
        return cService.queryConponRuleOfJson(couponId);
    }
    @ResponseBody
    @PostMapping("/base/userConpon/getCoupons")
    public List<Coupon> getCoupons(@RequestBody String couponIds){
    public List<Coupon> getCoupons(@RequestBody String couponIds) {
        ArrayList<Integer> integers = new ArrayList<>();
        for (String s : couponIds.split(",")) {
            Integer integer = Integer.valueOf(s);
            integers.add(integer);
        }
        return cService.list(new LambdaQueryWrapper<Coupon>().in(Coupon::getId,integers));
        return cService.list(new LambdaQueryWrapper<Coupon>().in(Coupon::getId, integers));
    }
@@ -118,21 +116,19 @@
            @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<CouponListVo>> queryAvailableCouponList(Integer coursePackageId, Double price, String lon, String lat){
    public ResultUtil<List<CouponListVo>> queryAvailableCouponList(Integer coursePackageId, Double price, String lon, String lat) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<CouponListVo> listVos = userCouponService.queryAvailableCouponList(uid, coursePackageId, price, lon, lat);
            return ResultUtil.success(listVos);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -145,35 +141,34 @@
            @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<CouponListVo>> querySiteCouponList(Integer siteId, Double price, String lon, String lat){
    public ResultUtil<List<CouponListVo>> querySiteCouponList(Integer siteId, Double price, String lon, String lat) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<CouponListVo> listVos = userCouponService.querySiteCouponList(uid, siteId, price, lon, lat);
            return ResultUtil.success(listVos);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    /**
     * 根据id获取用户优惠券数据
     *
     * @param id
     * @return
     */
    @ResponseBody
    @PostMapping("/userCoupon/queryUserCouponById")
    public UserCoupon queryUserCouponById(@RequestBody QueryUserCouponByIdAndUserId userCouponByIdAndUserId){
    public UserCoupon queryUserCouponById(@RequestBody QueryUserCouponByIdAndUserId userCouponByIdAndUserId) {
        try {
                UserCoupon userCoupon = userCouponService.getOne(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getId,userCouponByIdAndUserId.getId()).eq(UserCoupon::getUserId,userCouponByIdAndUserId.getUserId()));
            UserCoupon userCoupon = userCouponService.getOne(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getId, userCouponByIdAndUserId.getId()).eq(UserCoupon::getUserId, userCouponByIdAndUserId.getUserId()));
            return userCoupon;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -181,15 +176,16 @@
    @ResponseBody
    @PostMapping("/userCoupon/queryUserCouponById1")
    public UserCoupon queryUserCouponById1(@RequestBody Long id){
    public UserCoupon queryUserCouponById1(@RequestBody Long id) {
        try {
            UserCoupon userCoupon = userCouponService.getOne(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getId,id));
            UserCoupon userCoupon = userCouponService.getOne(new LambdaQueryWrapper<UserCoupon>().eq(UserCoupon::getId, id));
            return userCoupon;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    @Autowired
    private ICouponService couponService;
@@ -201,22 +197,22 @@
    }
    @PostMapping("/userCoupon/sendUserCoupon")
    public void sendUserCoupon(@RequestBody SendCouponReq sendCouponReq){
    public void sendUserCoupon(@RequestBody SendCouponReq sendCouponReq) {
        try {
            String couponIds = sendCouponReq.getCouponIds();
            for (String s : couponIds.split(",")) {
                Coupon coupon = couponService.getById(s);
                if (new Date().before(coupon.getStartTime())&&new Date().after(coupon.getEndTime())){
                if (new Date().before(coupon.getStartTime()) && new Date().after(coupon.getEndTime())) {
                    continue;
                }
                //查询该优惠卷的数量够不够
                List<Integer> queryIds = new ArrayList<>();
                queryIds.add(coupon.getId());
                int counts = userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId", s));
                if (coupon.getQuantityIssued()<=counts){
                if (coupon.getQuantityIssued() <= counts) {
                    continue;
                }
                UserCoupon userCoupon = new UserCoupon();
                userCoupon.setCouponId(Integer.valueOf(s));
                userCoupon.setUserId(sendCouponReq.getUserId());
@@ -224,7 +220,7 @@
                userCoupon.setInsertTime(new Date());
                userCouponService.save(userCoupon);
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -232,36 +228,36 @@
    /**
     * 修改优惠券数据
     *
     * @param userCoupon
     */
    @ResponseBody
    @PostMapping("/userCoupon/updateUserCoupon")
    public void updateUserCoupon(@RequestBody UserCoupon userCoupon){
    public void updateUserCoupon(@RequestBody UserCoupon userCoupon) {
        try {
            userCoupon.setUserId(null);
            userCouponService.updateById(userCoupon);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @ResponseBody
    @PostMapping("/userCoupon/queryCouponOfStore")
    public List<Integer> getCouponStoreIds(@RequestBody Integer couponId){
    public List<Integer> getCouponStoreIds(@RequestBody Integer couponId) {
        try {
            List<Integer> storeIds = new ArrayList<>();
            List<CouponStore> list = csServie.list(new QueryWrapper<CouponStore>()
                    .eq("couponId",couponId));
            if (list.size() > 0 ){
                    .eq("couponId", couponId));
            if (list.size() > 0) {
                storeIds = list.stream().map(CouponStore::getStoreId).collect(Collectors.toList());
            }
            if(storeIds.size()==0){
            if (storeIds.size() == 0) {
                storeIds.add(-1);
            }
            return storeIds;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -270,8 +266,8 @@
    @ResponseBody
    @PostMapping("/userCoupon/queryCounts")
    public Integer queryCounts(@RequestBody List<Integer> queryIds){
     return    userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId",queryIds.get(0)));
    public Integer queryCounts(@RequestBody List<Integer> queryIds) {
        return userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId", queryIds.get(0)));
    }
@@ -279,10 +275,10 @@
    @ResponseBody
    @PostMapping("/userCoupon/queryCounts1")
    public Integer queryCounts1(@RequestBody List<Integer> queryIds){
        return    userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId",queryIds.get(0)).eq("userId",queryIds.get(1)));
    public Integer queryCounts1(@RequestBody List<Integer> queryIds) {
        return userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId", queryIds.get(0)).eq("userId", queryIds.get(1)));
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideoClassification.java
@@ -40,7 +40,7 @@
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    /**
     * 状态 1=正常 2=下架 3=删除
cloud-server-activity/src/main/java/com/dsh/activity/entity/BenefitsVideos.java
@@ -58,7 +58,7 @@
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    @Override
cloud-server-activity/src/main/java/com/dsh/activity/entity/BodySideAppointment.java
@@ -8,6 +8,7 @@
import lombok.Data;
import java.util.Date;
@Data
@TableName("t_body_side_appointments")
public class BodySideAppointment {
@@ -31,18 +32,18 @@
    private String learnerName;
    @TableField("learnerAge")
    private Integer learnerAge;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @TableField("birthday")
    private Date birthday;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("appointmentTime")
    private Date appointmentTime;
    @TableField("status")
    private Integer status;
    @TableField("state")
    private Integer state;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField("insertTime")
    private Date insertTime;
cloud-server-activity/src/main/java/com/dsh/activity/entity/IntroduceRewards.java
@@ -58,13 +58,13 @@
     * 开始时间
     */
    @TableField("startTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date startTime;
    /**
     * 结束时间
     */
    @TableField("endTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date endTime;
    /**
     * 赠送课时
@@ -80,7 +80,7 @@
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
@@ -175,6 +175,7 @@
    // 已兑换数量
    @TableField(exist = false)
    private Integer pickUpQuantity4;
    @Override
    protected Serializable pkVal() {
        return this.id;
cloud-server-activity/src/main/java/com/dsh/activity/entity/QueryStoreList.java
New file
@@ -0,0 +1,22 @@
package com.dsh.activity.entity;
import lombok.Data;
/**
 * @author zhibing.pu
 * @date 2023/6/28 9:08
 */
@Data
public class QueryStoreList {
    private String provinceCode;
    private String cityCode;
    public QueryStoreList() {
    }
    public QueryStoreList(String provinceCode, String cityCode) {
        this.provinceCode = provinceCode;
        this.cityCode = cityCode;
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/CouponClient.java
@@ -14,6 +14,6 @@
    @PostMapping("/base/coupon/queryCouponListSearch")
    List<Map<String,Object>> getCouponListOfSearch(@RequestBody CouponListOfSearch ofSearch);
    List<Map<String, Object>> getCouponListOfSearch(@RequestBody CouponListOfSearch ofSearch);
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/UserConponClient.java
@@ -36,5 +36,5 @@
    @PostMapping("/base/userConpon/queryCouponRules")
    Map<String,Object> getCouponRules(@RequestBody Integer couponId);
    Map<String, Object> getCouponRules(@RequestBody Integer couponId);
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/AppUserClient.java
@@ -20,11 +20,13 @@
    /**
     * 根据用户id获取用户信息
     *
     * @param appUserId
     * @return
     */
    @PostMapping("/base/appUser/queryAppUser")
    AppUser queryAppUser(Integer appUserId);
    /**
     * 获取所有用户
     */
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/StoreStaffClient.java
@@ -12,5 +12,4 @@
    TStoreStaff baseInfo(Integer id);
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/StudentClient.java
@@ -18,13 +18,16 @@
    /**
     * 获取用户学员列表
     *
     * @param appUserId
     * @return
     */
    @PostMapping("/student/queryStudentList")
    List<TStudent> queryStudentList(Integer appUserId);
    /**
     * 获取有学员的用户ids
     *
     * @return
     */
    @PostMapping("/student/getHasStudentUser")
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/account/UserIntegralChangesClient.java
@@ -14,6 +14,7 @@
    /**
     * 保存用户积分变动记录
     *
     * @param vo
     */
    @PostMapping("/userIntegralChanges/saveUserIntegralChanges")
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CourseClient.java
@@ -15,6 +15,7 @@
    /**
     * 根据id获取课程详情
     *
     * @param id
     * @return
     */
@@ -24,6 +25,7 @@
    /**
     * 根据名称获取课程数据
     *
     * @param name
     * @return
     */
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java
@@ -18,6 +18,7 @@
    /**
     * 根据id获取课包
     *
     * @param id
     * @return
     */
@@ -26,6 +27,7 @@
    @PostMapping("/base/coursePackage/queryConfigCoursePackData")
    CoursePackagePaymentConfig queryConfigCoursePackData(@RequestBody Integer coursePackConfigId);
    @PostMapping("/base/coursePackage/queryByStoreId")
    List<CoursePackage> queryByStoreId(@RequestBody Integer shopId);
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ExchangeDetailsResponse.java
@@ -38,9 +38,7 @@
    private Integer goodType;
    private Integer  userId;
    private Integer userId;
    private List<Integer> rid;
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java
@@ -62,6 +62,6 @@
    private Integer cardType;
    @ApiModelProperty(value = "使用范围")
    private  Integer exchangeAddrType;
    private Integer exchangeAddrType;
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/SiteClient.java
@@ -14,6 +14,7 @@
    /**
     * 根据id获取场地数据
     *
     * @param id
     * @return
     */
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/StoreClient.java
@@ -1,5 +1,6 @@
package com.dsh.activity.feignclient.other;
import com.dsh.activity.entity.QueryStoreList;
import com.dsh.activity.feignclient.other.model.Store;
import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
import com.dsh.activity.feignclient.other.model.StoreInfoDto;
@@ -14,6 +15,9 @@
    /**
     * 获取根据门店id 获取店长信息
     */
    @PostMapping("/store/queryStoreList")
    List<Store> queryStoreList(QueryStoreList queryStoreList);
    @RequestMapping(value = "/getStoreInfo")
    public StoreInfoDto getStoreInfo(@RequestBody Integer id);
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/model/TOperatorCity.java
@@ -25,7 +25,7 @@
@TableName("t_operator_city")
public class TOperatorCity extends Model<TOperatorCity> {
    private static final long serialVersionUID=1L;
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideoClassificationMapper.java
@@ -15,5 +15,5 @@
public interface BenefitsVideoClassificationMapper extends BaseMapper<BenefitsVideoClassification> {
    List<TQueryBenefitsVO> listAll(@Param("query") QueryBenefitsVedioVO vo);
    Object changeState(@Param("ids") List<Integer> ids,@Param("type") Integer state);
    Object changeState(@Param("ids") List<Integer> ids, @Param("type") Integer state);
}
cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java
@@ -22,6 +22,7 @@
    /**
     * 获取福利课程列表
     *
     * @param uid
     * @param classificationId
     * @param offset
@@ -31,7 +32,7 @@
    List<Map<String, Object>> queryBenefitsVideosList(@Param("uid") Integer uid, @Param("classificationId") Integer classificationId,
                                                      @Param("ids") List<Integer> ids, @Param("offset") Integer offset, @Param("limit") Integer limit);
    List<BenefitsVideos> getBenefitVideoById(@Param("id")Integer id);
    List<BenefitsVideos> getBenefitVideoById(@Param("id") Integer id);
    List<BenefitsVideos> getBybIdAndcId(@Param("bId") Integer benefitsVideoClassificationId,@Param("cId") Integer courseId);
    List<BenefitsVideos> getBybIdAndcId(@Param("bId") Integer benefitsVideoClassificationId, @Param("cId") Integer courseId);
}
cloud-server-activity/src/main/java/com/dsh/activity/mapper/CouponMapper.java
@@ -22,35 +22,35 @@
    Map<String, Object> queryConponRuleOfJson(@Param("id") Integer id);
    List<Map<String, Object>> queryCouponListOfSearch(@Param("name")String name,
                                                      @Param("type")Integer type,
                                                      @Param("distributionMethod")Integer distributionMethod,
                                                      @Param("userPopulation")Integer userPopulation,
                                                      @Param("status")Integer status,
                                                      @Param("state")Integer state,
    List<Map<String, Object>> queryCouponListOfSearch(@Param("name") String name,
                                                      @Param("type") Integer type,
                                                      @Param("distributionMethod") Integer distributionMethod,
                                                      @Param("userPopulation") Integer userPopulation,
                                                      @Param("status") Integer status,
                                                      @Param("state") Integer state,
                                                      @Param("cityCode") String cityCode,
                                                      @Param("storeId")Integer storeId,
                                                      @Param("operatorId")Integer operatorId,
                                                      @Param("objType")Integer objType);
                                                      @Param("storeId") Integer storeId,
                                                      @Param("operatorId") Integer operatorId,
                                                      @Param("objType") Integer objType);
    List<Map<String, Object>> queryCouponListOfSearch1(@Param("name")String name,
                                                      @Param("type")Integer type,
                                                      @Param("distributionMethod")Integer distributionMethod,
                                                      @Param("userPopulation")Integer userPopulation,
                                                      @Param("status")Integer status,
                                                      @Param("state")Integer state,
                                                      @Param("page")Page<Map<String, Object>> page,
                                                      @Param("cityCode") String cityCode,
                                                      @Param("storeId")Integer storeId
    List<Map<String, Object>> queryCouponListOfSearch1(@Param("name") String name,
                                                       @Param("type") Integer type,
                                                       @Param("distributionMethod") Integer distributionMethod,
                                                       @Param("userPopulation") Integer userPopulation,
                                                       @Param("status") Integer status,
                                                       @Param("state") Integer state,
                                                       @Param("page") Page<Map<String, Object>> page,
                                                       @Param("cityCode") String cityCode,
                                                       @Param("storeId") Integer storeId
    );
    List<Map<String, Object>> queryCouponExamineList(@Param("name")String name,
                                                     @Param("type")Integer type,
    List<Map<String, Object>> queryCouponExamineList(@Param("name") String name,
                                                     @Param("type") Integer type,
                                                     @Param("userPopulation") Integer userPopulation,
                                                     @Param("distributionMethod")Integer distributionMethod,
                                                     @Param("auditStatus")Integer auditStatus,
                                                     @Param("page")Page<Map<String, Object>> page);
                                                     @Param("distributionMethod") Integer distributionMethod,
                                                     @Param("auditStatus") Integer auditStatus,
                                                     @Param("page") Page<Map<String, Object>> page);
    List<Map<String, Object>> listRecord(@Param("objectPage") Page<Object> objectPage, @Param("id") Integer id, @Param("ids") List<Integer> ids, @Param("type") Integer type);
cloud-server-activity/src/main/java/com/dsh/activity/mapper/IntroduceRewardsMapper.java
@@ -18,7 +18,7 @@
 */
public interface IntroduceRewardsMapper extends BaseMapper<IntroduceRewards> {
    Object changeState(@Param("ids") List<Integer> ids,@Param("state") Integer state);
    Object changeState(@Param("ids") List<Integer> ids, @Param("state") Integer state);
    List<IntroduceVO> listAll(@Param("query")IntroduceQuery query, @Param("sTime")String sTime, @Param("eTime")String eTime);
    List<IntroduceVO> listAll(@Param("query") IntroduceQuery query, @Param("sTime") String sTime, @Param("eTime") String eTime);
}
cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseMapper.java
@@ -20,24 +20,25 @@
 */
public interface PointsMerchandiseMapper extends BaseMapper<PointsMerchandise> {
    List<Map<String, Object>> queryGoodsListOfSearch(@Param("name")String name,
                                                     @Param("type")Integer type,
                                                     @Param("redemptionMethod")Integer redemptionMethod,
    List<Map<String, Object>> queryGoodsListOfSearch(@Param("name") String name,
                                                     @Param("type") Integer type,
                                                     @Param("redemptionMethod") Integer redemptionMethod,
                                                     @Param("userPopulation") Integer userPopulation,
                                                     @Param("activeStatus") Integer activeStatus,
                                                     @Param("state") Integer state,
                                                     @Param("page") Page<Map<String, Object>> page);
    List<Map<String, Object>> queryGoodsListOfSearchAudit(@Param("name")String name,
                                                     @Param("type")Integer type,
                                                     @Param("redemptionMethod")Integer redemptionMethod,
                                                     @Param("userPopulation") Integer userPopulation,
                                                     @Param("activeStatus") Integer activeStatus,
                                                     @Param("state") Integer state,
                                                     @Param("page") Page<Map<String, Object>> page);
    List<Map<String, Object>> queryGoodsListOfSearchAudit(@Param("name") String name,
                                                          @Param("type") Integer type,
                                                          @Param("redemptionMethod") Integer redemptionMethod,
                                                          @Param("userPopulation") Integer userPopulation,
                                                          @Param("activeStatus") Integer activeStatus,
                                                          @Param("state") Integer state,
                                                          @Param("page") Page<Map<String, Object>> page);
    List<Map<String, Object>> ticketList(@Param("query") IntegralGoodsOfSearch ofSearch);
    void changeState(@Param("ids") List<Integer> ids ,@Param("state") Integer state);
    void changeState(@Param("ids") List<Integer> ids, @Param("state") Integer state);
    void saveCity(@Param("id") Integer id, @Param("province") String province, @Param("provinceCode") String provinceCode, @Param("city") String city, @Param("cityCode") String cityCode);
cloud-server-activity/src/main/java/com/dsh/activity/mapper/UserCouponMapper.java
@@ -20,6 +20,7 @@
    /**
     * 获取购买课程可用优惠券列表
     *
     * @param uid
     * @param storeId
     * @param provinceCode
@@ -27,7 +28,7 @@
     * @return
     */
    List<Map<String, Object>> queryAvailableCouponList(@Param("uid") Integer uid, @Param("storeId") Integer storeId,
                                       @Param("provinceCode") String provinceCode, @Param("cityCode") String cityCode);
                                                       @Param("provinceCode") String provinceCode, @Param("cityCode") String cityCode);
}
cloud-server-activity/src/main/java/com/dsh/activity/model/ConponJsonRuleModel.java
@@ -4,7 +4,6 @@
import lombok.Data;
@Data
public class ConponJsonRuleModel {
    /**
cloud-server-activity/src/main/java/com/dsh/activity/model/IntroduceQuery.java
@@ -16,6 +16,6 @@
    // 活动状态
    private Integer activityState;
    // 活动时间
    private String  time;
    private String time;
}
cloud-server-activity/src/main/java/com/dsh/activity/model/IntroduceUser.java
@@ -23,6 +23,6 @@
    private Integer userId;
    private String userPhone;
    private Integer introduceRewards;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date registerTime;
}
cloud-server-activity/src/main/java/com/dsh/activity/model/IntroduceVO.java
@@ -12,20 +12,19 @@
public class IntroduceVO {
    /**
     * {field: 'selectItem', radio: true},
     *         {title: '所在省市', field: 'provinceAndCity', visible: true, align: 'center', valign: 'middle',width:'8%',},
     *         {title: '开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle',width:'8%',},
     *         {title: '结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle',width:'5%',},
     *         {title: '赠送课时数', field: 'giveClass', visible: true, align: 'center', valign: 'middle',width:'8%',},
     *         {title:  '参与次数', field: 'number', visible: true, align: 'center', valign: 'middle',width:'8%',},
     *         {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',width:'8%',
     *         {title: '活动状态', field: 'activityState', visible: true, align: 'center', valign: 'middle',width:'8%',
     *
     * {title: '所在省市', field: 'provinceAndCity', visible: true, align: 'center', valign: 'middle',width:'8%',},
     * {title: '开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle',width:'8%',},
     * {title: '结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle',width:'5%',},
     * {title: '赠送课时数', field: 'giveClass', visible: true, align: 'center', valign: 'middle',width:'8%',},
     * {title:  '参与次数', field: 'number', visible: true, align: 'center', valign: 'middle',width:'8%',},
     * {title: '状态', field: 'state', visible: true, align: 'center', valign: 'middle',width:'8%',
     * {title: '活动状态', field: 'activityState', visible: true, align: 'center', valign: 'middle',width:'8%',
     */
    private Integer id;
    private String provinceAndCity;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;
    private Integer giveClass;
    private Integer number;
cloud-server-activity/src/main/java/com/dsh/activity/model/PointMerchandiseIncomeVo.java
@@ -17,7 +17,7 @@
@AllArgsConstructor
@NoArgsConstructor
public class PointMerchandiseIncomeVo {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    private BigDecimal cash;
}
cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBenefitsVedioVO.java
@@ -1,6 +1,7 @@
package com.dsh.activity.model;
import lombok.Data;
/**
 * 接收查询参数VO
 */
cloud-server-activity/src/main/java/com/dsh/activity/model/QueryBodySideAppointmentVO.java
@@ -21,13 +21,13 @@
    private String phone;
    private String learnerName;
    private Integer learnerAge;
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date appointmentTime;
    private Integer status;
    private Integer state;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
    private String provinceAndCity;
}
cloud-server-activity/src/main/java/com/dsh/activity/model/SendCouponReq.java
@@ -1,4 +1,4 @@
    package com.dsh.activity.model;
package com.dsh.activity.model;
import lombok.AllArgsConstructor;
import lombok.Data;
cloud-server-activity/src/main/java/com/dsh/activity/service/BenefitsVideosService.java
@@ -19,17 +19,20 @@
    /**
     * 获取福利视频分类列表数据
     *
     * @param uid
     * @param search
     * @return
     * @throws Exception
     */
    List<BenefitsVideoClassificationListVo> queryClassificationBenefitsVideosList(Integer uid, Integer position, String search) throws Exception;
    List<BenefitsVideoClassificationListVo> queryClassificationBenefitsVideosListOne(Integer uid, Integer position, String search) throws Exception;
    /**
     * 获取福利视频列表
     *
     * @param uid
     * @param classificationId
     * @param pageSize
@@ -42,6 +45,7 @@
    /**
     * 获取福利视频详情
     *
     * @param uid
     * @param id
     * @return
@@ -52,6 +56,7 @@
    /**
     * 视频观看完毕后获得奖励
     *
     * @param id
     * @throws Exception
     */
cloud-server-activity/src/main/java/com/dsh/activity/service/ICouponService.java
@@ -16,18 +16,17 @@
 * @author zhibing.pu
 * @date 2023/6/24 11:26
 */
public interface ICouponService extends IService<Coupon>{
public interface ICouponService extends IService<Coupon> {
    /**
     * 获取购买会员支付成功页面的优惠券
     *
     * @param uid
     * @return
     * @throws Exception
     */
    List<CouponListVo> queryCouponList(Integer uid, Integer distributionMethod) throws Exception;
    Map<String, Object> queryConponRuleOfJson(Integer id);
cloud-server-activity/src/main/java/com/dsh/activity/service/IntroduceUserService.java
@@ -10,7 +10,6 @@
 * <p>
 * 介绍有礼-用户参与 服务类
 * </p>
 *
 */
public interface IntroduceUserService extends IService<IntroduceUser> {
cloud-server-activity/src/main/java/com/dsh/activity/service/UserCouponService.java
@@ -21,6 +21,7 @@
    /**
     * 获取购买课程可用优惠券列表
     *
     * @param uid
     * @param coursePackageId
     * @return
@@ -30,13 +31,13 @@
    /**
     * 获取预约场地支付页面可用优惠券列表
     *
     * @param siteId
     * @param price
     * @return
     * @throws Exception
     */
    List<CouponListVo> querySiteCouponList(Integer uid, Integer siteId, Double price, String lon, String lat) throws Exception;
    List<CouponPackageResp> queryCouponPackagesList(Integer uid, CouponPackageReq req);
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideoClassificationServiceImpl.java
@@ -20,6 +20,7 @@
public class BenefitsVideoClassificationServiceImpl extends ServiceImpl<BenefitsVideoClassificationMapper, BenefitsVideoClassification> implements IBenefitsVideoClassificationService {
    @Autowired
    private BenefitsVideoClassificationMapper benefitsVideoClassificationMapper;
    @Override
    public List<TQueryBenefitsVO> listAll(QueryBenefitsVedioVO vo) {
        return benefitsVideoClassificationMapper.listAll(vo);
@@ -29,6 +30,6 @@
    public Object changeState(BenefitsVedioChangeStateVO vo) {
        List<Integer> ids = vo.getIds();
        Integer state = vo.getState();
        return benefitsVideoClassificationMapper.changeState(ids,state);
        return benefitsVideoClassificationMapper.changeState(ids, state);
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java
@@ -57,11 +57,9 @@
    private BenefitsVideosMapper benefitsVideosMapper;
    /**
     * 获取福利视频分类列表数据
     *
     * @param uid
     * @param search
     * @return
@@ -70,7 +68,7 @@
    @Override
    public List<BenefitsVideoClassificationListVo> queryClassificationBenefitsVideosList(Integer uid, Integer position, String search) throws Exception {
        QueryWrapper<BenefitsVideoClassification> wrapper = new QueryWrapper<BenefitsVideoClassification>().eq("position", position);
        if(ToolUtil.isNotEmpty(search)){
        if (ToolUtil.isNotEmpty(search)) {
            wrapper.like("name", search);
        }
@@ -88,10 +86,10 @@
                if (collect.size() > 0) {
                    benefitsVideosQueryWrapper.notIn("id", collect);
                }
                List<BenefitsVideos> list1 = this.list(benefitsVideosQueryWrapper.eq("state",1).orderByDesc("insertTime").last(" limit 0, 4"));
                List<BenefitsVideos> list1 = this.list(benefitsVideosQueryWrapper.eq("state", 1).orderByDesc("insertTime").last(" limit 0, 4"));
                List<BenefitsVideosListVo> lists = new ArrayList<>();
                for (BenefitsVideos benefitsVideos : list1) {
                    if (benefitsVideos.getState()==1) {
                    if (benefitsVideos.getState() == 1) {
                        Integer courseId = benefitsVideos.getCourseId();
                        Course course = courseClient.queryCourseById(courseId);
                        BenefitsVideosListVo benefitsVideosListVo = new BenefitsVideosListVo();
@@ -108,10 +106,11 @@
        }
        return listVos;
    }
    @Override
    public List<BenefitsVideoClassificationListVo> queryClassificationBenefitsVideosListOne(Integer uid, Integer position, String search) throws Exception {
        QueryWrapper<BenefitsVideoClassification> wrapper = new QueryWrapper<BenefitsVideoClassification>().eq("position", position);
        if(ToolUtil.isNotEmpty(search)){
        if (ToolUtil.isNotEmpty(search)) {
            wrapper.like("name", search);
        }
        List<BenefitsVideoClassification> list = benefitsVideoClassificationService.list(wrapper.orderByAsc("sort"));
@@ -124,7 +123,7 @@
            benefitsVideoClassificationListVo.setId(benefitsVideoClassification.getId());
            benefitsVideoClassificationListVo.setName(benefitsVideoClassification.getName());
            QueryWrapper<BenefitsVideos> benefitsVideosQueryWrapper = new QueryWrapper<BenefitsVideos>().eq("state", 1);
            if(collect.size() > 0){
            if (collect.size() > 0) {
                benefitsVideosQueryWrapper.notIn("id", collect);
            }
            List<BenefitsVideos> list1 = this.list(benefitsVideosQueryWrapper.orderByDesc("insertTime").last(" limit 0, 4"));
@@ -151,7 +150,7 @@
        pageSize = (pageSize - 1) * pageNo;
        List<Integer> ids = null;
        if(ToolUtil.isNotEmpty(search)){
        if (ToolUtil.isNotEmpty(search)) {
            List<Course> courses = courseClient.queryCourseByName(search);
            ids = courses.stream().map(Course::getId).collect(Collectors.toList());
        }
@@ -182,6 +181,7 @@
    /**
     * 获取福利视频详情
     *
     * @param uid
     * @param id
     * @return
@@ -208,6 +208,7 @@
    /**
     * 视频观看完毕后获得奖励
     *
     * @param uid
     * @param id
     * @throws Exception
@@ -216,7 +217,7 @@
    public void receiveAward(Integer uid, Integer id) throws Exception {
        BenefitsVideos benefitsVideos = this.getById(id);
        UserBenefitsVideos one = userBenefitsVideosService.getOne(new QueryWrapper<UserBenefitsVideos>().eq("appUserId", uid).eq("benefitsVideosId", id));
        if(null == one){
        if (null == one) {
            one = new UserBenefitsVideos();
            one.setAppUserId(uid);
            one.setBenefitsVideoClassificationId(benefitsVideos.getBenefitsVideoClassificationId());
@@ -241,7 +242,7 @@
    @Override
    public List<BenefitsVideos> getBybIdAndcId(Integer benefitsVideoClassificationId, Integer courseId) {
        return  benefitsVideosMapper.getBybIdAndcId(benefitsVideoClassificationId,courseId);
        return benefitsVideosMapper.getBybIdAndcId(benefitsVideoClassificationId, courseId);
    }
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BodySideAppointmentServiceImpl.java
@@ -20,14 +20,15 @@
public class BodySideAppointmentServiceImpl extends ServiceImpl<BodySideAppointmentMapper, BodySideAppointment> implements BodySideAppointmentService {
    @Autowired
    private BodySideAppointmentMapper bodySideAppointmentMapper;
    @Override
    public List<QueryBodySideAppointmentVO> listAll(QueryBodySideAppointment vo) {
       return bodySideAppointmentMapper.listAll(vo);
        return bodySideAppointmentMapper.listAll(vo);
    }
    @Override
    public Object changeState(List<Integer> ids) {
      return bodySideAppointmentMapper.changeState(ids);
        return bodySideAppointmentMapper.changeState(ids);
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/CouponServiceImpl.java
@@ -20,6 +20,8 @@
import com.dsh.activity.model.request.IntegralGoodsOfSearch;
import com.dsh.activity.service.ICouponService;
import com.dsh.activity.service.UserCouponService;
import com.dsh.activity.util.RedisUtil;
import com.dsh.activity.util.ToolUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -30,6 +32,7 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * @author zhibing.pu
@@ -44,69 +47,39 @@
    @Resource
    private StudentClient studentClient;
    @Autowired
    private UserCouponService userCouponService;
    @Autowired
    private ICouponService couponService;
    @Autowired
    private RedisUtil redisUtil;
    /**
     * 获取购买会员支付成功页面的优惠券
     *
     * @param uid
     * @return
     * @throws Exception
     */
    @Override
    public List<CouponListVo> queryCouponList(Integer uid, Integer distributionMethod) throws Exception {
        AppUser appUser = appUserClient.queryAppUser(uid);
        String value = redisUtil.getValue("VIP_P_" + uid);
        if (ToolUtil.isEmpty(value)) {
            Thread.sleep(5000);
            value = redisUtil.getValue("VIP_P_" + uid);
        }
        List<CouponListVo> listVos = new ArrayList<>();
        if (null != appUser) {
//            List<Integer> userPopulation = new ArrayList<>();
//            userPopulation.add(1);//全部用户
//            if (1 == appUser.getIsVip()) {
//                userPopulation.add(2);//年度会员
//            }
//            List<TStudent> students = studentClient.queryStudentList(uid);
//            if (students.size() > 0) {
//                userPopulation.add(3);//已有学员用户
//            }
//            List<Coupon> list = this.list(new QueryWrapper<Coupon>().eq("distributionMethod", distributionMethod)
//                    .in("userPopulation", userPopulation)
//                    .eq("auditStatus", 2).eq("status", 2).eq("state", 1)
//                    .last(" and now() between startTime and endTime order by insertTime desc"));
//            List<Coupon> list = this.list(new QueryWrapper<Coupon>().eq("distributionMethod", 2).eq("userPopulation",2)
//                    .le("startTime", new Date()).ge("endTime", new Date()).eq("auditStatus", 2)
//                    .eq("state", 1));
        if (ToolUtil.isEmpty(value)) {
            List<Long> longs = JSON.parseArray(value, Long.class);
            List<UserCoupon> list = userCouponService.getBaseMapper().selectBatchIds(longs);
            List<Integer> collect = list.stream().map(UserCoupon::getCouponId).collect(Collectors.toList());
            List<Coupon> coupons = couponService.getBaseMapper().selectBatchIds(collect);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            LocalDateTime currentTime = LocalDateTime.now();
            LocalDateTime oneMinuteAgo = currentTime.minusSeconds(6000);
            List<UserCoupon> list = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", uid).ge("insertTime", oneMinuteAgo));
            List<Integer> ids = new ArrayList<>();
            for (UserCoupon userCoupon : list) {
                ids.add(userCoupon.getCouponId());
            }
            List<Coupon> userId = new ArrayList<>();
            if (ids.size()>0) {
                userId = couponService.list(new QueryWrapper<Coupon>().in("id", ids));
            }
            for (Coupon coupon : userId) {
                if (coupon.getDistributionMethod()!=2){
            for (Coupon coupon : coupons) {
                if (coupon.getDistributionMethod() != 2) {
                    continue;
                }
                CouponListVo couponListVo = new CouponListVo();
@@ -138,7 +111,6 @@
    }
    @Override
    public Map<String, Object> queryConponRuleOfJson(Integer id) {
        return this.baseMapper.queryConponRuleOfJson(id);
@@ -160,16 +132,17 @@
    @Override
    public List<Map<String, Object>> queryCouponListOfSearch1(CouponListOfSearch ofSearch) {
        return this.baseMapper.queryCouponListOfSearch1(ofSearch.getName(),ofSearch.getType(),ofSearch.getDistributionMethod(),ofSearch.getUserPopulation(),ofSearch.getStatus(),ofSearch.getState(),ofSearch.getPage(),ofSearch.getCityCode(),ofSearch.getStoreId());
        return this.baseMapper.queryCouponListOfSearch1(ofSearch.getName(), ofSearch.getType(), ofSearch.getDistributionMethod(), ofSearch.getUserPopulation(), ofSearch.getStatus(), ofSearch.getState(), ofSearch.getPage(), ofSearch.getCityCode(), ofSearch.getStoreId());
    }
    @Override
    public List<Map<String, Object>> queryCouponExamineList(CouponExamineListSearch ofSearch) {
        return this.baseMapper.queryCouponExamineList(ofSearch.getName(),ofSearch.getType(),ofSearch.getUserPopulation(),ofSearch.getDistributionMethod(),ofSearch.getAuditStatus(),ofSearch.getPage());
        return this.baseMapper.queryCouponExamineList(ofSearch.getName(), ofSearch.getType(), ofSearch.getUserPopulation(), ofSearch.getDistributionMethod(), ofSearch.getAuditStatus(), ofSearch.getPage());
    }
    @Override
    public List<Map<String, Object>> listRecord(Page<Object> objectPage, Integer id, List<Integer> ids, Integer type) {
        return this.baseMapper.listRecord(objectPage,id,ids,type);
        return this.baseMapper.listRecord(objectPage, id, ids, type);
    }
    @Override
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/IntroduceRewardsServiceImpl.java
@@ -25,11 +25,12 @@
public class IntroduceRewardsServiceImpl extends ServiceImpl<IntroduceRewardsMapper, IntroduceRewards> implements IntroduceRewardsService {
    @Autowired
    private IntroduceRewardsMapper introduceRewardsMapper;
    @Override
    public Object changeState(IntroduceChangeStateDTO dto) {
        List<Integer> ids = dto.getIds();
        Integer state = dto.getState();
        return introduceRewardsMapper.changeState(ids,state);
        return introduceRewardsMapper.changeState(ids, state);
    }
    @Override
@@ -41,6 +42,6 @@
            STime = query.getTime().split(" - ")[0] + " 00:00:00";
            ETime = query.getTime().split(" - ")[1] + " 23:59:59";
        }
        return introduceRewardsMapper.listAll(query,STime,ETime);
        return introduceRewardsMapper.listAll(query, STime, ETime);
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseServiceImpl.java
@@ -24,19 +24,20 @@
    @Override
    public List<Map<String, Object>> queryGoodsListOfSearch(IntegralGoodsOfSearch ofSearch) {
        return this.baseMapper.queryGoodsListOfSearch(ofSearch.getName(),ofSearch.getType(),ofSearch.getRedemptionMethod(),
                ofSearch.getUserPopulation(),ofSearch.getActiveStatus(),ofSearch.getState(),ofSearch.getPage());
        return this.baseMapper.queryGoodsListOfSearch(ofSearch.getName(), ofSearch.getType(), ofSearch.getRedemptionMethod(),
                ofSearch.getUserPopulation(), ofSearch.getActiveStatus(), ofSearch.getState(), ofSearch.getPage());
    }
    @Override
    public List<Map<String, Object>> queryGoodsListOfSearchAudit(IntegralGoodsOfSearch ofSearch) {
        return this.baseMapper.queryGoodsListOfSearchAudit(ofSearch.getName(),ofSearch.getType(),ofSearch.getRedemptionMethod(),
                ofSearch.getUserPopulation(),ofSearch.getActiveStatus(),ofSearch.getState(),ofSearch.getPage());
        return this.baseMapper.queryGoodsListOfSearchAudit(ofSearch.getName(), ofSearch.getType(), ofSearch.getRedemptionMethod(),
                ofSearch.getUserPopulation(), ofSearch.getActiveStatus(), ofSearch.getState(), ofSearch.getPage());
    }
    @Override
    public void saveCity(Integer id, String province, String provinceCode, String city, String cityCode) {
        this.baseMapper.saveCity(id,province,provinceCode,city,cityCode);
        this.baseMapper.saveCity(id, province, provinceCode, city, cityCode);
    }
    @Override
@@ -47,6 +48,6 @@
    @Override
    public void changeState(CoachChangeStateVO dto) {
        List<Integer> ids = dto.getIds();
        this.baseMapper.changeState(ids,dto.getState());
        this.baseMapper.changeState(ids, dto.getState());
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java
@@ -77,11 +77,9 @@
    private SiteClient siteClient;
    /**
     * 获取购买课程可用优惠券列表
     *
     * @param uid
     * @param coursePackageId
     * @return
@@ -106,7 +104,7 @@
            if (type == 1) {//满减{"num1":1,"num2":1}
                JSONObject jsonObject = JSON.parseObject(content);
                Double num1 = jsonObject.getDouble("conditionalAmount");
                if(price.compareTo(num1) < 0){
                if (price.compareTo(num1) < 0) {
                    continue;
                }
                couponListVo.setUseCondition("满¥" + num1 + "元可用");
@@ -115,10 +113,10 @@
            if (type == 2) {//代金券{"num1":1}
                JSONObject jsonObject = JSON.parseObject(content);
                Double num1 = jsonObject.getDouble("conditionalAmount");
                if(num1==null){
                    num1=0d;
                if (num1 == null) {
                    num1 = 0d;
                }
                if(price.compareTo(num1) < 0){
                if (price.compareTo(num1) < 0) {
                    continue;
                }
                couponListVo.setUseCondition("");
@@ -137,6 +135,7 @@
    /**
     * 获取预约场地可用优惠券列表
     *
     * @param siteId
     * @param price
     * @return
@@ -162,7 +161,7 @@
            if (type == 1) {//满减{"num1":1,"num2":1}
                JSONObject jsonObject = JSON.parseObject(content);
                Double num1 = jsonObject.getDouble("conditionalAmount");
                if(price.compareTo(num1) < 0){
                if (price.compareTo(num1) < 0) {
                    continue;
                }
                couponListVo.setUseCondition("满" + num1 + "元可用");
@@ -171,10 +170,10 @@
            if (type == 2) {//代金券{"num1":1}
                JSONObject jsonObject = JSON.parseObject(content);
                Double num1 = jsonObject.getDouble("conditionalAmount");
                if(num1==null){
                    num1=0d;
                if (num1 == null) {
                    num1 = 0d;
                }
                if(price.compareTo(num1) < 0){
                if (price.compareTo(num1) < 0) {
                    continue;
                }
                couponListVo.setUseCondition("");
@@ -196,9 +195,9 @@
        AppUser appUser = appClient.queryAppUser(uid);
        if (null != appUser) {
            List<UserCoupon> userCoupons = this.baseMapper.selectList(new QueryWrapper<UserCoupon>()
                    .eq("userId",appUser.getId() )
                    .eq("userId", appUser.getId())
                    .orderByDesc("insertTime"));
            if (userCoupons.size() > 0){
            if (userCoupons.size() > 0) {
                for (UserCoupon userCoupon : userCoupons) {
                    Coupon coupon = couponMapper.selectById(userCoupon.getCouponId());
                    CouponPackageResp packageResp = new CouponPackageResp();
@@ -206,7 +205,7 @@
                    packageResp.setName(coupon.getName());
                    packageResp.setType(coupon.getType());
                    packageResp.setUseCondition(coupon.getUseScope());
                    switch (coupon.getUseScope()){
                    switch (coupon.getUseScope()) {
                        case 1:
                            packageResp.setAvailable("全国通用");
                            break;
@@ -222,7 +221,7 @@
                        case 3:
                            packageResp.setAvailable("指定门店可用");
                            CouponStore couponStore = csMapper.selectOne(new QueryWrapper<CouponStore>()
                                    .eq("couponId",coupon.getId()).last("limit 1"));
                                    .eq("couponId", coupon.getId()).last("limit 1"));
                            StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStore.getStoreId());
//                            packageResp.setCityOrStore(courseOfStore.getStoreName()+","+courseOfStore.getStoreAddr());
                            packageResp.setCityOrStore(courseOfStore.getStoreName());
@@ -239,15 +238,15 @@
//                            满减券
                            Double num1 = jsonObject.getDouble("conditionalAmount");
                            Double num2 = jsonObject.getDouble("deductionAmount");
                            ruleModel.setConditionalAmount("满"+num1+"可用");
                            ruleModel.setDeductionAmount("¥ "+num2);
                            ruleModel.setConditionalAmount("满" + num1 + "可用");
                            ruleModel.setDeductionAmount("¥ " + num2);
                            ruleModel.setExperienceName("");
                            break;
                        case 2:
//                            代金券
                            Double jsonObjectDouble = jsonObject.getDouble("conditionalAmount");
                            ruleModel.setConditionalAmount("");
                            ruleModel.setDeductionAmount("¥ "+jsonObjectDouble);
                            ruleModel.setDeductionAmount("¥ " + jsonObjectDouble);
                            ruleModel.setExperienceName("");
                            break;
                        case 3:
@@ -264,24 +263,24 @@
                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                    packageResp.setEffectiveTime(simpleDateFormat.format(coupon.getEndTime()));
                    if (userCoupon.getStatus() == 1){
                        if (DateUtil.getDate().before(coupon.getEndTime())){
                    if (userCoupon.getStatus() == 1) {
                        if (DateUtil.getDate().before(coupon.getEndTime())) {
                            packageResp.setUseStatus(1);
                        }else {
                        } else {
                            packageResp.setUseStatus(3);
                        }
                    }
                    if (userCoupon.getStatus() == 2){
                    if (userCoupon.getStatus() == 2) {
                        packageResp.setUseStatus(2);
                    }
                    respList.add(packageResp);
                }
                if (null != req.getCouponType()){
                if (null != req.getCouponType()) {
                    respList = respList.stream()
                            .filter(couponPackageResp -> couponPackageResp.getType().equals(req.getCouponType()))
                            .collect(Collectors.toList());
                }
                if (null != req.getUseStatus()){
                if (null != req.getUseStatus()) {
                    respList = respList.stream()
                            .filter(couponPackageResp -> couponPackageResp.getUseStatus().equals(req.getUseStatus()))
                            .collect(Collectors.toList());
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserPointsMerchandiseServiceImpl.java
@@ -27,15 +27,16 @@
public class UserPointsMerchandiseServiceImpl extends ServiceImpl<UserPointsMerchandiseMapper, UserPointsMerchandise> implements UserPointsMerchandiseService {
    @Autowired
    private UserPointsMerchandiseMapper userPointsMerchandiseMapper;
    @Override
    public List<PointMerchandiseIncomeVo> getAmount() {
       return userPointsMerchandiseMapper.getAmount();
        return userPointsMerchandiseMapper.getAmount();
    }
    @Override
    public Object changeState(CourseChangeStateDTO dto) {
        List<Integer> ids = dto.getIds();
        return this.baseMapper.changeState(ids,dto.getState());
        return this.baseMapper.changeState(ids, dto.getState());
    }
    @Override
cloud-server-activity/src/main/java/com/dsh/activity/util/DateTimeHelper.java
@@ -960,6 +960,7 @@
    /**
     * 把给定的时间加上指定的年份,可以为负, 返回新的被加上了年份的日期对象,不影响参数日期对象值
     * Given a certain time and a specified year, which can be negative, returns a new date object with the added year, without affecting the value of the original date object.
     *
     * @param d
     * @param years
     * @return 日期对象
@@ -978,6 +979,7 @@
    /**
     * 把给定的时间加上指定的月份,可以为负
     * Adding the specified number of month to the given time is possible, including negative values.
     *
     * @param d
     * @param months
     * @return 日期对象
@@ -995,6 +997,7 @@
    /**
     * 把给定的时间加上指定的天数,可以为负
     * Adding the specified number of day to the given time is possible, including negative values.
     *
     * @param d    日期对象
     * @param days
     * @return 日期对象
@@ -1012,6 +1015,7 @@
    /**
     * 把给定的时间加上指定的小时,可以为负
     * Adding the specified number of hour to the given time is possible, including negative values.
     *
     * @param d     日期对象
     * @param hours
     * @return 日期对象
@@ -1029,6 +1033,7 @@
    /**
     * 把给定的时间加上指定的分钟,可以为负
     * Adding the specified number of minute to the given time is possible, including negative values.
     *
     * @param d
     * @param minutes
     * @return 日期对象
@@ -1046,6 +1051,7 @@
    /**
     * 把给定的时间加上指定的秒数,可以为负
     * Adding the specified number of seconds to the given time is possible, including negative values.
     *
     * @param d
     * @param seconds
     * @return 日期对象
@@ -1063,6 +1069,7 @@
    /**
     * 把给定的时间加上指定的毫秒数,可以为负
     * Adding the specified number of milliseconds to the given time can result in a negative value.
     *
     * @param d
     * @param milliseconds
     * @return 日期对象
@@ -1080,6 +1087,7 @@
    /**
     * 设置一个日期对象的年份是新的给定的年份
     * Setting the year of a date object to a new given year.
     *
     * @param d    需要设定的日期对象
     * @param year 新的年份
     * @return 日期对象
@@ -1097,6 +1105,7 @@
    /**
     * 设置一个日期对象的月份是新的给定的月份
     * Set the month of a date object to a new given month.
     *
     * @param d     需要设定的日期对象
     * @param month 新的月份
     * @return 新日期对象
@@ -1114,6 +1123,7 @@
    /**
     * 设置一个日期对象的天是新的给定的天
     * Set the day of a date object to a new given day.
     *
     * @param d   需要设定的日期对象
     * @param day 新的天
     * @return 新日期对象
@@ -1131,6 +1141,7 @@
    /**
     * 设置一个日期对象的小时是新的给定的小时
     * Setting the hour of a date object to a new given hour.
     *
     * @param d    需要设定的日期对象
     * @param hour 新的小时数
     * @return 新日期对象
@@ -1148,6 +1159,7 @@
    /**
     * 设置一个日期对象的分钟是新的给定的分钟数
     * Set the minutes of a date object to a new given minute value.
     *
     * @param d      需要设定的日期对象
     * @param minute 新的分钟数
     * @return 新日期对象
@@ -1183,6 +1195,7 @@
    /**
     * 设置一个日期对象的毫秒数是新的给定的分钟数
     * Setting the milliseconds of a date object to a new given minute value.
     *
     * @param d           需要设定的日期对象
     * @param millisecond 新的毫秒数
     * @return 新日期对象
@@ -1201,6 +1214,7 @@
    /**
     * 返回指定日期的月份的天数量
     * Retrieve the number of days in the month of the specified date.
     *
     * @param d 日期对象
     */
    public static int getDaysOfMonth(Date d) {
@@ -1212,6 +1226,7 @@
    /**
     * 返回指定日期的月份的天数量
     * Retrieve the number of days in the month of the specified date.
     *
     * @param year  年
     * @param month 月
     */
@@ -1308,6 +1323,7 @@
    /**
     * 取得下个月的这天,比如2月1日可取得3月1日,此方法有很大局限性,不能用于月末的天数
     * Obtain the same day of the following month, for example, February 1st can obtain March 1st. This method has significant limitations and cannot be used for the last days of the month.
     *
     * @param date
     * @return
     */
@@ -1364,6 +1380,7 @@
    /**
     * 根据时间获取和当前时间的差距.
     * Obtain the difference between the current time and the time in question.
     *
     * @param date - 待比较实际
     * @return 时间差距字符串
     */
@@ -1405,6 +1422,7 @@
    /**
     * 获取当前日期后几天的日期
     * Obtaining the date of the day after several days from the current date.
     *
     * @param day 天数
     * @return
     */
@@ -1424,6 +1442,7 @@
    /**
     * 获取当前日期是星期几<br>
     * Obtain the day of the week for the current date.
     *
     * @param dt
     * @return 当前日期是星期几
     */
@@ -1509,6 +1528,7 @@
    /**
     * 根据时间获取和当前时间的差距.
     * Obtain the difference between the current time and the time in question.
     *
     * @param date - 待比较实际
     * @return 时间差距字符串
     */
@@ -1556,6 +1576,7 @@
    /**
     * 是否是同一天
     * it the same day
     *
     * @param first
     * @param second
     * @return
@@ -1577,6 +1598,7 @@
    /**
     * 是否超过指定时刻
     * Has the specified time limit been exceeded
     *
     * @param day  时间
     * @param time 指定时刻
     * @return
@@ -1616,6 +1638,7 @@
    /**
     * 指定一天哪一个小时
     * Specify which hour of a particular day.
     *
     * @param time
     * @return
     */
@@ -1648,6 +1671,7 @@
    /**
     * 数字换算成中文(周)
     * Conversion of numbers to Chinese (weeks)
     *
     * @param time
     * @return
     */
@@ -1694,6 +1718,7 @@
    /**
     * 获取两个时间的间隔(秒)
     * Obtain the time difference between two instances (in seconds).
     *
     * @param d1
     * @param d2
     * @return
@@ -1704,7 +1729,7 @@
    /**
     * @param date
     * @return 获取今天最后的时间
     * @return 获取今天最后的时间
     * Obtain the final time of today.
     */
    public static Date getEndDate(Date date) {
@@ -1720,7 +1745,7 @@
    }
    /**
     * 日期天数差
     * 日期天数差
     * Days Difference
     */
    public static int daysBetween(Date today, Date endDate) throws ParseException {
@@ -1737,8 +1762,9 @@
    }
    /**
     * 获取到当月所有日期
     * 获取到当月所有日期
     * Obtain all dates of the current month
     *
     * @param date
     * @return
     */
cloud-server-activity/src/main/java/com/dsh/activity/util/DateUtil.java
@@ -150,7 +150,7 @@
     */
    public static Date parse(String date, String pattern) {
        try {
            if(Objects.nonNull(date)) {
            if (Objects.nonNull(date)) {
                return DateUtils.parseDate(date, pattern);
            }
        } catch (ParseException e) {
@@ -286,6 +286,7 @@
        Calendar cal = Calendar.getInstance();
        return cal;
    }
    /**
     * 毫秒转日期时间
     *
cloud-server-activity/src/main/java/com/dsh/activity/util/GDMapGeocodingUtil.java
@@ -23,25 +23,26 @@
    /**
     * 将行政区域名称转化为坐标
     *
     * @param province
     * @param city
     * @param county
     * @param address
     * @return
     */
    public Map<String, Object> geocoding(String province, String city, String county, String address) throws Exception{
    public Map<String, Object> geocoding(String province, String city, String county, String address) throws Exception {
        Map<String, Object> map = new HashMap<>();
        if(ToolUtil.isEmpty(province)){
        if (ToolUtil.isEmpty(province)) {
            map.put("status", -1);
            map.put("data", "省不能为空");
            return map;
        }
        if((ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(county)) || (ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(address))){
        if ((ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(county)) || (ToolUtil.isEmpty(city) && ToolUtil.isNotEmpty(address))) {
            map.put("status", -1);
            map.put("data", "市不能为空");
            return map;
        }
        if((ToolUtil.isEmpty(county) && ToolUtil.isNotEmpty(address))){
        if ((ToolUtil.isEmpty(county) && ToolUtil.isNotEmpty(address))) {
            map.put("status", -1);
            map.put("data", "县/区不能为空");
            return map;
@@ -54,9 +55,9 @@
        String status = jsonObject.getString("status");
        List<String> list = new ArrayList<>();
        if(status.equals("1")){
        if (status.equals("1")) {
            JSONArray geocodes = jsonObject.getJSONArray("geocodes");
            for(int i = 0; i < geocodes.size(); i++){
            for (int i = 0; i < geocodes.size(); i++) {
                String location = geocodes.getJSONObject(i).getString("location");
                list.add(location);
            }
@@ -67,8 +68,7 @@
    }
    public Map<String, Object> geocoding(String address) throws Exception{
    public Map<String, Object> geocoding(String address) throws Exception {
        Map<String, Object> map = new HashMap<>();
        String url = "https://restapi.amap.com/v3/geocode/geo?key=" + key + "&output=JSON&address=" + address;
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "json");
@@ -76,9 +76,9 @@
        String status = jsonObject.getString("status");
        List<String> list = new ArrayList<>();
        if(status.equals("1")){
        if (status.equals("1")) {
            JSONArray geocodes = jsonObject.getJSONArray("geocodes");
            for(int i = 0; i < geocodes.size(); i++){
            for (int i = 0; i < geocodes.size(); i++) {
                String location = geocodes.getJSONObject(i).getString("location");
                list.add(location);
            }
@@ -89,21 +89,21 @@
    }
    /**
     * 根据经纬度获取行政区域信息
     *
     * @param lon
     * @param lan
     * @return
     * @throws Exception
     */
    public Map<String, String> geocode(String lon, String lan) throws Exception{
    public Map<String, String> geocode(String lon, String lan) throws Exception {
        String url = "https://restapi.amap.com/v3/geocode/regeo?key=" + key + "&location=" + lon + "," + lan;
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "json");
        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
        Map<String, String> map = new HashMap<>();
        if(jsonObject.getString("status").equals("1")){
        if (jsonObject.getString("status").equals("1")) {
            JSONObject regeocode = jsonObject.getJSONObject("regeocode");
            JSONObject addressComponent = regeocode.getJSONObject("addressComponent");
            String address = regeocode.getString("formatted_address");
@@ -125,21 +125,22 @@
    /**
     * 坐标转换
     *
     * @param locations 经度和纬度用","分割,经度在前,纬度在后,经纬度小数点后不得超过6位。多个坐标对之间用”|”进行分隔最多支持40对坐标。
     * @param coordsys  可选值:gps;mapbar;baidu;autonavi(不进行转换)
     * @return
     * @throws Exception
     */
    public Map<String, String> convert(String locations, String coordsys) throws Exception{
    public Map<String, String> convert(String locations, String coordsys) throws Exception {
        String url = "https://restapi.amap.com/v3/assistant/coordinate/convert?locations=" + locations + "&coordsys=" + coordsys + "&output=json&key=" + key;
        HttpResult httpResult = HttpClientUtil.pushHttpRequset("GET", url, null, null, "json");
        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
        Map<String, String> map = new HashMap<>();
        if("1".equals(jsonObject.getString("status"))){
        if ("1".equals(jsonObject.getString("status"))) {
            map.put("code", jsonObject.getString("infocode"));//"10000"
            map.put("info", jsonObject.getString("info"));//status为0时,info返回错误原;否则返回“OK”。
            map.put("locations", jsonObject.getString("locations").split(";")[0]);//转换之后的坐标。若有多个坐标,则用 “;”进行区分和间隔
        }else{
        } else {
            map.put("code", jsonObject.getString("infocode"));
            map.put("info", jsonObject.getString("info"));//status为0时,info返回错误原;否则返回“OK”。
        }
cloud-server-activity/src/main/java/com/dsh/activity/util/GeodesyUtil.java
New file
@@ -0,0 +1,64 @@
package com.dsh.activity.util;
import org.gavaghan.geodesy.Ellipsoid;
import org.gavaghan.geodesy.GeodeticCalculator;
import org.gavaghan.geodesy.GeodeticCurve;
import org.gavaghan.geodesy.GlobalCoordinates;
import java.util.HashMap;
import java.util.Map;
/**
 * 计算两个金纬度坐标之间的直线距离
 */
public class GeodesyUtil {
    /**
     * 获取直线距离
     *
     * @param fromLonLat
     * @param toLonLat
     * @return
     */
    public static Map<String, Double> getDistance(String fromLonLat, String toLonLat) {
        String[] from = fromLonLat.split(",");
        String[] to = toLonLat.split(",");
        GlobalCoordinates source = new GlobalCoordinates(Double.valueOf(from[1]), Double.valueOf(from[0]));
        GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(to[1]), Double.valueOf(to[0]));
        double Sphere = getDistanceMeter(source, target, Ellipsoid.Sphere);
        double WGS84 = getDistanceMeter(source, target, Ellipsoid.WGS84);
        double GRS80 = getDistanceMeter(source, target, Ellipsoid.GRS80);
        double GRS67 = getDistanceMeter(source, target, Ellipsoid.GRS67);
        double ANS = getDistanceMeter(source, target, Ellipsoid.ANS);
        double WGS72 = getDistanceMeter(source, target, Ellipsoid.WGS72);
        double Clarke1858 = getDistanceMeter(source, target, Ellipsoid.Clarke1858);
        double Clarke1880 = getDistanceMeter(source, target, Ellipsoid.Clarke1880);
//        System.out.println("Sphere坐标系计算结果:"+Sphere + "米");
//        System.out.println("WGS84坐标系计算结果:"+WGS84 + "米");
//        System.out.println("GRS80坐标系计算结果:"+GRS80 + "米");
//        System.out.println("GRS67坐标系计算结果:"+GRS67 + "米");
//        System.out.println("ANS坐标系计算结果:"+ANS + "米");
//        System.out.println("WGS72坐标系计算结果:"+WGS72 + "米");
//        System.out.println("Clarke1858坐标系计算结果:"+Clarke1858 + "米");
//        System.out.println("Clarke1880坐标系计算结果:"+Clarke1880 + "米");
        Map<String, Double> map = new HashMap<>();
        map.put("Sphere", Sphere);
        map.put("WGS84", WGS84);
        map.put("GRS80", GRS80);
        map.put("GRS67", GRS67);
        map.put("ANS", ANS);
        map.put("WGS72", WGS72);
        map.put("Clarke1858", Clarke1858);
        map.put("Clarke1880", Clarke1880);
        return map;
    }
    private static double getDistanceMeter(GlobalCoordinates gpsFrom, GlobalCoordinates gpsTo, Ellipsoid ellipsoid) {
        //创建GeodeticCalculator,调用计算方法,传入坐标系、经纬度用于计算距离
        GeodeticCurve geoCurve = new GeodeticCalculator().calculateGeodeticCurve(ellipsoid, gpsFrom, gpsTo);
        return geoCurve.getEllipsoidalDistance();
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/util/HeaderAuthUtil.java
@@ -11,9 +11,10 @@
    /**
     * 获取Request请求头UserId
     *
     * @return
     */
    public static String getLoginAuthUserId (HttpServletRequest request) {
    public static String getLoginAuthUserId(HttpServletRequest request) {
        String userId = request.getHeader(HEADER_USERID);
        return userId;
    }
cloud-server-activity/src/main/java/com/dsh/activity/util/JsonUtil.java
@@ -14,9 +14,8 @@
import java.util.Map;
/**
 *
 * 返回json数据封装工具类
 *
 *
 * @ClassName: JsonUtil
 * @author: yuds
 * @date: 2019-09-20 09:19:27
@@ -24,134 +23,134 @@
 */
public class JsonUtil {
    /**
     * <li>将对象转化为json输出
     * <li>QuoteFieldNames ———-输出key时是否使用双引号,默认为true
     * <li>WriteMapNullValue ——–是否输出值为null的字段,默认为false
     * <li>WriteNullNumberAsZero —-数值字段如果为null,输出为0,而非null
     * <li>WriteNullListAsEmpty —–List字段如果为null,输出为[],而非null
     * <li>WriteNullStringAsEmpty —字符类型字段如果为null,输出为”“,而非null
     * <li>WriteNullBooleanAsFalse –Boolean字段如果为null,输出为false,而非null
     * <li>DisableCircularReferenceDetect 禁止循环引用检测
     */
    private static SerializerFeature[] serializerFeaturess = { SerializerFeature.WriteMapNullValue,
            SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullListAsEmpty,
            SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullBooleanAsFalse,
            SerializerFeature.DisableCircularReferenceDetect, };
    /**
     * <li>将对象转化为json输出
     * <li>QuoteFieldNames ———-输出key时是否使用双引号,默认为true
     * <li>WriteMapNullValue ——–是否输出值为null的字段,默认为false
     * <li>WriteNullNumberAsZero —-数值字段如果为null,输出为0,而非null
     * <li>WriteNullListAsEmpty —–List字段如果为null,输出为[],而非null
     * <li>WriteNullStringAsEmpty —字符类型字段如果为null,输出为”“,而非null
     * <li>WriteNullBooleanAsFalse –Boolean字段如果为null,输出为false,而非null
     * <li>DisableCircularReferenceDetect 禁止循环引用检测
     */
    private static SerializerFeature[] serializerFeaturess = {SerializerFeature.WriteMapNullValue,
            SerializerFeature.WriteNullNumberAsZero, SerializerFeature.WriteNullListAsEmpty,
            SerializerFeature.WriteNullStringAsEmpty, SerializerFeature.WriteNullBooleanAsFalse,
            SerializerFeature.DisableCircularReferenceDetect,};
    private JsonUtil() {
    private JsonUtil() {
    }
    }
    /**
     * fastJson Object转json
     *
     * @param obj
     * @return
     */
    public static String objToJson(Object obj) {
        return JSON.toJSONString(obj, serializerFeaturess);
    }
    /**
     * fastJson Object转json
     *
     * @param obj
     * @return
     */
    public static String objToJson(Object obj) {
        return JSON.toJSONString(obj, serializerFeaturess);
    }
    /**
     * fastJson Object转json
     *
     * @param obj
     * @param dateFormat 时间格式化
     * @return
     */
    public static String objToJson(Object obj, String dateFormat) {
        return JSON.toJSONStringWithDateFormat(obj, dateFormat, serializerFeaturess);
    }
    /**
     * fastJson Object转json
     *
     * @param obj
     * @param dateFormat 时间格式化
     * @return
     */
    public static String objToJson(Object obj, String dateFormat) {
        return JSON.toJSONStringWithDateFormat(obj, dateFormat, serializerFeaturess);
    }
    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();
    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();
    /**
     * 将对象转换成json字符串。
     * <p>
     * Title: pojoToJson
     * </p>
     * <p>
     * Description:
     * </p>
     *
     * @param data
     * @return
     */
    public static String objectToJson(Object data) {
        try {
            SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            MAPPER.setDateFormat(fmt);
            String string = MAPPER.writeValueAsString(data);
            return string;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将对象转换成json字符串。
     * <p>
     * Title: pojoToJson
     * </p>
     * <p>
     * Description:
     * </p>
     *
     * @param data
     * @return
     */
    public static String objectToJson(Object data) {
        try {
            SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            MAPPER.setDateFormat(fmt);
            String string = MAPPER.writeValueAsString(data);
            return string;
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将json结果集转化为对象
     *
     * @param jsonData json数据
     * @param beanType    对象中的object类型
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = MAPPER.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将json结果集转化为对象
     *
     * @param jsonData json数据
     * @param beanType 对象中的object类型
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = MAPPER.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    /**
     * 将json数据转换成pojo对象list
     * <p>
     * Title: jsonToList
     * </p>
     * <p>
     * Description:
     * </p>
     *
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
        try {
            List<T> list = MAPPER.readValue(jsonData, javaType);
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }
    /**
     * 将json数据转换成pojo对象list
     * <p>
     * Title: jsonToList
     * </p>
     * <p>
     * Description:
     * </p>
     *
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
        JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
        try {
            List<T> list = MAPPER.readValue(jsonData, javaType);
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
        return null;
    }
    public static JsonNode jsonToNode(String jsonData) {
        try {
            return MAPPER.readTree(jsonData);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
    public static JsonNode jsonToNode(String jsonData) {
        try {
            return MAPPER.readTree(jsonData);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;
    }
    public static Map<String, String> jsonToMap(String json) {
        JsonNode nodes = jsonToNode(json);
        Iterator<Map.Entry<String, JsonNode>> fields = nodes.fields();
        Map<String, String> map = new HashMap<>();
        while (fields.hasNext()) {
            Map.Entry<String, JsonNode> next = fields.next();
            String value = next.getValue().asText("");
            map.put(next.getKey(), value);
        }
        return map;
    }
    public static Map<String, String> jsonToMap(String json) {
        JsonNode nodes = jsonToNode(json);
        Iterator<Map.Entry<String, JsonNode>> fields = nodes.fields();
        Map<String, String> map = new HashMap<>();
        while (fields.hasNext()) {
            Map.Entry<String, JsonNode> next = fields.next();
            String value = next.getValue().asText("");
            map.put(next.getKey(), value);
        }
        return map;
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/util/LocalDateTimeUtils.java
@@ -13,8 +13,8 @@
 * @version V1.0
 */
public class LocalDateTimeUtils {
    private final static int[] dayArr = new int[] { 20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22 };
    private final static String[] constellationArr = new String[] { "摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座" };
    private final static int[] dayArr = new int[]{20, 19, 21, 20, 21, 22, 23, 23, 23, 24, 23, 22};
    private final static String[] constellationArr = new String[]{"摩羯座", "水瓶座", "双鱼座", "白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天秤座", "天蝎座", "射手座", "摩羯座"};
    /**
@@ -31,16 +31,17 @@
    /**
     * 通过生日计算年龄
     *
     * @param birthDay 生日
     * @return
     * @throws ParseException
     */
    public static int getAgeByBirth(LocalDate birthDay) throws ParseException {
        int age = 0;
       //出生日期晚于当前时间,无法计算
        LocalDate now=LocalDate.now();
        //出生日期晚于当前时间,无法计算
        LocalDate now = LocalDate.now();
        if (birthDay.isAfter(now)) {
            throw new IllegalArgumentException( "生日大于当前时间!");
            throw new IllegalArgumentException("生日大于当前时间!");
        }
        //当前年份
        int yearNow = now.getYear();
@@ -49,14 +50,14 @@
        //当前日期
        int dayOfMonthNow = now.getDayOfMonth();
        int yearBirth =birthDay.getYear();
        int yearBirth = birthDay.getYear();
        int monthBirth = birthDay.getMonthValue();
        int dayOfMonthBirth = birthDay.getDayOfMonth();
        //计算整岁数
        age = yearNow - yearBirth;
        if (monthNow <= monthBirth) {
            if (monthNow == monthBirth) {
                if (dayOfMonthNow < dayOfMonthBirth){
                if (dayOfMonthNow < dayOfMonthBirth) {
                    //当前日期在生日之前,年龄减一
                    age--;
                }
@@ -73,8 +74,8 @@
     */
    public static String getConstellation(LocalDate date) {
        Integer month=date.getMonthValue();
        Integer day=date.getDayOfMonth();
        Integer month = date.getMonthValue();
        Integer day = date.getDayOfMonth();
        return day < dayArr[month - 1] ? constellationArr[month - 1] : constellationArr[month];
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/util/RedisUtil.java
@@ -25,11 +25,12 @@
    /**
     * 向redis中存储字符串没有过期时间
     * Storing strings in Redis without an expiration time.
     *
     * @param key
     * @param value
     */
    public void setStrValue(String key, String value){
        if(StringUtil.isNotEmpty(key)){
    public void setStrValue(String key, String value) {
        if (StringUtil.isNotEmpty(key)) {
            Jedis resource = jedisPool.getResource();
            String set = resource.set(key, value);
            closeJedis(resource);
@@ -40,12 +41,13 @@
    /**
     * 以分钟为单位设置存储值(设置过期时间)
     * Set storage value in minutes (set expiration time) as units.
     *
     * @param key
     * @param value
     * @param time 秒
     * @param time  秒
     */
    public void setStrValue(String key, String value, int time){
        if(StringUtil.isNotEmpty(key)){
    public void setStrValue(String key, String value, int time) {
        if (StringUtil.isNotEmpty(key)) {
            Jedis resource = jedisPool.getResource();
            String setex = resource.setex(key, time, value);
            closeJedis(resource);
@@ -55,11 +57,12 @@
    /**
     * 从redis中获取值
     *
     * @param key
     * @return
     */
    public String getValue(String key){
        if(StringUtil.isNotEmpty(key)){
    public String getValue(String key) {
        if (StringUtil.isNotEmpty(key)) {
            Jedis resource = jedisPool.getResource();
            String data = resource.get(key);
            closeJedis(resource);
@@ -71,14 +74,15 @@
    /**
     * 批量获取
     *
     * @param kes
     * @return
     */
    public List<Object> getValues(List<String> kes){
        if(null != kes){
    public List<Object> getValues(List<String> kes) {
        if (null != kes) {
            Jedis resource = jedisPool.getResource();
            Pipeline pipelined = resource.pipelined();
            for(String key : kes){
            for (String key : kes) {
                pipelined.get(key);
            }
            List<Object> list = pipelined.syncAndReturnAll();
@@ -91,8 +95,8 @@
                e.printStackTrace();
            }
            List<Object> data = new ArrayList<>();
            for(Object o : list){
                if(null != o){
            for (Object o : list) {
                if (null != o) {
                    data.add(o);
                }
            }
@@ -104,10 +108,11 @@
    /**
     * 删除key
     *
     * @param key
     */
    public void remove(String key){
        if(StringUtil.isNotEmpty(key)){
    public void remove(String key) {
        if (StringUtil.isNotEmpty(key)) {
            Jedis resource = jedisPool.getResource();
            Long del = resource.del(key);
            closeJedis(resource);
@@ -117,10 +122,11 @@
    /**
     * 删除资源
     *
     * @param jedis
     */
    public void closeJedis(Jedis jedis){
        if(null != jedis){
    public void closeJedis(Jedis jedis) {
        if (null != jedis) {
            jedis.close();
        }
    }
cloud-server-activity/src/main/java/com/dsh/activity/util/ResultUtil.java
@@ -36,7 +36,6 @@
    private T data;//返回数据
    public String getMsg() {
        return msg;
    }
@@ -62,127 +61,140 @@
    }
    public static <T> ResultUtil<T> getResult(Integer code, String msg){
    public static <T> ResultUtil<T> getResult(Integer code, String msg) {
        return new ResultUtil<>(code, msg);
    }
    public static <T> ResultUtil<T> getResult(Integer code, String msg, T data){
    public static <T> ResultUtil<T> getResult(Integer code, String msg, T data) {
        return new ResultUtil<>(code, msg, data);
    }
    /**
     * 错误信息
     *
     * @return
     */
    public static ResultUtil error(String mag){
    public static ResultUtil error(String mag) {
        return ResultUtil.getResult(ResultUtil.ERROR, mag, new JSONObject());
    }
    /**
     * 错误信息
     *
     * @return
     */
    public static <T> ResultUtil <T> error(String mag, T obj){
    public static <T> ResultUtil<T> error(String mag, T obj) {
        return ResultUtil.getResult(ResultUtil.ERROR, mag, obj);
    }
    /**
     * token失效
     *
     * @return
     */
    public static ResultUtil tokenErr(){
    public static ResultUtil tokenErr() {
        return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, ResultUtil.Token, new JSONObject());
    }
    /**
     * token失效
     *
     * @return
     */
    public static ResultUtil tokenErr(String msg){
    public static ResultUtil tokenErr(String msg) {
        return ResultUtil.getResult(ResultUtil.TOKEN_ERROR, msg, new JSONObject());
    }
    /**
     * 参数异常
     *
     * @return
     */
    public static  ResultUtil paranErr(String ages){
    public static ResultUtil paranErr(String ages) {
        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "【" + ages + "】参数异常", new JSONObject());
    }
    /**
     * 参数异常
     *
     * @return
     */
    public static <T> ResultUtil<T> paranErr(T data){
    public static <T> ResultUtil<T> paranErr(T data) {
        return ResultUtil.getResult(ResultUtil.PARAM_ERROR, "PARAM_ERROR", data);
    }
    /**
     * 运行异常
     *
     * @return
     */
    public static ResultUtil runErr(){
    public static ResultUtil runErr() {
        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", new JSONObject());
    }
    /**
     * 运行异常
     *
     * @return
     */
    public static <T>ResultUtil<T> runErr(T data){
    public static <T> ResultUtil<T> runErr(T data) {
        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, "SYSTEM_RUN_ERROR", data);
    }
    /**
     * 运行异常
     *
     * @return
     */
    public static <T>ResultUtil<T> runErr(T data, String msg){
    public static <T> ResultUtil<T> runErr(T data, String msg) {
        return ResultUtil.getResult(ResultUtil.RUNTIME_ERROR, msg, data);
    }
    /**
     * 返回成功
     *
     * @param
     * @return
     */
    public static ResultUtil success(){
    public static ResultUtil success() {
        return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", new JSONObject());
    }
    /**
     * 返回成功
     *
     * @param data
     * @param <T>
     * @return
     */
    public static <T> ResultUtil<T> success(T data){
    public static <T> ResultUtil<T> success(T data) {
        return ResultUtil.getResult(ResultUtil.SUCCESS, "SUCCESS", data);
    }
    /**
     * 返回成功
     *
     * @param msg
     * @param data
     * @param <T>
     * @return
     */
    public static <T> ResultUtil<T> success(String msg, T data){
    public static <T> ResultUtil<T> success(String msg, T data) {
        return ResultUtil.getResult(ResultUtil.SUCCESS, msg, data);
    }
    /**
     * 签名无效
     *
     * @param <T>
     * @return
     */
    public static <T> ResultUtil<T> sign(){
    public static <T> ResultUtil<T> sign() {
        return ResultUtil.getResult(ResultUtil.SIGN_ERROR, SIGN);
    }
cloud-server-activity/src/main/java/com/dsh/activity/util/StrUtils.java
@@ -9,10 +9,11 @@
    /**
     * 把逗号分隔的字符串转换字符串数组
     * Convert comma-separated string to string array.
     *
     * @param str
     * @return
     */
    public static String[] splitStr2StrArr(String str,String split) {
    public static String[] splitStr2StrArr(String str, String split) {
        if (str != null && !str.equals("")) {
            return str.split(split);
        }
@@ -27,7 +28,7 @@
     * @return
     */
    public static List<Long> splitStr2LongArr(String str) {
        String[] strings = splitStr2StrArr(str,",");
        String[] strings = splitStr2StrArr(str, ",");
        if (strings == null) return null;
        List<Long> result = new ArrayList<>();
@@ -37,14 +38,15 @@
        return result;
    }
    /**
     * 把逗号分隔字符串转换List的Long
     *
     * @param str
     * @return
     */
    public static List<Long> splitStr2LongArr(String str,String split) {
        String[] strings = splitStr2StrArr(str,split);
    public static List<Long> splitStr2LongArr(String str, String split) {
        String[] strings = splitStr2StrArr(str, split);
        if (strings == null) return null;
        List<Long> result = new ArrayList<>();
@@ -77,18 +79,19 @@
        }
        return sb.toString();
    }
    public static String getClassCodeString(int length) {
        String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++) {
            int number =random.nextInt(36);
            int number = random.nextInt(36);
            sb.append(str.charAt(number));
        }
        return sb.toString();
    }
    public static String convertPropertiesToHtml(String properties){
    public static String convertPropertiesToHtml(String properties) {
        //1:容量:6:32GB_4:样式:12:塑料壳
        StringBuilder sBuilder = new StringBuilder();
        String[] propArr = properties.split("_");
cloud-server-activity/src/main/java/com/dsh/activity/util/StudyTimeUtil.java
@@ -14,7 +14,7 @@
    }
    /**
     * 获取两个时间的间隔(秒)Obtain the time difference between two instances (in seconds).
     * 获取两个时间的间隔(秒)Obtain the time difference between two instances (in seconds).
     *
     * @param startDate 开始的时间
     * @return 返回当前时间与开始时间的相差天数
@@ -24,7 +24,7 @@
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        long startDateTime = dateFormat.parse(dateFormat.format(startDate)).getTime();
        long endDateTime = dateFormat.parse(dateFormat.format(endDate)).getTime();
        int days = (int)((endDateTime - startDateTime)  / (1000 * 3600 * 24));
        int days = (int) ((endDateTime - startDateTime) / (1000 * 3600 * 24));
        return days;
    }
cloud-server-activity/src/main/java/com/dsh/activity/util/TokenUtil.java
@@ -22,14 +22,14 @@
            requestHeader = requestHeader.substring(requestHeader.indexOf(" ") + 1);
            String key = null;
            int length = requestHeader.length();
            if(length > 32){
            if (length > 32) {
                key = requestHeader.substring(length - 32);
            }else{
            } else {
                key = requestHeader;
            }
            String value = redisUtil.getValue(key);
            return null != value ? Integer.valueOf(value) : null;
        }else{
        } else {
            return null;
        }
    }
cloud-server-activity/src/main/java/com/dsh/activity/util/ToolUtil.java
@@ -16,8 +16,6 @@
package com.dsh.activity.util;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -388,7 +386,7 @@
     * map的key转为小写
     *
     * @param map
     * @return Map<String , Object>
     * @return Map<String   ,   Object>
     */
    public static Map<String, Object> caseInsensitiveMap(Map<String, Object> map) {
        Map<String, Object> tempMap = new HashMap<>();
@@ -468,7 +466,6 @@
    public static String currentTime() {
        return DateUtil.getTime();
    }
    /**
cloud-server-activity/src/main/java/com/dsh/activity/util/UUIDUtil.java
@@ -1,7 +1,6 @@
package com.dsh.activity.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
@@ -16,51 +15,54 @@
    /**
     * 定义生成原生的UUID随机码
     *
     * @return
     */
    public static String getNativeUUID(){
    public static String getNativeUUID() {
        return UUID.randomUUID().toString();
    }
    /**
     * 生成32位随机码
     *
     * @return
     */
    public static String getRandomCode(){
    public static String getRandomCode() {
        return UUIDUtil.getNativeUUID().replaceAll("-", "");
    }
    /**
     * 获取给定长度的随机码
     *
     * @param num
     * @return
     * @throws Exception
     */
    public static String getRandomCode(Integer num) throws Exception{
    public static String getRandomCode(Integer num) throws Exception {
        String str = null;
        if(0 < num){
            if(num % 32 > 0){
        if (0 < num) {
            if (num % 32 > 0) {
                Integer s = num / 32;
                Integer l = num % 32;
                StringBuffer sb = new StringBuffer();
                for(int i = 0; i < s; i++){
                for (int i = 0; i < s; i++) {
                    sb.append(UUIDUtil.getRandomCode());
                }
                sb.append(UUIDUtil.getRandomCode().substring(0, l));
                str = sb.toString();
            }else if(num % 32 == 0){
            } else if (num % 32 == 0) {
                Integer s = num / 32;
                StringBuffer sb = new StringBuffer();
                for(int i = 0; i < s; i++){
                for (int i = 0; i < s; i++) {
                    sb.append(UUIDUtil.getRandomCode());
                }
                str = sb.toString();
            }else{
            } else {
                str = UUIDUtil.getRandomCode().substring(0, num);
            }
        }else{
        } else {
            throw new Exception("参数只能大于0");
        }
        return str;
@@ -69,9 +71,10 @@
    /**
     * 获取根据当前时间的字符串数据
     *
     * @return
     */
    public synchronized static String getTimeStr(){
    public synchronized static String getTimeStr() {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddhhmmssS");
        return simpleDateFormat.format(new Date());
    }
@@ -85,17 +88,16 @@
     * @Return
     * @Exception
     */
    public static String getNumberRandom(Integer num){
        if(null == num){
    public static String getNumberRandom(Integer num) {
        if (null == num) {
            num = 32;
        }
        StringBuffer sb = new StringBuffer();
        for(int i = 0; i < num; i++){
        for (int i = 0; i < num; i++) {
            sb.append(Double.valueOf(Math.random() * 10).intValue());
        }
        return sb.toString();
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/util/akeylogin/SignUtil.java
@@ -12,7 +12,7 @@
        }
        //排序参数
        Map<String, Object> mappingList = new TreeMap<>(data);
        StringBuilder plainText= new StringBuilder();
        StringBuilder plainText = new StringBuilder();
        mappingList.forEach((k, v) -> {
            if (!"sign".equals(k) && !BaseUtils.isEmpty(v)) {
                plainText.append(String.format("%s=%s&", k, v));
cloud-server-activity/src/main/java/com/dsh/activity/util/httpClinet/HttpClientUtil.java
@@ -51,14 +51,14 @@
    /**
     * 创建一个httpClient对象
     */
    private static CloseableHttpClient getHttpCline(){
        return  HttpClients.custom()
    private static CloseableHttpClient getHttpCline() {
        return HttpClients.custom()
                .setConnectionManager(connectionManager)
                .disableAutomaticRetries()
                .build();
    }
    private static RequestConfig getRequestConfig(){
    private static RequestConfig getRequestConfig() {
        RequestConfig.Builder builder = RequestConfig.custom();
        builder.setSocketTimeout(60000)//3.1设置客户端等待服务端返回数据的超时时间
                .setConnectTimeout(30000)//3.2设置客户端发起TCP连接请求的超时时间
@@ -68,34 +68,34 @@
    }
    /**
     * 创建一个POST请求实例
     * @param url       请求地址
     * @param params    请求参数
     *
     * @param url    请求地址
     * @param params 请求参数
     */
    private static CloseableHttpResponse setPostHttpRequset(String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception{
    private static CloseableHttpResponse setPostHttpRequset(String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception {
        HttpPost httpPost = new HttpPost(url);
        httpPost.setConfig(getRequestConfig());
        if(null != header){
            for(String key : header.keySet()){
        if (null != header) {
            for (String key : header.keySet()) {
                httpPost.setHeader(key, header.get(key));
            }
        }
        List<NameValuePair> list = new ArrayList<>();
        if(null != params){
        if (null != params) {
            Set<String> keys = params.keySet();
            for(String key : keys){
            for (String key : keys) {
                list.add(new BasicNameValuePair(key, null == params.get(key) ? null : params.get(key).toString()));
            }
        }
        switch (contentType){
        switch (contentType) {
            case "form":
                httpPost.setEntity(new UrlEncodedFormEntity(list, "UTF-8"));
                break;
            case "json":
                ObjectMapper objectMapper = new ObjectMapper();
                String s =objectMapper.writeValueAsString(params);
                String s = objectMapper.writeValueAsString(params);
                httpPost.setEntity(new StringEntity(s, ContentType.create(ContentType.APPLICATION_JSON.getMimeType(), Charset.forName("UTF-8"))));
                break;
        }
@@ -105,23 +105,24 @@
    /**
     * 获取get请求实例
     * @param url       请求地址
     * @param params    请求参数
     *
     * @param url    请求地址
     * @param params 请求参数
     */
    private static CloseableHttpResponse setGetHttpRequset(String url, Map<String, Object> params, Map<String, String> header) throws Exception{
    private static CloseableHttpResponse setGetHttpRequset(String url, Map<String, Object> params, Map<String, String> header) throws Exception {
        StringBuffer sb = new StringBuffer();
        String p = "";
        if(null != params){
        if (null != params) {
            Set<String> keys = params.keySet();
            for(String key : keys){
            for (String key : keys) {
                sb.append(key + "=" + params.get(key) + "&");
            }
            p = "?" + sb.substring(0, sb.length() - 1);
        }
        HttpGet httpGet = new HttpGet(url + p);
        httpGet.setConfig(getRequestConfig());
        if(null != header){
            for(String key : header.keySet()){
        if (null != header) {
            for (String key : header.keySet()) {
                httpGet.setHeader(key, header.get(key));
            }
        }
@@ -131,19 +132,20 @@
    /**
     * 发送http请求
     * @param mothed        "GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS"
     * @param url           请求地址
     * @param params        请求参数
     * @param header        请求头
     * @param contentType   参数请求方式form/json
     *
     * @param mothed      "GET、POST、PUT、HEAD、DELETE、HEAD、OPTIONS"
     * @param url         请求地址
     * @param params      请求参数
     * @param header      请求头
     * @param contentType 参数请求方式form/json
     * @return
     */
    public static HttpResult pushHttpRequset(String mothed, String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception{
    public static HttpResult pushHttpRequset(String mothed, String url, Map<String, Object> params, Map<String, String> header, String contentType) throws Exception {
        String randome = UUID.randomUUID().toString();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
        logger.info(sdf.format(new Date()) + "----(" + randome + ")请求参数:" + JSON.toJSONString(params));
        CloseableHttpResponse httpResponse = null;
        switch (mothed){
        switch (mothed) {
            case "GET":
                httpResponse = setGetHttpRequset(url, params, header);
                break;
@@ -162,15 +164,16 @@
    /**
     * 发送XML请求
     * @param url       请求地址
     * @param xml       XML数据
     * @param header    自定义请求头
     *
     * @param url    请求地址
     * @param xml    XML数据
     * @param header 自定义请求头
     * @return
     */
    public static HttpResult pushHttpRequsetXml(String url, String xml, Map<String, String> header) throws Exception{
    public static HttpResult pushHttpRequsetXml(String url, String xml, Map<String, String> header) throws Exception {
        HttpPost httpPost = new HttpPost(url);
        httpPost.setConfig(getRequestConfig());
        for(String key : header.keySet()){
        for (String key : header.keySet()) {
            httpPost.setHeader(key, header.get(key));
        }
        httpPost.setHeader("Content-Type", "application/xml");
@@ -184,21 +187,21 @@
    }
    /**
     * 请求https发送XML请求
     * @param url           接口路径
     * @param xml           内容
     * @param header        请求头
     * @param certPassword      证书密码
     * @param certPath      证书路径
     * @param certType      证书类型
     *
     * @param url          接口路径
     * @param xml          内容
     * @param header       请求头
     * @param certPassword 证书密码
     * @param certPath     证书路径
     * @param certType     证书类型
     * @return
     * @throws Exception
     */
    public String pushHttpsRequsetXml(String url, String xml, Map<String, String> header, String certPassword, String certPath, String certType) throws Exception{
    public String pushHttpsRequsetXml(String url, String xml, Map<String, String> header, String certPassword, String certPath, String certType) throws Exception {
        HttpPost httpPost = new HttpPost(url);
        for(String key : header.keySet()){
        for (String key : header.keySet()) {
            httpPost.setHeader(key, header.get(key));
        }
        httpPost.setHeader("Content-Type", "application/xml");
@@ -206,9 +209,9 @@
        CloseableHttpClient httpCline = this.initCert(certPassword, certPath, certType);
        CloseableHttpResponse httpResponse = httpCline.execute(httpPost);
        String content = null;
        if(httpResponse.getStatusLine().getStatusCode() == 200){
        if (httpResponse.getStatusLine().getStatusCode() == 200) {
            content = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
        }else{
        } else {
            content = "返回状态码:" + httpResponse.getStatusLine() + "。" + EntityUtils.toString(httpResponse.getEntity());
        }
        this.close(httpResponse);
@@ -219,9 +222,10 @@
    /**
     * 初始化https对象(带证书)
     * @param key       证书密码
     * @param certPath  证书路径
     * @param certType  证书类型
     *
     * @param key      证书密码
     * @param certPath 证书路径
     * @param certType 证书类型
     * @throws Exception
     */
    private CloseableHttpClient initCert(String key, String certPath, String certType) throws Exception {
@@ -234,30 +238,29 @@
        }
        SSLContext sslcontext = SSLContexts.custom().loadKeyMaterial(keyStore, key.toCharArray()).build();
        SSLConnectionSocketFactory sslsf =
                new SSLConnectionSocketFactory(sslcontext, new String[] {"TLSv1"}, null,
                new SSLConnectionSocketFactory(sslcontext, new String[]{"TLSv1"}, null,
                        SSLConnectionSocketFactory.BROWSER_COMPATIBLE_HOSTNAME_VERIFIER);
        return HttpClients.custom().setSSLSocketFactory(sslsf).build();
    }
    /**
     * 关闭资源
     */
    private static void close(CloseableHttpResponse httpResponse){
    private static void close(CloseableHttpResponse httpResponse) {
        try {
            if(null != httpResponse){
            if (null != httpResponse) {
                EntityUtils.consume(httpResponse.getEntity());//此处高能,通过源码分析,由EntityUtils是否回收HttpEntity
                httpResponse.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
        } finally {
            try {
                if(null != httpResponse){
                if (null != httpResponse) {
                    httpResponse.close();
                }
            }catch (Exception e){
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
cloud-server-activity/src/main/java/com/dsh/activity/util/httpClinet/HttpResult.java
@@ -18,11 +18,12 @@
    /**
     * 返回封装结果
     *
     * @param code
     * @param data
     * @return
     */
    public static HttpResult getHttpResult(Integer code, String data){
    public static HttpResult getHttpResult(Integer code, String data) {
        HttpResult httpResult = new HttpResult();
        httpResult.setCode(code);
        httpResult.setData(data);
cloud-server-activity/src/main/java/com/dsh/config/JsonLongSerializer.java
@@ -9,7 +9,7 @@
/**
 * @author 张鹏
 * @date 2020/9/2 11:12
 *
 * <p>
 * 重新封装实体时,ID 丢失精度,在重写的 ID 上添加注解  @JsonSerialize(using = JsonLongSerializer.class)
 */
public class JsonLongSerializer extends JsonSerializer<Long> {
cloud-server-activity/src/main/java/com/dsh/config/MessageLocalConfig.java
@@ -39,7 +39,7 @@
    @Bean//注册国际化组件
    public LocaleResolver localeResolver(){
    public LocaleResolver localeResolver() {
        return new MyLocaleResolver();
    }
cloud-server-activity/src/main/java/com/dsh/config/MyLocaleResolver.java
@@ -42,37 +42,37 @@
    public String getQueryParams(HttpServletRequest request, String key) {
        try {
            String method = request.getMethod();
            if("POST".equals(method)){
            if ("POST".equals(method)) {
                String parameter = request.getParameter(key);
                if(!StringUtils.isEmpty(parameter)){
                if (!StringUtils.isEmpty(parameter)) {
                    return parameter;
                }
                Object attribute = request.getAttribute(key);
                if(null != attribute){
                if (null != attribute) {
                    return attribute.toString();
                }
                StringBuffer sb = new StringBuffer();
                ServletInputStream inputStream = request.getInputStream();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
                String s;
                while ((s = bufferedReader.readLine()) != null){
                while ((s = bufferedReader.readLine()) != null) {
                    sb.append(s);
                }
                bufferedReader.close();
                inputStream.close();
                JSONObject jsonObject = JSON.parseObject(sb.toString());
                return jsonObject.getString(key);
            }else{
            } else {
                String parameter = request.getParameter(key);
                if(!StringUtils.isEmpty(parameter)){
                if (!StringUtils.isEmpty(parameter)) {
                    return parameter;
                }
                Object attribute = request.getAttribute(key);
                if(null != attribute){
                if (null != attribute) {
                    return attribute.toString();
                }
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
cloud-server-activity/src/main/java/com/dsh/config/RedisConfig.java
@@ -35,10 +35,10 @@
    private String password;
    @Value("${spring.redis.block-when-exhausted}")
    private boolean  blockWhenExhausted;
    private boolean blockWhenExhausted;
    @Bean
    public JedisPool redisPoolFactory()  throws Exception{
    public JedisPool redisPoolFactory() throws Exception {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMinIdle(minIdle);
cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/DatasourceModel.java
@@ -2,10 +2,11 @@
/**
* 数据源
* @author pzb
* @Date 2022/11/21 21:13
*/
 * 数据源
 *
 * @author pzb
 * @Date 2022/11/21 21:13
 */
public class DatasourceModel {
    private String url;
    private String username;
@@ -48,7 +49,7 @@
        this.driverClassName = driverClassName;
    }
    public DatasourceModel getDatasourceModel(){
    public DatasourceModel getDatasourceModel() {
        return this;
    }
cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/Master0DataSource.java
@@ -6,10 +6,11 @@
/**
* 数据源配置
* @author pzb
* @Date 2022/11/21 20:32
*/
 * 数据源配置
 *
 * @author pzb
 * @Date 2022/11/21 20:32
 */
@Component
@PropertySource(value = "classpath:sharding-jdbc.properties")
@ConfigurationProperties(prefix = "datasource.master0")
cloud-server-activity/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java
@@ -24,7 +24,7 @@
    @Bean
    public DataSource getDataSource(){
    public DataSource getDataSource() {
        DataSource dataSource = null;
        try {
            Properties properties = new Properties();
@@ -40,6 +40,7 @@
    /**
     * 配置多数据源
     *
     * @return
     */
    private Map<String, DataSource> createDataSourceMap() {
@@ -61,6 +62,7 @@
    /**
     * 分片配置
     *
     * @return
     */
    private Collection<RuleConfiguration> createShardingRuleConfiguration() {
@@ -94,6 +96,7 @@
    /**
     * 分片算法配置
     *
     * @return
     */
    private ShardingTableRuleConfiguration getUserCouponTableRuleConfiguration() {
@@ -104,9 +107,9 @@
    }
    /**
     * 分片算法配置
     *
     * @return
     */
    private ShardingTableRuleConfiguration getUserPointsMerchandiseTableRuleConfiguration() {
@@ -119,6 +122,7 @@
    /**
     * 分片算法配置
     *
     * @return
     */
    private ShardingTableRuleConfiguration getUserBenefitsVideosTableRuleConfiguration() {
cloud-server-activity/src/main/java/com/dsh/config/SwaggerConfig.java
@@ -27,7 +27,7 @@
@Configuration
@EnableSwagger2
@ConditionalOnProperty(prefix = "guns", name = "swagger-open", havingValue = "true")
public class SwaggerConfig{
public class SwaggerConfig {
    @Bean
    public Docket systemApi() {
@@ -47,7 +47,6 @@
                .paths(PathSelectors.any()).build().groupName("公共Aip接口")
                .apiInfo(apiInfo("公共Aip接口", "文档中可以查询及测试接口调用参数和结果", "1.0.0版本"));
    }
    private ApiInfo apiInfo(String name, String description, String version) {
cloud-server-activity/src/main/resources/bootstrap.properties
@@ -18,12 +18,9 @@
spring.cloud.nacos.discovery.group=@profiles.group@
spring.main.allow-bean-definition-overriding=true
spring.flyway.enabled=false
# \uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u0479\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
feign.compression.request.mime-types=text/xml,application/xml,application/json
feign.compression.request.min-request-size=4096
feign.compression.request.enabled=true
feign.compression.response.enabled=true
mybatis-plus.configuration.map-underscore-to-camel-case=false
cloud-server-activity/src/main/resources/logback-spring.xml
@@ -3,7 +3,7 @@
<!-- scan:当此属性设置为true时,配置文档如果发生改变,将会被重新加载,默认值为true -->
<!-- scanPeriod:设置监测配置文档是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。 -->
<configuration  scan="true" scanPeriod="10 seconds">
<configuration scan="true" scanPeriod="10 seconds">
    <contextName>logback</contextName>
    <!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后,可以使“${}”来使用变量。 -->
@@ -11,11 +11,14 @@
    <!--0. 日志格式和颜色渲染 -->
    <!-- 彩色日志依赖的渲染类 -->
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
    <conversionRule conversionWord="wex"
                    converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
    <conversionRule conversionWord="wEx"
                    converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
    <!-- 彩色日志格式 -->
    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <property name="CONSOLE_LOG_PATTERN"
              value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    <!--1. 输出到控制台-->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
@@ -187,12 +190,12 @@
                 基本策略(root级) + 根据profile在启动时, logger标签中定制化package日志级别(优先级高于上面的root级)-->
    <springProfile name="dev">
        <root level="info">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="DEBUG_FILE" />
            <appender-ref ref="INFO_FILE" />
            <appender-ref ref="WARN_FILE" />
            <appender-ref ref="ERROR_FILE" />
            <appender-ref ref="ALL_FILE" />
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="DEBUG_FILE"/>
            <appender-ref ref="INFO_FILE"/>
            <appender-ref ref="WARN_FILE"/>
            <appender-ref ref="ERROR_FILE"/>
            <appender-ref ref="ALL_FILE"/>
        </root>
        <logger name="com.dsh" level="debug"/>
        <logger name="business-log" level="warn"/>
@@ -200,12 +203,12 @@
    <springProfile name="fat">
        <root level="info">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="DEBUG_FILE" />
            <appender-ref ref="INFO_FILE" />
            <appender-ref ref="WARN_FILE" />
            <appender-ref ref="ERROR_FILE" />
            <appender-ref ref="ALL_FILE" />
            <appender-ref ref="CONSOLE"/>
            <appender-ref ref="DEBUG_FILE"/>
            <appender-ref ref="INFO_FILE"/>
            <appender-ref ref="WARN_FILE"/>
            <appender-ref ref="ERROR_FILE"/>
            <appender-ref ref="ALL_FILE"/>
        </root>
        <logger name="com.dsh.course.mapper" level="error"/>
        <logger name="business-log" level="warn"/>
@@ -214,11 +217,11 @@
    <springProfile name="prod">
        <root level="warn">
            <!-- 生产环境最好不配置console写文件 -->
            <appender-ref ref="DEBUG_FILE" />
            <appender-ref ref="INFO_FILE" />
            <appender-ref ref="WARN_FILE" />
            <appender-ref ref="ERROR_FILE" />
            <appender-ref ref="ALL_FILE" />
            <appender-ref ref="DEBUG_FILE"/>
            <appender-ref ref="INFO_FILE"/>
            <appender-ref ref="WARN_FILE"/>
            <appender-ref ref="ERROR_FILE"/>
            <appender-ref ref="ALL_FILE"/>
        </root>
        <logger name="com.dsh.course.mapper" level="error"/>
        <logger name="business-log" level="warn"/>
cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml
@@ -4,41 +4,43 @@
    <select id="queryBenefitsVideosList" resultType="java.util.Map">
            (select
            id,
            courseId,
            integral,
            "0" as study
            from t_benefits_videos where state = 1 and id not in (select benefitsVideosId from t_user_benefits_videos where appUserId = #{uid})
            <if test="null != classificationId">
                and benefitsVideoClassificationId = #{classificationId}
            </if>
            <if test="null != ids">
                and courseId in
                <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </if>
            order by insertTime desc)
        (select
        id,
        courseId,
        integral,
        "0" as study
        from t_benefits_videos where state = 1 and id not in (select benefitsVideosId from t_user_benefits_videos where
        appUserId = #{uid})
        <if test="null != classificationId">
            and benefitsVideoClassificationId = #{classificationId}
        </if>
        <if test="null != ids">
            and courseId in
            <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
                #{item}
            </foreach>
        </if>
        order by insertTime desc)
            union all
        union all
            (select
            id,
            courseId,
            integral,
            "1" as study
            from t_benefits_videos where state = 1 and id in (select benefitsVideosId from t_user_benefits_videos where appUserId = #{uid})
            <if test="null != classificationId">
                and benefitsVideoClassificationId = #{classificationId}
            </if>
            <if test="null != ids">
                and courseId in
                <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
                    #{item}
                </foreach>
            </if>
            order by insertTime desc)
        (select
        id,
        courseId,
        integral,
        "1" as study
        from t_benefits_videos where state = 1 and id in (select benefitsVideosId from t_user_benefits_videos where
        appUserId = #{uid})
        <if test="null != classificationId">
            and benefitsVideoClassificationId = #{classificationId}
        </if>
        <if test="null != ids">
            and courseId in
            <foreach collection="ids" item="item" index="index" separator="," open="(" close=")">
                #{item}
            </foreach>
        </if>
        order by insertTime desc)
        LIMIT #{limit} OFFSET #{offset}
    </select>
    <select id="getBenefitVideoById" resultType="com.dsh.activity.entity.BenefitsVideos">
cloud-server-activity/src/main/resources/mapper/BodySideAppointmentsMapper.xml
@@ -16,34 +16,34 @@
    </update>
    <select id="listAll" resultType="com.dsh.activity.model.QueryBodySideAppointmentVO">
            select t1.* from t_body_side_appointments t1
            <where>
                <if test="query.phone!=null and query.phone!= ''">
                    and t1.phone like concat('%',#{query.phone},'%')
                </if>
                <if test="query.parentName!=null and query.parentName!= ''">
                    and t1.parentName like concat('%',#{query.parentName},'%')
                </if>
                <if test="query.state!=null and query.state!= ''">
                    and t1.status = #{query.state}
                </if>
        select t1.* from t_body_side_appointments t1
        <where>
            <if test="query.phone!=null and query.phone!= ''">
                and t1.phone like concat('%',#{query.phone},'%')
            </if>
            <if test="query.parentName!=null and query.parentName!= ''">
                and t1.parentName like concat('%',#{query.parentName},'%')
            </if>
            <if test="query.state!=null and query.state!= ''">
                and t1.status = #{query.state}
            </if>
                <if test="query.day!=null and query.day!= '' and query.day==1" >
                    and DATE(t1.appointmentTime) = CURDATE()
                </if>
                <if test="query.day!=null and query.day!= '' and query.day==2" >
                    and DATE(t1.appointmentTime) = DATE_ADD(CURDATE(), INTERVAL 1 DAY)
                </if>
                <if test="query.day!=null and query.day!= '' and query.day==7" >
                    AND DATE(t1.appointmentTime) BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)
                </if>
                <if test="query.ids != null and query.ids.size()>0">
                    AND t1.storeId IN
                    <foreach collection="query.ids" separator="," item="id" open="(" close=")">
                        #{id}
                    </foreach>
                </if>
            </where>
            <if test="query.day!=null and query.day!= '' and query.day==1">
                and DATE(t1.appointmentTime) = CURDATE()
            </if>
            <if test="query.day!=null and query.day!= '' and query.day==2">
                and DATE(t1.appointmentTime) = DATE_ADD(CURDATE(), INTERVAL 1 DAY)
            </if>
            <if test="query.day!=null and query.day!= '' and query.day==7">
                AND DATE(t1.appointmentTime) BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)
            </if>
            <if test="query.ids != null and query.ids.size()>0">
                AND t1.storeId IN
                <foreach collection="query.ids" separator="," item="id" open="(" close=")">
                    #{id}
                </foreach>
            </if>
        </where>
    </select>
</mapper>
cloud-server-activity/src/main/resources/mapper/CouponMapper.tld
@@ -4,31 +4,31 @@
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.dsh.activity.entity.Coupon">
        <id column="id" property="id" />
        <result column="name" property="name" />
        <result column="type" property="type" />
        <result column="content" property="content" />
        <result column="illustrate" property="illustrate" />
        <result column="distributionMethod" property="distributionMethod" />
        <result column="redemptionMethod" property="redemptionMethod" />
        <result column="cash" property="cash" />
        <result column="integral" property="integral" />
        <result column="userPopulation" property="userPopulation" />
        <result column="quantityIssued" property="quantityIssued" />
        <result column="pickUpQuantity" property="pickUpQuantity" />
        <result column="startTime" property="startTime" />
        <result column="endTime" property="endTime" />
        <result column="useScope" property="useScope" />
        <result column="province" property="province" />
        <result column="provinceCode" property="provinceCode" />
        <result column="city" property="city" />
        <result column="cityCode" property="cityCode" />
        <result column="auditStatus" property="auditStatus" />
        <result column="auditUserId" property="auditUserId" />
        <result column="auditRemark" property="auditRemark" />
        <result column="status" property="status" />
        <result column="state" property="state" />
        <result column="insertTime" property="insertTime" />
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="type" property="type"/>
        <result column="content" property="content"/>
        <result column="illustrate" property="illustrate"/>
        <result column="distributionMethod" property="distributionMethod"/>
        <result column="redemptionMethod" property="redemptionMethod"/>
        <result column="cash" property="cash"/>
        <result column="integral" property="integral"/>
        <result column="userPopulation" property="userPopulation"/>
        <result column="quantityIssued" property="quantityIssued"/>
        <result column="pickUpQuantity" property="pickUpQuantity"/>
        <result column="startTime" property="startTime"/>
        <result column="endTime" property="endTime"/>
        <result column="useScope" property="useScope"/>
        <result column="province" property="province"/>
        <result column="provinceCode" property="provinceCode"/>
        <result column="city" property="city"/>
        <result column="cityCode" property="cityCode"/>
        <result column="auditStatus" property="auditStatus"/>
        <result column="auditUserId" property="auditUserId"/>
        <result column="auditRemark" property="auditRemark"/>
        <result column="status" property="status"/>
        <result column="state" property="state"/>
        <result column="insertTime" property="insertTime"/>
    </resultMap>
</mapper>
cloud-server-activity/src/main/resources/mapper/CouponMapper.xml
@@ -7,12 +7,12 @@
    <select id="queryConponRuleOfJson" resultType="java.util.Map">
        SELECT JSON_EXTRACT(content, "$.conditionalAmount") as conditionalAmount,
               JSON_EXTRACT(content, "$.deductionAmount")   as deductionAmount,
               JSON_EXTRACT(content, "$.experienceName")   as experienceName
        JSON_EXTRACT(content, "$.deductionAmount") as deductionAmount,
        JSON_EXTRACT(content, "$.experienceName") as experienceName
        FROM t_coupon
        where 1=1
        <if test="id != null">
            and  `id` = #{id}
            and `id` = #{id}
        </if>
    </select>
    <select id="queryCouponListOfSearch" resultType="java.util.Map">
@@ -38,7 +38,7 @@
        </if>
        <if test="cityCode != null">
           and id in(
            and id in(
            SELECT DISTINCT couponId FROM
            (SELECT DISTINCT couponId
@@ -69,7 +69,7 @@
            and `state` = #{state}
        </if>
        and auditStatus = 2
          order by insertTime desc
        order by insertTime desc
    </select>
    <select id="queryCouponListOfSearch1" resultType="java.util.Map">
        SELECT id,
@@ -86,9 +86,9 @@
        state,
        illustrate
        from t_coupon
        where 1 = 1     and distributionMethod = 4
        where 1 = 1 and distributionMethod = 4
        and auditStatus = 2
        and startTime  &lt; now()
        and startTime &lt; now()
        <if test="cityCode != null">
            and id in(
            SELECT DISTINCT couponId FROM
@@ -134,9 +134,9 @@
        state,
        illustrate
        from t_coupon
        where 1 = 1     and distributionMethod = 4  and useScope = 1
        where 1 = 1 and distributionMethod = 4 and useScope = 1
        and auditStatus = 2
        and startTime  &lt; now()
        and startTime &lt; now()
        <if test="name != null">
            and `name` like concat('%', #{name}, '%')
        </if>
@@ -157,16 +157,16 @@
    </select>
    <select id="queryCouponExamineList" resultType="java.util.Map">
        SELECT id,
               `name`,
               useScope,
               `type`,
               distributionMethod,
               date_format(startTime ,'%Y-%m-%d') as startTime,
               date_format(endTime ,'%Y-%m-%d') as endTime,
               userPopulation,
               quantityIssued,
               pickUpQuantity,
               auditStatus,
        `name`,
        useScope,
        `type`,
        distributionMethod,
        date_format(startTime ,'%Y-%m-%d') as startTime,
        date_format(endTime ,'%Y-%m-%d') as endTime,
        userPopulation,
        quantityIssued,
        pickUpQuantity,
        auditStatus,
        publisherType,
        cityManagerId
        from t_coupon
@@ -189,13 +189,14 @@
        order by insertTime desc
    </select>
    <select id="listRecord" resultType="java.util.Map">
        select id,userId,status  from t_user_coupon where couponId =#{id}
        and userId in <foreach collection="ids" separator="," open="(" item="i" close=")">
        #{i}
    </foreach>
    <if test="type !=null">
        and status =#{type}
    </if>
        select id,userId,status from t_user_coupon where couponId =#{id}
        and userId in
        <foreach collection="ids" separator="," open="(" item="i" close=")">
            #{i}
        </foreach>
        <if test="type !=null">
            and status =#{type}
        </if>
    </select>
cloud-server-activity/src/main/resources/mapper/IntroduceRewardsMapper.xml
@@ -39,10 +39,10 @@
                    and NOW() between t1.startTime and t1.endTime
                </when>
                <when test="query.state == 2">
                    and t1.endTime &lt;=  NOW()
                    and t1.endTime &lt;= NOW()
                </when>
                <when test="query.state == 3">
                    and t1.startTime &gt;=  NOW()
                    and t1.startTime &gt;= NOW()
                </when>
            </choose>
        </where>
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseMapper.xml
@@ -5,55 +5,55 @@
    <select id="queryGoodsListOfSearch" resultType="java.util.Map">
        SELECT id,
               `name`,
               `cover`,
               `type`,
               date_format(startTime ,'%Y-%m-%d') as startTime,
               date_format(endTime ,'%Y-%m-%d') as endTime,
               useScope,
               userPopulation,
               quantityIssued,
               pickUpQuantity,
               `sort`,
               shelves
        `name`,
        `cover`,
        `type`,
        date_format(startTime ,'%Y-%m-%d') as startTime,
        date_format(endTime ,'%Y-%m-%d') as endTime,
        useScope,
        userPopulation,
        quantityIssued,
        pickUpQuantity,
        `sort`,
        shelves
        from t_points_merchandise
        <where>
        <if test="name != null">
            and `name` like concat('%', #{name}, '%')
        </if>
        <if test="type != null">
            and `type` = #{type}
        </if>
        <if test="redemptionMethod != null">
            and redemptionMethod = #{redemptionMethod}
        </if>
        <if test="userPopulation != null">
            and userPopulation = #{userPopulation}
        </if>
        <if test="state != null">
            and `state` = #{state}
        </if>
        and `type` != 3
            <if test="name != null">
                and `name` like concat('%', #{name}, '%')
            </if>
            <if test="type != null">
                and `type` = #{type}
            </if>
            <if test="redemptionMethod != null">
                and redemptionMethod = #{redemptionMethod}
            </if>
            <if test="userPopulation != null">
                and userPopulation = #{userPopulation}
            </if>
            <if test="state != null">
                and `state` = #{state}
            </if>
            and `type` != 3
        </where>
        order by insertTime desc
    </select>
    <select id="queryGoodsListOfSearchAudit" resultType="java.util.Map">
        SELECT id,
               `name`,
               `cover`,
               `type`,
               date_format(startTime ,'%Y-%m-%d') as startTime,
               date_format(endTime ,'%Y-%m-%d') as endTime,
               useScope,
               userPopulation,
               quantityIssued,
               pickUpQuantity,
               `sort`,
               shelves,
        `name`,
        `cover`,
        `type`,
        date_format(startTime ,'%Y-%m-%d') as startTime,
        date_format(endTime ,'%Y-%m-%d') as endTime,
        useScope,
        userPopulation,
        quantityIssued,
        pickUpQuantity,
        `sort`,
        shelves,
        status
        from t_points_merchandise
        where type =3  and `status` !=1
        where type =3 and `status` !=1
        <if test="name != null">
            and `name` like concat('%', #{name}, '%')
        </if>
@@ -90,7 +90,7 @@
        where 1=1
        <if test="query.objType == 1">
            and  status =1
            and status =1
        </if>
        <if test="query.name != null">
            and `name` like concat('%', #{query.name}, '%')
@@ -110,7 +110,7 @@
        and `type` = 3
        order by sort desc
    </select>
    <select id="changeState" >
    <select id="changeState">
        update t_points_merchandise set
        shelves = #{state}
        <where>
cloud-server-activity/src/main/resources/mapper/UserPointsMerchandiseMapper.xml
@@ -14,8 +14,6 @@
        </where>
    </update>
@@ -27,17 +25,18 @@
    <select id="getConsumeDetails" resultType="com.dsh.activity.entity.ConsumeDetail">
        SELECT
            CASE  tm.type
                WHEN 1 THEN '实体购买'
                WHEN 2 THEN '课包购买'
                WHEN 3 THEN '门票购买'
                WHEN 4 THEN '优惠券购买'
                END AS  consumeName  ,DATE_FORMAT(pm.insertTime, '%m-%d %H:%i')as `consumeTime`,2 as type,CONCAT('-',tm.cash) as consumeAmount
        CASE tm.type
        WHEN 1 THEN '实体购买'
        WHEN 2 THEN '课包购买'
        WHEN 3 THEN '门票购买'
        WHEN 4 THEN '优惠券购买'
        END AS consumeName ,DATE_FORMAT(pm.insertTime, '%m-%d %H:%i')as `consumeTime`,2 as type,CONCAT('-',tm.cash) as
        consumeAmount
        FROM t_user_points_merchandise pm
                 LEFT JOIN t_points_merchandise tm ON tm.id = pm.pointsMerchandiseId
        LEFT JOIN t_points_merchandise tm ON tm.id = pm.pointsMerchandiseId
        WHERE pm.pointsMerchandiseId IN(
            SELECT id
            FROM t_points_merchandise WHERE redemptionMethod IN (2,3)
        SELECT id
        FROM t_points_merchandise WHERE redemptionMethod IN (2,3)
        )
        <if test="null != monthStart and '' != monthStart and null != monthEnd and '' != monthEnd">
cloud-server-activity/src/main/resources/redis.properties
@@ -1,7 +1,5 @@
spring.redis.database=0
spring.redis.host=@redis.addr@
spring.redis.port=@redis.port@
spring.redis.password=@redis.password@
spring.redis.jedis.pool.max-active=1024
cloud-server-activity/src/main/resources/sharding-jdbc.properties
@@ -1,5 +1,4 @@
datasource.names=master0
datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
datasource.master0.driverClassName=com.mysql.cj.jdbc.Driver
datasource.master0.url=jdbc:mysql://192.168.110.80:3306/playpai_activity?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai
cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java
@@ -13,7 +13,9 @@
import com.dsh.competition.feignclient.account.AppUserClient;
import com.dsh.competition.feignclient.account.model.AppUser;
import com.dsh.competition.feignclient.course.CoursePackagePaymentClient;
import com.dsh.competition.feignclient.course.model.PaymentDeductionClassHour;
import com.dsh.competition.feignclient.model.*;
import com.dsh.competition.feignclient.other.StoreClient;
import com.dsh.competition.model.*;
import com.dsh.competition.service.CompetitionService;
import com.dsh.competition.service.IParticipantService;
@@ -44,7 +46,7 @@
/**
 * <p>
 *  前端控制器
 * 前端控制器
 * </p>
 *
 * @author jqs
@@ -83,14 +85,14 @@
     */
    @ResponseBody
    @PostMapping("/base/competition/getUserIds")
    public List<Integer> getUserIds(@RequestBody ListQuery query){
    public List<Integer> getUserIds(@RequestBody ListQuery query) {
        List<Competition> list = cttService.list(new QueryWrapper<Competition>());
        // 赛事id集合
        List<Integer> comIds = new ArrayList<>();
        for (Integer id : query.getIds()) {
            for (Competition competition : list) {
                if (competition.getStoreId().contains(id.toString())){
                if (competition.getStoreId().contains(id.toString())) {
                    comIds.add(competition.getId());
                }
            }
@@ -98,9 +100,9 @@
        // 获取到赛事id集合 去重
        List<Integer> collect = comIds.stream().distinct().collect(Collectors.toList());
        // 根据赛事id 查询赛事支付记录 获取用户ids
        if (collect.size() == 0){
        if (collect.size() == 0) {
            return new ArrayList<>();
        }else{
        } else {
            List<Integer> userIds = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
                    .in("competitionId", collect)).stream()
                    .map(PaymentCompetition::getAppUserId).collect(Collectors.toList());
@@ -108,14 +110,15 @@
        }
    }
    /**
     * 获取赛事报名记录
     */
    @ResponseBody
    @RequestMapping("/base/competition/listAllPayment")
    public List<PaymentCompetition> listAllPayment(@RequestBody CompetitionQuery query){
    public List<PaymentCompetition> listAllPayment(@RequestBody CompetitionQuery query) {
        Integer operatorId1 = query.getOperatorId();
        if (operatorId1!=null){
        if (operatorId1 != null) {
            // 赛事集合id
            List<Integer> operatorId = cttService.list(new QueryWrapper<Competition>()
                    .eq("operatorId", operatorId1)).stream().map(Competition::getId).collect(Collectors.toList());
@@ -123,28 +126,28 @@
        }
        List<PaymentCompetition> paymentCompetitions = paymentCompetitionService.listAll(query);
        List<PaymentCompetition> result = new ArrayList<>();
        if (query.getOperatorId()!=null){
        if (query.getOperatorId() != null) {
            for (PaymentCompetition paymentCompetition : paymentCompetitions) {
                Integer competitionId = paymentCompetition.getCompetitionId();
                Competition byId = cttService.getById(competitionId);
                if (byId!=null){
                if (byId != null) {
                    Integer operatorId = byId.getOperatorId();
                    if (operatorId!=null){
                        if (operatorId == query.getOperatorId()){
                    if (operatorId != null) {
                        if (operatorId == query.getOperatorId()) {
                            result.add(paymentCompetition);
                        }
                    }
                }
            }
            return result;
        }else if (query.getStoreId()!=null){
        } else if (query.getStoreId() != null) {
            for (PaymentCompetition paymentCompetition : paymentCompetitions) {
                Integer competitionId = paymentCompetition.getCompetitionId();
                Competition byId = cttService.getById(competitionId);
                if (byId!=null){
                if (byId != null) {
                    String storeId = byId.getStoreId();
                    if (storeId.contains(query.getStoreId().toString())){
                            result.add(paymentCompetition);
                    if (storeId.contains(query.getStoreId().toString())) {
                        result.add(paymentCompetition);
                    }
                }
            }
@@ -152,14 +155,15 @@
        }
        return paymentCompetitions;
    }
    @ResponseBody
    @PostMapping("/base/competition/getPayedCompetitions")
    public BillingRequestVo getAllCompetitionPayRecord(@RequestBody BillingDataRequestVo requestVo){
    public BillingRequestVo getAllCompetitionPayRecord(@RequestBody BillingDataRequestVo requestVo) {
        BillingRequestVo billingRequestVo = new BillingRequestVo();
        List<BillingRequest> integers = new ArrayList<>();
        integers = paymentCompetitionService.queryDatas(requestVo.getAppUserId(),requestVo.getMonthStart(),requestVo.getMonthEnd());
        integers = paymentCompetitionService.queryDatas(requestVo.getAppUserId(), requestVo.getMonthStart(), requestVo.getMonthEnd());
        System.out.println(integers);
        if (integers.size() > 0 ){
        if (integers.size() > 0) {
            billingRequestVo.setRequests(integers);
        }
        return billingRequestVo;
@@ -167,12 +171,12 @@
    @ResponseBody
    @PostMapping("/base/competition/getCancelOrderOfUserPay")
    public BillingRequestVo getCancelOrderOfUserPayRecord(@RequestBody BillingDataRequestVo requestVo){
    public BillingRequestVo getCancelOrderOfUserPayRecord(@RequestBody BillingDataRequestVo requestVo) {
        BillingRequestVo billingRequestVo = new BillingRequestVo();
        List<BillingRequest> integers = new ArrayList<>();
        integers = paymentCompetitionService.queryCancelDatas(requestVo.getAppUserId(),requestVo.getMonthStart(),requestVo.getMonthEnd());
        integers = paymentCompetitionService.queryCancelDatas(requestVo.getAppUserId(), requestVo.getMonthStart(), requestVo.getMonthEnd());
        System.out.println(integers);
        if (integers.size() > 0 ){
        if (integers.size() > 0) {
            billingRequestVo.setRequests(integers);
        }
        return billingRequestVo;
@@ -180,7 +184,7 @@
    @PostMapping("/base/competition/getPlayPaiFGoldPayRecord")
    public List<PaymentCompetition> getPlayPaiFGoldPayRecord(@RequestBody Integer appUserId){
    public List<PaymentCompetition> getPlayPaiFGoldPayRecord(@RequestBody Integer appUserId) {
        ArrayList<Integer> integers = new ArrayList<>();
//        integers.add(1);
//        integers.add(2);
@@ -191,23 +195,21 @@
        pays.add(3);
        return paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
                .in("payType",integers)
                .eq("appUserId",appUserId)
                .in("payStatus",pays));
                .in("payType", integers)
                .eq("appUserId", appUserId)
                .in("payStatus", pays));
    }
    @PostMapping("/base/competition/queryByCode")
    public Integer queryByCode(@RequestBody String code){
    public Integer queryByCode(@RequestBody String code) {
        return paymentCompetitionService.queryByCode(code);
    }
    @PostMapping("/base/competition/getCompetitionsDetails")
    public List<PurchaseRecordVo> getStuSourseList(@RequestBody GetStuSourseList sourseList){
    public List<PurchaseRecordVo> getStuSourseList(@RequestBody GetStuSourseList sourseList) {
        List<PurchaseRecordVo> recordVos = new ArrayList<>();
@@ -215,22 +217,22 @@
        integers.add(1);
        integers.add(2);
        List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
                .in("payType",integers )
                .in("payType", integers)
                .eq("appUserId", sourseList.getAppUserId())
                .eq("state",1));
        if (list.size() > 0){
                .eq("state", 1));
        if (list.size() > 0) {
            List<Long> comIds = list.stream().map(PaymentCompetition::getId).collect(Collectors.toList());
            List<UserCompetition> userCompetitions = ucttService.list(new QueryWrapper<UserCompetition>()
                    .between("insertTime", sourseList.getStartTime(),sourseList.getEndTime() )
                    .between("insertTime", sourseList.getStartTime(), sourseList.getEndTime())
                    .eq("appUserId", sourseList.getAppUserId())
                    .in("paymentCompetitionId",comIds ));
            if (userCompetitions.size() > 0){
                userCompetitions.forEach(coms ->{
                    .in("paymentCompetitionId", comIds));
            if (userCompetitions.size() > 0) {
                userCompetitions.forEach(coms -> {
                    PurchaseRecordVo recordVo = new PurchaseRecordVo();
                    recordVo.setPurchaseType("报名赛事");
                    recordVo.setPurchaseTime(dateFormat.format(coms.getInsertTime()));
                    PaymentCompetition paymentCompetition = paymentCompetitionService.getById(coms.getPaymentCompetitionId());
                    recordVo.setPurchaseAmount("-"+paymentCompetition.getAmount());
                    recordVo.setPurchaseAmount("-" + paymentCompetition.getAmount());
                    recordVos.add(recordVo);
                });
            }
@@ -241,29 +243,29 @@
    @PostMapping("/base/competition/getCompetitionsDetails1")
    public List<PurchaseRecordVo> getStuSourseList1(@RequestBody GetStuSourseList sourseList){
    public List<PurchaseRecordVo> getStuSourseList1(@RequestBody GetStuSourseList sourseList) {
        List<PurchaseRecordVo> recordVos = new ArrayList<>();
        ArrayList<Integer> integers = new ArrayList<>();
        integers.add(4);
        List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>()
                .in("payType",integers )
                .in("payType", integers)
                .eq("appUserId", sourseList.getAppUserId())
                .eq("state",1));
        if (list.size() > 0){
                .eq("state", 1));
        if (list.size() > 0) {
            List<Long> comIds = list.stream().map(PaymentCompetition::getId).collect(Collectors.toList());
            List<UserCompetition> userCompetitions = ucttService.list(new QueryWrapper<UserCompetition>()
                    .between("insertTime", sourseList.getStartTime(),sourseList.getEndTime() )
                    .between("insertTime", sourseList.getStartTime(), sourseList.getEndTime())
                    .eq("appUserId", sourseList.getAppUserId())
                    .in("paymentCompetitionId",comIds ));
            if (userCompetitions.size() > 0){
                userCompetitions.forEach(coms ->{
                    .in("paymentCompetitionId", comIds));
            if (userCompetitions.size() > 0) {
                userCompetitions.forEach(coms -> {
                    PurchaseRecordVo recordVo = new PurchaseRecordVo();
                    recordVo.setPurchaseType("报名赛事");
                    recordVo.setPurchaseTime(dateFormat.format(coms.getInsertTime()));
                    PaymentCompetition paymentCompetition = paymentCompetitionService.getById(coms.getPaymentCompetitionId());
                    recordVo.setPurchaseAmount("-"+paymentCompetition.getAmount());
                    recordVo.setPurchaseAmount("-" + paymentCompetition.getAmount());
                    recordVos.add(recordVo);
                });
            }
@@ -271,8 +273,6 @@
        return recordVos;
    }
    @ResponseBody
@@ -285,7 +285,7 @@
            @ApiImplicitParam(value = "排序(asc=正序,desc=倒序)", name = "heat", dataType = "String", required = false),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<CompetitionListVo>> queryCompetitionList(String cityCode, String content, Integer registerCondition, String heat){
    public ResultUtil<List<CompetitionListVo>> queryCompetitionList(String cityCode, String content, Integer registerCondition, String heat) {
        try {
            List<CompetitionListVo> competitionListVos = cttService.queryCompetitionList(cityCode, content, registerCondition, heat);
            List<CompetitionListVo> filteredList = competitionListVos.stream()
@@ -293,12 +293,11 @@
                    .collect(Collectors.toList());
            return ResultUtil.success(filteredList);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -310,10 +309,10 @@
            @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = false),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<CompetitionInfo> queryCompetitionInfo(Integer id, String lon, String lat){
    public ResultUtil<CompetitionInfo> queryCompetitionInfo(Integer id, String lon, String lat) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            CompetitionInfo competitionInfo = cttService.queryCompetitionInfo(uid, id, lon, lat);
@@ -322,28 +321,26 @@
            String dateString = competitionInfo.getRegisterEndTime();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            Date date = sdf.parse(dateString);
            if (new Date().after(date)){
            if (new Date().after(date)) {
                competitionInfo.setHasPass(1);
            }else {
            } else {
                competitionInfo.setHasPass(0);
            }
            return ResultUtil.success(competitionInfo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @Autowired
    private CompetitionService competitionService;
    @Resource
    private  CoursePackagePaymentClient coursePackagePaymentClient;
    private CoursePackagePaymentClient coursePackagePaymentClient;
    @ResponseBody
@@ -354,7 +351,7 @@
    })
    public synchronized ResultUtil paymentCompetition(PaymentCompetitionVo paymentCompetitionVo){
    public synchronized ResultUtil paymentCompetition(PaymentCompetitionVo paymentCompetitionVo) {
        try {
            Competition byId = competitionService.getById(paymentCompetitionVo.getId());
            Date date = byId.getEndTime();
@@ -362,32 +359,32 @@
            // Check if the date is past the current time
            boolean isPast = date.after(new Date());
            if (!isPast) {
                return new ResultUtil(0,"已超过截至报名时间");
                return new ResultUtil(0, "已超过截至报名时间");
            }
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            if (byId.getRegisterCondition()==3){
             Integer counts =    coursePackagePaymentClient.isHave(paymentCompetitionVo.getIds());
                if (counts==0){
                    return new ResultUtil(0,"当前赛事仅限已购课学员报名");
            if (byId.getRegisterCondition() == 3) {
                Integer counts = coursePackagePaymentClient.isHave(paymentCompetitionVo.getIds());
                if (counts == 0) {
                    return new ResultUtil(0, "当前赛事仅限已购课学员报名");
                }
            }
            if (byId.getRegisterCondition()==2){
            if (byId.getRegisterCondition() == 2) {
                AppUser appUser = appUserClient.queryAppUser(uid);
                if (appUser.getIsVip()==0){
                    return new ResultUtil(0,"当前赛事仅限年度会员报名");
                }else {
                if (appUser.getIsVip() == 0) {
                    return new ResultUtil(0, "当前赛事仅限年度会员报名");
                } else {
                    Date vipEndTime = appUser.getVipEndTime();
                    Date currentTime = new Date(); // Current time
                    if (vipEndTime.before(currentTime)) {
                        return new ResultUtil(0,"您的年度会员已过期,请续费");
                        return new ResultUtil(0, "您的年度会员已过期,请续费");
                    }
                }
            }
            return cttService.paymentCompetition(uid, paymentCompetitionVo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -401,14 +398,14 @@
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "赛事id", name = "id", dataType = "int", required = true),
    })
    public ResultUtil paymentCompetitionCourseList(Integer id){
    public ResultUtil paymentCompetitionCourseList(Integer id) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            return cttService.paymentCompetitionCourseList(uid, id);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -417,21 +414,22 @@
    /**
     * 报名赛事微信支付回调
     *
     * @param request
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/competition/weChatPaymentCompetitionCallback")
    public void weChatPaymentCompetitionCallback(HttpServletRequest request, HttpServletResponse response){
    public void weChatPaymentCompetitionCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
            if(null != map){
            if (null != map) {
                String code = map.get("out_trade_no");
                String transaction_id = map.get("transaction_id");
                String result = map.get("result");
                PaymentCompetition paymentCompetition = paymentCompetitionService.getOne(new QueryWrapper<PaymentCompetition>().eq("code", code).eq("payType", 1));
                if(paymentCompetition.getPayStatus() == 1){
                if (paymentCompetition.getPayStatus() == 1) {
                    paymentCompetition.setAppUserId(null);
                    paymentCompetition.setPayStatus(2);
                    paymentCompetition.setPayTime(new Date());
@@ -448,7 +446,7 @@
                out.flush();
                out.close();
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -456,19 +454,20 @@
    /**
     * 报名赛事支付宝支付回调
     *
     * @param request
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/competition/aliPaymentCompetitionCallback")
    public void aliPaymentCompetitionCallback(HttpServletRequest request, HttpServletResponse response){
    public void aliPaymentCompetitionCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.alipayCallback(request);
            if(null != map){
            if (null != map) {
                String code = map.get("out_trade_no");
                String trade_no = map.get("trade_no");
                PaymentCompetition paymentCompetition = paymentCompetitionService.getOne(new QueryWrapper<PaymentCompetition>().eq("code", code).eq("payType", 2));
                if(paymentCompetition.getPayStatus() == 1){
                if (paymentCompetition.getPayStatus() == 1) {
                    paymentCompetition.setAppUserId(null);
                    paymentCompetition.setPayStatus(2);
                    paymentCompetition.setPayTime(new Date());
@@ -483,12 +482,10 @@
                out.flush();
                out.close();
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @ResponseBody
@@ -500,20 +497,19 @@
            @ApiImplicitParam(value = "页码,首页1", name = "pageNo", dataType = "int", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<List<CompetitionListVo>> queryMyCompetitionList(Integer type, Integer pageSize, Integer pageNo){
    public ResultUtil<List<CompetitionListVo>> queryMyCompetitionList(Integer type, Integer pageSize, Integer pageNo) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<CompetitionListVo> competitionListVos = paymentCompetitionService.queryMyCompetitionList(uid, type, pageSize, pageNo);
            return ResultUtil.success(competitionListVos);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -523,16 +519,15 @@
            @ApiImplicitParam(value = "赛事id", name = "id", dataType = "int", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<CompetitionInfo> queryMyCompetitionInfo(Long id){
    public ResultUtil<CompetitionInfo> queryMyCompetitionInfo(Long id) {
        try {
            CompetitionInfo competitionInfo = paymentCompetitionService.queryMyCompetitionInfo(id);
            return ResultUtil.success(competitionInfo);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -542,11 +537,11 @@
            @ApiImplicitParam(value = "赛事id", name = "id", dataType = "int", required = true),
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil cancelMyCompetition(Long id){
    public ResultUtil cancelMyCompetition(Long id) {
        try {
            ResultUtil resultUtil = paymentCompetitionService.cancelMyCompetition(id);
            return resultUtil;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -555,20 +550,21 @@
    /**
     * 取消已报名赛事后微信回退金额回调
     *
     * @param request
     * @param response
     */
    @ResponseBody
    @PostMapping("/base/competition/weChatCancelPaymentCompetitionCallback")
    public void weChatCancelPaymentCompetitionCallback(HttpServletRequest request, HttpServletResponse response){
    public void weChatCancelPaymentCompetitionCallback(HttpServletRequest request, HttpServletResponse response) {
        try {
            Map<String, String> map = payMoneyUtil.wxRefundCallback(request);
            if(null != map){
            if (null != map) {
                String code = map.get("out_refund_no");
                String refund_id = map.get("refund_id");
                String result = map.get("result");
                PaymentCompetition paymentCompetition = paymentCompetitionService.getOne(new QueryWrapper<PaymentCompetition>().eq("code", code).eq("payType", 1));
                if(paymentCompetition.getPayStatus() == 1){
                if (paymentCompetition.getPayStatus() == 1) {
                    paymentCompetition.setPayStatus(3);
                    paymentCompetition.setRefundTime(new Date());
                    paymentCompetition.setRefundOrderNo(refund_id);
@@ -584,17 +580,17 @@
                out.flush();
                out.close();
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @PostMapping("/base/competition/queryById")
    public  Competition queryById(@RequestBody Integer id){
    public Competition queryById(@RequestBody Integer id) {
        try {
            return cttService.getById(id);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
@@ -602,22 +598,22 @@
    @PostMapping("/base/competition/list")
    public Page<Competition> list(@RequestBody ListQuery listQuery){
    public Page<Competition> list(@RequestBody ListQuery listQuery) {
        try {
            Page<Competition> competitionPage = new Page<>(listQuery.getOffset(),listQuery.getLimit());
            Page<Competition> competitionPage = new Page<>(listQuery.getOffset(), listQuery.getLimit());
            LambdaQueryWrapper<Competition> wrapper = new LambdaQueryWrapper<>();
            if(ToolUtil.isNotEmpty(listQuery.getProvinceCode())){
                wrapper.eq(Competition::getProvinceCode,listQuery.getProvinceCode());
            if (ToolUtil.isNotEmpty(listQuery.getProvinceCode())) {
                wrapper.eq(Competition::getProvinceCode, listQuery.getProvinceCode());
            }
            if(ToolUtil.isNotEmpty(listQuery.getCityCode())){
                wrapper.eq(Competition::getProvinceCode,listQuery.getCityCode());
            if (ToolUtil.isNotEmpty(listQuery.getCityCode())) {
                wrapper.eq(Competition::getProvinceCode, listQuery.getCityCode());
            }
            if(ToolUtil.isNotEmpty(listQuery.getEventName())){
                wrapper.like(Competition::getName,listQuery.getEventName());
            if (ToolUtil.isNotEmpty(listQuery.getEventName())) {
                wrapper.like(Competition::getName, listQuery.getEventName());
            }
            if(ToolUtil.isNotEmpty(listQuery.getTime())){
                wrapper.lt(Competition::getStartTime,listQuery.getTime().split(" - ")[0]+" 00:00:00");
                wrapper.gt(Competition::getEndTime,listQuery.getTime().split(" - ")[1]+" 23:59:59");
            if (ToolUtil.isNotEmpty(listQuery.getTime())) {
                wrapper.lt(Competition::getStartTime, listQuery.getTime().split(" - ")[0] + " 00:00:00");
                wrapper.gt(Competition::getEndTime, listQuery.getTime().split(" - ")[1] + " 23:59:59");
            }
            if(ToolUtil.isNotEmpty(listQuery.getRegisterCondition())){
                wrapper.eq(Competition::getRegisterCondition,listQuery.getRegisterCondition());
@@ -640,44 +636,45 @@
                // 报名数量
                int temp = competitionId.size();
                String value = String.valueOf(temp);
                record.setCount(record.getApplicantsNumber()+"-"+value);
                record.setCount(record.getApplicantsNumber() + "-" + value);
            }
            return page;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return new Page<Competition>();
        }
    }
    @PostMapping("/base/competition/listAudit")
    public Page<Competition> listAudit(@RequestBody ListQuery listQuery){
    public Page<Competition> listAudit(@RequestBody ListQuery listQuery) {
        try {
            Page<Competition> competitionPage = new Page<>(listQuery.getOffset(),listQuery.getLimit());
            Page<Competition> competitionPage = new Page<>(listQuery.getOffset(), listQuery.getLimit());
            LambdaQueryWrapper<Competition> wrapper = new LambdaQueryWrapper<>();
            if(ToolUtil.isNotEmpty(listQuery.getProvinceCode())){
                wrapper.eq(Competition::getProvinceCode,listQuery.getProvinceCode());
            if (ToolUtil.isNotEmpty(listQuery.getProvinceCode())) {
                wrapper.eq(Competition::getProvinceCode, listQuery.getProvinceCode());
            }
            if(ToolUtil.isNotEmpty(listQuery.getCityCode())){
                wrapper.eq(Competition::getCityCode,listQuery.getCityCode());
            if (ToolUtil.isNotEmpty(listQuery.getCityCode())) {
                wrapper.eq(Competition::getCityCode, listQuery.getCityCode());
            }
            if(ToolUtil.isNotEmpty(listQuery.getEventName())){
                wrapper.like(Competition::getName,listQuery.getEventName());
            if (ToolUtil.isNotEmpty(listQuery.getEventName())) {
                wrapper.like(Competition::getName, listQuery.getEventName());
            }
            if(ToolUtil.isNotEmpty(listQuery.getState())){
                wrapper.eq(Competition::getAuditStatus,listQuery.getState());
            if (ToolUtil.isNotEmpty(listQuery.getState())) {
                wrapper.eq(Competition::getAuditStatus, listQuery.getState());
            }
            if(ToolUtil.isNotEmpty(listQuery.getRegisterCondition())){
                wrapper.eq(Competition::getRegisterCondition,listQuery.getRegisterCondition());
            if (ToolUtil.isNotEmpty(listQuery.getRegisterCondition())) {
                wrapper.eq(Competition::getRegisterCondition, listQuery.getRegisterCondition());
            }
            wrapper.in(Competition::getStoreId,listQuery.getIds());
            wrapper.in(Competition::getStoreId, listQuery.getIds());
            ArrayList<Integer> integers = new ArrayList<>();
            integers.add(1);
            integers.add(3);
            wrapper.in(Competition::getAuditStatus,integers);
            wrapper.in(Competition::getAuditStatus, integers);
            wrapper.orderByDesc(Competition::getInsertTime);
            Page<Competition> page = cttService.page(competitionPage, wrapper);
            return page;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return new Page<Competition>();
        }
@@ -685,116 +682,203 @@
    @PostMapping("/base/competition/add")
    public void add(@RequestBody Competition competition){
    public void add(@RequestBody Competition competition) {
        try {
            if (competition.getStartTime().after(new Date())){
            if (competition.getStartTime().after(new Date())) {
                competition.setStatus(1);
            }
            if (competition.getStartTime().before(new Date())){
                if (competition.getEndTime().after(new Date())){
            if (competition.getStartTime().before(new Date())) {
                if (competition.getEndTime().after(new Date())) {
                    competition.setStatus(2);
                }else{
                } else {
                    competition.setStatus(3);
                }
            }
            competition.setInsertTime(new Date());
            cttService.save(competition);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @PostMapping("/base/competition/update")
    public void update(@RequestBody Competition competition){
    public void update(@RequestBody Competition competition) {
        try {
            if (competition.getStartTime().after(new Date())){
            if (competition.getStartTime().after(new Date())) {
                competition.setStatus(1);
            }
            if (competition.getStartTime().before(new Date())){
                if (competition.getEndTime().after(new Date())){
            if (competition.getStartTime().before(new Date())) {
                if (competition.getEndTime().after(new Date())) {
                    competition.setStatus(2);
                }else{
                } else {
                    competition.setStatus(3);
                }
            }
            cttService.updateById(competition);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Resource
    private StoreClient storeClient;
    @Autowired
    private UserCompetitionService userCompetitionService;
    @PostMapping("/base/competition/cancel")
    public void cancel(@RequestBody Integer id){
    public void cancel(@RequestBody Integer id) {
        try {
            Competition byId = cttService.getById(id);
            byId.setStatus(4);
            cttService.updateById(byId);
        }catch (Exception e){
            List<PaymentCompetition> list = paymentCompetitionService.list(new QueryWrapper<PaymentCompetition>().eq("competitionId", byId.getId()).eq("payStatus", 2));
            for (PaymentCompetition pay : list) {
                PaymentCompetition paymentCompetition = pay;
                String code = paymentCompetition.getCode();
                Double amount = paymentCompetition.getAmount();
                Competition competition = competitionService.getById(paymentCompetition.getCompetitionId());
                String payOrderNo = paymentCompetition.getPayOrderNo();
                if (paymentCompetition.getPayType() == 1) {//微信支付
                    Map<String, String> map = payMoneyUtil.wxRefund(payOrderNo, code, amount.toString(), amount.toString(), "/base/competition/weChatCancelPaymentCompetitionCallback");
                    String return_code = map.get("return_code");
                    if (!"SUCCESS".equals(return_code)) {
//                        return ResultUtil.error(map.get("return_msg"));
                        continue;
                    }
                    String refund_id = map.get("refund_id");
                    paymentCompetition.setRefundOrderNo(refund_id);
                    paymentCompetitionService.updateById(paymentCompetition);
                    storeClient.addBackRecord(paymentCompetition.getAmount() + "_" + paymentCompetition.getAppUserId());
                }
                if (paymentCompetition.getPayType() == 2) {//支付宝支付
                    Map<String, String> map = payMoneyUtil.aliRefund(payOrderNo, amount.toString());
                    String return_code = map.get("code");
                    if (!"10000".equals(return_code)) {
//                        return ResultUtil.error(map.get("msg"));
                        continue;
                    }
                    String refund_id = map.get("trade_no");
                    paymentCompetition.setRefundOrderNo(refund_id);
                    paymentCompetition.setRefundTime(new Date());
                    paymentCompetition.setPayStatus(3);
                    paymentCompetition.setAppUserId(null);
                    paymentCompetitionService.updateById(paymentCompetition);
//            competition.setApplicantsNumber(competition.getApplicantsNumber() - 1);
                    competitionService.updateById(competition);
                }
                if (paymentCompetition.getPayType() == 3) {//玩湃币支付
                    AppUser appUser = appUserClient.queryAppUser(paymentCompetition.getAppUserId());
                    appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() + amount.intValue());
                    appUserClient.updateAppUser(appUser);
                    paymentCompetition.setRefundOrderNo("");
                    paymentCompetition.setRefundTime(new Date());
                    paymentCompetition.setPayStatus(3);
                    paymentCompetition.setAppUserId(null);
                    paymentCompetitionService.updateById(paymentCompetition);
//            competition.setApplicantsNumber(competition.getApplicantsNumber() - 1);
                    competitionService.updateById(competition);
                }
                if (paymentCompetition.getPayType() == 4) {//课程支付
                    List<UserCompetition> list1 = userCompetitionService.list(new QueryWrapper<UserCompetition>().eq("paymentCompetitionId", paymentCompetition.getId()));
                    for (UserCompetition userCompetition : list1) {
//                Participant participant = participantService.getById(userCompetition.getId());
//                Student student = studentClient.queryStudentByPhone(participant.getPhone());
                        PaymentDeductionClassHour paymentDeductionClassHour = new PaymentDeductionClassHour();
                        paymentDeductionClassHour.setId(userCompetition.getParticipantId());
                        paymentDeductionClassHour.setClassHour(competition.getClassPrice());
                        paymentDeductionClassHour.setCode(code);
                        coursePackagePaymentClient.rollbackPaymentDeductionClassHour(paymentDeductionClassHour);
                    }
                    paymentCompetition.setRefundOrderNo("");
                    paymentCompetition.setRefundTime(new Date());
                    paymentCompetition.setPayStatus(3);
                    paymentCompetition.setAppUserId(null);
                    paymentCompetitionService.updateById(paymentCompetition);
//            competition.setApplicantsNumber(competition.getApplicantsNumber() - 1);
                    competitionService.updateById(competition);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @PostMapping("/base/competition/getPeopleFromId")
    public  Page<CompetitionUser> getPeopleFromId(@RequestBody GetPeopleQuery getPeopleQuery){
    public Page<CompetitionUser> getPeopleFromId(@RequestBody GetPeopleQuery getPeopleQuery) {
        try {
            Page<UserCompetition> participantPage = new Page<>(getPeopleQuery.getOffset(),getPeopleQuery.getLimit());
            Page<CompetitionUser> page = participantService.getPeopleFromId(participantPage,getPeopleQuery.getId(),getPeopleQuery.getState());
            Page<UserCompetition> participantPage = new Page<>(getPeopleQuery.getOffset(), getPeopleQuery.getLimit());
            Page<CompetitionUser> page = participantService.getPeopleFromId(participantPage, getPeopleQuery.getId(), getPeopleQuery.getState());
            return page;
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
    @PostMapping("/base/competition/getPeoples")
    @ResponseBody
    public  List<CompetitionUser> getPeoples(@RequestBody GetPeopleQuery getPeopleQuery){
    public List<CompetitionUser> getPeoples(@RequestBody GetPeopleQuery getPeopleQuery) {
        List<CompetitionUser> list = participantService.getPeoples(
                getPeopleQuery.getId(),getPeopleQuery.getState());
                getPeopleQuery.getId(), getPeopleQuery.getState());
        return list;
    }
    @PostMapping("/base/competition/queryFee")
    public Double queryFee(@RequestBody QueryDataFee queryDataFee){
    public Double queryFee(@RequestBody QueryDataFee queryDataFee) {
        HashMap<String, Object> map = new HashMap<>();
        String data = queryDataFee.getData();
        List<Integer> ids = queryDataFee.getIds();
        if(ids.size()==0){
        if (ids.size() == 0) {
            ids.add(-1);
        }
        LambdaQueryWrapper<PaymentCompetition> vipPaymentLambdaQueryWrapper = new LambdaQueryWrapper<>();
        if(ToolUtil.isNotEmpty(data)){
            String stime = data.split(" - ")[0]+" 00:00:00";
            String etime = data.split(" - ")[1]+" 23:59:59";
            vipPaymentLambdaQueryWrapper.between(PaymentCompetition::getInsertTime,stime,etime);
        if (ToolUtil.isNotEmpty(data)) {
            String stime = data.split(" - ")[0] + " 00:00:00";
            String etime = data.split(" - ")[1] + " 23:59:59";
            vipPaymentLambdaQueryWrapper.between(PaymentCompetition::getInsertTime, stime, etime);
        }
        vipPaymentLambdaQueryWrapper.in(PaymentCompetition::getAppUserId,ids);
        vipPaymentLambdaQueryWrapper.eq(PaymentCompetition::getPayStatus,2);
        vipPaymentLambdaQueryWrapper.in(PaymentCompetition::getAppUserId, ids);
        vipPaymentLambdaQueryWrapper.eq(PaymentCompetition::getPayStatus, 2);
        ArrayList<Integer> objects = new ArrayList<>();
        objects.add(1);
        objects.add(2);
        vipPaymentLambdaQueryWrapper.in(PaymentCompetition::getPayType,objects);
        vipPaymentLambdaQueryWrapper.in(PaymentCompetition::getPayType, objects);
        List<PaymentCompetition> list = paymentCompetitionService.list(vipPaymentLambdaQueryWrapper);
        double sum = list.stream().mapToDouble(PaymentCompetition::getAmount).sum();
        return sum;
    }
    @ResponseBody
    @PostMapping("/base/competition/actPt")
    public HashMap<String, Object> actPt(@RequestBody List<Integer> ids){
    public HashMap<String, Object> actPt(@RequestBody List<Integer> ids) {
        HashMap<String, Object> map = new HashMap<>();
        if(ids.size()==0){
        if (ids.size() == 0) {
            ids.add(-1);
        }
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
            integers.add(year - i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
@@ -803,49 +887,49 @@
        for (Object o : collect) {
            String s = o.toString();
            int count = cttService.count(new LambdaQueryWrapper<Competition>().like(Competition::getInsertTime, s));
            int count1 = ucttService.count(new LambdaQueryWrapper<UserCompetition>().in(UserCompetition::getAppUserId, ids).like(UserCompetition::getInsertTime,s));
            int count1 = ucttService.count(new LambdaQueryWrapper<UserCompetition>().in(UserCompetition::getAppUserId, ids).like(UserCompetition::getInsertTime, s));
            years.add(count);
            yearsUser.add(count1);
        }
        map.put("yearData",years);
        map.put("yearsUser",yearsUser);
        map.put("yearData", years);
        map.put("yearsUser", yearsUser);
        // 月
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        ArrayList<Integer> months = new ArrayList<>();
        ArrayList<Integer> monthsUser = new ArrayList<>();
        for (int i = 1; i <= 12; i++) {
            double sum=0.0;
            String m=i+"";
            if(i<10){
                m="0"+i;
            double sum = 0.0;
            String m = i + "";
            if (i < 10) {
                m = "0" + i;
            }
            String s = year + "-" + m;
            int count = cttService.count(new LambdaQueryWrapper<Competition>().like(Competition::getInsertTime, s));
            int count1 = ucttService.count(new LambdaQueryWrapper<UserCompetition>().in(UserCompetition::getAppUserId, ids).like(UserCompetition::getInsertTime,s));
            int count1 = ucttService.count(new LambdaQueryWrapper<UserCompetition>().in(UserCompetition::getAppUserId, ids).like(UserCompetition::getInsertTime, s));
            months.add(count);
            monthsUser.add(count1);
        }
        map.put("monthData",months);
        map.put("monthsUser",monthsUser);
        map.put("monthData", months);
        map.put("monthsUser", monthsUser);
        return map;
    }
    @ResponseBody
    @PostMapping("/base/competition/actYys")
    public HashMap<String, Object> actYys(@RequestBody CompetionVO vo){
    public HashMap<String, Object> actYys(@RequestBody CompetionVO vo) {
        HashMap<String, Object> map = new HashMap<>();
        if(vo.getIds().size()==0){
        if (vo.getIds().size() == 0) {
            vo.getIds().add(-1);
        }
        ArrayList<Object> integers = new ArrayList<>();
        int year = DateUtil.year(new Date());
        for (int i = 0; i < 10; i++) {
            integers.add(year-i);
            integers.add(year - i);
        }
        List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
        // 年
@@ -856,32 +940,32 @@
                .stream().map(Competition::getId).collect(Collectors.toList());
        for (Object o : collect) {
            String s = o.toString();
            int count = cttService.count(new LambdaQueryWrapper<Competition>().like(Competition::getInsertTime, s).eq(Competition::getOperatorId,vo.getOperatorId()));
            int count1 = ucttService.count(new LambdaQueryWrapper<UserCompetition>().in(UserCompetition::getAppUserId, vo.getIds()).like(UserCompetition::getInsertTime,s));
            int count = cttService.count(new LambdaQueryWrapper<Competition>().like(Competition::getInsertTime, s).eq(Competition::getOperatorId, vo.getOperatorId()));
            int count1 = ucttService.count(new LambdaQueryWrapper<UserCompetition>().in(UserCompetition::getAppUserId, vo.getIds()).like(UserCompetition::getInsertTime, s));
            years.add(count);
            yearsUser.add(count1);
        }
        map.put("yearData",years);
        map.put("yearsUser",yearsUser);
        map.put("yearData", years);
        map.put("yearsUser", yearsUser);
        // 月
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        ArrayList<Integer> months = new ArrayList<>();
        ArrayList<Integer> monthsUser = new ArrayList<>();
        for (int i = 1; i <= 12; i++) {
            double sum=0.0;
            String m=i+"";
            if(i<10){
                m="0"+i;
            double sum = 0.0;
            String m = i + "";
            if (i < 10) {
                m = "0" + i;
            }
            String s = year + "-" + m;
            int count = cttService.count(new LambdaQueryWrapper<Competition>().like(Competition::getInsertTime, s).ne(Competition::getOperatorId,operatorId));
            int count1 = ucttService.count(new LambdaQueryWrapper<UserCompetition>().in(UserCompetition::getAppUserId, vo.getIds()).like(UserCompetition::getInsertTime,s));
            int count = cttService.count(new LambdaQueryWrapper<Competition>().like(Competition::getInsertTime, s).ne(Competition::getOperatorId, operatorId));
            int count1 = ucttService.count(new LambdaQueryWrapper<UserCompetition>().in(UserCompetition::getAppUserId, vo.getIds()).like(UserCompetition::getInsertTime, s));
            months.add(count);
            monthsUser.add(count1);
        }
        map.put("monthData",months);
        map.put("monthsUser",monthsUser);
        map.put("monthData", months);
        map.put("monthsUser", monthsUser);
        return map;
    }
cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java
@@ -44,28 +44,24 @@
    private TokenUtil tokenUtil;
    @ResponseBody
    @PostMapping("/api/participant/addParticipant")
    @ApiOperation(value = "添加参赛人员", tags = {"APP-赛事活动列表", ""})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil addParticipant(AddParticipant addParticipant){
    public ResultUtil addParticipant(AddParticipant addParticipant) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            return participantService.addParticipant(uid, addParticipant);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -75,14 +71,14 @@
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
            @ApiImplicitParam(value = "isPre(1过滤)", name = "是否过滤未实名", required = true, dataType = "int")
    })
    public ResultUtil<List<ParticipantVo>> queryParticipantList(Integer isPre){
    public ResultUtil<List<ParticipantVo>> queryParticipantList(Integer isPre) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            List<ParticipantVo> participantVos = participantService.queryParticipantList(uid);
            if (isPre!=null){
            if (isPre != null) {
                List<ParticipantVo> filteredParticipants = new ArrayList<>();
                for (ParticipantVo participant : participantVos) {
@@ -90,65 +86,62 @@
                        filteredParticipants.add(participant);
                    }
                }
            return ResultUtil.success(filteredParticipants);
                return ResultUtil.success(filteredParticipants);
            }
            return ResultUtil.success(participantVos);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
   @Resource
   private StudentClient studentClient;
    @Resource
    private StudentClient studentClient;
    @Resource
    private AppUserClient appUserClient;
    @ResponseBody
    @PostMapping("/api/participant/editParticipant")
    @ApiOperation(value = "编辑参赛人员", tags = {"APP-赛事活动列表", ""})
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil editParticipant(EditParticipant editParticipant){
    public ResultUtil editParticipant(EditParticipant editParticipant) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            int numDigits = String.valueOf(editParticipant.getId()).length();
            if (numDigits==9){
            if (numDigits == 9) {
                Participant byId = participantService.getById(editParticipant.getId());
                editParticipant.setName(byId.getName());
                return participantService.editParticipant(uid, editParticipant);
            }
            else {
            } else {
                TStudent student = new TStudent();
                student.setId(editParticipant.getId());
                TStudent student1 =   studentClient.queryById(editParticipant.getId());
                TStudent student1 = studentClient.queryById(editParticipant.getId());
                student.setName(student1.getName());
                student.setIdCard(editParticipant.getIdcard());
                if (editParticipant.getHeight()!=null) {
                if (editParticipant.getHeight() != null) {
                    student.setHeight(Double.valueOf(editParticipant.getHeight()));
                }
                if (editParticipant.getWeight()!=null) {
                if (editParticipant.getWeight() != null) {
                    student.setWeight(editParticipant.getWeight());
                }
                if(ToolUtil.isNotEmpty(student.getName()) && ToolUtil.isNotEmpty(student.getIdCard())){
                if (ToolUtil.isNotEmpty(student.getName()) && ToolUtil.isNotEmpty(student.getIdCard())) {
                    Boolean aBoolean = JuHeUtil.idcardAuthentication(student.getIdCard(), student.getName());
                    if(!aBoolean){
                    if (!aBoolean) {
                        return ResultUtil.error("身份证和姓名不匹配");
                    }
                }
@@ -158,12 +151,11 @@
                studentClient.updateAppUser(student);
                return ResultUtil.success();
            }
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
@@ -172,14 +164,14 @@
    @ApiImplicitParams({
            @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil delParticipant(Integer id){
    public ResultUtil delParticipant(Integer id) {
        try {
            Integer uid = tokenUtil.getUserIdFormRedis();
            if(null == uid){
            if (null == uid) {
                return ResultUtil.tokenErr();
            }
            return participantService.delParticipant(id);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtil.runErr();
        }
@@ -188,14 +180,15 @@
    /**
     * 保存学员后同步参赛人员信息
     *
     * @param saveParticipant
     */
    @ResponseBody
    @PostMapping("/participant/saveParticipant")
    public void saveParticipant(@RequestBody SaveParticipant saveParticipant){
    public void saveParticipant(@RequestBody SaveParticipant saveParticipant) {
        try {
            participantService.saveParticipant(saveParticipant);
        }catch (Exception e){
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
@@ -206,7 +199,7 @@
    @ResponseBody
    @PostMapping("/participant/counts")
    public Integer counts(@RequestBody Integer stuId){
       return userCompetitionService.count(new QueryWrapper<UserCompetition>().eq("participantId",stuId));
    public Integer counts(@RequestBody Integer stuId) {
        return userCompetitionService.count(new QueryWrapper<UserCompetition>().eq("participantId", stuId));
    }
}
cloud-server-competition/src/main/java/com/dsh/competition/controller/UserCompetitionController.java
@@ -17,8 +17,5 @@
public class UserCompetitionController {
}
cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java
@@ -16,7 +16,7 @@
/**
 * <p>
 *
 *
 * </p>
 *
 * @author jqs
@@ -237,6 +237,7 @@
    // 已报名人数
    @TableField(exist = false)
    private String count;
    @Override
    protected Serializable pkVal() {
        return this.id;
cloud-server-competition/src/main/java/com/dsh/competition/entity/PaymentCompetition.java
@@ -80,6 +80,6 @@
     * 添加时间
     */
    @TableField("insertTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date insertTime;
}
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/AppUserClient.java
@@ -15,6 +15,7 @@
    /**
     * 根据用户id获取用户信息
     *
     * @param appUserId
     * @return
     */
@@ -24,6 +25,7 @@
    /**
     * 修改用户信息
     *
     * @param appUser
     */
    @PostMapping("/base/appUser/updateAppUser")
@@ -31,7 +33,6 @@
    @PostMapping("/base/appUser/getAllUser")
    List<AppUser> getAllUser();
}
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/StudentClient.java
@@ -18,8 +18,10 @@
    @PostMapping("/base/appUser/updateTStudent")
    void updateAppUser(TStudent student);
    /**
     * 根据电话号码获取学员
     *
     * @param phone
     * @return
     */
@@ -29,6 +31,7 @@
    @PostMapping("/student/queryStudentList")
    List<TStudent> queryStudentList(@RequestBody Integer appUserId);
    @PostMapping("/student/queryById")
    TStudent queryById(Integer id);
}
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/account/model/TStudent.java
@@ -24,7 +24,7 @@
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_student")
public class TStudent{
public class TStudent {
    private static final long serialVersionUID = 1L;
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java
@@ -18,6 +18,7 @@
    /**
     * 获取学员剩余课时
     *
     * @param id
     * @return
     */
@@ -38,6 +39,7 @@
    /**
     * 取消报名赛事后回退学员课时
     *
     * @param paymentDeductionClassHour
     */
    @PostMapping("/coursePackagePayment/rollbackPaymentDeductionClassHour")
cloud-server-competition/src/main/java/com/dsh/competition/feignclient/other/StoreClient.java
@@ -17,6 +17,7 @@
    /**
     * 根据名称模糊搜索门店
     *
     * @param name
     * @return
     */
@@ -26,6 +27,7 @@
    /**
     * 根据门店id获取门店信息
     *
     * @param id
     * @return
     */
cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java
@@ -9,7 +9,7 @@
/**
 * <p>
 *  Mapper 接口
 * Mapper 接口
 * </p>
 *
 * @author jqs
@@ -20,6 +20,7 @@
    /**
     * 获取赛事列表
     *
     * @param cityCode
     * @param content
     * @param registerCondition
@@ -36,10 +37,9 @@
    void taskSetStatusStart();
    void taskSetStatusEnd();
    Integer counts(@Param("id")Long id);
    Integer counts(@Param("id") Long id);
    void deleteTenMinutes(@Param("pays") List<Long> pays);
}
cloud-server-competition/src/main/java/com/dsh/competition/mapper/ParticipantMapper.java
@@ -15,5 +15,6 @@
 */
public interface ParticipantMapper extends BaseMapper<Participant> {
    Page<CompetitionUser> getPeopleFromId(@Param("participantPage") Page<UserCompetition> participantPage, @Param("id") Integer id, @Param("state") Integer state);
    List<CompetitionUser> getPeoples(@Param("id") Integer id, @Param("state") Integer state);
}
cloud-server-competition/src/main/java/com/dsh/competition/mapper/PaymentCompetitionMapper.java
@@ -21,6 +21,7 @@
    /**
     * 获取已报名赛事列表
     *
     * @param uid
     * @param type
     * @param pageSize
@@ -31,14 +32,14 @@
                                                   @Param("pageSize") Integer pageSize, @Param("pageNo") Integer pageNo);
    List<BillingRequest> queryDatas(@Param("appUserId") Integer appUserId,
                                    @Param("monthStart")String monthStart,
                                    @Param("monthEnd")String monthEnd);
                                    @Param("monthStart") String monthStart,
                                    @Param("monthEnd") String monthEnd);
    List<BillingRequest> queryCancelDatas(@Param("appUserId") Integer appUserId,
                                          @Param("monthStart")String monthStart,
                                          @Param("monthEnd")String monthEnd);
                                          @Param("monthStart") String monthStart,
                                          @Param("monthEnd") String monthEnd);
    List<PaymentCompetition> listAll(@Param("query")CompetitionQuery query, @Param("sTime")String sTime, @Param("eTime")String eTime, @Param("amount") BigDecimal amount);
    List<PaymentCompetition> listAll(@Param("query") CompetitionQuery query, @Param("sTime") String sTime, @Param("eTime") String eTime, @Param("amount") BigDecimal amount);
    Integer queryBycode(String code);
Diff truncated after the above file
cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionInfo.java cloud-server-competition/src/main/java/com/dsh/competition/model/TCompetition.java cloud-server-competition/src/main/java/com/dsh/competition/service/CompetitionService.java cloud-server-competition/src/main/java/com/dsh/competition/service/IParticipantService.java cloud-server-competition/src/main/java/com/dsh/competition/service/IPaymentCompetitionService.java cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java cloud-server-competition/src/main/java/com/dsh/competition/service/impl/ParticipantServiceImpl.java cloud-server-competition/src/main/java/com/dsh/competition/service/impl/PaymentCompetitionServiceImpl.java cloud-server-competition/src/main/java/com/dsh/competition/util/DateTimeHelper.java cloud-server-competition/src/main/java/com/dsh/competition/util/DateUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/GeodesyUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/HeaderAuthUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/JsonUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/JuHeUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/LocalDateTimeUtils.java cloud-server-competition/src/main/java/com/dsh/competition/util/MD5AndKL.java cloud-server-competition/src/main/java/com/dsh/competition/util/PayMoneyUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/RedisUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/ResultUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/StrUtils.java cloud-server-competition/src/main/java/com/dsh/competition/util/StudyTimeUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/TaskUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/TaskUtilCompetition.java cloud-server-competition/src/main/java/com/dsh/competition/util/TokenUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/ToolUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/UUIDUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/akeylogin/SignUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/httpClinet/HttpClientUtil.java cloud-server-competition/src/main/java/com/dsh/competition/util/httpClinet/HttpResult.java cloud-server-competition/src/main/java/com/dsh/config/JsonLongSerializer.java cloud-server-competition/src/main/java/com/dsh/config/MessageLocalConfig.java cloud-server-competition/src/main/java/com/dsh/config/MyLocaleResolver.java cloud-server-competition/src/main/java/com/dsh/config/RedisConfig.java cloud-server-competition/src/main/java/com/dsh/config/Sharding_jdbc/DatasourceModel.java cloud-server-competition/src/main/java/com/dsh/config/Sharding_jdbc/Master0DataSource.java cloud-server-competition/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java cloud-server-competition/src/main/java/com/dsh/config/SwaggerConfig.java cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java cloud-server-competition/src/main/java/com/dsh/page/WafKit.java cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java cloud-server-competition/src/main/resources/bootstrap.properties cloud-server-competition/src/main/resources/logback-spring.xml cloud-server-competition/src/main/resources/mapper/CompetitionMapper.xml cloud-server-competition/src/main/resources/mapper/ParticipantMapper.xml cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml cloud-server-competition/src/main/resources/sharding-jdbc.properties cloud-server-course/pom.xml cloud-server-course/src/main/java/com/dsh/config/JsonLongSerializer.java cloud-server-course/src/main/java/com/dsh/config/MessageLocalConfig.java cloud-server-course/src/main/java/com/dsh/config/MyLocaleResolver.java cloud-server-course/src/main/java/com/dsh/config/RedisConfig.java cloud-server-course/src/main/java/com/dsh/config/Sharding_jdbc/DatasourceModel.java cloud-server-course/src/main/java/com/dsh/config/Sharding_jdbc/Master0DataSource.java cloud-server-course/src/main/java/com/dsh/config/Sharding_jdbc/ShardingConfig.java cloud-server-course/src/main/java/com/dsh/config/SwaggerConfig.java cloud-server-course/src/main/java/com/dsh/course/controller/CancelSourceController.java cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java cloud-server-course/src/main/java/com/dsh/course/controller/CourseController.java cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageDiscountController.java cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentConfigController.java cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageStudentController.java cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageTypeController.java cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java cloud-server-course/src/main/java/com/dsh/course/controller/PostCourseVideoController.java cloud-server-course/src/main/java/com/dsh/course/entity/CourseCounsum.java cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageOrder.java cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageOrderStudent.java cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageScheduling.java cloud-server-course/src/main/java/com/dsh/course/entity/TAppUser.java cloud-server-course/src/main/java/com/dsh/course/entity/TCourse.java cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackage.java cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageDiscount.java cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackageType.java cloud-server-course/src/main/java/com/dsh/course/entity/TOrder.java cloud-server-course/src/main/java/com/dsh/course/entity/dto/ToHoliDto.java cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseListClient.java cloud-server-course/src/main/java/com/dsh/course/feignclient/VideoOfCourseListClient.java cloud-server-course/src/main/java/com/dsh/course/feignclient/account/AppUserClient.java cloud-server-course/src/main/java/com/dsh/course/feignclient/account/CoachClient.java cloud-server-course/src/main/java/com/dsh/course/feignclient/account/StudentClient.java cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/Coach.java cloud-server-course/src/main/java/com/dsh/course/feignclient/account/model/TCourseInfoRecord.java cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/UserCouponClient.java cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/model/BenefitsVideos.java cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuSessionDetailsVo.java cloud-server-course/src/main/java/com/dsh/course/feignclient/other/StoreClient.java cloud-server-course/src/main/java/com/dsh/course/mapper/CancelledClassesMapper.java cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageOrderMapper.java cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageOrderStudentMapper.java cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageSchedulingMapper.java cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java cloud-server-course/src/main/java/com/dsh/course/mapper/TCourseMapper.java cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackageMapper.java cloud-server-course/src/main/java/com/dsh/course/mapper/TCoursePackagePaymentMapper.java cloud-server-course/src/main/java/com/dsh/course/model/AuditDiscount.java cloud-server-course/src/main/java/com/dsh/course/model/CancelClassesVO.java cloud-server-course/src/main/java/com/dsh/course/model/CourseDetailReq.java cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java cloud-server-course/src/main/java/com/dsh/course/model/DetailsListVo.java cloud-server-course/src/main/java/com/dsh/course/model/DiscountUpdateState.java cloud-server-course/src/main/java/com/dsh/course/model/RegisterOrderVO.java cloud-server-course/src/main/java/com/dsh/course/model/WeekEnum.java cloud-server-course/src/main/java/com/dsh/course/model/dto/DiscountJsonDto.java cloud-server-course/src/main/java/com/dsh/course/model/vo/RegisterCourseVo.java cloud-server-course/src/main/java/com/dsh/course/model/vo/TQueryBenefitsVideosVO.java cloud-server-course/src/main/java/com/dsh/course/model/vo/request/CourseOfAfterRequest.java cloud-server-course/src/main/java/com/dsh/course/model/vo/request/PayCourseReq.java cloud-server-course/src/main/java/com/dsh/course/model/vo/response/AppUserVideoResponse.java cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseOfVideoResponse.java cloud-server-course/src/main/java/com/dsh/course/model/vo/response/Details.java cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageSchedulingService.java cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageOrderService.java cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageOrderStudentService.java cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageSchedulingService.java cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageDiscountService.java cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackagePaymentService.java cloud-server-course/src/main/java/com/dsh/course/service/TCoursePackageService.java cloud-server-course/src/main/java/com/dsh/course/service/TCourseService.java cloud-server-course/src/main/java/com/dsh/course/service/impl/CancelledClassesServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/service/impl/CourseCounsumServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/service/impl/TCourseServiceImpl.java cloud-server-course/src/main/java/com/dsh/course/util/DateTimeHelper.java cloud-server-course/src/main/java/com/dsh/course/util/DateUtil.java cloud-server-course/src/main/java/com/dsh/course/util/GDMapGeocodingUtil.java cloud-server-course/src/main/java/com/dsh/course/util/GeodesyUtil.java cloud-server-course/src/main/java/com/dsh/course/util/HeaderAuthUtil.java cloud-server-course/src/main/java/com/dsh/course/util/JsonUtil.java cloud-server-course/src/main/java/com/dsh/course/util/LocalDateTimeUtils.java cloud-server-course/src/main/java/com/dsh/course/util/MD5AndKL.java cloud-server-course/src/main/java/com/dsh/course/util/PayMoneyUtil.java cloud-server-course/src/main/java/com/dsh/course/util/RedisUtil.java cloud-server-course/src/main/java/com/dsh/course/util/ResultUtil.java cloud-server-course/src/main/java/com/dsh/course/util/StrUtils.java cloud-server-course/src/main/java/com/dsh/course/util/StudyTimeUtil.java cloud-server-course/src/main/java/com/dsh/course/util/TaskUtil.java cloud-server-course/src/main/java/com/dsh/course/util/TokenUtil.java cloud-server-course/src/main/java/com/dsh/course/util/ToolUtil.java cloud-server-course/src/main/java/com/dsh/course/util/UUIDUtil.java cloud-server-course/src/main/java/com/dsh/course/util/akeylogin/SignUtil.java cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/HttpClientUtil.java cloud-server-course/src/main/java/com/dsh/course/util/httpClinet/HttpResult.java cloud-server-course/src/main/resources/bootstrap.properties cloud-server-course/src/main/resources/logback-spring.xml cloud-server-course/src/main/resources/mapper/CoursePackageOrderMapper.xml cloud-server-course/src/main/resources/mapper/CoursePackageOrderStudentMapper.xml cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml cloud-server-course/src/main/resources/mapper/TCourseMapper.xml cloud-server-course/src/main/resources/mapper/TCoursePackageDiscountMapper.xml cloud-server-course/src/main/resources/mapper/TCoursePackageMapper.xml cloud-server-course/src/main/resources/mapper/TCoursePackagePaymentMapper.xml cloud-server-course/src/main/resources/mapper/TCoursePackageTypeMapper.xml cloud-server-course/src/main/resources/sharding-jdbc.properties cloud-server-management/src/main/java/com/dsh/course/entity/SiteLock.java cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/BallController.java cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/SiteLock.java cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICoursePackageService.java cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/DateComparisonExample.java cloud-server-management/src/main/webapp/WEB-INF/view/system/ball/yuyue_add.html cloud-server-management/src/main/webapp/WEB-INF/view/system/tStudent/tStudentEdit.html cloud-server-management/src/main/webapp/static/modular/system/ball/yuyue_info.js cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js cloud-server-other/src/main/java/com/dsh/OtherApplication.java cloud-server-other/src/main/java/com/dsh/config/JsonLongSerializer.java cloud-server-other/src/main/java/com/dsh/config/MessageLocalConfig.java cloud-server-other/src/main/java/com/dsh/config/MyLocaleResolver.java cloud-server-other/src/main/java/com/dsh/config/RedisConfig.java cloud-server-other/src/main/java/com/dsh/config/SwaggerConfig.java cloud-server-other/src/main/java/com/dsh/other/controller/AskedQuestionsController.java cloud-server-other/src/main/java/com/dsh/other/controller/BallController.java cloud-server-other/src/main/java/com/dsh/other/controller/BannerController.java cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java cloud-server-other/src/main/java/com/dsh/other/controller/ImgConfigController.java cloud-server-other/src/main/java/com/dsh/other/controller/ProtocolController.java cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java cloud-server-other/src/main/java/com/dsh/other/controller/SiteLockController.java cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java cloud-server-other/src/main/java/com/dsh/other/controller/StoreEvaluationController.java cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java cloud-server-other/src/main/java/com/dsh/other/controller/SystemNoticeController.java cloud-server-other/src/main/java/com/dsh/other/controller/TGameController.java cloud-server-other/src/main/java/com/dsh/other/controller/TPhoneController.java cloud-server-other/src/main/java/com/dsh/other/controller/TRegionController.java cloud-server-other/src/main/java/com/dsh/other/controller/UserLoginLogController.java cloud-server-other/src/main/java/com/dsh/other/entity/Banner.java cloud-server-other/src/main/java/com/dsh/other/entity/CourseCounsum.java cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java cloud-server-other/src/main/java/com/dsh/other/entity/Region.java cloud-server-other/src/main/java/com/dsh/other/entity/Site.java cloud-server-other/src/main/java/com/dsh/other/entity/SiteBooking.java cloud-server-other/src/main/java/com/dsh/other/entity/SiteLock.java cloud-server-other/src/main/java/com/dsh/other/entity/StoreEvaluation.java cloud-server-other/src/main/java/com/dsh/other/entity/StoredValueConfig.java cloud-server-other/src/main/java/com/dsh/other/entity/TBackRecord.java cloud-server-other/src/main/java/com/dsh/other/entity/TGame.java cloud-server-other/src/main/java/com/dsh/other/entity/TGameConfig.java cloud-server-other/src/main/java/com/dsh/other/entity/TGameRecord.java cloud-server-other/src/main/java/com/dsh/other/entity/TSite.java cloud-server-other/src/main/java/com/dsh/other/entity/TStoreOther.java cloud-server-other/src/main/java/com/dsh/other/entity/TStoreOtherConfigTrue.java cloud-server-other/src/main/java/com/dsh/other/feignclient/CourseRecordClient.java cloud-server-other/src/main/java/com/dsh/other/feignclient/CustomerClient.java cloud-server-other/src/main/java/com/dsh/other/feignclient/NoticeClient.java cloud-server-other/src/main/java/com/dsh/other/feignclient/StoreClient.java cloud-server-other/src/main/java/com/dsh/other/feignclient/account/AppUserClient.java cloud-server-other/src/main/java/com/dsh/other/feignclient/account/CityManagerClient.java cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/CouponClient.java cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/UserCouponClient.java cloud-server-other/src/main/java/com/dsh/other/feignclient/model/AdvertisementChangeStateDTO.java cloud-server-other/src/main/java/com/dsh/other/feignclient/model/StoreOfCitycodeResp.java cloud-server-other/src/main/java/com/dsh/other/mapper/BannerMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/FrequentlyAskedQuestionsMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/SiteBookingMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/SiteMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/StoreMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/TGameMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/TGameRecordMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/TOperatorUserMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/TStoreOtherConfigTrueMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/TStoreOtherMapper.java cloud-server-other/src/main/java/com/dsh/other/mapper/UserMapper.java cloud-server-other/src/main/java/com/dsh/other/model/ReservationSite.java cloud-server-other/src/main/java/com/dsh/other/model/StoreDetailsVo.java cloud-server-other/src/main/java/com/dsh/other/model/User.java cloud-server-other/src/main/java/com/dsh/other/model/vo/siteVo/ExpireSiteSearchVO.java cloud-server-other/src/main/java/com/dsh/other/service/IBannerService.java cloud-server-other/src/main/java/com/dsh/other/service/ISiteService.java cloud-server-other/src/main/java/com/dsh/other/service/ISiteTypeService.java cloud-server-other/src/main/java/com/dsh/other/service/IUserService.java cloud-server-other/src/main/java/com/dsh/other/service/StoreService.java cloud-server-other/src/main/java/com/dsh/other/service/TGameRecordService.java cloud-server-other/src/main/java/com/dsh/other/service/TGameService.java cloud-server-other/src/main/java/com/dsh/other/service/TStoreOtherConfigTrueService.java cloud-server-other/src/main/java/com/dsh/other/service/TStoreOtherService.java cloud-server-other/src/main/java/com/dsh/other/service/impl/BannerServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/FrequentlyAskedQuestionsServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/HonorRulesServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteBookingServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteLockServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteTypeServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/StoreServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/TGameRecordServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/TOperatorUserServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/TStoreOtherConfigTrueServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/TStoreOtherServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/service/impl/UserServiceImpl.java cloud-server-other/src/main/java/com/dsh/other/util/DateComparisonExample.java cloud-server-other/src/main/java/com/dsh/other/util/DateTimeHelper.java cloud-server-other/src/main/java/com/dsh/other/util/DateUtil.java cloud-server-other/src/main/java/com/dsh/other/util/GDMapGeocodingUtil.java cloud-server-other/src/main/java/com/dsh/other/util/GeodesyUtil.java cloud-server-other/src/main/java/com/dsh/other/util/HeaderAuthUtil.java cloud-server-other/src/main/java/com/dsh/other/util/HttpClientUtil.java cloud-server-other/src/main/java/com/dsh/other/util/HttpRequestUtil.java cloud-server-other/src/main/java/com/dsh/other/util/HttpResult.java cloud-server-other/src/main/java/com/dsh/other/util/JsonUtil.java cloud-server-other/src/main/java/com/dsh/other/util/LocalDateTimeUtils.java cloud-server-other/src/main/java/com/dsh/other/util/MD5AndKL.java cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java cloud-server-other/src/main/java/com/dsh/other/util/RedisUtil.java cloud-server-other/src/main/java/com/dsh/other/util/ResultUtil.java cloud-server-other/src/main/java/com/dsh/other/util/StrUtils.java cloud-server-other/src/main/java/com/dsh/other/util/StudyTimeUtil.java cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java cloud-server-other/src/main/java/com/dsh/other/util/TaskUtilCompetition.java cloud-server-other/src/main/java/com/dsh/other/util/TokenUtil.java cloud-server-other/src/main/java/com/dsh/other/util/ToolUtil.java cloud-server-other/src/main/java/com/dsh/other/util/UUIDUtil.java cloud-server-other/src/main/java/com/dsh/other/util/akeylogin/SignUtil.java cloud-server-other/src/main/java/com/dsh/other/util/httpClinet/HttpClientUtil.java cloud-server-other/src/main/java/com/dsh/other/util/httpClinet/HttpResult.java cloud-server-other/src/main/resources/bootstrap.properties cloud-server-other/src/main/resources/logback-spring.xml cloud-server-other/src/main/resources/mapper/BannerMapper.xml cloud-server-other/src/main/resources/mapper/FrequentlyAskedQuestionsMapper.xml cloud-server-other/src/main/resources/mapper/GameMapper.xml cloud-server-other/src/main/resources/mapper/HonorRulesMapper.xml cloud-server-other/src/main/resources/mapper/ProtocolMapper.xml cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml cloud-server-other/src/main/resources/mapper/SiteMapper.xml cloud-server-other/src/main/resources/mapper/TImgConfigMapper.xml