Commit 81989ae1 authored by dengjh's avatar dengjh

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	vehicle/src/main/java/com/xinxincaravan/caravan/vehicle/vo/BranchCompanyVo.java
parents 0e97ff35 0b10d2f8
spring: spring:
profiles:
active: dev
application: application:
name: ace-auth name: ace-auth
cloud: cloud:
nacos: nacos:
config: config:
# server-addr: 127.0.0.1:8848
server-addr: 10.5.52.2:8848
file-extension: yaml file-extension: yaml
profiles: ---
active: dev spring:
\ No newline at end of file profiles: dev
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
---
spring:
profiles: pro
cloud:
nacos:
config:
server-addr: 10.5.52.2:8848
\ No newline at end of file
spring: spring:
profiles:
active: dev
application: application:
name: ace-gateway name: ace-gateway
cloud: cloud:
nacos: nacos:
config: config:
# server-addr: 127.0.0.1:8848
server-addr: 10.5.52.2:8848
file-extension: yaml file-extension: yaml
profiles:
active: dev
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
\ No newline at end of file
---
spring:
profiles: dev
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
---
spring:
profiles: pro
cloud:
nacos:
config:
server-addr: 10.5.52.2:8848
\ No newline at end of file
spring: spring:
profiles:
active: dev
application: application:
name: ace-admin name: ace-admin
cloud: cloud:
nacos: nacos:
config: config:
# server-addr: 127.0.0.1:8848
server-addr: 10.5.52.2:8848
file-extension: yaml file-extension: yaml
profiles:
active: dev
\ No newline at end of file ---
spring:
profiles: dev
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
---
spring:
profiles: pro
cloud:
nacos:
config:
server-addr: 10.5.52.2:8848
\ No newline at end of file
...@@ -6,6 +6,7 @@ import com.github.pagehelper.PageHelper; ...@@ -6,6 +6,7 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.xinxincaravan.caravan.vehicle.common.RestResponse;
import com.xinxincaravan.caravan.vehicle.constant.RedisKey; import com.xinxincaravan.caravan.vehicle.constant.RedisKey;
import com.xinxincaravan.caravan.vehicle.entity.BranchCompany; import com.xinxincaravan.caravan.vehicle.entity.BranchCompany;
import com.xinxincaravan.caravan.vehicle.mapper.BranchCompanyMapper; import com.xinxincaravan.caravan.vehicle.mapper.BranchCompanyMapper;
...@@ -13,16 +14,35 @@ import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyVo; ...@@ -13,16 +14,35 @@ import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyVo;
import com.xinxincaravan.caravan.vehicle.vo.PageDataVo; import com.xinxincaravan.caravan.vehicle.vo.PageDataVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.io.File;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
@Service @Service
@Slf4j @Slf4j
public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany> { public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany> {
public static final DateTimeFormatter DEFAULT_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd");
public static final DateTimeFormatter YEARMONTH_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM");
@Autowired
private RedisTemplate customRedisTemplate;
@Value("${branchCompanyPic.baseUploadPath}")
private String baseUploadPath ;
/** /**
* 按主键获取公司 * 按主键获取公司
* @param id * @param id
...@@ -107,7 +127,28 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany ...@@ -107,7 +127,28 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
return mapper.updateByPrimaryKeySelective(branchCompany); return mapper.updateByPrimaryKeySelective(branchCompany);
} }
/**
* 写入上传文件,返回相对路径
* @param file
* @return
*/
public RestResponse<String> uploadCompanyPic(MultipartFile file) throws Exception{
//创建本日存放目录
DateTime now = DateTime.now();
String dirPathToday = File.separator + now.toString(DEFAULT_DATE_TIME_FORMATTER);
String redisNoKey = RedisKey.UPLOAD_FILE_NO_PREFIX + now.toString(DEFAULT_DATE_TIME_FORMATTER);
Long no = customRedisTemplate.opsForValue().increment(redisNoKey);
if(no.equals(1l)){
customRedisTemplate.expire(redisNoKey,1, TimeUnit.DAYS);
}
String fileName = file.getOriginalFilename();
String realFileRelPath = dirPathToday + File.separator + no + fileName.substring(fileName.lastIndexOf("."));
//文件存放路径
String filePath = baseUploadPath + realFileRelPath;
//将文件写入指定位置
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(filePath));
return RestResponse.suc(realFileRelPath);
}
......
package com.xinxincaravan.caravan.vehicle.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xinxincaravan.caravan.vehicle.constant.BranchCompanyStockApplyState;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
import com.xinxincaravan.caravan.vehicle.entity.BranchCompany;
import com.xinxincaravan.caravan.vehicle.entity.BranchCompanyStockApplyInfo;
import com.xinxincaravan.caravan.vehicle.entity.BranchCompanyStockInfo;
import com.xinxincaravan.caravan.vehicle.mapper.BranchCompanyMapper;
import com.xinxincaravan.caravan.vehicle.mapper.BranchCompanyStockApplyInfoMapper;
import com.xinxincaravan.caravan.vehicle.mapper.BranchCompanyStockInfoMapper;
import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockApplyVo;
import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockInfoVo;
import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockSearchVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date;
@Service
public class BranchCompanyStockService {
@Autowired
BranchCompanyStockInfoMapper branchCompanyStockInfoMapper;
@Autowired
BranchCompanyMapper branchCompanyMapper;
@Autowired
BranchCompanyStockApplyInfoMapper branchCompanyStockApplyInfoMapper;
public PageInfo<BranchCompanyStockInfoVo> selectAll(Integer page, Integer limit) {
PageHelper.startPage(page, limit);
return new PageInfo<>(branchCompanyStockInfoMapper.selectVoAll());
}
public PageInfo<BranchCompanyStockInfoVo> search(BranchCompanyStockSearchVo searchVo) {
PageHelper.startPage(searchVo.getPage(), searchVo.getLimit());
return new PageInfo<>(branchCompanyStockInfoMapper.search(searchVo));
}
@Transactional
public void insert(BranchCompanyStockInfoVo stockInfoVo) {
BranchCompanyStockInfo stockInfo = new BranchCompanyStockInfo();
BeanUtils.copyProperties(stockInfoVo, stockInfo);
if (stockInfo.getBalance() == null) {
stockInfo.setBalance(stockInfo.getTotal());
}
stockInfo.setState(0);
branchCompanyStockInfoMapper.insert(stockInfo);
}
/**
* 申请购买
* @param applyVo
*/
public void apply(BranchCompanyStockApplyVo applyVo) {
BranchCompanyStockInfo stockInfo = branchCompanyStockInfoMapper.selectByPrimaryKey(applyVo.getCompanyId());
if (stockInfo == null) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_UNEXIST.getDesc(), ResCode.BRANCH_COMPANY_STOCK_UNEXIST.getCode());
}
if (stockInfo.getBalance() <= 0) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_NO_BALANCE.getDesc(), ResCode.BRANCH_COMPANY_STOCK_NO_BALANCE.getCode());
}
if (stockInfo.getBalance() < applyVo.getCount()) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getDesc(), ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getCode());
}
BranchCompanyStockApplyInfo applyInfo = new BranchCompanyStockApplyInfo();
BeanUtils.copyProperties(applyVo, applyInfo);
applyInfo.setState(BranchCompanyStockApplyState.Apply.getCode());
applyInfo.setCreateTime(new Date());
branchCompanyStockApplyInfoMapper.insertSelective(applyInfo);
}
public PageInfo<BranchCompanyStockApplyInfo> selectApplyAll(Integer page, Integer limit) {
PageHelper.startPage(page, limit);
return new PageInfo<>(branchCompanyStockApplyInfoMapper.selectAll());
}
/**
* 取消申请,修改申请状态
* @param applyId
*/
public void cancelApply(Integer applyId) {
BranchCompanyStockApplyInfo applyInfo = branchCompanyStockApplyInfoMapper.selectByPrimaryKey(applyId);
if (applyInfo == null) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_UNEXIST.getDesc(),
ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_UNEXIST.getCode());
}
applyInfo.setState(BranchCompanyStockApplyState.Cancel.getCode());
applyInfo.setUpdateTime(new Date());
branchCompanyStockApplyInfoMapper.updateByPrimaryKey(applyInfo);
}
/**
* 确认申请购买股权,修改库存
* @param applyId
*/
@Transactional
public void buy(Integer applyId) {
BranchCompanyStockApplyInfo applyInfo = branchCompanyStockApplyInfoMapper.selectByPrimaryKey(applyId);
if (applyInfo == null) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_UNEXIST.getDesc(),
ResCode.BRANCH_COMPANY_STOCK_APPLY_INFO_UNEXIST.getCode());
}
BranchCompanyStockInfo stockInfo = branchCompanyStockInfoMapper.selectByPrimaryKey(applyInfo.getCompanyId());
if (stockInfo == null) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_UNEXIST.getDesc(), ResCode.BRANCH_COMPANY_STOCK_UNEXIST.getCode());
}
if (stockInfo.getBalance() < applyInfo.getCount()) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getDesc(), ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getCode());
}
int result = branchCompanyStockInfoMapper.updateBalance(applyInfo.getCompanyId(), stockInfo.getBalance() - applyInfo.getCount(), stockInfo.getBalance());
if (result == 0) {
throw new BaseException(ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getDesc(), ResCode.BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH.getCode());
}
applyInfo.setState(BranchCompanyStockApplyState.Buy.getCode());
applyInfo.setUpdateTime(new Date());
branchCompanyStockApplyInfoMapper.updateByPrimaryKey(applyInfo);
}
}
...@@ -3,6 +3,7 @@ package com.xinxincaravan.caravan.vehicle.biz; ...@@ -3,6 +3,7 @@ package com.xinxincaravan.caravan.vehicle.biz;
import com.github.wxiaoqi.security.common.exception.BaseException; import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode; import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
import com.xinxincaravan.caravan.vehicle.constant.VehicleActiveType; import com.xinxincaravan.caravan.vehicle.constant.VehicleActiveType;
import com.xinxincaravan.caravan.vehicle.constant.VehicleDepartureState;
import com.xinxincaravan.caravan.vehicle.constant.VehicleStatus; import com.xinxincaravan.caravan.vehicle.constant.VehicleStatus;
import com.xinxincaravan.caravan.vehicle.entity.Vehicle; import com.xinxincaravan.caravan.vehicle.entity.Vehicle;
import com.xinxincaravan.caravan.vehicle.entity.VehicleActiveLog; import com.xinxincaravan.caravan.vehicle.entity.VehicleActiveLog;
...@@ -48,12 +49,26 @@ public class VehicleActiveService { ...@@ -48,12 +49,26 @@ public class VehicleActiveService {
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
} }
// 写入车辆公里数
vehicle.setMileageLastUpdate(departureVo.getMileage());
vehicleMapper.updateByPrimaryKeySelective(vehicle);
// 修改车辆状态,确认是空闲状态
int result = vehicleMapper.updateStatusByIdAndStatus(departureVo.getVehicleId(), VehicleStatus.DEPARTURE.getCode(),
VehicleStatus.NORMAL.getCode());
if (result == 0) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
// 出车记录 // 出车记录
VehicleDepartureLog departureLog = new VehicleDepartureLog(); VehicleDepartureLog departureLog = new VehicleDepartureLog();
BeanUtils.copyProperties(departureVo, departureLog); BeanUtils.copyProperties(departureVo, departureLog);
departureLog.setDepartureTime(new Date()); departureLog.setDepartureTime(new Date());
departureLog.setCreateTime(new Date()); departureLog.setCreateTime(new Date());
departureLog.setMileageStart(departureVo.getMileage()); departureLog.setMileageStart(departureVo.getMileage());
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
vehicleDepartureLogMapper.insert(departureLog); vehicleDepartureLogMapper.insert(departureLog);
// 车辆活动日志 // 车辆活动日志
...@@ -64,19 +79,6 @@ public class VehicleActiveService { ...@@ -64,19 +79,6 @@ public class VehicleActiveService {
activeLog.setCreateTime(new Date()); activeLog.setCreateTime(new Date());
vehicleActiveLogMapper.insert(activeLog); vehicleActiveLogMapper.insert(activeLog);
// 写入车辆公里数
vehicle.setMileageLastUpdate(departureVo.getMileage());
vehicleMapper.updateByPrimaryKeySelective(vehicle);
// 修改车辆状态,确认是空闲状态
int result = vehicleMapper.updateStatusByIdAndStatus(departureVo.getVehicleId(), VehicleStatus.DEPARTURE.getCode(),
VehicleStatus.NORMAL.getCode());
if (result == 0) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_DISABLE.getCode());
}
} }
@Transactional @Transactional
...@@ -91,6 +93,18 @@ public class VehicleActiveService { ...@@ -91,6 +93,18 @@ public class VehicleActiveService {
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode()); ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
} }
// 写入车辆公里数
vehicle.setMileageLastUpdate(arrivalVo.getMileage());
vehicleMapper.updateByPrimaryKeySelective(vehicle);
// 修改状态,确认是出车状态
int result = vehicleMapper.updateStatusByIdAndStatus(arrivalVo.getVehicleId(), VehicleStatus.NORMAL.getCode(),
VehicleStatus.DEPARTURE.getCode());
if (result == 0) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
}
// 出车记录 // 出车记录
VehicleDepartureLog departureLog = vehicleDepartureLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId()); VehicleDepartureLog departureLog = vehicleDepartureLogMapper.selectLastByVehicleId(arrivalVo.getVehicleId());
if (departureLog == null) { if (departureLog == null) {
...@@ -102,6 +116,7 @@ public class VehicleActiveService { ...@@ -102,6 +116,7 @@ public class VehicleActiveService {
departureLog.setRecycleManTel(arrivalVo.getRecycleManTel()); departureLog.setRecycleManTel(arrivalVo.getRecycleManTel());
departureLog.setUpdateTime(new Date()); departureLog.setUpdateTime(new Date());
departureLog.setArrivalTime(new Date()); departureLog.setArrivalTime(new Date());
departureLog.setState(VehicleDepartureState.END.getCode());
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog); vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
// 车辆活动日志 // 车辆活动日志
...@@ -114,16 +129,5 @@ public class VehicleActiveService { ...@@ -114,16 +129,5 @@ public class VehicleActiveService {
activeLog.setUpdateTime(new Date()); activeLog.setUpdateTime(new Date());
vehicleActiveLogMapper.updateByPrimaryKeySelective(activeLog); vehicleActiveLogMapper.updateByPrimaryKeySelective(activeLog);
// 写入车辆公里数
vehicle.setMileageLastUpdate(arrivalVo.getMileage());
vehicleMapper.updateByPrimaryKeySelective(vehicle);
// 修改状态,确认是出车状态
int result = vehicleMapper.updateStatusByIdAndStatus(arrivalVo.getVehicleId(), VehicleStatus.NORMAL.getCode(),
VehicleStatus.DEPARTURE.getCode());
if (result == 0) {
throw new BaseException(ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getDesc(),
ResCode.VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE.getCode());
}
} }
} }
package com.xinxincaravan.caravan.vehicle.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.xinxincaravan.caravan.vehicle.entity.VehicleDepartureLog;
import com.xinxincaravan.caravan.vehicle.mapper.VehicleDepartureLogMapper;
import com.xinxincaravan.caravan.vehicle.vo.VehicleDepartureLogVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class VehicleDepartureService {
@Autowired
VehicleDepartureLogMapper vehicleDepartureLogMapper;
public PageInfo<VehicleDepartureLog> page(Integer page, Integer limit) {
PageHelper.startPage(page, limit);
return new PageInfo<>(vehicleDepartureLogMapper.selectAll());
}
public PageInfo<VehicleDepartureLogVo> findByVehicle(String vehicleId, Integer page, Integer limit) {
PageHelper.startPage(page, limit);
return new PageInfo<>(vehicleDepartureLogMapper.selectByVehicleId(vehicleId));
}
}
package com.xinxincaravan.caravan.vehicle.constant;
/**
* 分公司股权购买申请状态
*/
public enum BranchCompanyStockApplyState {
Cancel(-1, "取消申请,放弃购买"),
Apply(0, "申请中"),
Buy(1, "确认购买");
private Integer code;
private String msg;
BranchCompanyStockApplyState(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
...@@ -23,6 +23,15 @@ public enum ResCode { ...@@ -23,6 +23,15 @@ public enum ResCode {
VEHICLE_DEPARTURE_VEHICLE_DISABLE(104002,"车辆不可用"), VEHICLE_DEPARTURE_VEHICLE_DISABLE(104002,"车辆不可用"),
VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE(104003,"车辆未出车"), VEHICLE_DEPARTURE_VEHICLE_UNDEPARTURE(104003,"车辆未出车"),
BRANCH_COMPANY_UNEXIST(105001, "分公司信息不存在"),
BRANCH_COMPANY_STOCK_EXISTED(105002, "分公司股权信息已存在"),
BRANCH_COMPANY_STOCK_UNEXIST(105003, "分公司股权信息不存在"),
BRANCH_COMPANY_STOCK_NO_BALANCE(105004, "分公司股权已售完"),
BRANCH_COMPANY_STOCK_BALANCE_NOT_ENOUGH(105005, "分公司股权剩余份额不足"),
BRANCH_COMPANY_STOCK_APPLY_INFO_UNEXIST(105006, "分公司股权购买申请信息不存在")
; ;
/** /**
* 返回码 * 返回码
......
package com.xinxincaravan.caravan.vehicle.constant;
/**
* 出车状态
*/
public enum VehicleDepartureState {
DEPARTURE(0, "出车"),
END(1, "结束");
private int code;
private String msg;
VehicleDepartureState(int code, String msg) {
this.code = code;
this.msg = msg;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
...@@ -85,4 +85,6 @@ public class BranchCompany { ...@@ -85,4 +85,6 @@ public class BranchCompany {
* 公司地址-经度 * 公司地址-经度
*/ */
private BigDecimal longitude; private BigDecimal longitude;
private String companyPic;
} }
\ No newline at end of file
package com.xinxincaravan.caravan.vehicle.entity;
import java.util.Date;
import javax.persistence.*;
@Table(name = "branch_company_stock_apply_info")
public class BranchCompanyStockApplyInfo {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "JDBC")
private Integer id;
@Column(name = "company_id")
private Integer companyId;
/**
* 姓名
*/
private String name;
/**
* 电话
*/
private String tel;
/**
* 购买数量
*/
private Integer count;
/**
* 状态(-1,放弃购买0:申请,1:确认购买)
*/
private Integer state;
@Column(name = "create_time")
private Date createTime;
@Column(name = "update_time")
private Date updateTime;
/**
* @return id
*/
public Integer getId() {
return id;
}
/**
* @param id
*/
public void setId(Integer id) {
this.id = id;
}
public Integer getCompanyId() {
return companyId;
}
public void setCompanyId(Integer companyId) {
this.companyId = companyId;
}
/**
* 获取姓名
*
* @return name - 姓名
*/
public String getName() {
return name;
}
/**
* 设置姓名
*
* @param name 姓名
*/
public void setName(String name) {
this.name = name;
}
/**
* 获取电话
*
* @return tel - 电话
*/
public String getTel() {
return tel;
}
/**
* 设置电话
*
* @param tel 电话
*/
public void setTel(String tel) {
this.tel = tel;
}
/**
* 获取购买数量
*
* @return count - 购买数量
*/
public Integer getCount() {
return count;
}
/**
* 设置购买数量
*
* @param count 购买数量
*/
public void setCount(Integer count) {
this.count = count;
}
/**
* 获取状态(-1,放弃购买0:申请,1:确认购买)
*
* @return state - 状态(-1,放弃购买0:申请,1:确认购买)
*/
public Integer getState() {
return state;
}
/**
* 设置状态(-1,放弃购买0:申请,1:确认购买)
*
* @param state 状态(-1,放弃购买0:申请,1:确认购买)
*/
public void setState(Integer state) {
this.state = state;
}
/**
* @return create_time
*/
public Date getCreateTime() {
return createTime;
}
/**
* @param createTime
*/
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
/**
* @return update_time
*/
public Date getUpdateTime() {
return updateTime;
}
/**
* @param updateTime
*/
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
\ No newline at end of file
package com.xinxincaravan.caravan.vehicle.entity;
import lombok.Data;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import java.math.BigDecimal;
@Data
@Table(name = "branch_company_stock_info")
public class BranchCompanyStockInfo {
/**
* 分公司ID
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY, generator = "JDBC")
private Integer id;
/**
* 剩余股份
*/
private Integer balance;
/**
* 股份总数
*/
private Integer total;
/**
* 股份单价
*/
private BigDecimal price;
private String companyName;
private Integer addrProvince;
private Integer addrCity;
private Integer state;
}
\ No newline at end of file
...@@ -69,5 +69,7 @@ public class VehicleDepartureLog { ...@@ -69,5 +69,7 @@ public class VehicleDepartureLog {
Date createTime; Date createTime;
Date updateTime; Date updateTime;
Integer state;
} }
package com.xinxincaravan.caravan.vehicle.mapper;
import com.xinxincaravan.caravan.vehicle.entity.BranchCompanyStockApplyInfo;
import tk.mybatis.mapper.common.Mapper;
public interface BranchCompanyStockApplyInfoMapper extends Mapper<BranchCompanyStockApplyInfo> {
}
\ No newline at end of file
package com.xinxincaravan.caravan.vehicle.mapper;
import com.xinxincaravan.caravan.vehicle.entity.BranchCompanyStockInfo;
import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockInfoVo;
import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockSearchVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface BranchCompanyStockInfoMapper extends Mapper<BranchCompanyStockInfo> {
List<BranchCompanyStockInfoVo> selectVoAll();
List<BranchCompanyStockInfoVo> search(BranchCompanyStockSearchVo searchVo);
int updateBalance(@Param("companyId") Integer companyId, @Param("balance") Integer balance, @Param("lastBalance") Integer lastBalance);
}
\ No newline at end of file
package com.xinxincaravan.caravan.vehicle.mapper; package com.xinxincaravan.caravan.vehicle.mapper;
import com.xinxincaravan.caravan.vehicle.entity.VehicleDepartureLog; import com.xinxincaravan.caravan.vehicle.entity.VehicleDepartureLog;
import com.xinxincaravan.caravan.vehicle.vo.VehicleDepartureLogVo;
import tk.mybatis.mapper.common.BaseMapper; import tk.mybatis.mapper.common.BaseMapper;
import java.util.List;
public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog> { public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog> {
VehicleDepartureLog selectLastByVehicleId(String vehicleId); VehicleDepartureLog selectLastByVehicleId(String vehicleId);
List<VehicleDepartureLogVo> selectByVehicleId(String vehicleId);
} }
package com.xinxincaravan.caravan.vehicle.rest; package com.xinxincaravan.caravan.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.xinxincaravan.caravan.vehicle.biz.BranchCompanyBiz; import com.xinxincaravan.caravan.vehicle.biz.BranchCompanyBiz;
import com.xinxincaravan.caravan.vehicle.common.BaseController; import com.xinxincaravan.caravan.vehicle.common.BaseController;
import com.xinxincaravan.caravan.vehicle.common.RestResponse; import com.xinxincaravan.caravan.vehicle.common.RestResponse;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
import com.xinxincaravan.caravan.vehicle.entity.BranchCompany; import com.xinxincaravan.caravan.vehicle.entity.BranchCompany;
import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyVo; import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyVo;
import com.xinxincaravan.caravan.vehicle.vo.PageDataVo; import com.xinxincaravan.caravan.vehicle.vo.PageDataVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
...@@ -18,7 +21,9 @@ import java.util.List; ...@@ -18,7 +21,9 @@ import java.util.List;
@IgnoreClientToken @IgnoreClientToken
public class BranchCompanyController extends BaseController<BranchCompanyBiz> { public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
private static Integer MAX_DRIVING_LICENSE_SIZE = 10*1024*1024;//10M
@IgnoreUserToken
@RequestMapping(value ="/page",method = RequestMethod.GET) @RequestMapping(value ="/page",method = RequestMethod.GET)
public RestResponse<PageDataVo<BranchCompany>> page(@RequestParam Integer page, @RequestParam Integer limit, public RestResponse<PageDataVo<BranchCompany>> page(@RequestParam Integer page, @RequestParam Integer limit,
@RequestParam(required = false) Integer addrProvince, @RequestParam(required = false) Integer addrCity, @RequestParam(required = false) Integer addrProvince, @RequestParam(required = false) Integer addrCity,
...@@ -42,6 +47,20 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> { ...@@ -42,6 +47,20 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
return RestResponse.data(baseBiz.add(branchCompanyVo)); return RestResponse.data(baseBiz.add(branchCompanyVo));
} }
@RequestMapping(value ="/upload/companyPic",method = RequestMethod.POST)
public RestResponse uploadCompanyPic(@RequestParam("file") MultipartFile file)
throws Exception{
String contentType = file.getContentType(); //图片文件类型
// String fileName = file.getOriginalFilename(); //图片名字
if(!contentType.equals("image/jpeg") && !contentType.equals("image/gif")){
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
}
if(file.getSize() > MAX_DRIVING_LICENSE_SIZE){
return RestResponse.code(ResCode.INVALID_REST_REQ_PARAM.getCode());
}
return baseBiz.uploadCompanyPic(file);
}
@RequestMapping(value ="",method = RequestMethod.PUT) @RequestMapping(value ="",method = RequestMethod.PUT)
public RestResponse update(@RequestBody BranchCompany branchCompany) { public RestResponse update(@RequestBody BranchCompany branchCompany) {
baseBiz.update(branchCompany); baseBiz.update(branchCompany);
......
package com.xinxincaravan.caravan.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.xinxincaravan.caravan.vehicle.biz.BranchCompanyStockService;
import com.xinxincaravan.caravan.vehicle.common.RestResponse;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockApplyVo;
import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockInfoVo;
import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockSearchVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@IgnoreClientToken
@IgnoreUserToken
@RequestMapping("branchCompany/stock")
public class BranchCompanyStockController {
@Autowired
BranchCompanyStockService branchCompanyStockService;
/**
* 分页获取
* @param page
* @param limit
* @return
*/
@GetMapping("page")
public RestResponse page(Integer page, Integer limit) {
if (page == null || limit == null) {
page = 1;
limit = 10;
}
return RestResponse.suc(branchCompanyStockService.selectAll(page, limit));
}
/**
* 搜索
* @param searchVo
* @return
*/
@GetMapping("search")
public RestResponse search(BranchCompanyStockSearchVo searchVo) {
if (searchVo.getPage() == null || searchVo.getLimit() == null) {
searchVo.setPage(1);
searchVo.setLimit(10);
}
return RestResponse.suc(branchCompanyStockService.search(searchVo));
}
/**
* 添加
* @return
*/
@PutMapping
public RestResponse add(BranchCompanyStockInfoVo stockInfoVo) {
if (stockInfoVo.getCompanyName() == null || stockInfoVo.getTotal() == null || stockInfoVo.getPrice() == null
|| stockInfoVo.getAddrProvince() == null || stockInfoVo.getAddrCity() == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
branchCompanyStockService.insert(stockInfoVo);
return RestResponse.suc();
}
/**
* 申请购买
* @param applyVo
* @return
*/
@PostMapping("apply")
public RestResponse apply(BranchCompanyStockApplyVo applyVo) {
if (applyVo.getCompanyId() == null || applyVo.getName() == null || applyVo.getTel() == null || applyVo.getCount() == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
branchCompanyStockService.apply(applyVo);
return RestResponse.suc();
}
@GetMapping("apply/page")
public RestResponse applyPage(Integer page, Integer limit) {
if (page == null || limit == null) {
page = 1;
limit = 10;
}
return RestResponse.suc(branchCompanyStockService.selectApplyAll(page, limit));
}
/**
* 取消申请,放弃购买
* @return
*/
@PostMapping("apply/cancel")
public RestResponse cancel(Integer applyId) {
if (applyId == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
branchCompanyStockService.cancelApply(applyId);
return RestResponse.suc();
}
/**
* 确认购买,减库存
*/
@PostMapping("apply/buy")
public RestResponse buy(Integer applyId) {
if (applyId == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
branchCompanyStockService.buy(applyId);
return RestResponse.suc();
}
}
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException; import com.alibaba.fastjson.JSONException;
import com.alibaba.nacos.client.logger.json.JSONArray; import com.alibaba.nacos.client.logger.json.JSONArray;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken; import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.xinxincaravan.caravan.vehicle.biz.SysRegionBiz; import com.xinxincaravan.caravan.vehicle.biz.SysRegionBiz;
import com.xinxincaravan.caravan.vehicle.common.BaseController; import com.xinxincaravan.caravan.vehicle.common.BaseController;
import com.xinxincaravan.caravan.vehicle.common.CustomIllegalParamException; import com.xinxincaravan.caravan.vehicle.common.CustomIllegalParamException;
...@@ -27,6 +28,7 @@ import java.util.List; ...@@ -27,6 +28,7 @@ import java.util.List;
public class SysRegionController extends BaseController<SysRegionBiz> { public class SysRegionController extends BaseController<SysRegionBiz> {
@IgnoreUserToken
@RequestMapping(value ="/sons/{id}",method = RequestMethod.GET) @RequestMapping(value ="/sons/{id}",method = RequestMethod.GET)
public RestResponse<List<SysRegion>> getSonRegion(@PathVariable Long id){ public RestResponse<List<SysRegion>> getSonRegion(@PathVariable Long id){
return RestResponse.data(baseBiz.getSonRegion(id)); return RestResponse.data(baseBiz.getSonRegion(id));
......
...@@ -46,5 +46,4 @@ public class VehicleActiveController { ...@@ -46,5 +46,4 @@ public class VehicleActiveController {
return RestResponse.suc(); return RestResponse.suc();
} }
} }
package com.xinxincaravan.caravan.vehicle.rest;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.xinxincaravan.caravan.vehicle.biz.VehicleDepartureService;
import com.xinxincaravan.caravan.vehicle.common.RestResponse;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@IgnoreClientToken
@RestController
@RequestMapping("departure")
public class VehicleDepartureController {
@Autowired
VehicleDepartureService vehicleDepartureService;
@GetMapping("page")
public RestResponse page(Integer page, Integer limit) {
if (page == null || limit == null) {
page = 1;
limit = 10;
}
return RestResponse.suc(vehicleDepartureService.page(page, limit));
}
@GetMapping("findByVehicle")
public RestResponse findByVehicle(String vehicleId, Integer page, Integer limit) {
if (vehicleId == null) {
return RestResponse.codeAndMessage(ResCode.INVALID_REST_REQ_PARAM.getCode(),
ResCode.INVALID_REST_REQ_PARAM.getDesc());
}
if (page == null || limit == null) {
page = 1;
limit = 10;
}
return RestResponse.suc(vehicleDepartureService.findByVehicle(vehicleId, page, limit));
}
}
package com.xinxincaravan.caravan.vehicle.vo;
import lombok.Data;
/**
* 申请购买股权
*/
@Data
public class BranchCompanyStockApplyVo {
Integer companyId;
String name;
String tel;
Integer count;
}
package com.xinxincaravan.caravan.vehicle.vo;
import lombok.Data;
import java.math.BigDecimal;
/**
* 分公司股份信息
*/
@Data
public class BranchCompanyStockInfoVo {
Integer id;
String companyName;
Integer balance;
Integer total;
BigDecimal price;
Integer addrProvince;
Integer addrCity;
Integer state;
}
package com.xinxincaravan.caravan.vehicle.vo;
import lombok.Data;
/**
* 分公司股权信息搜索信息
*/
@Data
public class BranchCompanyStockSearchVo {
// 省份代码
Integer addrProvince;
// 城市代码
Integer addrCity;
// 价格起点
Integer priceStart;
// 价格终点
Integer priceEnd;
Integer page;
Integer limit;
}
...@@ -66,6 +66,7 @@ public class BranchCompanyVo { ...@@ -66,6 +66,7 @@ public class BranchCompanyVo {
*/ */
private Integer status; private Integer status;
private String companyPic;
/** /**
*公司地址-纬度 *公司地址-纬度
*/ */
......
package com.xinxincaravan.caravan.vehicle.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@Data
public class VehicleDepartureLogVo {
Integer id;
String vehicleId;
String use;
String user;
String userTel;
String checkMan;
String checkManTel;
String recycleMan;
String recycleManTel;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
String departureTime;
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
String arrivalTime;
Integer mileageStart;
Integer mileageEnd;
Integer state;
String numberPlate;
}
#spring:
# application:
# name: vehicle
# cloud:
# nacos:
# config:
# server-addr: 127.0.0.1:8848
# file-extension: yaml
# profiles:
# active: dev
spring: spring:
profiles:
active: dev
application: application:
name: vehicle name: vehicle
cloud: cloud:
nacos: nacos:
config: config:
server-addr: 10.5.52.2:8848
file-extension: yaml file-extension: yaml
profiles: ---
active: dev spring:
\ No newline at end of file profiles: dev
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
---
spring:
profiles: pro
cloud:
nacos:
config:
server-addr: 10.5.52.2:8848
\ No newline at end of file
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
</plugin> </plugin>
<jdbcConnection driverClass="com.mysql.jdbc.Driver" <jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://10.5.52.2:3306/vehicle?useUnicode=true&amp;characterEncoding=UTF8" connectionURL="jdbc:mysql://localhost:3306/vehicle?useUnicode=true&amp;characterEncoding=UTF8"
userId="root" userId="root"
password="xx2019fc"> password="xx2019fc">
</jdbcConnection> </jdbcConnection>
...@@ -35,5 +35,7 @@ ...@@ -35,5 +35,7 @@
</table> </table>
<table tableName="branch_company" domainObjectName="BranchCompany"> <table tableName="branch_company" domainObjectName="BranchCompany">
</table> </table>
<table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>
<table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>
</context> </context>
</generatorConfiguration> </generatorConfiguration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xinxincaravan.caravan.vehicle.mapper.BranchCompanyStockApplyInfoMapper" >
<resultMap id="BaseResultMap" type="com.xinxincaravan.caravan.vehicle.entity.BranchCompanyStockApplyInfo" >
<!--
WARNING - @mbg.generated
-->
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="tel" property="tel" jdbcType="VARCHAR" />
<result column="count" property="count" jdbcType="INTEGER" />
<result column="state" property="state" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.xinxincaravan.caravan.vehicle.mapper.BranchCompanyStockInfoMapper">
<update id="updateBalance">
update branch_company_stock_info
set balance = #{balance}
where company_id = #{companyId} and balance = #{lastBalance}
</update>
<select id="selectVoAll" resultType="com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockInfoVo">
select *
from branch_company_stock_info
</select>
<select id="search" resultType="com.xinxincaravan.caravan.vehicle.vo.BranchCompanyStockInfoVo">
select *
from branch_company_stock_info
<trim prefix="where" suffixOverrides="and">
<if test="addrProvince != null">
addr_province = #{addrProvince} and
</if>
<if test="addrCity != null">
addr_city = #{addrCity} and
</if>
<if test="priceStart">
price >= #{priceStart} and
</if>
<if test="priceEnd">
price &lt;= #{priceEnd} and
</if>
</trim>
</select>
</mapper>
\ No newline at end of file
...@@ -9,5 +9,12 @@ ...@@ -9,5 +9,12 @@
order by create_time desc order by create_time desc
limit 1 limit 1
</select> </select>
<select id="selectByVehicleId">
select vehicle_departure_log.*,vehicle.number_plate
from vehicle_departure_log
left join vehicle on vehicle_departure_log.vehicle_id = vehicle.id
where vehicle_id = #{vehicleId}
order by create_time desc
</select>
</mapper> </mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment