package com.dsh.guns.modular.system.controller.code; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.feignClient.competition.CompetitionClient; import com.dsh.course.feignClient.competition.model.*; 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.TStore; import com.dsh.guns.modular.system.service.ICityService; import com.dsh.guns.modular.system.service.IStoreService; import com.dsh.guns.modular.system.service.TOperatorService; 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.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; 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("") public String index(Model model) { List list = cityService.list(new LambdaQueryWrapper().eq(TCity::getParentId, 0)); model.addAttribute("list",list); 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); return PREFIX + "TCompetition_add.html"; } /** * 跳转到修改车辆管理 */ @RequestMapping("/tCompetition_update/{id}") public String tCarUpdate(@PathVariable Integer id, Model model) { Competition competition = competitionClient.queryById(id); 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",1); return PREFIX + "TCompetition_edit.html"; } @RequestMapping("/tCompetition_info/{id}") public String tCarInfo(@PathVariable Integer id, Model model) { Competition competition = competitionClient.queryById(id); 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); 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); } Page page = new PageFactory().defaultPage(); ListQuery listQuery = new ListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,eventName,time,state,registerCondition,ids); Page competitions = competitionClient.list(listQuery); for (Competition competition : competitions.getRecords()) { 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()); } } } } } return super.packForBT(competitions); } @RequestMapping(value = "/listUser/{id}") @ResponseBody public Object listUser(@PathVariable 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; } } @RequestMapping(value = "/add") @ResponseBody public Object list(Competition competition) { try { 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()); } competition.setAuditStatus(1); 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()); } competitionClient.update(competition); return new SuccessTip<>(); }catch (Exception e){ e.printStackTrace(); return ERROR; } } @RequestMapping(value = "/cancel") public Object cancel(Integer id) { try { competitionClient.cancel(id); return SUCCESS_TIP; }catch (Exception e){ e.printStackTrace(); return ERROR; } } @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; } } @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 = "/oneChangeNext") @ResponseBody public Object oneChangeNext(Integer oneId) { try { return storeService.list(new LambdaQueryWrapper().eq(TStore::getCityCode, oneId)); }catch (Exception e){ e.printStackTrace(); return ERROR; } } }