package com.dsh.guns.modular.system.controller.code; import java.math.BigDecimal; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.crypto.SecureUtil; import com.alibaba.fastjson.JSONObject; 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.apache.http.HttpResponse; import org.apache.poi.ss.formula.functions.T; 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.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.resource.HttpResource; 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); List list3 = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); model.addAttribute("list",list3); 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); List list5 = tOperatorService.list(); model.addAttribute("list5",list5); 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(); // } System.out.println(dto); 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); } if (!strings1.get(0).equals("")){ System.out.println("=========执行nextNames===="); model.addAttribute("nextNames",strings1);} ArrayList strings3 = new ArrayList<>(); strings3.add("普通场地"); strings3.add("智慧场地"); model.addAttribute("typeNames",strings3); 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()); } ArrayList strings3 = new ArrayList<>(); strings3.add("普通场地"); strings3.add("智慧场地"); model.addAttribute("typeNames",strings3); String nextName = site.getNextName(); ArrayList strings1 = new ArrayList<>(); for (String s : nextName.split(",")) { strings1.add(s); } System.out.println("========="+strings1); System.out.println("====000====="+strings1.get(0)); if (CollectionUtil.isNotEmpty(strings1)) { System.out.println("====执行==="); 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); 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); site.setOperatorId(UserExt.getUser().getObjectId()); // 添加场地 HashMap map = new HashMap<>(); map.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); map.put("name",site.getName()); map.put("space_id",store.getId().toString()); String s = HttpRequestUtil.postRequest ("https://try.daowepark.com/v7/user_api/general/addSpaceArea", map); // 添加门禁 JSONObject jsonObject = JSONObject.parseObject(s); JSONObject data = jsonObject.getJSONObject("data"); String area_id = data.getString("area_id"); Integer integer = Integer.valueOf(area_id); site.setId(integer); Integer integer1 = siteClient.addSite1(site); // Integer integer = Integer.valueOf(spaceId); if(StringUtils.hasLength( site.getIds())) { for (String s1 : site.getIds().split(",")) { HashMap map1 = new HashMap<>(); map1.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); map1.put("space_id", store.getId().toString() + ""); map1.put("device_id", s1); map1.put("region_id", integer1 + ""); String s2 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map1); System.out.println("添加闸机:" + s2); } } return ResultUtil.success("添加成功"); } /** * 编辑场地管理 */ @ResponseBody @RequestMapping(value = "/updateSite") public ResultUtil updateSite(@RequestBody Site site) { if(site.getInsuranceImg().equals("")){ site.setInsuranceImg(null); } TSite byId = siteService.getById(site.getId()); 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); String ids = byId.getIds(); HashMap map = new HashMap<>(); map.put("sign","0DB011836143EEE2C2E072967C9F4E4B"); if(StringUtils.hasLength(ids)) { for (String s : ids.split(",")) { String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/deleteDevice/ids/" + s, map); System.out.println(s1); } } if(StringUtils.hasLength( site.getIds())) { for (String s : site.getIds().split(",")) { HashMap map1 = new HashMap<>(); map1.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); map1.put("space_id", store.getId() + ""); map1.put("device_id", s); map1.put("region_id", site.getId() + ""); // 添加门禁 String s1 = HttpRequestUtil.postRequest("https://try.daowepark.com/v7/user_api/general/addDevice", map1); System.out.println(s1); } } 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 opId) { // 对象类型 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); vo.setOpId(opId); return siteClient.listExipre(vo); } @Autowired private TOperatorService tOperatorService; /** * 跳转到添加场地管理 */ @RequestMapping("/add") public String tCompetitionAdd(Model model) { List province = cityManagerClient.listAll(); System.out.println(province); // 已有城市管理的省 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 ){ List operatorId = storeService.list(new QueryWrapper().eq("operatorId", objectId)); model.addAttribute("stores",operatorId); }else if(objectType == 3){ List list = storeService.list(new LambdaQueryWrapper().eq(TStore::getId, objectId)); model.addAttribute("stores",list); }else { model.addAttribute("stores",storeService.list(new QueryWrapper().eq("operatorId", 0))); } 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); 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 QueryWrapper() .eq("operatorId",oneId) .eq("state",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; } } }