司机车辆绑定和解绑 代码实现

main
topsun 2 years ago
parent b505d01cc0
commit 0740b9f299

@ -22,6 +22,16 @@ CommonStatusEnum {
*1300-1399
*/
PRICE_RULE_EMPTY(1300,"规则不存在"),
/**
*
*/
DRIVER_CAR_BIND_NOT_EXISTS(1500,"司机和车辆绑定关系不存在"),
DRIVER_CAR_BIND_EXISTS(1502,"司机和车辆绑定关系已存在, 请勿重复绑定"),
DRIVER_CAR_UNBIND_EXISTS(1503,"司机和车辆绑定关系已绑定"),
/**
*
*/

@ -0,0 +1,16 @@
package com.internal.contant;
public class DriverCarConstant {
/**
*
*/
public static final int DRIVER_CAR_BIND = 1;
/**
*
*/
public static final int DRIVER_CAR_UNBIND = 2;
}

@ -0,0 +1,37 @@
package com.internal.dto;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author author
* @since 2023-04-28
*/
@Data
public class DriverCarBindingRelationship implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private Long driverId;
private Long carId;
/**
* 1,
* 2
*/
private Integer bindState;
private LocalDateTime bindingTime;
private LocalDateTime unBindingTime;
}

@ -0,0 +1,11 @@
package com.internal.util;
import java.time.LocalDateTime;
public class CommonUtils {
public static LocalDateTime getLocalDateTimeNow(){
LocalDateTime localDateTime = LocalDateTime.now();
return localDateTime;
}
}

@ -0,0 +1,41 @@
package com.taxi.servicedriveruser.controller;
import com.internal.contant.DriverCarConstant;
import com.internal.dto.DriverCarBindingRelationship;
import com.internal.dto.ResponseResult;
import com.internal.util.CommonUtils;
import com.taxi.servicedriveruser.service.DriverCarBindingRelationshipService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
*
* </p>
*
* @author author
* @since 2023-04-28
*/
@RestController
@RequestMapping("/driver-car-binding-relationship")
public class DriverCarBindingRelationshipController {
@Autowired
private DriverCarBindingRelationshipService driverCarBindingRelationshipService;
@PostMapping("/bind")
public ResponseResult bind(@RequestBody DriverCarBindingRelationship driverCarBindingRelationship){
return driverCarBindingRelationshipService.bind(driverCarBindingRelationship);
}
@PostMapping("/unbind")
public ResponseResult unbind(@RequestBody DriverCarBindingRelationship driverCarBindingRelationship){
return driverCarBindingRelationshipService.unbind(driverCarBindingRelationship);
}
}

@ -17,7 +17,7 @@ public class MysqlGenerator {
builder.parent("com.taxi.servicedriveruser").pathInfo(Collections.singletonMap(OutputFile.mapperXml,
"/Users/topsun/Documents/workSpce/gitlab-projectTest/online-taxi-public/service-driver-user/src/main/java/com/taxi/servicedriveruser/mapper"));
}).strategyConfig(builder -> {
builder.addInclude("car");
builder.addInclude("driver_car_binding_relationship ");
}).templateEngine(new FreemarkerTemplateEngine()).execute();
}

@ -0,0 +1,19 @@
package com.taxi.servicedriveruser.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.internal.dto.DriverCarBindingRelationship;
import org.springframework.stereotype.Repository;
/**
* <p>
* Mapper
* </p>
*
* @author author
* @since 2023-04-28
*/
@Repository
public interface DriverCarBindingRelationshipMapper extends BaseMapper<DriverCarBindingRelationship> {
}

