| | |
| | | @Service
|
| | | public class UserOrderWeiQuanRecordServiceImpl implements UserOrderWeiQuanRecordService {
|
| | |
|
| | | @Resource
|
| | | private UserOrderWeiQuanRecordMapper userOrderWeiQuanRecordMapper;
|
| | | @Resource
|
| | | private UserOrderWeiQuanRecordMapper userOrderWeiQuanRecordMapper;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
|
| | | @Resource
|
| | | private TaoBaoWeiQuanOrderService taoBaoWeiQuanOrderService;
|
| | |
|
| | | @Resource
|
| | | private TaoBaoWeiQuanDrawBackService taoBaoWeiQuanDrawBackService;
|
| | | @Resource
|
| | | private TaoBaoWeiQuanDrawBackService taoBaoWeiQuanDrawBackService;
|
| | |
|
| | | @Resource
|
| | | private HongBaoV2Service hongBaoV2Service;
|
| | | @Resource
|
| | | private HongBaoV2Service hongBaoV2Service;
|
| | |
|
| | | @Resource
|
| | | private CommonOrderService commonOrderService;
|
| | | @Resource
|
| | | private CommonOrderService commonOrderService;
|
| | |
|
| | | @Resource
|
| | | private HongBaoOrderService hongBaoOrderService;
|
| | | @Resource
|
| | | private HongBaoOrderService hongBaoOrderService;
|
| | |
|
| | | @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;
|
| | | @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();
|
| | | 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);
|
| | | 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;
|
| | | }
|
| | | }
|
| | | 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.multiply(hongBaoV2.getMoney()).divide(hongBaoV2.getSettlement(), 2,
|
| | | BigDecimal.ROUND_DOWN);
|
| | | if (money == null) {
|
| | | // (维权金额/结算金额) * 返利金额
|
| | | BigDecimal wqmoney = weiQuanOrder.getMoney();
|
| | | money = wqmoney.multiply(hongBaoV2.getMoney()).divide(hongBaoV2.getSettlement(), 2,
|
| | | BigDecimal.ROUND_UP);
|
| | |
|
| | | // 大于返利金额 则等于返利金额
|
| | | if (money.compareTo(hongBaoV2.getMoney()) > 0)
|
| | | money = hongBaoV2.getMoney();
|
| | | }
|
| | | // 大于返利金额 则等于返利金额
|
| | | 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);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | 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);
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public void addTaoBaoWeiQuan(TaoBaoWeiQuanOrder order) {
|
| | | if (!order.getState().contains("维权成功"))
|
| | | return;
|
| | | // 查询是否存在红包
|
| | | CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
|
| | | order.getOrderItemId());
|
| | | if (commonOrder == null)
|
| | | return;
|
| | | HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(commonOrder.getId());
|
| | | if (hongBaoOrder == null || hongBaoOrder.getHongBaoV2() == null)
|
| | | return;
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | @Override
|
| | | public void addTaoBaoWeiQuan(TaoBaoWeiQuanOrder order) {
|
| | | if (!order.getState().contains("维权成功"))
|
| | | return;
|
| | | // 查询是否存在红包
|
| | | CommonOrder commonOrder = commonOrderService.selectBySourceTypeAndTradeId(Constant.SOURCE_TYPE_TAOBAO,
|
| | | order.getOrderItemId());
|
| | | if (commonOrder == null)
|
| | | return;
|
| | | HongBaoOrder hongBaoOrder = hongBaoOrderService.selectDetailByCommonOrderId(commonOrder.getId());
|
| | | if (hongBaoOrder == null || hongBaoOrder.getHongBaoV2() == null)
|
| | | return;
|
| | |
|
| | | BigDecimal settleMoney = hongBaoOrder.getCommonOrder().getSettlement();
|
| | | HongBaoV2 mainHongBao = hongBaoOrder.getHongBaoV2();
|
| | | UserOrderWeiQuanRecord ur = userOrderWeiQuanRecordMapper.selectByOrderInfoAndUid(
|
| | | mainHongBao.getUserInfo().getId(), order.getOrderItemId(), Constant.SOURCE_TYPE_TAOBAO);
|
| | | if (ur == null) {
|
| | | UserOrderWeiQuanRecord record = new UserOrderWeiQuanRecord();
|
| | | record.setCreateTime(new Date());
|
| | | record.setMoney(hongBaoOrder.getHongBaoV2().getMoney().multiply(order.getMoney()).divide(settleMoney, 2,
|
| | | RoundingMode.UP));
|
| | | record.setSourceType(Constant.SOURCE_TYPE_TAOBAO);
|
| | | record.setState(0);
|
| | | record.setTradeId(order.getOrderItemId());
|
| | | record.setUid(hongBaoOrder.getHongBaoV2().getUserInfo().getId());
|
| | | userOrderWeiQuanRecordMapper.insertSelective(record);
|
| | | }
|
| | | List<HongBaoV2> children = hongBaoV2Service.listChildrenById(mainHongBao.getId());
|
| | | for (HongBaoV2 v2 : children) {
|
| | | UserOrderWeiQuanRecord record = userOrderWeiQuanRecordMapper.selectByOrderInfoAndUid(
|
| | | v2.getUserInfo().getId(), order.getOrderItemId(), Constant.SOURCE_TYPE_TAOBAO);
|
| | | if (record == null) {
|
| | | record = new UserOrderWeiQuanRecord();
|
| | | record.setCreateTime(new Date());
|
| | | record.setMoney(v2.getMoney().multiply(order.getMoney()).divide(settleMoney, 2, RoundingMode.UP));
|
| | | record.setSourceType(Constant.SOURCE_TYPE_TAOBAO);
|
| | | record.setState(0);
|
| | | record.setTradeId(order.getOrderItemId());
|
| | | record.setUid(v2.getUserInfo().getId());
|
| | | userOrderWeiQuanRecordMapper.insertSelective(record);
|
| | | }
|
| | | }
|
| | | }
|
| | | BigDecimal settleMoney = hongBaoOrder.getCommonOrder().getSettlement();
|
| | | HongBaoV2 mainHongBao = hongBaoOrder.getHongBaoV2();
|
| | | UserOrderWeiQuanRecord ur = userOrderWeiQuanRecordMapper.selectByOrderInfoAndUid(
|
| | | mainHongBao.getUserInfo().getId(), order.getOrderItemId(), Constant.SOURCE_TYPE_TAOBAO);
|
| | | if (ur == null) {
|
| | | UserOrderWeiQuanRecord record = new UserOrderWeiQuanRecord();
|
| | | record.setCreateTime(new Date());
|
| | | record.setMoney(hongBaoOrder.getHongBaoV2().getMoney().multiply(order.getMoney()).divide(settleMoney, 2,
|
| | | RoundingMode.UP));
|
| | | record.setSourceType(Constant.SOURCE_TYPE_TAOBAO);
|
| | | record.setState(UserOrderWeiQuanRecord.STATE_NOT_RETURN);
|
| | | record.setTradeId(order.getOrderItemId());
|
| | | record.setUid(hongBaoOrder.getHongBaoV2().getUserInfo().getId());
|
| | |
|
| | | if (record.getMoney().compareTo(hongBaoOrder.getHongBaoV2().getMoney()) > 0)
|
| | | record.setMoney(hongBaoOrder.getHongBaoV2().getMoney());
|
| | |
|
| | | userOrderWeiQuanRecordMapper.insertSelective(record);
|
| | | }
|
| | | List<HongBaoV2> children = hongBaoV2Service.listChildrenById(mainHongBao.getId());
|
| | | for (HongBaoV2 v2 : children) {
|
| | | UserOrderWeiQuanRecord record = userOrderWeiQuanRecordMapper.selectByOrderInfoAndUid(
|
| | | v2.getUserInfo().getId(), order.getOrderItemId(), Constant.SOURCE_TYPE_TAOBAO);
|
| | | if (record == null) {
|
| | | record = new UserOrderWeiQuanRecord();
|
| | | record.setCreateTime(new Date());
|
| | | record.setMoney(v2.getMoney().multiply(order.getMoney()).divide(settleMoney, 2, RoundingMode.UP));
|
| | | record.setSourceType(Constant.SOURCE_TYPE_TAOBAO);
|
| | | record.setState(UserOrderWeiQuanRecord.STATE_NOT_RETURN);
|
| | | record.setTradeId(order.getOrderItemId());
|
| | | record.setUid(v2.getUserInfo().getId());
|
| | |
|
| | | if (record.getMoney().compareTo(v2.getMoney()) > 0)
|
| | | record.setMoney(v2.getMoney());
|
| | |
|
| | | userOrderWeiQuanRecordMapper.insertSelective(record);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | | public UserOrderWeiQuanRecord selectByOrderInfoAndUid(Long uid, String tradeId, int sourceType) {
|
| | | UserOrderWeiQuanRecord record = userOrderWeiQuanRecordMapper.selectByOrderInfoAndUid(uid, tradeId, sourceType);
|
| | |
|
| | | return record;
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public Integer countWeiQaunOrderNumberByDate(String preDay) {
|
| | | return userOrderWeiQuanRecordMapper.countWeiQaunOrderNumberByDate(preDay);
|
| | | }
|
| | |
|
| | |
|
| | | @Override
|
| | | public BigDecimal countWeiQaunOrderMoneyByDate(String preDay) {
|
| | | return userOrderWeiQuanRecordMapper.countWeiQaunOrderMoneyByDate(preDay);
|
| | | }
|
| | |
|
| | | @Transactional
|
| | | @Override
|
| | | public void weiQuanMoneyReturn(Long uid, String tradeId, int sourceType) {
|
| | | UserOrderWeiQuanRecord record = selectByOrderInfoAndUid(uid, tradeId, sourceType);
|
| | | if (record == null) {
|
| | | return;
|
| | | }
|
| | | if (record.getState() == UserOrderWeiQuanRecord.STATE_RETURNED)
|
| | | return;
|
| | | UserOrderWeiQuanRecord update = new UserOrderWeiQuanRecord();
|
| | | update.setId(record.getId());
|
| | | update.setState(UserOrderWeiQuanRecord.STATE_RETURNED);
|
| | | update.setUpdateTime(new Date());
|
| | | userOrderWeiQuanRecordMapper.updateByPrimaryKeySelective(update);
|
| | | }
|
| | | }
|