Commit c18c73c7 authored by jiaorz's avatar jiaorz

Merge branch 'base-modify' of http://113.105.137.151:22280/youjj/cloud-platform into base-modify

parents 7adce3f6 1f241513
......@@ -5,6 +5,8 @@ import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
* 用户信息表
......@@ -52,6 +54,11 @@ public class AppUserManageDTO {
*/
private Integer source;
/**
* 公司所在的城市数组
*/
private Set<Integer> citySet;
// /**
// * 接收前台时间范围
// */
......
......@@ -13,8 +13,10 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.entity.SysRegion;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import javafx.print.Collation;
import org.apache.commons.beanutils.BeanMap;
import org.apache.commons.beanutils.BeanUtilsBean;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.MapUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -26,6 +28,7 @@ import tk.mybatis.mapper.entity.Example;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
......@@ -59,12 +62,21 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
if (pageInfo.getList()==null||pageInfo.getList().size()==0) {
return pageInfo;
}
List<Integer> Citys = pageInfo.getList().parallelStream().map(AppUserManageVo::getCityCode).collect(Collectors.toList());
return getAppUserManageVoPageInfo(pageInfo);
}
/**
* 获取城市名并保存
* @param pageInfo
* @return
*/
private PageInfo<AppUserManageVo> getAppUserManageVoPageInfo(PageInfo<AppUserManageVo> pageInfo) {
List<Integer> citysCode = pageInfo.getList().parallelStream().map(AppUserManageVo::getCityCode).collect(Collectors.toList());
HashSet<Integer> set = new HashSet<>();
set.addAll(Citys);
set.addAll(citysCode);
ObjectRestResponse<List<SysRegion>> orr = vehicleFeign.getSysRegionByIds(set);
List<SysRegion> sysRegions = orr.getData();
if (!(sysRegions==null||sysRegions.size()==0)) {
if (CollectionUtils.isNotEmpty(sysRegions)) {
HashMap<Long, String> map = new HashMap<>();
for (SysRegion sysRegion : sysRegions) {
map.put(sysRegion.getId(),sysRegion.getName());
......@@ -76,6 +88,23 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
return pageInfo;
}
/**
* 根据用公司账号权限和公司所在城市查询用户情况
* @param appUserManageDTO
* @return
*/
public PageInfo<AppUserManageVo> findAllByQueryAndCity(AppUserManageDTO appUserManageDTO) {
PageHelper.startPage(appUserManageDTO.getPage(), appUserManageDTO.getLimit());
List<AppUserManageVo> appUserManageVos = mapper.selectAppUserManage(appUserManageDTO);
if (CollectionUtils.isEmpty(appUserManageVos)) {
return new PageInfo<AppUserManageVo>();
}
Set<Integer> usSet = appUserManageDTO.getCitySet();
List<AppUserManageVo> results = appUserManageVos.parallelStream().filter(us -> usSet.contains(us.getCityCode())).collect(Collectors.toList());
PageInfo<AppUserManageVo> pageInfo = PageInfo.of(results);
return getAppUserManageVoPageInfo(pageInfo);
}
/**
* 禁用账户
* @param id
......@@ -150,4 +179,5 @@ public class AppUserManageBiz extends BaseBiz<AppUserDetailMapper, AppUserDetail
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
}
......@@ -41,14 +41,14 @@ public class BaseUserMemberBiz extends BaseBiz<BaseUserMemberMapper, BaseUserMem
@Autowired
AppUserDetailBiz detailBiz;
@Autowired
private TaskExecutor taskExecutor;
@Autowired
private UserMemberLevelBiz userMemberLevelBiz;
@Autowired
private AppUserLoginBiz appUserLoginBiz;
// @Autowired
// private TaskExecutor taskExecutor;
//
// @Autowired
// private UserMemberLevelBiz userMemberLevelBiz;
//
// @Autowired
// private AppUserLoginBiz appUserLoginBiz;
//获取用户会员信息
@Cache(key = "user:member{1}")
......
......@@ -7,13 +7,26 @@ import com.github.wxiaoqi.security.admin.constant.Status;
import com.github.wxiaoqi.security.admin.dto.AppUserManageDTO;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.entity.AppUserManage;
import com.github.wxiaoqi.security.admin.entity.User;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.vo.AppUserManageVo;
import com.github.wxiaoqi.security.admin.vo.AppUserVo;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
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.xxfc.platform.vehicle.feign.VehicleFeign;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* app用户管理类
* @author Administrator
......@@ -25,26 +38,35 @@ public class AppUsersManageController extends BaseController<AppUserManageBiz,Ap
@Autowired
private AppUserLoginBiz appUserLoginBiz;
@Autowired
protected UserAuthConfig userAuthConfig;
@Autowired
private PublicController publicController;
@Autowired
private VehicleFeign vehicleFeign;
/**
* 查询所有
* @return
*/
@PostMapping("/findAll")
public ObjectRestResponse<PageInfo<AppUserManageVo>> findAllByQuery(@RequestBody AppUserManageDTO appUserManageDTO){
return ObjectRestResponse.succ(baseBiz.findAllByQuery(appUserManageDTO));
public ObjectRestResponse<PageInfo<AppUserManageVo>> findAllByQuery(@RequestBody AppUserManageDTO appUserManageDTO, HttpServletRequest request) throws Exception {
String token = userAuthConfig.getToken(request);
ObjectRestResponse objectRestResponse = publicController.userinfoByToken(token);
User user = (User) objectRestResponse.getData();
if (user==null){
throw new BaseException("User error!");
}
if (user.getDataAll()==1) {
return ObjectRestResponse.succ(baseBiz.findAllByQuery(appUserManageDTO));
}
ObjectRestResponse<Set<Integer>> setObjectRestResponse = vehicleFeign.corporationCity(user.getDataZone(), user.getDataCompany());
Set<Integer> cityList = setObjectRestResponse.getData();
appUserManageDTO.setCitySet(cityList);
return ObjectRestResponse.succ(baseBiz.findAllByQueryAndCity(appUserManageDTO));
}
// /**
// * 禁用
// * @param id
// * @return
// */
// @DeleteMapping("/deleteById/{id}/{isDel}")
// public ObjectRestResponse deleteById(@PathVariable Integer id,@PathVariable Integer isDel){
// baseBiz.deleteAppUser(id,isDel);
// return ObjectRestResponse.succ();
// }
/**
* 查询一条
* @param id
......
......@@ -15,10 +15,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import java.util.ArrayList;
......@@ -53,7 +50,11 @@ public class GroupController extends BaseController<GroupBiz, Group> {
return baseBiz.selectByExample(example);
}
@GetMapping(value = "/list_all")
@ResponseBody
public List<Group> listAll() {
return baseBiz.selectListAll();
}
@RequestMapping(value = "/{id}/user", method = RequestMethod.PUT)
......
......@@ -93,7 +93,7 @@ public class UserMemberAdminController {
public ObjectRestResponse<Void> saveUserMember(@RequestBody UserMemberSaveDTO userMemberSaveDTO,HttpServletRequest request) {
try {
IJWTInfo infoFromToken = userAuthUtil.getInfoFromToken(userAuthConfig.getToken(request));
baseUserMemberExportBiz.saveUserMember(userMemberSaveDTO,Integer.valueOf(infoFromToken.getId()),infoFromToken.getName());
baseUserMemberExportBiz.saveUserMember(userMemberSaveDTO,Integer.valueOf(infoFromToken.getId()),infoFromToken.getUniqueName());
return ObjectRestResponse.succ();
} catch (Exception e) {
throw new BaseException(e);
......
......@@ -148,20 +148,17 @@ public class ActivityPopupBiz extends BaseBiz<ActivityPopupMapper, ActivityPopup
} else {
activityPopup.setIsDel(1);
}
updateById(activityPopup);
}
@Override
public int updateSelectiveByIdRe(ActivityPopup activityPopup) {
activityPopup.setUpdTime(BigInteger.valueOf(System.currentTimeMillis()));
return mapper.updateByPrimaryKeySelective(activityPopup);
}
@Override
public int insertSelectiveRe(ActivityPopup activityPopup) {
activityPopup.setCrtTime(BigInteger.valueOf(System.currentTimeMillis()));
activityPopup.setSort(0);
activityPopup.setTimeType(0);
if (activityPopup.getSort() == null) {
activityPopup.setSort(0);
}
if (activityPopup.getTimeType() == null) {
activityPopup.setTimeType(0);
}
return mapper.insertSelective(activityPopup);
}
}
......@@ -95,6 +95,9 @@ public class CampsiteShopPageDTO implements Serializable {
@ApiModelProperty(value = "電話")
private String phone;
@ApiModelProperty("地址")
private String address;
@Override
public boolean equals(Object o) {
if (this == o) {
......
......@@ -100,4 +100,7 @@ public class CampsiteShopPageVo implements Serializable {
@ApiModelProperty(value = "電話")
private String phone;
@ApiModelProperty("地址")
private String address;
}
......@@ -37,14 +37,14 @@
<!--根据类型查询全部-->
<select id="findAllCampsiteShopsByType" resultType="com.xxfc.platform.campsite.dto.CampsiteShopPageDTO">
select cs.id as `id`,cs.name as `name`,cs.logo as `logo`,cs.url as `url`,cs.province_name as `provinceName`,cs.city_name as `cityName`,cs.service_phone as `phone`,
cs.longitude as `longitude`,cs.latitude as `latitude`,cs.hot as `hot`,cs.crt_time as `crtTime`,ct.id as `storeId`,ct.name as `storeTypeName`
cs.longitude as `longitude`,cs.latitude as `latitude`,`address` as `address`,cs.hot as `hot`,cs.crt_time as `crtTime`,ct.id as `storeId`,ct.name as `storeTypeName`
FROM `campsite_shop_tag` cst
left JOIN `campsite_shop` cs on cst.shop_id=cs.id
left JOIN `campsite_tag` ct on cst.tag_id=ct.id
where cs.sale_state=1 and cs.is_del=0
<if test="typeId!=null">
and cst.tag_id=#{typeId}
</if>
</if> order by `crtTime` DESC
</select>
<!--首页查询全部-->
......
package com.xxfc.platform.order.biz;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.github.wxiaoqi.security.common.util.IntervalUtil;
import com.xxfc.platform.order.contant.enumerate.*;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
......@@ -10,6 +12,8 @@ import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.universal.constant.DictionaryKey;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.universal.vo.OrderRefundVo;
import org.apache.commons.jexl2.MapContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -20,7 +24,10 @@ import com.github.wxiaoqi.security.common.biz.BaseBiz;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.universal.constant.DictionaryKey.APP_ORDER;
/**
......@@ -69,11 +76,147 @@ public class OrderRefundBiz extends BaseBiz<OrderRefundMapper,OrderRefund> {
public void refundTrigger(BaseOrder baseOrder, OrderRentVehicleDetail orvd, BigDecimal residueAmount, BigDecimal originalRefundAmount, BigDecimal refundAmont, String refundDesc, Integer refundStatus) {
//退款子流程: 订单基础,退款描述,退款金额
baseOrderBiz.refundSubProcess(baseOrder, refundDesc, originalRefundAmount, refundAmont, RefundTypeEnum.DEPOSIT.getCode(), refundStatus);
refundSubProcess(baseOrder, refundDesc, originalRefundAmount, refundAmont, RefundTypeEnum.DEPOSIT.getCode(), refundStatus);
//设置剩余没有返还的钱
orderRentVehicleBiz.updateSelectiveById(new OrderRentVehicleDetail(){{
setId(orvd.getId());
setReturnPayResidue(residueAmount);
}});
}
/**
* 租车退款流程(不含押金的通用方法)
* @param baseOrder
* @param startTime
* @param dicParentKey
*/
public void rentRefundProcess(BaseOrder baseOrder, Long startTime, String dicParentKey){
rentRefundProcess(baseOrder, BigDecimal.ZERO, startTime, dicParentKey);
}
/**
* 租车(包括旅游)退款流程(含押金)
* @param baseOrder
* @param depositAmount
* @param timeLag 与开始时间的时间差
* @param dicParentKey
*/
public void rentRefundProcess(BaseOrder baseOrder, BigDecimal depositAmount, Long timeLag, String dicParentKey) {
//计算退款金额
// 1、押金 + 租金(规则扣除)
BigDecimal originalRefundAmount = BigDecimal.ZERO.add(baseOrder.getGoodsAmount().subtract(baseOrder.getCouponAmount()));
StringBuilder refundDescBuilder = new StringBuilder("取消订单退款:");
if(null == depositAmount) {
depositAmount = BigDecimal.ZERO;
}
//商品价格 - 优惠券减免的价格
BigDecimal refundGoodsAmount = calculateRefund(originalRefundAmount, timeLag, dicParentKey, refundDescBuilder);
//退款金额
BigDecimal refundAmount = depositAmount.add(refundGoodsAmount);
originalRefundAmount = depositAmount.add(originalRefundAmount);
//退款子流程: 订单基础,退款描述,退款金额
refundSubProcess(baseOrder, refundDescBuilder.toString(), originalRefundAmount, refundAmount, RefundTypeEnum.ORDER_FUND.getCode(), RefundStatusEnum.ALL.getCode());
}
public BigDecimal calculateRefund(BigDecimal goodsAmount, Long timeLag, String dicParentKey, StringBuilder refundDescBuilder) {
BigDecimal refundGoodsAmount = goodsAmount;
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
Integer hourLag = Long.valueOf(timeLag/(1000L * 60L * 60L)).intValue();
Map<String, Dictionary> dictionaryMap = thirdFeign.dictionaryGetAll4Map().getData();
Set<Dictionary> rentRefunds = dictionaryMap.get(dicParentKey).getChildrens();
for(com.xxfc.platform.universal.entity.Dictionary dic : rentRefunds) {
if(StrUtil.isBlank(dic.getName())) {
continue;
}
String[] names = dic.getName().split("\\|");
if(names.length < 2) {
continue;
}
//符合范围
if(IntervalUtil.staticIsInTheInterval(hourLag.toString(), names[0])){
refundGoodsAmount = new BigDecimal((IntervalUtil.evaluate(dic.getDetail(), new MapContext(){{
//ga : goodsAmount
set("ga", goodsAmount);
}})).toString());
refundDescBuilder = refundDescBuilder.insert(0, names[1]+ ",");
break;
}
}
return refundGoodsAmount;
}
/**
* 退款子流程
* @param baseOrder
* @param refundDesc
* @param refundAmount
* @param refundType
* @param refundStatus
*/
public void refundSubProcess(BaseOrder baseOrder, String refundDesc, BigDecimal originalRefundAmount, BigDecimal refundAmount, Integer refundType, Integer refundStatus) {
String refundTradeNo = null;
//0 小于 退款金额
if(BigDecimal.ZERO.compareTo(refundAmount) < 0) {
OrderRefundVo orv = new OrderRefundVo(){{
setAmount(baseOrder.getRealAmount().multiply(new BigDecimal("100")).intValue());
setOrderNo(baseOrder.getNo());
}};
orv.setRefundDesc(refundDesc+ refundAmount.toString());
orv.setRefundAmount(refundAmount.multiply(new BigDecimal("100")).intValue());
refundTradeNo = thirdFeign.refund(orv).getData();
}
//记录订单退款记录
Integer flag = addOrderRefund(baseOrder.getId(), refundDesc, originalRefundAmount, refundAmount, refundTradeNo, refundType);
//更新订单的退款状态和退款时间
if(SYS_TRUE.equals(flag) && null != refundStatus) {
baseOrderBiz.updateSelectiveByIdReT(new BaseOrder(){{
setId(baseOrder.getId());
setRefundStatus(refundStatus);
setRefundTime(System.currentTimeMillis());
setVersion(baseOrder.getVersion());
}});
}
}
/**
* 记录订单退款记录
* @param orderId
* @param refundDesc
* @param refundAmount
* @param refundTradeNo
*/
private Integer addOrderRefund(Integer orderId, String refundDesc, BigDecimal originalRefundAmount, BigDecimal refundAmount, String refundTradeNo, Integer refundType) {
//如果返回的流水为空,则当做失败
Integer refundStatus = SYS_TRUE;
if(StrUtil.isBlank(refundTradeNo)) {
refundStatus = SYS_FALSE;
}
//创建订单退款记录
OrderRefund orderRefund = new OrderRefund(){{
setOrderId(orderId);
setRefundTime(System.currentTimeMillis());
setTradeNo(refundTradeNo);
setRefundType(RefundTypeEnum.ORDER_FUND.getCode());
}};
orderRefund.setOriginalRefundAmount(originalRefundAmount);
orderRefund.setDeductAmount(originalRefundAmount.subtract(refundAmount));
orderRefund.setRefundAmount(refundAmount);
orderRefund.setRefundDesc(refundDesc);
orderRefund.setRefundStatus(refundStatus);
orderRefund.setRefundType(refundType);
insertSelective(orderRefund);
return refundStatus;
}
}
\ No newline at end of file
package com.xxfc.platform.order.biz.inner;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO;
import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.IntervalUtil;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.contant.enumerate.RefundStatusEnum;
import com.xxfc.platform.order.contant.enumerate.RefundTypeEnum;
import com.xxfc.platform.order.entity.*;
import com.xxfc.platform.order.pojo.mq.OrderMQDTO;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.universal.dto.SmsTemplateDTO;
import com.xxfc.platform.universal.entity.Dictionary;
import com.xxfc.platform.universal.feign.ThirdFeign;
import com.xxfc.platform.universal.vo.OrderRefundVo;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.jexl2.MapContext;
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.*;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_FALSE;
import static com.github.wxiaoqi.security.common.constant.CommonConstants.SYS_TRUE;
import static com.xxfc.platform.universal.constant.DictionaryKey.*;
/**
* 订单退款记录表
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-06-18 11:08:09
*/
@Slf4j
@Service
public class OrderCancelBiz {
@Autowired
BaseOrderBiz baseOrderBiz;
@Autowired
OrderMemberDetailBiz orderMemberDetailBiz;
@Autowired
OrderTourDetailBiz orderTourDetailBiz;
@Autowired
OrderRentVehicleBiz orderRentVehicleBiz;
@Autowired
OrderRefundBiz orderRefundBiz;
@Autowired
OrderMsgBiz orderMsgBiz;
@Autowired
UserFeign userFeign;
@Autowired
VehicleFeign vehicleFeign;
@Autowired
TourFeign tourFeign;
@Autowired
ThirdFeign thirdFeign;
private static Map<Integer, List<Integer>> cancelAble;
static {
cancelAble = new HashMap<Integer, List<Integer>>();
cancelAble.put(OrderTypeEnum.RENT_VEHICLE.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode());
add(OrderStatusEnum.ORDER_TOSTART.getCode());
}});
cancelAble.put(OrderTypeEnum.TOUR.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode());
add(OrderStatusEnum.ORDER_TOSTART.getCode());
}});
cancelAble.put(OrderTypeEnum.MEMBER.getCode(), new LinkedList<Integer>(){{
add(OrderStatusEnum.ORDER_UNPAY.getCode());
}});
}
/**
* 取消订单
* @param baseOrder
*/
@Transactional
public void cancel(BaseOrder baseOrder) {
OrderRentVehicleDetail orvd = new OrderRentVehicleDetail();
OrderTourDetail otd = new OrderTourDetail();
OrderMemberDetail omd = new OrderMemberDetail();
if(cancelAble.get(baseOrder.getType()).contains(baseOrder.getStatus())) {
BaseOrder updateOrder = new BaseOrder(){{
setId(baseOrder.getId());
setStatus(OrderStatusEnum.ORDER_CANCEL.getCode());
setCancelReason(baseOrder.getCancelReason());
setVersion(baseOrder.getVersion());
}};
BaseOrder hasUpdateOrder = baseOrderBiz.updateSelectiveByIdReT(updateOrder);
//触发退款流程
//判断是否已支付
if(SYS_TRUE.equals(baseOrder.getHasPay())) {
//判断订单类型
if(OrderTypeEnum.RENT_VEHICLE.getCode().equals(baseOrder.getType())) {
orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail(){{
setOrderId(baseOrder.getId());
}});
//如果超过出发时间,不能取消订单
//根据时间处理goodsAmount
//获取出发时间 到现在 距离时间
Long timeLag = orvd.getStartTime() - System.currentTimeMillis();
if(timeLag < 0) {
throw new BaseException(ResultCode.FAILED_CODE, new HashSet<String>(){{
add("已超过出发时间,不能取消订单");
}});
}
//退款流程
orderRefundBiz.rentRefundProcess(hasUpdateOrder, orvd.getDeposit(), timeLag, APP_ORDER+ "_"+ RENT_REFUND);
//已付款的取消订单发送消息
try {
AppUserDTO appUserDTO = userFeign.userDetailById(baseOrder.getUserId()).getData();
//处理后台用户提醒短信的发送
orderMsgBiz.handelBgUserMsg4Pay(orvd, baseOrder, appUserDTO, OrderMsgBiz.RENT_CANCEL);
}catch (Exception e) {
log.error(e.getMessage(), e);
}
}else if (OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
otd = orderTourDetailBiz.selectOne(new OrderTourDetail(){{
setOrderId(baseOrder.getId());
}});
Long timeLag = otd.getStartTime() - System.currentTimeMillis();
//判断是省内还是省外
String key = TOUR_IN_REFUND;
if(SYS_TRUE.equals(otd.getIsOutside())) {
key = TOUR_REFUND;
}
//退款流程
orderRefundBiz.rentRefundProcess(hasUpdateOrder, timeLag, APP_ORDER+ "_"+ key);
}
}
//处理取消流程
if(OrderTypeEnum.RENT_VEHICLE.getCode().equals(baseOrder.getType())) {
orvd = orderRentVehicleBiz.selectOne(new OrderRentVehicleDetail(){{
setOrderId(baseOrder.getId());
}});
//取消租车预定
//已支付,并且是待出行状态,取消预约
if(OrderStatusEnum.ORDER_TOSTART.equals(baseOrder.getType()) && SYS_TRUE.equals(baseOrder.getHasPay())){
vehicleFeign.unbookVehicle(orvd.getBookRecordId());
}else {
//未支付,拒绝之前的预约
RestResponse<Integer> restResponse = vehicleFeign.rentRejectVehicleBooking(orvd.getBookRecordId());
}
//取消租车免费天数使用
if(null != orvd.getFreeDays() && orvd.getFreeDays() > 0) {
int result = userFeign.memberDays(baseOrder.getUserId(), orvd.getFreeDays(), UserFeign.MEMBER_DAYS_WITHDRAW);
if(result < 0) {
throw new BaseException(ResultCode.FAILED_CODE);
}
}
}else if(OrderTypeEnum.TOUR.getCode().equals(baseOrder.getType())) {
otd = orderTourDetailBiz.selectOne(new OrderTourDetail(){{
setOrderId(baseOrder.getId());
}});
//增加库存
tourFeign.stock(otd.getSpePriceId(), otd.getTotalNumber(), TourFeign.STOCK_PLUS);
}
//发送队列消息
baseOrderBiz.sendOrderMq(orvd, otd, omd, baseOrder, OrderMQDTO.ORDER_CANCEL);
}else {
throw new BaseException(ResultCode.FAILED_CODE);
}
}
}
\ No newline at end of file
package com.xxfc.platform.order.jobhandler;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.entity.DailyOrderStatistics;
import com.xxfc.platform.order.mapper.BaseOrderMapper;
import com.xxl.job.core.biz.model.ReturnT;
import com.xxl.job.core.handler.IJobHandler;
import com.xxl.job.core.handler.annotation.JobHandler;
import com.xxl.job.core.log.XxlJobLogger;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* 每天2定时统计前一天的数据
*/
@JobHandler(value = "baseOrderStatistics")
@Component
@Slf4j
public class BaseOrderStatisticsJobHandler extends IJobHandler {
@Autowired
private BaseOrderBiz baseOrderBiz;
@Override
public ReturnT<String> execute(String s) throws Exception {
try {
DailyOrderStatistics dailyOrderStatistics= baseOrderBiz.getTotalOrder();
ReturnT returnT = new ReturnT(){{
setCode(100);
setMsg("成功");
}};
return returnT;
} catch (Exception e) {
XxlJobLogger.log(e);
return FAIL;
} finally {
}
}
}
......@@ -4,6 +4,7 @@ import com.github.wxiaoqi.security.common.exception.BaseException;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.rabbitmq.client.Channel;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.inner.OrderCancelBiz;
import com.xxfc.platform.order.entity.BaseOrder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.Message;
......@@ -26,7 +27,7 @@ import static com.xxfc.platform.order.config.RabbitDelayConfig.ORDER_CANCEL_QUE;
public class RabbitConsumer {
@Autowired
BaseOrderBiz baseOrderBiz;
OrderCancelBiz orderCancelBiz;
/**
......@@ -42,7 +43,7 @@ public class RabbitConsumer {
//通知 MQ 消息已被接收,可以ACK(从队列中删除)了
channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
try {
baseOrderBiz.cancel(baseOrder);
orderCancelBiz.cancel(baseOrder);
}catch (BaseException e) {
if(ResultCode.DB_OPERATION_FAIL_CODE == e.getStatus()) {
log.info("取消操作被取消;订单id:"+ baseOrder.getId());
......
......@@ -22,6 +22,7 @@ import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderMemberDetailBiz;
import com.xxfc.platform.order.biz.OrderUserLicenseBiz;
import com.xxfc.platform.order.biz.OrderVehicalCrosstownBiz;
import com.xxfc.platform.order.biz.inner.OrderCancelBiz;
import com.xxfc.platform.order.contant.enumerate.OrderStatusEnum;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.entity.OrderUserLicense;
......@@ -70,21 +71,30 @@ public class BaseOrderController extends CommonBaseController implements UserRes
public static final Integer STATUS_SUCCESS = 1;
@Autowired
BaseOrderBiz baseOrderBiz;
@Autowired
OrderMemberDetailBiz orderMemberDetailBiz;
@Autowired
OrderUserLicenseBiz orderUserLicenseBiz;
@Autowired
OrderVehicalCrosstownBiz orderVehicalCrosstownBiz;
@Autowired
OrderCancelBiz orderCancelBiz;
@Autowired
ThirdFeign thirdFeign;
@Autowired
UserFeign userFeign;
@Resource
VehicleFeign vehicleFeign;
@Autowired
RabbitProduct rabbitProduct;
@Autowired
OrderMemberDetailBiz orderMemberDetailBiz;
@Autowired
OrderUserLicenseBiz orderUserLicenseBiz;
@Autowired
OrderVehicalCrosstownBiz orderVehicalCrosstownBiz;
RabbitProduct rabbitProduct;
@Override
public UserFeign getUserFeign() {
......@@ -420,7 +430,7 @@ public class BaseOrderController extends CommonBaseController implements UserRes
}
dbBaseOrder.setCancelReason(cancelOrderDto.getCancelReason());
baseOrderBiz.cancel(dbBaseOrder);
orderCancelBiz.cancel(dbBaseOrder);
return ObjectRestResponse.succ();
}
......
......@@ -9,6 +9,7 @@ import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageParam;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderRefundBiz;
import com.xxfc.platform.order.biz.inner.OrderCancelBiz;
import com.xxfc.platform.order.contant.enumerate.OrderTypeEnum;
import com.xxfc.platform.order.entity.OrderRefund;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
......@@ -35,6 +36,9 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
@Autowired
BaseOrderBiz baseOrderBiz;
@Autowired
OrderRefundBiz orderRefundBiz;
@Autowired
UserFeign userFeign;
......@@ -61,7 +65,7 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
switch (orderTypeEnum) {
case RENT_VEHICLE:
orderRefundAmount = baseOrderBiz.calculateRefund(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
orderRefundAmount = orderRefundBiz.calculateRefund(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
, orderPageVO.getOrderRentVehicleDetail().getStartTime() - System.currentTimeMillis()
, DictionaryKey.APP_ORDER+ "_"+ DictionaryKey.RENT_REFUND
, refundDescBuilder);
......@@ -72,7 +76,7 @@ public class OrderRefundController extends BaseController<OrderRefundBiz,OrderRe
if(SYS_TRUE.equals(orderPageVO.getOrderTourDetail().getIsOutside())) {
key = TOUR_REFUND;
}
orderRefundAmount = baseOrderBiz.calculateRefund(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
orderRefundAmount = orderRefundBiz.calculateRefund(orderPageVO.getGoodsAmount().subtract(orderPageVO.getCouponAmount())
, orderPageVO.getOrderTourDetail().getStartTime() - System.currentTimeMillis()
, DictionaryKey.APP_ORDER+ "_"+ DictionaryKey.RENT_REFUND
, refundDescBuilder);
......
package com.xxfc.platform.vehicle.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;
/**
* 用车调度申请
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
@Table(name = "vehicle_dispatch_info")
public class VehicleDispatchInfo implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "JDBC")
@ApiModelProperty("主键id")
private Integer id;
@Column(name = "account_id")
@ApiModelProperty(value = "账号id")
private Integer accountId;
@Column(name = "account_name")
@ApiModelProperty(value = "账号名称")
private String accountName;
@Column(name = "company_id")
@ApiModelProperty(value = "申请分公司id")
private Integer companyId;
@Column(name = "mode_id")
@ApiModelProperty(value = "车型id")
private Integer modeId;
@Column(name = "user")
@ApiModelProperty(value = "使用人")
private String user;
@Column(name = "user_tel")
@ApiModelProperty(value = "使用人电话")
private String userTel;
@Column(name = "start_time")
@ApiModelProperty(value = "用车开始时间" )
private Long startTime;
@Column(name = "end_time")
@ApiModelProperty(value = "用车结束时间")
private Long endTime;
@Column(name = "wish_ret_company")
@ApiModelProperty(value = "期望还车公司")
private Integer wishRetCompany;
@Column(name = "book_type")
@ApiModelProperty(value = "用途(枚举类)")
private Integer bookType;
@Column(name = "book_remark")
@ApiModelProperty(value = "用途备注")
private String bookRemark;
@Column(name = "reason")
@ApiModelProperty(value = "拒绝原因")
private String reason;
@Column(name = "status")
@ApiModelProperty(value = "状态:0-申请中;1-已通过;2-拒绝")
private Integer status;
@Column(name = "record_ids")
@ApiModelProperty(value = "预约ids(逗号隔开)")
private String recordIds;
@Column(name = "status_time")
@ApiModelProperty(value = "通过审核时间")
private Long statusTime;
@Column(name = "crt_time")
@ApiModelProperty(value = "创建时间")
private Long crtTime;
@Column(name = "upd_time")
@ApiModelProperty(value = "更新时间")
private Long updTime;
@Column(name = "isdel")
@ApiModelProperty(value = "删除状态 0:有效 1:删除")
private Integer isdel;
}
......@@ -92,4 +92,14 @@ public interface VehicleFeign {
*/
@PostMapping("/sysRegion/getSysRegionByIds")
ObjectRestResponse<List<SysRegion>> getSysRegionByIds(@RequestBody Set<Integer> ids);
/**
* 获取公司所在的城市
* @param zoneList
* @param companyList
* @return
*/
@GetMapping("/city/corporationCity")
ObjectRestResponse<Set<Integer>> corporationCity( @RequestParam(value = "zoneList") String zoneList,
@RequestParam(value = "companyList") String companyList);
}
package com.xxfc.platform.vehicle.pojo.dto;
import com.github.wxiaoqi.security.common.vo.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class VehicleDispatchInfoDto extends PageParam {
@ApiModelProperty(value = "分公司")
private List<Integer> companyList;
@ApiModelProperty(value = "状态")
private Integer status;
@ApiModelProperty(value = "预定月份")
private String dispatchMonth;
}
package com.xxfc.platform.vehicle.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* 用车调度预约记录
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
public class VehiclDispatchRecordVo {
@ApiModelProperty("主键id")
private Integer id;
@ApiModelProperty(value = "提车地点(公司)")
private Integer liftCompany;
@ApiModelProperty(value = "提车地点(公司)名称")
private String liftCompanyName;
@ApiModelProperty(value = "提车分公司联系人")
private String liftCompanyLeader;
@ApiModelProperty(value = "提车分公司联系人电话")
private String liftCompanyLeaderTel;
@ApiModelProperty(value = "实际开始日期(提车时间)")
private Date actualStartDate;
@ApiModelProperty(value = "还车地点(公司)")
private Integer retCompany;
@ApiModelProperty(value = "还车地点(公司)名称")
private String retCompanyName;
@ApiModelProperty(value = "还车分公司联系人")
private String retCompanyLeader;
@ApiModelProperty(value = "还车分公司联系人电话")
private String retCompanyLeaderTel;
@ApiModelProperty(value = "实际结束日期(还车时间)")
private Date actualEndDate;
}
package com.xxfc.platform.vehicle.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 用车调度申请
*
* @author zjw
* @email nishijjo@qq.com
* @date 2019-05-25 10:13:57
*/
@Data
public class VehicleDispatchInfoVo{
@ApiModelProperty("主键id")
private Integer id;
@ApiModelProperty(value = "账号id")
private Integer accountId;
@ApiModelProperty(value = "账号名称")
private String accountName;
@ApiModelProperty(value = "申请分公司id")
private Integer companyId;
@ApiModelProperty(value = "申请分公司名称")
private String companyName;
@ApiModelProperty(value = "车型id")
private Integer modeId;
@ApiModelProperty(value = "使用人")
private String user;
@ApiModelProperty(value = "使用人电话")
private String userTel;
@ApiModelProperty(value = "用车开始时间" )
private Long startTime;
@ApiModelProperty(value = "用车结束时间")
private Long endTime;
@ApiModelProperty(value = "期望还车公司")
private Integer wishRetCompany;
@ApiModelProperty(value = "期望还车公司名称")
private String wishRetCompanyName;
@ApiModelProperty(value = "用途(枚举类)")
private Integer bookType;
@ApiModelProperty(value = "用途备注")
private String bookRemark;
@ApiModelProperty(value = "拒绝原因")
private String reason;
@ApiModelProperty(value = "状态:0-申请中;1-已通过;2-拒绝")
private Integer status;
@ApiModelProperty(value = "预约ids(逗号隔开)")
private String recordIds;
@ApiModelProperty(value = "通过审核时间")
private Long statusTime;
@ApiModelProperty(value = "创建时间")
private Long crtTime;
@ApiModelProperty(value = "更新时间")
private Long updTime;
@ApiModelProperty(value = "删除状态 0:有效 1:删除")
private Integer isdel;
@ApiModelProperty(value = "调度申请用车详情")
List<VehiclDispatchRecordVo> dispatchRecords;
}
......@@ -42,6 +42,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -69,6 +70,9 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
@Value("${branchCompanyPic.baseUploadPath}")
private String baseUploadPath ;
@Autowired
private VehicleBiz vehicleBiz;
/**
* 按主键获取公司
* @param id
......@@ -320,4 +324,21 @@ public class BranchCompanyBiz extends BaseBiz<BranchCompanyMapper, BranchCompany
}
/**
* 通过片区片区和分公司id获取对应的城市信息
* @param zoneList
* @param companyList
* @return
*/
public Set<Integer> getCity(String zoneList, String companyList) {
List<Integer> list = vehicleBiz.dataCompany(zoneList, companyList);
Example exa =new Example(BranchCompany.class);
Example.Criteria criteria = exa.createCriteria();
criteria.andIn("id",list);
List<BranchCompany> result = mapper.selectByExample(exa);
return result.parallelStream().map(BranchCompany::getAddrCity).collect(Collectors.toSet());
}
}
package com.xxfc.platform.vehicle.biz;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.vehicle.entity.VehicleDispatchInfo;
import com.xxfc.platform.vehicle.mapper.VehicleDispatchInfoMapper;
import com.xxfc.platform.vehicle.pojo.dto.VehicleDispatchInfoDto;
import com.xxfc.platform.vehicle.pojo.vo.VehiclDispatchRecordVo;
import com.xxfc.platform.vehicle.pojo.vo.VehicleDispatchInfoVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
*车辆调度
*/
@Service
@Slf4j
public class VehicleDispatchInfoBiz extends BaseBiz<VehicleDispatchInfoMapper,VehicleDispatchInfo> {
@Autowired
UserFeign userFeign;
@Autowired
private UserAuthConfig userAuthConfig;
@Autowired
VehicleBiz vehicleBiz;
//提交调度申请表单
public ObjectRestResponse addDisspatchInfo(VehicleDispatchInfo vehicleDispatchInfo){
if (vehicleDispatchInfo==null){
return ObjectRestResponse.createFailedResult(ResultCode.NULL_CODE, "参数为空");
}
insertSelective(vehicleDispatchInfo);
return ObjectRestResponse.succ();
}
//获取申请列表
public ObjectRestResponse getInfoList(VehicleDispatchInfoDto dispatchInfoDto, HttpServletRequest request){
UserDTO userDTO = userFeign.userinfoByToken(userAuthConfig.getToken(request)).getData();
List<VehicleDispatchInfoVo> list=new ArrayList<>();
Integer pageSize=dispatchInfoDto.getPage()==null?1:dispatchInfoDto.getPage();
Integer pageNo=dispatchInfoDto.getPage()==null?10:dispatchInfoDto.getLimit();
if (userDTO != null) {
List<Integer> companyList=new ArrayList<>();
if (userDTO.getDataAll() == 1) {
companyList=dispatchInfoDto.getCompanyList();
}else {
companyList = vehicleBiz.dataCompany(userDTO.getDataZone(), userDTO.getDataCompany());
}
dispatchInfoDto.setCompanyList(companyList);
list=mapper.getInfoList(dispatchInfoDto);
if (list.size()>0){
for (VehicleDispatchInfoVo vehicleDispatchInfoVo:list){
String recordIds=vehicleDispatchInfoVo.getRecordIds();
if (StringUtils.isBlank(recordIds)){
continue;
}
String[] ids=recordIds.split(",");
List<VehiclDispatchRecordVo> recordVos= mapper.getRecordList(Arrays.asList(ids));
if (recordVos.size()>0) {
vehicleDispatchInfoVo.setDispatchRecords(recordVos);
}
}
}
}
PageHelper.startPage(pageNo,pageSize);
PageInfo<VehicleDispatchInfoVo> pageInfo = new PageInfo<>(list);
return ObjectRestResponse.succ(PageDataVO.pageInfo(pageInfo));
}
}
package com.xxfc.platform.vehicle.mapper;
import com.xxfc.platform.vehicle.entity.VehicleDispatchInfo;
import com.xxfc.platform.vehicle.pojo.dto.VehicleDispatchInfoDto;
import com.xxfc.platform.vehicle.pojo.vo.VehiclDispatchRecordVo;
import com.xxfc.platform.vehicle.pojo.vo.VehicleDispatchInfoVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface VehicleDispatchInfoMapper extends Mapper<VehicleDispatchInfo> {
//获取调度申请列表
List<VehicleDispatchInfoVo> getInfoList(VehicleDispatchInfoDto vehicleDispatchInfoDto);
//获取调度申请用车详情列表
List<VehiclDispatchRecordVo> getRecordList(@Param("recordIds")List<String> recordIds);
}
\ No newline at end of file
......@@ -100,7 +100,7 @@ public class SysRegionController extends BaseController<SysRegionBiz> {
* @return
*/
@PostMapping("/getSysRegionByIds")
ObjectRestResponse<List<SysRegion>> getSysRegionByIds(@RequestBody Set<Integer> ids){
public ObjectRestResponse<List<SysRegion>> getSysRegionByIds(@RequestBody Set<Integer> ids){
Example exam = Example.builder(SysRegion.class)
.where(WeekendSqls.<SysRegion>custom()
.andIn(SysRegion::getId,ids)
......
package com.xxfc.platform.vehicle.rest;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
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.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Maps;
import com.xxfc.platform.vehicle.biz.*;
import com.xxfc.platform.vehicle.common.BaseController;
import com.xxfc.platform.vehicle.common.CustomIllegalParamException;
import com.xxfc.platform.vehicle.common.RestResponse;
import com.xxfc.platform.vehicle.constant.BookType;
import com.xxfc.platform.vehicle.constant.ResCode.ResCode;
import com.xxfc.platform.vehicle.constant.VehicleBookRecordStatus;
import com.xxfc.platform.vehicle.entity.Vehicle;
import com.xxfc.platform.vehicle.entity.VehicleBookInfo;
import com.xxfc.platform.vehicle.entity.VehicleBookRecord;
import com.xxfc.platform.vehicle.entity.VehicleDispatchInfo;
import com.xxfc.platform.vehicle.pojo.*;
import com.xxfc.platform.vehicle.pojo.dto.VehicleDispatchInfoDto;
import com.xxfc.platform.vehicle.pojo.dto.VehiclePlanDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP;
import static com.xxfc.platform.vehicle.constant.VehicleConstant.USER_APP_NAME;
@RestController
@RequestMapping("dispatch")
@Slf4j
@IgnoreClientToken
@Api(value="用车调度申请controller",tags={"用车调度申请接口"})
public class VehicleDispatchController extends BaseController<VehicleDispatchInfoBiz> {
@GetMapping("page")
@ApiModelProperty("获取申请列表")
public ObjectRestResponse page(@RequestBody VehicleDispatchInfoDto dispatchInfoDto, HttpServletRequest request){
return baseBiz.getInfoList(dispatchInfoDto,request);
}
@PostMapping("edit")
@ApiModelProperty("获取申请列表")
public ObjectRestResponse edit(@RequestBody VehicleDispatchInfo dispatchInfo){
return baseBiz.addDisspatchInfo(dispatchInfo);
}
}
package com.xxfc.platform.vehicle.rest.admin;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.xxfc.platform.vehicle.biz.BranchCompanyBiz;
import com.xxfc.platform.vehicle.biz.VehicleBiz;
import com.xxfc.platform.vehicle.common.BaseController;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Set;
/**
* 获取公司所在的城市
*
* @author Administrator
*/
@Slf4j
@RestController
@RequestMapping("/city")
public class CityController extends BaseController<VehicleBiz> {
@Autowired
private BranchCompanyBiz branchCompanyBiz;
/**
* 获取公司所在的城市
*
* @param zoneList
* @param companyList
* @return
*/
@GetMapping("/corporationCity")
public ObjectRestResponse<Set<Integer>> corporationCity(
@RequestParam("zoneList") String zoneList,
@RequestParam("companyList") String companyList) {
return ObjectRestResponse.succ(branchCompanyBiz.getCity(zoneList,companyList));
}
}
<?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.vehicle.mapper.VehicleDispatchInfoMapper" >
<!-- 获取调度申请列表-->
<select id="getInfoList" parameterType="com.xxfc.platform.vehicle.pojo.dto.VehicleDispatchInfoDto"
resultType="com.xxfc.platform.vehicle.pojo.vo.VehicleDispatchInfoVo">
SELECT
DISTINCT
i.id,
i.company_id as companyId,
c.`name` as companyName,
i.mode_id as modeId,
i.`user`,
i.user_tel as userTel,
i.start_time as startTime,
i.end_time as endTime,
i.wish_ret_company as wishRetCompany,
c1.`name` as wishRetCompanyName,
i.book_type as bookType,
i.book_remark as bookRemark,
i.reason,
i.`status`,
i.record_ids as recordIds,
i.status_time as statusTime,
i.crt_time as crtTime,
i.upd_time as updTime
FROM vehicle_dispatch_info i
LEFT JOIN branch_company c ON i.company_id=c.id
LEFT JOIN branch_company c1 ON i.company_id=c1.id
<where>
i.is_del=0
<if test="companyList != null">
and i.company_id in (
<trim suffixOverrides=",">
<foreach collection="companyList" item="companyId">
#{companyId},
</foreach>
</trim>
)
</if>
<if test="status !=null">
and i.status = #{status}
</if>
</where>
order by i.crt_time desc
</select>
<!-- 获取调度申请用车详情列表-->
<select id="getRecordList" resultType="com.xxfc.platform.vehicle.pojo.vo.VehiclDispatchRecordVo">
SELECT
DISTINCT
r.id,
r.lift_company as liftCompany,
c.`name` as liftCompanyName,
c.leader as liftCompanyLeader,
c.leader_contact_info as liftCompanyLeaderTel,
r.actual_start_date as actualStartDate,
r.ret_company as retCompany,
c1.`name` as retCompanyName,
c1.leader as retCompanyLeader,
c1.leader_contact_info as retCompanyLeaderTel,
r.actual_end_date as actualEndDate
FROM vehicle_book_record r
LEFT JOIN branch_company c ON r.lift_company=c.id
LEFT JOIN branch_company c1 ON r.ret_company=c1.id
<where>
r.id in (
<trim suffixOverrides=",">
<foreach collection="recordIds" item="id">
#{id},
</foreach>
</trim>
)
</where>
order by i.actual_start_date
</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