Commit 93872d24 by huluobin

修改订单完整度算法

parent 06f457ed
......@@ -38,10 +38,7 @@ import com.gogirl.infrastructure.mapper.product.serve.BaseServeMapper;
import com.gogirl.infrastructure.mapper.product.serve.BaseTypeMapper;
import com.gogirl.infrastructure.mapper.product.serve.ProducePromotionTimeMapper;
import com.gogirl.infrastructure.mapper.store.store.StoreTechnicianMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerBalanceRecordMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerDetailMapper;
import com.gogirl.infrastructure.mapper.user.customer.CustomerMessageMapper;
import com.gogirl.infrastructure.mapper.user.customer.*;
import com.gogirl.infrastructure.service.push.PushMsgService;
import com.gogirl.shared.member.CreateCommentCommand;
import com.gogirl.shared.member.OrderCommentCommand;
......@@ -1122,69 +1119,64 @@ public class OrderManageServiceImpl extends ServiceImpl<OrderManageMapper, Order
@Resource
CustomerDetailMapper customerDetailMapper;
@Resource
CustomerMapper customerMapper;
@Override
public Double countOrderDataRate(Integer orderId) {
double dataRate = 0;
Map<Integer, Double> dataRateMap = new HashMap<>();
//补录信息
dataRateMap.put(1, 16.67d);
//客照
dataRateMap.put(2, 16.67d);
//用户是否接受开卡推荐
dataRateMap.put(3, 16.67d);
//姓名
dataRateMap.put(4, 16.67d);
//偏好
dataRateMap.put(5, 16.67d);
//客户来源
dataRateMap.put(6, 16.65d);
double dataRate = 0d;
OrderManage orderManage = orderManageMapper.selectById(orderId);
Customer customer = customerService.getById(orderManage.getOrderUser());
CustomerDetail customerDetail = customerDetailMapper.selectOne(new LambdaQueryWrapper<CustomerDetail>()
.eq(CustomerDetail::getCustomerId, customer.getId()));
List<OrderServe> orderServeList = orderServeMapper.selectList(new LambdaQueryWrapper<OrderServe>()
.eq(OrderServe::getOrderId, orderId));
if (customerDetail != null) {
if (StringUtils.isNotEmpty(customerDetail.getAgeGroup()) && !customerDetail.getAgeGroup().equals("undefine")) {
dataRate += 10;
}
if (customerDetail.getJob() != null && !customerDetail.getJob().isEmpty()) {
dataRate += 10;
}
if (customerDetail.getPreference() != null && !customerDetail.getPreference().isEmpty()) {
dataRate += 10;
}
if (customerDetail.getCharacter() != null && !customerDetail.getCharacter().isEmpty()) {
dataRate += 10;
}
List<OrderRecord> orderRecordList = orderRecordMapper.selectList(new LambdaQueryWrapper<OrderRecord>()
.eq(OrderRecord::getOrderId, orderId));
CustomerDetail customerDetail = customerDetailMapper.selectOne(new LambdaQueryWrapper<CustomerDetail>().eq(CustomerDetail::getCustomerId, orderManage.getOrderUser()));
Customer customer = customerMapper.selectById(orderManage.getOrderUser());
if (orderRecordList.size() == orderServeList.size()) {
dataRate = dataRate + dataRateMap.get(1);
}
if (orderId != null) {
List<OrderServe> orderServeList = orderServeMapper.selectList(new LambdaQueryWrapper<OrderServe>()
.eq(OrderServe::getOrderId, orderId));
if (ListUtil.isNotEmpty(orderServeList)) {
String userFeedback = null;
String technicianFeedback = null;
String picturePath = null;
for (OrderServe orderServe : orderServeList) {
if (orderServe != null) {
OrderRecord orderRecord = orderRecordMapper.selectOne(
new LambdaQueryWrapper<OrderRecord>().eq(OrderRecord::getOrderServeId, orderServe.getId())
);
if (orderRecord != null) {
if (orderRecord.getUserFeedback() != null && !orderRecord.getUserFeedback().isEmpty()) {
userFeedback = orderRecord.getUserFeedback();
}
if (orderRecord.getTechnicianFeedback() != null && !orderRecord.getTechnicianFeedback().isEmpty()) {
technicianFeedback = orderRecord.getTechnicianFeedback();
}
if (orderRecord.getPicturePath() != null && !orderRecord.getPicturePath().isEmpty()) {
picturePath = orderRecord.getPicturePath();
}
}
}
}
if (userFeedback != null) {
dataRate += 10;
}
if (technicianFeedback != null) {
dataRate += 10;
}
if (picturePath != null) {
dataRate += 40;
}
}
if (ListUtil.isNotEmpty(orderRecordList.stream().map(orderRecord -> Lists.newArrayList(orderRecord.getPicturePath().split(","))).flatMap(List::stream).collect(Collectors.toList()))) {
dataRate = dataRate + dataRateMap.get(2);
}
if (StringUtils.isNotEmpty(orderManage.getAfterSaleIsBuyCard())) {
dataRate = dataRate + dataRateMap.get(3);
}
if (StringUtils.isNotEmpty(orderManage.getStoreScheduleUsername())) {
dataRate = dataRate + dataRateMap.get(4);
}
if (StringUtils.isNotEmpty(customerDetail.getPreference())) {
dataRate = dataRate + dataRateMap.get(5);
}
if (customer.getCustomerSource() != null) {
dataRate = dataRate + dataRateMap.get(6);
}
return dataRate;
}
/**
......
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