liujie
2023-10-26 e030255c23c7ba3e2cbad1036a810d6d72fa864f
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -2,31 +2,50 @@
import com.dsh.course.dto.*;
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.course.CoursePackageClient;
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.HistoryClient;
import com.dsh.course.model.MoneyBack;
import com.dsh.course.model.dto.InsertBackDto;
import com.dsh.course.model.dto.StudentClassInfo;
import com.dsh.course.util.ChineseMoneyUtils;
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.dto.SelectDto;
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.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;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
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.*;
/**
 * 控制器
@@ -50,16 +69,77 @@
    @RequestMapping("download")
    public void down(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // Get the InputStream from a file or any other source
        InputStream inputStream = request.getInputStream(); // Obtain the InputStream
        // Set the content type of the response
        response.setContentType("application/octet-stream");
        // Set the headers for file download
        response.setHeader("Content-Disposition", "attachment; filename=\"filename.extension\"");
        // Get the OutputStream from the response
        OutputStream outputStream = response.getOutputStream();
        // Copy the data from InputStream to OutputStream
        byte[] buffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
        }
        HtmlToPdfUtils.convertToPdf(inputStream,null,outputStream);
        // Close the streams
        inputStream.close();
        outputStream.close();
    }
    /**
     * 获取变更列表
     */
    /**
     * 获取有效期
     */
    @RequestMapping("/changelist/{payId}")
    @ResponseBody
    public ResultUtil changelist(@PathVariable("payId") Long payId, ConsumeQuery consumeQuery) {
        consumeQuery.setPayId(payId);
        System.out.println("=======changelist==========="+consumeQuery);
        List<CourseCounsum> courseCounsums =   courseStuddentClient.queryCounsum(consumeQuery);
        Map<String,List<CourseCounsum>> map = new HashMap<>();
        map.put("items",courseCounsums);
        return new ResultUtil<>(0,0,null,map,null);
    }
    /**
     * 跳转到首页
     */
    @RequestMapping("")
    public String index() {
    public String index(Model model) {
        Integer objectType = UserExt.getUser().getObjectType();
        model.addAttribute("objectType",objectType);
        return PREFIX + "tStudent.html";
    }
    @RequestMapping("TTT")
    public String index1() {
        return PREFIX + "tStudentEditTTT.html";
    }
    @RequestMapping("openAddCoursePackage")
    public String index3() {
        return PREFIX + "classelct.html";
    }
    @RequestMapping("trans")
    public String index2() {
        return PREFIX + "trans.html";
    }
    /**
     * 跳转到添加
@@ -69,6 +149,93 @@
        return PREFIX + "tStudent_add.html";
    }
    @Resource
    private CoursePackageClient coursePackageClient;
    /**
     * 获取有效期
     */
    @RequestMapping("/getBackList/{tStudentId}")
    @ResponseBody
    public ResultUtil getBackList(@PathVariable("tStudentId") Integer tStudentId) {
        List<MoneyBack> moneyBacks  = courseStuddentClient.getMoneyBack(tStudentId);
        Map<String, List<MoneyBack>> map = new HashMap<>();
        map.put("items",moneyBacks);
        return new ResultUtil<>(0,0,null,map,null);
    }
    /**
     * 跳转到退款
     */
    @RequestMapping("/backmoney")
    public String backmoney(Integer id,String ids,Model model) {
        TStudentDto tStudentDto = appUserClient.queryOneWebUser(id);
        model.addAttribute("id", id);
        model.addAttribute("ids", ids);
        TAppUser tAppUser = appUserClient.queryById(tStudentDto.getAppUserId());
        model.addAttribute("userName",tAppUser.getName());
        model.addAttribute("tStudentDto",tStudentDto);
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String formattedDate = dateFormat.format(new Date());
        model.addAttribute("reDate", formattedDate);
        List<TCoursePackagePayment> coursePackagePayments =  courseStuddentClient.queryByIds(ids);
        BigDecimal countAll = new BigDecimal(0);
        for (TCoursePackagePayment payment : coursePackagePayments){
            //课包名称
            TCoursePackage tCoursePackage = coursePackageClient.queryById(payment.getCoursePackageId());
            payment.setName(tCoursePackage.getName());
            payment.setId(Long.valueOf(tCoursePackage.getId()));
            BigDecimal cashPayment = payment.getCashPayment();
            if (cashPayment==null){
                cashPayment = BigDecimal.ZERO;
            }
            Integer totalClassHours = payment.getTotalClassHours();
            BigDecimal result =  new BigDecimal(0);
            if (totalClassHours!=0) {
                result = cashPayment.divide(BigDecimal.valueOf(totalClassHours), 2, RoundingMode.HALF_UP);
            }
            //单价
            payment.setOnePrice(result);
            int has = payment.getTotalClassHours() - payment.getLaveClassHours();
            //剩余课时
            payment.setHasHours(has);
            BigDecimal onePrice = payment.getOnePrice();
            Integer laveClassHours = payment.getLaveClassHours();
            BigDecimal result1 = onePrice.multiply(BigDecimal.valueOf(laveClassHours));
            //总价
            payment.setRestPrice(result1);
            System.out.println("======="+result1);
            countAll = countAll.add(result1);
        }
        //中文总价
//        String allprice = BigDecimalToChineseAmountUtil.convertToChineseAmount(countAll);
        String allprice = ChineseMoneyUtils.toChineseMoney(countAll);
        model.addAttribute("countAll", countAll);
        model.addAttribute("allprice", allprice);
        model.addAttribute("coursePackagePayments", coursePackagePayments);
        model.addAttribute("index",1);
        System.out.println("=====ids========"+ids);
        return PREFIX + "banckmoney.html";
    }
    /**
     * 跳转到修改
     */
@@ -88,7 +255,7 @@
                model.addAttribute("pic2", pics[1]);
                System.out.println("=====pic2==" + pics[1]);
            }
            if (pics.length > 3) {
            if (pics.length > 2) {
                model.addAttribute("pic3", pics[2]);
                System.out.println("=====pic3==" + pics[2]);
            }
@@ -121,7 +288,7 @@
                model.addAttribute("pic2", pics[1]);
                System.out.println("=====pic2==" + pics[1]);
            }
            if (pics.length > 3) {
            if (pics.length > 2) {
                model.addAttribute("pic3", pics[2]);
                System.out.println("=====pic3==" + pics[2]);
            }
@@ -135,6 +302,18 @@
        System.out.println("=======controller====studentClassInfo==="+studentClassInfo);
        return PREFIX + "tStudentEdit.html";
    }
    @Autowired
    private EvaluateStudentService evalstuService;
    @RequestMapping("/tStudent_commite/{tStudentId}")
    public String tStudent_commite(@PathVariable("tStudentId") Integer tStudentId, Model model) {
        model.addAttribute("id",tStudentId);
        return PREFIX + "tStudent_commite.html";
    }
