lisy
2023-07-06 aa0413f95fffba39cabcc78d147595da96b10b32
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -2,34 +2,46 @@
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.model.GetStuSourseList;
import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
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.StuWithCoursesListVo;
import com.dsh.account.feignclient.course.model.StudentOfCourseVo;
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.StoreDetailOfCourse;
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.text.ParseException;
import java.text.SimpleDateFormat;
@@ -47,32 +59,41 @@
@Service
public class TStudentServiceImpl extends ServiceImpl<TStudentMapper, TStudent> implements TStudentService {
    @Autowired
    @Resource
    private CourseSessionNameClient sessionNameClient;
    @Autowired
    @Resource
    private DeductionCompetitionsClient dcttClient;
    @Autowired
    @Resource
    private CancelListClient cancelcClient;
    @Autowired
    @Resource
    private IntroduceRewardsClient idrClient;
    @Autowired
    @Resource
    private CourseRecordClient crClient;
    @Autowired
    @Resource
    private CoursePaymentClient couPayClient;
    @Autowired
    @Resource
    private UserConponClient userCClient;
    @Autowired
    @Resource
    private StoreClient storeClient;
    @Autowired
    @Resource
    private NoticeClient noClient;
    @Resource
    private QuestionClient quesClient;
    @Resource
    private TAppUserMapper tauMapper;
    @Resource
    private CoachMapper coachMapper;
    @Override
    public void addStuOfAppUser(StuDetailsReq stu,Integer appUserId) {
@@ -100,7 +121,12 @@
        ClassDetailsInsVo insVo = new ClassDetailsInsVo();
        Date localMonthStart = DateTimeHelper.getCurrentMouthStart();
        Date localMonthEnd = DateTimeHelper.getCurrentMouthEnd();
        List<StuSessionDetailsVo> stuSessionList = sessionNameClient.getStuSessionList(localMonthStart,localMonthEnd,stuId,userIdFormRedis);
        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());
@@ -108,26 +134,47 @@
            insVo.setStuImage(tStudent.getHeadImg());
            List<PurchaseRecordVo> purchaseRecordVoList = new ArrayList<>();
            List<PurchaseRecordVo> stuSourseList = dcttClient.getStuSourseList(localMonthStart,localMonthEnd,userIdFormRedis);
            GetStuSourseList getStuSourseList = new GetStuSourseList();
            getStuSourseList.setStartTime(localMonthStart);
            getStuSourseList.setEndTime(localMonthEnd);
            getStuSourseList.setAppUserId(userIdFormRedis);
            List<PurchaseRecordVo> stuSourseList = dcttClient.getStuSourseList(getStuSourseList);
            purchaseRecordVoList.addAll(stuSourseList);
            List<PurchaseRecordVo> cancelCourseList = cancelcClient.getCancelCourseList(localMonthStart,localMonthEnd,stuId,userIdFormRedis);
            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(localMonthStart,localMonthEnd,stuId,userIdFormRedis);
            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());
            List<PurchaseRecordVo> purchaseRecordVos1 = idrClient.queryAppUsersofIntroduce(localMonthStart, localMonthEnd, userIds);
            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));
            StuWithCoursesListVo stuOfCoursesDetails = couPayClient.getStuOfCoursesDetails(stuId, userIdFormRedis);
            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());
            Integer deductionClassHour = crClient.getDeductionClassHour(lessonId, stuId, userIdFormRedis);
            GetStudentCourse course = new GetStudentCourse();
            course.setCourseId(lessonId);
            course.setStuId(stuId);
            course.setAppUserId(userIdFormRedis);
            Integer deductionClassHour = crClient.getDeductionClassHour(course);
            insVo.setDeductionClassHours(deductionClassHour);
        }
@@ -139,18 +186,37 @@
        List<PurchaseRecordVo> purchaseRecordVoList = new ArrayList<>();
        Date startTime = DateTimeHelper.getCurrentIdetMouthStart(timeRequest.getStartTime());
        Date endTime = DateTimeHelper.getCurrentIdeaMouthEnd(timeRequest.getEndTime());
        List<PurchaseRecordVo> stuSourseList = dcttClient.getStuSourseList(startTime,endTime,appUserId);
        GetStuSourseList getStuSourseList = new GetStuSourseList();
        getStuSourseList.setStartTime(startTime);
        getStuSourseList.setEndTime(endTime);
        getStuSourseList.setAppUserId(appUserId);
        List<PurchaseRecordVo> stuSourseList = dcttClient.getStuSourseList(getStuSourseList);
        purchaseRecordVoList.addAll(stuSourseList);
        List<PurchaseRecordVo> cancelCourseList = cancelcClient.getCancelCourseList(startTime,endTime,timeRequest.getStuId(),appUserId);
        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);
        List<PurchaseRecordVo> purchaseRecordVos = sessionNameClient.queryCourseDetails(startTime,endTime,timeRequest.getStuId(),appUserId);
        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",timeRequest.getStartTime() ,timeRequest.getEndTime()));
                .between("insertTime",startTime ,endTime));
        List<Integer> userIds = tAppUsers.stream().map(TAppUser::getId).collect(Collectors.toList());
        List<PurchaseRecordVo> purchaseRecordVos1 = idrClient.queryAppUsersofIntroduce(startTime, endTime, userIds);
        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);
@@ -168,11 +234,101 @@
    public CourseDetailsOfContinuationResp queryStuOfCourseDetails(Integer lessonId, Integer stuId, Integer appUserId) {
        CourseDetailsOfContinuationResp resp = new CourseDetailsOfContinuationResp();
        StudentOfCourseVo studentCourse = couPayClient.getStudentCourse(lessonId,stuId,appUserId);
        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;
    }
@@ -196,4 +352,37 @@
        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(){
    }
}