| | |
| | | @Resource
|
| | | private RedisManager redisManager;
|
| | |
|
| | | // @Resource
|
| | | // private LostOrderService lostOrderService;
|
| | |
|
| | | @Override
|
| | | @Transactional
|
| | | public void addPidOrderFromTaoBao(Map<String, List<PidOrder>> map) {
|
| | |
| | | while (its.hasNext()) {
|
| | | String orderId = its.next();
|
| | | // 订单锁定
|
| | | // if (isRedisLockOrder(orderId))
|
| | | // continue;
|
| | | // redisLockOrder(orderId);
|
| | | // if (isRedisLockOrder(orderId))
|
| | | // continue;
|
| | | // redisLockOrder(orderId);
|
| | | doPidOrder(orderId);
|
| | | // redisUnlockOrder(orderId);
|
| | | // 处理订单找回
|
| | | // lostOrderService.processSuceess(orderId);
|
| | | // redisUnlockOrder(orderId);
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | @Override
|
| | | @Transactional
|
| | | public void doPidOrder(String orderId) {
|
| | | Map<String, String> convertMap = hongBaoManageService.convertMap();
|
| | | BigDecimal rate = new BigDecimal(convertMap.get("hongbao_goods_proportion")).divide(new BigDecimal(100));
|
| | |
|
| | | List<PidOrder> orders = pidOrderMapper.getPidOrderListByOrderId(orderId);
|
| | | // 只看有用户Id的情况
|
| | | if (orders.get(0).getUserInfo() != null) {
|
| | | // 根据第一个的订单创建时间来确定返利比例
|
| | | BigDecimal rate = hongBaoManageService.getShareRate(orders.get(0).getOrderCreateTime().getTime());
|
| | | List<HongBao> hbList = hongBaoMapper.selectByOrderId(orderId);
|
| | | if (hbList.size() <= 0) {// 还没有加入红包
|
| | | // 加入红包
|
| | | for (PidOrder order : orders) {
|
| | |
|
| | | // 防止同一订单号来源于不同的PID
|
| | | if (order.getUserInfo() == null)
|
| | | continue;
|
| | |
| | | HongBao.TYPE_SHARE_GOODS, HongBao.STATE_BUKELINGQU, new Date().getTime(),
|
| | | new Date().getTime(), 0, "192.168.1.1", "系统添加");
|
| | | hongBao.setOrderId(order.getOrderId());
|
| | | hongBao.setPayMoney(order.getPayMoney());
|
| | | if ("订单结算".equalsIgnoreCase(order.getState()))
|
| | | hongBao.setPayMoney(order.getFinalMoney());
|
| | | else
|
| | | hongBao.setPayMoney(order.getPayMoney());
|
| | | if (order.getBalanceTime() != null)
|
| | | hongBao.setBalanceTime(order.getBalanceTime());
|
| | |
|