| | |
| | | import com.mzl.flower.service.flower.FlowerService; |
| | | import com.mzl.flower.service.menber.MemberGrowthRecordService; |
| | | import com.mzl.flower.service.point.CustomerPointService; |
| | | import com.mzl.flower.service.point.PointGoodsService; |
| | | import com.mzl.flower.service.system.CodeService; |
| | | import com.mzl.flower.service.system.WeChatService; |
| | | import com.mzl.flower.service.transport.TransportService; |
| | |
| | | @Autowired |
| | | private CustomerPointService customerPointService; |
| | | |
| | | @Autowired |
| | | private PointGoodsService pointGoodsService; |
| | | |
| | | @Autowired |
| | | private RedisLockService lockService; |
| | | |
| | | public void changeFlower2Cart(CartSaveDTO dto) { |
| | | String userId = SecurityUtils.getUserId(); |
| | | Cart c = cartMapper.selectOne(new QueryWrapper<Cart>() |
| | | .eq("create_by", userId).eq("flower_id", dto.getId())); |
| | | if (c == null) { |
| | | if (dto.getNum() <= 0) { |
| | | throw new ValidationException("数量不能小于等于0,请刷新页面重试"); |
| | | } |
| | | c = new Cart(); |
| | | c.setFlowerId(dto.getId()); |
| | | c.setNum(dto.getNum()); |
| | | c.create(userId); |
| | | String key = userId + "_" + dto.getId(); |
| | | boolean lock = lockService.getObjectLock(RedisLockService.LOCK_KEY_CART_, key); |
| | | if(!lock){ |
| | | return; |
| | | } |
| | | |
| | | cartMapper.insert(c); |
| | | } else { |
| | | c.setNum(c.getNum() + dto.getNum()); |
| | | c.update(userId); |
| | | if (c.getNum() <= 0) { |
| | | cartMapper.deleteById(c.getId()); |
| | | try { |
| | | Cart c = cartMapper.selectOne(new QueryWrapper<Cart>() |
| | | .eq("create_by", userId).eq("flower_id", dto.getId())); |
| | | if (c == null) { |
| | | if (dto.getNum() <= 0) { |
| | | throw new ValidationException("数量不能小于等于0,请刷新页面重试"); |
| | | } |
| | | c = new Cart(); |
| | | c.setFlowerId(dto.getId()); |
| | | c.setNum(dto.getNum()); |
| | | c.create(userId); |
| | | |
| | | cartMapper.insert(c); |
| | | } else { |
| | | cartMapper.updateById(c); |
| | | c.setNum(c.getNum() + dto.getNum()); |
| | | c.update(userId); |
| | | if (c.getNum() <= 0) { |
| | | cartMapper.deleteById(c.getId()); |
| | | } else { |
| | | cartMapper.updateById(c); |
| | | } |
| | | } |
| | | } finally { |
| | | lockService.releaseObjectLock(RedisLockService.LOCK_KEY_CART_, key); |
| | | } |
| | | } |
| | | |
| | | public void saveFlower2Cart(CartSaveDTO dto) { |
| | | String userId = SecurityUtils.getUserId(); |
| | | Cart c = cartMapper.selectOne(new QueryWrapper<Cart>() |
| | | .eq("create_by", userId).eq("flower_id", dto.getId())); |
| | | if (c == null) { |
| | | c = new Cart(); |
| | | c.setFlowerId(dto.getId()); |
| | | c.setNum(dto.getNum()); |
| | | c.create(userId); |
| | | |
| | | cartMapper.insert(c); |
| | | } else { |
| | | c.setNum(dto.getNum()); |
| | | c.update(userId); |
| | | String key = userId + "_" + dto.getId(); |
| | | boolean lock = lockService.getObjectLock(RedisLockService.LOCK_KEY_CART_, key); |
| | | if(!lock){ |
| | | return; |
| | | } |
| | | |
| | | cartMapper.updateById(c); |
| | | try { |
| | | Cart c = cartMapper.selectOne(new QueryWrapper<Cart>() |
| | | .eq("create_by", userId).eq("flower_id", dto.getId())); |
| | | if (c == null) { |
| | | c = new Cart(); |
| | | c.setFlowerId(dto.getId()); |
| | | c.setNum(dto.getNum()); |
| | | c.create(userId); |
| | | |
| | | cartMapper.insert(c); |
| | | } else { |
| | | c.setNum(dto.getNum()); |
| | | c.update(userId); |
| | | |
| | | cartMapper.updateById(c); |
| | | } |
| | | } finally { |
| | | lockService.releaseObjectLock(RedisLockService.LOCK_KEY_CART_, key); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | private void usePointGoods(String orderId, List<Long> goodsRecordIdList){ |
| | | //TODO 使用积分商品兑换券 |
| | | //使用积分商品兑换券 |
| | | if(goodsRecordIdList != null && goodsRecordIdList.size() > 0){ |
| | | for(Long grId : goodsRecordIdList){ |
| | | pointGoodsService.useExchangeGoods(grId, orderId); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | if(checkList != null && checkList.size() > 0){ |
| | | for(OrderItemCheck c : checkList){ |
| | | if(Constants.CHECK_TYPE.replace.name().equals(c.getType())){ |
| | | continue; |
| | | } |
| | | totalAmount = totalAmount.subtract(getAmount(c.getDeductAmount())); |
| | | } |
| | | } |