lisy
2023-08-02 d69f9a06fb73f9d5efea882a684d217f12e34a4f
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
@@ -1,53 +1,167 @@
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.Competition;
import com.dsh.course.feignClient.competition.model.GetPeopleQuery;
import com.dsh.course.feignClient.competition.model.ListQuery;
import com.dsh.course.feignClient.competition.model.Participant;
import com.dsh.guns.core.base.controller.BaseController;
import com.dsh.guns.modular.system.client.competition.CompetitionClient;
import com.dsh.guns.core.base.tips.SuccessTip;
import com.dsh.guns.core.common.constant.factory.PageFactory;
import com.dsh.guns.core.support.HttpKit;
import com.dsh.guns.core.util.ToolUtil;
import com.dsh.guns.modular.system.model.TCity;
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 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.*;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 菜单控制器
 * 车辆管理控制器
 *
 * @author fengshuonan
 * @Date 2017年2月12日21:59:14
 * @Date 2020-06-05 17:25:12
 */
@Controller
@RequestMapping("/tCompetition")
public class TCompetitionController extends BaseController {
    private static String PREFIX = "/system/tCompetition/";
    private String PREFIX = "/system/tCompetition/";
    @Autowired
    private CompetitionClient competitionClient;
    @Autowired
    private IStoreService storeService;
    @Autowired
    private ICityService cityService;
    /**
     * 跳转到菜单列表列表页面
     * 跳转到车辆管理首页
     */
    @RequestMapping("")
    public String index(Model model) {
        return PREFIX + "tCompetition.html";
        return PREFIX + "TCompetition.html";
    }
    /**
     * 跳转到菜单列表列表页面
     * 跳转到添加车辆管理
     */
    @RequestMapping(value = "/tCompetition_add")
    @RequestMapping("/tCompetition_add")
    public String tCompetitionAdd(Model model) {
        return PREFIX + "tCompetition_add.html";
        return PREFIX + "TCompetition_add.html";
    }
    /**
     * 跳转到菜单详情列表页面
     * 跳转到修改车辆管理
     */
    @RequestMapping(value = "/tCompetition_edit/{id}")
    public String menuEdit(@PathVariable Integer id, Model model) {
        return PREFIX + "menu_edit.html";
    @RequestMapping("/tCompetition_update/{id}")
    public String tCarUpdate(@PathVariable Integer id, Model model) {
        Competition competition = competitionClient.queryById(id);
        model.addAttribute("item",competition);
        return PREFIX + "tCompetition_edit.html";
    }
    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(String provinceCode, String cityCode, String shopName, String eventName, String time, Integer state, Integer registerCondition) {
        List<Integer> ids = new ArrayList<>();
        List<TStore> list = null;
        // 获取门店id
        if(ToolUtil.isNotEmpty(shopName)){
             list = storeService.list(new LambdaQueryWrapper<TStore>().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<Competition> page = new PageFactory<Competition>().defaultPage();
        ListQuery listQuery = new ListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,eventName,time,state,registerCondition,ids);
        Page<Competition> competitions = competitionClient.list(listQuery);
        for (Competition competition : competitions.getRecords()) {
            for (TStore tStore : list) {
                if(competition.getStoreId().equals(tStore.getId())){
                    competition.setStoreName(tStore.getName());
                }
            }
        }
        return  super.packForBT(competitions);
    }
    @RequestMapping(value = "/add")
    public Object list(Competition competition) {
        try {
            competitionClient.add(competition);
            return SUCCESS_TIP;
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
        }
    }
    @RequestMapping(value = "/update")
    public Object update(Competition competition) {
        try {
            competitionClient.update(competition);
            return SUCCESS_TIP;
        }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<Object> page = new PageFactory<>().defaultPage();
            Page<Participant> 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<TCity>().eq(TCity::getCode, oneId));
            return cityService.list(new LambdaQueryWrapper<TCity>().eq(TCity::getParentId,one.getId()));
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
        }
    }
}