Commit 2ec67b40 authored by jiaorz's avatar jiaorz

1

parent 78153632
package com.xxfc.platform.order.biz;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
import com.github.wxiaoqi.security.admin.feign.dto.UserDTO;
import com.github.wxiaoqi.security.admin.feign.rest.UserRestInterface;
import com.github.wxiaoqi.security.common.biz.BaseBiz;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.util.Query;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.xxfc.platform.order.entity.BaseOrder;
import com.xxfc.platform.order.mapper.BaseOrderMapper;
import com.xxfc.platform.order.pojo.order.OrderListVo;
import com.xxfc.platform.order.rest.BaseOrderController;
import com.xxfc.platform.tour.entity.TourUser;
import com.xxfc.platform.tour.feign.TourFeign;
import com.xxfc.platform.vehicle.entity.BranchCompany;
import com.xxfc.platform.vehicle.feign.VehicleFeign;
import com.xxfc.platform.vehicle.pojo.CompanyDetail;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Service
@Slf4j
public class BackgroundBaseOrderBiz extends BaseBiz<BaseOrderMapper, BaseOrder> implements UserRestInterface {
@Autowired
UserFeign userFeign;
@Autowired
VehicleFeign vehicleFeign;
@Autowired
TourFeign tourFeign;
@Override
public UserFeign getUserFeign() {
return userFeign;
}
public ObjectRestResponse getAllOrderList(BaseOrderController.QueryOrderList dto) {
//判断token是否存在
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.succ(new PageDataVO<>());
}
//获取权限公司列表
List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone());
List<Integer> companyId = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList());
dto.setCompanyIds(companyId);
//大区搜索
if (dto.getZoneId() != null) {
if (userDTO.getDataAll() != 1 && !dto.getZoneId().equals(userDTO.getZoneId())) {
return ObjectRestResponse.succ(new PageDataVO<>());
} else {
ArrayList<Integer> zoneIds = new ArrayList<>();
zoneIds.add(dto.getZoneId());
dto.setZoneIds(zoneIds);
}
}
//所属公司筛选
if (dto.getStartCompanyId() != null) {
if (userDTO.getDataAll() != 1 && !dto.getStartCompanyId().equals(userDTO.getId())) {
return ObjectRestResponse.succ(new PageDataVO<>());
} else {
ArrayList<Integer> companyIds = new ArrayList<>();
companyIds.add(dto.getStartCompanyId());
dto.setCompanyIds(companyIds);
}
}
if (dto.getStartTime() != null) {
if (dto.getEndTime() == null) {
dto.setEndTime(new Date().getTime());
}
}
Query query = new Query(dto);
PageDataVO pageDataVO = PageDataVO.pageInfo(query, () -> mapper.getAllOrderList(query.getSuper()));
List<OrderListVo> list = pageDataVO.getData();
if(list != null && list.size() > 0 && dto.getType() == 2) {
for (OrderListVo orderPageVO : list) {
if (dto.getType() == 2) {
if (orderPageVO.getOrderTourDetail() != null && orderPageVO.getOrderTourDetail().getStartCompanyId() != null) {
ObjectRestResponse<CompanyDetail> startResponse = vehicleFeign.getCompanyDetail(orderPageVO.getOrderTourDetail().getStartCompanyId());
if (startResponse.getData() != null) {
orderPageVO.setStartCompanyName(startResponse.getData().getName());
}
if (StringUtils.isNotBlank(orderPageVO.getOrderTourDetail().getTourUserIds())) {
List<TourUser> tourUsers = tourFeign.getTourUsers(orderPageVO.getOrderTourDetail().getTourUserIds()).getData();
orderPageVO.getOrderTourDetail().setUserVoList(tourUsers == null || tourUsers.size() <= 0 ? new ArrayList<>() : tourUsers);
}
}
}
}
}
return ObjectRestResponse.succ(pageDataVO);
}
}
......@@ -5,10 +5,8 @@ import com.xxfc.platform.order.pojo.dto.MemberOrderBo;
import com.xxfc.platform.order.pojo.dto.MemberOrderFindDTO;
import com.xxfc.platform.order.pojo.order.OrderListVo;
import com.xxfc.platform.order.pojo.order.OrderPageVO;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
......@@ -37,4 +35,7 @@ public interface BaseOrderMapper extends Mapper<BaseOrder> {
List<MemberOrderBo> findMemberOrders(MemberOrderFindDTO memberOrderFindDTO);
public List<OrderListVo> getAllOrderList(Map<String, Object> paramMap);
}
......@@ -3,8 +3,6 @@ package com.xxfc.platform.order.rest;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.druid.sql.visitor.functions.If;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.wxiaoqi.security.admin.entity.AppUserLogin;
import com.github.wxiaoqi.security.admin.feign.UserFeign;
......@@ -23,14 +21,10 @@ import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.google.common.collect.Lists;
import com.xxfc.platform.activity.entity.Coupon;
import com.xxfc.platform.activity.feign.ActivityFeign;
import com.xxfc.platform.order.biz.BaseOrderBiz;
import com.xxfc.platform.order.biz.OrderItemBiz;
import com.xxfc.platform.order.biz.OrderRentVehicleBiz;
import com.xxfc.platform.order.biz.OrderUserLicenseBiz;
import com.xxfc.platform.order.biz.*;
import com.xxfc.platform.order.contant.enumerate.ItemTypeEnum;
import com.xxfc.platform.order.entity.OrderItem;
import com.xxfc.platform.order.entity.OrderRentVehicleDetail;
import com.xxfc.platform.order.pojo.DetailsOfExpenses;
import com.xxfc.platform.order.pojo.OrderAccompanyDTO;
import com.xxfc.platform.order.pojo.order.*;
import com.xxfc.platform.order.pojo.price.RentVehiclePriceVO;
......@@ -50,13 +44,11 @@ import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.mockito.internal.util.collections.Sets;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.io.IOException;
......@@ -103,7 +95,8 @@ public class BackStageOrderController extends CommonBaseController implements Us
@Resource
VehicleFeign vehicleFeign;
@Autowired
BackgroundBaseOrderBiz backgroundBaseOrderBiz;
@Override
public UserFeign getUserFeign() {
return userFeign;
......@@ -115,11 +108,11 @@ public class BackStageOrderController extends CommonBaseController implements Us
@IgnoreClientToken
@CrossOrigin
public ObjectRestResponse<PageDataVO<OrderListVo>> selectByUser(BaseOrderController.QueryOrderList dto) {
if (dto.getStartTime() != null) {
if (dto.getEndTime() == null) {
dto.setEndTime(new Date().getTime());
}
}
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.succ(new PageDataVO<>());
}
if (StringUtils.isNotBlank(dto.getPhone()) || StringUtils.isNotBlank(dto.getRealName())) {
List<AppUserLogin> appUserLoins = userFeign.getOne(dto.getPhone(), dto.getRealName());
if (CollectionUtil.isNotEmpty(appUserLoins)) {
......@@ -129,18 +122,11 @@ public class BackStageOrderController extends CommonBaseController implements Us
return ObjectRestResponse.succ(new PageDataVO<>());
}
}
UserDTO userDTO = getAdminUserInfo();
if (userDTO == null) {
return ObjectRestResponse.succ(new PageDataVO<>());
}
if (dto.getType() != null && dto.getType() != 3) {
List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone());
List<Integer> companyIds = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList());
dto.setCompanyIds(companyIds);
}
//获取权限公司列表
List<BranchCompany> branchCompanies = vehicleFeign.companyAll(userDTO.getDataAll(), userDTO.getDataCompany(), userDTO.getDataZone());
List<Integer> companyId = branchCompanies.stream().map(BranchCompany::getId).collect(Collectors.toList());
dto.setCompanyIds(companyId);
//大区搜索
if (dto.getZoneId() != null) {
if (userDTO.getDataAll() != 1 && !dto.getZoneId().equals(userDTO.getZoneId())) {
return ObjectRestResponse.succ(new PageDataVO<>());
......@@ -150,7 +136,7 @@ public class BackStageOrderController extends CommonBaseController implements Us
dto.setZoneIds(zoneIds);
}
}
//所属公司筛选
if (dto.getStartCompanyId() != null) {
if (userDTO.getDataAll() != 1 && !dto.getStartCompanyId().equals(userDTO.getId())) {
return ObjectRestResponse.succ(new PageDataVO<>());
......@@ -161,12 +147,18 @@ public class BackStageOrderController extends CommonBaseController implements Us
}
}
//根据车牌号或车辆编号获取订单信息
if (StringUtils.isNotEmpty(dto.getPlateNumber()) || StringUtils.isNotEmpty(dto.getVehicleCode())) {
List<String> vehicleIds = vehicleFeign.findbyPlateNumberAndVehicleCod(dto.getPlateNumber(), dto.getVehicleCode());
dto.setVehicleIds(vehicleIds);
}
Query query = new Query(dto);
//
if (dto.getStartTime() != null) {
if (dto.getEndTime() == null) {
dto.setEndTime(new Date().getTime());
}
}
Query query = new Query(dto);
PageDataVO pageDataVO = PageDataVO.pageInfo(query, () -> baseOrderBiz.listOrder(query.getSuper()));
List<OrderListVo> list = pageDataVO.getData();
......@@ -442,6 +434,12 @@ public class BackStageOrderController extends CommonBaseController implements Us
return baseOrderBiz.save(orderRentVehicleDetail);
}
@GetMapping(value = "/getAll")
@ResponseBody
public ObjectRestResponse getAllOrderList(BaseOrderController.QueryOrderList dto) {
return backgroundBaseOrderBiz.getAllOrderList(dto);
}
@Data
public static class ChangeVehicleDTO {
String no;
......
......@@ -169,7 +169,7 @@
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
or t.start_company_id in
or t.end_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
......@@ -237,6 +237,80 @@
</if>
</select>
<select id="getAllOrderList" parameterType="Map" resultMap="orderPageMap">
SELECT bc1.`name` as startCompanyName, bc2.name as endCompanyName, v1.number_plate as vehicleNumberPlat, a1.name as realName,a2.username as telephone, b1.* from base_order b1
LEFT JOIN order_rent_vehicle_detail o1 on b1.detail_id = o1.id
<!--开始公司-->
LEFT JOIN vehicle.branch_company bc1 on bc1.id = o1.start_company_id
<!--结束公司-->
LEFT JOIN vehicle.branch_company bc2 ON bc2.id = o1.end_company_id
<!--车辆信息-->
LEFT JOIN vehicle.vehicle v1 on v1.id = o1.vehicle_id
<!--获取用户真实姓名-->
LEFT JOIN xxfc_third_platform.id_information a1 on b1.user_id = a1.user_login_id
<!--获取用户手机号-->
LEFT JOIN ag_admin_v1.app_user_login a2 on a2.id = b1.user_id
<where>
<if test="userIds != null and userIds.size() > 0">
and b1.user_id in
<foreach collection="userIds" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="phone != null and phone != ''">
and a2.username like CONCAT ("%", #{phone}, "%")
</if>
<if test="realName != null and realName != ''">
and a1.name like CONCAT ("%", #{realName}, "%")
</if>
<if test="userId != null">
and b1.user_id = #{userId}
</if>
<if test="status != null">
and b1.status = #{status}
</if>
<if test="type != null">
and b1.type = #{type}
</if>
<if test="no != null and no != '' ">
and b1.no like CONCAT ("%", #{no}, "%")
</if>
<if test="startTime != null">
and (r.start_time between #{startTime} and #{endTime}
or t.start_time between #{startTime} and #{endTime})
</if>
<if test="vehicleIds != null and vehicleIds.size() > 0">
AND r.vehicle_id IN
<foreach collection="vehicleIds" item="vehicleId" open="(" close=")" separator=",">
#{vehicleId}
</foreach>
</if>
<if test="companyIds != null and companyIds.size > 0">
and (o1.start_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
or o1.end_company_id in
<foreach collection="companyIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
)
</if>
<if test="zoneIds != null and zoneIds.size > 0">
and (r.start_zone_id in
<foreach collection="zoneIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
or t.start_zone_id in
<foreach collection="zoneIds" item="id" open="(" separator="," close=")">
#{id}
</foreach>
)
</if>
</where>
order by b.crt_time desc
</select>
<select id="getTourList" parameterType="Map" resultMap="orderPageMap">
select b.*
......
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