| 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<PageInfo<VehicleInfo>> find(HttpServletRequest request, @RequestBody SimplePage simplePage) {  | 
|         String partnerId = otherUserMapper.selectByPrimaryKey(getUserId(request)).getPartnerId();  | 
|         PageHelper.startPage(simplePage.getPageNo(),simplePage.getPageSize());  | 
|         List<VehicleInfo> 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<UserVehicleRel> 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<VehicleInfo> 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<Map<String, Object>> vehicleList(@RequestBody VehicleModel model)  | 
|     {  | 
|         Map<String, Object> 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<Map<String, Object>> checkUserNameByPhone(@RequestBody UserModel model)  | 
|     {  | 
|         Map<String,Object> 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<List<Map<String, Object>>>  queryAllOtherUserByName(@RequestBody UserModel model) {  | 
|         List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();  | 
|         List<Map<String, Object>> 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<String> 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<Long> 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();  | 
|     }  | 
| }  |