package com.stylefeng.guns.modular.system.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.system.model.DriverRankVo; import com.stylefeng.guns.modular.system.model.TCompany; import com.stylefeng.guns.modular.system.model.TOrderPrivateCar; import com.stylefeng.guns.modular.system.dao.TOrderPrivateCarMapper; import com.stylefeng.guns.modular.system.model.TServerCarmodel; import com.stylefeng.guns.modular.system.service.ITCompanyService; import com.stylefeng.guns.modular.system.service.ITOrderPrivateCarService; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.modular.system.service.ITServerCarmodelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.*; import java.util.stream.Collectors; /** *

* 订单-快车 服务实现类 *

* * @author 吕雪 * @since 2020-09-02 */ @Service public class TOrderPrivateCarServiceImpl extends ServiceImpl implements ITOrderPrivateCarService { @Autowired private ITServerCarmodelService serverCarmodelService; @Autowired private ITCompanyService companyService; @Override public List> getPrivateCarOrderList(Page> page, String beginTime, String endTime, Integer roleType, Integer nowUserId, String orderNum, Integer orderSource, String userName, String userPhone, String passengers, String passengersPhone, Integer serverCarModelId, String driver, Integer state, Integer rideType, Integer abnormal, Integer promotion, String promotionUser, Integer abnormalStatus, Integer payType, String travelId) { List> privateCarOrderList = this.baseMapper.getPrivateCarOrderList(page, beginTime, endTime, roleType, nowUserId, orderNum, orderSource, userName, userPhone, passengers, passengersPhone, serverCarModelId, driver, state, rideType, abnormal, promotion, promotionUser,abnormalStatus, payType, travelId); for (Map map : privateCarOrderList) { if(null == map.get("serverCarModelName")){ JSONArray jsonArray = JSON.parseArray(map.get("serverCarModel").toString()); Set ids = new HashSet<>(); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); ids.add(jsonObject.getInteger("serverCarModelId")); } List serverCarmodels = serverCarmodelService.selectBatchIds(ids); String collect = serverCarmodels.stream().map(TServerCarmodel::getName).collect(Collectors.joining("
")); if(ids.contains(0)){ collect += ToolUtil.isNotEmpty(collect) ? "
出租车" : "出租车"; } map.put("serverCarModelName", collect); } if(null != map.get("companyId")){ TCompany company = companyService.selectById(map.get("companyId").toString()); if(company!=null){ map.put("companyName", company.getName()); } } } return privateCarOrderList; } @Override public List> getPrivateCarOrderListExport(Page> page, String beginTime, String endTime, Integer roleType, Integer nowUserId, String orderNum, Integer orderSource, String userName, String userPhone, String passengers, String passengersPhone, Integer serverCarModelId, String driver, Integer state, Integer rideType, Integer abnormal, Integer promotion, String promotionUser, Integer abnormalStatus, String travelId) { List> privateCarOrderList = this.baseMapper.getPrivateCarOrderListExport(beginTime, endTime, roleType, nowUserId, orderNum, orderSource, userName, userPhone, passengers, passengersPhone, serverCarModelId, driver, state, rideType, abnormal, promotion, promotionUser,abnormalStatus, travelId); for (Map map : privateCarOrderList) { if(null == map.get("serverCarModelName")){ JSONArray jsonArray = JSON.parseArray(map.get("serverCarModel").toString()); Set ids = new HashSet<>(); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); ids.add(jsonObject.getInteger("serverCarModelId")); } List serverCarmodels = serverCarmodelService.selectBatchIds(ids); String collect = serverCarmodels.stream().map(TServerCarmodel::getName).collect(Collectors.joining("
")); if(ids.contains(0)){ collect += ToolUtil.isNotEmpty(collect) ? "
出租车" : "出租车"; } map.put("serverCarModelName", collect); } if(null != map.get("companyId")){ TCompany company = companyService.selectById(map.get("companyId").toString()); if(company!=null){ map.put("companyName", company.getName()); } } } return privateCarOrderList; } @Override public Map getPrivateCarOrderDetailById(Integer orderId) { return this.baseMapper.getPrivateCarOrderDetailById(orderId); } @Override public List> getSurcharge(Object id, Integer orderType) { return this.baseMapper.getSurcharge(id,orderType); } @Override public List> promotionInfo(Page> page, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId,Integer driverId,Integer activityId) { return this.baseMapper.promotionInfo(page, beginTime, endTime, orderNum, userName, name, driverName, roleType, objectId,driverId,activityId); } @Override public List> promotionInfoExport(Object o, String beginTime, String endTime, String orderNum, String userName, String name, String driverName, Integer roleType, Integer objectId,Integer driverId,Integer activityId) { return this.baseMapper.promotionInfoExport(beginTime, endTime, orderNum, userName, name, driverName, roleType, objectId,driverId,activityId); } @Override public List getDriverPromotionActivity(Integer id, String driverName) { return this.baseMapper.getDriverPromotionActivity(id, driverName); } }