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<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
List<Role> deptid = roleService.list(new QueryWrapper<Role>().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<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
List<User> sales = userService.list(new QueryWrapper<User>().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<CityManager> province = cityManagerClient.listAll();
|
Set<String> seenNames = new HashSet<>();
|
List<CityManager> 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<Store> 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<TCity> list = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, 0));
|
String province = data.getProvince();
|
TCity province1 = cityService.getOne(new QueryWrapper<TCity>().eq("name", data.getProvince()));
|
List<TCity> city = cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId, province1.getId()));
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
String format1 = format.format(data.getBirthday());
|
List<User> sales = userService.list(new QueryWrapper<User>().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<QueryAppUserVO> 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<TCity>().eq("code", province));
|
queryAppUser.setProvince(p.getName());
|
}
|
if (city!=null && (!city.equals(""))){
|
TCity c = cityService.getOne(new QueryWrapper<TCity>().eq("code", city));
|
queryAppUser.setCity(c.getName());
|
}
|
List<QueryAppUserVO> 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<QueryAppUserVO> result = new ArrayList<>();
|
List<User> sales = userService.list(new QueryWrapper<User>().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<Integer> ids) {
|
return bodySideAppointmentClient.changeState(ids);
|
}
|
|
}
|