无关风月
2025-05-08 9486766c806fe1d9e082b2fd02ea1cc558f1b443
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -1,14 +1,24 @@
package com.dsh.guns.modular.system.controller.system;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsh.course.dto.*;
import com.dsh.course.entity.CoursePackageOrderStudent;
import com.dsh.course.entity.EvaluateStudent;
import com.dsh.course.feignClient.account.AppUserClient;
import com.dsh.course.feignClient.account.StudentClient;
import com.dsh.course.feignClient.account.model.TAppUser;
import com.dsh.course.feignClient.communityWorldCup.Model.StoreIds;
import com.dsh.course.feignClient.communityWorldCup.WorldCupClient;
import com.dsh.course.feignClient.competition.CompetitionClient;
import com.dsh.course.feignClient.competition.model.ListQuery;
import com.dsh.course.feignClient.course.CoursePackageClient;
import com.dsh.course.feignClient.course.CoursePackagePaymentClient;
import com.dsh.course.feignClient.course.CourseStuddentClient;
import com.dsh.course.feignClient.course.model.TCoursePackage;
import com.dsh.course.feignClient.course.model.TCoursePackagePayment;
import com.dsh.course.feignClient.other.BallClient;
import com.dsh.course.feignClient.other.HistoryClient;
import com.dsh.course.model.MoneyBack;
import com.dsh.course.model.dto.InsertBackDto;
@@ -17,16 +27,14 @@
import com.dsh.course.util.HtmlToPdfUtils;
import com.dsh.guns.config.UserExt;
import com.dsh.guns.core.base.controller.BaseController;
import com.dsh.guns.modular.system.model.CourseCounsum;
import com.dsh.guns.modular.system.model.TStudent;
import com.dsh.guns.modular.system.model.User;
import com.dsh.guns.modular.system.model.*;
import com.dsh.guns.modular.system.model.dto.*;
import com.dsh.guns.modular.system.service.EvaluateStudentService;
import com.dsh.guns.modular.system.service.ITStudentService;
import com.dsh.guns.modular.system.service.*;
import com.dsh.guns.modular.system.util.BigDecimalToChineseAmountUtil;
import com.dsh.guns.modular.system.util.ResultUtil;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;
import org.bouncycastle.math.raw.Mod;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpRequest;
import org.springframework.stereotype.Controller;
@@ -34,6 +42,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.management.relation.RelationService;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@@ -43,10 +52,8 @@
import java.math.RoundingMode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 控制器
@@ -68,7 +75,14 @@
    @Resource
    private HistoryClient historyClient;
    @Autowired
    private IStoreService storeService;
    @Autowired
    private CompetitionClient competitionClient;
    @Autowired
    private ICityService cityService;
    @Autowired
    private CoursePackagePaymentClient coursePackagePaymentClient;
    @RequestMapping("download")
    public void down(HttpServletRequest request, HttpServletResponse response) throws IOException {
@@ -120,7 +134,11 @@
     * 跳转到首页
     */
    @RequestMapping("")
    public String index() {
    public String index(Model model) {
        Integer objectType = UserExt.getUser().getObjectType();
        model.addAttribute("objectType",objectType);
        List<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
        model.addAttribute("list",list);
        return PREFIX + "tStudent.html";
    }
@@ -179,22 +197,35 @@
        model.addAttribute("userName",tAppUser.getName());
        model.addAttribute("tStudentDto",tStudentDto);
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = dateFormat.format(new Date());
        model.addAttribute("reDate", formattedDate);
        List<TCoursePackagePayment> coursePackagePayments =  courseStuddentClient.queryByIds(ids);
        List<CoursePackageOrderStudent> coursePackagePayments =  courseStuddentClient.queryByIds(ids);
        BigDecimal countAll = new BigDecimal(0);
        for (TCoursePackagePayment payment : coursePackagePayments){
        for (CoursePackageOrderStudent payment : coursePackagePayments){
            //课包名称
            TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId());
             List<CoursePackageOrder> ordes =  courseStuddentClient.getOrder(payment.getId());
            payment.setName(tCoursePackage.getName());
            payment.setId(Long.valueOf(tCoursePackage.getId()));
            BigDecimal cashPayment = payment.getCashPayment();
            BigDecimal cashPayment = BigDecimal.ZERO;
            for (CoursePackageOrder order : ordes) {
                BigDecimal cashPayment1 = order.getCashPayment();
                if (cashPayment1 != null) {
                    cashPayment = cashPayment.add(cashPayment1);
                }
            }
            payment.setCashPayment(cashPayment);
//            BigDecimal cashPayment = payment.getCashPayment();
            if (cashPayment==null){
                cashPayment = BigDecimal.ZERO;
            }
@@ -246,17 +277,19 @@
        //查询学员信息
        TStudentDto tStudentDto = itStudentService.listOne(tStudentId);
        model.addAttribute("item", tStudentDto);
        if (tStudentDto.getLateralSurface()!=null) {
        if (tStudentDto.getLateralSurface()!=null&&!tStudentDto.getLateralSurface().equals("")) {
            String[] pics = tStudentDto.getLateralSurface().split(";");
            model.addAttribute("pic1", pics[0]);
            System.out.println("=====pic1==" + pics[0]);
            if (pics.length > 1) {
                model.addAttribute("pic2", pics[1]);
                System.out.println("=====pic2==" + pics[1]);
            }
            if (pics.length > 2) {
                model.addAttribute("pic3", pics[2]);
                System.out.println("=====pic3==" + pics[2]);
            if (pics.length>0) {
                model.addAttribute("pic1", pics[0]);
                System.out.println("=====pic1==" + pics[0]);
                if (pics.length > 1) {
                    model.addAttribute("pic2", pics[1]);
                    System.out.println("=====pic2==" + pics[1]);
                }
                if (pics.length > 2) {
                    model.addAttribute("pic3", pics[2]);
                    System.out.println("=====pic3==" + pics[2]);
                }
            }
        }
@@ -273,24 +306,32 @@
        return PREFIX + "tStudentEdit_first.html";
    }
    @Autowired
    private IMenuService menuService;
    @Autowired
    private IRelationService relationService;
    @RequestMapping("/tStudent_info/{tStudentId}")
    public String tStudentInfo(@PathVariable("tStudentId") Integer tStudentId, Model model) {
        System.out.println("======>t"+tStudentId);
        //查询学员信息
        TStudentDto tStudentDto = itStudentService.listOne(tStudentId);
        // 查询该学员第一次购买课包的时间
        String time = coursePackagePaymentClient.getTime(tStudentId);
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            if (time!=null){
                Date parse = format.parse(time);
                tStudentDto.setTime(parse);
            }
        } catch (ParseException e) {
            e.printStackTrace();
        }
        model.addAttribute("item", tStudentDto);
        if (tStudentDto.getLateralSurface()!=null) {
            String[] pics = tStudentDto.getLateralSurface().split(";");
            model.addAttribute("pic1", pics[0]);
            System.out.println("=====pic1==" + pics[0]);
            if (pics.length > 1) {
                model.addAttribute("pic2", pics[1]);
                System.out.println("=====pic2==" + pics[1]);
            }
            if (pics.length > 2) {
                model.addAttribute("pic3", pics[2]);
                System.out.println("=====pic3==" + pics[2]);
            }
        if (tStudentDto.getLateralSurface()!=null&&!tStudentDto.equals("")) {
            model.addAttribute("images",tStudentDto.getLateralSurface());
        }
@@ -300,6 +341,17 @@
        System.out.println("=======controller====studentClassInfo==="+studentClassInfo);
        User user = UserExt.getUser();
        List<Relation> list = relationService.list(new QueryWrapper<Relation>().eq("menuid", 391).eq("roleid", user.getRoleid()));
        if (!list.isEmpty()){
            model.addAttribute("back",false);
        }else {
            model.addAttribute("back",true);
        }
        return PREFIX + "tStudentEdit.html";
    }
@@ -326,20 +378,103 @@
    @RequestMapping("/getUseTime/{tStudentId}")
    @ResponseBody
    public ResultUtil getMax(@PathVariable("tStudentId") Integer tStudentId) {
        Date useTime = courseStuddentClient.getUseTime(tStudentId);
        Date vali = studentClient.getById(tStudentId);
//        Date useTime = courseStuddentClient.getUseTime(tStudentId);
        Map<String, Date> map = new HashMap<>();
        map.put("useTime",useTime);
        map.put("useTime",vali);
        return new ResultUtil<>(0,0,null,map,null);
    }
    @Autowired
    private ISiteBookingService siteBookingService;
    @Autowired
    private BallClient ballClient;
    @Autowired
    private WorldCupClient worldCupClient;
    /**
     * 获取列表
     */
    @RequestMapping("/list")
    @ResponseBody
    public List<TStudentDto> list(StudentSearch search) {
        List<Integer> ids = new ArrayList<>();
        if(UserExt.getUser().getObjectType()==3){
            List<Integer> storeIds = new ArrayList<>();
            storeIds.add(UserExt.getUser().getObjectId());
            ListQuery listQuery = new ListQuery();
            listQuery.setIds(storeIds);
            // 赛事
            List<Integer> list = competitionClient.getUserIds(listQuery);
            // 获取场地预约记录 拿到用户ids
            List<Integer> siteUsers = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", storeIds))
                    .stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
            // 获取课程购买记录 拿到用户ids
            List<Integer> cpUsers = coursePackageClient.getCoursePackageByStoreIds(storeIds);
            // 获取游戏记录 拿到用户ids
            List<Integer> gameUsers = ballClient.getGameByStoreIds(storeIds);
            // 世界杯参与记录 拿到用户ids
            StoreIds req = new StoreIds();
            req.setStoreIds(storeIds);
            List<Integer> studentIds = worldCupClient.getStudentIds(req);
            // 用户ids
            List<Integer> users = new ArrayList<>();
            users.addAll(list);
            users.addAll(siteUsers);
            users.addAll(cpUsers);
            users.addAll(gameUsers);
            users.addAll(studentIds);
            // 去重后的用户id
            List<Integer> collect = users.stream().distinct().collect(Collectors.toList());
            ids = appUserClient.getUserStore(UserExt.getUser().getObjectId());
            ids.addAll(collect);
            List<Integer> collect1 = ids.stream().distinct().collect(Collectors.toList());
            if(ids.size()==0){
                ids.add(-1);
            }
            search.setIds(collect1);
        }
        if(UserExt.getUser().getObjectType()==2){
            // 获取运营商下的所有门店id集合
            List<Integer> storeIds = storeService.list(new QueryWrapper<TStore>()
                    .eq("operatorId", UserExt.getUser().getObjectId()))
                    .stream().map(TStore::getId).collect(Collectors.toList());
            // 根据门店id集合查询 属于该运营商下的门店举办的赛事
            ListQuery listQuery = new ListQuery();
            listQuery.setIds(storeIds);
            // 通过门店ids 获取赛事的支付记录 获取到用户的ids
            List<Integer> list = competitionClient.getUserIds(listQuery);
            // 获取场地预约记录 拿到用户ids
            List<Integer> siteUsers = siteBookingService.list(new QueryWrapper<SiteBooking>().in("storeId", storeIds))
                    .stream().map(SiteBooking::getAppUserId).collect(Collectors.toList());
            // 获取课程购买记录 拿到用户ids
            List<Integer> cpUsers = coursePackageClient.getCoursePackageByStoreIds(storeIds);
            // 获取游戏记录 拿到用户ids
            List<Integer> gameUsers = ballClient.getGameByStoreIds(storeIds);
            // 世界杯参与记录 拿到学员ids
            StoreIds req = new StoreIds();
            req.setStoreIds(storeIds);
            List<Integer> studentIds = worldCupClient.getStudentIds(req);
            // 用户ids
            List<Integer> users = new ArrayList<>();
            users.addAll(list);
            users.addAll(siteUsers);
            users.addAll(cpUsers);
            users.addAll(gameUsers);
            users.addAll(studentIds);
            // 去重后的用户id
            List<Integer> collect = users.stream().distinct().collect(Collectors.toList());
            ids = appUserClient.getUserYYs(UserExt.getUser().getObjectId());
            ids.addAll(collect);
            List<Integer> collect1 = ids.stream().distinct().collect(Collectors.toList());
            if(ids.size()==0){
                ids.add(-1);
            }
            search.setIds(collect1);
        }
        System.out.println("============学员查询接口=========");
        return itStudentService.listAll(search);
    }
@@ -358,12 +493,81 @@
    @RequestMapping("/listcom/{id}")
    @ResponseBody
    public List<Map<String,Object>> listcom(@PathVariable("id") Integer id) {
        List<Map<String,Object>> maps =   studentClient.listCom(id);
        List<Map<String,Object>> maps =  studentClient.listCom(id);
        return maps;
    }
    @RequestMapping("/addcom/{id}")
    @ResponseBody
    public ResultUtil addcom(@PathVariable("id") Integer id,String content,String image) {
        EvaluateStudent evaluateStudent = new EvaluateStudent();
        evaluateStudent.setStudentId(id);
        evaluateStudent.setContent(content);
        evaluateStudent.setImgs(image);
//        evaluateStudent.setInsertTime(new Date());
        User user = UserExt.getUser();
        evaluateStudent.setCoachId(user.getId());
        appUserClient.save(evaluateStudent);
//        evaluateStudentService.save(evaluateStudent);
        return new ResultUtil<>(0,0,"保存成功",null,null);
    }
    @RequestMapping("/updatecom")
    @ResponseBody
    public ResultUtil updatecom(@RequestBody StudentPingYuDTO dto) {
        EvaluateStudent evaluateStudent = new EvaluateStudent();
        evaluateStudent.setId(dto.getId());
        evaluateStudent.setContent(dto.getContent());
        evaluateStudent.setImgs(dto.getImages());
        appUserClient.save(evaluateStudent);
//        evaluateStudentService.updateById(evaluateStudent);
        return new ResultUtil<>(0,0,"修改成功",null,null);
    }
    @RequestMapping("/comdel/{id}")
    @ResponseBody
    public ResultUtil comdel(@PathVariable("id") Integer id) {
        appUserClient.comdel(id);
//        evaluateStudentService.removeById(id);
        return new ResultUtil<>(0,0,"删除成功",null,null);
    }
    @RequestMapping("/frozen")
    @ResponseBody
    public ResultUtil forzen(Integer id,Integer state){
            TStudent student = new TStudent();
            student.setId(id);
            student.setState(state);
            studentClient.frozen(student);
            return ResultUtil.success();
    }
@@ -373,7 +577,18 @@
    @RequestMapping("/classList/{tStudentId}")
    @ResponseBody
    public ResultUtil listClass(@PathVariable("tStudentId") Integer tStudentId) {
        // 需要过滤体验课
        List<ClassListDto> classListDtos = courseStuddentClient.listClass(tStudentId);
        for (ClassListDto classListDto : classListDtos) {
            if (classListDto.getClassType()==2){
                classListDto.setTotalClassHours(null);
                classListDto.setHasClassHours(null);
                classListDto.setLaveClassHours(null);
                continue;
            }
            classListDto.setHasClassHours(classListDto.getTotalClassHours()-classListDto.getLaveClassHours());
        }
        Map<String,List<ClassListDto>> map = new HashMap<>();
        map.put("items",classListDtos);
        return new ResultUtil<>(0,0,null,map,null);
@@ -391,11 +606,14 @@
        insertBackDto.setIds(ids);
        System.out.println("=====insertBackDto========"+insertBackDto);
        courseStuddentClient.insertBack(insertBackDto);
        Integer i = courseStuddentClient.insertBack(insertBackDto);
        if (i == 1){
            return ResultUtil.error("当前课程已在退费申请中");
        }
        //取消排课
        courseStuddentClient.cancel(ids);
        System.out.println("============学员查询接口=========");
//        courseStuddentClient.cancel(ids);
//        System.out.println("============学员查询接口=========");
        return ResultUtil.success();
    }
@@ -404,32 +622,21 @@
    @RequestMapping("/changeStatus/{id}")
    @ResponseBody
    public ResultUtil changeStatus(@PathVariable Integer id) {
//        InsertBackDto insertBackDto= new InsertBackDto();
//        insertBackDto.setId(id);
////        insertBackDto.setIds(ids);
//        System.out.println("=====insertBackDto========"+insertBackDto);
        courseStuddentClient.changeStatus(id);
        courseStuddentClient.zeroClass(id);
        System.out.println("============学员查询接口=========");
        return new ResultUtil<>(0,0,"同意成功",null,null);
        return new ResultUtil<>(0,0,"已同意",null,null);
    }
    @RequestMapping("/noStatus/{id}")
    @ResponseBody
    public ResultUtil noStatus(@PathVariable Integer id) {
//        InsertBackDto insertBackDto= new InsertBackDto();
//        insertBackDto.setId(id);
////        insertBackDto.setIds(ids);
//        System.out.println("=====insertBackDto========"+insertBackDto);
        courseStuddentClient.changeStatus(id);
        courseStuddentClient.noStatus(id);
        courseStuddentClient.backStausClass(id);
//        courseStuddentClient.zeroClass(id);
        System.out.println("============学员查询接口=========");
        return new ResultUtil<>(0,0,"同意成功",null,null);
        return new ResultUtil<>(0,0,"已拒绝",null,null);
    }
    /**
@@ -439,11 +646,25 @@
    @ResponseBody
    public ResultUtil update(@RequestBody TStudent tStudent) {
        String lateralSurface = tStudent.getImage1()+";"+tStudent.getImage2()+";"+tStudent.getImage3();
        List<String> strings = new ArrayList<>();
        if (!tStudent.getImage1().isEmpty()){
            strings.add(tStudent.getImage1());
        }
        if (!tStudent.getImage2().isEmpty()){
            strings.add(tStudent.getImage2());
        }
        if (!tStudent.getImage3().isEmpty()){
            strings.add(tStudent.getImage3());
        }
        String result = String.join(";", strings);
        System.out.println("=======lateralSurface======>?"+lateralSurface);
        tStudent.setLateralSurface(lateralSurface);
        System.out.println("学员体测表的值"+lateralSurface);
//
//        String lateralSurface = tStudent.getImage1()+";"+tStudent.getImage2()+";"+tStudent.getImage3();
//
//        System.out.println("=======lateralSurface======>?"+lateralSurface);
        tStudent.setLateralSurface(result);
        System.out.println("学员体测表的值"+result);
        itStudentService.update(tStudent);
//        appUserClient.updateStudent(tStudent);
        return new ResultUtil(0,0,"编辑成功");
@@ -472,7 +693,9 @@
        updateTimeDto updateTimeDto =new updateTimeDto(date1,id);
        System.out.println("======updateTimeDto=====>"+updateTimeDto);
        courseStuddentClient.updateUseDate(updateTimeDto);
//        courseStuddentClient.updateUseDate(updateTimeDto);
        studentClient.update(updateTimeDto);
        CreateHistoryDto historyDto = new CreateHistoryDto();
@@ -528,9 +751,6 @@
        toClassDto.setId(id);
        courseStuddentClient.toClass(toClassDto);
//        Map<String,List<SelectDto>> map = new HashMap<>();
//        map.put("options",selectDtos);
        return new ResultUtil(0,0,"编辑成功",1,"");
    }
@@ -542,7 +762,16 @@
    public ResultUtil giftSelect(GiftSearchDto giftSearchDto) {
        List<SelectDto>  selectDtos =  appUserClient.giftSelect(giftSearchDto);
        // 只查询当前用户下 同时也报名了该课程的学员
//        for (SelectDto selectDto : selectDtos) {
//            // 获取课包id
//            TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(giftSearchDto.getId());
//
//            Integer coursePackageId = tCoursePackagePayment.getCoursePackageId();
//            // 学员id 拿到学员id 判断当前学员是否报名了这门课程
//            Long id = selectDto.getId();
//            //
//        }
        Map<String,List<SelectDto>> map = new HashMap<>();
        map.put("options",selectDtos);
//        Map<String,List<SelectDto>> map = new HashMap<>();
@@ -592,10 +821,10 @@
        System.out.println("========ToHoliDto========="+resultUtil);
        if (resultUtil==""||resultUtil==null){
            return new ResultUtil<>(0,0,"报名成功");
        if (resultUtil.equals("报名成功")){
            return new ResultUtil<>(0,0,resultUtil);
        }else{
        return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);}
        return new ResultUtil<>(0,1,resultUtil);}
    }
@@ -616,12 +845,14 @@
        String resultUtil = courseStuddentClient.toTrans(toHoliDto);
        System.out.println("========ToHoliDto========="+resultUtil);
        if (resultUtil.equals("换课成功")) {
                        return new ResultUtil<>(0,0,resultUtil);
        if (resultUtil==""){
            return new ResultUtil<>(0,0,"报名成功");
        }else{
            return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);}
        }else {
            return new ResultUtil<>(0,1,resultUtil);
        }
    }
    //赠课
@@ -631,7 +862,6 @@
        ToClassDto toClassDto = new ToClassDto();
        toClassDto.setToStudentId(toStudentId);
        toClassDto.setId(id);
        courseStuddentClient.toClass(toClassDto);
//        Map<String,List<SelectDto>> map = new HashMap<>();