@@ -161,10 +340,120 @@
    @RequestMapping("/list")
    @ResponseBody
    public List<TStudentDto> list(StudentSearch search) {
        List<Integer> ids = new ArrayList<>();
        if(UserExt.getUser().getObjectType()==3){
            ids = appUserClient.getUserStore(UserExt.getUser().getObjectId());
            if(ids.size()==0){
                ids.add(-1);
            }
            search.setIds(ids);
        }
        if(UserExt.getUser().getObjectType()==2){
            ids = appUserClient.getUserYYs(UserExt.getUser().getObjectId());
            if(ids.size()==0){
                ids.add(-1);
            }
            search.setIds(ids);
        }
        System.out.println("============学员查询接口=========");
        return itStudentService.listAll(search);
    }
    @Autowired
    private  EvaluateStudentService evaluateStudentService;
    @Resource
    private StudentClient studentClient;
    /**
     * 获取列表
     */
    @RequestMapping("/listcom/{id}")
    @ResponseBody
    public List<Map<String,Object>> listcom(@PathVariable("id") Integer 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());
        appUserClient.save(evaluateStudent);
//        evaluateStudentService.save(evaluateStudent);
        return new ResultUtil<>(0,0,"保存成功",null,null);
    }
    @RequestMapping("/updatecom")
    @ResponseBody
    public ResultUtil updatecom(Integer id,String content,String images) {
        EvaluateStudent evaluateStudent = new EvaluateStudent();
        evaluateStudent.setId(id);
        evaluateStudent.setContent(content);
        evaluateStudent.setImgs(images);
        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();
    }
    /**
     * 获取列表
@@ -180,12 +469,55 @@
//保存退款记录
    @RequestMapping("/ttt")
    @ResponseBody
    public ResultUtil list1(StudentSearch search) {
    public ResultUtil list1(Integer id, String ids) {
        InsertBackDto insertBackDto= new InsertBackDto();
        insertBackDto.setId(id);
        insertBackDto.setIds(ids);
        System.out.println("=====insertBackDto========"+insertBackDto);
        courseStuddentClient.insertBack(insertBackDto);
        //取消排课
        courseStuddentClient.cancel(ids);
        System.out.println("============学员查询接口=========");
        return ResultUtil.success();
    }
//同意退款
    @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);
    }
    @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.backStausClass(id);
//        courseStuddentClient.zeroClass(id);
        System.out.println("============学员查询接口=========");
        return new ResultUtil<>(0,0,"同意成功",null,null);
    }
    /**
@@ -194,8 +526,10 @@
    @RequestMapping(value = "/update")
    @ResponseBody
    public ResultUtil update(@RequestBody TStudent tStudent, String image1, String image2, String image3 ) {
        String lateralSurface = image1+";"+image2+";"+image3;
    public ResultUtil update(@RequestBody TStudent tStudent) {
        String lateralSurface = tStudent.getImage1()+";"+tStudent.getImage2()+";"+tStudent.getImage3();
        System.out.println("=======lateralSurface======>?"+lateralSurface);
        tStudent.setLateralSurface(lateralSurface);
        System.out.println("学员体测表的值"+lateralSurface);
        itStudentService.update(tStudent);
@@ -240,7 +574,7 @@
        historyClient.createHistory(historyDto);
        return ResultUtil.success();
        return new ResultUtil<>(0,0,"更改成功",null,null);
    }
@@ -263,11 +597,134 @@
     */
    @RequestMapping(value = "/getUserSlect/{id}")
    @ResponseBody
    public ResultUtil getUserSlect(@PathVariable("id") Integer payId) {
    public ResultUtil getUserSlect(@PathVariable("id") Long payId) {
       List<SelectDto>  selectDtos =  courseStuddentClient.getSelect(payId);
        Map<String,List<SelectDto>> map = new HashMap<>();
        map.put("options",selectDtos);
        return new ResultUtil(0,0,"编辑成功",map,"");
    }
    /**
     * 学员转移课程
     */
    @RequestMapping(value = "/toClass")
    @ResponseBody
    public ResultUtil toClass( Long id,Integer toStudentId) {
        ToClassDto toClassDto = new ToClassDto();
        toClassDto.setToStudentId(toStudentId);
        toClassDto.setId(id);
        courseStuddentClient.toClass(toClassDto);
//        Map<String,List<SelectDto>> map = new HashMap<>();
//        map.put("options",selectDtos);
        return new ResultUtil(0,0,"编辑成功",1,"");
    }
    /**
     * 赠送课时下拉框
     */
    @RequestMapping(value = "/giftSelect")
    @ResponseBody
    public ResultUtil giftSelect(GiftSearchDto giftSearchDto) {
        List<SelectDto>  selectDtos =  appUserClient.giftSelect(giftSearchDto);
        Map<String,List<SelectDto>> map = new HashMap<>();
        map.put("options",selectDtos);
//        Map<String,List<SelectDto>> map = new HashMap<>();
//        map.put("options",selectDtos);
        return new ResultUtil(0,0,"编辑成功",map,"");
    }
    //获取可报名假期课程下拉框
    @RequestMapping(value = "/getholi/{id}")
    @ResponseBody
    public ResultUtil giftSelect(@PathVariable("id") Integer id) {
        List<SelectDto>  selectDtos =  courseStuddentClient.getGiftSelect(id);
        Map<String,List<SelectDto>> map = new HashMap<>();
        map.put("options",selectDtos);
        return new ResultUtil(0,0,"编辑成功",map,"");
    }
    //获取可转换常规课程下拉框
    @RequestMapping(value = "/gettrans/{id}")
    @ResponseBody
    public ResultUtil gettrans(@PathVariable("id") Integer id) {
        List<SelectDto>  selectDtos =  courseStuddentClient.getTransSelect(id);
        Map<String,List<SelectDto>> map = new HashMap<>();
        map.put("options",selectDtos);
        return new ResultUtil(0,0,"编辑成功",map,"");
    }
    //消耗时长可报名假期课程
    @RequestMapping(value = "/Toholi")
    @ResponseBody
    public ResultUtil Toholi(Integer id,String ids,Integer holiId,Integer classNum) {
        String[] stringArray = ids.split(",");
        ToHoliDto toHoliDto  = new ToHoliDto();
        toHoliDto.setId(id);
        toHoliDto.setIds(stringArray);
        toHoliDto.setClassNum(classNum);
        toHoliDto.setClassId(holiId);
        String resultUtil = courseStuddentClient.toHoli(toHoliDto);
        System.out.println("========ToHoliDto========="+resultUtil);
        if (resultUtil==""||resultUtil==null){
            return new ResultUtil<>(0,0,"报名成功");
        }else{
        return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);}
    }
    @RequestMapping(value = "/ToTrans")
    @ResponseBody
    public ResultUtil Totans(Integer id,String ids,Integer holiId,Integer classNum) {
        String[] stringArray = ids.split(",");
        ToHoliDto toHoliDto  = new ToHoliDto();
        toHoliDto.setId(id);
        toHoliDto.setIds(stringArray);
        toHoliDto.setClassNum(classNum);
        toHoliDto.setClassId(holiId);
        String resultUtil = courseStuddentClient.toTrans(toHoliDto);
        System.out.println("========ToHoliDto========="+resultUtil);
        if (resultUtil==""){
            return new ResultUtil<>(0,0,"报名成功");
        }else{
            return new ResultUtil<>(0,0,"报名成功,以下学员剩余课时不足"+resultUtil);}
    }
    //赠课
    @RequestMapping(value = "/giftTo")
    @ResponseBody
    public ResultUtil toClagiftToss( Long id,Integer toStudentId) {
        ToClassDto toClassDto = new ToClassDto();
        toClassDto.setToStudentId(toStudentId);
        toClassDto.setId(id);
        courseStuddentClient.toClass(toClassDto);
//        Map<String,List<SelectDto>> map = new HashMap<>();
//        map.put("options",selectDtos);
        return new ResultUtil(0,0,"编辑成功",1,"");
    }
}