Commit 7e8c052d authored by 周健威's avatar 周健威

Merge branch 'master-vehicle-price' into dev-tiande

parents 7c17254c 5c7dc026
...@@ -33,7 +33,7 @@ public class BaseController<Biz extends BaseBiz,Entity> extends CommonBaseContro ...@@ -33,7 +33,7 @@ public class BaseController<Biz extends BaseBiz,Entity> extends CommonBaseContro
@ApiOperation("添加") @ApiOperation("添加")
@RequestMapping(value = "",method = RequestMethod.POST) @RequestMapping(value = "",method = RequestMethod.POST)
@ResponseBody @ResponseBody
public ObjectRestResponse<Entity> add(@RequestBody Entity entity) throws Exception { public ObjectRestResponse<Entity> add(@RequestBody Entity entity) {
baseBiz.insertSelective(entity); baseBiz.insertSelective(entity);
return new ObjectRestResponse<Entity>(); return new ObjectRestResponse<Entity>();
} }
...@@ -67,7 +67,7 @@ public class BaseController<Biz extends BaseBiz,Entity> extends CommonBaseContro ...@@ -67,7 +67,7 @@ public class BaseController<Biz extends BaseBiz,Entity> extends CommonBaseContro
@ApiOperation("查询所有") @ApiOperation("查询所有")
@RequestMapping(value = "/all",method = RequestMethod.GET) @RequestMapping(value = "/all",method = RequestMethod.GET)
@ResponseBody @ResponseBody
public List<Entity> all() throws Exception { public List<Entity> all() {
return baseBiz.selectListAll(); return baseBiz.selectListAll();
} }
......
package com.github.wxiaoqi.security.common.vo; package com.github.wxiaoqi.security.common.vo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import com.github.pagehelper.ISelect; import com.github.pagehelper.ISelect;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.common.util.Query; import com.github.wxiaoqi.security.common.util.Query;
import lombok.Data; import lombok.Data;
import java.lang.reflect.ParameterizedType;
import java.util.List; import java.util.List;
@Data @Data
...@@ -28,7 +31,6 @@ public class PageDataVO<T> { ...@@ -28,7 +31,6 @@ public class PageDataVO<T> {
public static <M> PageDataVO<M> pageInfo(PageInfo<M> pageInfo){ public static <M> PageDataVO<M> pageInfo(PageInfo<M> pageInfo){
PageDataVO<M> pageDataVo = new PageDataVO<>(); PageDataVO<M> pageDataVo = new PageDataVO<>();
pageDataVo.setTotalCount(pageInfo.getTotal());
pageDataVo.setData(pageInfo.getList()); pageDataVo.setData(pageInfo.getList());
pageDataVo.setPageNum(pageInfo.getPageNum()); pageDataVo.setPageNum(pageInfo.getPageNum());
pageDataVo.setTotalPage(pageInfo.getPages()); pageDataVo.setTotalPage(pageInfo.getPages());
...@@ -48,4 +50,12 @@ public class PageDataVO<T> { ...@@ -48,4 +50,12 @@ public class PageDataVO<T> {
public static <M> PageDataVO<M> pageInfo(Query query, ISelect select){ public static <M> PageDataVO<M> pageInfo(Query query, ISelect select){
return PageDataVO.pageInfo(PageHelper.startPage(query.getPage(), query.getLimit()).doSelectPageInfo(select)); return PageDataVO.pageInfo(PageHelper.startPage(query.getPage(), query.getLimit()).doSelectPageInfo(select));
} }
public static <M> PageDataVO<M> pageInfo(Query query, ISelect select, Class classz){
PageDataVO<M> pageDataVo = pageInfo(query, select);
if(CollUtil.isNotEmpty(pageDataVo.getData()) && pageDataVo.getData().get(0).getClass() != classz) {
pageDataVo.setData(Convert.toList(classz, pageDataVo.getData()));
}
return pageDataVo;
}
} }
...@@ -17,6 +17,7 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode; ...@@ -17,6 +17,7 @@ import com.github.wxiaoqi.security.common.util.process.ResultCode;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -26,6 +27,7 @@ import java.util.List; ...@@ -26,6 +27,7 @@ import java.util.List;
/** /**
* @author Administrator * @author Administrator
*/ */
@Slf4j
@RestController @RestController
@RequestMapping("/staff") @RequestMapping("/staff")
@RequiredArgsConstructor(onConstructor_ = {@Autowired}) @RequiredArgsConstructor(onConstructor_ = {@Autowired})
...@@ -56,8 +58,14 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS ...@@ -56,8 +58,14 @@ public class AppStaffUserController extends BaseController<AppStaffUserBiz, AppS
@Override @Override
@ApiOperation("添加") @ApiOperation("添加")
@PostMapping(value = "") @PostMapping(value = "")
public ObjectRestResponse<AppStaffUser> add(@RequestBody AppStaffUser appStaffUser) throws Exception { public ObjectRestResponse<AppStaffUser> add(@RequestBody AppStaffUser appStaffUser) {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(authConfig.getToken(request)); IJWTInfo infoFromToken = null;
try {
infoFromToken = userAuthUtil.getInfoFromToken(authConfig.getToken(request));
} catch (Exception e) {
log.error(e.getMessage(), e);
return ObjectRestResponse.createDefaultFail();
}
Integer positionId = null; Integer positionId = null;
try { try {
positionId = appUserDetailBiz.getUserInfoById( positionId = appUserDetailBiz.getUserInfoById(
......
...@@ -10,7 +10,8 @@ spring: ...@@ -10,7 +10,8 @@ spring:
datasource: datasource:
type: com.alibaba.druid.pool.DruidDataSource type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.jdbc.Driver driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://10.5.52.3:3306/xxfc_vehicle?useUnicode=true&characterEncoding=UTF-8 #url: jdbc:mysql://10.5.52.3:3306/xxfc_vehicle?useUnicode=true&characterEncoding=UTF-8
url: jdbc:mysql://10.5.52.3:3306/tiande_order?useUnicode=true&characterEncoding=UTF-8
username: root username: root
password: sslcloud123*() password: sslcloud123*()
jackson: jackson:
......
#\u4EE3\u7801\u751F\u6210\u5668\uFF0C\u914D\u7F6E\u4FE1\u606F #\u4EE3\u7801\u751F\u6210\u5668\uFF0C\u914D\u7F6E\u4FE1\u606F
#\u5305\u540D #\u5305\u540D
package=com.xxfc.platform.vehicle package=com.xxfc.platform.order
#\u4F5C\u8005 #\u4F5C\u8005
author=libin author=libin
#Email #Email
......
package com.xxfc.platform.order.contant.enumerate;
import java.util.HashMap;
import java.util.Map;
public enum CompanyWalletSourceEnum {
CLOSED_VEHICLE(1, "收车服务费"),
DAMAGE_SAFE(2, "不计免赔费"),
RENT_VEHICLE(3, "车辆租赁费"),
ORDER_COMSSION(4, "订单抽成"),
PLATFORM_COMSSION(4, "平台抽成"),
LOSS_SPECIFIED(4, "定损费"),
BREAK_RULES_REGULATION(4, "违章费"),
;
/**
* 编码
*/
private Integer code;
/**
* 类型描述
*/
private String desc;
public static Map<Integer, CompanyWalletSourceEnum> codeAndDesc = new HashMap<Integer, CompanyWalletSourceEnum>();
//Maps.newHashMap();
static{
for(CompanyWalletSourceEnum enumE : CompanyWalletSourceEnum.values()){
codeAndDesc.put(enumE.getCode(), enumE);
}
}
CompanyWalletSourceEnum(Integer code, String desc){
this.code=code;
this.desc=desc;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public static Boolean exists(Integer code){
return codeAndDesc.containsKey(code);
}
public static CompanyWalletSourceEnum get(Integer code) {
for(CompanyWalletSourceEnum enumE : CompanyWalletSourceEnum.values()) {
if (enumE.getCode().equals(code)) {
return enumE;
}
}
return null;
}
}
\ No newline at end of file
package com.xxfc.platform.order.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 门店钱包
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 14:14:54
*/
@Data
@Table(name = "company_wallet")
public class CompanyWallet implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
*/
@Column(name = "id")
@ApiModelProperty(value = "id")
private Integer id;
/**
* 用户ID
*/
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("门店ID")
private Integer companyId;
/**
* 余额(分)
*/
@Column(name = "balance")
@ApiModelProperty(value = "余额(元)")
private BigDecimal balance;
/**
* 支付密码
*/
@Column(name = "pay_password")
@ApiModelProperty(value = "支付密码")
private String payPassword;
/**
* 已提现金额
*/
@Column(name = "withdrawals")
@ApiModelProperty(value = "已提现金额")
private BigDecimal withdrawals;
/**
* 进账总额(分)
*/
@Column(name = "total_amount")
@ApiModelProperty(value = "进账总额(元)")
private BigDecimal totalAmount;
/**
* 今日收益
*/
@Column(name = "today_amount")
@ApiModelProperty(value = "今日收益")
private BigDecimal todayAmount;
/**
* 未入账金额
*/
@Column(name = "unbooked")
@ApiModelProperty(value = "未入账金额")
private BigDecimal unbooked;
/**
* 是否冻结:0-正常,1-冻结
*/
@Column(name = "is_frozen")
@ApiModelProperty(value = "是否冻结:0-正常,1-冻结")
private Integer isFrozen;
/**
* 最后进账时间
*/
@Column(name = "last_intime")
@ApiModelProperty(value = "最后进账时间")
private Long lastIntime;
/**
* 创建时间
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间", hidden = true )
private Long crtTime;
/**
* 更新时间
*/
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间", hidden = true )
private Long updTime;
/**
* 版本
*/
@Column(name = "version")
@ApiModelProperty(value = "版本")
private Integer version;
}
package com.xxfc.platform.order.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 门店钱包提现表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 14:14:54
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "company_wallet_cath")
public class CompanyWalletCath implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键ID")
private Long id;
/**
* 用户iD
*/
@Column(name = "company_id")
@ApiModelProperty(value = "门店ID")
private Integer companyId;
/**
* 提现类别,第三方提现类别(0-微信,1-支付宝,2-银行卡)
*/
@Column(name = "cath_type")
@ApiModelProperty(value = "提现类别,第三方提现类别(0-微信,1-支付宝,2-银行卡)")
private Integer cathType;
@Column(name = "account_number")
@ApiModelProperty(value = "用户账号")
private String accountNumber;
@Column(name = "cono")
@ApiModelProperty(value = "提现单号")
private String cono;
/**
* 提现金额
*/
@Column(name = "balance")
@ApiModelProperty(value = "当前钱包余额")
private BigDecimal balance;
/**
* 提现金额
*/
@Column(name = "amount")
@ApiModelProperty(value = "提现金额")
private BigDecimal amount;
/**
* 到账金额
*/
@Column(name = "real_amount")
@ApiModelProperty(value = "到账金额")
private BigDecimal realAmount;
/**
* 手续费
*/
@Column(name = "commission")
@ApiModelProperty(value = "手续费")
private BigDecimal commission;
/**
* 订单状态:0-未提现,待审核,1-已审核
*/
@Column(name = "stauts")
@ApiModelProperty(value = "订单状态:0-未提现,待审核,1-已审核")
private Integer stauts;
/**
* 失败原因
*/
@Column(name = "reason")
@ApiModelProperty(value = "失败原因")
private String reason;
/**
* 提现日期
*/
@Column(name = "crt_time")
@ApiModelProperty(value = "提现日期", hidden = true)
private Long crtTime;
/**
* 审核日期
*/
@Column(name = "finish_time")
@ApiModelProperty(value = "审核日期")
private Long finishTime;
/**
* 操作者ID
*/
@Column(name = "upd_user")
@ApiModelProperty(value = "操作者ID")
private String updUser;
@Column(name = "order_no")
@ApiModelProperty(value = "第三方订单号:如微信,支付宝,银行卡等")
private String orderNo;
@Column(name = "account_name")
private String accountName;
@Column(name = "withdraw_way")
@ApiModelProperty(value = "提现方式 1:线下自动 2:线下手动 3:线上自动")
private Integer withdrawWay;
@Column(name = "real_reason")
private String realReason;
}
package com.xxfc.platform.order.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 门店收支明细
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 14:14:54
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Table(name = "company_wallet_detail")
public class CompanyWalletDetail implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键ID")
private Integer id;
@Column(name = "cono")
@ApiModelProperty(value = "订单号或提现号")
private Integer cono;
@Column(name = "source")
@ApiModelProperty(value = "收支类型:见枚举")
private Integer source;
@Column(name = "type")
@ApiModelProperty(value = "类型:1-收入;2-支出")
private Integer type;
@Column(name = "amount")
@ApiModelProperty(value = "收入/支出的金额(分)")
private BigDecimal amount;
@Column(name = "branch_id")
@ApiModelProperty(value = "企业id")
private Integer branchId;
@Column(name = "company_id")
@ApiModelProperty(value = "门店id")
private Integer companyId;
@Column(name = "s_amount")
@ApiModelProperty(value = "门店剩余金额")
private BigDecimal sAmount;
@Column(name = "crt_time")
@ApiModelProperty(value = "操作时间", hidden = true )
private Long crtTime;
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除:0-正常;1-删除")
private Integer isDel;
}
package com.xxfc.platform.order.pojo.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
/**
* 门店收支明细DTO
* @author libin
* @version 1.0
* @description
* @data 2019/12/25 14:53
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CompanyWalletDetailDTO{
@ApiModelProperty("订单号")
private String orderNo;
@ApiModelProperty("出发门店")
private Integer startCompanyId;
@ApiModelProperty("结束门店")
private Integer endCompanyId;
@ApiModelProperty("所属门店")
private Integer vehicleCompanyId;
@ApiModelProperty("平台门店")
private Integer platformCompanyId;
@ApiModelProperty("订单总额")
private BigDecimal orderAmount =BigDecimal.ZERO;
@ApiModelProperty("收车服务费")
private BigDecimal closedVehicleAmout =BigDecimal.ZERO;
@ApiModelProperty("不计免赔费")
private BigDecimal damageSafeAmount =BigDecimal.ZERO;
@ApiModelProperty("押金")
private BigDecimal deposit =BigDecimal.ZERO;
@ApiModelProperty("分销金额")
private BigDecimal comssion =BigDecimal.ZERO;
@ApiModelProperty("定损费")
private BigDecimal lossSpecifiedAmount =BigDecimal.ZERO;
@ApiModelProperty("违章费")
private BigDecimal breakRulesRegulation =BigDecimal.ZERO;
@ApiModelProperty("车辆收益比例")
private BigDecimal vehicleExtract = new BigDecimal(1);
@ApiModelProperty("订单抽成比例")
private BigDecimal orderExtract = new BigDecimal(1);
@ApiModelProperty("平台抽成比例")
private BigDecimal platformExtract = new BigDecimal(1);
@ApiModelProperty("车辆租赁费")
private BigDecimal rentVehicleAmount;
public BigDecimal getRentVehicleAmount(){
return (orderAmount.subtract(closedVehicleAmout).subtract(damageSafeAmount).subtract(deposit).subtract(comssion)).multiply(vehicleExtract).setScale(2, BigDecimal.ROUND_HALF_UP);
}
@ApiModelProperty("订单抽成")
private BigDecimal orderComssion;
public BigDecimal getOrderComssion(){
return (orderAmount.subtract(closedVehicleAmout).subtract(damageSafeAmount).subtract(deposit).subtract(comssion)).multiply(orderExtract).setScale(2, BigDecimal.ROUND_HALF_UP);
}
@ApiModelProperty("平台抽成")
private BigDecimal platformComssion;
public BigDecimal getPlatformComssion(){
return (orderAmount.subtract(closedVehicleAmout).subtract(damageSafeAmount).subtract(deposit).subtract(comssion)).multiply(platformExtract).setScale(2, BigDecimal.ROUND_HALF_UP);
}
@ApiModelProperty("出发门店金额")
private BigDecimal startCompanyAmount;
public BigDecimal getStartCompanyAmount(){
return getOrderAmount();
}
@ApiModelProperty("出发门店金额")
private BigDecimal endCompanyAmount;
public BigDecimal getEndCompanyAmount(){
return this.closedVehicleAmout;
}
@ApiModelProperty("所属门店金额")
private BigDecimal vehicleCompanyAmount;
public BigDecimal getVehicleCompanyAmount(){
return damageSafeAmount.add(getRentVehicleAmount()).add(lossSpecifiedAmount).add(breakRulesRegulation);
}
}
package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.CompanyWalletDetail;
import com.xxfc.platform.order.mapper.CompanyWalletDetailMapper;
import com.xxfc.platform.order.pojo.dto.CompanyWalletDetailDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class CompanyWalletDetailBiz extends BaseBiz<CompanyWalletDetailMapper, CompanyWalletDetail>{
@Autowired
BaseOrderBiz orderBiz;
public void addOrUpd(CompanyWalletDetailDTO walletDetailDTO){
String orderNo=walletDetailDTO.getOrderNo();
if (StringUtils.isBlank(orderNo)){
throw new BaseException("订单号不存在",ResultCode.FAILED_CODE);
}
log.info("---orderNo==="+orderNo);
BaseOrder baseOrder=new BaseOrder();
baseOrder.setNo(orderNo);
baseOrder=orderBiz.selectOne(baseOrder);
if (baseOrder == null || baseOrder.getStatus() >= OrderStatusEnum.ORDER_WAIT.getCode()){
throw new BaseException("订单不存在或状态不是已完成",ResultCode.FAILED_CODE);
}
walletDetailDTO.setOrderAmount(baseOrder.getRealAmount() );
}
}
package com.xxfc.platform.order.biz; package com.xxfc.platform.order.biz;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.github.wxiaoqi.security.common.biz.BaseBiz; import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.util.result.JsonResultUtil; import com.github.wxiaoqi.security.common.util.result.JsonResultUtil;
import com.xxfc.platform.order.biz.inner.OrderCalculateBiz;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail; import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.mapper.OrderRentVehicleDetailMapper; import com.xxfc.platform.order.mapper.OrderRentVehicleDetailMapper;
import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.pojo.order.add.AddRentVehicleDTO;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.feign.VehicleFeign; import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.BookVehicleVO;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestBody;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* 租车订单详情 * 租车订单详情
...@@ -29,6 +42,9 @@ public class OrderRentVehicleBiz extends BaseBiz<OrderRentVehicleDetailMapper, O ...@@ -29,6 +42,9 @@ public class OrderRentVehicleBiz extends BaseBiz<OrderRentVehicleDetailMapper, O
@Autowired @Autowired
VehicleFeign vehicleFeign; VehicleFeign vehicleFeign;
@Autowired
OrderCalculateBiz orderCalculateBiz;
public List<OrderRentVehicleDetail> listByOrderId(Integer orderId) { public List<OrderRentVehicleDetail> listByOrderId(Integer orderId) {
return mapper.listByOrderId(orderId); return mapper.listByOrderId(orderId);
...@@ -84,7 +100,50 @@ public class OrderRentVehicleBiz extends BaseBiz<OrderRentVehicleDetailMapper, O ...@@ -84,7 +100,50 @@ public class OrderRentVehicleBiz extends BaseBiz<OrderRentVehicleDetailMapper, O
} }
} }
//获取全部评论 public RentVehicleBO initRentVehicleBO(AddRentVehicleDTO vo) {
//计算天数
vo.setDayNum(orderCalculateBiz.getIncludeDays(vo.getStartTime(), vo.getEndTime()));
if(null == vo.getEndCompanyId() || vo.getEndCompanyId().equals(0)) {
if(StrUtil.isBlank(vo.getEndAddr())) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet("公司参数不正确"));
}else {
Map<String, Object> map = BeanUtil.beanToMap(new BranchCompany(){{
setName(vo.getEndAddr());
}}, false, true);
List<BranchCompany> data = vehicleFeign.branchCompanyEntityList(map).getData();
if(null == data) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet("公司参数不正确"));
}else {
BranchCompany endCompany = vehicleFeign.branchCompanyEntityList(map).getData().get(0);
vo.setEndCompanyId(endCompany.getId());
}
}
}
if(vo.getStartCompanyId() != null) {
CompanyDetail companyDetail = vehicleFeign.getCompanyDetail(vo.getStartCompanyId()).getData();
if(companyDetail != null) {
vo.setStartAddr(companyDetail.detailAddr());
}
}
if(vo.getEndCompanyId() != null) {
CompanyDetail companyDetail = vehicleFeign.getCompanyDetail(vo.getEndCompanyId()).getData();
if(companyDetail != null) {
vo.setEndAddr(companyDetail.detailAddr());
}
}
RentVehicleBO bo = BeanUtil.toBean(vo, RentVehicleBO.class);
bo.setBookVehicleVO(new BookVehicleVO(){{
setBookStartDate(vo.getBookStartDate());
setBookEndDate(vo.getBookEndDate());
setBookStartDateTime(vo.getBookStartDateTime());
setBookEndDateTime(vo.getBookEndDateTime());
}});
bo.setTickerNo(StrUtil.isNotBlank(vo.getTickerNos())?
StrUtil.splitTrim(vo.getTickerNos(), ","):null);
bo.setAccompanyItems(vo.getAccompanyItems());
return bo;
}
} }
\ No newline at end of file
...@@ -53,12 +53,14 @@ public class WebConfiguration implements WebMvcConfigurer { ...@@ -53,12 +53,14 @@ public class WebConfiguration implements WebMvcConfigurer {
private ArrayList<String> getIncludePathPatterns() { private ArrayList<String> getIncludePathPatterns() {
ArrayList<String> list = new ArrayList<>(); ArrayList<String> list = new ArrayList<>();
String[] urls = { String[] urls = {
"/background/**",
"/orderRentVehicle/**", "/orderRentVehicle/**",
"/baseOrder/**", "/baseOrder/**",
"/orderTour/**", "/orderTour/**",
"/orderMember/**", "/orderMember/**",
"/orderRefund/**", "/orderRefund/**",
"/orderVehicle/**" "/orderVehicle/**",
"/shuntApply/**"
}; };
Collections.addAll(list, urls); Collections.addAll(list, urls);
return list; return list;
......
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.CompanyWalletCath;
import tk.mybatis.mapper.common.Mapper;
/**
* 钱包提现表
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 14:14:54
*/
public interface CompanyWalletCathMapper extends Mapper<CompanyWalletCath> {
}
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.CompanyWalletDetail;
import tk.mybatis.mapper.common.Mapper;
/**
* 收入/支持明细表,每笔的进账,出账的详细记录
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 14:14:54
*/
public interface CompanyWalletDetailMapper extends Mapper<CompanyWalletDetail> {
}
package com.xxfc.platform.order.mapper;
import com.xxfc.platform.order.entity.CompanyWallet;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
import tk.mybatis.mapper.common.Mapper;
/**
* 我的钱包
*
* @author zjw
* @email 18178966185@163.com
* @date 2019-07-11 14:14:54
*/
public interface CompanyWalletMapper extends Mapper<CompanyWallet> {
void updMyWater(CompanyWallet companyWallet);
@Update("UPDATE `company_wallet` SET `is_frozen`=#{state} WHERE `id`=#{id}" )
void forbiddenWalletById(@Param("id") Integer id, @Param("state") Integer state);
}
...@@ -70,7 +70,8 @@ public class OrderRentVehicleController extends CommonBaseController { ...@@ -70,7 +70,8 @@ public class OrderRentVehicleController extends CommonBaseController {
@ResponseBody @ResponseBody
@ApiOperation(value = "确认租车订单") @ApiOperation(value = "确认租车订单")
public ObjectRestResponse<BaseOrder> add(@RequestBody AddRentVehicleDTO vo){ public ObjectRestResponse<BaseOrder> add(@RequestBody AddRentVehicleDTO vo){
RentVehicleBO bo = initRentVehicleBO(vo); RentVehicleBO bo = orderRentVehicleBiz.initRentVehicleBO(vo);
// vo.setDayNum(orderCalculateBiz.getIncludeDays(vo.getStartTime(), vo.getEndTime()));
bo.setAppUserDTO(userFeign.userDetailByToken(BaseContextHandler.getToken()).getData()); bo.setAppUserDTO(userFeign.userDetailByToken(BaseContextHandler.getToken()).getData());
orderRentVehicleService.createOrder(bo); orderRentVehicleService.createOrder(bo);
return ObjectRestResponse.succ(bo.getOrder()); return ObjectRestResponse.succ(bo.getOrder());
...@@ -81,8 +82,8 @@ public class OrderRentVehicleController extends CommonBaseController { ...@@ -81,8 +82,8 @@ public class OrderRentVehicleController extends CommonBaseController {
@ResponseBody @ResponseBody
@ApiOperation(value = "后台人员为客户下租车订单") @ApiOperation(value = "后台人员为客户下租车订单")
public ObjectRestResponse<BaseOrder> backStagedd(@RequestBody BgAddRentDTO dto){ public ObjectRestResponse<BaseOrder> backStagedd(@RequestBody BgAddRentDTO dto){
RentVehicleBO bo = initRentVehicleBO(dto); RentVehicleBO bo = orderRentVehicleBiz.initRentVehicleBO(dto);
// bo.setDayNum(orderCalculateBiz.getIncludeDays(dto.getStartTime(), dto.getEndTime()));
bo.setAppUserDTO(userFeign.userDetailById(dto.getAppUserId()).getData()); bo.setAppUserDTO(userFeign.userDetailById(dto.getAppUserId()).getData());
bo.setCrtUser("-1"+ BaseContextHandler.getUserID()); bo.setCrtUser("-1"+ BaseContextHandler.getUserID());
//设置-1表示查询所有的车 //设置-1表示查询所有的车
...@@ -91,51 +92,6 @@ public class OrderRentVehicleController extends CommonBaseController { ...@@ -91,51 +92,6 @@ public class OrderRentVehicleController extends CommonBaseController {
return ObjectRestResponse.succ(bo.getOrder()); return ObjectRestResponse.succ(bo.getOrder());
} }
private RentVehicleBO initRentVehicleBO(@RequestBody AddRentVehicleDTO vo) {
//计算天数
vo.setDayNum(orderCalculateBiz.getIncludeDays(vo.getStartTime(), vo.getEndTime()));
if(null == vo.getEndCompanyId() || vo.getEndCompanyId().equals(0)) {
if(StrUtil.isBlank(vo.getEndAddr())) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet("公司参数不正确"));
}else {
Map<String, Object> map = BeanUtil.beanToMap(new BranchCompany(){{
setName(vo.getEndAddr());
}}, false, true);
List<BranchCompany> data = vehicleFeign.branchCompanyEntityList(map).getData();
if(null == data) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE, Sets.newSet("公司参数不正确"));
}else {
BranchCompany endCompany = vehicleFeign.branchCompanyEntityList(map).getData().get(0);
vo.setEndCompanyId(endCompany.getId());
}
}
}
if(vo.getStartCompanyId() != null) {
CompanyDetail companyDetail = vehicleFeign.getCompanyDetail(vo.getStartCompanyId()).getData();
if(companyDetail != null) {
vo.setStartAddr(companyDetail.detailAddr());
}
}
if(vo.getEndCompanyId() != null) {
CompanyDetail companyDetail = vehicleFeign.getCompanyDetail(vo.getEndCompanyId()).getData();
if(companyDetail != null) {
vo.setEndAddr(companyDetail.detailAddr());
}
}
RentVehicleBO bo = BeanUtil.toBean(vo, RentVehicleBO.class);
bo.setBookVehicleVO(new BookVehicleVO(){{
setBookStartDate(vo.getBookStartDate());
setBookEndDate(vo.getBookEndDate());
setBookStartDateTime(vo.getBookStartDateTime());
setBookEndDateTime(vo.getBookEndDateTime());
}});
bo.setTickerNo(StrUtil.isNotBlank(vo.getTickerNos())?
StrUtil.splitTrim(vo.getTickerNos(), ","):null);
bo.setAccompanyItems(vo.getAccompanyItems());
return bo;
}
@RequestMapping(value = "list-by-order/{orderId}",method = RequestMethod.GET) @RequestMapping(value = "list-by-order/{orderId}",method = RequestMethod.GET)
@ResponseBody @ResponseBody
@ApiOperation(value = "租车列表by订单Id") @ApiOperation(value = "租车列表by订单Id")
......
package com.xxfc.platform.order.rest.background;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.github.wxiaoqi.security.common.vo.PageParam;
import com.xxfc.platform.order.biz.OrderRentVehicleBiz;
import com.xxfc.platform.order.biz.ShuntApplyBiz;
import com.xxfc.platform.order.biz.inner.OrderCalculateBiz;
import com.xxfc.platform.order.entity.ShuntApply;
import com.xxfc.platform.order.pojo.order.RentVehicleBO;
import com.xxfc.platform.order.pojo.order.add.BgAddRentDTO;
import com.xxfc.platform.order.service.OrderRentVehicleService;
import com.xxfc.platform.vehicle.entity.VehicleModel;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import io.swagger.annotations.ApiOperation;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import static com.xxfc.platform.order.entity.ShuntApply.STATUS_CONFIRM;
import static com.xxfc.platform.order.entity.ShuntApply.STATUS_CRT;
@RestController
@RequestMapping("/background/shuntApply")
public class ShuntApplyController extends BaseController<ShuntApplyBiz, ShuntApply> {
@Autowired
VehicleFeign vehicleFeign;
@Autowired
UserFeign userFeign;
@Autowired
OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
OrderCalculateBiz orderCalculateBiz;
@Autowired
OrderRentVehicleService orderRentVehicleService;
@RequestMapping(value = "/confirmApply", method = RequestMethod.POST)
@ResponseBody
@ApiOperation(value = "后台确认申请")
public ObjectRestResponse confirmApply(@RequestBody confirmApplyDTO dto) {
//查询列表数据
if (StrUtil.isBlank(getCurrentUserId())) {
throw new BaseException(ResultCode.AJAX_WECHAT_NOTEXIST_CODE);
}
if(null == dto.getApplyId()) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE);
}
ShuntApply shuntApply = baseBiz.selectById(dto.getApplyId());
if(null == shuntApply && shuntApply.getStatus() != STATUS_CRT) {
throw new BaseException(ResultCode.PARAM_ILLEGAL_CODE);
}
shuntApply.setVehicleId(dto.getVehicleId());
shuntApply.setStatus(STATUS_CONFIRM);
baseBiz.updateSelectiveById(shuntApply);
return ObjectRestResponse.succ();
}
@Data
public static class confirmApplyDTO {
Integer applyId;
String vehicleId;
}
}
\ 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.xxfc.platform.order.mapper.CompanyWalletMapper">
<update id="updMyWater" parameterType="com.xxfc.platform.order.entity.CompanyWallet">
update company_wallet
<set>
<if test=" companyId != null and companyId != '' ">
company_id=#{companyId},
</if>
<if test="balance!=null ">
balance=#{balance},
</if>
<if test="withdrawals!=null and withdrawals!='' ">
withdrawals=#{withdrawals},
</if>
<if test="totalAmount!=null and totalAmount!='' ">
total_amount=#{totalAmount},
</if>
<if test="todayAmount!=null and todayAmount!='' ">
today_amount=#{todayAmount},
</if>
<if test="unbooked!=null and unbooked!='' ">
unbooked=#{unbooked},
</if>
<if test="isFrozen!=null and isFrozen!='' ">
is_frozen=#{isFrozen},
</if>
<if test="lastIntime!=null and lastIntime!='' ">
last_intime=#{lastIntime},
</if>
<if test="crtTime!=null and crtTime!='' ">
crt_time=#{crtTime},
</if>
<if test="updTime!=null and updTime!='' ">
upd_time=#{updTime},
</if>
<if test="version!=null and version!='' ">
version=version+1,
</if>
</set>
<where>
id=#{id} and version=#{version}
</where>
</update>
</mapper>
\ No newline at end of file
...@@ -139,6 +139,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -139,6 +139,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
PageDataVO<UsableVehicleModelVO> uvmvpdvs = vehicleBiz.searchUsableModel(dto); PageDataVO<UsableVehicleModelVO> uvmvpdvs = vehicleBiz.searchUsableModel(dto);
if(CollUtil.isNotEmpty(uvmvpdvs.getData())){ if(CollUtil.isNotEmpty(uvmvpdvs.getData())){
uvmvpdvs.getData().forEach(data -> { uvmvpdvs.getData().forEach(data -> {
data.setHasVehicle(SYS_FALSE);
// if(StrUtil.isNotBlank(data.getVehicleIds())) { // if(StrUtil.isNotBlank(data.getVehicleIds())) {
// String[] strs = StrUtil.split(data.getVehicleIds(), ","); // String[] strs = StrUtil.split(data.getVehicleIds(), ",");
// List<Vehicle> vehicleList = vehicleBiz.selectByWeekend(w -> { // List<Vehicle> vehicleList = vehicleBiz.selectByWeekend(w -> {
...@@ -164,6 +165,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -164,6 +165,7 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//查询可车辆信息 //查询可车辆信息
PageDataVO<UsableVeicleVO> pageDataVO = vehicleBiz.searchUsableVehicle(rbd); PageDataVO<UsableVeicleVO> pageDataVO = vehicleBiz.searchUsableVehicle(rbd);
if(CollUtil.isNotEmpty(pageDataVO.getData())) { if(CollUtil.isNotEmpty(pageDataVO.getData())) {
for (UsableVeicleVO usableVeicleVO : pageDataVO.getData()) { for (UsableVeicleVO usableVeicleVO : pageDataVO.getData()) {
//判断是否预定时间内可租 //判断是否预定时间内可租
...@@ -176,6 +178,8 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements ...@@ -176,6 +178,8 @@ public class RentVehicleController extends BaseController<VehicleBiz> implements
//如果"必须在这时间前预定" 存在 并且 比预定结束时间 要早,那么不允许预定 //如果"必须在这时间前预定" 存在 并且 比预定结束时间 要早,那么不允许预定
if(null != usableVeicleVO.getToReturnMustBeforeDate() && DateUtil.date(dto.getEndDateTamp()).isAfterOrEquals(usableVeicleVO.getToReturnMustBeforeDate())) { if(null != usableVeicleVO.getToReturnMustBeforeDate() && DateUtil.date(dto.getEndDateTamp()).isAfterOrEquals(usableVeicleVO.getToReturnMustBeforeDate())) {
usableVeicleVO.setAllowRent(SYS_FALSE); usableVeicleVO.setAllowRent(SYS_FALSE);
}else {
data.setHasVehicle(SYS_TRUE);
} }
String priceStartDateStr = StrUtil.isNotBlank(dto.getPriceStartDate())? dto.getPriceStartDate(): dto.getStartDate(); String priceStartDateStr = StrUtil.isNotBlank(dto.getPriceStartDate())? dto.getPriceStartDate(): dto.getStartDate();
......
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