package com.stylefeng.guns.modular.system.controller.general;
|
|
import cn.hutool.crypto.SecureUtil;
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.stylefeng.guns.core.base.controller.BaseController;
|
import com.stylefeng.guns.core.base.tips.SuccessTip;
|
import com.stylefeng.guns.core.common.constant.state.ManagerStatus;
|
import com.stylefeng.guns.core.shiro.ShiroKit;
|
import com.stylefeng.guns.core.util.SinataUtil;
|
import com.stylefeng.guns.modular.system.controller.resp.TBranchOfficeResp;
|
import com.stylefeng.guns.modular.system.controller.resp.TDriverResp;
|
import com.stylefeng.guns.modular.system.enums.StatusEnum;
|
import com.stylefeng.guns.modular.system.model.*;
|
import com.stylefeng.guns.modular.system.service.*;
|
import com.stylefeng.guns.modular.system.util.RedisUtil;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.StringUtils;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.ui.Model;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import com.stylefeng.guns.core.log.LogObjectHolder;
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
import java.util.stream.Collectors;
|
|
/**
|
* 控制器
|
*
|
* @author fengshuonan
|
* @Date 2023-02-21 11:17:18
|
*/
|
@Controller
|
@RequestMapping("/tBranchOffice")
|
public class TBranchOfficeController extends BaseController {
|
|
private String PREFIX = "/system/tBranchOffice/";
|
|
@Autowired
|
private ITBranchOfficeService tBranchOfficeService;
|
@Autowired
|
private ITSystemConfigService tSystemConfigService;
|
|
@Autowired
|
private ITRegionService tRegionService;
|
@Autowired
|
private ITDriverService tDriverService;
|
@Autowired
|
private ITDriverWorkService tDriverWorkService;
|
@Autowired
|
private IUserService userService;
|
@Autowired
|
private RedisUtil redisUtil;
|
|
/**
|
* 跳转到首页
|
*/
|
@RequestMapping("")
|
public String index(Model model) {
|
model.addAttribute("userType", Objects.requireNonNull(ShiroKit.getUser()).getRoleType());
|
return PREFIX + "tBranchOffice.html";
|
}
|
|
/**
|
* 跳转到添加
|
*/
|
@RequestMapping("/tBranchOffice_add")
|
public String tBranchOfficeAdd() {
|
return PREFIX + "tBranchOffice_add.html";
|
}
|
|
/**
|
* 跳转到修改
|
*/
|
@RequestMapping("/tBranchOffice_update/{tBranchOfficeId}")
|
public String tBranchOfficeUpdate(@PathVariable Integer tBranchOfficeId, Model model) {
|
|
TBranchOffice tBranchOffice = tBranchOfficeService.selectById(tBranchOfficeId);
|
TBranchOfficeResp tBranchOfficeResp = new TBranchOfficeResp();
|
BeanUtils.copyProperties(tBranchOffice,tBranchOfficeResp);
|
|
// 查询区域
|
TRegion city = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tBranchOffice.getCityCode())
|
.last("LIMIT 1"));
|
TRegion district = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("code", tBranchOffice.getDistrictCode())
|
.last("LIMIT 1"));
|
|
if(StringUtils.hasLength(tBranchOffice.getDistrictName())){
|
tBranchOfficeResp.setArea(tBranchOffice.getProvinceName()+"/"+tBranchOffice.getCityName()+"/"+tBranchOffice.getDistrictName());
|
}else {
|
tBranchOfficeResp.setArea(tBranchOffice.getProvinceName()+"/"+tBranchOffice.getCityName());
|
}
|
|
if(Objects.nonNull(city)){
|
if(Objects.nonNull(district)){
|
tBranchOfficeResp.setAreaId(city.getParentId()+"/"+city.getId()+"/"+district.getId());
|
}else {
|
tBranchOfficeResp.setAreaId(city.getParentId()+"/"+city.getId());
|
}
|
}
|
|
model.addAttribute("item",tBranchOfficeResp);
|
LogObjectHolder.me().set(tBranchOffice);
|
return PREFIX + "tBranchOffice_edit.html";
|
}
|
|
/**
|
* 跳转到详情
|
*/
|
@RequestMapping("/tBranchOfficeDetail")
|
public String tBranchOfficeDetail(Integer tBranchOfficeId, Model model) {
|
tBranchOfficeService.tBranchOfficeDetail(tBranchOfficeId,model);
|
TSystemConfig tSystemConfig = tSystemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 3));
|
JSONObject jsonObject = JSONObject.parseObject(tSystemConfig.getContent());
|
model.addAttribute("num2",jsonObject.getInteger("num2"));
|
model.addAttribute("num3",jsonObject.getInteger("num3"));
|
return PREFIX + "tBranchOfficeDetail.html";
|
}
|
|
/**
|
* 跳转区域页面新增
|
*/
|
@RequestMapping("/areaPageAdd")
|
public String areaPageAdd(String area,String areaId,Model model) {
|
String[] split1 = areaId.split("/");
|
List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
|
model.addAttribute("provinceList",tRegions);
|
List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList());
|
// 查询市
|
List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", split1[0]));
|
model.addAttribute("cityList",tRegions1);
|
|
// 查询区
|
List<Integer> cityIds = tRegions1.stream().map(TRegion::getId).collect(Collectors.toList());
|
List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", cityIds));
|
model.addAttribute("districtList",tRegions2);
|
|
if(StringUtils.hasLength(area) && StringUtils.hasLength(areaId)){
|
String[] split = area.split("/");
|
model.addAttribute("provinceName",split[0]);
|
model.addAttribute("cityName",split[1]);
|
if(split.length>2){
|
model.addAttribute("districtName",split[2]);
|
}else {
|
model.addAttribute("districtName","");
|
}
|
|
model.addAttribute("provinceId",split1[0]);
|
model.addAttribute("cityId",split1[1]);
|
if(split1.length>2) {
|
model.addAttribute("districtId", split1[2]);
|
}else {
|
model.addAttribute("districtId", "");
|
}
|
}else {
|
model.addAttribute("provinceName","");
|
model.addAttribute("cityName","split[1]");
|
model.addAttribute("districtName","");
|
|
model.addAttribute("provinceId","");
|
model.addAttribute("cityId","split1[1]");
|
model.addAttribute("districtId", "");
|
}
|
return PREFIX + "tBranchOfficeAreaAdd.html";
|
}
|
|
/**
|
* 跳转区域页面编辑
|
*/
|
@RequestMapping("/areaPageUpdate")
|
public String areaPageUpdate(String area,String areaId,Model model) {
|
|
String[] split = area.split("/");
|
model.addAttribute("provinceName",split[0]);
|
model.addAttribute("cityName",split[1]);
|
if(split.length>2){
|
model.addAttribute("districtName",split[2]);
|
}else {
|
model.addAttribute("districtName","");
|
}
|
|
String[] split1 = areaId.split("/");
|
String provinceId = split1[0];
|
model.addAttribute("provinceId",split1[0]);
|
model.addAttribute("cityId",split1[1]);
|
if(split1.length>2) {
|
model.addAttribute("districtId", split1[2]);
|
}else {
|
model.addAttribute("districtId", "");
|
}
|
|
List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", 0));
|
model.addAttribute("provinceList",tRegions);
|
// List<Integer> provinceIds = tRegions.stream().map(TRegion::getId).collect(Collectors.toList());
|
// 查询市
|
List<TRegion> tRegions1 = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", provinceId));
|
model.addAttribute("cityList",tRegions1);
|
|
// 查询区
|
List<Integer> cityIds = tRegions1.stream().map(TRegion::getId).collect(Collectors.toList());
|
List<TRegion> tRegions2 = tRegionService.selectList(new EntityWrapper<TRegion>().in("parent_id", cityIds));
|
model.addAttribute("districtList",tRegions2);
|
|
return PREFIX + "tBranchOfficeAreaUpdate.html";
|
}
|
|
/**
|
* 获取列表
|
*/
|
@RequestMapping(value = "/list")
|
@ResponseBody
|
public Object list(String branchOfficeName,String principal,String principalPhone,Integer operatingBusiness ,Integer status) {
|
List<TBranchOfficeResp> tBranchOfficeRespList = tBranchOfficeService.getPageList(branchOfficeName,principal,principalPhone,operatingBusiness,status);
|
for (TBranchOfficeResp tBranchOfficeResp : tBranchOfficeRespList) {
|
tBranchOfficeResp.setUserType(Objects.requireNonNull(ShiroKit.getUser()).getRoleType());
|
}
|
// 分公司查询优惠券,订单,司机等信息
|
tBranchOfficeService.queryOtherInfo(tBranchOfficeRespList);
|
return tBranchOfficeRespList;
|
}
|
|
@ApiOperation(value = "市区查询",notes="市区查询")
|
@RequestMapping(value = "/areaCity")
|
@ResponseBody
|
public Object areaCity(Integer parentId,Model model) {
|
List<TRegion> tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", parentId));
|
/*if(CollectionUtils.isEmpty(tRegions) && StringUtils.hasLength(parentName)){
|
TRegion parent = tRegionService.selectOne(new EntityWrapper<TRegion>().eq("name", parentName));
|
tRegions = tRegionService.selectList(new EntityWrapper<TRegion>().eq("parent_id", parentId));
|
}*/
|
model.addAttribute("list",tRegions);
|
return tRegions;
|
}
|
|
/**
|
* 启用分公司
|
*/
|
@RequestMapping(value = "/start")
|
@ResponseBody
|
public Object start(Integer id) {
|
TBranchOffice tBranchOffice = tBranchOfficeService.selectById(id);
|
tBranchOffice.setStatus(StatusEnum.NORMAL.getCode());
|
tBranchOfficeService.updateById(tBranchOffice);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 冻结分公司
|
*/
|
@RequestMapping(value = "/stop")
|
@ResponseBody
|
public Object updateStatus(Integer id) {
|
TBranchOffice tBranchOffice = tBranchOfficeService.selectById(id);
|
tBranchOffice.setStatus(StatusEnum.FREEZE.getCode());
|
tBranchOfficeService.updateById(tBranchOffice);
|
List<TDriver> list = tDriverService.selectList(new EntityWrapper<TDriver>()
|
.eq("branchOfficeId", tBranchOffice.getId()));
|
for (TDriver tDriver : list) {
|
String value = redisUtil.getValue("DRIVER_" + tDriver.getPhone());
|
redisUtil.remove(value);
|
redisUtil.remove("DRIVER_" + tDriver.getPhone());
|
TDriverWork tDriverWork = tDriverWorkService.selectOne(new EntityWrapper<TDriverWork>()
|
.eq("driverId", tDriver.getId())
|
.eq("status", 1)
|
.orderBy("workTime", false)
|
.last("LIMIT 1"));
|
if(Objects.nonNull(tDriverWork)){
|
tDriverWork.setStatus(2);
|
tDriverWork.setOffWorkTime(new Date());
|
tDriverWorkService.updateById(tDriverWork);
|
}
|
}
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 获取列表
|
*/
|
@RequestMapping(value = "/list-back")
|
@ResponseBody
|
public Object listBack(String condition) {
|
return tBranchOfficeService.selectList(null);
|
}
|
|
/**
|
* 新增
|
*/
|
@RequestMapping(value = "/add")
|
@ResponseBody
|
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
|
public Object add(TBranchOffice tBranchOffice) {
|
int count = tBranchOfficeService.selectCount(new EntityWrapper<TBranchOffice>().eq("branchOfficeName", tBranchOffice.getBranchOfficeName()));
|
if(count>0){
|
return new SuccessTip(500,"该分公司名称已存在!");
|
}
|
int count1 = userService.selectCount(new EntityWrapper<User>().eq("account", tBranchOffice.getAccount()));
|
if (count1 > 0){
|
return new SuccessTip(500,"该账号已存在!");
|
}
|
|
Object o = tBranchOfficeService.addOrUpdate(tBranchOffice);
|
if(Objects.nonNull(o)){
|
return o;
|
}
|
tBranchOffice.setPrincipal(tBranchOffice.getPrincipal().replace(" ",""));
|
tBranchOffice.setStatus(StatusEnum.NORMAL.getCode());
|
|
tBranchOfficeService.insert(tBranchOffice);
|
|
//添加User对象
|
User user = new User();
|
user.setAccount(tBranchOffice.getAccount());
|
user.setSalt(ShiroKit.getRandomSalt(5));
|
user.setPassword(ShiroKit.md5(tBranchOffice.getPassword(), user.getSalt()));
|
user.setStatus(ManagerStatus.OK.getCode());
|
user.setRoleid("3");
|
user.setDeptid(25);
|
user.setCreatetime(new Date());
|
user.setRoleType(2);
|
user.setObjectId(tBranchOffice.getId());
|
user.setName(tBranchOffice.getPrincipal());
|
user.setSex(1);
|
userService.insert(user);
|
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 删除
|
*/
|
@RequestMapping(value = "/delete")
|
@ResponseBody
|
public Object delete(@RequestParam Integer tBranchOfficeId) {
|
TBranchOffice tBranchOffice = tBranchOfficeService.selectById(tBranchOfficeId);
|
tBranchOffice.setStatus(StatusEnum.DELETE.getCode());
|
tBranchOfficeService.updateById(tBranchOffice);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 修改
|
*/
|
@RequestMapping(value = "/update")
|
@ResponseBody
|
@Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRES_NEW)
|
public Object update(TBranchOffice tBranchOffice) {
|
TBranchOffice branchOffice = tBranchOfficeService.selectById(tBranchOffice.getId());
|
User user = userService.selectOne(new EntityWrapper<User>()
|
.eq("role_type", 2)
|
.eq("object_id", branchOffice.getId())
|
.last("LIMIT 1"));
|
//判断账号是否已存在
|
if (SinataUtil.isNotEmpty(tBranchOffice.getAccount()) && SinataUtil.isNotEmpty(tBranchOffice.getPassword())){
|
if(Objects.isNull(user)){
|
//添加User对象
|
user.setAccount(tBranchOffice.getAccount());
|
user.setSalt(ShiroKit.getRandomSalt(5));
|
user.setPassword(ShiroKit.md5(tBranchOffice.getPassword(), user.getSalt()));
|
user.setStatus(ManagerStatus.OK.getCode());
|
user.setRoleid("3");
|
user.setDeptid(25);
|
user.setCreatetime(new Date());
|
user.setRoleType(2);
|
user.setObjectId(tBranchOffice.getId());
|
user.setName(tBranchOffice.getPrincipal());
|
user.setSex(1);
|
userService.insert(user);
|
}else {
|
if (!tBranchOffice.getAccount().equals(user.getAccount())){
|
//判断账号是否已存在
|
int count = userService.selectCount(new EntityWrapper<User>().eq("account", tBranchOffice.getAccount()));
|
if (count > 0){
|
return new SuccessTip(500,"该账号已存在!");
|
}
|
}
|
user.setAccount(tBranchOffice.getAccount());
|
user.setPassword(ShiroKit.md5(user.getPassword(), user.getSalt()));
|
userService.updateById(user);
|
}
|
}
|
|
TBranchOffice office = tBranchOfficeService.selectOne(new EntityWrapper<TBranchOffice>().eq("branchOfficeName", tBranchOffice.getBranchOfficeName())
|
.last("LIMIT 1"));
|
if(Objects.nonNull(office) && !tBranchOffice.getId().equals(office.getId())){
|
return new SuccessTip(500,"该分公司名称已存在!");
|
}
|
// Object ocr = ocr("E:\\071bf986db0b00355c0ed190bbd3b16.png");
|
// System.err.println(ocr);
|
Object o = tBranchOfficeService.addOrUpdate(tBranchOffice);
|
if(Objects.nonNull(o)){
|
return o;
|
}
|
tBranchOffice.setPrincipal(tBranchOffice.getPrincipal().replace(" ",""));
|
tBranchOfficeService.updateById(tBranchOffice);
|
return SUCCESS_TIP;
|
}
|
|
/**
|
* 详情
|
*/
|
@RequestMapping(value = "/detail/{tBranchOfficeId}")
|
@ResponseBody
|
public Object detail(@PathVariable("tBranchOfficeId") Integer tBranchOfficeId) {
|
return tBranchOfficeService.selectById(tBranchOfficeId);
|
}
|
}
|