Authored by chenchao

optimized

... ... @@ -15,7 +15,6 @@ import com.yohoufo.order.charge.model.*;
import com.yohoufo.order.charge.promotion.PromotionService;
import com.yohoufo.order.model.response.ShoppingPromotion;
import com.yohoufo.order.service.support.DeliveryWayCostSupport;
import com.yohoufo.order.service.support.ShoppingSupport;
import com.yohoufo.order.utils.LoggerUtils;
import com.yohoufo.order.utils.MathUtils;
import org.apache.commons.collections.CollectionUtils;
... ... @@ -43,8 +42,6 @@ public class ChargeService {
@Autowired
private DeliveryWayCostSupport deliveryWayCostSupport;
@Autowired
private ShoppingSupport shoppingSupport;
@Autowired
private CouponService couponService;
... ...
... ... @@ -1680,17 +1680,18 @@ public class AppraiseService {
}
private BigDecimal getSaleIncome(Integer sellerUid, Integer skup) {
SellerOrderMeta meta = sellerOrderMetaMapper.selectByMetaKey(sellerUid, skup, "fee");
if (meta == null) {
LOGGER.warn("查询SellerOrderMeta无数据, sellerUid is {}, skup is {}", sellerUid, skup);
SellerOrder pso = sellerOrderMapper.selectBySkup(skup);
if (pso == null) {
LOGGER.warn("getSaleIncome SellerOrder is null, sellerUid {}, skup {}", sellerUid, skup);
throw new ServiceException(500, "计费信息不完整");
}
if (StringUtils.isBlank(meta.getMetaValue())) {
LOGGER.warn("查询SellerOrderMeta的MetaValue为空, sellerUid is {}, skup is {}", sellerUid, skup);
BigDecimal income = pso.getIncome();
if (income==null) {
LOGGER.warn("etSaleIncome SellerOrder.income is null, sellerUid {}, skup {}", sellerUid, skup);
throw new ServiceException(500, "计费信息不完整");
}
LOGGER.info("查询SellerOrderMeta计费数据, id={}, meta= {}", meta.getId(), meta.getMetaValue());
return JSON.parseObject(meta.getMetaValue()).getBigDecimal("income");
LOGGER.info("getSaleIncome, skup {}, income {}", skup, income);
return income;
}
/**
... ...
package com.yohoufo.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Joiner;
import com.google.common.collect.Lists;
import com.yoho.core.common.helpers.ImagesHelper;
... ... @@ -39,11 +38,10 @@ import com.yohoufo.order.model.response.AppraiseAddressResp;
import com.yohoufo.order.service.*;
import com.yohoufo.order.service.cache.CacheKeyBuilder;
import com.yohoufo.order.service.cache.ExpiredTime;
import com.yohoufo.order.service.listener.BuyerOrderChangeEvent;
import com.yohoufo.order.service.listener.OrderChangeListenerContainer;
import com.yohoufo.order.service.proxy.*;
import com.yohoufo.order.service.seller.SellerOrderServiceDelegate;
import com.yohoufo.order.service.seller.deposit.AppraiseOrderMetaService;
import com.yohoufo.order.service.seller.orderMeta.SellerAddressService;
import com.yohoufo.order.service.seller.setting.SellerService;
import com.yohoufo.order.service.seller.setting.SellerWrapper;
import com.yohoufo.order.service.support.codegenerator.OrderCodeGenerator;
... ... @@ -53,7 +51,6 @@ import com.yohoufo.order.utils.OrderAssist;
import lombok.NonNull;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
... ... @@ -62,11 +59,9 @@ import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import static com.yohoufo.order.constants.MetaKey.BACK_2_SELLER_DELIVERY_ADDRESS;
import static com.yohoufo.order.utils.ServiceExceptions.throwServiceException;
import static com.yohoufo.order.utils.ServiceExceptions.throwServiceExceptionIf;
... ... @@ -141,8 +136,7 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
@Autowired
private ServiceOrderProcessor serviceOrderProcessor;
@Autowired
private SellerAddressService sellerAddressService;
@Autowired
private AppraiseOrderMetaService appraiseOrderMetaService;
... ... @@ -162,6 +156,9 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
@Autowired
private SellerOrderService sellerOrderService;
@Autowired
private SellerOrderServiceDelegate sellerOrderServiceDelegate;
private static String EXPRESS_MQ_SEND = "third.logistics.logistics_data";
//物流文案设置
... ... @@ -409,7 +406,7 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
case BUYER_TYPE:
BuyerOrderGoods pbog = preparedData.getBuyerOrderGoods();
sellerMobileSupplier = () -> Optional.of(pbog)
.map(e -> sellerAddressService.getNoHiddenAddressInfo(sellerUid, e.getSkup()))
.map(e -> sellerOrderServiceDelegate.getSellerAddressService().getNoHiddenAddressInfo(sellerUid, e.getSkup()))
.map(AddressInfo::getMobile)
.orElse(null);
SellerDeliverToDepotReq req4Log = buildSellerDeliverToDepotReq(expressCompanyId, wayBillCode, depotNum);
... ... @@ -1452,24 +1449,10 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
private AddressInfo findSellerAddressInfo(Integer sellerUid, Long orderCode){
BuyerOrderGoods pbog = buyerOrderGoodsMapper.selectOnlyByOrderCode(orderCode);
Integer skup = pbog.getSkup();
return findSellerAddressInfo(sellerUid, skup);
return sellerOrderServiceDelegate.getSellerAddressService().getNoHiddenAddressInfo(sellerUid, skup);
}
private AddressInfo findSellerAddressInfo(Integer uid, Integer skup) {
SellerOrderMeta addressMeta = sellerOrderMetaMapper.selectByMetaKey(uid, skup, BACK_2_SELLER_DELIVERY_ADDRESS);
AddressInfo addressInfo = null;
if (null != addressMeta) {
LOGGER.info("addressMeta is not null uid is {}, skup is {}", uid, skup);
try {
addressInfo = JSONObject.parseObject(addressMeta.getMetaValue(), AddressInfo.class);
} catch (Exception ex) {
LOGGER.warn("findSellerAddressInfo parse addressMeta fail, uid {} skup {}, addressMeta {}",
uid, skup, addressMeta, ex);
}
}
return addressInfo;
}
... ... @@ -1563,7 +1546,8 @@ public class ExpressInfoServiceImpl implements IExpressInfoService {
}
}
AddressInfo buyerAddress = findSellerAddressInfo(uid, skup);
AddressInfo buyerAddress = sellerOrderServiceDelegate.getSellerAddressService()
.getNoHiddenAddressInfo(uid, skup);
LOGGER.info("in queryAppraiseAddress get Address {} orderCode {}, skup {}", buyerAddress, orderCode, skup);
// 根据用户id查询默认地址的省份
... ...
... ... @@ -3,6 +3,7 @@ package com.yohoufo.order.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yohobuy.ufo.model.order.common.Payment;
import com.yohobuy.ufo.model.order.dto.PlatformFeeDto;
import com.yohoufo.common.alarm.CommonAlarmEventPublisher;
import com.yohoufo.common.utils.BigDecimalHelper;
import com.yohoufo.common.utils.DateUtil;
... ... @@ -15,6 +16,7 @@ import com.yohoufo.order.constants.MetaKey;
import com.yohoufo.order.event.BillLogEvent;
import com.yohoufo.order.model.dto.SellerOrderComputeResult;
import com.yohoufo.order.repository.TradeBillsRepository;
import com.yohoufo.order.service.seller.SellerOrderServiceDelegate;
import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
... ... @@ -45,6 +47,9 @@ public class TradeBillsService {
@Autowired
private ServiceOrderProcessor serviceOrderProcessor;
@Autowired
private SellerOrderServiceDelegate sellerOrderServiceDelegate;
/**
* 退保证金流水记录
... ... @@ -271,9 +276,13 @@ public class TradeBillsService {
* @param amount
*/
public void addPayBuyRecord(Integer uid, Integer sellerUid, Integer skup, Long orderCode, Integer payment, BigDecimal amount) {
SellerOrderMeta meta = sellerOrderMetaMapper.selectByMetaKey(sellerUid, skup, "fee");
if (meta == null) {
logger.error("PayRecordErr记录交易到数据库出错 err=meta费率信息未查到, selleruid = {}, skup={}", sellerUid, skup);
SellerOrderComputeResult computeResult = sellerOrderServiceDelegate.getSellerFeeService()
.getSellerOrderComputeResult(sellerUid, skup);
PlatformFeeDto platformFee;
if (computeResult == null || Objects.isNull(platformFee = computeResult.getPlatformFee())) {
logger.error("addPayBuyRecord error,no computeResult of seller order in meta, orderCode {},selleruid {}, skup {}",
orderCode, sellerUid, skup);
return;
}
Integer payType = adaptPayType(payment);
... ... @@ -287,16 +296,10 @@ public class TradeBillsService {
record.setTradeType(2);//1:保证金;2:货款;3:补偿款
record.setIncomeOutcome(2);// 1:用户收入; 2:用户支出
record.setAmount(amount);
try {
JSONObject metavalue = JSON.parseObject(meta.getMetaValue());
BigDecimal rate = metavalue.getJSONObject("serviceFeeRate").getBigDecimal("payChannelRate");
amount = amount.multiply(BigDecimal.ONE.subtract(rate)).setScale(2, BigDecimal.ROUND_HALF_UP);
} catch (Exception e) {
logger.error("PayRecordErr计费信息不完整, uid is {}, skup is {}, err is {}", uid, skup, e.getMessage());
return;
}
record.setSystemAmount(amount);// 有货收入
BigDecimal systemAmount = platformFee.getServiceFee();
record.setSystemAmount(systemAmount);// 有货收入
record.setTradeStatus(BillTradeStatus.SUCCESS.getCode());
record.setCreateTime((int) (System.currentTimeMillis() / 1000));
addTradeBills(record);
... ...
... ... @@ -4,6 +4,7 @@ import com.yohoufo.order.service.handler.SellerDecrPriceTaskHandler;
import com.yohoufo.order.service.handler.SellerDownShelfTaskHandler;
import com.yohoufo.order.service.handler.SellerIncrPriceTaskHandler;
import com.yohoufo.order.service.impl.SellerOrderService;
import com.yohoufo.order.service.seller.orderMeta.SellerAddressService;
import com.yohoufo.order.service.seller.orderMeta.SellerFeeService;
import com.yohoufo.order.service.seller.orderMeta.SellerOrderMetaService;
import com.yohoufo.order.service.seller.processor.SellerTaskProcessor;
... ... @@ -60,4 +61,7 @@ public class SellerOrderServiceDelegate {
@Autowired@Getter
private SellerOrderService sellerOrderService;
@Autowired@Getter
private SellerAddressService sellerAddressService;
}
... ...
... ... @@ -123,7 +123,14 @@ public class SellerAddressService {
if(som == null || (value=som.getMetaValue()) == null){
return null;
}
AddressInfo addressInfo = JSONObject.parseObject(value, AddressInfo.class);
AddressInfo addressInfo = null;
try {
addressInfo = JSONObject.parseObject(value, AddressInfo.class);
} catch (Exception ex) {
logger.warn("getNoHiddenAddressInfo parse addressMeta fail, uid {} skup {}, addressMeta {}",
uid, skup, value, ex);
}
return addressInfo;
}
... ...