|
|
@@ -4,9 +4,11 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.cyksj.common.constant.Constant;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.common.util.Codec;
|
|
|
import com.cyksj.common.util.Jsons;
|
|
|
+import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.common.util.Xmls;
|
|
|
import com.cyksj.mapper.GoodsWholesaleMapper;
|
|
|
import com.cyksj.mapper.GoodsWholesaleOrderDonMapper;
|
|
|
@@ -14,12 +16,12 @@ import com.cyksj.mapper.GoodsWholesaleUserAccountMapper;
|
|
|
import com.cyksj.mapper.GoodsWholesaleUserDepositMapper;
|
|
|
import com.cyksj.mapper.channel.ShopConfigMapper;
|
|
|
import com.cyksj.mapper.manage.cms.CmsUserMapper;
|
|
|
-import com.cyksj.model.entity.GoodsWholesale;
|
|
|
-import com.cyksj.model.entity.GoodsWholesaleOrderDon;
|
|
|
-import com.cyksj.model.entity.GoodsWholesaleUserAccount;
|
|
|
-import com.cyksj.model.entity.GoodsWholesaleUserDeposit;
|
|
|
+import com.cyksj.mapper.sys.SysConfigMapper;
|
|
|
+import com.cyksj.model.dto.GoodsWholesaleUserDepositDto;
|
|
|
+import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.service.goods.GoodsWholesaleService;
|
|
|
import com.cyksj.service.order.OrderRefundService;
|
|
|
+import com.cyksj.service.user.UserBindRelationService;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -52,6 +54,10 @@ public class GoodsWholesaleServiceImpl extends ServiceImpl<GoodsWholesaleMapper,
|
|
|
|
|
|
private final GoodsWholesaleUserAccountMapper goodsWholesaleUserAccountMapper;
|
|
|
|
|
|
+ private final SysConfigMapper sysConfigMapper;
|
|
|
+
|
|
|
+ private final UserBindRelationService userBindRelationService;
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
public void depositRefund(Long id, Long adminId) throws Exception {
|
|
|
@@ -73,6 +79,8 @@ public class GoodsWholesaleServiceImpl extends ServiceImpl<GoodsWholesaleMapper,
|
|
|
String outRefundNo = orderRefundService.refundWholesaleUserDeposit(goodsWholesaleUserDeposit);
|
|
|
goodsWholesaleUserDeposit.setRefundOutNo(outRefundNo);
|
|
|
Optional.ofNullable(cmsUserMapper.selectById(adminId)).ifPresent(cu -> goodsWholesaleUserDeposit.setOperator(cu.getNickname()));
|
|
|
+ //是否达到目标额
|
|
|
+ setStatusIfGoal(goodsWholesaleUserDeposit);
|
|
|
goodsWholesaleUserDepositMapper.updateById(goodsWholesaleUserDeposit);
|
|
|
}
|
|
|
|
|
|
@@ -177,4 +185,31 @@ public class GoodsWholesaleServiceImpl extends ServiceImpl<GoodsWholesaleMapper,
|
|
|
wholesaleOrderDonMapper.updateById(orderDon);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void setStatusIfGoal(GoodsWholesaleUserDeposit goodsWholesaleUserDeposit) throws Exception {
|
|
|
+ //是否已满足 批发足够账号
|
|
|
+ SysConfig sysConfig = sysConfigMapper.selectOne(Wrappers.lambdaQuery(SysConfig.class)
|
|
|
+ .eq(SysConfig::getSysKey, Constant.WHOLESALE_DEPOSIT_KEY)
|
|
|
+ .last("limit 1"));
|
|
|
+ if (sysConfig == null || StrUtil.isEmpty(sysConfig.getSysValue())) {
|
|
|
+ log.error("押金配置已失效");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ GoodsWholesaleUserDepositDto goodsWholesaleUserDepositDto = Jsons.parseObject(sysConfig.getSysValue(), GoodsWholesaleUserDepositDto.class);
|
|
|
+ Integer num = goodsWholesaleUserDepositDto.getNum();
|
|
|
+ List<Long> userIdList = userBindRelationService.getRelationUserIdList(goodsWholesaleUserDeposit.getUserId(), null);
|
|
|
+ Integer payNum = wholesaleOrderDonMapper.getUserWholesaleNumByUserIds(userIdList, null);
|
|
|
+ if (payNum >= num) {
|
|
|
+ //腿还押金
|
|
|
+ try {
|
|
|
+ String outNo = orderRefundService.refundWholesaleUserDeposit(goodsWholesaleUserDeposit);
|
|
|
+ goodsWholesaleUserDeposit.setRefundOutNo(outNo);
|
|
|
+ goodsWholesaleUserDeposit.setStatus(GoodsWholesaleUserDeposit.Status.refund);
|
|
|
+ //批发数量已达
|
|
|
+ goodsWholesaleUserDeposit.setIsGoal(true);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.info("押金退款错误:{}", StringUtil.getErrorText(e));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|