package com.xzx.gc.user.controller; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.xzx.gc.common.Result; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.dto.SimplePage; import com.xzx.gc.common.dto.log.OperationAppLog; import com.xzx.gc.common.request.BaseController; import com.xzx.gc.common.utils.MqUtil; import com.xzx.gc.entity.OtherUserInfo; import com.xzx.gc.entity.UserVehicleRel; import com.xzx.gc.entity.VehicleInfo; import com.xzx.gc.model.JsonResult; import com.xzx.gc.model.admin.UserModel; import com.xzx.gc.model.admin.VehicleModel; import com.xzx.gc.user.dto.VehicleUpdateDto; import com.xzx.gc.user.mapper.OtherUserMapper; import com.xzx.gc.user.mapper.SysStorageMapper; import com.xzx.gc.user.mapper.UserVehicleRelMapper; import com.xzx.gc.user.mapper.VehicleInfoMapper; import com.xzx.gc.user.service.*; import com.xzx.gc.util.ConvertUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import tk.mybatis.mapper.entity.Example; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; @Api(tags = "车辆管理") @RestController @Validated public class VehicleController extends BaseController { @Autowired private VehicleInfoMapper vehicleInfoMapper; @Autowired private UserVehicleRelMapper userVehicleRelMapper; @Autowired private UserVehicleRelService userVehicleRelService; @Autowired private VehicleInfoService vehicleInfoService; @Autowired private OtherUserMapper otherUserMapper; @Autowired private UserService userService; @Autowired private OtherUserService otherUserService; @Autowired private CityPartnerService cityPartnerService; @ApiOperation( value = "分页查询车辆信息") @PostMapping("/vehicle/select") public Result> find(HttpServletRequest request, @RequestBody SimplePage simplePage) { String partnerId = otherUserMapper.selectByPrimaryKey(getUserId(request)).getPartnerId(); PageHelper.startPage(simplePage.getPageNo(),simplePage.getPageSize()); List select = vehicleInfoMapper.findByPartnerId(partnerId); if(CollUtil.isNotEmpty(select)){ for (VehicleInfo info : select) { //仓库信息 // Integer storageId = info.getStorageId(); // SysStorage sysStorage = sysStorageMapper.selectByPrimaryKey(storageId); // if(sysStorage!=null){ // info.setStorageName(sysStorage.getStorageName()); // } //回收员信息 UserVehicleRel userVehicleRel=new UserVehicleRel(); userVehicleRel.setDelFlag(Convert.toShort(Constants.DEL_NOT_FLAG)); userVehicleRel.setVehicleId(info.getId()); List select1 = userVehicleRelMapper.select(userVehicleRel); if(CollUtil.isNotEmpty(select1)){ String userId = select1.get(0).getUserId(); OtherUserInfo otherUserInfo = otherUserMapper.selectByPrimaryKey(userId); if(otherUserInfo!=null){ info.setUserName(otherUserInfo.getName()); info.setUserId(otherUserInfo.getUserId()); } } } } PageInfo pageInfo=new PageInfo<>(select); return Result.success(pageInfo); } @ApiOperation( value = "修改车辆绑定信息") @PostMapping("/vehicle/update") public Result update(HttpServletRequest request, @RequestBody VehicleUpdateDto vehicleUpdateDto) { VehicleInfo vehicleInfo=new VehicleInfo(); BeanUtil.copyProperties(vehicleUpdateDto,vehicleInfo); vehicleInfoMapper.updateByPrimaryKeySelective(vehicleInfo); //修改人与车辆的绑定 UserVehicleRel userVehicleRel=new UserVehicleRel(); userVehicleRel.setUserId(vehicleUpdateDto.getUserId()); Example example=new Example(UserVehicleRel.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("vehicleId",vehicleUpdateDto.getId()); userVehicleRelMapper.updateByExampleSelective(userVehicleRel,example); String mobilePhone = userService.findOtherByUserId(getUserId(request),0); OperationAppLog build = OperationAppLog.builder().appPrograme(getFrontClient(request)).opreateName(mobilePhone) .methodName(Constants.USER_MODUL_NAME).operateAction("修改车辆绑定信息-"+vehicleUpdateDto.getId()).build(); mqUtil.sendApp(build); return Result.success(null); } @PostMapping( "/admin/front/vehicle/vehicleList.do") @ResponseBody @ApiOperation(value="运营管理-车辆管理", notes="test: 仅0有正确返回") public JsonResult> vehicleList(@RequestBody VehicleModel model) { Map map = vehicleInfoService.queryByVehicleInfoList(model.getVehicleNo(),model.getPage(),model.getLimit(),model.getPartnerId()); return JsonResult.success(map); } @PostMapping( "/admin/front/vehicle/checkUserNameByPhone.json") @ResponseBody @ApiOperation(value="运营管理-车辆管理添加(校验回收员)", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "mobilePhone", value = "车辆编号", required = true, dataType = "String") }) public JsonResult> checkUserNameByPhone(@RequestBody UserModel model) { Map map = new HashMap<>(); String userType = "2"; OtherUserInfo userModel = otherUserService.findByMobileAndUserType(model.getMobilePhone(), userType); if(null!=userModel){ map.put("code",0); map.put("msg","查询成功"); map.put("userId",userModel.getUserId()); map.put("mobilePhone",userModel.getMobilePhone()); map.put("name",userModel.getName()); map.put("nickName", Base64.decodeStr(userModel.getNickName())); }else{ map.put("code",-1); map.put("msg","没有该手机号的回收员"); } return JsonResult.success(map); } @PostMapping( "/admin/front/vehicle/queryAllOtherUserApiByName.json") @ApiOperation(value="运营管理-车辆管理添加(回收员列表)", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "userId", value = "用户Id", required = true, dataType = "String") }) public JsonResult>> queryAllOtherUserByName(@RequestBody UserModel model) { List partnerIds = cityPartnerService.queryPartnerByCurrent(); List> otherUser = userVehicleRelMapper.queryCuserListByName(model.getUserId(),partnerIds); return JsonResult.success(otherUser); } @PostMapping( "/admin/front/vehicle/vehicleInfoadd.json") @ApiOperation(value="运营管理-车辆管理添加", notes="test: 仅0有正确返回") public JsonResult vehicleInfoadd(@RequestBody VehicleModel model, HttpServletRequest request) { Long aLong = vehicleInfoService.addVehicleInfo(model); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.USER_MODUL_NAME).operateAction("添加车辆-"+aLong).build(); mqUtil.sendApp(build); return new JsonResult().success(); } @PostMapping( "/admin/front/vehicle/editVehicleIn.json") @ApiOperation(value="运营管理-车辆管理编辑", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "车辆管理Id", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "relId", value = "车辆管理和用户关联ID", required = true, dataType = "Long"), @ApiImplicitParam(paramType="query", name = "userId", value = "用户Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "weight", value = "重量", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "vehicleNo", value = "车辆编号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "storageId", value = "仓库Id", required = true, dataType = "String") }) public JsonResult editVehicleIn(@RequestBody VehicleModel model, HttpServletRequest request) { String userId = model.getUserId(); String relId = model.getRelId(); VehicleInfo oldInfo = vehicleInfoService.queryById(model.getId()); oldInfo.setWeight(model.getWeight()); oldInfo.setVehicleNo(model.getVehicleNo()); if(model.getStorageId()!=null){ oldInfo.setStorageId(Integer.parseInt(model.getStorageId())); }else{ return JsonResult.failMessage("保存失败,仓库Id为空!"); } boolean success = vehicleInfoService.update(oldInfo); if (success) { UserVehicleRel rel = userVehicleRelService.queryById(Long.parseLong(relId)); rel.setDelFlag((short)0); rel.setUserId(userId); userVehicleRelService.update(rel); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.USER_MODUL_NAME).operateAction("车辆管理编辑-"+model.getId()).build(); mqUtil.sendApp(build); return new JsonResult().success(); } else { return JsonResult.failMessage("保存失败"); } } @PostMapping("/admin/front/vehicle/delete.json") @ApiOperation(value="运营管理-车辆管理删除", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "ids", value = "车辆Id,多个id用逗号分割", required = true, dataType = "String") }) public JsonResult delete(@RequestBody VehicleModel model,HttpServletRequest request) { String ids = model.getIds(); if (ids.endsWith(",")) { ids = StringUtils.substringBeforeLast(ids, ","); } List idList = ConvertUtil.str2longs(ids); vehicleInfoService.batchDelXzxUserVehicleInfo(idList); OperationAppLog build = OperationAppLog.builder().appPrograme(CommonEnum.后台.getValue()).opreateName(getAdminName(request)) .methodName(Constants.ORDER_MODUL_NAME).operateAction("车辆管理删除-"+model.getIds()).build(); mqUtil.sendApp(build); return new JsonResult().success(); } }