package com.dsh.guns.modular.system.controller.system; import com.dsh.course.dto.*; import com.dsh.course.feignClient.account.AppUserClient; 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.*; 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.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; /** * 控制器 * * @author fengshuonan * @Date 2023-09-12 14:51:26 */ @Controller @RequestMapping("/tStudent") public class TStudentController extends BaseController { private String PREFIX = "/system/tStudent/"; @Autowired private ITStudentService itStudentService; @Resource private CourseStuddentClient courseStuddentClient; @Resource private HistoryClient historyClient; @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 courseCounsums = courseStuddentClient.queryCounsum(consumeQuery); Map> map = new HashMap<>(); map.put("items",courseCounsums); return new ResultUtil<>(0,0,null,map,null); } /** * 跳转到首页 */ @RequestMapping("") public String index() { 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"; } /** * 跳转到添加 */ @RequestMapping("/tStudent_add") public String tStudentAdd() { return PREFIX + "tStudent_add.html"; } @Resource private CoursePackageClient coursePackageClient; /** * 获取有效期 */ @RequestMapping("/getBackList/{tStudentId}") @ResponseBody public ResultUtil getBackList(@PathVariable("tStudentId") Integer tStudentId) { List moneyBacks = courseStuddentClient.getMoneyBack(tStudentId); Map> 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 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"; } /** * 跳转到修改 */ @RequestMapping("/tStudent_update/{tStudentId}") public String tStudentUpdate(@PathVariable("tStudentId") Integer tStudentId, Model model) { System.out.println("======>t"+tStudentId); //查询学员信息 TStudentDto tStudentDto = itStudentService.listOne(tStudentId); 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]); } } //查询课时信息 StudentClassInfo studentClassInfo = courseStuddentClient.getInfo(tStudentId); model.addAttribute("studentClassInfo", studentClassInfo); //查询课程列表 List classListDtos = courseStuddentClient.listClass(tStudentId); model.addAttribute("classListDtos", classListDtos); return PREFIX + "tStudentEdit_first.html"; } @RequestMapping("/tStudent_info/{tStudentId}") public String tStudentInfo(@PathVariable("tStudentId") Integer tStudentId, Model model) { System.out.println("======>t"+tStudentId); //查询学员信息 TStudentDto tStudentDto = itStudentService.listOne(tStudentId); 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]); } } //查询课时信息 StudentClassInfo studentClassInfo = courseStuddentClient.getInfo(tStudentId); model.addAttribute("studentClassInfo", studentClassInfo); System.out.println("=======controller====studentClassInfo==="+studentClassInfo); return PREFIX + "tStudentEdit.html"; } // /** * 获取有效期 */ @RequestMapping("/getUseTime/{tStudentId}") @ResponseBody public ResultUtil getMax(@PathVariable("tStudentId") Integer tStudentId) { Date useTime = courseStuddentClient.getUseTime(tStudentId); Map map = new HashMap<>(); map.put("useTime",useTime); return new ResultUtil<>(0,0,null,map,null); } /** * 获取列表 */ @RequestMapping("/list") @ResponseBody public List list(StudentSearch search) { System.out.println("============学员查询接口========="); return itStudentService.listAll(search); } /** * 获取列表 */ @RequestMapping("/classList/{tStudentId}") @ResponseBody public ResultUtil listClass(@PathVariable("tStudentId") Integer tStudentId) { List classListDtos = courseStuddentClient.listClass(tStudentId); Map> map = new HashMap<>(); map.put("items",classListDtos); return new ResultUtil<>(0,0,null,map,null); } //保存退款记录 @RequestMapping("/ttt") @ResponseBody 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); } /** * 学员修改 */ @RequestMapping(value = "/update") @ResponseBody 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); // appUserClient.updateStudent(tStudent); return new ResultUtil(0,0,"编辑成功"); } @Resource private AppUserClient appUserClient; /** * 学员详情修改有效期 */ @RequestMapping("/updateClassTime") @ResponseBody public ResultUtil updateClassTime(@RequestParam("date") String date, @RequestParam("id")Integer id, String passPic, String pleasePic ){ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); Date date1; try { date1 = dateFormat.parse(date); } catch (ParseException e) { // 处理日期转换异常 e.printStackTrace(); return ResultUtil.error("日期格式错误"); } updateTimeDto updateTimeDto =new updateTimeDto(date1,id); System.out.println("======updateTimeDto=====>"+updateTimeDto); courseStuddentClient.updateUseDate(updateTimeDto); CreateHistoryDto historyDto = new CreateHistoryDto(); historyDto.setPleasePic(pleasePic); historyDto.setPassPic(passPic); User user = UserExt.getUser(); historyDto.setCreateBy(user.getId()); historyDto.setStudentId(id); // appUserClient.createHistory(historyDto); historyClient.createHistory(historyDto); return new ResultUtil<>(0,0,"更改成功",null,null); } /** * 查询有效期记录 */ @RequestMapping(value = "/getHisory/{id}") @ResponseBody public ResultUtil getHisory(@PathVariable("id") Integer studentId) { List getHistoryDtos = historyClient.getHisory(studentId); Map> map = new HashMap<>(); map.put("items",getHistoryDtos); return new ResultUtil(0,0,"编辑成功",map,""); } /** * 查询有效期记录 */ @RequestMapping(value = "/getUserSlect/{id}") @ResponseBody public ResultUtil getUserSlect(@PathVariable("id") Long payId) { List selectDtos = courseStuddentClient.getSelect(payId); Map> 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> map = new HashMap<>(); // map.put("options",selectDtos); return new ResultUtil(0,0,"编辑成功",1,""); } /** * 赠送课时下拉框 */ @RequestMapping(value = "/giftSelect") @ResponseBody public ResultUtil giftSelect(GiftSearchDto giftSearchDto) { List selectDtos = appUserClient.giftSelect(giftSearchDto); Map> map = new HashMap<>(); map.put("options",selectDtos); // Map> 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 selectDtos = courseStuddentClient.getGiftSelect(id); Map> 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 selectDtos = courseStuddentClient.getTransSelect(id); Map> 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> map = new HashMap<>(); // map.put("options",selectDtos); return new ResultUtil(0,0,"编辑成功",1,""); } }