package com.dsh.account.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.account.dto.*; import com.dsh.account.entity.Coach; import com.dsh.account.entity.GiftSearchDto; import com.dsh.account.entity.TStudent; import com.dsh.account.feignclient.course.CoursePaymentClient; import com.dsh.account.feignclient.course.model.TCoursePackagePayment; import com.dsh.account.model.StudentVo; import com.dsh.account.service.TStudentService; import com.dsh.account.util.ResultUtil; import com.dsh.account.util.TokenUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import springfox.documentation.swagger2.mappers.ModelMapper; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * @author zhibing.pu * @date 2023/6/24 14:59 */ @RestController @RequestMapping("") public class StudentController { @Autowired private TStudentService studentService; @Autowired private TokenUtil tokenUtil; /** * 添加学员 * @return */ @RequestMapping("/base/student/addStudent") public Object addStudent(@RequestBody TStudent student){ student.setInsertTime(new Date()); student.setIsDefault(1); return studentService.save(student); } /** * 获取用户学员列表 * @param appUserId * @return */ @ResponseBody @PostMapping("/student/queryStudentList") public List queryStudentList(@RequestBody Integer appUserId){ try { List list = studentService.list(new QueryWrapper().eq("appUserId", appUserId).eq("state", 1)); return list; }catch (Exception e){ e.printStackTrace(); return new ArrayList<>(); } } @ResponseBody @PostMapping("/student/queryDefaultStudent") public TStudent queryDefaultStudent(@RequestBody Integer appUserId){ try { TStudent one = studentService.getOne(new QueryWrapper().eq("appUserId", appUserId).eq("isDefault", 1).eq("state", 1)); return one; }catch (Exception e){ e.printStackTrace(); return null; } } @ResponseBody @PostMapping("/api/student/queryStudentList") @ApiOperation(value = "获取学员列表", tags = {"APP-课程列表"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil> queryStudentList(){ try { Integer uid = tokenUtil.getUserIdFormRedis(); if(null == uid){ return ResultUtil.tokenErr(); } List list = studentService.list(new QueryWrapper().eq("appUserId", uid).eq("state", 1)); List listVo = new ArrayList<>(); for (TStudent tStudent : list) { StudentVo studentVo = new StudentVo(); studentVo.setId(tStudent.getId()); studentVo.setPhone(tStudent.getPhone()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy"); studentVo.setAge(Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday()))); listVo.add(studentVo); studentVo.setName(tStudent.getName()); } return ResultUtil.success(listVo); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } /** * 根据电话号码学员信息 * @param phone * @return */ @ResponseBody @PostMapping("/student/queryStudentByPhone") public TStudent queryStudentByPhone(@RequestBody String phone){ try { TStudent one = studentService.getOne(new QueryWrapper().eq("phone", phone).eq("state", 1)); return one; }catch (Exception e){ e.printStackTrace(); return null; } } /** * 根据id获取数据 * @param id * @return */ @ResponseBody @PostMapping("/student/queryStudentById") public TStudent queryStudentById(@RequestBody Integer id){ TStudent student = studentService.getById(id); return student; } /** * 根据名称模糊搜索学员 * @param name * @return */ @ResponseBody @PostMapping("/student/queryStudentListByName") public List queryStudentListByName(@RequestBody String name){ return studentService.list(new QueryWrapper().eq("state", 1).like("name", name)); } /** * web端查找学员 * * @return */ @ResponseBody @PostMapping("/student/webStudentList") public List querywebStudent(@RequestBody StudentSearch search){ return studentService.listAll(search); } @ResponseBody @PostMapping("/student/webOneStudent") public TStudentDto querywebStudentOne(@RequestParam("id")Integer id){ System.out.println("===?==》"+id); return studentService.listOne(id); } @ResponseBody @PostMapping("/student/update") public void update(@RequestBody TStudent tStudent){ System.out.println("======tStudent======"+tStudent); studentService.updateById(tStudent); } @ResponseBody @PostMapping("/student/createHistory") public void createHistory(@RequestBody CreateHistoryDto createHistoryDto){ createHistoryDto.setDate(new Date()); studentService.createHistory(createHistoryDto); } @ResponseBody @PostMapping("/student/getHisory") public List getHisory(){ List getHistoryDtos = studentService.getHistory(); return getHistoryDtos; } @Resource private CoursePaymentClient paymentClient; @ResponseBody @PostMapping("/student/giftSelect") public List giftSelect(@RequestBody GiftSearchDto giftSearchDto){ System.out.println("======giftSelect=========giftSearchDto===="+giftSearchDto); // Integer appId = studentService.getGiftSelect(giftSearchDto); TCoursePackagePayment coursePackagePaymentById = paymentClient.getCoursePackagePaymentById(giftSearchDto.getId()); // System.out.println("=======giftSelect======appId====>"+appId); List selectDtos = studentService.list(new QueryWrapper() .select("name, id") .eq("state", 1) .eq("name", giftSearchDto.getName()).eq("phone",giftSearchDto.getPhone()).ne("appUserId",coursePackagePaymentById.getAppUserId())); List list = new ArrayList<>(); for (TStudent student : selectDtos) { SelectDto selectDto = new SelectDto(); selectDto.setValue(student.getName()); selectDto.setId(student.getId()); list.add(selectDto); } System.out.println("=======giftSelect======selectDtos====>"+list); return list; } }