package com.stylefeng.guns.modular.CharteredCar.server.impl;
|
|
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
import com.stylefeng.guns.core.util.ToolUtil;
|
import com.stylefeng.guns.modular.CharteredCar.dao.OrderCharteredCarMapper;
|
import com.stylefeng.guns.modular.CharteredCar.model.OrderCharteredCar;
|
import com.stylefeng.guns.modular.CharteredCar.server.IOrderCharteredCarService;
|
import com.stylefeng.guns.modular.system.dao.SensitiveWordsMapper;
|
import com.stylefeng.guns.modular.system.model.Company;
|
import com.stylefeng.guns.modular.system.model.OrderCancel;
|
import com.stylefeng.guns.modular.system.model.SensitiveWords;
|
import com.stylefeng.guns.modular.system.model.UserInfo;
|
import com.stylefeng.guns.modular.system.service.ICompanyCityService;
|
import com.stylefeng.guns.modular.system.service.IOrderCancelService;
|
import com.stylefeng.guns.modular.system.service.ISystemNoticeService;
|
import com.stylefeng.guns.modular.system.util.DateUtil;
|
import com.stylefeng.guns.modular.system.util.ResultUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
|
@Service
|
public class OrderCharteredCarServiceImpl extends ServiceImpl<OrderCharteredCarMapper, OrderCharteredCar> implements IOrderCharteredCarService {
|
|
@Resource
|
private OrderCharteredCarMapper orderCharteredCarMapper;
|
|
@Resource
|
private SensitiveWordsMapper sensitiveWordsMapper;
|
|
@Autowired
|
private ICompanyCityService companyCityService;
|
|
@Autowired
|
private DateUtil dateUtil;
|
|
@Autowired
|
private IOrderCancelService orderCancelService;
|
|
@Autowired
|
private ISystemNoticeService systemNoticeService;
|
|
|
|
/**
|
* 保存数据
|
* @param carTime
|
* @param modelUse
|
* @param peopleNumber
|
* @param contactPerson
|
* @param contactPhone
|
* @param uid
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public ResultUtil orderCharteredCar(Date travelTime, Integer carTime, Integer serverCarModelId, String modelUse, Integer peopleNumber,
|
String contactPerson, String contactPhone, String placeLonLat, Integer uid, Integer language) throws Exception {
|
OrderCharteredCar orderCharteredCar = new OrderCharteredCar();
|
orderCharteredCar.setUserId(uid);
|
Company query = companyCityService.query1(uid, placeLonLat.split(",")[0], placeLonLat.split(",")[1]);
|
if(null == query){
|
return ResultUtil.error(language == 1 ? "该地点暂无企业服务" : language == 2 ? "No service yet at this area" : "Pas encore de service dans cette zone");
|
}
|
orderCharteredCar.setCompanyId(query.getId());
|
orderCharteredCar.setOrderNumber(this.getOrderNum());
|
orderCharteredCar.setTraveltime(travelTime);
|
orderCharteredCar.setCarTime(carTime);
|
orderCharteredCar.setServerCarModelId(serverCarModelId);
|
orderCharteredCar.setModelUse(modelUse);
|
orderCharteredCar.setPeopleNumber(peopleNumber);
|
orderCharteredCar.setContactPerson(contactPerson);
|
orderCharteredCar.setState(1);
|
orderCharteredCar.setIsDelete(1);
|
orderCharteredCar.setInsertTime(new Date());
|
this.insert(orderCharteredCar);
|
return ResultUtil.success();
|
}
|
|
|
/**
|
* 获取个人中心订单列表
|
* @param uid
|
* @param pageNum
|
* @param size
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public List<Map<String, Object>> queryMyOrderList(Integer language, Integer uid, Integer pageNum, Integer size) throws Exception {
|
pageNum = (pageNum - 1) * size;
|
List<Map<String, Object>> maps = orderCharteredCarMapper.queryMyOrderList(language, uid, pageNum, size);
|
for (Map<String, Object> map : maps) {
|
if(null != map.get("orderTime")){
|
String orderTime = map.get("orderTime").toString();
|
map.put("orderTime", DateUtil.conversionFormat(language, orderTime));
|
}
|
if(null != map.get("time")){
|
String time = map.get("time").toString();
|
map.put("time", DateUtil.conversionFormat(language, time));
|
}
|
}
|
return maps;
|
}
|
|
|
@Override
|
public ResultUtil addCancle(Integer id, String reason, String remark, Integer uid, Integer language) throws Exception {
|
if(ToolUtil.isNotEmpty(remark)){
|
if(ToolUtil.isNotEmpty(remark)){
|
List<SensitiveWords> sensitiveWords = sensitiveWordsMapper.selectList(null);
|
List<String> list = Arrays.asList(remark.split(" "));
|
for(SensitiveWords s : sensitiveWords){
|
List<String> str = new ArrayList<>();
|
String lowerCase = s.getContent().toLowerCase();
|
for (String s1 : list) {
|
if(lowerCase.equals(s1.toLowerCase())){
|
str.add("***");
|
}else{
|
str.add(s1);
|
}
|
}
|
list = str;
|
}
|
remark = list.stream().collect(Collectors.joining(" "));
|
}
|
}
|
|
OrderCharteredCar orderCharteredCar = this.selectById(id);
|
if(null == orderCharteredCar){
|
return ResultUtil.error(language == 1 ? "取消订单失败,订单信息有误" : language == 2 ? "Failed to cancel order, order-information error." : "Échec de l’annulation de la commande, erreur d’information de commande.");
|
}
|
if(orderCharteredCar.getState() != 1){
|
return ResultUtil.error(language == 1 ? "取消订单失败,不合法的操作" : language == 2 ? "Failed to cancel order, illegal operation." : "Échec de l’annulation de la commande, opération illégale.");
|
}
|
|
OrderCancel orderCancel = new OrderCancel();
|
orderCancel.setOrderId(id);
|
orderCancel.setOrderType(6);
|
orderCancel.setReason(reason);
|
orderCancel.setRemark(remark);
|
orderCancel.setState(2);
|
orderCancel.setInsertTime(new Date());
|
orderCancel.setUserType(1);
|
orderCancelService.insert(orderCancel);
|
orderCharteredCar.setState(3);
|
this.updateById(orderCharteredCar);
|
|
//添加消息
|
systemNoticeService.addSystemNotice(1, "您已成功取消旅游包车订单,谢谢使用!", orderCharteredCar.getUserId(), 1);
|
Map<String, Object> map = new HashMap<>();
|
map.put("id", orderCancel.getId());
|
return ResultUtil.success(map);
|
}
|
|
|
|
|
public synchronized String getOrderNum() throws Exception{
|
int size = this.selectCount(null);
|
return "CHARTERED" + String.valueOf(1000000 + size + 1).substring(1);
|
}
|
}
|