Commit 0b10d2f8 authored by youjj's avatar youjj

分公司股权信息

parent 188cf384
......@@ -6,6 +6,7 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
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.entity.BranchCompany;
import com.xinxincaravan.caravan.vehicle.mapper.BranchCompanyMapper;
......@@ -13,16 +14,35 @@ import com.xinxincaravan.caravan.vehicle.vo.BranchCompanyVo;
import com.xinxincaravan.caravan.vehicle.vo.PageDataVo;
import lombok.extern.slf4j.Slf4j;
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.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.web.multipart.MultipartFile;
import tk.mybatis.mapper.entity.Example;
import java.io.File;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Service
@Slf4j
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
......@@ -107,7 +127,28 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, 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;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.xinxincaravan.caravan.vehicle.constant.ResCode.ResCode;
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.entity.Vehicle;
import com.xinxincaravan.caravan.vehicle.entity.VehicleActiveLog;
......@@ -67,6 +68,7 @@ public class VehicleActiveService {
departureLog.setDepartureTime(new Date());
departureLog.setCreateTime(new Date());
departureLog.setMileageStart(departureVo.getMileage());
departureLog.setState(VehicleDepartureState.DEPARTURE.getCode());
vehicleDepartureLogMapper.insert(departureLog);
// 车辆活动日志
......@@ -114,6 +116,7 @@ public class VehicleActiveService {
departureLog.setRecycleManTel(arrivalVo.getRecycleManTel());
departureLog.setUpdateTime(new Date());
departureLog.setArrivalTime(new Date());
departureLog.setState(VehicleDepartureState.END.getCode());
vehicleDepartureLogMapper.updateByPrimaryKeySelective(departureLog);
// 车辆活动日志
......
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 {
VEHICLE_DEPARTURE_VEHICLE_DISABLE(104002,"车辆不可用"),
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 {
* 公司地址-经度
*/
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 {
Date createTime;
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;
import com.xinxincaravan.caravan.vehicle.entity.VehicleDepartureLog;
import com.xinxincaravan.caravan.vehicle.vo.VehicleDepartureLogVo;
import tk.mybatis.mapper.common.BaseMapper;
import java.util.List;
public interface VehicleDepartureLogMapper extends BaseMapper<VehicleDepartureLog> {
VehicleDepartureLog selectLastByVehicleId(String vehicleId);
List<VehicleDepartureLogVo> selectByVehicleId(String vehicleId);
}
......@@ -5,11 +5,13 @@ import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.xinxincaravan.caravan.vehicle.biz.BranchCompanyBiz;
import com.xinxincaravan.caravan.vehicle.common.BaseController;
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.vo.BranchCompanyVo;
import com.xinxincaravan.caravan.vehicle.vo.PageDataVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
......@@ -19,6 +21,7 @@ import java.util.List;
@IgnoreClientToken
public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
private static Integer MAX_DRIVING_LICENSE_SIZE = 10*1024*1024;//10M
@IgnoreUserToken
@RequestMapping(value ="/page",method = RequestMethod.GET)
......@@ -44,6 +47,20 @@ public class BranchCompanyController extends BaseController<BranchCompanyBiz> {
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)
public RestResponse update(@RequestBody BranchCompany 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();
}
}
......@@ -46,5 +46,4 @@ public class VehicleActiveController {
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;
}
......@@ -65,4 +65,5 @@ public class BranchCompanyVo {
*/
private Integer status;
private String companyPic;
}
\ No newline at end of file
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;
}
......@@ -15,7 +15,7 @@
</plugin>
<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"
password="xx2019fc">
</jdbcConnection>
......@@ -35,5 +35,7 @@
</table>
<table tableName="branch_company" domainObjectName="BranchCompany">
</table>
<table tableName="branch_company_stock_info" domainObjectName="BranchCompanyStockInfo"></table>
<table tableName="branch_company_stock_apply_info" domainObjectName="BranchCompanyStockApplyInfo"></table>
</context>
</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 @@
order by create_time desc
limit 1
</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>
\ 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