package com.dsh.guns.modular.system.controller.code; import java.math.BigDecimal; import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.feignClient.account.CityClient; import com.dsh.course.feignClient.account.CityManagerClient; import com.dsh.course.feignClient.account.StoreStaffClient; import com.dsh.course.feignClient.account.model.CityListQuery; import com.dsh.course.feignClient.account.model.CityManager; import com.dsh.course.feignClient.account.model.TCityManager; import com.dsh.course.feignClient.competition.CompetitionClient; import com.dsh.course.feignClient.other.SiteClient; import com.dsh.course.feignClient.other.SiteLockClient; import com.dsh.course.feignClient.other.StoreClient; import com.dsh.course.feignClient.other.model.Site; import com.dsh.course.feignClient.other.model.SiteChangeStateVO; import com.dsh.course.feignClient.other.model.TSiteDTO; import com.dsh.course.feignClient.other.model.TSiteLockDTO; import com.dsh.course.mapper.UserMapper; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.core.base.tips.SuccessTip; import com.dsh.guns.core.common.constant.factory.PageFactory; import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.*; import com.dsh.guns.modular.system.util.HttpRequestUtil; import com.dsh.guns.modular.system.util.ResultUtil; import groovyjarjarpicocli.CommandLine; import net.bytebuddy.asm.Advice; import org.aspectj.weaver.ast.Var; 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 java.lang.reflect.Type; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; /** * 车辆管理控制器 * * @author fengshuonan * @Date 2020-06-05 17:25:12 */ @Controller @RequestMapping("/tSite") public class TSiteController extends BaseController { private String PREFIX = "/system/tSite/"; @Autowired private CompetitionClient competitionClient; @Autowired private CityClient cityClient; @Autowired private IStoreService storeService; @Autowired private ICityService cityService; @Resource private UserMapper userMapper; @Resource private StoreConfigService storeConfigService; @Resource private ITSiteTypeService siteTypeService; @Autowired private CityManagerClient cityManagerClient; @Resource private SiteClient siteClient; @Autowired private ITSiteService siteService; @Resource private StoreClient storeClient; @Autowired private IRegionService regionService; @Autowired private SiteLockClient siteLockClient; /** * 选择市 返回场地列表 */ @ResponseBody @RequestMapping(value = "/getSiteByCity") public List getSiteByCity(String oneId) { if (oneId.equals("")){ return siteService.list(new QueryWrapper()); } return siteService.list(new QueryWrapper().eq("cityCode",oneId)); } /** * 跳转到场地管理首页 */ @RequestMapping("") public String index(Model model) { Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); model.addAttribute("userType",objectType); List province = cityManagerClient.listAll(); // 已有城市管理的省 ArrayList list1 = new ArrayList<>(); // 已有城市管理的市 ArrayList list2 = new ArrayList<>(); for (CityManager cityManager : province) { list1.add(cityManager.getProvince()); list2.add(cityManager.getCity()); } HashSet set = new HashSet(list1); List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("state",1); List siteType = siteTypeService.list(wrapper); model.addAttribute("list",set); model.addAttribute("siteType",siteType); String roleid = UserExt.getUser().getRoleid(); model.addAttribute("role",roleid); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); model.addAttribute("type",1); return PREFIX + "TSite.html"; } /** * 跳转到场地管理首页--查询场地有效期在两个月内的场地信息 */ @RequestMapping("/expireInsuranceEndTime") public String expireInsuranceEndTime(Model model) { Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); model.addAttribute("userType",objectType); List province = cityManagerClient.listAll(); // 已有城市管理的省 ArrayList list1 = new ArrayList<>(); // 已有城市管理的市 ArrayList list2 = new ArrayList<>(); for (CityManager cityManager : province) { list1.add(cityManager.getProvince()); list2.add(cityManager.getCity()); } HashSet set = new HashSet(list1); List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("state",1); List siteType = siteTypeService.list(wrapper); model.addAttribute("list",set); model.addAttribute("siteType",siteType); String roleid = UserExt.getUser().getRoleid(); model.addAttribute("role",roleid); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); model.addAttribute("type",2); return PREFIX + "TSite.html"; } /** * 上/下架 1为上架 2为下架 3为删除 * * @return */ @RequestMapping("/changeState") @ResponseBody public Object changeState(@RequestBody SiteChangeStateVO vo){ siteClient.changeState(vo); return ResultUtil.success(); } /** * 添加锁定场地 * * @return */ @RequestMapping("/addSiteLock") @ResponseBody public Object addSiteLock(@RequestBody TSiteLockDTO dto){ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); try { dto.setStartTime(simpleDateFormat.parse(dto.getSsTime())); dto.setEndTime(simpleDateFormat.parse(dto.getEeTime())); } catch (ParseException e) { e.printStackTrace(); } Object o = siteLockClient.addSiteLock(dto); return ResultUtil.success(o); } /** * 删除锁定场地 * * @return */ @RequestMapping("/deleteSiteLock/{id}") @ResponseBody public Object deleteSiteLock(@PathVariable("id") Integer id){ siteLockClient.deleteSiteLock(id); return ResultUtil.success(); } /** * 根据场地id 获取锁定列表 * * @return */ @RequestMapping("/getSiteLockBySiteId/{id}") @ResponseBody public Object getSiteLockBySiteId(@PathVariable("id") Integer id){ return siteLockClient.getListById(id); } /** * 跳转到场地管理编辑页面 */ @RequestMapping("/openEditTSite/{id}") public String openEditTSite(Model model,@PathVariable("id") Integer id) { List province = cityManagerClient.listAll(); // 已有城市管理的省 ArrayList list1 = new ArrayList<>(); // 已有城市管理的市 for (CityManager cityManager : province) { list1.add(cityManager.getProvince()); } Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); List list = tOperatorService.list(); model.addAttribute("yysList",list); model.addAttribute("userType",objectType); HashSet set = new HashSet(list1); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("state",1); List siteType = siteTypeService.list(wrapper); model.addAttribute("siteType",siteType); model.addAttribute("province",set); String roleid = UserExt.getUser().getRoleid(); model.addAttribute("role",roleid); TSite site = siteService.getOne(new QueryWrapper().eq("id", id)); List city = cityManagerClient.getAccount(site.getCity()); List city1 = cityManagerClient.getCity(site.getProvince()); ArrayList strings = new ArrayList<>(); for (CityManager cityManager : city) { strings.add(cityManager.getCity()); } HashSet set1 = new HashSet(strings); List stores = new ArrayList<>(); if (objectType ==2 ){ stores= storeClient.getStoreByCityManagerId(objectId); }else if(objectType == 3){ stores= storeClient.getStoreByStoreStaffId(objectId);; }else{ stores = storeClient.getStore(site.getCity()); } List accounts = cityManagerClient.getAccount(site.getCity()); model.addAttribute("list",site); Date insuranceEndTime = site.getInsuranceEndTime(); String format = new SimpleDateFormat("yyyy-MM-dd").format(insuranceEndTime); model.addAttribute("accounts",accounts); model.addAttribute("time",format); model.addAttribute("city",set1); model.addAttribute("city1",city1); model.addAttribute("type",1); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); model.addAttribute("stores",stores); String nextName = site.getNextName(); ArrayList strings1 = new ArrayList<>(); for (String s : nextName.split(",")) { strings1.add(s); } model.addAttribute("nextNames",strings1); String halfNames = site.getHalfName(); ArrayList strings2 = new ArrayList<>(); String[] split = halfNames.split(","); String halfName=null; for (int i = 0; i < split.length; i++) { if(i==0){ halfName = split[0]; }else { strings2.add(split[i]); } } model.addAttribute("halfNames",strings2); model.addAttribute("halfName",halfName); return PREFIX + "TSite_edit.html"; } /** * 跳转到场地锁定页面 */ @RequestMapping("/lockSite/{id}") public String lockSite(Model model,@PathVariable("id") Integer id) { DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); List listById = siteLockClient.getListById(id); for (TSiteLockDTO tSiteLockDTO : listById) { tSiteLockDTO.setSsTime(dateformat.format(tSiteLockDTO.getStartTime())); tSiteLockDTO.setEeTime(dateformat.format(tSiteLockDTO.getEndTime())); } model.addAttribute("id",id); model.addAttribute("list",listById); return PREFIX + "TSite_lock.html"; } /** * 跳转到场地管理详情页面 */ @RequestMapping("/openInfoTSite/{id}") public String openInfoTSite(Model model,@PathVariable("id") Integer id) { List province = cityManagerClient.listAll(); // 已有城市管理的省 ArrayList list1 = new ArrayList<>(); // 已有城市管理的市 for (CityManager cityManager : province) { list1.add(cityManager.getProvince()); } Integer objectType = UserExt.getUser().getObjectType(); List list = tOperatorService.list(); model.addAttribute("yysList",list); Integer objectId = UserExt.getUser().getObjectId(); model.addAttribute("userType",objectType); HashSet set = new HashSet(list1); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("state",1); List siteType = siteTypeService.list(wrapper); model.addAttribute("siteType",siteType); model.addAttribute("province",set); String roleid = UserExt.getUser().getRoleid(); model.addAttribute("role",roleid); TSite site = siteService.getOne(new QueryWrapper().eq("id", id)); List city = cityManagerClient.getAccount(site.getCity()); List city1 = cityManagerClient.getCity(site.getProvince()); ArrayList strings = new ArrayList<>(); for (CityManager cityManager : city) { strings.add(cityManager.getCity()); } HashSet set1 = new HashSet(strings); List stores = new ArrayList<>(); if (objectType ==2 ){ stores= storeClient.getStoreByCityManagerId(objectId); }else if(objectType == 3){ stores= storeClient.getStoreByStoreStaffId(objectId);; }else{ stores = storeClient.getStore(site.getCity()); } List accounts = cityManagerClient.getAccount(site.getCity()); model.addAttribute("list",site); Date insuranceEndTime = site.getInsuranceEndTime(); String format = new SimpleDateFormat("yyyy-MM-dd").format(insuranceEndTime); model.addAttribute("accounts",accounts); model.addAttribute("time",format); model.addAttribute("city",set1); model.addAttribute("city1",city1); model.addAttribute("type",0); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); model.addAttribute("stores",stores); return PREFIX + "TSite_edit.html"; } /** * 根据所选门店 获取经营时间 */ @ResponseBody @GetMapping("/getTime/{oneId}") public Store getTime(@PathVariable("oneId") String oneId) { return storeClient.getTime(oneId); } /** * 场地管理首页 选择省 返回市 */ @ResponseBody @RequestMapping(value = "/getChange") public List getChange(String province) { Region name = regionService.getOne(new QueryWrapper().eq("name", province)); return regionService.list(new QueryWrapper().eq("parent_id", name.getId())); } /** * 添加场地管理 */ @ResponseBody @RequestMapping(value = "/addSite") public ResultUtil addSite(@RequestBody Site site) { Store store = storeClient.getStoreById(site.getStoreId()); String province = store.getProvince(); String provinceCode = store.getProvinceCode(); String city = store.getCity(); String cityCode = store.getCityCode(); Integer cityManagerId = store.getCityManagerId(); site.setProvince(province); site.setProvinceCode(provinceCode); site.setCity(city); site.setCityCode(cityCode); site.setCityManagerId(cityManagerId); site.setInsertTime(new Date()); site.setState(1); siteClient.addSite(site); HashMap map = new HashMap<>(); map.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); map.put("name",site.getName()); map.put("short_name",site.getName()); map.put("location",city); map.put("address",store.getAddress()); map.put("telephone",store.getPhone()); map.put("linkman",""); map.put("business_time","[{\"start_time\":\"00:00\",\"close_time\":\"23:59\"}]"); map.put("logo",store.getCoverDrawing()); map.put("remark",site.getIntroduce()); map.put("lat",store.getLat()); map.put("lng",store.getLon()); HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addSpace", map); return ResultUtil.success("添加成功"); } /** * 编辑场地管理 */ @ResponseBody @RequestMapping(value = "/updateSite") public ResultUtil updateSite(@RequestBody Site site) { if(site.getInsuranceImg().equals("")){ site.setInsuranceImg(null); } Store store = storeClient.getStoreById(site.getStoreId()); String province = store.getProvince(); String provinceCode = store.getProvinceCode(); String city = store.getCity(); String cityCode = store.getCityCode(); Integer cityManagerId = store.getCityManagerId(); site.setProvince(province); site.setProvinceCode(provinceCode); site.setCity(city); site.setCityCode(cityCode); site.setCityManagerId(cityManagerId); site.setInsertTime(new Date()); site.setState(1); siteClient.addSite(site); return ResultUtil.success(); } /** * 场地管理添加页面选择省 展示市 */ @RequestMapping(value = "/getCity") @ResponseBody public List getCity(String province) { return cityManagerClient.getCity(province); } /** * 查询场地管理列表 */ @RequestMapping(value= "/listAll") @ResponseBody public List listAll(String province,String city,String storeName,Integer siteTypeId,String name) { // 对象类型 Integer type = UserExt.getUser().getObjectType(); // 对象类型Id Integer objectId = UserExt.getUser().getObjectId(); SiteSearchVO vo = new SiteSearchVO(); vo.setProvince(province); vo.setCity(city); vo.setStoreName(storeName); vo.setSiteTypeId(siteTypeId); vo.setName(name); vo.setObjectType(type); vo.setObjectId(objectId); return siteClient.listAll(vo); } /** * 查询场地管理列表 */ @RequestMapping(value= "/listExipre") @ResponseBody public List listExipre(String province,String city,String storeName,Integer siteTypeId,String name) { // 对象类型 Integer type = UserExt.getUser().getObjectType(); // 对象类型Id Integer objectId = UserExt.getUser().getObjectId(); ExpireSiteSearchVO vo = new ExpireSiteSearchVO(); vo.setProvince(province); vo.setCity(city); vo.setStoreName(storeName); vo.setSiteTypeId(siteTypeId); vo.setName(name); vo.setObjectType(type); vo.setObjectId(objectId); return siteClient.listExipre(vo); } @Autowired private TOperatorService tOperatorService; /** * 跳转到添加场地管理 */ @RequestMapping("/add") public String tCompetitionAdd(Model model) { List province = cityManagerClient.listAll(); // 已有城市管理的省 ArrayList list1 = new ArrayList<>(); // 已有城市管理的市 ArrayList list2 = new ArrayList<>(); for (CityManager cityManager : province) { list1.add(cityManager.getProvince()); list2.add(cityManager.getCity()); } Integer objectType = UserExt.getUser().getObjectType(); Integer objectId = UserExt.getUser().getObjectId(); List stores = new ArrayList<>(); if (objectType ==2 ){ stores= storeClient.getStoreByCityManagerId(objectId); }else if(objectType == 3){ stores= storeClient.getStoreByStoreStaffId(objectId);; } List list = tOperatorService.list(); model.addAttribute("yysList",list); model.addAttribute("userType",objectType); HashSet set = new HashSet(list1); QueryWrapper wrapper = new QueryWrapper<>(); wrapper.eq("state",1); List siteType = siteTypeService.list(wrapper); model.addAttribute("siteType",siteType); model.addAttribute("province",set); model.addAttribute("city",list2); String roleid = UserExt.getUser().getRoleid(); model.addAttribute("role",roleid); model.addAttribute("objectType",objectType); model.addAttribute("objectId",objectId); model.addAttribute("stores",stores); return PREFIX + "tSite_add.html"; } // /** // * 跳转到场地管理页面 // */ // @RequestMapping("/add") // public String tCompetitionAdd(Model model) { // List province = cityManagerClient.listAll(); // // 已有城市管理的省 // ArrayList list1 = new ArrayList<>(); // // 已有城市管理的市 // ArrayList list2 = new ArrayList<>(); // for (CityManager cityManager : province) { // list1.add(cityManager.getProvince()); // list2.add(cityManager.getCity()); // } // Integer objectType = UserExt.getUser().getObjectType(); // Integer objectId = UserExt.getUser().getObjectId(); // List stores = new ArrayList<>(); // if (objectType ==2 ){ // stores= storeClient.getStoreByCityManagerId(objectId); // }else if(objectType == 3){ // stores= storeClient.getStoreByStoreStaffId(objectId);; // } // model.addAttribute("userType",objectType); // HashSet set = new HashSet(list1); // QueryWrapper wrapper = new QueryWrapper<>(); // wrapper.eq("state",1); // List siteType = siteTypeService.list(wrapper); // model.addAttribute("siteType",siteType); // model.addAttribute("province",set); // model.addAttribute("city",list2); // String roleid = UserExt.getUser().getRoleid(); // model.addAttribute("role",roleid); // model.addAttribute("objectType",objectType); // model.addAttribute("objectId",objectId); // model.addAttribute("stores",stores); // return PREFIX + "tSite_add.html"; // } @RequestMapping(value = "/onChange") @ResponseBody public Object onChange(Integer oneId) { try { TCity one = cityService.getOne(new LambdaQueryWrapper().eq(TCity::getCode, oneId)); return cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId,one.getId())); }catch (Exception e){ e.printStackTrace(); return ERROR; } } @RequestMapping(value = "/getChangeOne") @ResponseBody public Object getChangeOne(Integer oneId) { try { return storeService.list(new LambdaQueryWrapper().eq(TStore::getOperatorId,oneId).eq(TStore::getState,1)); }catch (Exception e){ e.printStackTrace(); return ERROR; } } // 选择市后 获取对应账号 @RequestMapping(value = "/accountChangeNext") @ResponseBody public Object accountChangeNext(String oneId) { return cityManagerClient.getAccount(oneId); } // 选择账号 获取对应门店 @RequestMapping(value = "/getStore") @ResponseBody public Object getStore(Integer oneId) { if (oneId == null){ return null; } List list = storeClient.getStoreByCityManagerId(oneId); if (list.size()==0){ return list; } return list; } // 选择市后 获取对应门店 @RequestMapping(value = "/storeChangeNext") @ResponseBody public Object storeChangeNext(String oneId) { if (oneId.equals("")){ return null; } return storeClient.getStore(oneId); } @RequestMapping(value = "/cancel") public Object cancel(Integer id) { try { competitionClient.cancel(id); return SUCCESS_TIP; }catch (Exception e){ e.printStackTrace(); return ERROR; } } @RequestMapping(value = "/saveImg") @ResponseBody public Object saveImg(Integer id,String img) { try { TStore byId = storeService.getById(id); byId.setWelfarePicture(img); storeService.updateById(byId); return SUCCESS_TIP; }catch (Exception e){ e.printStackTrace(); return ERROR; } } }