package com.dsh.guns.modular.system.controller.code; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.feignClient.account.AppUserClient; import com.dsh.course.feignClient.account.CityManagerClient; import com.dsh.course.feignClient.account.StoreStaffClient; import com.dsh.course.feignClient.account.model.*; import com.dsh.course.feignClient.activity.BodySideAppointmentClient; import com.dsh.course.feignClient.activity.model.BodySideAppointment; import com.dsh.course.feignClient.activity.model.QueryBodySideAppointment; import com.dsh.course.feignClient.activity.model.QueryBodySideAppointmentVO; import com.dsh.course.feignClient.other.StoreClient; import com.dsh.guns.config.UserExt; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.ICityService; import com.dsh.guns.modular.system.service.IRoleService; import com.dsh.guns.modular.system.service.IUserService; import com.dsh.guns.modular.system.util.ResultUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; /** * 用户管理控制器 */ @Controller @RequestMapping("/appUser") public class TAppUserController { private String PREFIX = "/system/appUser/"; @Autowired private IUserService userService; @Autowired private StoreClient storeClient; @Autowired private BodySideAppointmentClient bodySideAppointmentClient; @Autowired private CityManagerClient cityManagerClient; @Autowired private StoreStaffClient storeStaffClient; @Autowired private AppUserClient appUserClient; @Autowired private ICityService cityService; @Autowired private IRoleService roleService; /** * 跳转体测预约管理首页 */ @RequestMapping("") public String index(Model model) { Integer roleType = UserExt.getUser().getObjectType(); List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); List deptid = roleService.list(new QueryWrapper().eq("deptid", 2)); model.addAttribute("roleType",roleType); model.addAttribute("sales",deptid); model.addAttribute("list",list); return PREFIX + "TAppUser.html"; } /** * 跳转用户信息管理添加页面 */ @RequestMapping("/add") public String add(Model model) { Integer roleType = UserExt.getUser().getObjectType(); List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); List sales = userService.list(new QueryWrapper().eq("deptid", 2)); model.addAttribute("list",list); model.addAttribute("roleType",roleType); model.addAttribute("sales",sales); return PREFIX + "TAppUser_add.html"; } /** * 跳转体测预约管理添加页面 */ @RequestMapping("/addStudent") public String addStudent(Model model) { Integer roleType = UserExt.getUser().getObjectType(); List province = cityManagerClient.listAll(); Set seenNames = new HashSet<>(); List result = new ArrayList<>(); for (CityManager cityManager : province) { if(!seenNames.contains(cityManager.getProvince())){ result.add(cityManager); seenNames.add(cityManager.getProvince()); } } if (roleType == 2){ Integer cityManagerId = UserExt.getUser().getObjectId(); CityManager cityManager = cityManagerClient.queryCityManagerById(cityManagerId); List stores = storeClient.getStoreByCityManagerId(cityManagerId); model.addAttribute("stores",stores); } model.addAttribute("list",result); model.addAttribute("roleType",roleType); return PREFIX + "TAppUser_addStudent.html"; } /** * 跳转体测预约管理编辑页面 * @param type 1 = 用户管理编辑 2 = 用户管理详情 */ @RequestMapping("/update/{id}/{type}") public String update(Model model,@PathVariable("id") Integer id,@PathVariable("type") Integer type) { Integer roleType = UserExt.getUser().getObjectType(); TAppUser data = appUserClient.queryById(id); List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); String province = data.getProvince(); TCity province1 = cityService.getOne(new QueryWrapper().eq("name", data.getProvince())); List city = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, province1.getId())); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String format1 = format.format(data.getBirthday()); List sales = userService.list(new QueryWrapper().eq("deptid", 2)); model.addAttribute("list",list); model.addAttribute("roleType",roleType); model.addAttribute("sales",sales); model.addAttribute("data",data); model.addAttribute("birthday",format1); model.addAttribute("city",city); model.addAttribute("type",type); model.addAttribute("isVip",data.getIsVip()); if (data.getVipEndTime()!=null){ SimpleDateFormat format2 = new SimpleDateFormat("yyyy-MM-dd"); String format3 = format2.format(data.getVipEndTime()); model.addAttribute("vipEndTime",format3); } return PREFIX + "TAppUser_edit.html"; } /** * 获取所有用户信息 * @return */ @RequestMapping("/listAll") @ResponseBody public List listAll(String province, String city,String name, String phone,Integer isVip, String salesmanUserName){ QueryAppUser queryAppUser = new QueryAppUser(); queryAppUser.setProvince(province); queryAppUser.setCity(city); queryAppUser.setName(name); queryAppUser.setPhone(phone); queryAppUser.setIsVip(isVip); queryAppUser.setSalesmanUserName(salesmanUserName); if (province!=null && (!province.equals(""))){ TCity p = cityService.getOne(new QueryWrapper().eq("code", province)); queryAppUser.setProvince(p.getName()); } if (city!=null && (!city.equals(""))){ TCity c = cityService.getOne(new QueryWrapper().eq("code", city)); queryAppUser.setCity(c.getName()); } List queryAppUserVOS = appUserClient.listAll(queryAppUser); for (QueryAppUserVO queryAppUserVO : queryAppUserVOS) { if (queryAppUserVO.getSalesmanUserId()!=null){ queryAppUserVO.setSalesmanUserName(userService.getById(queryAppUserVO.getSalesmanUserId()).getName()); } } if (salesmanUserName!=null && (!salesmanUserName.equals(""))){ List result = new ArrayList<>(); List sales = userService.list(new QueryWrapper().like("name", salesmanUserName)); for (QueryAppUserVO queryAppUserVO : queryAppUserVOS) { if (queryAppUserVO.getSalesmanUserId()!=null){ for (User sale : sales) { if (queryAppUserVO.getSalesmanUserId() == sale.getId()){ result.add(queryAppUserVO); } } } } return result; } return queryAppUserVOS; } /** * 新增用户信息 * @return */ @RequestMapping("/addAppUser") @ResponseBody public Object addAppUser(@RequestBody TAppUser appUser){ Object o = appUserClient.addAppUser1(appUser); return o; } /** * 添加/修改体测预约记录 */ @ResponseBody @RequestMapping(value = "/addBodySideAppointments") public ResultUtil addBodySideAppointments(@RequestBody QueryBodySideAppointmentVO vo) { Integer roleType = UserExt.getUser().getObjectType(); // 获取当前登录人id Integer cityManagerId = UserExt.getUser().getObjectId(); if (roleType == 2){ CityManager cityManager = cityManagerClient.queryCityManagerById(cityManagerId); vo.setProvince(cityManager.getProvince()); vo.setProvinceCode(cityManager.getProvinceCode()); vo.setCity(cityManager.getCity()); vo.setCityCode(cityManager.getCityCode()); }else if (roleType == 3){ TStoreStaff storeByStoreStaffId = storeStaffClient.getStoreByStoreStaffId(cityManagerId); Store storeById = storeClient.getStoreById(storeByStoreStaffId.getStoreId()); vo.setProvince(storeById.getProvince()); vo.setProvinceCode(storeById.getProvinceCode()); vo.setCity(storeById.getCity()); vo.setCityCode(storeById.getCityCode()); } bodySideAppointmentClient.addBodySideAppointments(vo); return ResultUtil.success("添加成功"); } /** * 添加/修改体测预约记录 */ @ResponseBody @RequestMapping(value = "/getInfoById") public BodySideAppointment getInfoById(@RequestBody Integer id) { return bodySideAppointmentClient.getInfoById(id); } /** * 手动标记用户已经到店并完成体测 */ @ResponseBody @RequestMapping(value = "/changeState") public Object changeState(@RequestBody List ids) { return bodySideAppointmentClient.changeState(ids); } }