lisy
2023-08-02 d69f9a06fb73f9d5efea882a684d217f12e34a4f
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java
@@ -1,25 +1,29 @@
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.course.CourseClient;
import com.dsh.guns.config.UserExt;
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.core.base.tips.SuccessTip;
import com.dsh.guns.core.common.constant.factory.PageFactory;
import com.dsh.guns.core.util.SinataUtil;
import com.dsh.guns.modular.system.util.DateUtil;
import com.dsh.guns.modular.system.util.ExcelExportUtil;
import com.dsh.guns.modular.system.util.ResultUtil;
import org.apache.commons.lang.time.DateUtils;
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.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
 * 车辆管理控制器
@@ -28,13 +32,19 @@
 * @Date 2020-06-05 17:25:12
 */
@Controller
@RequestMapping("/TCompetition")
@RequestMapping("/tCompetition")
public class TCompetitionController extends BaseController {
    private String PREFIX = "/system/TCompetition/";
    private String PREFIX = "/system/tCompetition/";
    @Autowired
    private CourseClient courseClient;
    private CompetitionClient competitionClient;
    @Autowired
    private IStoreService storeService;
    @Autowired
    private ICityService cityService;
    /**
@@ -50,7 +60,7 @@
     */
    @RequestMapping("/tCompetition_add")
    public String tCompetitionAdd(Model model) {
        return PREFIX + "tCompetition_add.html";
        return PREFIX + "TCompetition_add.html";
    }
@@ -59,191 +69,99 @@
     */
    @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 createTime,
                       String id,
                       String brandName,
                       String modelName,
                       String carColor,
                       String serverStr,
                       String carLicensePlate,
                       String driverName,
                       String companyName,
                       String franchiseeName) {
        String beginTime = null;
        String endTime = null;
        if (SinataUtil.isNotEmpty(createTime)){
            String[] timeArray = createTime.split(" - ");
            beginTime = timeArray[0];
            endTime = timeArray[1];
        }
        Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage();
        return super.packForBT(page);
    }
    /**
     * 新增车辆管理
     */
    @RequestMapping(value = "/add")
    @ResponseBody
    public Object add( ) {
        return ResultUtil.success();
    }
    /**
     * 删除车辆管理
     */
    @RequestMapping(value = "/delete")
    @ResponseBody
    public Object delete(@RequestParam Integer tCarId) {
        return SUCCESS_TIP;
    }
    /**
     * 修改车辆管理
     */
    @RequestMapping(value = "/update")
    @ResponseBody
    public Object update() {
        return ResultUtil.success();
    }
    /**
     * 车辆管理详情
     */
    @RequestMapping(value = "/detail/{tCarId}")
    @ResponseBody
    public Object detail(@PathVariable("tCarId") Integer tCarId) {
        return null;
    }
    /**
     * 下载模板
     * @param request
     * @param response
     */
    @RequestMapping(value = "/uploadCarModel")
    public void uploadCarModel(HttpServletRequest request, HttpServletResponse response) {
        // 表格数据【封装】 Table datas
        List<List<String>> dataList = new ArrayList<List<String>>();
        Integer language = UserExt.getLanguage();
        if(language==1){
            // 首行【封装】 first line
            List<String> shellList = new ArrayList<String>();
            shellList.add("所属机构[平台车辆/加盟车辆]");
            shellList.add("所属分公司[提示:加盟车辆选填]");
            shellList.add("所属加盟商[提示:加盟车辆选填]");
            shellList.add("服务模式:摩托车车[是/否]");
            shellList.add("服务模式:同城快送[是/否]");
            shellList.add("车辆品牌");
            shellList.add("车辆类型");
            shellList.add("车辆颜色[1(黑色)/2(银色)/3(白色)/4(红色)/5(黄色)/6(橙色)/7(蓝色)]");
            shellList.add("车牌号");
            shellList.add("行驶证编号");
            shellList.add("年检到期时间[例如 2020-02-02]");
            shellList.add("商业保险到期时间[例如 2020-02-02]");
            dataList.add(shellList);
            try {
                // 调用工具类进行导出 Invoke the utility class to carry out data export.
                ExcelExportUtil.easySheet("平台导入车辆模板"+DateUtil.format(new Date(), "YYYYMMddHHmmss"), "平台导入车辆模板", dataList, request, response);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }else if(language==2){
            // 首行【封装】 first line
            List<String> shellList = new ArrayList<String>();
            shellList.add("Affiliated Organization [Platform Vehicle/Franchised Vehicle]");
            shellList.add("Affiliated branch [Tip: Select for franchised vehicle]");
            shellList.add("Franchisee [Tip: Select Franchised vehicle]");
            shellList.add("Service mode: Motorcycle [Yes/No]");
            shellList.add("Service mode: intra-city express [Yes/No]");
            shellList.add("Vehicle brand");
            shellList.add("Vehicle type");
            shellList.add("Vehicle color [1(Black)/2(Silver)/3(white)/4(red)/5(yellow)/6(orange)/7(Blue)]");
            shellList.add("License plate number");
            shellList.add("License number");
            shellList.add("Annual inspection expiration time [e.g. 2020-02-02]");
            shellList.add("Commercial Insurance Expiration Time [e.g. 2020-02-02]");
            dataList.add(shellList);
            try {
                // 调用工具类进行导出 Invoke the utility class to carry out data export.
                ExcelExportUtil.easySheet("Platform import vehicle template"+DateUtil.format(new Date(), "YYYYMMddHHmmss"), "Platform import vehicle template", dataList, request, response);
            } catch (Exception e) {
                e.printStackTrace();
            }
    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 {
            // 首行【封装】 first line
            List<String> shellList = new ArrayList<String>();
            shellList.add("Organisasi Berkait [Platform Vehicle/Franchised Vehicle]");
            shellList.add("Branch terkait [Tip: Pilih untuk kendaraan terkait]");
            shellList.add("Franchisee [Tip: Pilih kendaraan Franchised]");
            shellList.add("Mod layanan: Motosikal [Ya/Tidak]");
            shellList.add("Modus layanan: ekspres intra-kota [Ya/Tidak]");
            shellList.add("Tanda kendaraan");
            shellList.add("Jenis kendaraan");
            shellList.add("Warna kendaraan [1(Hitam)/2(Perak)/3(putih)/4(merah)/5(kuning)/6(oranye)/7(Biru)]");
            shellList.add("Nomor plat lisensi");
            shellList.add("Nomor lisensi");
            shellList.add("Waktu penggantian inspeksi tahunan [contohnya 2020-02-02]");
            shellList.add("Waktu Expiration Insurance Commercial [contohnya 2020-02-02]");
            dataList.add(shellList);
            try {
                // 调用工具类进行导出 Invoke the utility class to carry out data export.
                ExcelExportUtil.easySheet("templat kendaraan import platform"+DateUtil.format(new Date(), "YYYYMMddHHmmss"), "templat kendaraan import platform", dataList, request, response);
            } catch (Exception e) {
                e.printStackTrace();
            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);
    }
    /**
     * 判断日期是否满足yyyy-MM-dd格式
     * @param str
     * @return
     */
    public static boolean isValidDate(String str) {
        boolean convertSuccess=true;
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    @RequestMapping(value = "/add")
    public Object list(Competition competition) {
        try {
            format.setLenient(false);
            format.parse(str);
        } catch (Exception e) {
            convertSuccess=false;
            competitionClient.add(competition);
            return SUCCESS_TIP;
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
        }
        return convertSuccess;
    }
    @RequestMapping(value = "/update")
    public Object update(Competition competition) {
        try {
            competitionClient.update(competition);
            return SUCCESS_TIP;
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
        }
    }
    /**
     * 转换日期
     * @return
     */
    public static String importByExcelForDate(String value) {//value就是它的天数
        String currentCellValue = "";
        if(value != null && !value.equals("")){
            Calendar calendar = new GregorianCalendar(1900,0,-1);
            Date d = calendar.getTime();
            Date dd = DateUtils.addDays(d,Integer.valueOf(value));
            DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
            currentCellValue = formater.format(dd);
    @RequestMapping(value = "/cancel")
    public Object cancel(Integer id) {
        try {
            competitionClient.cancel(id);
            return SUCCESS_TIP;
        }catch (Exception e){
            e.printStackTrace();
            return ERROR;
        }
        return currentCellValue;
    }
    @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;
        }
    }
}