package com.yeshi.fanli.service.impl.order;
|
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.fanli.dao.mybatis.order.UserOrderWeiQuanRecordMapper;
|
import com.yeshi.fanli.dto.HongBaoDTO;
|
import com.yeshi.fanli.entity.order.UserOrderWeiQuanRecord;
|
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanDrawBack;
|
import com.yeshi.fanli.entity.taobao.TaoBaoWeiQuanOrder;
|
import com.yeshi.fanli.service.inter.money.tb.TaoBaoWeiQuanDrawBackService;
|
import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
|
import com.yeshi.fanli.service.inter.order.UserOrderWeiQuanRecordService;
|
import com.yeshi.fanli.service.inter.order.tb.TaoBaoWeiQuanOrderService;
|
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
|
|
@Service
|
public class UserOrderWeiQuanRecordServiceImpl implements UserOrderWeiQuanRecordService {
|
|
@Resource
|
private UserOrderWeiQuanRecordMapper userOrderWeiQuanRecordMapper;
|
|
@Resource
|
private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
|
|
@Resource
|
private TaoBaoWeiQuanDrawBackService taoBaoWeiQuanDrawBackService;
|
|
@Resource
|
private HongBaoV2Service hongBaoV2Service;
|
|
@Override
|
public void syncPrevious() {
|
BigDecimal zero = new BigDecimal(0);
|
for (int page = 1; page < Integer.MAX_VALUE; page++) {
|
List<TaoBaoWeiQuanOrder> list = taoBaoWeiQuanOrderService.listByBeginWeiQuan(page, 100);
|
if (list == null || list.isEmpty())
|
break;
|
|
for (TaoBaoWeiQuanOrder weiQuanOrder: list) {
|
String orderItemId = weiQuanOrder.getOrderItemId();
|
|
List<HongBaoDTO> listV2 = hongBaoV2Service.listByOrderTradeId(orderItemId);
|
for (HongBaoDTO hongBaoV2: listV2) {
|
Long uid = hongBaoV2.getUserInfo().getId();
|
TaoBaoWeiQuanDrawBack drawBack= taoBaoWeiQuanDrawBackService.selectByOrderItemIdAndUid(orderItemId, uid);
|
|
int state = 0;
|
BigDecimal money = null;
|
if (drawBack != null) {
|
state = 1; // 已扣款
|
BigDecimal drawBackMoney = drawBack.getDrawBackMoney();
|
if (drawBackMoney.compareTo(zero) > 0) {
|
money = drawBackMoney;
|
}
|
}
|
|
if (money == null) {
|
// (维权金额/结算金额) * 返利金额
|
BigDecimal wqmoney = weiQuanOrder.getMoney();
|
money = wqmoney.divide(hongBaoV2.getSettlement(), 2, BigDecimal.ROUND_DOWN)
|
.multiply(hongBaoV2.getMoney()).setScale(2, BigDecimal.ROUND_DOWN);
|
|
// 大于返利金额 则等于返利金额
|
if (money.compareTo(hongBaoV2.getMoney()) > 0)
|
money = hongBaoV2.getMoney();
|
}
|
|
UserOrderWeiQuanRecord weiQuanRecord = new UserOrderWeiQuanRecord();
|
weiQuanRecord.setUid(uid);
|
weiQuanRecord.setSourceType(1); // 淘宝
|
weiQuanRecord.setTradeId(orderItemId);
|
weiQuanRecord.setCreateTime(weiQuanOrder.getCreateTime());
|
weiQuanRecord.setMoney(money);
|
weiQuanRecord.setState(state);
|
userOrderWeiQuanRecordMapper.insertSelective(weiQuanRecord);
|
}
|
}
|
}
|
}
|
|
|
}
|