package com.stylefeng.guns.modular.system.controller.specialTrain; import cn.hutool.core.codec.Base64; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.base.controller.BaseController; import com.stylefeng.guns.core.base.tips.ErrorTip; import com.stylefeng.guns.core.common.constant.factory.PageFactory; import com.stylefeng.guns.core.log.LogObjectHolder; import com.stylefeng.guns.core.shiro.ShiroKit; import com.stylefeng.guns.core.util.SinataUtil; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.SystemPriceCity; import com.stylefeng.guns.modular.system.model.TRegion; import com.stylefeng.guns.modular.system.model.TServerCarmodel; import com.stylefeng.guns.modular.system.model.TSystemPrice; import com.stylefeng.guns.modular.system.service.ISystemPriceCityService; import com.stylefeng.guns.modular.system.service.ITRegionService; import com.stylefeng.guns.modular.system.service.ITServerCarmodelService; import com.stylefeng.guns.modular.system.service.ITSystemPriceService; import com.stylefeng.guns.modular.system.util.PushMinistryOfTransportUtil; import com.stylefeng.guns.modular.system.util.ResultUtil; import net.sf.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; 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.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; /** * 快车价格设置控制器 * * @author fengshuonan * @Date 2020-08-29 10:50:13 */ @Controller @RequestMapping("/tSystemPrice") public class TSystemPriceController extends BaseController { private String PREFIX = "/system/tSystemPrice/"; @Autowired private ITSystemPriceService tSystemPriceService; @Autowired private ITServerCarmodelService tServerCarmodelService; @Autowired private PushMinistryOfTransportUtil pushMinistryOfTransportUtil; @Autowired private ITRegionService tRegionService; @Value("${pushMinistryOfTransport}") private boolean pushMinistryOfTransport; @Autowired private ISystemPriceCityService systemPriceCityService; /** * 跳转到列表页 * @return */ @RequestMapping("/showSystemPriceCity") public String showSystemPriceCity(){ return PREFIX + "systemPriceCity.html"; } /** * 跳转到添加价格 * @return */ @RequestMapping("/systemPriceCity_add") public String systemPriceCity_add(Model model){ List tServerCarmodels = tServerCarmodelService.selectList(new EntityWrapper().eq("type", 1).eq("state", 1)); model.addAttribute("serverCarModelList", tServerCarmodels); List provinceList = tRegionService.selectList(new EntityWrapper().eq("parent_id", 0)); model.addAttribute("provinceList",provinceList); return PREFIX + "systemPriceCity_add.html"; } /** * 跳转到修改价格城市 * @return */ @RequestMapping("/systemPriceCity_update") public String systemPriceCity_update(Integer id, Model model){ SystemPriceCity systemPriceCity = systemPriceCityService.selectById(id); model.addAttribute("item", systemPriceCity); //省 List provinceList = tRegionService.selectList(new EntityWrapper().eq("parent_id", 0)); model.addAttribute("provinceList",provinceList); //市 TRegion code = tRegionService.selectOne(new EntityWrapper().eq("code", systemPriceCity.getAreaCode())); List cityList = tRegionService.selectList(new EntityWrapper().eq("parent_id", code.getId())); model.addAttribute("cityList",cityList); //区 model.addAttribute("areaList", null); if(ToolUtil.isNotEmpty(systemPriceCity.getProvinceCode())){ code = tRegionService.selectOne(new EntityWrapper().eq("code", systemPriceCity.getCityCode())); List areaList = tRegionService.selectList(new EntityWrapper().eq("parent_id", code.getId())); model.addAttribute("areaList",areaList); } List tServerCarmodels = tServerCarmodelService.selectList(new EntityWrapper().eq("type", 1).eq("state", 1)); List tSystemPrices = tSystemPriceService.selectList(new EntityWrapper().eq("systemPriceCityId", id).eq("state", 1).eq("type", 1)); tServerCarmodels.forEach(s->{ Optional first = tSystemPrices.stream().filter(p -> p.getServerCarModelId().equals(s.getId())).findFirst(); if(first.isPresent()){ TSystemPrice tSystemPrice = first.get(); s.setObject(Base64.encode(JSON.toJSONString(tSystemPrice))); } }); model.addAttribute("serverCarModelList", tServerCarmodels); TSystemPrice systemPrice = tSystemPriceService.selectOne(new EntityWrapper().eq("systemPriceCityId", id).eq("state", 1).eq("type", 2)); model.addAttribute("zcPrice", Base64.encode(systemPrice.getContent())); return PREFIX + "systemPriceCity_edit.html"; } /** * 跳转到快车价格设置首页 */ @RequestMapping("/special") public String index(Integer id) { return PREFIX + "tSystemPrice.html"; } /** * 跳转到小件物流价格设置首页 */ @RequestMapping("/small") public String small(Model model) { //跨城小件物流 TSystemPrice one = tSystemPriceService.selectOne(new EntityWrapper().eq("type", 5).eq("companyId", ShiroKit.getUser().getObjectId()).eq("state", 1)); if (SinataUtil.isNotEmpty(one)){ JSONObject json1 = JSONObject.fromObject(one.getContent()); model.addAttribute("json1",json1); } //同城小件物流 TSystemPrice two = tSystemPriceService.selectOne(new EntityWrapper().eq("type", 4).eq("companyId", ShiroKit.getUser().getObjectId()).eq("state", 1)); if (SinataUtil.isNotEmpty(two)){ JSONObject json2 = JSONObject.fromObject(two.getContent()); model.addAttribute("json2",json2); } return PREFIX + "small.html"; } @RequestMapping("/taxi") public String taxi(String price, Model model) { model.addAttribute("json", new JSONObject()); if(ToolUtil.isNotEmpty(price)){ price = Base64.decodeStr(price); JSONObject json1 = JSONObject.fromObject(price); model.addAttribute("json", json1); } return PREFIX + "taxiSet.html"; } /** * 跳转到添加快车价格设置 */ @RequestMapping("/tSystemPrice_add") public String tSystemPriceAdd(Integer id, String price, Model model) { model.addAttribute("item", null); model.addAttribute("content", null); model.addAttribute("contentPutOne", null); model.addAttribute("contentNotOne", null); model.addAttribute("contentPutTwo", null); model.addAttribute("contentNotTwo", null); model.addAttribute("contentPutThree", null); model.addAttribute("contentNotThree", null); model.addAttribute("contentExclusive", null); model.addAttribute("contentPrice", null); if(ToolUtil.isNotEmpty(price)){ String s = Base64.decodeStr(price); TSystemPrice tSystemPrice = JSON.parseObject(s, TSystemPrice.class); model.addAttribute("item",tSystemPrice); LogObjectHolder.me().set(tSystemPrice); JSONObject json = JSONObject.fromObject(tSystemPrice.getContent()); model.addAttribute("content",json); model.addAttribute("contentPutOne", JSONObject.fromObject(tSystemPrice.getContentPutOne())); model.addAttribute("contentNotOne", JSONObject.fromObject(tSystemPrice.getContentNotOne())); model.addAttribute("contentPutTwo", JSONObject.fromObject(tSystemPrice.getContentPutTwo())); model.addAttribute("contentNotTwo", JSONObject.fromObject(tSystemPrice.getContentNotTwo())); model.addAttribute("contentPutThree", JSONObject.fromObject(tSystemPrice.getContentPutThree())); model.addAttribute("contentNotThree", JSONObject.fromObject(tSystemPrice.getContentNotThree())); model.addAttribute("contentExclusive", JSONObject.fromObject(tSystemPrice.getContentExclusive())); model.addAttribute("contentPrice", JSONObject.fromObject(tSystemPrice.getContentPrice())); } TServerCarmodel tServerCarmodel = tServerCarmodelService.selectById(id); model.addAttribute("modelList", tServerCarmodel); return PREFIX + "tSystemPrice_edit.html"; } /** * 跳转到修改快车价格设置 */ @RequestMapping("/tSystemPrice_update/{tSystemPriceId}") public String tSystemPriceUpdate(@PathVariable Integer tSystemPriceId, Model model) { TSystemPrice tSystemPrice = tSystemPriceService.selectById(tSystemPriceId); model.addAttribute("item",tSystemPrice); LogObjectHolder.me().set(tSystemPrice); JSONObject json = JSONObject.fromObject(tSystemPrice.getContent()); model.addAttribute("content",json); model.addAttribute("contentPutOne", JSONObject.fromObject(tSystemPrice.getContentPutOne())); model.addAttribute("contentNotOne", JSONObject.fromObject(tSystemPrice.getContentNotOne())); model.addAttribute("contentPutTwo", JSONObject.fromObject(tSystemPrice.getContentPutTwo())); model.addAttribute("contentNotTwo", JSONObject.fromObject(tSystemPrice.getContentNotTwo())); model.addAttribute("contentPutThree", JSONObject.fromObject(tSystemPrice.getContentPutThree())); model.addAttribute("contentNotThree", JSONObject.fromObject(tSystemPrice.getContentNotThree())); model.addAttribute("contentExclusive", JSONObject.fromObject(tSystemPrice.getContentExclusive())); model.addAttribute("contentPrice", JSONObject.fromObject(tSystemPrice.getContentPrice())); //查询所有快车车型 List tSystemPrices = tSystemPriceService.selectList(new EntityWrapper().eq("type", 1).eq("companyId", ShiroKit.getUser().getObjectId()).ne("state", 3)); List modelList = tServerCarmodelService.selectList(new EntityWrapper().eq("type", 1).eq("state", 1) .notIn("id", tSystemPrices.stream().map(TSystemPrice::getServerCarModelId).collect(Collectors.toList()))); List serverCarmodels = new ArrayList<>(); modelList.add(tServerCarmodelService.selectById(tSystemPrice.getServerCarModelId())); // boolean b = true; // for(TSystemPrice tsp : tSystemPrices){ // if(tsc.getId() == tsp.getServerCarModelId()){ // b = false; // break; // } // } // if(b){ // serverCarmodels.add(tsc); // } model.addAttribute("modelList",modelList); return PREFIX + "tSystemPrice_edit.html"; } /** * 获取价格列表设置 * @param name * @param time * @return */ @RequestMapping(value = "/queryList") @ResponseBody public Object queryList(String condition, String insertTime){ Page> page = new PageFactory>().defaultPage(); page.setRecords(systemPriceCityService.queryList(page, condition, insertTime)); return super.packForBT(page); } /** * 获取快车价格设置列表 */ @RequestMapping(value = "/listSpecial") @ResponseBody public Object list(String name,Integer state) { Page> page = new PageFactory>().defaultPage(); page.setRecords(tSystemPriceService.getSpecialPriceList(page, ShiroKit.getUser().getObjectId(), name, state)); return super.packForBT(page); } /** * 新增快车价格设置 */ @RequestMapping(value = "/add") @ResponseBody public Object add(SystemPriceCity systemPriceCity, String zcPrice, String czcPrice) { if(ToolUtil.isNotEmpty(systemPriceCity.getProvinceCode())){ TRegion tRegion = tRegionService.selectById(systemPriceCity.getProvinceCode()); systemPriceCity.setProvinceCode(tRegion.getCode()); } if(ToolUtil.isNotEmpty(systemPriceCity.getCityCode())){ TRegion tRegion = tRegionService.selectById(systemPriceCity.getCityCode()); systemPriceCity.setCityCode(tRegion.getCode()); } if(ToolUtil.isNotEmpty(systemPriceCity.getAreaCode())){ TRegion tRegion = tRegionService.selectById(systemPriceCity.getAreaCode()); systemPriceCity.setAreaCode(tRegion.getCode()); } SystemPriceCity one = null; if(null != systemPriceCity.getProvinceCode()){ one = systemPriceCityService.selectOne(new EntityWrapper().eq("areaCode", systemPriceCity.getAreaCode()) .eq("cityCode", systemPriceCity.getCityCode()).eq("provinceCode", systemPriceCity.getProvinceCode()).ne("flag", 3)); } if(null == one){ one = systemPriceCityService.selectOne(new EntityWrapper().eq("areaCode", systemPriceCity.getAreaCode()) .eq("cityCode", systemPriceCity.getCityCode()).isNull("provinceCode").ne("flag", 3)); if(null == one){ one = systemPriceCityService.selectOne(new EntityWrapper().eq("areaCode", systemPriceCity.getAreaCode()) .isNull("cityCode").isNull("provinceCode").ne("flag", 3)); if(null != one){ return new ErrorTip(500, "不能重复添加城市"); } }else{ return new ErrorTip(500, "不能重复添加城市"); } }else{ return new ErrorTip(500, "不能重复添加城市"); } systemPriceCityService.insert(systemPriceCity); //解析专车的价格配置 JSONArray jsonArray = JSON.parseArray(zcPrice); for (int i = 0; i < jsonArray.size(); i++) { TSystemPrice tSystemPrice = jsonArray.getObject(i, TSystemPrice.class); tSystemPrice.setSystemPriceCityId(systemPriceCity.getId()); tSystemPrice.setType(1); tSystemPrice.setState(1); tSystemPriceService.insert(tSystemPrice); } //解析出出租车价格设置 TSystemPrice tSystemPrice = new TSystemPrice(); tSystemPrice.setContent(czcPrice); tSystemPrice.setSystemPriceCityId(systemPriceCity.getId()); tSystemPrice.setType(2); tSystemPrice.setState(1); tSystemPriceService.insert(tSystemPrice); return SUCCESS_TIP; } @RequestMapping(value = "/taxiSet") @ResponseBody public Object taxiSet(String content) { Integer id = ShiroKit.getUser().getId(); TSystemPrice tSystemPrice1 = tSystemPriceService.selectOne(new EntityWrapper().eq("type", 2).eq("companyId", id)); if (tSystemPrice1 == null) { TSystemPrice tSystemPrice = new TSystemPrice(); tSystemPrice.setContent(content); tSystemPrice.setType(2); tSystemPriceService.insert(tSystemPrice); } else { tSystemPrice1.setContent(content); tSystemPriceService.updateById(tSystemPrice1); } System.err.println("========"+content); return ResultUtil.success(); } /** * 修改快车价格设置 */ @RequestMapping(value = "/update") @ResponseBody public Object update(SystemPriceCity systemPriceCity, String zcPrice, String czcPrice) { if(ToolUtil.isNotEmpty(systemPriceCity.getProvinceCode())){ TRegion tRegion = tRegionService.selectById(systemPriceCity.getProvinceCode()); systemPriceCity.setProvinceCode(tRegion.getCode()); } if(ToolUtil.isNotEmpty(systemPriceCity.getCityCode())){ TRegion tRegion = tRegionService.selectById(systemPriceCity.getCityCode()); systemPriceCity.setCityCode(tRegion.getCode()); } if(ToolUtil.isNotEmpty(systemPriceCity.getAreaCode())){ TRegion tRegion = tRegionService.selectById(systemPriceCity.getAreaCode()); systemPriceCity.setAreaCode(tRegion.getCode()); } SystemPriceCity one = null; if(null != systemPriceCity.getProvinceCode()){ one = systemPriceCityService.selectOne(new EntityWrapper().eq("areaCode", systemPriceCity.getAreaCode()) .eq("cityCode", systemPriceCity.getCityCode()).eq("provinceCode", systemPriceCity.getProvinceCode()).ne("flag", 3)); } if(null == one){ one = systemPriceCityService.selectOne(new EntityWrapper().eq("areaCode", systemPriceCity.getAreaCode()) .eq("cityCode", systemPriceCity.getCityCode()).isNull("provinceCode").ne("flag", 3)); if(null == one){ one = systemPriceCityService.selectOne(new EntityWrapper().eq("areaCode", systemPriceCity.getAreaCode()) .isNull("cityCode").isNull("provinceCode").ne("flag", 3)); if(null != one && !systemPriceCity.getId().equals(one.getId())){ return new ErrorTip(500, "不能重复添加城市"); } }else if(!systemPriceCity.getId().equals(one.getId())){ return new ErrorTip(500, "不能重复添加城市"); } }else if(!systemPriceCity.getId().equals(one.getId())){ return new ErrorTip(500, "不能重复添加城市"); } systemPriceCityService.updateById(systemPriceCity); //删除历史数据 tSystemPriceService.delete(new EntityWrapper().eq("systemPriceCityId", systemPriceCity.getId())); //解析专车的价格配置 JSONArray jsonArray = JSON.parseArray(zcPrice); for (int i = 0; i < jsonArray.size(); i++) { TSystemPrice tSystemPrice = jsonArray.getObject(i, TSystemPrice.class); tSystemPrice.setSystemPriceCityId(systemPriceCity.getId()); tSystemPrice.setType(1); tSystemPrice.setState(1); tSystemPriceService.insert(tSystemPrice); } //解析出出租车价格设置 TSystemPrice tSystemPrice = new TSystemPrice(); tSystemPrice.setContent(czcPrice); tSystemPrice.setSystemPriceCityId(systemPriceCity.getId()); tSystemPrice.setType(2); tSystemPrice.setState(1); tSystemPriceService.insert(tSystemPrice); return SUCCESS_TIP; } /** * 修改状态 */ @RequestMapping(value = "/opt") @ResponseBody public Object opt(Integer id) { SystemPriceCity systemPriceCity = systemPriceCityService.selectById(id); systemPriceCity.setFlag(3); systemPriceCityService.updateById(systemPriceCity); return SUCCESS_TIP; } /** * 小件物流价格设置 */ @RequestMapping(value = "/smallSubmit") @ResponseBody public Object smallSubmit(String json1,String json2) { //跨城小件物流 TSystemPrice one = tSystemPriceService.selectOne(new EntityWrapper().eq("type", 5).eq("companyId", ShiroKit.getUser().getObjectId())); if (SinataUtil.isNotEmpty(one)){ one.setContent(json1); tSystemPriceService.updateById(one); }else { one = new TSystemPrice(); one.setState(1); one.setType(5); one.setContent(json1); tSystemPriceService.insert(one); } //同城小件物流 TSystemPrice two = tSystemPriceService.selectOne(new EntityWrapper().eq("type", 4).eq("companyId", ShiroKit.getUser().getObjectId())); if (SinataUtil.isNotEmpty(two)){ two.setContent(json2); tSystemPriceService.updateById(two); }else { two = new TSystemPrice(); two.setState(1); two.setType(4); two.setContent(json2); tSystemPriceService.insert(two); } return SUCCESS_TIP; } }