package com.dsh.guns.modular.system.controller.code; import com.alibaba.druid.sql.visitor.functions.If; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.feignClient.account.CityManagerClient; import com.dsh.course.feignClient.account.CoachClient; import com.dsh.course.feignClient.account.CoachTypeClient; import com.dsh.course.feignClient.account.model.CityManager; import com.dsh.course.feignClient.account.model.Coach; import com.dsh.course.feignClient.account.model.CoachSerchVO; import com.dsh.course.feignClient.account.model.CoachType; import com.dsh.course.feignClient.other.model.Site; import com.dsh.guns.config.UserExt; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.*; import com.dsh.guns.modular.system.util.ResultUtil; import org.bouncycastle.math.raw.Mod; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * 教练 */ @Controller @RequestMapping("/tCoach") public class CoachController { private String PREFIX = "/system/tCoach/"; @Autowired private CoachTypeClient coachTypeClient; @Autowired private CoachClient coachClient; @Autowired private CityManagerClient cityManagerClient; @Autowired private ICityService cityService; @Autowired private TOperatorService operatorService; @Autowired private TOperatorCityService operatorCityService; @Autowired private IUserService userService; /** * 跳转教练管理首页 */ @RequestMapping("") public String index(Model model) { Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); CoachQuery coachQuery = new CoachQuery(); coachQuery.setStoreIds(new ArrayList<>()); List data = coachClient.listAll(coachQuery); List province = new ArrayList<>(); for (CoachSerchVO coach : data) { province.add(coach.getProvince()); } HashSet set = new HashSet(province); String roleid = UserExt.getUser().getRoleid(); model.addAttribute("role",roleid); model.addAttribute("data",data); model.addAttribute("list",set); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); return PREFIX + "TCoach.html"; } /** * 获取教练列表 */ @RequestMapping(value = "/getCity") @ResponseBody public List getCity(String province) { List city = coachClient.getCity(province); List res = new ArrayList<>(); List list = new ArrayList<>(); for (Coach coach : city) { if (!list.contains(coach.getCity())){ res.add(coach); list.add(coach.getCity()); } } return res; } /** * 跳转添加教练页面 */ @RequestMapping("/addCoach") public String addCoach(Model model) { List list1 = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); model.addAttribute("list",list1); Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); CoachQuery coachQuery = new CoachQuery(); List data = coachClient.listAll(coachQuery); List list = coachTypeClient.list(); String roleid = UserExt.getUser().getRoleid(); model.addAttribute("role",roleid); model.addAttribute("data",data); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); model.addAttribute("coachType",list); return PREFIX + "TCoach_add.html"; } /** * 添加教练 */ @ResponseBody @RequestMapping(value = "/add") public ResultUtil addCoach(@RequestBody Coach coach) { Integer objectId = UserExt.getUser().getObjectId(); if (UserExt.getUser().getObjectType() == 2){ coach.setCityManagerId(objectId); } if (coach.getDiploma().equals("")) { coach.setDiploma(null); } if (coach.getCertificateImg().equals("") ){ coach.setCertificateImg(null); } if (coach.getCertificateImg()!=null){ coach.setCertificateImg(coach.getCertificateImg().substring(1)); } coach.setInsertTime(new Date()); coach.setState(1); coachClient.addCoach(coach); return ResultUtil.success("添加成功"); } /** * 1为冻结 2为解冻 * * @return */ @RequestMapping("/changeState") @ResponseBody public Object changeState(@RequestBody CoachChangeStateVO vo){ coachClient.changeState(vo); return ResultUtil.success(); } /** * 根据选择的市 查询有哪些运营商管理了所选的市 * * @return */ @RequestMapping("/getYys") @ResponseBody public Object getYys(String pCode,String cCode){ // 先获取管理全国的运营商 List type = operatorService.list(new QueryWrapper().eq("type", 1)); // 根据所选市 查询管理了这个市的运营商 // 获取管理指定区域的运营商的ID 然后去重 List collect = operatorCityService.list(new QueryWrapper()).stream().map(TOperatorCity::getOperatorId) .distinct().collect(Collectors.toList()); // 遍历 判断当前运营商是否管理了所选市 for (Integer integer : collect) { // 查询是否管理了省 TOperatorCity code = operatorCityService.getOne(new QueryWrapper().eq("code", pCode).eq("operatorId",integer)); if (code==null)continue; List pid = operatorCityService.list(new QueryWrapper().eq("pid", code.getId())); // 如果pid长度为0 则说明管理整个省 if (pid.size()==0){ type.add(operatorService.getOne(new QueryWrapper() .eq("id",integer))); } for (TOperatorCity tOperatorCity : pid) { if (tOperatorCity.getCode().toString().equals(cCode)){ TOperator id = operatorService.getOne(new QueryWrapper() .eq("id", tOperatorCity.getOperatorId())); if (id!=null)type.add(id); break; } } } return type; } /** * 跳转修改教练页面 */ @RequestMapping("/updateCoach/{id}") public String updateCoach(Model model, @PathVariable("id") Integer id) { CoachQuery coachQuery = new CoachQuery(); coachQuery.setId(id); List data = coachClient.listAll(coachQuery); List list1 = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); // 省 model.addAttribute("list",list1); // 市 Integer code = cityService.getOne(new QueryWrapper() .eq("code", data.get(0).getProvinceCode())).getId(); List pid = cityService.list(new QueryWrapper().eq("parent_id", code)); model.addAttribute("city",pid); // 获取所选省市下的运营商列表 // 先获取管理全国的运营商 List type = operatorService.list(new QueryWrapper().eq("type", 1)); // 根据所选市 查询管理了这个市的运营商 // 获取管理指定区域的运营商的ID 然后去重 List collect = operatorCityService.list(new QueryWrapper()).stream().map(TOperatorCity::getOperatorId) .distinct().collect(Collectors.toList()); // 遍历 判断当前运营商是否管理了所选市 for (Integer integer : collect) { // 查询是否管理了省 TOperatorCity code1 = operatorCityService.getOne(new QueryWrapper() .eq("code", data.get(0).getProvinceCode()) .eq("operatorId",integer) ); if (code1==null)continue; List pid1 = operatorCityService.list(new QueryWrapper().eq("pid", code1.getId())); // 如果pid长度为0 则说明管理整个省 if (pid1.size()==0){ type.add(operatorService.getOne(new QueryWrapper() .eq("id",integer))); } for (TOperatorCity tOperatorCity : pid1) { if (tOperatorCity.getCode().toString().equals(data.get(0).getCityCode())){ TOperator id1 = operatorService.getOne(new QueryWrapper() .eq("id", tOperatorCity.getOperatorId())); if (id1!=null)type.add(id1); break; } } } Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); List list = coachTypeClient.list(); String roleid = UserExt.getUser().getRoleid(); model.addAttribute("role",roleid); model.addAttribute("data",data.get(0)); model.addAttribute("cityManagers",type); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); model.addAttribute("coachType",list); // 1为查看详情 model.addAttribute("type",0); String[] split = data.get(0).getCertificateImg().split(","); List pictures = new ArrayList<>(Arrays.asList(split)); model.addAttribute("pictures",data.get(0).getCertificateImg()); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String birthday = format.format(data.get(0).getBirthday()); model.addAttribute("birthday",birthday); model.addAttribute("diploma",data.get(0).getDiploma()); return PREFIX + "TCoach_edit.html"; } /** * 跳转修改教练页面 */ @RequestMapping("/infoCoach/{id}") public String infoCoach(Model model, @PathVariable("id") Integer id) { CoachQuery coachQuery = new CoachQuery(); coachQuery.setId(id); List data = coachClient.listAll(coachQuery); List province = cityManagerClient.listAll(); Set seenNames = new HashSet<>(); List result = new ArrayList<>(); List city = new ArrayList<>(); for (CityManager cityManager : province) { if(!seenNames.contains(cityManager.getProvince())){ result.add(cityManager); seenNames.add(cityManager.getProvince()); } if(data.get(0).getProvince().equals(cityManager.getProvince())){ city.add(cityManager); } } Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); List accounts = cityManagerClient.getAccount(data.get(0).getCity()); List list = coachTypeClient.list(); String roleid = UserExt.getUser().getRoleid(); model.addAttribute("role",roleid); model.addAttribute("data",data.get(0)); model.addAttribute("list",result); model.addAttribute("city",city); model.addAttribute("cityManagers",accounts); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); model.addAttribute("coachType",list); // 1为查看详情 model.addAttribute("type",1); String[] split = data.get(0).getCertificateImg().split(","); List pictures = new ArrayList<>(Arrays.asList(split)); model.addAttribute("pictures",pictures); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String birthday = format.format(data.get(0).getBirthday()); model.addAttribute("birthday",birthday); return PREFIX + "TCoach_edit.html"; } /** * 获取教练列表 */ @Autowired private IStoreService storeService; @RequestMapping(value = "/list") @ResponseBody public List list(String province, String city, String name, String phone) { CoachQuery coachQuery = new CoachQuery(); coachQuery.setProvince(province); coachQuery.setCity(city); coachQuery.setName(name); coachQuery.setPhone(phone); Integer objectType = UserExt.getUser().getObjectType(); if (objectType == 1){ Integer objectId = UserExt.getUser().getObjectId(); coachQuery.setOperatorId(objectId); } if (objectType == 2){ Integer objectId = UserExt.getUser().getObjectId(); coachQuery.setOperatorId(objectId); } List coachSerchVOS = coachClient.listAll(coachQuery); for (CoachSerchVO coachSerchVO : coachSerchVOS) { Integer cityManagerId = coachSerchVO.getCityManagerId(); TOperator byId = operatorService.getById(cityManagerId); Integer userId = byId.getUserId(); User byId1 = userService.getById(userId); coachSerchVO.setNameAndPhone(byId.getName()+""+byId1.getPhone()); } return coachSerchVOS; } }