package com.dsh.guns.modular.system.controller.code; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.dsh.course.feignClient.communityWorldCup.Model.WorldCupStore; import com.dsh.course.feignClient.communityWorldCup.WorldCupClient; import com.dsh.course.feignClient.communityWorldCup.Model.WorldCup; import com.dsh.course.feignClient.communityWorldCup.Model.WorldCupListAll; import com.dsh.course.feignClient.communityWorldCup.WorldCupStoreClient; import com.dsh.guns.modular.system.service.IStoreService; import com.dsh.guns.modular.system.util.DateUtil; 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.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import java.sql.ResultSet; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * @author zhibing.pu * @Date 2024/3/2 10:40 */ @Controller @RequestMapping("/worldCup") public class WorldCupController { private String PREFIX = "/system/worldCup/"; @Resource private WorldCupClient worldCupClient; @Resource private WorldCupStoreClient worldCupStoreClient; @Autowired private IStoreService storeService; /** * 跳转列表页 * @return */ @RequestMapping("") public String showWorldCupList(){ return PREFIX + "worldCup.html"; } /** * 跳转到添加页 * @return */ @RequestMapping("/openAddWorldCup") public String openAddWorldCup(){ return PREFIX + "worldCup_add.html"; } @RequestMapping("/openEditWorldCup") public String openEditWorldCup(Model model, Integer id){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); WorldCup worldCup = worldCupClient.getWorldCupById(id); model.addAttribute("item", worldCup); model.addAttribute("startTime", sdf.format(worldCup.getStartTime())); model.addAttribute("endTime", sdf.format(worldCup.getEndTime())); model.addAttribute("registrationClosingTime", null != worldCup.getRegistrationClosingTime() ? sdf.format(worldCup.getRegistrationClosingTime()) : ""); List worldCupStoreAllList = worldCupStoreClient.getWorldCupStoreAllList(id); List collect = worldCupStoreAllList.stream().map(WorldCupStore::getStoreId).collect(Collectors.toList()); List> mapList = storeService.listStoreAllByIds(collect); model.addAttribute("stores", JSON.toJSONString(mapList)); return PREFIX + "worldCup_edit.html"; } @RequestMapping("/openInfoWorldCup") public String openInfoWorldCup(Model model, Integer id){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); WorldCup worldCup = worldCupClient.getWorldCupById(id); model.addAttribute("item", worldCup); model.addAttribute("startTime", sdf.format(worldCup.getStartTime())); model.addAttribute("endTime", sdf.format(worldCup.getEndTime())); model.addAttribute("registrationClosingTime", null != worldCup.getRegistrationClosingTime() ? sdf.format(worldCup.getRegistrationClosingTime()) : ""); List worldCupStoreAllList = worldCupStoreClient.getWorldCupStoreAllList(id); List collect = worldCupStoreAllList.stream().map(WorldCupStore::getStoreId).collect(Collectors.toList()); List> mapList = storeService.listStoreAllByIds(collect); model.addAttribute("stores", JSON.toJSONString(mapList)); return PREFIX + "worldCup_info.html"; } /** * 跳转到门店选择页面 * @return */ @RequestMapping("/openStore") public String openStore(){ return PREFIX + "store.html"; } /** * 获取列表数据 * @param worldCupList * @return */ @ResponseBody @PostMapping("/listAll") public Object listAll(WorldCupListAll worldCupList){ return worldCupClient.getWorldCupListAll(worldCupList); } /** * 添加社区世界杯 * @param worldCup * @param stores * @return */ @ResponseBody @PostMapping("/addWorldCup") public ResultUtil addWorldCup(WorldCup worldCup, String stores){ worldCup.setStatus(1); worldCup.setCreateTime(new Date()); worldCup.setMatchNumber(0); Integer integer = worldCupClient.addWorldCup(worldCup); if(null != integer){ JSONArray jsonArray = JSON.parseArray(stores); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); Integer id = jsonObject.getInteger("id"); WorldCupStore worldCupStore = new WorldCupStore(); worldCupStore.setStoreId(id); worldCupStore.setWorldCupId(integer); worldCupStore.setIsOpen(0); worldCupStoreClient.addWorldCupStore(worldCupStore); } } return ResultUtil.success(); } /** * 编辑社区世界杯 * @param worldCup * @param stores * @return */ @ResponseBody @PostMapping("/editWorldCup") public ResultUtil editWorldCup(WorldCup worldCup, String stores){ WorldCup worldCup1 = worldCupClient.getWorldCupById(worldCup.getId()); if(worldCup1.getStartTime().before(DateUtil.getDate())){ return ResultUtil.error("赛事已开始,不能编辑"); } worldCupClient.editWorldCup(worldCup); worldCupStoreClient.delWorldCupStore(worldCup.getId()); JSONArray jsonArray = JSON.parseArray(stores); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); Integer id = jsonObject.getInteger("id"); WorldCupStore worldCupStore = new WorldCupStore(); worldCupStore.setStoreId(id); worldCupStore.setWorldCupId(worldCup.getId()); worldCupStore.setIsOpen(0); worldCupStoreClient.addWorldCupStore(worldCupStore); } return ResultUtil.success(); } /** * 修改赛事状态 * @param id * @param state * @return */ @ResponseBody @PostMapping("/updateState") public ResultUtil updateState(Integer id, Integer state){ WorldCup worldCup = new WorldCup(); worldCup.setId(id); worldCup.setStatus(state); worldCupClient.editWorldCup(worldCup); //开始处理已支付的退费 worldCupClient.cancelWorldCupRefund(id); return ResultUtil.success(); } }