@ -6,6 +6,8 @@ import com.taxi.servicedriveruser.mapper.CarMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@Service
public class CarService {
@ -14,6 +16,9 @@ public class CarService {
public ResponseResult addCar(Car car) {
LocalDateTime localDateTime = LocalDateTime.now();
car.setGmtCreate(localDateTime);
car.setGmtModified(localDateTime);
carMapper.insert(car);
return ResponseResult.success();
}

@ -0,0 +1,95 @@
package com.taxi.servicedriveruser.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.internal.contant.CommonStatusEnum;
import com.internal.contant.DriverCarConstant;
import com.internal.dto.DriverCarBindingRelationship;
import com.internal.dto.ResponseResult;
import com.internal.util.CommonUtils;
import com.taxi.servicedriveruser.mapper.DriverCarBindingRelationshipMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import javax.print.attribute.standard.NumberUp;
import java.util.List;
/**
* <p>
*
* </p>
*
* @author author
* @since 2023-04-28
*/
@Service
public class DriverCarBindingRelationshipService{
@Autowired
private DriverCarBindingRelationshipMapper driverCarBindingRelationshipMapper;
public ResponseResult bind(@RequestBody DriverCarBindingRelationship driverCarBindingRelationship){
//查询条件
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("driver_id",driverCarBindingRelationship.getDriverId());
queryWrapper.eq("car_id",driverCarBindingRelationship.getCarId());
//校验数据
int count = driverCarBindingRelationshipMapper.selectCount(queryWrapper);
if(count == 1 ){
driverCarBindingRelationship = driverCarBindingRelationshipMapper.selectOne(queryWrapper);
if(driverCarBindingRelationship != null && DriverCarConstant.DRIVER_CAR_BIND == driverCarBindingRelationship.getBindState()) {//已经绑定
return ResponseResult.fail(CommonStatusEnum.DRIVER_CAR_BIND_EXISTS);
}else if(driverCarBindingRelationship != null && DriverCarConstant.DRIVER_CAR_UNBIND == driverCarBindingRelationship.getBindState()){//更新数据库绑定状态
driverCarBindingRelationship.setBindState(DriverCarConstant.DRIVER_CAR_BIND);
driverCarBindingRelationshipMapper.updateById(driverCarBindingRelationship);
}
}else if(count > 1){//排除数据库存在脏数据
return ResponseResult.fail(CommonStatusEnum.FAIL);
}else{
//司机已经绑定
queryWrapper = new QueryWrapper();
queryWrapper.eq("driver_id",driverCarBindingRelationship.getDriverId());
queryWrapper.eq("bind_state",DriverCarConstant.DRIVER_CAR_BIND );
count = driverCarBindingRelationshipMapper.selectCount(queryWrapper);
if(count > 0){
return ResponseResult.fail(CommonStatusEnum.DRIVER_CAR_BIND_EXISTS);
}
queryWrapper = new QueryWrapper();
queryWrapper.eq("car_id",driverCarBindingRelationship.getCarId());
queryWrapper.eq("bind_state",DriverCarConstant.DRIVER_CAR_BIND );
count = driverCarBindingRelationshipMapper.selectCount(queryWrapper);
if(count > 0){
return ResponseResult.fail(CommonStatusEnum.DRIVER_CAR_BIND_EXISTS);
}
//新增数据,并设置绑定状态
driverCarBindingRelationship.setBindingTime(CommonUtils.getLocalDateTimeNow() );
driverCarBindingRelationship.setBindState(DriverCarConstant.DRIVER_CAR_BIND);
driverCarBindingRelationshipMapper.insert(driverCarBindingRelationship);
}
return ResponseResult.success();
}
public ResponseResult unbind(@RequestBody DriverCarBindingRelationship driverCarBindingRelationship){
QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("driver_id",driverCarBindingRelationship.getDriverId());
queryWrapper.eq("car_id",driverCarBindingRelationship.getCarId());
int count = driverCarBindingRelationshipMapper.selectCount(queryWrapper);
if(count == 1){
driverCarBindingRelationship = driverCarBindingRelationshipMapper.selectOne(queryWrapper);
if(DriverCarConstant.DRIVER_CAR_UNBIND == driverCarBindingRelationship.getBindState()){
return ResponseResult.success(CommonStatusEnum.DRIVER_CAR_UNBIND_EXISTS);
}
driverCarBindingRelationship.setUnBindingTime(CommonUtils.getLocalDateTimeNow() );
driverCarBindingRelationship.setBindState(DriverCarConstant.DRIVER_CAR_UNBIND);
driverCarBindingRelationshipMapper.updateById(driverCarBindingRelationship);
}else if(count > 1){//排除数据库存在脏数据
return ResponseResult.fail(CommonStatusEnum.FAIL);
}else{
return ResponseResult.fail(CommonStatusEnum.DRIVER_CAR_BIND_NOT_EXISTS);
}
return ResponseResult.success();
}
}
Loading…
Cancel
Save