Commit 5306c8ba authored by wlx@33.cn's avatar wlx@33.cn

修正取消订单接口多次触发,修正用户资产记录状态枚举魔鬼数字

parent ee22b299
......@@ -133,17 +133,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
}
/**
* 商品订单退款-积分还原,商品币还原
* <p>
* 审核通过:1.币:根据order_detail的coin和number,将user_asset对应的冻结数量frozen扣除,通过链上方法还给商家
* 2.积分:根据order_info的amount,将积分还给买家
* 审核不通过:
* 1.币:根据order_detail的coin和number,将user_asset对应的冻结数量frozen扣除,加到可用资产amount
*
*/
integralDeduction(oid, order.getUid(), order.getAmount(), order.getMerchantId(), orderDetailList, isApproved);
/**
* 更改order_refund中的记录状态
*/
synchroRefundReturnState(oid, isApproved, remark);
......@@ -163,6 +152,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
*/
OrderLog log = new OrderLog(oid, orderState, operation, adminId, remark);
orderLogService.save(log);
/**
* 商品订单退款-积分还原,商品币还原
* <p>
* 审核通过:1.币:根据order_detail的coin和number,将user_asset对应的冻结数量frozen扣除,通过链上方法还给商家
* 2.积分:根据order_info的amount,将积分还给买家
* 审核不通过:
* 1.币:根据order_detail的coin和number,将user_asset对应的冻结数量frozen扣除,加到可用资产amount
*
*/
integralDeduction(oid, order.getUid(), order.getAmount(), order.getMerchantId(), orderDetailList, isApproved);
}
/**
......
......@@ -20,6 +20,7 @@ import com.fzm.mall.server.front.asset.service.IUserAssetService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.mall.server.front.base.PageVO;
import com.fzm.mall.server.front.constant.StateConst;
import com.fzm.mall.server.front.enums.AssetRecordTypeEnum;
import com.fzm.mall.server.front.enums.CoinNameEnum;
import com.fzm.mall.server.front.enums.QueueTTLTypeEnum;
import com.fzm.mall.server.front.goods.model.GoodSpu;
......@@ -202,7 +203,8 @@ public class UserAssetServiceImpl extends ServiceImpl<UserAssetMapper, UserAsset
record.setAmount(amount);
record.setUid(uid);
record.setCoin(coin);
record.setType(6);//数字资产转账-转出
//数字资产转账-转出
record.setType(AssetRecordTypeEnum.DIGITAL_TRAN_OUT.getType());
record.setHash(hash);
record.setFlowId(flowId);
record.setStatus(3);//支付中
......@@ -216,7 +218,8 @@ public class UserAssetServiceImpl extends ServiceImpl<UserAssetMapper, UserAsset
recordOther.setAmount(amount);
recordOther.setUid(otherUid);
recordOther.setCoin(coin);
recordOther.setType(5);//数字资产转帐-转入
//数字资产转帐-转入
record.setType(AssetRecordTypeEnum.DIGITAL_TRAN_IN.getType());
recordOther.setHash(hash);
recordOther.setFlowId(flowId);
recordOther.setStatus(2);
......@@ -564,7 +567,8 @@ public class UserAssetServiceImpl extends ServiceImpl<UserAssetMapper, UserAsset
userAssetRecord.setCoin(CoinNameEnum.MALLCOIN.value());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setUid(uid);
userAssetRecord.setType(19);
//评论奖励
userAssetRecord.setType(AssetRecordTypeEnum.COMMENT_REWARD.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(commentId);
userAssetRecord.setOtherSide("平台");
......
......@@ -2,6 +2,10 @@ package com.fzm.mall.server.front.enums;
public enum AssetRecordTypeEnum {
//数字资产转帐-转入
DIGITAL_TRAN_IN(5),
//数字资产转账-转出
DIGITAL_TRAN_OUT(6),
//积分充值
INTEGRAL_RECHARGE(7),
//积分抵扣
......
......@@ -8,6 +8,7 @@ import com.fzm.mall.server.front.asset.model.po.AssetRecord;
import com.fzm.mall.server.front.asset.service.IUserAssetRecordService;
import com.fzm.mall.server.front.asset.service.IUserAssetService;
import com.fzm.mall.server.front.constant.MALLGlobalConfig;
import com.fzm.mall.server.front.enums.AssetRecordTypeEnum;
import com.fzm.mall.server.front.enums.CoinNameEnum;
import com.fzm.mall.server.front.order.model.Pay;
import com.fzm.mall.server.front.user.model.Member;
......@@ -63,7 +64,8 @@ public class RewardConsumer {
assetRecord.setFlowId(OrderUtil.getFlowId());
assetRecord.setStatus(2);
assetRecord.setCoin(CoinNameEnum.MALLCOIN.value());
assetRecord.setType(22);
//22注册奖励
assetRecord.setType(AssetRecordTypeEnum.REGISTER_REWARD.getType());
assetRecord.setAmount(oprationPopularizeCommission.getRegisterAward());
userAssetRecordService.save(assetRecord);
}
......
......@@ -16,10 +16,7 @@ import com.fzm.mall.server.front.asset.service.IUserAssetService;
import com.fzm.mall.server.front.base.PageVO;
import com.fzm.mall.server.front.base.ResponseVO;
import com.fzm.mall.server.front.constant.MallResponseEnum;
import com.fzm.mall.server.front.enums.CoinNameEnum;
import com.fzm.mall.server.front.enums.GoodsRedisEnum;
import com.fzm.mall.server.front.enums.QueueTTLTypeEnum;
import com.fzm.mall.server.front.enums.QueueTypeEnum;
import com.fzm.mall.server.front.enums.*;
import com.fzm.mall.server.front.goods.service.IGoodSkuPropService;
import com.fzm.mall.server.front.goods.service.ISkuService;
import com.fzm.mall.server.front.merchant.model.Merchant;
......@@ -105,7 +102,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
record.setUid(uid);
record.setCoin(coin);
record.setAmount(BigDecimal.valueOf(number));
record.setType(18);//提货
//18、提货
record.setType(AssetRecordTypeEnum.DRAW_GOODS.getType());
record.setStatus(2);//成功
record.setFlowId(OrderUtil.getFlowId());
record.setNote("提货");
......@@ -246,7 +244,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
record.setCoin(coin);
record.setAmount(num);
record.setHash(hash);
record.setType(18);//提货
//18、提货
record.setType(AssetRecordTypeEnum.DRAW_GOODS.getType());
boolean saveReco = userAssetRecordService.save(record);
if (!saveReco) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
......@@ -349,7 +348,8 @@ public class DeliveryServiceImpl extends ServiceImpl<DeliveryMapper, Delivery> i
record.setAmount(numBig);
record.setUid(uid);
record.setCoin(coin);
record.setType(18);//提货
//18、提货
record.setType(AssetRecordTypeEnum.DRAW_GOODS.getType());
record.setHash(hash);
record.setFlowId(OrderUtil.getFlowId());
record.setAmount(postFee);
......
......@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.fzm.mall.server.front.asset.model.OrderPay;
import com.fzm.mall.server.front.asset.model.UserAsset;
import com.fzm.mall.server.front.asset.model.UserAssetRecord;
......@@ -644,7 +645,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(orderDetail.getCoin());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord);
......@@ -673,7 +674,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(orderDetail.getCoin());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setNote(order.getOid());
userAssetRecord.setStatus(2);
userAssetRecordService.save(userAssetRecord);
......@@ -683,7 +684,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord2.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord2.setCoin(orderDetail.getCoin());
userAssetRecord2.setFlowId(OrderUtil.getFlowId());
userAssetRecord2.setType(18);
//18、提货
userAssetRecord2.setType(AssetRecordTypeEnum.DRAW_GOODS.getType());
userAssetRecord2.setStatus(2);
userAssetRecord2.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord2);
......@@ -740,7 +742,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(orderDetail.getCoin());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord);
......@@ -782,7 +784,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(orderDetail.getCoin());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord);
......@@ -826,7 +828,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(orderDetail.getCoin());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord);
......@@ -870,7 +872,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(o.toString());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord);
......@@ -924,7 +926,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(orderDetail.getCoin());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord);
......@@ -951,7 +953,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord2.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord2.setCoin(orderDetail.getCoin());
userAssetRecord2.setFlowId(OrderUtil.getFlowId());
userAssetRecord2.setType(18);
//18、提货
userAssetRecord2.setType(AssetRecordTypeEnum.DRAW_GOODS.getType());
userAssetRecord2.setStatus(2);
userAssetRecord2.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord2);
......@@ -991,7 +994,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(orderDetail.getCoin());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord);
......@@ -1018,7 +1021,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord2.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord2.setCoin(orderDetail.getCoin());
userAssetRecord2.setFlowId(OrderUtil.getFlowId());
userAssetRecord2.setType(18);
//18、提货
userAssetRecord2.setType(AssetRecordTypeEnum.DRAW_GOODS.getType());
userAssetRecord2.setStatus(2);
userAssetRecord2.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord2);
......@@ -1060,7 +1064,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(orderDetail.getCoin());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
//商品币购买
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord);
......@@ -1087,7 +1092,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord2.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord2.setCoin(orderDetail.getCoin());
userAssetRecord2.setFlowId(OrderUtil.getFlowId());
userAssetRecord2.setType(18);
//18、提货
userAssetRecord2.setType(AssetRecordTypeEnum.DRAW_GOODS.getType());
userAssetRecord2.setStatus(2);
userAssetRecord2.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord2);
......@@ -1129,7 +1135,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord.setCoin(o.toString());
userAssetRecord.setFlowId(OrderUtil.getFlowId());
userAssetRecord.setType(12);
userAssetRecord.setType(AssetRecordTypeEnum.BUY_GOODS.getType());
userAssetRecord.setStatus(2);
userAssetRecord.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord);
......@@ -1156,7 +1162,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
userAssetRecord2.setAmount(new BigDecimal(orderDetail.getNumber()));
userAssetRecord2.setCoin(orderDetail.getCoin());
userAssetRecord2.setFlowId(OrderUtil.getFlowId());
userAssetRecord2.setType(18);
//18、提货
userAssetRecord2.setType(AssetRecordTypeEnum.DRAW_GOODS.getType());
userAssetRecord2.setStatus(2);
userAssetRecord2.setNote(order.getOid());
userAssetRecordService.save(userAssetRecord2);
......@@ -1200,11 +1207,13 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
return;
}
/**
* 校验关单前的订单状态:待支付
* 关单前的订单状态:待支付
*/
checkOrderStateBeforeClose(order);
order.setOrderState(2);
int update = orderMapper.updateById(order);
UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("oid", order.getOid())
.eq("order_state", OrderStateEnum.ORDER_STATE_TO_PAY.getState());
int update = orderMapper.update(order, updateWrapper);
if (update == 0) {
throw new RuntimeException("update order fail");
}
......
......@@ -9,6 +9,7 @@ import com.fzm.mall.server.front.asset.model.UserAsset;
import com.fzm.mall.server.front.asset.model.UserAssetRecord;
import com.fzm.mall.server.front.asset.service.IUserAssetRecordService;
import com.fzm.mall.server.front.asset.service.IUserAssetService;
import com.fzm.mall.server.front.enums.AssetRecordTypeEnum;
import com.fzm.mall.server.front.enums.CoinNameEnum;
import com.fzm.mall.server.front.enums.QueueTypeEnum;
import com.fzm.mall.server.front.mq.MsgProducer;
......@@ -124,7 +125,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
assetRecord.setFlowId(OrderUtil.getFlowId());
assetRecord.setStatus(2);
assetRecord.setCoin(CoinNameEnum.MALLCOIN.value());
assetRecord.setType(23);
//注册奖励
assetRecord.setType(AssetRecordTypeEnum.REGISTER_REWARD.getType());
assetRecord.setAmount(new BigDecimal(register_reward.getDictValue()));
assetRecordService.save(assetRecord);
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment