From c036557db88c6297b9a626a892dce35c14ab8ee5 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期四, 09 十一月 2023 18:30:31 +0800 Subject: [PATCH] 11.6 --- cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java | 2 cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java | 39 cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java | 509 ++++++--- cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java | 44 cloud-server-account/src/main/java/com/dsh/account/entity/OrderDto.java | 14 cloud-server-account/src/main/java/com/dsh/account/entity/HonorRules.java | 56 + cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 197 +- cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionInfo.java | 5 cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java | 5 cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java | 5 cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java | 22 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java | 31 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 709 +++++++----- cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java | 16 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java | 17 cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java | 31 cloud-server-course/src/main/java/com/dsh/course/entity/RecordTimeRequest.java | 20 cloud-server-competition/src/main/resources/mapper/CompetitionMapper.xml | 13 cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java | 10 cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java | 3 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 49 cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java | 4 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java | 3 cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java | 2 cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java | 9 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java | 3 cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java | 2 cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java | 44 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 183 ++ cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java | 3 cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/ParticipantClient.java | 2 cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java | 6 cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java | 1 cloud-server-other/src/main/java/com/dsh/other/util/DateComparisonExample.java | 11 cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java | 211 +++ cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java | 2 cloud-server-activity/src/main/java/com/dsh/activity/entity/Location.java | 9 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java | 32 cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java | 13 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 405 ++++++ cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java | 4 cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java | 75 + cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java | 14 cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java | 2 cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java | 3 cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java | 4 cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java | 17 cloud-server-course/src/main/java/com/dsh/course/entity/OrderDto.java | 14 cloud-server-course/src/main/java/com/dsh/course/entity/CourseCounsum.java | 2 cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java | 13 cloud-server-account/src/main/java/com/dsh/account/dto/Location.java | 9 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java | 7 cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuDetailsReq.java | 1 cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuListVo.java | 2 cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml | 3 cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 22 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java | 4 cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml | 4 cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java | 1 cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java | 4 cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java | 26 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java | 14 cloud-server-account/src/main/java/com/dsh/account/entity/CourseCounsum.java | 30 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java | 17 cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml | 2 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 113 + cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java | 4 cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml | 1 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java | 3 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java | 2 cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java | 26 cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java | 44 cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java | 2 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java | 21 74 files changed, 2,475 insertions(+), 777 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java index 155b96b..6bd2591 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java @@ -9,12 +9,14 @@ import com.dsh.account.entity.Coach; import com.dsh.account.entity.TAppUser; import com.dsh.account.entity.TCourseInfoRecord; +import com.dsh.account.entity.UserIntegralChanges; import com.dsh.account.model.*; import com.dsh.account.model.query.appUserQuery.QueryAppUser; import com.dsh.account.model.vo.QueryAppUserVO; import com.dsh.account.service.IVipPaymentService; import com.dsh.account.service.TAppUserService; import com.dsh.account.service.TCourseInfoRecordService; +import com.dsh.account.service.UserIntegralChangesService; import com.dsh.account.util.PayMoneyUtil; import com.dsh.account.util.ResultUtil; import com.dsh.account.util.TokenUtil; @@ -449,6 +451,8 @@ } + @Autowired + private UserIntegralChangesService userIntegralChangesService; /** * 修改用户信息 * @param appUser @@ -458,6 +462,15 @@ 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.setType(5); + userIntegralChanges.setNewIntegral(appUser.getIntegral()); + userIntegralChanges.setInsertTime(new Date()); + userIntegralChanges.setCategory(2); + userIntegralChangesService.save(userIntegralChanges); + }catch (Exception e){ e.printStackTrace(); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java index 1512dc0..1806a5f 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java @@ -263,6 +263,7 @@ vo.setStuWeight(sts.getWeight()); vo.setIsNot(sts.getIsDefault()); vo.setStuPhone(sts.getPhone()); + vo.setSex(sts.getSex()); stuListVos.add(vo); }); } @@ -341,13 +342,27 @@ @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(StuEditInfoReq stu){ + public ResultUtil commitEditStu(StuDetailsReq stu){ try { Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(); if(null == userIdFormRedis){ return ResultUtil.tokenErr(); } - return ResultUtil.success(istuService.commitEditStudentInfo(stu,userIdFormRedis)); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + + TStudent tStudent = new TStudent(); + tStudent.setId(stu.getStuId()); + tStudent.setBirthday(format.parse(stu.getBirthday())); + tStudent.setHeadImg(stu.getHeadImg()); + tStudent.setHeight(stu.getHeight()); + tStudent.setWeight(stu.getWeight()); + tStudent.setPhone(stu.getPhone()); + tStudent.setSex(stu.getSex()); + tStudent.setName(stu.getName()); + tStudent.setIdCard(stu.getIdCard()); + return ResultUtil.success(istuService.updateById(tStudent)); + +// return ResultUtil.success(istuService.commitEditStudentInfo(stu,userIdFormRedis)); }catch (Exception e){ return ResultUtil.runErr(); } @@ -546,6 +561,9 @@ }) public ResultUtil<List<StuMedalVo>> queryStuMedal( Integer stuId){ try { + + + Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java index 7aaa6e0..99cf9c1 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java @@ -55,14 +55,16 @@ @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") }) - public ResultUtil<IndexOfUserBenefirVo> queryAppUserUser(){ + public ResultUtil<IndexOfUserBenefirVo> queryAppUserUser(String lon,String lat){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } - IndexOfUserBenefirVo indexOfUserBenefirVo = tauService.queryBenefitDetails(appUserId); + IndexOfUserBenefirVo indexOfUserBenefirVo = tauService.queryBenefitDetails(appUserId,lon,lat); List<IntegralCommodity> commodities = indexOfUserBenefirVo.getCommodities(); if (commodities.size() > 5) { commodities = commodities.subList(0, 5); @@ -80,6 +82,9 @@ @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") + }) public ResultUtil<AppUserDetailsVo> queryAppUserDetails(){ try { @@ -89,6 +94,13 @@ return ResultUtil.tokenErr(); } TAppUser tAppUser = tauService.getBaseMapper().selectById(appUserId); + if (tAppUser.getCode()==null){ + detailsVo.setNeedChange(1); + }else { + detailsVo.setNeedChange(0); + } + + if (null != tAppUser){ detailsVo.setUserId(appUserId); detailsVo.setUserImage(tAppUser.getHeadImg()); diff --git a/cloud-server-account/src/main/java/com/dsh/account/dto/Location.java b/cloud-server-account/src/main/java/com/dsh/account/dto/Location.java new file mode 100644 index 0000000..6d286c9 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/dto/Location.java @@ -0,0 +1,9 @@ +package com.dsh.account.dto; + +import lombok.Data; + +@Data +public class Location { + private String lon; + private String lat; +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/CourseCounsum.java b/cloud-server-account/src/main/java/com/dsh/account/entity/CourseCounsum.java new file mode 100644 index 0000000..8f96062 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/entity/CourseCounsum.java @@ -0,0 +1,30 @@ +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 io.swagger.models.auth.In; +import lombok.Data; + +import java.util.Date; + + +@Data +@TableName("t_course_consum") +public class CourseCounsum { + @TableId(value = "id", type = IdType.AUTO) + Integer id; + @TableField("changeType") + Integer changeType; + @TableField("num") + Integer num; + @TableField("reason") + String reason; + @TableField("paymentId") + Long paymentId; + @TableField("insertTime") + Date insertTime; + @TableField("appUserId") + Integer appUserId; +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/HonorRules.java b/cloud-server-account/src/main/java/com/dsh/account/entity/HonorRules.java new file mode 100644 index 0000000..5167169 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/entity/HonorRules.java @@ -0,0 +1,56 @@ +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 io.swagger.models.auth.In; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * <p> + * 荣誉规则 + * </p> + * + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("t_honor_rules") +public class HonorRules extends Model<HonorRules> { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 数据类型(1=俱乐部之星,2=运动达人,3=社区之王,4=深度玩家) + */ + @TableField("type") + private Integer type; + /** + * 等级 + */ + @TableField("level") + private Integer level; + /** + * 满足条件值 + */ + + @TableField(value = "`condition`") + private Integer condition; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/OrderDto.java b/cloud-server-account/src/main/java/com/dsh/account/entity/OrderDto.java new file mode 100644 index 0000000..39a0693 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/entity/OrderDto.java @@ -0,0 +1,14 @@ +package com.dsh.account.entity; + +import lombok.Data; + +@Data +public class OrderDto { + private String stuIds; + + private Integer appUserId; + + private Integer classId; + + private Integer classHours; +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java b/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java index c0b9123..a6544b1 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java +++ b/cloud-server-account/src/main/java/com/dsh/account/entity/TAppUser.java @@ -173,4 +173,6 @@ private Integer addUserId; @TableField(exist = false) private Integer age; + @TableField(exist = false) + private Integer points; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java index 19f7b0e..10e801c 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java @@ -1,6 +1,7 @@ package com.dsh.account.feignclient.activity; +import com.dsh.account.dto.Location; import com.dsh.account.feignclient.activity.model.*; import com.dsh.account.feignclient.competition.model.BillingDataRequestVo; import com.dsh.account.model.vo.userBenefitDetail.*; @@ -14,7 +15,7 @@ public interface MerChandiseClient { @PostMapping("/base/pointMerchars/convertGoods") - public List<IntegralCommodity> getConvertibleGoods(); + public List<IntegralCommodity> getConvertibleGoods(@RequestBody Location location); @PostMapping("/base/pointMerchars/getCommoditys") diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java index e347deb..41c9bdc 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java @@ -1,7 +1,12 @@ package com.dsh.account.feignclient.activity.model; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; +import java.io.Serializable; import java.util.Date; /** @@ -15,64 +20,82 @@ @Data public class UserPointsMerchandise{ + private static final long serialVersionUID = 1L; /** * 主键 */ + @TableId(value = "id", type = IdType.NONE) private Long id; /** * 商品id */ + @TableField("pointsMerchandiseId") private Integer pointsMerchandiseId; /** * 用户id */ + @TableField("userId") private Integer userId; /** * 核销人员id */ + @TableField("verificationUserId") private Integer verificationUserId; /** * 核销门店id */ + @TableField("verifiStoreId") private Integer verifiStoreId; /** * 核销时间 */ + @TableField("verificationTime") private Date verificationTime; /** * 状态(1=待核销,2=已核销) */ + @TableField("status") private Integer status; /** * 领取时间 */ + @TableField("insertTime") private Date insertTime; /** * 现金支付方式(1=微信2支付宝) */ + @TableField("payType") private Integer payType; /** - * 现金支付的交易凭证 + * code */ + @TableField("code") private String code; /** - * 现金支付的交易订单号 + * orderNumber */ + @TableField("orderNumber") private String orderNumber; /** - * 现金的支付状态(1=待支付 2=已支付) + * 现金的支付状态 */ + @TableField("payStatus") private Integer payStatus; /** * 可使用的门店id */ + @TableField("storeId") private Integer storeId; /** - * 1=正常 2= 删除 + * 1=正常 2=删除 */ + @TableField("state") private Integer state; + + + } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/ParticipantClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/ParticipantClient.java index 81ab820..f4a4ed8 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/ParticipantClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/competition/ParticipantClient.java @@ -18,4 +18,6 @@ */ @PostMapping("/participant/saveParticipant") void saveParticipant(SaveParticipant saveParticipant); + @PostMapping("/participant/counts") + Integer counts(Integer stuId); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java index cd82212..548d755 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java @@ -25,4 +25,8 @@ 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); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java index 18393df..2c74ad5 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java @@ -1,6 +1,8 @@ package com.dsh.account.feignclient.course; import com.dsh.account.dto.TCoursePackagePayment1; +import com.dsh.account.entity.CourseCounsum; +import com.dsh.account.entity.OrderDto; import com.dsh.account.feignclient.competition.model.BillingDataRequestVo; import com.dsh.account.feignclient.course.model.*; import com.dsh.account.model.BillingRequest; @@ -63,6 +65,10 @@ @PostMapping("/base/coursePack/savePaymentCoursePackage") public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment); + + @PostMapping("/base/coursePack/orderClass") + public void orderClass(@RequestBody OrderDto orderDto); + @PostMapping("/base/coursePack/allAmountPayRecordOfUser") BillingRequestVo getAmountPayRecord(@RequestBody BillingDataRequestVo appUserId); @@ -82,5 +88,13 @@ @PostMapping("/base/coursePack/weeksOfCourseDetailsList") HashMap<String, Object> weeksOfCourseDetailsList(@RequestBody CourseDetailReq courseDetailReq); + @PostMapping("/base/coursePack/getConsumes") + List<CourseCounsum> getConsumes(@RequestBody BillingDataRequestVo requestVo); + + +// @PostMapping("/base/coursePack/getClassHour") +// Integer getClassHour(Integer courseConfigId); + + } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java index 5506604..2e89e05 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseSessionNameClient.java @@ -4,6 +4,7 @@ import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; import com.dsh.account.feignclient.course.model.GetStuSessionList; import com.dsh.account.feignclient.course.model.StuSessionDetailsVo; +import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -19,5 +20,6 @@ @PostMapping("/base/coursePack/paymentCourse") public List<PurchaseRecordVo> queryCourseDetails(@RequestBody GetStuSessionList getStuSessionList); - + @PostMapping("/base/coursePack/getRecord") + List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest timeRequest); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java index 8e53cc5..36e4908 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/HonorDeClient.java @@ -1,5 +1,6 @@ package com.dsh.account.feignclient.other; +import com.dsh.account.entity.HonorRules; import com.dsh.account.model.vo.medalDetail.StuMedalVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -12,5 +13,6 @@ @PostMapping("/base/honor/stuHonors") public List<StuMedalVo> getStuHonors(@RequestBody List<Integer> honorIds); - + @PostMapping("/base/honor/getHonor") + HonorRules getHonor(@RequestBody List<Integer> integers); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java index df3512c..1da3ff1 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/other/SiteClient.java @@ -34,5 +34,6 @@ @PostMapping("/base/site/game") List<Map<String, Object>> game(Integer appUserId); - + @PostMapping("/base/site/counts") + Integer counts(Integer stuId); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java b/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java index b09eb24..6572ea5 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java +++ b/cloud-server-account/src/main/java/com/dsh/account/model/BillingRequestOfType.java @@ -21,4 +21,7 @@ * 金额 */ private double amount; + + private String time1; + } diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuDetailsReq.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuDetailsReq.java index 391dd2f..1ca06be 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuDetailsReq.java +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuDetailsReq.java @@ -29,4 +29,5 @@ @ApiModelProperty(value = "身份证号码") private String idCard; + private Integer stuId; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuListVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuListVo.java index e61dffe..003eb1b 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuListVo.java +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuListVo.java @@ -36,4 +36,6 @@ @ApiModelProperty(value = "学员手机号") private String stuPhone; + @ApiModelProperty(value = "性别") + private Integer sex; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java index 50c5098..72e05ca 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/AppUserDetailsVo.java @@ -31,5 +31,7 @@ private String memberLifespan; private Integer isVip; + @ApiModelProperty(value = "1:需要修改,") + private Integer needChange; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java index bd36c07..2bc0fff 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java @@ -113,7 +113,7 @@ * @param appUserId * @return */ - IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId); + IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId,String lon,String lat); /** * 获取用户账单列表 diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java index 3b86233..4349abc 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/RechargeRecordsServiceImpl.java @@ -80,7 +80,7 @@ @Override public List<RechargesDetail> getAppUserRechargeRecord(String yearMonth, Integer recordId, Integer appUserId,Integer pageNum,Integer pageSize) { List<RechargesDetail> details = new ArrayList<>(); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm"); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); Date monthStart = null; Date monthEnd = null; @@ -150,7 +150,7 @@ if (rechargeRecords.size() > 0) { for (RechargeRecords rechargeRecord : rechargeRecords) { RechargesDetail consumeDetail = new RechargesDetail(); - consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.name() + ":" + rechargeRecord.getPlayPaiCoins()); + consumeDetail.setConsumeName(RechargeRecordEnum.RECHARGE.getMsg() + ":" + rechargeRecord.getPlayPaiCoins()); consumeDetail.setConsumeTime(simpleDateFormat.format(rechargeRecord.getInsertTime())); consumeDetail.setConsumeAmount("+" + rechargeRecord.getAmount()); consumeDetail.setRecordId(1); @@ -182,11 +182,29 @@ //一页五条 int size = pageSize; + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + List<RechargesDetail> filteredList = new ArrayList<>(); + for (RechargesDetail detail : details) { + try { + Date consumeTime = dateFormat.parse(detail.getConsumeTime()); + if (consumeTime.after(monthStart) && consumeTime.before(monthEnd)) { + String substring = detail.getConsumeTime().substring(5); + detail.setConsumeTime(substring); + filteredList.add(detail); + } + } catch (ParseException e) { + e.printStackTrace(); + } + } + + + //分页 - details = details.stream().skip((pageNo - 1) * size).limit(size). + filteredList = filteredList.stream().skip((pageNo - 1) * size).limit(size). collect(Collectors.toList()); - return details; + return filteredList; } @Override diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java index 663fffb..8b5b7a9 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/StudentHonorServiceImpl.java @@ -2,15 +2,25 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.account.entity.HonorRules; import com.dsh.account.entity.StudentHonor; +import com.dsh.account.entity.TStudent; +import com.dsh.account.feignclient.competition.ParticipantClient; +import com.dsh.account.feignclient.course.CoursePackageClient; +import com.dsh.account.feignclient.course.model.CoursePackage; import com.dsh.account.feignclient.other.HonorDeClient; +import com.dsh.account.feignclient.other.SiteClient; import com.dsh.account.mapper.StudentHonorMapper; import com.dsh.account.model.vo.medalDetail.GongVo; import com.dsh.account.model.vo.medalDetail.StuMedalVo; import com.dsh.account.service.StudentHonorService; +import com.dsh.account.service.TAppUserService; +import com.dsh.account.service.TStudentService; +import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -26,46 +36,191 @@ @Service public class StudentHonorServiceImpl extends ServiceImpl<StudentHonorMapper, StudentHonor> implements StudentHonorService { + @Resource + private CoursePackageClient coursePackageClient; + + @Resource + private ParticipantClient participantClient; + + @Resource + private SiteClient siteClient; + @Autowired private HonorDeClient honorDeClient; + + @Autowired + private TStudentService studentService; + @Override public List<GongVo> queryStuOfMedalData(Integer stuId) { List<GongVo> voList = new ArrayList<>(); - List<StudentHonor> studentHonors = this.baseMapper.selectList(new QueryWrapper<StudentHonor>() - .eq("stuId", stuId)); - if (studentHonors.size() > 0){ - studentHonors.forEach( stuoHo -> { - GongVo vo = new GongVo(); - vo.setMedalType(stuoHo.getHonorType()); - switch (stuoHo.getHonorType()){ - case 1: - vo.setMedalName("俱乐部之星"); - break; - case 2: - vo.setMedalName("运动达人"); - break; - case 3: - vo.setMedalName("社区之王"); - break; - case 4: - vo.setMedalName("深度玩家"); - break; - default: - break; - } - voList.add(vo); - }); +// List<StudentHonor> studentHonors = this.baseMapper.selectList(new QueryWrapper<StudentHonor>() +// .eq("stuId", stuId)); +// + TStudent student = studentService.getById(stuId); +// +// +// if (studentHonors.size() > 0){ +// studentHonors.forEach( stuoHo -> { +// GongVo vo = new GongVo(); +// vo.setMedalType(stuoHo.getHonorType()); +// switch (stuoHo.getHonorType()){ +// case 1: +// vo.setMedalName("俱乐部之星"); +// break; +// case 2: +// vo.setMedalName("运动达人"); +// break; +// case 3: +// vo.setMedalName("社区之王"); +// break; +// case 4: +// vo.setMedalName("深度玩家"); +// break; +// default: +// break; +// } +// voList.add(vo); +// }); +// } + Integer count1 =coursePackageClient.counts(stuId); + if (count1>0){ + GongVo vo = new GongVo(); + vo.setMedalType(1); + vo.setMedalName("俱乐部之星"); + voList.add(vo); } + + Integer count2 = participantClient.counts(stuId); + if (count2>0){ + GongVo vo = new GongVo(); + vo.setMedalType(2); + vo.setMedalName("运动达人"); + voList.add(vo); + } + + Integer count3 = siteClient.counts(student.getAppUserId()); + if (count3>0){ + GongVo vo = new GongVo(); + vo.setMedalType(3); + vo.setMedalName("社区之王"); + voList.add(vo); + } + + + Integer count4 = coursePackageClient.counts1(stuId); + if (count4>0){ + GongVo vo = new GongVo(); + vo.setMedalType(4); + vo.setMedalName("深度玩家"); + voList.add(vo); + } + + return voList; } + + @Override public List<StuMedalVo> queryHonorDetails(Integer stuId) { - List<StudentHonor> studentHonors = this.baseMapper.selectList(new QueryWrapper<StudentHonor>() - .in("stuId",stuId)); - List<Integer> collect = studentHonors.stream().map(StudentHonor::getHonorRuleId).collect(Collectors.toList()); - return honorDeClient.getStuHonors(collect); + List<StuMedalVo> studentHonors = new ArrayList<>(); +// List<Integer> collect = studentHonors.stream().map(StudentHonor::getHonorRuleId).collect(Collectors.toList()); + + Integer count1 =coursePackageClient.counts(stuId); + if (count1>0){ + StuMedalVo vo = new StuMedalVo(); + vo.setMedalType(1); + vo.setMedalName("俱乐部之星"); + //拿到当前对应的rule对象 + List<Integer> integers = new ArrayList<>(); + integers.add(1); + integers.add(count1); + HonorRules honorRules = honorDeClient.getHonor(integers); + 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.setIsTopLevel(0); + }else { + vo.setIsTopLevel(1); + } + + studentHonors.add(vo); + } + + Integer count2 = participantClient.counts(stuId); + if (count2>0){ + StuMedalVo vo = new StuMedalVo(); + vo.setMedalType(2); + vo.setMedalName("运动达人"); + //拿到当前对应的rule对象 + List<Integer> integers = new ArrayList<>(); + integers.add(2); + integers.add(count2); + HonorRules honorRules = honorDeClient.getHonor(integers); + 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.setIsTopLevel(0); + }else { + vo.setIsTopLevel(1); + } + + studentHonors.add(vo); + } + TStudent student = studentService.getById(stuId); + + Integer count3 = siteClient.counts(student.getAppUserId()); + if (count3>0){ + StuMedalVo vo = new StuMedalVo(); + vo.setMedalType(3); + vo.setMedalName("社区之王"); + //拿到当前对应的rule对象 + List<Integer> integers = new ArrayList<>(); + integers.add(3); + integers.add(count3); + HonorRules honorRules = honorDeClient.getHonor(integers); + 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.setIsTopLevel(0); + }else { + vo.setIsTopLevel(1); + } + + studentHonors.add(vo); + } + + + Integer count4 = coursePackageClient.counts1(stuId); + if (count4>0){ + StuMedalVo vo = new StuMedalVo(); + vo.setMedalType(4); + vo.setMedalName("深度玩家"); + //拿到当前对应的rule对象 + List<Integer> integers = new ArrayList<>(); + integers.add(4); + integers.add(count4); + HonorRules honorRules = honorDeClient.getHonor(integers); + 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.setIsTopLevel(0); + }else { + vo.setIsTopLevel(1); + } + + studentHonors.add(vo); + } + + + + return studentHonors; } } diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java index 82a76bd..44f4d18 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java @@ -16,10 +16,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dsh.account.dto.BindDto; -import com.dsh.account.dto.SelectDto; -import com.dsh.account.dto.UpdateInfoDto; -import com.dsh.account.dto.UserInfoQueryDTO; +import com.dsh.account.dto.*; import com.dsh.account.entity.*; import com.dsh.account.enums.RechargeRecordEnum; import com.dsh.account.feignclient.activity.IntroduceRewardsClient; @@ -46,6 +43,7 @@ import com.dsh.account.feignclient.other.model.TImgConfig; import com.dsh.account.mapper.*; import com.dsh.account.model.*; +import com.dsh.account.model.AppUserByNameAndPhoneDTO; import com.dsh.account.model.dto.Coupon; import com.dsh.account.model.query.appUserQuery.QueryAppUser; import com.dsh.account.model.vo.DetailsListVo; @@ -597,6 +595,9 @@ if(tAppUser.getState() == 2){ return ResultUtil.error("您的账号已被冻结", ""); } + if (tAppUser.getCode()==null){ + tAppUser.setCode(UUIDUtil.getNumberRandom(16)); + } tAppUser.setPassword(password); this.updateById(tAppUser); return ResultUtil.success(); @@ -673,7 +674,7 @@ } @Override - public IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId) { + public IndexOfUserBenefirVo queryBenefitDetails(Integer appUserId,String lon,String lat) { IndexOfUserBenefirVo benefirVo = new IndexOfUserBenefirVo(); TAppUser appUser = this.getById(appUserId); @@ -686,7 +687,11 @@ }else { benefirVo.setIsMember("普通用户"); } - List<IntegralCommodity> convertibleGoods = mcClient.getConvertibleGoods(); + + Location location = new Location(); + location.setLat(lat); + location.setLon(lon); + List<IntegralCommodity> convertibleGoods = mcClient.getConvertibleGoods(location); benefirVo.setCommodities(convertibleGoods); benefirVo.setImage(icfgClient.getImageConfig()); return benefirVo; @@ -748,6 +753,26 @@ details.add(consumeDetail); } } + + //2.0 + List<CourseCounsum> courseCounsums = paymentClient.getConsumes(requestVo); + + for (CourseCounsum courseCounsum : courseCounsums) { + ConsumeDetail consumeDetail = new ConsumeDetail(); + String[] split = courseCounsum.getReason().split(";"); + consumeDetail.setConsumeName(split[0]); + consumeDetail.setConsumeTime(simpleDateFormat.format(courseCounsum.getInsertTime())); +// if (courseCounsum.getChangeType()==3){ + consumeDetail.setConsumeAmount("-" + split[1]); + consumeDetail.setType(2); +// } +// +// consumeDetail.setConsumeAmount("-" + coursePackagePayment.getAmount()); +// consumeDetail.setType(2); + details.add(consumeDetail); + } + + // 4.场地预约 RequestOfTypeVo allSiteBookingList = stClient.getAllSiteBookingList(requestVo); if (ToolUtil.isNotEmpty(allSiteBookingList.getRequest())){ @@ -758,13 +783,23 @@ consumeDetail.setConsumeAmount("-" + booking.getAmount()); consumeDetail.setConsumeTime(booking.getTime()); consumeDetail.setType(2); + details.add(consumeDetail); }else { - consumeDetail.setConsumeName(RechargeRecordEnum.CANCEL_VENUE_RESERVATION.getMsg()); - consumeDetail.setConsumeAmount("+" + booking.getAmount()); - consumeDetail.setConsumeTime(booking.getTime()); - consumeDetail.setType(1); + ConsumeDetail consumeDetail1 = new ConsumeDetail(); + consumeDetail1.setConsumeName(RechargeRecordEnum.CANCEL_VENUE_RESERVATION.getMsg()); + consumeDetail1.setConsumeAmount("+" + booking.getAmount()); + consumeDetail1.setConsumeTime(booking.getTime()); + consumeDetail1.setType(1); + details.add(consumeDetail1); + ConsumeDetail consumeDetail2 = new ConsumeDetail(); + consumeDetail2.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg()); + consumeDetail2.setConsumeAmount("-" + booking.getAmount()); + consumeDetail2.setConsumeTime(booking.getTime1()); + consumeDetail2.setType(1); + details.add(consumeDetail2); + } - details.add(consumeDetail); +// details.add(consumeDetail); } } @@ -896,7 +931,8 @@ case 2: commodity.setGoodId(vicinityGood.getId()); CoursePackage coursePackage = cpageClient.queryCoursePackageById(vicinityGood.getCoursePackageId()); - commodity.setGoodImg(coursePackage.getCoverDrawing()); +// commodity.setGoodImg(coursePackage.getCoverDrawing()); + commodity.setGoodImg(vicinityGood.getCover()); commodity.setGoodName(coursePackage.getName()); commodity.setCondition(vicinityGood.getRedemptionMethod()); if (vicinityGood.getRedemptionMethod() == 1) { @@ -1202,8 +1238,10 @@ @Override @Transactional - public ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) { + public synchronized ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) { System.out.println("exchangeType:--->"); + + ReturnModel returnModel = new ReturnModel(); Long returnId = null; @@ -1270,6 +1308,9 @@ String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId()); + + + if (ToolUtil.isEmpty(merchandise)){ return ResultUtil.error("商品不存在"); } @@ -1298,17 +1339,27 @@ }else { goodsNums = exchangeType.getNums(); } + + TAppUser user = appUserService.getById(userIdFormRedis); + if (user.getIntegral()<merchandise.getIntegral().intValue()*goodsNums){ + return new ResultUtil<>(0,"当前用户积分不足"); + } + + AppUserGoodResp goodResp = new AppUserGoodResp(); goodResp.setAppUserId(userIdFormRedis); goodResp.setGoodId(merchandise.getId()); int count = mcClient.queryUserHasGoodsNums(goodResp); - if (ToolUtil.isNotEmpty(count) && count >= 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()){ return ResultUtil.error("超过发放数量"); } + + + for (int i = 0; i < goodsNums; i++) { // 新增积分商品兑换记录 @@ -1317,7 +1368,11 @@ pointsMerchandise.setUserId(userIdFormRedis); pointsMerchandise.setStatus(1); pointsMerchandise.setState(1); - pointsMerchandise.setPayStatus(1); + if (exchangeType.getExchangeType()==1) { + pointsMerchandise.setPayStatus(2); + }else { + pointsMerchandise.setPayStatus(1); + } if (merchandise.getUseScope() == 3){ if (exchangeType.getGoodsType() == 2){ CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId()); @@ -1369,7 +1424,17 @@ packagePayment.setStatus(1); packagePayment.setState(1); packagePayment.setCode(code); - paymentClient.savePaymentCoursePackage(packagePayment); +// paymentClient.savePaymentCoursePackage(packagePayment); + + OrderDto orderDto = new OrderDto(); + orderDto.setAppUserId(userIdFormRedis); + String joinedString = String.join(",", exchangeType.getStuIds().stream().map(Object::toString).collect(Collectors.toList())); + orderDto.setStuIds(joinedString); + orderDto.setClassId(merchandise.getCoursePackageId()); + orderDto.setClassHours(packagePayment.getClassHours()); + paymentClient.orderClass(orderDto); + + } break; case 4: @@ -1460,7 +1525,7 @@ UserIntegralChanges userIntegralChanges = new UserIntegralChanges(); userIntegralChanges.setAppUserId(appUserId); userIntegralChanges.setOldIntegral(appUser.getIntegral()); - userIntegralChanges.setType(2); + userIntegralChanges.setType(5); appUser.setIntegral(null == appUser.getIntegral() ? points : appUser.getIntegral() - points); userIntegralChanges.setNewIntegral(appUser.getIntegral()); userIntegralChanges.setInsertTime(new Date()); @@ -1476,7 +1541,7 @@ private ResultUtil AlipayPayment(BigDecimal cash, String code,Long returnId) { System.out.println("金额:"+cash); - ResultUtil alipay = payMoneyUtil.alipay("课包续费", "课包续费", String.valueOf(returnId), code, cash.toString(), + ResultUtil alipay = payMoneyUtil.alipay("优惠卷", "优惠卷", String.valueOf(returnId), code, cash.toString(), "/base/pointMer/exchangeGoodPaymentAliCallback"); if(alipay.getCode() == 200){ new Thread(new Runnable() { @@ -1511,20 +1576,24 @@ String tradeNo = resultUtil.getTradeNo(); String tradeStatus = resultUtil.getTradeStatus(); System.out.println("ssssss"+tradeStatus); - if("REFUND".equals(tradeStatus) || "NOTPAY".equals(tradeStatus) || "CLOSED".equals(tradeStatus) || "REVOKED".equals(tradeStatus) || "PAYERROR".equals(tradeStatus) || num == 10){ - mcClient.deletePaymentRecord(code); - break; - } + if("TRADE_SUCCESS".equals(tradeStatus)){ for (UserPointsMerchandise userPointsMerchandise : userPointsMerchandises) { userPointsMerchandise.setPayStatus(2); userPointsMerchandise.setOrderNumber(tradeNo); userPointsMerchandise.setPayType(2); + userPointsMerchandise.setInsertTime(null); + userPointsMerchandise.setUserId(null); mcClient.updateDetailsUserPointMercase(userPointsMerchandise); } moneyOut(tradeNo,tradeNo); break; } +// if("REFUND".equals(tradeStatus) || "NOTPAY".equals(tradeStatus) || "CLOSED".equals(tradeStatus) || "REVOKED".equals(tradeStatus) || "PAYERROR".equals(tradeStatus) || num == 10){ +// mcClient.deletePaymentRecord(code); +// break; +// } + if("WAIT_BUYER_PAY".equals(tradeStatus)){ num++; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java index c9fef86..273b33a 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java @@ -237,102 +237,106 @@ public List<PurchaseRecordVo> queryDeduRecordDetails(RecordTimeRequest timeRequest,Integer appUserId) { List<PurchaseRecordVo> purchaseRecordVoList = new ArrayList<>(); String time = timeRequest.getTime(); - 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.getStuSourseList(getStuSourseList); - purchaseRecordVoList.addAll(stuSourseList); + List<PurchaseRecordVo> record1 = sessionNameClient.getRecord(timeRequest); - 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 purchaseRecordVoList; +// +// 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; } @Override @@ -612,6 +616,11 @@ coursePackagePayment.setLaveClassHours(hour); coursePackagePayment.setOrderNumber(tradeNo); couPayClient.updatePaymentCoursePackage(coursePackagePayment); + + + + + break; } if("WAIT_BUYER_PAY".equals(tradeStatus)){ diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java index a68839c..4869ee0 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java @@ -89,6 +89,11 @@ detail.setConsumeName("观看教学视频"); detail.setDetailsType(2); break; + case 5: + detail.setConsumeAmount(""+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral())); + detail.setConsumeName("智慧球场开始游戏"); + detail.setDetailsType(1); + break; default: break; } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java index 2f50270..e0804f2 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java @@ -44,6 +44,8 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import io.swagger.models.auth.In; +import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -180,6 +182,35 @@ } + @Autowired + private UserCouponService userCouponService; + @ResponseBody + @PostMapping("/coupon/queryCouponByUid") + public List<Coupon> queryCouponByUid(@RequestBody Integer uid){ + try { + LocalDateTime currentTime = LocalDateTime.now(); + LocalDateTime oneMinuteAgo = currentTime.minusSeconds(20); + + 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()); + } + + if (ids.size()>0){ + List<Coupon> userId = couponService.list(new QueryWrapper<Coupon>().in("id",ids)); + return userId; + + } + + return null; + }catch (Exception e){ + e.printStackTrace(); + return null; + } + } + + /** * 我的券包列表 * @param req diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java index 4e7ea76..0f9268d 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/IntroduceRewardsController.java @@ -118,7 +118,7 @@ @PostMapping("/base/introduce/getGiftList") public Integer getGiftList(@RequestBody String cityCode){ - List<IntroduceRewards> list = idrService.list(new LambdaQueryWrapper<IntroduceRewards>().eq(IntroduceRewards::getCityCode,cityCode).ge(IntroduceRewards::getStartTime,new Date()).le(IntroduceRewards::getEndTime,new Date())); + List<IntroduceRewards> list = idrService.list(new LambdaQueryWrapper<IntroduceRewards>().eq(IntroduceRewards::getCityCode,cityCode).le(IntroduceRewards::getStartTime,new Date()).ge(IntroduceRewards::getEndTime,new Date())); int sum = list.stream().mapToInt(IntroduceRewards::getGiveClass).sum(); return sum; } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java index 3b04617..d1248d5 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java @@ -27,6 +27,7 @@ import com.dsh.activity.util.StrUtils; import com.dsh.activity.util.TokenUtil; import com.dsh.activity.util.ToolUtil; +import io.swagger.models.auth.In; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -271,11 +272,24 @@ @ResponseBody @PostMapping("/base/pointMerchars/convertGoods") - public List<IntegralCommodity> getConvertibleGoods(){ + public List<IntegralCommodity> getConvertibleGoods(@RequestBody Location location) throws Exception { List<IntegralCommodity> commodity = new ArrayList<>(); + + Map<String, String> geocode = gdMapGeocodingUtil.geocode(location.getLon(), location.getLat()); + String provinceCode = geocode.get("provinceCode"); + 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()); + } + + List<PointsMerchandise> merchandises = pmdsService.list(new QueryWrapper<PointsMerchandise>() .eq("state",1) - .eq("shelves",1) + .eq("shelves",1).in("id",cIds) .gt("endTime",new Date())); if (merchandises.size() > 0){ for (PointsMerchandise merchandise : merchandises) { @@ -558,10 +572,13 @@ // detailsVo.setGoodId(coursePackage.getId()); detailsVo.setGoodId(merchandise.getId()); - List<String> list1 = new ArrayList<>(); - list1.add(coursePackage.getCoverDrawing()); - list1.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","))); - detailsVo.setPics(list1); +// List<String> list1 = new ArrayList<>(); +// list1.add(coursePackage.getCoverDrawing()); +// list1.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ","))); + + String productImages = merchandise.getProductImages(); + String[] list1 = productImages.split(","); + detailsVo.setPics(Arrays.asList(list1)); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coursePackage.getCoverDrawing())) { return -1; // s1排在前面 @@ -751,12 +768,17 @@ List<ExchangeDetailsResponse> responses = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); List<UserPointsMerchandise> pointsMerchandises = upmseService.list(new QueryWrapper<UserPointsMerchandise>() - .eq("userId",appUserId )); + .eq("userId",appUserId ).eq("payStatus",2)); - List<UserCoupon> userCoupons = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", appUserId)); - - + List<Coupon> list1 = couponService.list(); + List<Integer> ids = new ArrayList<>(); + for (Coupon coupon : list1) { + if (coupon.getDistributionMethod()==1) { + ids.add(coupon.getId()); + } + } + List<UserCoupon> userCoupons = userCouponService.list(new QueryWrapper<UserCoupon>().eq("userId", appUserId).in("couponId",ids)); if (pointsMerchandises.size() > 0 ){ for (UserPointsMerchandise pointsMerchandise : pointsMerchandises) { PointsMerchandise merchandise = pmdsService.getById(pointsMerchandise.getPointsMerchandiseId()); @@ -910,8 +932,9 @@ if (userCoupons.size()>0){ for (UserCoupon userCoupon : userCoupons) { + Coupon c = couponService.getById(userCoupon.getCouponId()); - if (c==null){ + if (c==null|| c.getRedemptionMethod()==null){ continue; } @@ -1219,7 +1242,9 @@ @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); } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/Location.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/Location.java new file mode 100644 index 0000000..79a1a99 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/Location.java @@ -0,0 +1,9 @@ +package com.dsh.activity.entity; + +import lombok.Data; + +@Data +public class Location { + private String lon; + private String lat; +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java index 1399bb6..7cb4659 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java index a5a0b7d..255938d 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/BenefitsVideosMapper.java @@ -24,12 +24,12 @@ * 获取福利课程列表 * @param uid * @param classificationId - * @param pageSize - * @param pageNo + * @param offset + * @param limit * @return */ List<Map<String, Object>> queryBenefitsVideosList(@Param("uid") Integer uid, @Param("classificationId") Integer classificationId, - @Param("ids") List<Integer> ids, @Param("pageSize") Integer pageSize, @Param("pageNo") Integer pageNo); + @Param("ids") List<Integer> ids, @Param("offset") Integer offset, @Param("limit") Integer limit); List<BenefitsVideos> getBenefitVideoById(@Param("id")Integer id); diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java index a287320..7e01224 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/BenefitsVideosServiceImpl.java @@ -88,7 +88,7 @@ if (collect.size() > 0) { benefitsVideosQueryWrapper.notIn("id", collect); } - List<BenefitsVideos> list1 = this.list(benefitsVideosQueryWrapper.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) { @@ -155,8 +155,11 @@ List<Course> courses = courseClient.queryCourseByName(search); ids = courses.stream().map(Course::getId).collect(Collectors.toList()); } + int offset = (pageNo - 1) * pageSize; + int limit = pageSize; - List<Map<String, Object>> benefitsVideos = this.baseMapper.queryBenefitsVideosList(uid, classificationId, ids, pageSize, pageNo); + + List<Map<String, Object>> benefitsVideos = this.baseMapper.queryBenefitsVideosList(uid, classificationId, ids, offset, limit); List<BenefitsVideosListVo> lists = new ArrayList<>(); for (Map<String, Object> benefitsVideo : benefitsVideos) { Integer id = Integer.valueOf(benefitsVideo.get("id").toString()); diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java index ad19807..b66d838 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java @@ -104,12 +104,12 @@ if(price.compareTo(num1) < 0){ continue; } - couponListVo.setUseCondition("满" + num1 + "元可用"); + couponListVo.setUseCondition("满¥" + num1 + "元可用"); couponListVo.setFavorable(jsonObject.getString("deductionAmount")); } if (type == 2) {//代金券{"num1":1} JSONObject jsonObject = JSON.parseObject(content); - Double num1 = jsonObject.getDouble("deductionAmount"); + Double num1 = jsonObject.getDouble("conditionalAmount"); if(num1==null){ num1=0d; } diff --git a/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml b/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml index 1b6d0b3..055328d 100644 --- a/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml +++ b/cloud-server-activity/src/main/resources/mapper/BenefitsVideosMapper.xml @@ -39,6 +39,7 @@ </foreach> </if> order by insertTime desc) + LIMIT #{limit} OFFSET #{offset} </select> <select id="getBenefitVideoById" resultType="com.dsh.activity.entity.BenefitsVideos"> select * from t_benefits_videos where diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java index 3424582..c10e832 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java @@ -281,7 +281,11 @@ public ResultUtil<List<CompetitionListVo>> queryCompetitionList(String cityCode, String content, Integer registerCondition, String heat){ try { List<CompetitionListVo> competitionListVos = cttService.queryCompetitionList(cityCode, content, registerCondition, heat); - return ResultUtil.success(competitionListVos); + List<CompetitionListVo> filteredList = competitionListVos.stream() + .filter(vo -> vo.getStatus() == 1 || vo.getStatus() == 2) + .collect(Collectors.toList()); + + return ResultUtil.success(filteredList); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); @@ -306,6 +310,19 @@ return ResultUtil.tokenErr(); } CompetitionInfo competitionInfo = cttService.queryCompetitionInfo(uid, id, lon, lat); + + + String dateString = competitionInfo.getRegisterEndTime(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + Date date = sdf.parse(dateString); + if (new Date().after(date)){ + competitionInfo.setHasPass(1); + }else { + competitionInfo.setHasPass(0); + + } + + return ResultUtil.success(competitionInfo); }catch (Exception e){ e.printStackTrace(); @@ -345,7 +362,7 @@ return ResultUtil.tokenErr(); } if (byId.getRegisterCondition()==3){ - Integer counts = coursePackagePaymentClient.isHave(uid); + Integer counts = coursePackagePaymentClient.isHave(paymentCompetitionVo.getIds()); if (counts==0){ return new ResultUtil(0,"当前赛事仅限已购课学员报名"); } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java index fd5049b..3566d7d 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/ParticipantController.java @@ -1,5 +1,7 @@ package com.dsh.competition.controller; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.dsh.competition.entity.UserCompetition; import com.dsh.competition.feignclient.account.AppUserClient; import com.dsh.competition.feignclient.account.StudentClient; import com.dsh.competition.feignclient.account.model.AppUser; @@ -10,6 +12,7 @@ import com.dsh.competition.model.ParticipantVo; import com.dsh.competition.model.SaveParticipant; import com.dsh.competition.service.IParticipantService; +import com.dsh.competition.service.UserCompetitionService; import com.dsh.competition.util.ResultUtil; import com.dsh.competition.util.TokenUtil; import io.swagger.annotations.ApiImplicitParam; @@ -175,4 +178,14 @@ e.printStackTrace(); } } + + @Autowired + private UserCompetitionService userCompetitionService; + + + @ResponseBody + @PostMapping("/participant/counts") + public Integer counts(@RequestBody Integer stuId){ + return userCompetitionService.count(new QueryWrapper<UserCompetition>().eq("participantId",stuId)); + } } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java index 57365cc..04dd720 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/course/CoursePackagePaymentClient.java @@ -47,6 +47,5 @@ List<PayCourseRes> paymentCompetitionCourseList(String s); @PostMapping("/coursePackagePayment/isHave") - - Integer isHave(Integer uid); + Integer isHave(String ids); } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java index 9c34c67..9f9a335 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/mapper/CompetitionMapper.java @@ -39,4 +39,5 @@ void taskSetStatusEnd(); + Integer counts(@Param("id")Long id); } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionInfo.java b/cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionInfo.java index bd251ec..213c2c0 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionInfo.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/model/CompetitionInfo.java @@ -68,6 +68,11 @@ private Double payMoney; @ApiModelProperty("支付方式(1=微信,2=支付宝,3=玩湃币,4=课时)") private Integer payType; + @ApiModelProperty("是否需要实名(0=否,1=是)") + private Integer isReal; @ApiModelProperty("门店信息") private List<Map<String,Object>> storeInfos; + + @ApiModelProperty("是否已过报名时间0否,1是") + private Integer hasPass; } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java index ea7864c..25847f2 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/service/impl/CompetitionServiceImpl.java @@ -97,7 +97,10 @@ public List<CompetitionListVo> queryCompetitionList(String cityCode, String content, Integer registerCondition, String heat) throws Exception { List<CompetitionListVo> competitionListVos = this.baseMapper.queryCompetitionList(cityCode, content, registerCondition, heat); - + for (CompetitionListVo competitionListVo : competitionListVos) { + Integer counts = this.baseMapper.counts(competitionListVo.getId()); + competitionListVo.setHeat(competitionListVo.getHeat()+counts); + } return competitionListVos; @@ -124,7 +127,6 @@ // 2.0 ArrayList<Map<String,Object>> objects = new ArrayList<>(); if(null != competition.getStoreId()){ - String storeId = competition.getStoreId(); for (String s : storeId.split(",")) { HashMap<String, Object> map = new HashMap<>(); @@ -159,6 +161,7 @@ competitionInfo.setRegisterEndTime(sdf.format(competition.getRegisterEndTime())); competitionInfo.setStartTime(sdf.format(competition.getStartTime())); + competitionInfo.setIsReal(competition.getRealName()); competitionInfo.setEndTime(sdf.format(competition.getEndTime())); competitionInfo.setAge(competition.getStartAge() + "-" + competition.getEndAge()); competitionInfo.setProvince(competition.getProvince()); @@ -292,7 +295,7 @@ paymentCompetition.setPayOrderNo(""); paymentCompetitionService.updateById(paymentCompetition); - competition.setApplicantsNumber(competition.getApplicantsNumber() + 1); +// competition.setApplicantsNumber(competition.getApplicantsNumber() + 1); this.updateById(competition); } if(paymentCompetitionVo.getPayType() == 4){//课程 diff --git a/cloud-server-competition/src/main/resources/mapper/CompetitionMapper.xml b/cloud-server-competition/src/main/resources/mapper/CompetitionMapper.xml index 3ea04a5..ff7613c 100644 --- a/cloud-server-competition/src/main/resources/mapper/CompetitionMapper.xml +++ b/cloud-server-competition/src/main/resources/mapper/CompetitionMapper.xml @@ -13,8 +13,8 @@ aa.introduction, aa.registerEndTime, aa.age, - (aa.baseNumber+aa.userCompetitionCount) as heat, - aa.status + aa.status, + aa.heat from ( SELECT a.id, @@ -23,10 +23,10 @@ a.city AS cityName, a.registerCondition, a.introduction, + a.baseNumber as heat, DATE_FORMAT(a.registerEndTime, '%Y-%m-%d %H:%i') AS registerEndTime, CONCAT(a.startAge, '-', a.endAge) AS age, a.baseNumber, - COUNT(uc.competitionId) AS userCompetitionCount, CASE WHEN NOW() < a.startTime THEN 1 -- 未开始 WHEN now() between a.startTime and a.endTime THEN 2 -- 进行中 @@ -34,11 +34,8 @@ END AS status FROM t_competition a - LEFT JOIN - t_user_competition5 uc ON a.id = uc.competitionId WHERE a.auditStatus = 2 - AND a.`status` IN (1, 2) AND a.state = 1 <if test="null != cityCode and '' != cityCode"> and a.cityCode = #{cityCode} @@ -56,6 +53,10 @@ order by aa.heat ${heat} </if> </select> + <select id="counts" resultType="java.lang.Integer"> + select count(1) + from t_user_competition where competitionId = #{id} + </select> <update id="taskSetStatusStart"> diff --git a/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml b/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml index afed275..a5c2c8c 100644 --- a/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml +++ b/cloud-server-competition/src/main/resources/mapper/PaymentCompetitionMapper.xml @@ -37,7 +37,7 @@ SELECT DATE_FORMAT(insertTime, '%m-%d %H:%i')as `time`, amount from t_payment_competition - where payStatus = 2 and payType in (1,2) + where payStatus in (2,3) and payType in (1,2) <if test="null != monthStart and '' != monthStart and null != monthEnd and '' != monthEnd"> and DATE_FORMAT(payTime, '%Y-%m-%d %H:%i:%s') between #{monthStart} and #{monthEnd} </if> @@ -46,7 +46,7 @@ </if> </select> <select id="queryCancelDatas" resultType="com.dsh.competition.feignclient.model.BillingRequest"> - SELECT DATE_FORMAT(insertTime, '%m-%d %H:%i')as `time`, + SELECT DATE_FORMAT(refundTime, '%m-%d %H:%i')as `time`, amount from t_payment_competition where payStatus = 3 and payType in (1,2) diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java index e8bae42..a12c499 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CancelledClassesController.java @@ -1,10 +1,7 @@ package com.dsh.course.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.dsh.course.entity.CancelledClasses; -import com.dsh.course.entity.CoursePackageScheduling; -import com.dsh.course.entity.TCoursePackage; -import com.dsh.course.entity.TCoursePackagePayment; +import com.dsh.course.entity.*; import com.dsh.course.feignclient.account.AppUserClient; import com.dsh.course.feignclient.account.CoachClient; import com.dsh.course.feignclient.account.StudentClient; @@ -125,6 +122,9 @@ return result; } + + @Autowired + private CourseCounsumService courseCounsumService; /** * 添加数据 * @param cancelledClasses @@ -133,6 +133,15 @@ @PostMapping("/cancelledClasses/addCancelledClasses") public void addCancelledClasses(@RequestBody CancelledClasses cancelledClasses){ cancelledClassesService.save(cancelledClasses); + + TCoursePackagePayment byId = coursePackagePaymentService.getById(cancelledClasses.getCoursePackagePaymentId()); + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(byId.getId()); + courseCounsum.setChangeType(0); + courseCounsum.setNum(byId.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("消课"); + courseCounsumService.save(courseCounsum); } } diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java index 9e1ff4b..44e1514 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.dsh.course.entity.CoursePackagePaymentConfig; -import com.dsh.course.entity.TCoursePackage; -import com.dsh.course.entity.TCoursePackagePayment; -import com.dsh.course.entity.TCoursePackageType; +import com.dsh.course.entity.*; import com.dsh.course.feignclient.model.StoreOfCourseVo; import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; @@ -14,10 +11,7 @@ import com.dsh.course.model.QueryExamineCoursePackageLists; import com.dsh.course.model.vo.response.Details; import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse; -import com.dsh.course.service.ICoursePackagePaymentConfigService; -import com.dsh.course.service.TCoursePackageDiscountService; -import com.dsh.course.service.TCoursePackagePaymentService; -import com.dsh.course.service.TCoursePackageService; +import com.dsh.course.service.*; import com.dsh.course.util.PageFactory; import com.dsh.course.util.ResultUtil; import com.dsh.course.util.TokenUtil; @@ -129,6 +123,27 @@ return packagePaymentService.listStoreId(code); } + +@Autowired +private CoursePackageStudentService coursePackageStudentService; + + @Autowired + private UserVideoDetailsService userVideoDetailsService; + + + @ResponseBody + @PostMapping("/base/coursePackage/counts") + public Integer counts(@RequestBody Integer stuId){ + return coursePackageStudentService.count(new QueryWrapper<CoursePackageStudent>().eq("signInOrNot",1).eq("studentId",stuId)); + + } + + @ResponseBody + @PostMapping("/base/coursePackage/counts1") + public Integer counts1(@RequestBody Integer stuId){ + return userVideoDetailsService.count(new QueryWrapper<UserVideoDetails>().eq("appUserId",stuId)) ; + + } /** * 根据id获取课包 */ @@ -210,6 +225,7 @@ courseVo.setCourseId(coursePackage.getId()); courseVo.setName(coursePackage.getName()+"(" + store.getName() + ")"); courseVo.setClassStartTime(coursePackage.getClassStartTime() +"-"+ coursePackage.getClassEndTime()); + courseVo.setCoverDrawing(coursePackage.getCoverDrawing()); courseVo.setApplicantsNumber(count); List<CoursePackagePaymentConfig> list1 = icppconfigService.list(new QueryWrapper<CoursePackagePaymentConfig>() .eq("coursePackageId",coursePackage.getId())); diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java index 8834457..7184451 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java @@ -430,7 +430,7 @@ Student student = studentClient.queryStudentById(stuId); List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() .eq("appUserId",student.getAppUserId()) - .eq("studentId",stuId)); + .eq("studentId",stuId).eq("payStatus",2)); if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { @@ -570,6 +570,62 @@ } + @Autowired + private CourseCounsumService courseCounsumService; + + @Autowired + private TCoursePackagePaymentService coursePackagePaymentService; + + @PostMapping("/base/coursePack/getRecord") + public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) { + List<TCoursePackagePayment> list = new ArrayList<>(); + Integer [] changes = {1,0}; + if (recordTimeRequest.getType()==null) { + list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); + }else { + + list = coursePackagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime")); + + } + List<Long> ids = new ArrayList<>(); + for (TCoursePackagePayment coursePackagePayment : list) { + ids.add(coursePackagePayment.getId()); + } + + + + QueryWrapper<CourseCounsum> in = new QueryWrapper<CourseCounsum>().in("paymentId", ids).in("changeType", changes); + + if (recordTimeRequest.getType()!=null){ + if (recordTimeRequest.getType()==2){ + recordTimeRequest.setType(0); + } + in.eq("changeType",recordTimeRequest.getType()); + } + List<CourseCounsum> paymentId = courseCounsumService.list(in); + List<PurchaseRecordVo> recordVos =new ArrayList<>(); + for (CourseCounsum courseCounsum : paymentId) { + PurchaseRecordVo purchaseRecordVo = new PurchaseRecordVo(); + if (courseCounsum.getChangeType() == 0) { + purchaseRecordVo.setPurchaseAmount("-" + courseCounsum.getNum()); + purchaseRecordVo.setPurchaseType(courseCounsum.getReason()); + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm"); + String formattedDate = sdf.format(courseCounsum.getInsertTime()); + purchaseRecordVo.setPurchaseTime(formattedDate); + } else { + purchaseRecordVo.setPurchaseAmount("+" + courseCounsum.getNum()); + purchaseRecordVo.setPurchaseType(courseCounsum.getReason()); + SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm"); + String formattedDate = sdf.format(courseCounsum.getInsertTime()); + purchaseRecordVo.setPurchaseTime(formattedDate); + } + recordVos.add(purchaseRecordVo); + } + + return recordVos; + } + + @PostMapping("/base/coursePack/stuOfCourses") public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody GetStuOfCoursesDetails getStuOfCoursesDetails){ @@ -695,7 +751,7 @@ @ResponseBody public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId){ List<CouponPaymentVo> paymentVos = new ArrayList<>(); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm"); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() .eq("appUserId", appUserId) .eq("payType", 3) @@ -746,7 +802,11 @@ baseVo.setName(coursePackage.getName()); list.add(baseVo); }); - return ResultUtil.success(list); + + Set<BaseVo> set = new HashSet<>(list); + List<BaseVo> back = new ArrayList<>(set); + + return ResultUtil.success(back); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); @@ -797,8 +857,16 @@ List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId")); List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs); + if (search.getSearch()!=null) { + List<AppUserVideoResponse> filteredList = new ArrayList<>(); + for (AppUserVideoResponse response : coursePackageSchedulings1) { + if (response.getVideoName().contains(search.getSearch())) { + filteredList.add(response); + } + } + return ResultUtil.success(filteredList); - + } return ResultUtil.success(coursePackageSchedulings1); @@ -1127,6 +1195,16 @@ coursePackagePayment.setAppUserId(null); packagePaymentService.updateById(coursePackagePayment); + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePayment.getId()); + courseCounsum.setChangeType(0); + courseCounsum.setNum(classHour); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("报名赛事"); + courseCounsumService.save(courseCounsum); + + + // coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().eq("courseId", coursePackagePayment.getCoursePackageId())); @@ -1139,47 +1217,30 @@ - Student student = studentClient.queryStudentById(coursePackagePayment.getStudentId()); +// Student student = studentClient.queryStudentById(coursePackagePayment.getStudentId()); TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId()); String classWeeks = tCoursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); - List<TCoursePackagePayment> pays = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId())); + TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId())); - - for (TCoursePackagePayment pay : pays) { - - - List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", pay.getStudentId()).eq("coursePackageId", pay.getCoursePackageId())); - List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); +// List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", pay.getStudentId()).eq("coursePackageId", pay.getCoursePackageId())); +// List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); //拿到最后一天的排课记录 - CoursePackageScheduling cs = null; - if (collect1.size()>0) { - cs = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().in("id", collect1).orderByDesc("classDate").last("limit 1")); - - } +// CoursePackageScheduling cs = null; +// if (collect1.size()>0) { +// cs = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().in("id", collect1).orderByDesc("classDate").last("limit 1")); // -// Calendar calendar = Calendar.getInstance(); -// Date currentDate = calendar.getTime(); -// calendar.add(Calendar.DAY_OF_MONTH, -1); -// Date today = calendar.getTime(); +// } Date today = new Date(); - - //判断最后一天是否超过当前日期 - if (cs==null||cs.getClassDate().before(new Date())){ - }else { - today = cs.getClassDate(); - } Integer laveClassHours = pay.getLaveClassHours(); Integer codeTime = tCoursePackage.getCodeTime(); Integer can = laveClassHours/codeTime; int count = 0; - - String[] split = tCoursePackage.getClassStartTime().split(","); String[] split1 = tCoursePackage.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); @@ -1219,7 +1280,7 @@ } } - } +// } @@ -1456,6 +1517,14 @@ return objects; } + @ResponseBody + @PostMapping("/coursePackagePayment/isHave") + public Integer isHave(@RequestBody String ids){ + String[] split = ids.split(","); + return coursePackagePaymentService.count(new QueryWrapper<TCoursePackagePayment>().in("studentId",split)); + + } + /** * 课包续费玩湃币支付 @@ -1495,6 +1564,15 @@ tCourseInfoRecord.setType(1); tCourseInfoRecord.setNum(paymentConfig.getClassHours()); auClitn.addCourseInfoRecord(tCourseInfoRecord); + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(packagePayment.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(packagePayment.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("购买课包"); + courseCounsumService.save(courseCounsum); + } catch (Exception e) { return 4; } @@ -1534,6 +1612,16 @@ tCourseInfoRecord.setType(1); tCourseInfoRecord.setTime(new Date()); id = appUserClient.addCourseInfoRecord(tCourseInfoRecord); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(packagePayment.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(packagePayment.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("续课"); + courseCounsumService.save(courseCounsum); + } return id; } @@ -1542,6 +1630,248 @@ public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment){ return packagePaymentService.save(packagePayment); + } + + + @PostMapping("/base/coursePack/orderClass") + public void orderClass(@RequestBody OrderDto orderDto) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); + String[] split = orderDto.getStuIds().split(","); + for (String s : split) { + TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId",orderDto.getClassId())); + + + + if (coursePackagePaymentServiceOne==null) { + TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); + coursePackagePayment.setCode(code); + coursePackagePayment.setAppUserId(orderDto.getAppUserId()); + coursePackagePayment.setStudentId(Integer.valueOf(s)); + coursePackagePayment.setCoursePackageId(orderDto.getClassId()); + coursePackagePayment.setPayType(4); + coursePackagePayment.setClassHours(orderDto.getClassHours()); + coursePackagePayment.setTotalClassHours(orderDto.getClassHours()); + coursePackagePayment.setLaveClassHours(orderDto.getClassHours()); + coursePackagePayment.setAbsencesNumber(0); + coursePackagePayment.setPayUserType(1); + coursePackagePayment.setPayStatus(2); + coursePackagePayment.setPayUserId(orderDto.getAppUserId()); + coursePackagePayment.setStatus(1); + coursePackagePayment.setState(1); + coursePackagePayment.setInsertTime(new Date()); + coursePackagePaymentService.save(coursePackagePayment); + Integer sId = null; + Student student = studentClient.queryDefaultStudent(orderDto.getAppUserId()); + if (student != null) { + sId = student.getId(); + } + addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment.getId()); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePayment.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(orderDto.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("积分兑换"); + courseCounsumService.save(courseCounsum); + + }else { + coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+orderDto.getClassHours()); + coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+orderDto.getClassHours()); + coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+orderDto.getClassHours()); + coursePackagePaymentServiceOne.setAppUserId(null); + coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); + + Integer sId = null; + Student student = studentClient.queryDefaultStudent(orderDto.getAppUserId()); + if (student != null) { + sId = student.getId(); + } + addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne.getId()); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(orderDto.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("积分兑换"); + courseCounsumService.save(courseCounsum); + + + } + + } + + } + + + public static Date[] generateDateArray1(Date startDate, Date endDate) { + List<Date> dateList = new ArrayList<>(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startDate); + + while (!calendar.getTime().after(endDate)) { + Date currentDate = calendar.getTime(); + dateList.add(currentDate); + calendar.add(Calendar.DAY_OF_MONTH, 1); + } + + return dateList.toArray(new Date[0]); + } + + @Autowired + private TCoursePackageService coursePackageService; + private void addPackageStudent(Integer courseId, Integer userId, Integer sId,Long paymentId) throws ParseException { + // 课包 + TCoursePackage tCoursePackage = coursePackageService.getById(courseId); + + if (tCoursePackage.getType()==1) { + String classWeeks = tCoursePackage.getClassWeeks(); + + List<Integer> week = week(classWeeks); + + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + //查出当前用户当前学员当前课包最后一天的排课数据 + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId)); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size() > 0) { + coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId)); + } + Date today = new Date(); + TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId); + Integer laveClassHours = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + int count = 0; + // 本周周几 + Date[] dates = generateDateArray(14, today); + if (tCoursePackage.getType() == 1) { + can = laveClassHours / codeTime; + } + if (tCoursePackage.getType() == 2) { + Date startDate = tCoursePackage.getStartTime(); + Date endDate = tCoursePackage.getEndTime(); + dates = generateDateArray1(startDate, endDate); + can = 999; + } + for (Date date : dates) { + if (count == can) { + break; + } + int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date); + if (week.contains(wei)) { + for (int i1 = 0; i1 < split.length; i1++) { + if (count == can) { + break; + } + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.save(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(paymentId); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + coursePackageStudentService.save(student1); + count++; + } + } + } + + }else if (tCoursePackage.getType()==2){ + String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + + Date today = new Date(); + + Date startTime = tCoursePackage.getStartTime(); + Date endTime = tCoursePackage.getEndTime(); + LocalDate startDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate endDate = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + Period period = Period.between(startDate, endDate); + int days = period.getDays() + 1; + Integer can =999; + int count = 0; + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startTime); + calendar.add(Calendar.DAY_OF_MONTH, -1); + + TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId); + + + Date[] dates = generateDateArray(days,calendar.getTime()); + for (Date date : dates) { + if (count==can){ + break; + } + int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date)-1; + if (wei == 0){ + wei =7; + } + if (week.contains(wei)){ + for (int i1 = 0; i1 < split.length; i1++) { + if (count==can){ + break; + } + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.save(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(pay.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + coursePackageStudentService.save(student1); + count++; + } + } + } + } + + + // 2.0 + TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); + tCourseInfoRecord.setUserId(userId); + tCourseInfoRecord.setCourseId(courseId); + tCourseInfoRecord.setName("报名运动营"); + tCourseInfoRecord.setNum(tCoursePackage.getNeedNum()); + tCourseInfoRecord.setTime(new Date()); + tCourseInfoRecord.setType(2); + appUserClient.addCourseInfoRecord(tCourseInfoRecord); + + } @ResponseBody @@ -1732,6 +2062,21 @@ } } + + + @ResponseBody + @PostMapping("/base/coursePack/getConsumes") + List<CourseCounsum> getConsumes(@RequestBody BillingDataRequestVo requestVo) { + Integer[] integers = {2,3}; + QueryWrapper<CourseCounsum> courseCounsumQueryWrapper = new QueryWrapper<CourseCounsum>().in("changeType",integers).eq("appUserId",requestVo.getAppUserId()); + if (requestVo.getMonthEnd()!=null){ + courseCounsumQueryWrapper.ge("insertTime",requestVo.getMonthStart()); + courseCounsumQueryWrapper.le("insertTime",requestVo.getMonthEnd()); + } + return courseCounsumService.list(courseCounsumQueryWrapper); + + } + @ResponseBody @PostMapping("/base/coursePack/weeksOfCourseDetailsList") HashMap<String, Object> weeksOfCourseDetailsList(@RequestBody CourseDetailReq courseDetailReq){ diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java index e1074c2..dd7ae8e 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageSchedulingController.java @@ -1,5 +1,7 @@ package com.dsh.course.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.entity.CoursePackageScheduling; import com.dsh.course.model.QueryCoursePackageSchedulingList; @@ -8,6 +10,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; import java.util.Map; /** @@ -49,6 +54,18 @@ } + @ResponseBody + @PostMapping("/coursePackageScheduling/queryCoursePackageSchedulingsById") + public List<CoursePackageScheduling> queryCoursePackageSchedulingsById(@RequestBody Long id){ + CoursePackageScheduling byId = coursePackageSchedulingService.getById(id); + Date date = new Date(); // 假设你有一个 Date 对象 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + String formattedDate = sdf.format(byId.getClassDate()); + List<CoursePackageScheduling> list = coursePackageSchedulingService.list(new LambdaQueryWrapper<CoursePackageScheduling>().eq(CoursePackageScheduling::getCoursePackageId,byId.getCoursePackageId()).eq(CoursePackageScheduling::getClassDate,formattedDate)); + return list; + } + + /** * 编辑数据 * @param coursePackageScheduling diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java index b277725..4978443 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java @@ -12,6 +12,7 @@ import com.dsh.course.feignclient.account.StudentClient; import com.dsh.course.feignclient.account.model.Student; import com.dsh.course.mapper.CoursePackageSchedulingMapper; +import com.dsh.course.mapper.CoursePackageStudentMapper; import com.dsh.course.model.dto.ToClassDto; import com.dsh.course.service.*; import com.dsh.course.util.ResultUtil; @@ -28,6 +29,9 @@ import javax.swing.text.html.parser.Entity; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.Period; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -44,6 +48,8 @@ private CourseCounsumService counsumService; @Autowired private TCoursePackageService coursePackageService; + @Resource + private CoursePackageStudentMapper cpsMapper; //获取退费记录 @RequestMapping("/getRefund") @ResponseBody @@ -325,9 +331,9 @@ @ResponseBody public void zeroClass(@RequestParam("id")Integer id){ MoneyBack byId = moneyBackService.getById(id); - String[] split = byId.getIds().split(","); - System.out.println("========split===>"+split); - List<TCoursePackagePayment> id1 = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", split)); + String[] split2 = byId.getIds().split(","); + System.out.println("========split===>"+split2); + List<TCoursePackagePayment> id1 = paymentService.list(new QueryWrapper<TCoursePackagePayment>().in("id", split2)); for (TCoursePackagePayment o :id1){ CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setNum(o.getLaveClassHours()); @@ -342,6 +348,25 @@ o.setStatus(2); o.setAppUserId(null); + + + TCoursePackage tCoursePackage = packageService.getById(o.getCoursePackageId()); + String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + // 本周周几 + + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId",o.getStudentId()).eq("coursePackageId", o.getCoursePackageId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", o.getStudentId()).eq("coursePackageId", o.getCoursePackageId())); + } @@ -390,7 +415,7 @@ //课程转移 @RequestMapping("/toClass") @ResponseBody - public void toClass(@RequestBody ToClassDto toClassDto){ + public void toClass(@RequestBody ToClassDto toClassDto) throws ParseException { System.out.println("===========到达getSelect======="+toClassDto); TCoursePackagePayment orinPay = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", toClassDto.getId())); TCoursePackagePayment studentPay = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId",orinPay.getCoursePackageId())); @@ -402,10 +427,18 @@ orinPay.setTotalClassHours(0); orinPay.setLaveClassHours(0); - orinPay.setStatus(5); + orinPay.setStatus(1); orinPay.setAppUserId(null); paymentService.updateById(orinPay); + //删除orin的排课记录 + List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId())); + List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect1.size()>0){ + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect1)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + } CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setInsertTime(new Date()); if (orinPay.getAppUserId()!=studentPay.getAppUserId()){ @@ -429,11 +462,86 @@ CourseCounsum courseCounsum1 = new CourseCounsum(); courseCounsum1.setInsertTime(new Date()); - courseCounsum1.setReason("转课"); + if (orinPay.getAppUserId()!=studentPay.getAppUserId()){ + courseCounsum1.setReason("赠课"); + }else { courseCounsum1.setReason("转课"); + } courseCounsum1.setNum(laveClassHours); courseCounsum1.setChangeType(1); courseCounsum1.setPaymentId(studentPay.getId()); counsumService.save(courseCounsum1); + + + //排课 + TCoursePackage tCoursePackage = packageService.getById(studentPay.getCoursePackageId()); + String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + // 本周周几 + + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + } + + Student student = studentClient.queryStudentById(toClassDto.getToStudentId()); + + Date today = new Date(); + + + + + TCoursePackagePayment pay = coursePackagePaymentService.getById(studentPay.getId()); + Integer laveClassHours2 = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + int count = 0; + // 本周周几 +// int i = DateUtil.dayOfWeek(new Date())-1; + + Date[] dates = generateDateArray(14,today); + can = laveClassHours2/codeTime; + + for (Date date : dates) { + if (count==can){ + break; + } + int wei = DateUtil.dayOfWeek(date); + if (week.contains(wei)){ + for (int i1 = 0; i1 < split.length; i1++) { + if (count==can){ + break; + } + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(student.getAppUserId()); + student1.setStudentId(student.getId()); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(studentPay.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + count++; + } + } + } + }else { @@ -457,10 +565,19 @@ orinPay.setTotalClassHours(0); orinPay.setLaveClassHours(0); orinPay.setAppUserId(null); - orinPay.setStatus(6); + orinPay.setStatus(1); paymentService.updateById(orinPay); + + //删除orin的排课记录 + List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId())); + List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect1.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect1)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + } CourseCounsum courseCounsum = new CourseCounsum(); @@ -483,6 +600,77 @@ courseCounsum1.setPaymentId(to.getId()); counsumService.save(courseCounsum); + + + TCoursePackage tCoursePackage = packageService.getById(studentPay.getCoursePackageId()); + String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); + + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + // 本周周几 + + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId())); + } + + + + Date today = new Date(); + + + + + TCoursePackagePayment pay = coursePackagePaymentService.getById(studentPay.getId()); + Integer laveClassHours2 = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + int count = 0; + // 本周周几 +// int i = DateUtil.dayOfWeek(new Date())-1; + + Date[] dates = generateDateArray(14,today); + can = laveClassHours2/codeTime; + + for (Date date : dates) { + if (count==can){ + break; + } + int wei = DateUtil.dayOfWeek(date); + if (week.contains(wei)){ + for (int i1 = 0; i1 < split.length; i1++) { + if (count==can){ + break; + } + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(student.getAppUserId()); + student1.setStudentId(student.getId()); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(studentPay.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + count++; + } + } + } + } @@ -490,6 +678,8 @@ @Resource private StudentClient studentClient; + @Autowired + private CourseCounsumService courseCounsumService; @RequestMapping(value = "/toHoli",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") @ResponseBody public String toHoli(@RequestBody ToHoliDto toHoliDto) throws ParseException { @@ -519,7 +709,7 @@ payment.setLaveClassHours(laveClassHoursnew); payment.setTotalClassHours(totalClassHoursnew); payment.setAppUserId(null); - payment.setStatus(3); +// payment.setStatus(3); paymentService.updateById(payment); @@ -538,105 +728,73 @@ holi.setPayStatus(2); paymentService.save(holi); + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(holi.getId()); + courseCounsum.setChangeType(0); + courseCounsum.setNum(classNum); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("报名假期班"); + courseCounsumService.save(courseCounsum); + + //排假期课 + TCoursePackage tCoursePackage = packageService.getById(toHoliDto.getClassId()); String classWeeks = tCoursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); + Date today = new Date(); + + Date startTime = tCoursePackage.getStartTime(); + Date endTime = tCoursePackage.getEndTime(); + LocalDate startDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate endDate = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + Period period = Period.between(startDate, endDate); + int days = period.getDays() + 1; + Integer can =999; + int count = 0; String[] split = tCoursePackage.getClassStartTime().split(","); String[] split1 = tCoursePackage.getClassEndTime().split(","); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - // 本周周几 - int i = DateUtil.dayOfWeek(new Date())-1; - for (Integer integer : week) { - if(integer<i){ - // 找下一周的时间 - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7-(i-integer)); - Date time = instance.getTime(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startTime); + calendar.add(Calendar.DAY_OF_MONTH, -1); + + Date[] dates = generateDateArray(days,calendar.getTime()); + for (Date date : dates) { + if (count==can){ + break; + } + int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date)-1; + if (wei == 0){ + wei =7; + } + if (week.contains(wei)){ for (int i1 = 0; i1 < split.length; i1++) { - - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - - } - - }else if(integer>i) { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,integer-i); - Date time1 = instance.getTime(); - List<Date> list = new ArrayList<>(); - list.add(time1); - instance.add(Calendar.DATE,7); - Date time2 = instance.getTime(); - list.add(time2); - for (Date time : list) { - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); + if (count==can){ + break; } - } - - }else { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7); - Date time = instance.getTime(); - - for (int i1 = 0; i1 < split.length; i1++) { CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(student.getAppUserId()); student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackageId(toHoliDto.getClassId()); student1.setCoursePackagePaymentId(holi.getId()); student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); student1.setInsertTime(new Date()); studentService.save(student1); + count++; } } } @@ -657,6 +815,23 @@ + } + + + @Autowired + private TCoursePackagePaymentService coursePackagePaymentService; + public static Date[] generateDateArray(int numDays,Date date) { +// LocalDate tomorrow = LocalDate.now().plusDays(1); + LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1); + + Date[] dates = new Date[numDays]; + + for (int i = 0; i < numDays; i++) { + LocalDate currentDate = tomorrow.plusDays(i); + dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + return dates; } private List<Integer> week(String week){ String[] split = week.split(";"); @@ -689,6 +864,9 @@ return integers; } + + @Autowired + private CoursePackageStudentService coursePackageStudentService; @RequestMapping(value = "/toTrans",produces = MediaType.APPLICATION_JSON_UTF8_VALUE, consumes = "application/json;charset=UTF-8") @ResponseBody public String toTrans(@RequestBody ToHoliDto toHoliDto) throws ParseException { @@ -725,18 +903,38 @@ //新增课时 - TCoursePackagePayment holi = new TCoursePackagePayment(); - holi.setAppUserId(student.getAppUserId()); - holi.setStudentId(student.getId()); - holi.setCoursePackageId(toHoliDto.getClassId()); - holi.setTotalClassHours(laveClassHours); - holi.setLaveClassHours(laveClassHours); - holi.setState(1); - holi.setInsertTime(new Date()); - holi.setPayStatus(2); - paymentService.save(holi); + TCoursePackagePayment one = paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); + TCoursePackagePayment holi = new TCoursePackagePayment(); + if (one==null){ + holi.setAppUserId(student.getAppUserId()); + holi.setStudentId(student.getId()); + holi.setCoursePackageId(toHoliDto.getClassId()); + holi.setTotalClassHours(laveClassHours); + holi.setLaveClassHours(laveClassHours); + holi.setState(1); + holi.setInsertTime(new Date()); + holi.setPayStatus(2); + holi.setStatus(1); + paymentService.save(holi); + + }else{ + one.setTotalClassHours(one.getTotalClassHours()+laveClassHours); + one.setLaveClassHours(one.getLaveClassHours()+laveClassHours); + one.setAppUserId(null); + paymentService.updateById(one); + holi=one; + } System.out.println("保存成功=============》="+holi); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(holi.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(laveClassHours); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("换课"); + courseCounsumService.save(courseCounsum); @@ -749,86 +947,53 @@ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // 本周周几 - int i = DateUtil.dayOfWeek(new Date())-1; - for (Integer integer : week) { - if(integer<i){ - // 找下一周的时间 - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7-(i-integer)); - Date time = instance.getTime(); + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + if (collect.size()>0) { + coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", student.getId()).eq("coursePackageId", toHoliDto.getClassId())); + } + + + Date today = new Date(); + + + + + TCoursePackagePayment pay = coursePackagePaymentService.getById(holi.getId()); + Integer laveClassHours1 = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + + + int count = 0; + + // 本周周几 +// int i = DateUtil.dayOfWeek(new Date())-1; + + Date[] dates = generateDateArray(14,today); + can = laveClassHours1/codeTime; + + for (Date date : dates) { + if (count==can){ + break; + } + int wei = DateUtil.dayOfWeek(date); + if (week.contains(wei)){ for (int i1 = 0; i1 < split.length; i1++) { - - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - - } - - }else if(integer>i) { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,integer-i); - Date time1 = instance.getTime(); - List<Date> list = new ArrayList<>(); - list.add(time1); - instance.add(Calendar.DATE,7); - Date time2 = instance.getTime(); - list.add(time2); - for (Date time : list) { - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(holi.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); + if (count==can){ + break; } - } - - }else { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE,7); - Date time = instance.getTime(); - - for (int i1 = 0; i1 < split.length; i1++) { CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.insert(coursePackageScheduling); - + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.insert(coursePackageScheduling); CoursePackageStudent student1 = new CoursePackageStudent(); student1.setAppUserId(student.getAppUserId()); student1.setStudentId(student.getId()); @@ -838,11 +1003,11 @@ student1.setSignInOrNot(1); student1.setReservationStatus(1); student1.setInsertTime(new Date()); - studentService.save(student1); + cpsMapper.insert(student1); + count++; } } } - diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/CourseCounsum.java b/cloud-server-course/src/main/java/com/dsh/course/entity/CourseCounsum.java index 0725d67..9f9e37e 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/entity/CourseCounsum.java +++ b/cloud-server-course/src/main/java/com/dsh/course/entity/CourseCounsum.java @@ -25,4 +25,6 @@ Long paymentId; @TableField("insertTime") Date insertTime; + @TableField("appUserId") + Integer appUserId; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/OrderDto.java b/cloud-server-course/src/main/java/com/dsh/course/entity/OrderDto.java new file mode 100644 index 0000000..69b6d2e --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/entity/OrderDto.java @@ -0,0 +1,14 @@ +package com.dsh.course.entity; + +import lombok.Data; + +@Data +public class OrderDto { + private String stuIds; + + private Integer appUserId; + + private Integer classId; + + private Integer classHours; +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/RecordTimeRequest.java b/cloud-server-course/src/main/java/com/dsh/course/entity/RecordTimeRequest.java new file mode 100644 index 0000000..33f6f42 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/entity/RecordTimeRequest.java @@ -0,0 +1,20 @@ +package com.dsh.course.entity; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class RecordTimeRequest { + + @ApiModelProperty(value = "学员id", dataType = "int", required = true) + private Integer stuId; + + @ApiModelProperty(value = "结束时间 格式:yyyy-MM", dataType = "string") + private String time; + + @ApiModelProperty(value = "类型:1增加 2扣减 ", dataType = "int") + private Integer type; + + @ApiModelProperty(value = "课包id", dataType = "int") + private Integer lessionId; +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java index 133f103..4de0e27 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/activity/CouponClient.java @@ -30,5 +30,6 @@ @PostMapping("/base/userConpon/getCoupons") List<Coupon> getCoupons(String couponIds); - + @PostMapping("/coupon/queryCouponByUid") + List<Coupon> queryCouponByUid(Integer uid); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java index 2884223..d76c9cc 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java +++ b/cloud-server-course/src/main/java/com/dsh/course/model/vo/response/CourseDetailsResponse.java @@ -42,4 +42,8 @@ @ApiModelProperty("详情图片") private String detailDrawing; + @ApiModelProperty("假期有效期") + private String time; + @ApiModelProperty("1常规 2假期 3体验") + private Integer type; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java index 9d43184..b88f008 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java @@ -146,9 +146,9 @@ for (AppUserVideoResponse appUserVideoRespon : appUserVideoResponses) { if (appUserVideoRespon.getVideoId() != null) { if (this.baseMapper.isHave(appUserVideoRespon.getVideoId()) > 0) { - appUserVideoRespon.setStudyStatus(1); + appUserVideoRespon.setStudyStatus(2); } else { - appUserVideoRespon.setStudyStatus(0); + appUserVideoRespon.setStudyStatus(1); } } } diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java index ebb3217..15115b8 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java @@ -69,7 +69,7 @@ List<Details> list = new ArrayList<>(); QueryWrapper<TCoursePackageDiscount> tCoursePackageDiscountQueryWrapper = new QueryWrapper<>(); - tCoursePackageDiscountQueryWrapper.eq("auditStatus", 2); + tCoursePackageDiscountQueryWrapper.eq("auditStatus", 2).eq("status",1); List<TCoursePackageDiscount> tCoursePackageDiscounts = new ArrayList<>(); int weekStr = LocalDateTimeUtils.getWeekStr(); if (null == discountType || discountType == 1) { diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java index 96e9b12..bbf7b33 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java @@ -35,9 +35,7 @@ import com.dsh.course.model.vo.RegisterCourseVo; import com.dsh.course.model.vo.request.*; import com.dsh.course.model.vo.response.*; -import com.dsh.course.service.CoursePackageSchedulingService; -import com.dsh.course.service.ICoursePackageSchedulingService; -import com.dsh.course.service.TCoursePackagePaymentService; +import com.dsh.course.service.*; import com.dsh.course.util.*; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -56,6 +54,8 @@ import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -320,28 +320,35 @@ } return responses; } - + @Autowired + private TCourseService courseService; @Override public CourseOfVideoResponse queryVideoDetails(CourseWithDetailsRequest detailsRequest,Integer appUserId) { CourseOfVideoResponse response = new CourseOfVideoResponse(); - BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(detailsRequest.getVideoId()); +// BenefitsVideos videosWithIds = bfvoClient.getVideosWithIds(detailsRequest.getVideoId()); + TCourse byId = courseService.getById(detailsRequest.getVideoId()); TCoursePackage coursePackage = tcpmapper.selectById(detailsRequest.getCoursePackageId()); - if (null != videosWithIds && null != coursePackage){ + + if (null != coursePackage){ response.setCoursePackageId(coursePackage.getId()); - response.setVideoId(videosWithIds.getId()); - response.setVideoURL(videosWithIds.getVideos()); - response.setVideoName(videosWithIds.getName()); - response.setIntegral(videosWithIds.getIntegral()); + response.setVideoId(byId.getId()); + response.setVideoURL(byId.getCourseVideo()); + response.setVideoName(coursePackage.getName()); +// response.setIntegral(byId.getIntegral()); UserVideoDetails userVideoDetails = uvdmapper.selectOne(new QueryWrapper<UserVideoDetails>() .eq("appUserId",appUserId ) .eq("coursePackageId",coursePackage.getId()) - .eq("courseId",videosWithIds.getId())); + .eq("courseId",detailsRequest.getVideoId())); - response.setStudyStatus(userVideoDetails.getState()); + if (userVideoDetails!=null) { + response.setStudyStatus(userVideoDetails.getState()); + }else { + response.setStudyStatus(1); + } response.setPackageName(coursePackage.getName()); - response.setSynopsis(videosWithIds.getIntroduction()); - response.setDetailedDiagram(coursePackage.getIntroduceDrawing()); - response.setCover(videosWithIds.getCover()); + response.setSynopsis(byId.getIntroduce()); + response.setDetailedDiagram(byId.getIntroductionDrawing()); + response.setCover(byId.getCoverDrawing()); } return response; @@ -433,23 +440,45 @@ if (null != tCoursePackagePayment){ TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId()); + if (coursePackage.getType()==2) { + response.setTime(new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getStartTime()) + "-" + new SimpleDateFormat("yyyy-MM-dd").format(coursePackage.getEndTime())); + } + + response.setCoursePackageId(tCoursePackagePayment.getCoursePackageId()); response.setCoverDrawing(coursePackage.getCoverDrawing()); response.setDetailDrawing(coursePackage.getDetailDrawing()); response.setCoursePackageName(coursePackage.getName()); response.setCoursePayId(tCoursePackagePayment.getId()); + response.setType(coursePackage.getType()); List<Integer> integers = StrUtils.dealStrToList(coursePackage.getClassWeeks()); + String classWeeks = coursePackage.getClassWeeks(); if (integers.size() > 0){ - StringBuilder courWeeks = new StringBuilder("每"); - for (Integer integer : integers) { - courWeeks.append(integer).append("、"); - } - if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、'){ - courWeeks.deleteCharAt(courWeeks.length() - 1); - } + StringBuilder courWeeks = new StringBuilder("每"+classWeeks); +// for (Integer integer : integers) { +// courWeeks.append(integer).append("、"); +// } +// if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、'){ +// courWeeks.deleteCharAt(courWeeks.length() - 1); +// } response.setWeeks(courWeeks.toString()); } - response.setCourseTimeFrame(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); + ArrayList<String> classTime = new ArrayList<>(); + String[] split4 = coursePackage.getClassStartTime().split(","); + String[] split3 = coursePackage.getClassEndTime().split(","); + if(ToolUtil.isNotEmpty(coursePackage.getClassStartTime())){ + for (int i = 0; i < split4.length; i++) { + String s = split4[i].substring(0,5) + "-" + split3[i].substring(0,5); + classTime.add(s); + } + } + + String joinedString = String.join("|", classTime); + + response.setCourseTimeFrame(joinedString); + + +// response.setCourseTimeFrame(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); response.setIntroduceDrawing(coursePackage.getIntroduceDrawing()); Integer payType = tCoursePackagePayment.getPayType(); @@ -740,8 +769,6 @@ @Override public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId,Integer pageNum) { - - List<RecordAppoint> recordVoList = new ArrayList<>(); List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<TCoursePackagePayment>() .eq("studentId",stuId ) @@ -759,7 +786,7 @@ if (tCoursePackagePayments.size() > 0 ){ // int pageNum = 1; // 页码 - int pageSize = 5; // 每页记录数 + int pageSize = 100; // 每页记录数 Page<CoursePackageStudent> page = new Page<>(1, pageSize); // for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) { @@ -811,6 +838,10 @@ CoursePackageScheduling byId = coursePackageSchedulingService.getById(coursePackageStudent.getCoursePackageSchedulingId()); // String classStartTime = coursePackage.getClassStartTime(); // String classEndTime = coursePackage.getClassEndTime(); + //这里是过滤今天之后的数据 +// if (byId == null||byId.getClassDate().after(new Date())){ +// continue; +// } if (byId == null){ continue; @@ -831,7 +862,7 @@ List<String> integerList = Arrays.asList(split); String weekOfDate = DateTimeHelper.getWeekOfDate(new Date()); if (integerList.contains(weekOfDate)){ - String dat = simpleDateFormat.format(date) +" "+ dateString2.substring(11); + String dat = simpleDateFormat.format(byId.getClassDate()) +" "+ dateString1.substring(11); Date start = null; try { @@ -839,11 +870,18 @@ } catch (ParseException e) { throw new RuntimeException(e); } - if (start.after(new Date())){ - recordVo.setStatus(1); - }else if(coursePackageStudent.getSignInOrNot()==2){ + if (byId.getStatus()==4){ + recordVo.setStatus(4); + } else if(coursePackageStudent.getSignInOrNot()==2){ recordVo.setStatus(5); - }else { + } + else if (start.after(new Date())){ + recordVo.setStatus(1); + } +// else if(coursePackageStudent.getSignInOrNot()==2){ +// recordVo.setStatus(5); +// } + else { // CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() // .eq("coursePackageId",coursePackageStudent.getCoursePackageId())); CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() @@ -1106,6 +1144,15 @@ return integers; } + @Autowired + private TCoursePackageService packageService; + + + @Autowired + private TCoursePackagePaymentService packagePaymentService; + @Autowired + private CoursePackageStudentService coursePackageStudentService; + @Override @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW) public ResultUtil payCourse(PayCourseReq req,Integer userId){ @@ -1119,6 +1166,67 @@ } tCoursePackagePayment.setLaveClassHours(tCoursePackagePayment.getLaveClassHours()-req.getNum()); this.baseMapper.updateHoursById(tCoursePackagePayment.getId(),-req.getNum()); + +// +// List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); +// List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); +// coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id",collect)); +// coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); +// +// TCoursePackage tCoursePackage = packageService.getById(tCoursePackagePayment.getCoursePackageId()); +// String classWeeks = tCoursePackage.getClassWeeks(); +// List<Integer> week = week(classWeeks); +// +// TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", tCoursePackagePayment.getCoursePackageId()).eq("studentId", tCoursePackagePayment.getStudentId())); +// +// +// Date today = new Date(); +// +// Integer laveClassHours = pay.getLaveClassHours(); +// Integer codeTime = tCoursePackage.getCodeTime(); +// Integer can = laveClassHours/codeTime; +// +// int count = 0; +// String[] split = tCoursePackage.getClassStartTime().split(","); +// String[] split1 = tCoursePackage.getClassEndTime().split(","); +// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); +// SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); +// +// Date[] dates = generateDateArray(14,today); +// for (Date date : dates) { +// if (count==can){ +// break; +// } +// int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date); +// if (week.contains(wei)){ +// for (int i1 = 0; i1 < split.length; i1++) { +// if (count==can){ +// break; +// } +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(date) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(pay.getAppUserId()); +// student1.setStudentId(pay.getStudentId()); +// student1.setCoursePackageId(pay.getCoursePackageId()); +// student1.setCoursePackagePaymentId(pay.getId()); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// studentService.save(student1); +// count++; +// } +// } +// } + + TCoursePackage tCoursePackage = tcpmapper.selectById(req.getCourseId()); @@ -1232,5 +1340,18 @@ + public static Date[] generateDateArray(int numDays,Date date) { +// LocalDate tomorrow = LocalDate.now().plusDays(1); + LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1); + + Date[] dates = new Date[numDays]; + + for (int i = 0; i < numDays; i++) { + LocalDate currentDate = tomorrow.plusDays(i); + dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + return dates; + } } diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java index ced476d..7641115 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java @@ -1,5 +1,6 @@ package com.dsh.course.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; @@ -35,6 +36,7 @@ import com.dsh.course.model.*; import com.dsh.course.service.*; import com.dsh.course.util.*; +import io.vertx.core.json.Json; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -43,6 +45,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; +import java.time.Period; import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -146,7 +149,14 @@ wrapper.or().in("storeId", collect); } } - List<TCoursePackage> list = this.list(wrapper.last(" order by sort desc, insertTime desc")); + List<TCoursePackage> list1 = this.list(wrapper.last(" order by sort desc, insertTime desc")); + Date currentTime = new Date(); + +// Filter the list based on the conditions + List<TCoursePackage> list = list1.stream() + .filter(coursePackage -> coursePackage.getType() != 2 || currentTime.before(coursePackage.getEndTime())) + .collect(Collectors.toList()); + List<CoursePackageListVo> listVos = new ArrayList<>(); for (TCoursePackage coursePackage : list) { Store store = storeClient.queryStoreById(coursePackage.getStoreId()); @@ -195,7 +205,7 @@ //会员显示原价和会员价(最低)。非会员显示会员价和支付价(最低) if(appUser.getIsVip() == 0){//非会员 List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) - .eq("type", 1).eq("auditStatus", 2)); + .eq("type", 1).eq("auditStatus", 2).eq("status",1)); Double vipPrice = coursePackagePaymentConfig.getCashPayment(); for (TCoursePackageDiscount coursePackageDiscount : list2) { Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember"); @@ -207,7 +217,7 @@ Double paymentPrice = coursePackagePaymentConfig.getCashPayment(); List<TCoursePackageDiscount> list3 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) - .eq("type", 3).eq("auditStatus", 2)); + .eq("type", 3).eq("auditStatus", 2).eq("status",1)); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); for (TCoursePackageDiscount coursePackageDiscount : list3) { /** @@ -284,7 +294,7 @@ coursePackageListVo.setPaymentPrice(paymentPrice); }else{ List<TCoursePackageDiscount> list2 = coursePackageDiscountService.list(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()) - .eq("type", 1).eq("auditStatus", 2)); + .eq("type", 1).eq("auditStatus", 2).eq("status",1)); Double vipPrice = coursePackagePaymentConfig.getCashPayment(); for (TCoursePackageDiscount coursePackageDiscount : list2) { Double num1 = JSON.parseObject(coursePackageDiscount.getContent()).getDouble("discountMember"); @@ -302,21 +312,41 @@ } //销量排行 - if(ToolUtil.isNotEmpty(coursePackageList.getSalesRanking())){ + if(ToolUtil.isNotEmpty(coursePackageList.getSalesRanking())&&coursePackageList.getSalesRanking().equals("asc")){ Collections.sort(listVos, new Comparator<CoursePackageListVo>() { public int compare(CoursePackageListVo s1, CoursePackageListVo s2) { return Integer.compare(s1.getApplicantsNumber(), s2.getApplicantsNumber()); } }); } + + + if(ToolUtil.isNotEmpty(coursePackageList.getSalesRanking())&&coursePackageList.getSalesRanking().equals("desc")){ + Collections.sort(listVos, new Comparator<CoursePackageListVo>() { + public int compare(CoursePackageListVo s1, CoursePackageListVo s2) { + return Integer.compare(s2.getApplicantsNumber(), s1.getApplicantsNumber()); + } + }); + } + + //距离排行 - if(ToolUtil.isNotEmpty(coursePackageList.getDistanceSort())){ + if(ToolUtil.isNotEmpty(coursePackageList.getDistanceSort())&&coursePackageList.getDistanceSort().equals("asc")){ Collections.sort(listVos, new Comparator<CoursePackageListVo>() { public int compare(CoursePackageListVo s1, CoursePackageListVo s2) { return Double.compare(s1.getDistance(), s2.getDistance()); } }); } + if (ToolUtil.isNotEmpty(coursePackageList.getDistanceSort())&&coursePackageList.getDistanceSort().equals("desc")) { + Collections.sort(listVos, new Comparator<CoursePackageListVo>() { + public int compare(CoursePackageListVo s1, CoursePackageListVo s2) { + return Double.compare(s2.getDistance(), s1.getDistance()); + } + }); + } + + return listVos; } @@ -358,7 +388,18 @@ coursePackageListVo.setId(coursePackage.getId()); coursePackageListVo.setName(coursePackage.getName()); coursePackageListVo.setStoreName(null != store ? store.getName() : ""); +// coursePackageListVo.setPayType(); coursePackageListVo.setCoverDrawing(coursePackage.getCoverDrawing()); + + Double cashPayment1 = coursePackagePaymentConfig.getCashPayment(); + Integer playPaiCoin = coursePackagePaymentConfig.getPlayPaiCoin(); + if(ToolUtil.isNotEmpty(cashPayment1) && cashPayment1>0 && ToolUtil.isNotEmpty(playPaiCoin) && playPaiCoin>0){ + coursePackageListVo.setPayType(3); + }else if(ToolUtil.isNotEmpty(cashPayment1) && cashPayment1>0){ + coursePackageListVo.setPayType(1); + }else if(ToolUtil.isNotEmpty(playPaiCoin) && playPaiCoin>0){ + coursePackageListVo.setPayType(2); + } // 2.0修改 String classStartTime = coursePackage.getClassStartTime(); @@ -715,14 +756,10 @@ //校验是否已经报满 Integer integer = coursePackagePaymentService.queryCountNumber(paymentCourseVo.getId()); TCoursePackage course = coursePackageService.getById(paymentCourseVo.getId()); - if (integer>=course.getMaxSubscribeNumber()){ + if (integer+paymentCourseVo.getStudentIds().split(";").length>course.getMaxSubscribeNumber()){ return ResultUtil.error("报名失败,已达最大报名人数"); } - - - List<CoursePackagePaymentConfigVo> list = coursePackageInfo.getList(); - String[] students = paymentCourseVo.getStudentIds().split(";"); for (CoursePackagePaymentConfigVo coursePackagePaymentConfigVo : list) { if(paymentCourseVo.getCoursePackagePaymentConfigId().compareTo(coursePackagePaymentConfigVo.getId()) == 0){ @@ -739,7 +776,6 @@ if((cashPayment!=null || cashPayment>0) &&(playPaiCoin1!=null || playPaiCoin1>0)){ payType=3; } - if(cashPayment!=null && cashPayment>0 && playPaiCoin1 !=null && playPaiCoin1>0){ }else { if(payType == 1 && paymentCourseVo.getPayType() == 3){//现金支付 @@ -749,12 +785,11 @@ return ResultUtil.error("支付方式错误,请刷新后重试"); } } - Double paymentPrice = coursePackagePaymentConfigVo.getPaymentPrice();//支付价 paymentPrice = new BigDecimal(students.length).multiply(new BigDecimal(paymentPrice)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); Double playPaiCoin = coursePackagePaymentConfigVo.getPlayPaiCoin().doubleValue();//支付币 playPaiCoin = new BigDecimal(students.length).multiply(new BigDecimal(playPaiCoin)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); - if(paymentCourseVo.getPayType() != 3 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0){ + if(paymentCourseVo.getPayType() != 3 && paymentPrice.compareTo(paymentCourseVo.getPrice()) != 0&&paymentCourseVo.getCouponId()!=null){ return ResultUtil.error("支付金额异常,请刷新后重试"); } if(paymentCourseVo.getPayType() == 3 && playPaiCoin.compareTo(paymentCourseVo.getPrice()) != 0){ @@ -762,9 +797,7 @@ } } } - Double price = paymentCourseVo.getPrice();//支付金额 - //校验优惠券 Long couponId = paymentCourseVo.getCouponId(); if(null != couponId && paymentCourseVo.getPayType() != 3){ @@ -850,6 +883,15 @@ coursePackagePayment.setState(1); coursePackagePayment.setInsertTime(new Date()); coursePackagePaymentService.save(coursePackagePayment); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePayment.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("购买课包"); + courseCounsumService.save(courseCounsum); } Student student = studentClient.queryDefaultStudent(uid); @@ -905,7 +947,7 @@ // 2.0 userCouponClient.sendUserCoupon(new SendCouponReq(uid,coursePackagePaymentConfig.getCouponIds())); - addPackageStudent(paymentCourseVo.getId(),uid, finalSid,one.getId()); + addPackageStudent(paymentCourseVo.getId(),uid, finalSid,one.getId(),null); break; } if("USERPAYING".equals(s)){ @@ -937,26 +979,109 @@ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); for (String s : split) { - TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); - coursePackagePayment.setCode(code); - coursePackagePayment.setAppUserId(uid); - coursePackagePayment.setStudentId(Integer.valueOf(s)); - coursePackagePayment.setCoursePackageId(paymentCourseVo.getId()); - coursePackagePayment.setPayType(paymentCourseVo.getPayType()); - coursePackagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackagePayment.setOriginalPrice(paymentCourseVo.getPrice()); - coursePackagePayment.setUserCouponId(paymentCourseVo.getCouponId()); - coursePackagePayment.setCashPayment(new BigDecimal(paymentPrice)); - coursePackagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackagePayment.setAbsencesNumber(0); - coursePackagePayment.setPayUserType(1); - coursePackagePayment.setPayStatus(1); - coursePackagePayment.setPayUserId(uid); - coursePackagePayment.setStatus(1); - coursePackagePayment.setState(1); - coursePackagePayment.setInsertTime(new Date()); - coursePackagePaymentService.save(coursePackagePayment); +// TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); +// coursePackagePayment.setCode(code); +// coursePackagePayment.setAppUserId(uid); +// coursePackagePayment.setStudentId(Integer.valueOf(s)); +// coursePackagePayment.setCoursePackageId(paymentCourseVo.getId()); +// coursePackagePayment.setPayType(paymentCourseVo.getPayType()); +// coursePackagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()); +// coursePackagePayment.setOriginalPrice(paymentCourseVo.getPrice()); +// coursePackagePayment.setUserCouponId(paymentCourseVo.getCouponId()); +// coursePackagePayment.setCashPayment(new BigDecimal(paymentPrice)); +// coursePackagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()); +// coursePackagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()); +// coursePackagePayment.setAbsencesNumber(0); +// coursePackagePayment.setPayUserType(1); +// coursePackagePayment.setPayStatus(1); +// coursePackagePayment.setPayUserId(uid); +// coursePackagePayment.setStatus(1); +// coursePackagePayment.setState(1); +// coursePackagePayment.setInsertTime(new Date()); +// coursePackagePaymentService.save(coursePackagePayment); +// +// +// CourseCounsum courseCounsum = new CourseCounsum(); +// courseCounsum.setPaymentId(coursePackagePayment.getId()); +// courseCounsum.setChangeType(1); +// courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); +// courseCounsum.setInsertTime(new Date()); +// courseCounsum.setReason("购买课包"); +// courseCounsumService.save(courseCounsum); + + TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", paymentCourseVo.getId())); + + if (coursePackagePaymentServiceOne==null) { + TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); + coursePackagePayment.setCode(code); + coursePackagePayment.setAppUserId(uid); + coursePackagePayment.setStudentId(Integer.valueOf(s)); + coursePackagePayment.setCoursePackageId(paymentCourseVo.getId()); + coursePackagePayment.setPayType(paymentCourseVo.getPayType()); + coursePackagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()); + coursePackagePayment.setOriginalPrice(paymentCourseVo.getPrice()); + coursePackagePayment.setPlayPaiCoin(paymentPrice.intValue()); + coursePackagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()); + coursePackagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()); + coursePackagePayment.setAbsencesNumber(0); + coursePackagePayment.setPayUserType(1); + coursePackagePayment.setPayStatus(1); + coursePackagePayment.setPayUserId(uid); + coursePackagePayment.setStatus(1); + coursePackagePayment.setState(1); + coursePackagePayment.setInsertTime(new Date()); + coursePackagePaymentService.save(coursePackagePayment); + Integer sId = null; + Student student = studentClient.queryDefaultStudent(uid); + if (student != null) { + sId = student.getId(); + } + +// coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); + +// addPackageStudent(paymentCourseVo.getId(), uid, Integer.valueOf(s), coursePackagePayment.getId()); + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePayment.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("购买课包"); + courseCounsumService.save(courseCounsum); + + }else { + coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()); + coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice()); + coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); + coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()); + coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()); + coursePackagePaymentServiceOne.setCode(code); + + coursePackagePaymentServiceOne.setAppUserId(null); + coursePackagePaymentServiceOne.setPayStatus(1); + coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); + +// coursePackagePaymentService.save(coursePackagePayment); + Integer sId = null; + Student student = studentClient.queryDefaultStudent(uid); + if (student != null) { + sId = student.getId(); + } + coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue()); + + +// addPackageStudent(paymentCourseVo.getId(), uid, Integer.valueOf(s), coursePackagePaymentServiceOne.getId()); + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("续课"); + courseCounsumService.save(courseCounsum); + + + } } Student student = studentClient.queryDefaultStudent(uid); @@ -1016,8 +1141,15 @@ userCouponClient.sendUserCoupon(new SendCouponReq(uid,coursePackagePaymentConfig.getCouponIds())); + for (TCoursePackagePayment coursePackagePayment : list) { + addPackageStudent(paymentCourseVo.getId(),uid, finalSid,coursePackagePayment.getId(),paymentCourseVo.getPrice()); + + + } moneyOut(tradeNo,tradeNo); + + @@ -1025,7 +1157,6 @@ if(student!=null){ } - addPackageStudent(paymentCourseVo.getId(),uid, finalSid,one.getId()); break; } if("WAIT_BUYER_PAY".equals(s)){ @@ -1129,6 +1260,10 @@ + @Autowired + private CourseCounsumService courseCounsumService; + + /** * 玩湃币支付课程 @@ -1143,33 +1278,96 @@ String[] split = paymentCourseVo.getStudentIds().split(";"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); - for (String s : split) { - TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); - coursePackagePayment.setCode(code); - coursePackagePayment.setAppUserId(appUser.getId()); - coursePackagePayment.setStudentId(Integer.valueOf(s)); - coursePackagePayment.setCoursePackageId(paymentCourseVo.getId()); - coursePackagePayment.setPayType(paymentCourseVo.getPayType()); - coursePackagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackagePayment.setOriginalPrice(paymentCourseVo.getPrice()); - coursePackagePayment.setPlayPaiCoin(paymentPrice.intValue()); - coursePackagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()); - coursePackagePayment.setAbsencesNumber(0); - coursePackagePayment.setPayUserType(1); - coursePackagePayment.setPayStatus(2); - coursePackagePayment.setPayUserId(appUser.getId()); - coursePackagePayment.setStatus(1); - coursePackagePayment.setState(1); - coursePackagePayment.setInsertTime(new Date()); - coursePackagePaymentService.save(coursePackagePayment); - Integer sId=null; - Student student = studentClient.queryDefaultStudent(appUser.getId()); - if(student!=null){ - sId=student.getId(); + + //赠送课时 + int weekday = DateUtil.dayOfWeek(new Date()) - 1; + TCoursePackageDiscount discount = coursePackageDiscountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("type",4).eq("coursePackageId", paymentCourseVo.getId()).last("limit 1")); + + Integer hour = 0; + if (discount!=null) { + JSONArray objects = JSONObject.parseArray(discount.getContent()); + JSONObject parse = JSONObject.parseObject(JSONObject.toJSONString(objects.get(0))); + hour = parse.getInteger("hour"); + if (hour == null) { + hour = 0; } - addPackageStudent(paymentCourseVo.getId(),appUser.getId(), Integer.valueOf(s),coursePackagePayment.getId()); + } + + for (String s : split) { + TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", paymentCourseVo.getId())); + + + + if (coursePackagePaymentServiceOne==null) { + TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment(); + coursePackagePayment.setCode(code); + coursePackagePayment.setAppUserId(appUser.getId()); + coursePackagePayment.setStudentId(Integer.valueOf(s)); + coursePackagePayment.setCoursePackageId(paymentCourseVo.getId()); + coursePackagePayment.setPayType(paymentCourseVo.getPayType()); + coursePackagePayment.setClassHours(coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePayment.setOriginalPrice(paymentCourseVo.getPrice()); + coursePackagePayment.setPlayPaiCoin(paymentPrice.intValue()); + coursePackagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePayment.setAbsencesNumber(0); + coursePackagePayment.setPayUserType(1); + coursePackagePayment.setPayStatus(2); + coursePackagePayment.setPayUserId(appUser.getId()); + coursePackagePayment.setStatus(1); + coursePackagePayment.setState(1); + coursePackagePayment.setInsertTime(new Date()); + coursePackagePaymentService.save(coursePackagePayment); + Integer sId = null; + Student student = studentClient.queryDefaultStudent(appUser.getId()); + if (student != null) { + sId = student.getId(); + } + addPackageStudent(paymentCourseVo.getId(), appUser.getId(), Integer.valueOf(s), coursePackagePayment.getId(),null); + + //课时记录 + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePayment.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("购买课包"); + courseCounsumService.save(courseCounsum); + + }else { + coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours()+coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePaymentServiceOne.setOriginalPrice(coursePackagePaymentServiceOne.getOriginalPrice()+paymentCourseVo.getPrice()); + if (coursePackagePaymentServiceOne.getPlayPaiCoin()==null){ + coursePackagePaymentServiceOne.setPlayPaiCoin(paymentPrice.intValue()); + + }else { + coursePackagePaymentServiceOne.setPlayPaiCoin(coursePackagePaymentServiceOne.getPlayPaiCoin()+paymentPrice.intValue());} + coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours()+coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours()+coursePackagePaymentConfig.getClassHours()+hour); + coursePackagePaymentServiceOne.setAppUserId(null); + coursePackagePaymentService.updateById(coursePackagePaymentServiceOne); + +// coursePackagePaymentService.save(coursePackagePayment); + Integer sId = null; + Student student = studentClient.queryDefaultStudent(appUser.getId()); + if (student != null) { + sId = student.getId(); + } + addPackageStudent(paymentCourseVo.getId(), appUser.getId(), Integer.valueOf(s), coursePackagePaymentServiceOne.getId(),null); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId()); + courseCounsum.setChangeType(1); + courseCounsum.setNum(coursePackagePaymentConfig.getClassHours()); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("续课"); + courseCounsumService.save(courseCounsum); + + + } + } Integer playPaiCoins = appUser.getPlayPaiCoins(); @@ -1189,235 +1387,167 @@ - private void addPackageStudent(Integer courseId, Integer userId, Integer sId,Long paymentId) throws ParseException { + private void addPackageStudent(Integer courseId, Integer userId, Integer sId,Long paymentId,Double price) throws ParseException { // 课包 TCoursePackage tCoursePackage = this.baseMapper.selectById(courseId); - String classWeeks = tCoursePackage.getClassWeeks(); - List<Integer> week = week(classWeeks); + if (tCoursePackage.getType()==1) { + String classWeeks = tCoursePackage.getClassWeeks(); - String[] split = tCoursePackage.getClassStartTime().split(","); - String[] split1 = tCoursePackage.getClassEndTime().split(","); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + List<Integer> week = week(classWeeks); - //查出当前用户当前学员当前课包最后一天的排课数据 - List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId)); - List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); - //拿到最后一天的排课记录 + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); - CoursePackageScheduling cs = null; - if (collect.size()>0) { - cs = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().in("id", collect).orderByDesc("classDate").last("limit 1")); - - } - int i = -1; - -// Calendar calendar = Calendar.getInstance(); -// Date currentDate = calendar.getTime(); -// calendar.add(Calendar.DAY_OF_MONTH, -1); -// Date today = calendar.getTime(); - Date today = new Date(); - - //判断最后一天是否超过当前日期 - if (cs==null||cs.getClassDate().before(new Date())){ - i = DateUtil.dayOfWeek(new Date())-1; - }else { - i = DateUtil.dayOfWeek(cs.getClassDate())-1; - today = cs.getClassDate(); - } + //查出当前用户当前学员当前课包最后一天的排课数据 + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId)); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); - TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId); - Integer laveClassHours = pay.getLaveClassHours(); - Integer codeTime = tCoursePackage.getCodeTime(); - Integer can = 0; - int count = 0; + //拿到最后一天的排课记录 + if (collect.size() > 0){ + coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId)); + if (price!=null) { + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(paymentId); + courseCounsum.setChangeType(3); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("续课;" + price); + courseCounsum.setAppUserId(userId); + courseCounsumService.save(courseCounsum); + } - // 本周周几 -// int i = DateUtil.dayOfWeek(new Date())-1; + }else { + if (price!=null) { + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setPaymentId(paymentId); + courseCounsum.setChangeType(3); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("报名课程;" + price); + courseCounsum.setAppUserId(userId); + courseCounsumService.save(courseCounsum); + } + } + Date today = new Date(); + TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId); + Integer laveClassHours = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = 0; + int count = 0; + // 本周周几 + Date[] dates = generateDateArray(14, today); + if (tCoursePackage.getType() == 1) { + can = laveClassHours / codeTime; + } + if (tCoursePackage.getType() == 2) { + Date startDate = tCoursePackage.getStartTime(); + Date endDate = tCoursePackage.getEndTime(); + dates = generateDateArray1(startDate, endDate); + can = 999; + } + for (Date date : dates) { + if (count == can) { + break; + } + int wei = DateUtil.dayOfWeek(date); + if (week.contains(wei)) { + for (int i1 = 0; i1 < split.length; i1++) { + if (count == can) { + break; + } + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.save(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(paymentId); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + count++; + } + } + } - Date[] dates = generateDateArray(14,today); - if (tCoursePackage.getType()==1){ - can = laveClassHours/codeTime; - } - if (tCoursePackage.getType()==2){ - Date startDate = tCoursePackage.getStartTime(); - Date endDate = tCoursePackage.getEndTime(); - dates = generateDateArray1(startDate, endDate); - can = 999; - } + }else if (tCoursePackage.getType()==2){ + String classWeeks = tCoursePackage.getClassWeeks(); + List<Integer> week = week(classWeeks); - for (Date date : dates) { - if (count==can){ - break; - } - int wei = DateUtil.dayOfWeek(date); - if (week.contains(wei)){ - for (int i1 = 0; i1 < split.length; i1++) { - if (count==can){ - break; - } - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(date) + " " + split[i1]); - Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(userId); - student1.setStudentId(sId); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(paymentId); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - cpsMapper.insert(student1); - count++; + Date today = new Date(); + + Date startTime = tCoursePackage.getStartTime(); + Date endTime = tCoursePackage.getEndTime(); + LocalDate startDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + LocalDate endDate = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + Period period = Period.between(startDate, endDate); + int days = period.getDays() + 1; + Integer can =999; + int count = 0; + String[] split = tCoursePackage.getClassStartTime().split(","); + String[] split1 = tCoursePackage.getClassEndTime().split(","); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startTime); + calendar.add(Calendar.DAY_OF_MONTH, -1); + + TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId); + + + Date[] dates = generateDateArray(days,calendar.getTime()); + for (Date date : dates) { + if (count==can){ + break; + } + int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date)-1; + if (wei == 0){ + wei =7; + } + if (week.contains(wei)){ + for (int i1 = 0; i1 < split.length; i1++) { + if (count==can){ + break; + } + CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); + coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); + Date parse = format1.parse(format.format(date) + " " + split[i1]); + Date parse1 = format1.parse(format.format(date) + " " + split1[i1]); + coursePackageScheduling.setClassDate(parse); + coursePackageScheduling.setEndDate(parse1); + coursePackageScheduling.setStatus(1); + coursePackageSchedulingService.save(coursePackageScheduling); + CoursePackageStudent student1 = new CoursePackageStudent(); + student1.setAppUserId(userId); + student1.setStudentId(sId); + student1.setCoursePackageId(tCoursePackage.getId()); + student1.setCoursePackagePaymentId(pay.getId()); + student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); + student1.setSignInOrNot(1); + student1.setReservationStatus(1); + student1.setInsertTime(new Date()); + cpsMapper.insert(student1); + count++; + } } } } - - -// for (Integer integer : week) { -// if (count==can){ -// break; -// } -// if(integer<i){ -// // 找下一周的时间 -// Calendar instance = Calendar.getInstance(); -// if (cs==null||cs.getClassDate().before(new Date())){ -// instance = Calendar.getInstance(); -// }else { -//// i = DateUtil.dayOfWeek(cs.getClassDate())-1; -// instance.setTime(cs.getClassDate()); -// } -// instance.add(Calendar.DATE,7-(i-integer)); -// Date time = instance.getTime(); -// -// for (int i1 = 0; i1 < split.length; i1++) { -// if (count==can){ -// break; -// } -// -// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); -// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); -// Date parse = format1.parse(format.format(time) + " " + split[i1]); -// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); -// coursePackageScheduling.setClassDate(parse); -// coursePackageScheduling.setEndDate(parse1); -// coursePackageScheduling.setStatus(1); -// coursePackageSchedulingService.save(coursePackageScheduling); -// -// CoursePackageStudent student1 = new CoursePackageStudent(); -// student1.setAppUserId(userId); -// student1.setStudentId(sId); -// student1.setCoursePackageId(tCoursePackage.getId()); -// student1.setCoursePackagePaymentId(paymentId); -// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); -// student1.setSignInOrNot(1); -// student1.setReservationStatus(1); -// student1.setInsertTime(new Date()); -// cpsMapper.insert(student1); -// count++; -// } -// -// -// }else if(integer>i) { -// if (count==can){ -// break; -// } -// -//// Calendar instance = Calendar.getInstance(); -// -// Calendar instance = Calendar.getInstance(); -// if (cs==null||cs.getClassDate().before(new Date())){ -// instance = Calendar.getInstance(); -// }else { -//// i = DateUtil.dayOfWeek(cs.getClassDate())-1; -// instance.setTime(cs.getClassDate()); -// } -// instance.add(Calendar.DATE,integer-i); -// Date time1 = instance.getTime(); -// List<Date> list = new ArrayList<>(); -// list.add(time1); -// instance.add(Calendar.DATE,7); -// Date time2 = instance.getTime(); -// list.add(time2); -// for (Date time : list) { -// for (int i1 = 0; i1 < split.length; i1++) { -// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); -// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); -// Date parse = format1.parse(format.format(time) + " " + split[i1]); -// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); -// coursePackageScheduling.setClassDate(parse); -// coursePackageScheduling.setEndDate(parse1); -// coursePackageScheduling.setStatus(1); -// coursePackageSchedulingService.save(coursePackageScheduling); -// -// CoursePackageStudent student1 = new CoursePackageStudent(); -// student1.setAppUserId(userId); -// student1.setStudentId(sId); -// student1.setCoursePackageId(tCoursePackage.getId()); -// student1.setCoursePackagePaymentId(paymentId); -// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); -// student1.setSignInOrNot(1); -// student1.setReservationStatus(1); -// student1.setInsertTime(new Date()); -// cpsMapper.insert(student1); -// count++; -// -// } -// } -// -// }else { -//// Calendar instance = Calendar.getInstance(); -// Calendar instance = Calendar.getInstance(); -// if (cs==null||cs.getClassDate().before(new Date())){ -// instance = Calendar.getInstance(); -// }else { -//// i = DateUtil.dayOfWeek(cs.getClassDate())-1; -// instance.setTime(cs.getClassDate()); -// } -// instance.add(Calendar.DATE,7); -// Date time = instance.getTime(); -// -// for (int i1 = 0; i1 < split.length; i1++) { -// if (count==can){ -// break; -// } -// -// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); -// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); -// Date parse = format1.parse(format.format(time) + " " + split[i1]); -// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); -// coursePackageScheduling.setClassDate(parse); -// coursePackageScheduling.setEndDate(parse1); -// coursePackageScheduling.setStatus(1); -// coursePackageSchedulingService.save(coursePackageScheduling); -// -// CoursePackageStudent student1 = new CoursePackageStudent(); -// student1.setAppUserId(userId); -// student1.setStudentId(sId); -// student1.setCoursePackageId(tCoursePackage.getId()); -// student1.setCoursePackagePaymentId(paymentId); -// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); -// student1.setSignInOrNot(1); -// student1.setReservationStatus(1); -// student1.setInsertTime(new Date()); -// cpsMapper.insert(student1); -// count++; -// -// } -// } -// } // 2.0 TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); tCourseInfoRecord.setUserId(userId); @@ -1738,22 +1868,27 @@ @Override public ResultUtil paymentCourseCouponList(Integer uid, Integer coursePackagePaymentConfigId) { - CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(coursePackagePaymentConfigId); - if(ToolUtil.isEmpty(coursePackagePaymentConfig.getCouponIds())){ - coursePackagePaymentConfig.setCouponIds("-1"); - } - List<Coupon> coupons = couponClient.getCoupons(coursePackagePaymentConfig.getCouponIds()); +// CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(coursePackagePaymentConfigId); +// if(ToolUtil.isEmpty(coursePackagePaymentConfig.getCouponIds())){ +// coursePackagePaymentConfig.setCouponIds("-1"); +// } +// List<Coupon> coupons = couponClient.getCoupons(coursePackagePaymentConfig.getCouponIds()); - for (Coupon coupon : coupons) { - Date date1 = coupon.getStartTime(); // 2023-10-01 00:00:00 - Date date2 = coupon.getEndTime(); // 2023-10-12 00:00:00 + List<Coupon> coupons = couponClient.queryCouponByUid(uid); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); - String dateString1 = sdf.format(date1); - String dateString2 = sdf.format(date2); - String result = dateString1 + "-" + dateString2; - coupon.setTimePeriod(result); + if (CollectionUtil.isNotEmpty(coupons)) { + for (Coupon coupon : coupons){ + Date date1 = coupon.getStartTime(); // 2023-10-01 00:00:00 + Date date2 = coupon.getEndTime(); // 2023-10-12 00:00:00 + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd"); + String dateString1 = sdf.format(date1); + String dateString2 = sdf.format(date2); + + String result = dateString1 + "-" + dateString2; + coupon.setTimePeriod(result); + } } return ResultUtil.success(coupons); } diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml index b8daa9b..dd6e830 100644 --- a/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml +++ b/cloud-server-course/src/main/resources/mapper/CoursePackageSchedulingMapper.xml @@ -31,9 +31,10 @@ </select> <select id="queryAll" resultType="com.dsh.course.model.vo.response.AppUserVideoResponse"> - SELECT cs.courseId as videoId,cs.coursePackageId as coursePackageId,tc.coverDrawing,tc.name as videoName,tc.introduce as synopsis,cs.integral,tc.courseVideo as courseVideo + SELECT cs.courseId as videoId,cs.coursePackageId as coursePackageId,tc.coverDrawing as coverImage,tc.name as videoName,tc.introduce as synopsis,cs.integral,tc.courseVideo as courseVideo,cp.name as packageName FROM t_course_package_scheduling cs LEFT JOIN t_course tc ON cs.courseId = tc.id + left join t_course_package cp on cs.coursePackageId = cp.id WHERE cs.courseId IS NOT NULL <if test="longs != null"> AND cs.id IN diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java index 2cd8012..08726c8 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackageSchedulingClient.java @@ -6,6 +6,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import java.util.List; import java.util.Map; /** @@ -44,4 +45,6 @@ @PostMapping("/coursePackageScheduling/saveCoursePackageScheduling") void save(CoursePackageScheduling coursePackageScheduling); + @PostMapping("/coursePackageScheduling/queryCoursePackageSchedulingsById") + List<CoursePackageScheduling> queryCoursePackageSchedulingsById(Long id); } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java index bb9f556..b0bcd56 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java @@ -9,6 +9,7 @@ import com.dsh.guns.config.UserExt; import com.dsh.guns.core.support.HttpKit; import com.dsh.guns.core.util.ToolUtil; +import com.dsh.guns.modular.system.model.CourseCounsum; import com.dsh.guns.modular.system.model.TStore; import com.dsh.guns.modular.system.service.ICoursePackageService; import com.dsh.guns.modular.system.service.IStoreService; @@ -474,6 +475,7 @@ } + /** * 上传消课凭证 * @param id @@ -483,7 +485,12 @@ */ @Override public ResultUtil cancellationRecord(Long id, String cancelClasses, Integer deductClassHour) { - CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingClient.queryCoursePackageSchedulingById(id); +// CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingClient.queryCoursePackageSchedulingById(id); + + List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingClient.queryCoursePackageSchedulingsById(id); + + for (CoursePackageScheduling coursePackageScheduling : coursePackageSchedulings) { + if(coursePackageScheduling.getStatus() == 1 || coursePackageScheduling.getStatus() == 4){ return ResultUtil.error("不能添加消课凭证"); } @@ -522,7 +529,15 @@ cancelledClasses.setCancelledClassesNumber(deductClassHour);} cancelledClasses.setInsertTime(new Date()); cancelledClassesClient.addCancelledClasses(cancelledClasses); + + + + + + } + } + return ResultUtil.success(); } diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java index baf6f33..b5e85a8 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java @@ -5,12 +5,14 @@ import com.alipay.api.response.AlipayTradeQueryResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.dsh.other.entity.SiteLock; import com.dsh.other.entity.TGame; import com.dsh.other.entity.TGameConfig; import com.dsh.other.entity.TGameRecord; import com.dsh.other.feignclient.account.AppUserClient; import com.dsh.other.feignclient.account.model.AppUser; import com.dsh.other.model.QueryMySiteVo; +import com.dsh.other.service.ISiteLockService; import com.dsh.other.service.TGameConfigService; import com.dsh.other.service.TGameRecordService; import com.dsh.other.service.TGameService; @@ -29,13 +31,13 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; - @RestController @RequestMapping("/api/game") public class GameController { @Autowired private TGameRecordService gameRecordService; + @Autowired private TGameService gameService; @@ -70,6 +72,9 @@ } } +@Autowired +private ISiteLockService lockService; + @ResponseBody @PostMapping("/queryGameList") @@ -82,6 +87,18 @@ public ResultUtil<List<TGameConfig>> queryGameList(Integer siteId, Integer storeId){ try { List<TGameConfig> tGameConfigs = new ArrayList<>(); + + List<SiteLock> lock = lockService.list(new QueryWrapper<SiteLock>().eq("siteId", siteId)); + + Date now = new Date(); + for (SiteLock siteLock : lock) { + if (now.after(siteLock.getStartTime())&&now.before(siteLock.getEndTime())){ + return ResultUtil.error("当前场地已被锁定"); + } + + + } + List<TGame> list = gameService.list(new LambdaQueryWrapper<TGame>().eq(TGame::getSiteId, siteId).eq(TGame::getStoreId, storeId).eq(TGame::getState,0)); if(list.size()>0){ @@ -187,7 +204,11 @@ } return weixinpay; }else if(type==2){ - ResultUtil alipay = payMoneyUtil.alipay("游戏支付", "游戏支付", "", code, config.getCash().toString(), "/base/course/aliPaymentCourseCallback"); +// Integer gameId, Integer configId,Integer type,Integer sutuId,Integer spaceId; + + String params = uid+"_"+gameId+"_"+spaceId+"_"+sutuId; + + ResultUtil alipay = payMoneyUtil.alipay("游戏支付", "游戏支付", params, code, config.getCash().toString(), "/base/site/gameCallback"); if(alipay.getCode() == 200){ new Thread(new Runnable() { @Override @@ -268,6 +289,7 @@ } int i1 = playPaiCoins - i; appUser.setIntegral(i1); + appUser.setPoints(playCoin.intValue()); appUserClient.updateAppUser(appUser); startGame(uid,gameId,spaceId,sutuId); return ResultUtil.success(); diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java index 39a8f85..a35f8b5 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/HonorController.java @@ -42,7 +42,7 @@ wrapper1.eq("type",type1); List<HonorRules> list1 = hrService.list(wrapper1); for (int i = 0; i < list1.size(); i++) { - list1.get(i).setCondition(condition1.get(i)); + list1.get(i).setCondition(Integer.valueOf(condition1.get(i))); } hrService.updateBatchById(list1); @@ -52,7 +52,7 @@ wrapper2.eq("type",type2); List<HonorRules> list2 = hrService.list(wrapper2); for (int i = 0; i < list1.size(); i++) { - list2.get(i).setCondition(condition2.get(i)); + list2.get(i).setCondition(Integer.valueOf(condition2.get(i))); } hrService.updateBatchById(list2); @@ -62,7 +62,7 @@ wrapper3.eq("type",type3); List<HonorRules> list3 = hrService.list(wrapper3); for (int i = 0; i < list1.size(); i++) { - list3.get(i).setCondition(condition3.get(i)); + list3.get(i).setCondition(Integer.valueOf(condition3.get(i))); } hrService.updateBatchById(list3); @@ -72,21 +72,49 @@ wrapper4.eq("type",type4); List<HonorRules> list4 = hrService.list(wrapper4); for (int i = 0; i < list1.size(); i++) { - list4.get(i).setCondition(condition4.get(i)); + list4.get(i).setCondition(Integer.valueOf(condition4.get(i))); } hrService.updateBatchById(list4); return ResultUtil.success(); } + @Autowired + private HonorRulesService honorRulesService; + @PostMapping("/base/honor/getHonor") + public HonorRules getHonor(@RequestBody List<Integer> integers){ +// HonorRules one = honorRulesService.getOne(new QueryWrapper<HonorRules>().eq("type", integers.get(0)).le("condition", String.valueOf(integers.get(1))).last("limit 1")); + HonorRules one = honorRulesService.getOne(new QueryWrapper<HonorRules>() + .eq("type", integers.get(0)) + .le("`condition`",integers.get(1)).orderByDesc("level") + .last("LIMIT 1")); + + if (one ==null){ + HonorRules one1 = honorRulesService.getOne(new QueryWrapper<HonorRules>() + .eq("type", integers.get(0)) + .eq("level",1) + .last("LIMIT 1")); + return one1; + } + + if (one.getLevel().equals("10")){ + return one; + } + HonorRules one2 = honorRulesService.getOne(new QueryWrapper<HonorRules>().eq("type", integers.get(0)).eq("level", Integer.valueOf(one.getLevel()) + 1)); + return one2; + } + @PostMapping("/base/honor/stuHonors") public List<StuMedalVo> getStuHonors(@RequestBody List<Integer> honorIds){ List<StuMedalVo> stuMedalVos = new ArrayList<>(); List<HonorRules> honorRules = hrService.querylistOfIds(honorIds); + + + if (honorRules.size() > 0){ honorRules.forEach(hrs -> { StuMedalVo stuMedalVo = new StuMedalVo(); - stuMedalVo.setLevelNum(Integer.getInteger(hrs.getLevel())); + stuMedalVo.setLevelNum(Integer.getInteger(String.valueOf(hrs.getLevel()))); stuMedalVo.setMedalType(hrs.getType()); switch (hrs.getType()){ case 1: @@ -105,9 +133,9 @@ break; } if (!Objects.equals(hrs.getLevel(), "10")){ - stuMedalVo.setLevelNum(Integer.parseInt(hrs.getLevel())); - stuMedalVo.setNextLevel(Integer.parseInt(hrs.getLevel())+1); - stuMedalVo.setUpgradeConditions(hrs.getCondition()); + stuMedalVo.setLevelNum(Integer.parseInt(String.valueOf(hrs.getLevel()))); + stuMedalVo.setNextLevel(Integer.parseInt(String.valueOf(hrs.getLevel()))+1); + stuMedalVo.setUpgradeConditions(String.valueOf(hrs.getCondition())); stuMedalVo.setIsTopLevel(2); }else { stuMedalVo.setIsTopLevel(1); diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java index ea1db91..6e8911b 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/SiteController.java @@ -19,10 +19,7 @@ import com.dsh.other.model.vo.siteVo.ExpireSiteSearchVO; import com.dsh.other.model.vo.siteVo.SiteSearchVO; import com.dsh.other.service.*; -import com.dsh.other.util.PayMoneyUtil; -import com.dsh.other.util.RedisUtil; -import com.dsh.other.util.ResultUtil; -import com.dsh.other.util.TokenUtil; +import com.dsh.other.util.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -214,7 +211,7 @@ @ApiImplicitParam(value = "半场名称", name = "halfName", dataType = "string", required = false), @ApiImplicitParam(value = "选择场地的名称", name = "siteName", dataType = "string", required = false) }) - public ResultUtil<List<QuerySiteTimes>> querySiteTimes(Integer id, String day,String halfName,String siteName){ + public ResultUtil<List<QuerySiteTimes>> querySiteTimes(Integer id, String day,String halfName,String siteName){ try { List<QuerySiteTimes> list = siteService.querySiteTimes(id, day,halfName,siteName); return ResultUtil.success(list); @@ -358,6 +355,62 @@ } + /** + * 启动游戏支付宝回调 + * @param request + * @param response + */ + @ResponseBody + @PostMapping("/base/site/gameCallback") + public void gameCallback(HttpServletRequest request, HttpServletResponse response){ + try { + System.out.println("回调回调回调"); + Map<String, String> map = payMoneyUtil.alipayCallback(request); + if(null != map){ + + String code = map.get("passback_params"); +// String trade_no = map.get("trade_no"); +// SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>().eq("orderNo", code).eq("state", 1)); +// if(siteBooking.getStatus() == 0){ +// siteBooking.setPayTime(new Date()); +// siteBooking.setStatus(1); +// siteBooking.setPayOrderNo(trade_no); +// siteBookingService.updateById(siteBooking); +// } + + String[] s = code.split("_"); + Integer i = startGame(Integer.valueOf(s[0]), Integer.valueOf(s[1]), Integer.valueOf(s[2]), Integer.valueOf(s[3])); + System.err.println("===========游戏回调游戏回调========="+i); + PrintWriter out = response.getWriter(); + out.write("success"); + out.flush(); + out.close(); + } + }catch (Exception e){ + e.printStackTrace(); + } + } + + + private static Integer startGame(Integer uid,Integer gameId,Integer spaceId,Integer sutuId){ + HashMap<String, String> map = new HashMap<>(); + map.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); + map.put("app_user_id",uid+""); + map.put("game_id",gameId+""); + map.put("space_id",spaceId+""); + map.put("sutu_id",sutuId+""); + + String s = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/gameStart", map); + JSONObject jsonObject = JSONObject.parseObject(s); + Object code = jsonObject.get("code"); + if(String.valueOf(code)!=null && "200".equals(String.valueOf(code))){ + return 200; + }else { + return 500; + } + } + + @ResponseBody @PostMapping("/api/site/queryMySite") @ApiOperation(value = "获取我的预约场地列表", tags = {"用户—预约场地"}) @@ -394,12 +447,14 @@ Integer storeId = byId.getStoreId(); Store byId1 = service.getById(storeId); Site site = siteService.getById(byId.getSiteId()); - map.put("siteName",byId1.getName()); SiteType siteType = siteTypeService.getById(site.getSiteTypeId()); map.put("siteType",siteType.getName()); map.put("shopName",byId1.getName()); map.put("shopAddress",byId1.getAddress()); + + map.put("name",site.getName()); + List<Integer> ids = getIds(byId.getSiteId()); @@ -610,6 +665,14 @@ } + + @ResponseBody + @PostMapping("/base/site/counts") + public Integer counts(@RequestBody Integer stuId){ + return siteBookingService.count(new QueryWrapper<SiteBooking>().eq("appUserId",stuId)); + + } + @ResponseBody @PostMapping("/base/site/queryOperator") public OperatorUser queryOperator(@RequestBody List<Integer> stores){ diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java index 2f445f8..d525e98 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreConfigController.java @@ -44,6 +44,50 @@ for (StoreConfig storeConfig : list) { StoreConfigVo storeConfigVo = new StoreConfigVo(); BeanUtils.copyProperties(storeConfig, storeConfigVo); + if (storeConfig.getBackgroundImage()==null||storeConfig.getBackgroundImage().equals("")){ + switch (storeConfigVo.getType()){ + case 1:{ + storeConfigVo.setBackgroundImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/8b7073a4d33d4eea9f0d173cb4db92a7.png"); + break; + } + case 2:{ + storeConfigVo.setBackgroundImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/f60f1622ae184475ad703ec60bbcbeff.png"); + break; + } + case 3:{ + storeConfigVo.setBackgroundImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/08c5eca72fca4d479d21905d25870ef8.png"); + break; + + } + case 4:{ + storeConfigVo.setBackgroundImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/8602be35e6cf4f76819b7b2d7b588efc.png"); + break; + + } + case 5:{ + storeConfigVo.setBackgroundImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/694f84a1e2ba4d2c919f4f4ffaadece2.png"); + break; + + } + case 6:{ + storeConfigVo.setBackgroundImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/81a83d229fea46a78be6a3ec1d5b7d6e.png"); + break; + + } + case 7:{ + storeConfigVo.setBackgroundImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/312763e7565c48f2a16021c162c76018.png"); + break; + + } + case 8:{ + storeConfigVo.setBackgroundImage("https://we-park-life.oss-cn-beijing.aliyuncs.com/img/0771fb3bd4de43c08492d0912209e51f.png"); + break; + + } + + } + } + listVo.add(storeConfigVo); } return ResultUtil.success(listVo); diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java index 043df06..4e1dabd 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoreController.java @@ -132,9 +132,21 @@ info.setStoreName(store.getName()); info.setStoreImg(store.getCoverDrawing()); info.setDistance((long) Double.parseDouble(distanceTOKilometer)); - info.setStoreAddr(store.getAddress()); + + + String str = store.getAddress(); + str = str.substring(str.indexOf("省") + 1); + + // 去掉第一个“市”及之前的字符串 + str = str.substring(str.indexOf("市") + 1); + + // 去掉第一个“区”及之前的字符串 + str = str.substring(str.indexOf("区") + 1); + + info.setStoreAddr(str); info.setLatitude(storeLat); info.setLongitude(storeLon); + storeInfos.add(info); } // Comparator<StoreInfo> distanceComparator = new Comparator<StoreInfo>() { diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java index 96e644f..e4c287a 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java +++ b/cloud-server-other/src/main/java/com/dsh/other/controller/StoredValueConfigController.java @@ -52,6 +52,16 @@ try { ObjectMapper objectMapper = new ObjectMapper(); JsonNode rulesNode = objectMapper.readTree(storedValueConfig.getContent()).get("rules"); + + JsonNode rulesNode1 = objectMapper.readTree(storedValueConfig.getContent()).get("time_rules"); + + JsonNode jsonNode = rulesNode1.get(0); + String startTime = jsonNode.get("startTime").asText(); + String endTime = jsonNode.get("endTime").asText(); + + + + if (rulesNode.isArray()) { int i = 0; for (JsonNode ruleNode : rulesNode) { diff --git a/cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java b/cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java index 596a0d2..a6061d5 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java +++ b/cloud-server-other/src/main/java/com/dsh/other/entity/HonorRules.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.models.auth.In; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -39,13 +40,13 @@ * 等级 */ @TableField("level") - private String level; + private Integer level; /** * 满足条件值 */ @TableField(value = "`condition`") - private String condition; + private Integer condition; @Override protected Serializable pkVal() { diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java index 9b9576a..4636aaa 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java +++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/account/model/AppUser.java @@ -113,4 +113,6 @@ * 添加时间 */ private Date insertTime; + + private Integer points; } diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java b/cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java index 371aab1..e1fdff2 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java +++ b/cloud-server-other/src/main/java/com/dsh/other/model/BillingRequestOfType.java @@ -17,6 +17,8 @@ * MM-dd HH:mm */ private String time; + private String time1; + /** * 金额 */ diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java index f4c5a6c..83d5b9f 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java +++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/SiteServiceImpl.java @@ -29,6 +29,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalTime; import java.util.*; @@ -177,7 +178,7 @@ List<String> strings = new ArrayList<>(); // List<SiteBooking> siteBookings = siteClient.listBooks(id); - List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).eq("nextName",siteName).like("times",day)); + List<SiteBooking> siteBookings = iSiteBookingService.list(new QueryWrapper<SiteBooking>().eq("siteId", id).ne("status",5).eq("nextName",siteName).like("times",day)); if (siteName==null|| siteName.equals("")){ @@ -260,6 +261,13 @@ if(stringDateBetween){ orderDto.setSelectable(0); } + if (DateComparisonExample.isStringWithinTimeRange(stime, siteLock.getStartTime(), siteLock.getEndTime())){ + orderDto.setSelectable(0); + } + if (DateComparisonExample.isStringWithinTimeRange(etime, siteLock.getStartTime(), siteLock.getEndTime())){ + orderDto.setSelectable(0); + } + } @@ -276,6 +284,9 @@ } + + + public static String getNextTime(String currentTime) { @@ -520,6 +531,7 @@ } + /** * 课程支付宝支付 * @param paymentPrice @@ -642,11 +654,15 @@ SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd"); Date startTime = siteBooking.getStartTime(); - if(format.format(new Date()).equals(format.format(startTime))){ + if(format.format(new Date()).equals(format.format(startTime))&&siteBooking.getStatus() != 0){ return ResultUtil.error("预约当天,不能取消"); } + if(siteBooking.getStatus() == 0){ - return ResultUtil.error("请先进行支付"); +// return ResultUtil.error("请先进行支付"); + siteBooking.setStatus(5); + siteBookingService.updateById(siteBooking); + return ResultUtil.success(); } if(siteBooking.getStatus() != 1 && siteBooking.getStatus() != 2){ return ResultUtil.error("不能进行取消操作"); @@ -737,9 +753,15 @@ String[] split = siteBooking.getTimes().split(";"); Double payMoney = 0D; if(payType == 3){ - payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); +// payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); if(appUser.getPlayPaiCoins().compareTo(payMoney.intValue()) < 0){ return ResultUtil.error("玩湃币不足"); + } + + if(siteBooking.getIsHalf()==2){ + payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + }else { + payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); } }else{ if(siteBooking.getIsHalf()==2){ @@ -812,9 +834,23 @@ String[] split = siteBooking.getTimes().split(";"); Map<String, Double> map = new HashMap<>(); Double payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + + + if(siteBooking.getIsHalf()==2){ + payMoney = new BigDecimal(site.getPlayPaiCoin()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + }else { + payMoney = new BigDecimal(site.getPlayPaiCoinOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + } + map.put("playPaiCoin", payMoney); payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + if(siteBooking.getIsHalf()==2){ + payMoney = new BigDecimal(site.getCashPrice()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + }else { + payMoney = new BigDecimal(site.getCashPriceOne()).multiply(new BigDecimal(split.length)).setScale(2, RoundingMode.HALF_EVEN).doubleValue(); + } + //校验优惠券 Long couponId = siteBooking.getUserCouponId(); if(null != couponId){ diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/DateComparisonExample.java b/cloud-server-other/src/main/java/com/dsh/other/util/DateComparisonExample.java index e48ab82..1cd88bd 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/util/DateComparisonExample.java +++ b/cloud-server-other/src/main/java/com/dsh/other/util/DateComparisonExample.java @@ -30,4 +30,15 @@ return (valueStartDate.after(startDate) || valueStartDate.equals(startDate)) && (valueEndDate.before(endDate) || valueEndDate.equals(endDate)); } + + public static boolean isStringWithinTimeRange(String stringValue, Date startTime, Date endTime) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + try { + Date dateValue = sdf.parse(stringValue); + return dateValue.after(startTime) && dateValue.before(endTime); + } catch (ParseException e) { + e.printStackTrace(); + return false; + } + } } \ No newline at end of file diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java index c2b8f8b..41d4341 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java +++ b/cloud-server-other/src/main/java/com/dsh/other/util/PayMoneyUtil.java @@ -165,28 +165,29 @@ // String alipayNum = operatorUser.getAlipayNum(); // extendParams.setSysServiceProviderId("YOUR_SERVICE_PROVIDER_ID"); - ExtendParams extendParams = new ExtendParams(); - model.setExtendParams(extendParams); - RoyaltyInfo royaltyInfo = new RoyaltyInfo(); + +// ExtendParams extendParams = new ExtendParams(); +// model.setExtendParams(extendParams); +// RoyaltyInfo royaltyInfo = new RoyaltyInfo(); // royaltyInfo.setRoyaltyType("transfer"); - RoyaltyDetailInfos royaltyDetailInfo1 = new RoyaltyDetailInfos(); - royaltyDetailInfo1.setTransOutType("userId"); - royaltyDetailInfo1.setTransOut(aliAppid); - royaltyDetailInfo1.setTransInType("loginName"); - royaltyDetailInfo1.setTransIn("18398968484"); - - royaltyDetailInfo1.setDesc("分账描述1"); - royaltyDetailInfo1.setAmountPercentage("10"); - List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>(); - - - - - royaltyInfo.setRoyaltyDetailInfos(royaltyDetailInfos); - model.setRoyaltyInfo(royaltyInfo); - System.err.println("========royaltyInfo=========="+royaltyInfo); +// RoyaltyDetailInfos royaltyDetailInfo1 = new RoyaltyDetailInfos(); +// royaltyDetailInfo1.setTransOutType("userId"); +// royaltyDetailInfo1.setTransOut(aliAppid); +// royaltyDetailInfo1.setTransInType("loginName"); +// royaltyDetailInfo1.setTransIn("18398968484"); +// +// royaltyDetailInfo1.setDesc("分账描述1"); +// royaltyDetailInfo1.setAmountPercentage("10"); +// List<RoyaltyDetailInfos> royaltyDetailInfos = new ArrayList<>(); +// +// +// +// +// royaltyInfo.setRoyaltyDetailInfos(royaltyDetailInfos); +// model.setRoyaltyInfo(royaltyInfo); +// System.err.println("========royaltyInfo=========="+royaltyInfo); diff --git a/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java index b294a0c..8457a24 100644 --- a/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java +++ b/cloud-server-other/src/main/java/com/dsh/other/util/TaskUtil.java @@ -10,6 +10,7 @@ import javax.annotation.Resource; import java.util.Date; import java.util.List; +import java.util.concurrent.TimeUnit; /** * @author zhibing.pu @@ -65,4 +66,25 @@ } + @Scheduled(fixedRate = 60000) + public void taskMinute2(){ + try { + List<SiteBooking> siteBookings = siteBookingMapper.selectList(new LambdaQueryWrapper<SiteBooking>().eq(SiteBooking::getStatus, 0)); + for (SiteBooking siteBooking : siteBookings) { + long time = siteBooking.getInsertTime().getTime(); + long currentTime = System.currentTimeMillis(); + long timeDifference = currentTime - time; + long minutes = TimeUnit.MILLISECONDS.toMinutes(timeDifference); + if (minutes > 30) { + siteBooking.setStatus(5); + siteBookingMapper.updateById(siteBooking); + } + } + //定时修改赛事状态 + } catch (Exception e) { + e.printStackTrace(); + } + } + + } diff --git a/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml b/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml index cf4e91d..6a5ac81 100644 --- a/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml +++ b/cloud-server-other/src/main/resources/mapper/SiteBookingMapper.xml @@ -4,7 +4,7 @@ <select id="queryDatas" resultType="com.dsh.other.model.BillingRequestOfType"> - SELECT DATE_FORMAT(insertTime, '%m-%d %H:%i')as `time`, + SELECT DATE_FORMAT(insertTime, '%m-%d %H:%i')as `time`,DATE_FORMAT(payTime, '%m-%d %H:%i')as `time1`, payMoney as amount, `status` from t_site_booking -- Gitblit v1.7.1