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.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.feignClient.account.model.TAppUser; import com.dsh.course.feignClient.competition.CompetitionClient; import com.dsh.course.feignClient.competition.model.*; 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.TCity; import com.dsh.guns.modular.system.model.TOperator; import com.dsh.guns.modular.system.model.TOperatorCity; import com.dsh.guns.modular.system.model.TStore; import com.dsh.guns.modular.system.service.ICityService; import com.dsh.guns.modular.system.service.IStoreService; import com.dsh.guns.modular.system.service.TOperatorCityService; import com.dsh.guns.modular.system.service.TOperatorService; import com.dsh.guns.modular.system.util.ExcelUtil; import com.dsh.guns.modular.system.util.OBSUploadUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; 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 sun.rmi.runtime.Log; import javax.jws.soap.SOAPBinding; import javax.servlet.http.HttpServletResponse; import java.io.OutputStream; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * 车辆管理控制器 * * @author fengshuonan * @Date 2020-06-05 17:25:12 */ @Controller @RequestMapping("/tCompetition") public class TCompetitionController extends BaseController { private String PREFIX = "/system/tCompetition/"; @Autowired private CompetitionClient competitionClient; @Autowired private IStoreService storeService; @Autowired private ICityService cityService; /** * 导出赛事已报名用户列表 */ @RequestMapping(value = "/export") @ResponseBody public void exportUserInfo(Integer id, Integer state, HttpServletResponse response) { try { Competition byId = competitionClient.queryById(id); String name = byId.getName(); Date date = new Date(); DateFormat format = new SimpleDateFormat("yyyyMMdd"); String time1 = format.format(date); String fileName =name+"报名信息.xls"; String[] title = new String[] {"姓名","性别","联系电话","身份证号","状态"}; GetPeopleQuery query = new GetPeopleQuery(); query.setId(id); query.setState(state); List list = competitionClient.getPeoples(query); String[][] values = new String[list.size()][]; for (int i = 0; i < list.size(); i++) { CompetitionUser d = list.get(i); values[i] = new String[title.length]; values[i][0] = d.getName(); Integer sex = d.getSex(); if(Objects.nonNull(sex)){ if(1 == sex){ values[i][1] = "男"; }else if(2 == sex){ values[i][1] = "女"; } }else { values[i][1] = "未知"; } values[i][2] = d.getPhone(); values[i][3] = d.getIdCard(); Integer state1 = d.getState(); if(1 == state1){ values[i][4] = "正常"; }else if(2 == state1){ values[i][4] = "冻结"; }else { values[i][4] = "删除"; } } HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook("Variance"+time1, title, values, null); ExcelUtil.setResponseHeader(response, fileName); OutputStream os = response.getOutputStream(); wb.write(os); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 跳转到车辆管理首页 */ @RequestMapping("") public String index(Model model) { List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); model.addAttribute("list",list); Integer objectType = UserExt.getUser().getObjectType(); model.addAttribute("type",objectType); return PREFIX + "TCompetition.html"; } @Autowired private TOperatorService tOperatorService; /** * 跳转到添加车辆管理 */ @RequestMapping("/tCompetition_add") public String tCompetitionAdd(Model model) { List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); model.addAttribute("list",list); List list1 = tOperatorService.list(); model.addAttribute("yysList",list1); Integer objectType = UserExt.getUser().getObjectType(); model.addAttribute("type",objectType); Integer objectId = UserExt.getUser().getObjectId(); List operatorId = storeService.list(new QueryWrapper().eq("operatorId", objectId)); model.addAttribute("stores",operatorId); if (UserExt.getUser().getObjectType()==2){ // 查询这个运营商管理的省 TOperator id = tOperatorService.getOne(new QueryWrapper().eq("id", UserExt.getUser().getObjectId())); if (id.getType()==1){ // 全国 List list3 = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); model.addAttribute("province",list3); }else{ // 找到他管理的省 List list4 = operatorCityService.list(new QueryWrapper().eq("operatorId", UserExt.getUser().getObjectId()).eq("pid", 0)); model.addAttribute("province",list4); } model.addAttribute("operator",objectId); // 查询当前运营商管理了哪些门店 List stores = storeService .list(new QueryWrapper() .eq("operatorId", UserExt.getUser().getObjectId())); model.addAttribute("stores",stores); } if (UserExt.getUser().getObjectType()==1) model.addAttribute("operator",0); TStore byId = storeService.getById(UserExt.getUser().getObjectId()); if (UserExt.getUser().getObjectType()==3) model.addAttribute("operator",byId.getOperatorId()); List list2 = tOperatorService.list(); model.addAttribute("yysList",list2); return PREFIX + "TCompetition_add.html"; } /** * 跳转到修改车辆管理 */ @RequestMapping("/tCompetition_update/{id}") public String tCarUpdate(@PathVariable Integer id, Model model) { Integer objectType = UserExt.getUser().getObjectType(); model.addAttribute("objectType",objectType); Competition competition = competitionClient.queryById(id); System.out.println("======competition======"+competition); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm"); String startTime = formatter.format(competition.getStartTime()); model.addAttribute("startTime",startTime); String endTime = formatter.format(competition.getEndTime()); model.addAttribute("endTime",endTime); String registerEndTime = formatter.format(competition.getRegisterEndTime()); model.addAttribute("registerEndTime",registerEndTime); model.addAttribute("item",competition); String[] split = competition.getStoreId().split(","); List integers = new ArrayList<>(); for (String s : split) { integers.add(Integer.valueOf(s)); } model.addAttribute("storeIds",integers); List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); TCity one = cityService.getOne(new LambdaQueryWrapper().eq(TCity::getCode, competition.getProvinceCode())); List list1 = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId,one.getId())); List list2 = storeService.list(new LambdaQueryWrapper().eq(TStore::getCityCode,competition.getCityCode())); model.addAttribute("list",list); model.addAttribute("list1",list1); model.addAttribute("list2",list2); model.addAttribute("type",1); return PREFIX + "TCompetition_edit.html"; } @RequestMapping("/tCompetition_info/{id}") public String tCarInfo(@PathVariable Integer id, Model model) { Integer objectType = UserExt.getUser().getObjectType(); model.addAttribute("objectType",objectType); Competition competition = competitionClient.queryById(id); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String startTime = formatter.format(competition.getStartTime()); model.addAttribute("startTime",startTime); String endTime = formatter.format(competition.getEndTime()); model.addAttribute("endTime",endTime); String registerEndTime = formatter.format(competition.getRegisterEndTime()); model.addAttribute("registerEndTime",registerEndTime); model.addAttribute("item",competition); List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); TCity one = cityService.getOne(new LambdaQueryWrapper().eq(TCity::getCode, competition.getProvinceCode())); List list1 = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId,one.getId())); List list2 = storeService.list(new LambdaQueryWrapper().eq(TStore::getCityCode,competition.getCityCode())); model.addAttribute("list",list); model.addAttribute("list1",list1); model.addAttribute("list2",list2); model.addAttribute("type",2); String[] split = competition.getStoreId().split(","); List integers = new ArrayList<>(); for (String s : split) { integers.add(Integer.valueOf(s)); } model.addAttribute("storeIds",integers); return PREFIX + "TCompetition_edit.html"; } @RequestMapping("/tCompetition_user/{id}") public String tCarUser(@PathVariable Integer id, Model model) { model.addAttribute("id",id); return PREFIX + "TCompetitionUser.html"; } @RequestMapping(value = "/list") @ResponseBody public Object list(String provinceCode, String cityCode, String shopName, String eventName, String time, Integer state, Integer registerCondition) { List ids = new ArrayList<>(); List list = null; // 获取门店id if(ToolUtil.isNotEmpty(shopName)){ list = storeService.list(new LambdaQueryWrapper().like(TStore::getName, shopName)); ids = list.stream().map(TStore::getId).collect(Collectors.toList()); }else { list = storeService.list(); ids = storeService.list().stream().map(TStore::getId).collect(Collectors.toList()); } if(ids.size()==0){ ids.add(-1); } if (UserExt.getUser().getObjectType()== 2){ if (shopName == null) shopName = ""; List operatorId = storeService.list(new QueryWrapper() .eq("operatorId", UserExt.getUser().getObjectId()) .like("name",shopName)) .stream().map(TStore::getId).collect(Collectors.toList()); ids = operatorId; } Page page = new PageFactory().defaultPage(); ListQuery listQuery = new ListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,eventName,time,state,registerCondition,ids,UserExt.getUser().getObjectType()); Page competitions = competitionClient.list(listQuery); List records = new ArrayList<>(); for (Competition competition : competitions.getRecords()) { if (competition.getStatus()!=state && state != null){ }else{ records.add(competition); } for (TStore tStore : list) { String[] split = competition.getStoreId().split(","); for (String s : split) { if(s.equals(String.valueOf(tStore.getId()))){ if (competition.getStoreName()==null){ competition.setStoreName(tStore.getName()); }else { competition.setStoreName(competition.getStoreName()+","+tStore.getName()); } } } } } competitions.setRecords(records); System.err.println(competitions.getRecords()); return super.packForBT(competitions); } @RequestMapping(value = "/listUser/{id}") @ResponseBody public Object listUser(@PathVariable Integer id,Integer state, Integer offset,Integer limit) { try { Page page = competitionClient.getPeopleFromId1(new GetPeopleQuery(limit, offset, id, state)); return super.packForBT(page); }catch (Exception e){ e.printStackTrace(); return ERROR; } } @RequestMapping(value = "/add") @ResponseBody public Object list(Competition competition) { try { if(ToolUtil.isNotEmpty(competition.getProvinceCode())) { System.out.println("=============="+competition); TCity one = cityService.getOne(new LambdaQueryWrapper().eq(TCity::getCode, competition.getProvinceCode())); competition.setProvince(one.getName()); TCity one1 = cityService.getOne(new LambdaQueryWrapper().eq(TCity::getCode, competition.getCityCode())); competition.setCity(one1.getName()); } if (UserExt.getUser().getObjectType() == 1){ competition.setAuditStatus(2); }else if (UserExt.getUser().getObjectType() == 2){ competition.setAuditStatus(1); competition.setOperatorId(UserExt.getUser().getObjectId()); } // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); // competition.setStartTime(format1.parse(competition.getSTime())); // competition.setEndTime(format1.parse(competition.getETime())); // competition.setRegisterEndTime(format.parse(competition.getREndTime())); competitionClient.add(competition); return new SuccessTip<>(); }catch (Exception e){ e.printStackTrace(); return ERROR; } } @RequestMapping(value = "/update") @ResponseBody public Object update(Competition competition) { try { Competition competition1 = competitionClient.queryById(competition.getId()); if(ToolUtil.isNotEmpty(competition.getProvinceCode())) { TCity one = cityService.getOne(new LambdaQueryWrapper().eq(TCity::getCode, competition.getProvinceCode())); competition.setProvince(one.getName()); TCity one1 = cityService.getOne(new LambdaQueryWrapper().eq(TCity::getCode, competition.getCityCode())); competition.setCity(one1.getName()); } if(ToolUtil.isEmpty(competition.getCoverDrawing())){ competition.setCoverDrawing(competition1.getCoverDrawing()); } if(ToolUtil.isEmpty(competition.getRegistrationNotes())){ competition.setRegistrationNotes(competition1.getRegistrationNotes()); } if (UserExt.getUser().getObjectType() == 1){ competition.setAuditStatus(2); }else{ competition.setAuditStatus(1); } competitionClient.update(competition); return new SuccessTip<>(); }catch (Exception e){ e.printStackTrace(); return ERROR; } } @ResponseBody @RequestMapping(value = "/cancel") public Object cancel(Integer TCompetitionId) { try { competitionClient.cancel(TCompetitionId); return SUCCESS_TIP; }catch (Exception e){ e.printStackTrace(); return ERROR; } } @ResponseBody @RequestMapping(value = "/getPeopleFromId") public Object getPeopleFromId(Integer id,Integer state) { try { Page page = new PageFactory<>().defaultPage(); Page data = competitionClient.getPeopleFromId(new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state)); return super.packForBT(data); }catch (Exception e){ e.printStackTrace(); return ERROR; } } @Autowired private TOperatorCityService operatorCityService; @RequestMapping(value = "/onChange") @ResponseBody public Object onChange(Integer oneId) { System.out.println("======"+oneId); List list = operatorCityService.list(new LambdaQueryWrapper() .eq(TOperatorCity::getOperatorId, oneId).eq(TOperatorCity::getType, 2)); if (list.size()!=0){ return list; } 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 = "/onChange3") @ResponseBody public Object onChange3(String oneId) { TCity one = cityService.getOne(new LambdaQueryWrapper().eq(TCity::getCode, oneId)); return cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId,one.getId())); } @RequestMapping(value = "/oneChangeNext") @ResponseBody public Object oneChangeNext(Integer oneId) { try { return storeService.list(new LambdaQueryWrapper().eq(TStore::getCityCode, oneId)); }catch (Exception e){ e.printStackTrace(); return ERROR; } } }