From aa43a92c7ec9053dbaef92fe5ccb3011b670442c Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 12 七月 2023 11:46:21 +0800 Subject: [PATCH] 更新线上视频奖励模块接口 --- cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 352 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 345 insertions(+), 7 deletions(-) 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 b96ad10..4ab69ac 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 @@ -1,20 +1,54 @@ package com.dsh.account.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.account.entity.Coach; +import com.dsh.account.entity.TAppUser; import com.dsh.account.entity.TStudent; +import com.dsh.account.feignclient.activity.IntroduceRewardsClient; +import com.dsh.account.feignclient.activity.UserConponClient; +import com.dsh.account.feignclient.activity.model.IntrduceOfUserRequest; +import com.dsh.account.feignclient.competition.DeductionCompetitionsClient; +import com.dsh.account.feignclient.competition.ParticipantClient; +import com.dsh.account.feignclient.competition.model.GetStuSourseList; +import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; +import com.dsh.account.feignclient.competition.model.SaveParticipant; +import com.dsh.account.feignclient.course.CancelListClient; +import com.dsh.account.feignclient.course.CoursePaymentClient; +import com.dsh.account.feignclient.course.CourseRecordClient; import com.dsh.account.feignclient.course.CourseSessionNameClient; -import com.dsh.account.feignclient.course.model.StuSessionDetailsVo; +import com.dsh.account.feignclient.course.model.*; +import com.dsh.account.feignclient.other.NoticeClient; +import com.dsh.account.feignclient.other.QuestionClient; +import com.dsh.account.feignclient.other.StoreClient; +import com.dsh.account.feignclient.other.model.*; +import com.dsh.account.mapper.CoachMapper; +import com.dsh.account.mapper.TAppUserMapper; import com.dsh.account.mapper.TStudentMapper; +import com.dsh.account.model.vo.classDetails.ClasspaymentRequest; import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo; import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq; +import com.dsh.account.model.vo.classDetails.classInsVo.StuListVo; +import com.dsh.account.model.vo.exploreDetail.ExploreDatasVo; +import com.dsh.account.model.vo.exploreDetail.LonLatRequest; +import com.dsh.account.model.vo.exploreDetails.QuestionDetailsVo; +import com.dsh.account.model.vo.exploreDetails.QuestionIns; +import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo; +import com.dsh.account.model.vo.sourceDetail.CourseDetailsOfContinuationResp; +import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest; import com.dsh.account.service.TStudentService; +import com.dsh.account.util.DateTimeHelper; +import com.dsh.account.util.DateUtil; +import com.dsh.account.util.ResultUtil; import com.dsh.account.util.ToolUtil; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; /** * <p> @@ -27,8 +61,47 @@ @Service public class TStudentServiceImpl extends ServiceImpl<TStudentMapper, TStudent> implements TStudentService { - @Autowired + @Resource private CourseSessionNameClient sessionNameClient; + + @Resource + private DeductionCompetitionsClient dcttClient; + + @Resource + private CancelListClient cancelcClient; + + @Resource + private IntroduceRewardsClient idrClient; + + @Resource + private CourseRecordClient crClient; + + @Resource + private CoursePaymentClient couPayClient; + + @Resource + private UserConponClient userCClient; + + @Resource + private StoreClient storeClient; + + @Resource + private NoticeClient noClient; + + @Resource + private QuestionClient quesClient; + + @Resource + private TAppUserMapper tauMapper; + + @Resource + private CoachMapper coachMapper; + + @Resource + private ParticipantClient participantClient; + + + @Override public void addStuOfAppUser(StuDetailsReq stu,Integer appUserId) { @@ -49,22 +122,287 @@ student.setInsertTime(new Date()); student.setState(1); this.baseMapper.insert(student); + + //同步信息到参赛人员信息中 + SaveParticipant saveParticipant = new SaveParticipant(); + saveParticipant.setAppUserId(appUserId); + saveParticipant.setName(student.getName()); + saveParticipant.setBirthday(student.getBirthday()); + saveParticipant.setGender(student.getSex()); + saveParticipant.setHeight(student.getHeight().intValue()); + saveParticipant.setWeight(student.getWeight()); + saveParticipant.setPhone(student.getPhone()); + saveParticipant.setIdcard(student.getIdCard()); + participantClient.saveParticipant(saveParticipant); } @Override public ClassDetailsInsVo querySessionDetailsDt(Integer userIdFormRedis, Integer lessonId, Integer stuId) { ClassDetailsInsVo insVo = new ClassDetailsInsVo(); - List<StuSessionDetailsVo> stuSessionList = sessionNameClient.getStuSessionList(stuId,userIdFormRedis); + Date localMonthStart = DateTimeHelper.getCurrentMouthStart(); + Date localMonthEnd = DateTimeHelper.getCurrentMouthEnd(); + GetStuSessionList getStuSessionList = new GetStuSessionList(); + getStuSessionList.setStartTime(localMonthStart); + getStuSessionList.setEndTime(localMonthEnd); + getStuSessionList.setStuId(stuId); + getStuSessionList.setAppUserId(userIdFormRedis); + List<StuSessionDetailsVo> stuSessionList = sessionNameClient.getStuSessionList(getStuSessionList); TStudent tStudent = this.baseMapper.selectById(stuId); if (ToolUtil.isNotEmpty(tStudent)){ insVo.setStuId(tStudent.getId()); insVo.setStuName(tStudent.getName()); insVo.setStuImage(tStudent.getHeadImg()); - insVo.setSessionNames(stuSessionList); + List<PurchaseRecordVo> purchaseRecordVoList = new ArrayList<>(); + GetStuSourseList getStuSourseList = new GetStuSourseList(); + getStuSourseList.setStartTime(localMonthStart); + getStuSourseList.setEndTime(localMonthEnd); + getStuSourseList.setAppUserId(userIdFormRedis); + List<PurchaseRecordVo> stuSourseList = dcttClient.getStuSourseList(getStuSourseList); + purchaseRecordVoList.addAll(stuSourseList); + GetStuSessionList sessionList = new GetStuSessionList(); + sessionList.setStartTime(localMonthStart); + sessionList.setEndTime(localMonthEnd); + sessionList.setStuId(stuId); + sessionList.setAppUserId(userIdFormRedis); + List<PurchaseRecordVo> cancelCourseList = cancelcClient.getCancelCourseList(sessionList); + + purchaseRecordVoList.addAll(cancelCourseList); + List<PurchaseRecordVo> purchaseRecordVos = sessionNameClient.queryCourseDetails(getStuSessionList); + purchaseRecordVoList.addAll(purchaseRecordVos); + List<TAppUser> tAppUsers = tauMapper.selectList(new QueryWrapper<TAppUser>() + .eq("referralUserId",userIdFormRedis ) + .between("insertTime",localMonthStart ,localMonthEnd)); + List<Integer> userIds = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList()); + IntrduceOfUserRequest request = new IntrduceOfUserRequest(); + request.setStartTime(localMonthStart); + request.setEndTime(localMonthEnd); + request.setUserIds(userIds); + List<PurchaseRecordVo> purchaseRecordVos1 = idrClient.queryAppUsersofIntroduce(request); + purchaseRecordVoList.addAll(purchaseRecordVos1); + insVo.setSessionNames(stuSessionList); + insVo.setDetails(dealDataOfTime(purchaseRecordVoList)); + GetStuOfCoursesDetails getStuOfCoursesDetails = new GetStuOfCoursesDetails(); + getStuOfCoursesDetails.setStuId(stuId); + getStuOfCoursesDetails.setAppUserId(userIdFormRedis); + StuWithCoursesListVo stuOfCoursesDetails = couPayClient.getStuOfCoursesDetails(getStuOfCoursesDetails); + insVo.setTotalNums(stuOfCoursesDetails.getTotalNums()); + insVo.setDeductedNums(stuOfCoursesDetails.getDeductedNums()); + insVo.setRemainingNums(stuOfCoursesDetails.getRemainingNums()); + GetStudentCourse course = new GetStudentCourse(); + course.setCourseId(lessonId); + course.setStuId(stuId); + course.setAppUserId(userIdFormRedis); + Integer deductionClassHour = crClient.getDeductionClassHour(course); + insVo.setDeductionClassHours(deductionClassHour); } return insVo; } + + @Override + public List<PurchaseRecordVo> queryDeduRecordDetails(RecordTimeRequest timeRequest,Integer appUserId) { + List<PurchaseRecordVo> purchaseRecordVoList = new ArrayList<>(); + Date startTime = DateTimeHelper.getCurrentIdetMouthStart(timeRequest.getStartTime()); + Date endTime = DateTimeHelper.getCurrentIdeaMouthEnd(timeRequest.getEndTime()); + GetStuSourseList getStuSourseList = new GetStuSourseList(); + getStuSourseList.setStartTime(startTime); + getStuSourseList.setEndTime(endTime); + getStuSourseList.setAppUserId(appUserId); + List<PurchaseRecordVo> stuSourseList = dcttClient.getStuSourseList(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)); + 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); + + purchaseRecordVoList = dealDataOfTime(purchaseRecordVoList); + return purchaseRecordVoList; + } + + @Override + public List<CouponStuAvailableVo> queryStuOfConponDetails(Integer appUserId) { + List<CouponStuAvailableVo> availableVos = new ArrayList<>(); + availableVos = userCClient.queryUserWithConponList(appUserId); + return availableVos; + } + + @Override + public CourseDetailsOfContinuationResp queryStuOfCourseDetails(Integer lessonId, Integer stuId, Integer appUserId) { + CourseDetailsOfContinuationResp resp = new CourseDetailsOfContinuationResp(); + + GetStudentCourse getStudentCourse = new GetStudentCourse(); + getStudentCourse.setCourseId(lessonId); + getStudentCourse.setStuId(stuId); + getStudentCourse.setAppUserId(appUserId); + StudentOfCourseVo studentCourse = couPayClient.getStudentCourse(getStudentCourse); + resp.setCoursePackageId(studentCourse.getCoursePackageId()); + resp.setStuId(stuId); + resp.setPackageImg(studentCourse.getPackageImg()); + resp.setCourseName(studentCourse.getCourseName()); + Coach coach = coachMapper.selectById(studentCourse.getCoachId()); + resp.setTeacherName(coach.getName()); + resp.setCourseWeek(studentCourse.getCourseWeek()); + resp.setCourseTime(studentCourse.getCourseTime()); + + StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(studentCourse.getStoreId()); + resp.setStoreName(courseOfStore.getStoreName()); + resp.setStoreAddr(courseOfStore.getStoreAddr()); + + resp.setTypeList(studentCourse.getTypeList()); + TStudent tStudent = this.baseMapper.selectById(stuId); + resp.setStuName(tStudent.getName()); + resp.setStuPhone(tStudent.getPhone()); + resp.setStuAge(DateUtil.age(tStudent.getBirthday())); + resp.setAmount(studentCourse.getAmount()); + resp.setVipAmount(studentCourse.getVipAmount()); + resp.setWpGold(studentCourse.getWpGold()); + return resp; + } + + @Override + public List<SysNotice> querySystemNoticeDetails() { + return noClient.getSysNoticeDetails(); + } + + @Override + public SysNotice queryNoticeData(Integer noId) { + return noClient.getSysNoticeBuId(noId); + } + + @Override + public QuestionDetailsVo queryQuestionData() { + return quesClient.getSysQuestionDetails(); + } + + @Override + public QuestionIns queryQuestionDataInfo(Integer quesId) { + return quesClient.getSysQuestionBuId(quesId); + } + + @Override + public List<String> queryCustomerDetails() { + return noClient.queryCustomerTel(); + } + + @Override + public ExploreDatasVo queryIndexOfExplores(LonLatRequest llrequest) { + ExploreDatasVo datasVo = new ExploreDatasVo(); + GetAllNearbyStoreList getAllNearbyStoreList = new GetAllNearbyStoreList(); + getAllNearbyStoreList.setLongitude(llrequest.getLongitude()); + getAllNearbyStoreList.setLatitude(llrequest.getLatitude()); + List<StoreInfo> allNearbyStoreList = storeClient.getAllNearbyStoreList(getAllNearbyStoreList); + List<StoreLonLatList> allStoreLonLats = storeClient.getAllStoreLonLats(getAllNearbyStoreList); + datasVo.setStoreLists(allNearbyStoreList); + datasVo.setLonLatLists(allStoreLonLats); + return datasVo; + } + + @Override + public List<StuListVo> switchStudentActions(Integer appUserId, Integer stuId) { + List<StuListVo> stuListVos = new ArrayList<>(); + List<TStudent> tStudents = this.baseMapper.selectList(new QueryWrapper<TStudent>() + .eq("appUserId", appUserId) + .eq("state",1)); + if (tStudents.size() > 0) { + tStudents.forEach(sts -> { + if (Objects.equals(sts.getId(), stuId)) { + sts.setIsDefault(1); + } else { + sts.setIsDefault(2); + } + this.baseMapper.updateById(sts); + + StuListVo vo = new StuListVo(); + vo.setStuId(sts.getId()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + vo.setBirthday(simpleDateFormat.format(sts.getBirthday())); + vo.setStuName(sts.getName()); + vo.setStuAge(DateUtil.age(sts.getBirthday())); + vo.setStuHeight(sts.getHeight()); + vo.setStuWeight(sts.getWeight()); + vo.setIsNot(sts.getIsDefault()); + stuListVos.add(vo); + }); + } + return stuListVos; + } + + + public static List<PurchaseRecordVo> dealDataOfTime(List<PurchaseRecordVo> purchaseRecords) { + Collections.sort(purchaseRecords, new Comparator<PurchaseRecordVo>() { + @Override + public int compare(PurchaseRecordVo record1, PurchaseRecordVo record2) { + SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm"); + Date date1 = null; + Date date2 = null; + try { + date1 = dateFormat.parse(record1.getPurchaseTime()); + date2 = dateFormat.parse(record2.getPurchaseTime()); + } catch (ParseException e) { + e.printStackTrace(); + } + // 倒序排序 + return date2.compareTo(date1); + } + }); + return purchaseRecords; + } + + @Override + public ResultUtil renewClassPayment(Integer userIdFormRedis, ClasspaymentRequest request) { + // TODO: 2023/7/5 续课支付 + switch (request.getPayType()){ + case 1: + WeChatPayment(); + break; + case 2: + AlipayPayment(); + break; + case 3: + PlaypaiGoldPayment(); + break; + default: + break; + } + return ResultUtil.success(); + } + + + public void WeChatPayment(){ + + } + + public void AlipayPayment(){ + + } + + public void PlaypaiGoldPayment(){ + + } + + } -- Gitblit v1.7.1