|
@@ -7,25 +7,27 @@ import cn.hutool.core.lang.Assert;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
-import com.cyksj.mapper.GoodsDonMapper;
|
|
|
|
|
-import com.cyksj.mapper.YhShopGeneralGoodsRateMapper;
|
|
|
|
|
-import com.cyksj.mapper.YhShopUserBusinessDefaultRateConfigMapper;
|
|
|
|
|
|
|
+import com.cyksj.mapper.*;
|
|
|
import com.cyksj.mapper.shop.YhShopMapper;
|
|
import com.cyksj.mapper.shop.YhShopMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.manage.entity.YhShop;
|
|
import com.cyksj.model.manage.entity.YhShop;
|
|
|
|
|
+import com.cyksj.model.request.DistributeApplyMoneyReq;
|
|
|
import com.cyksj.model.request.ShopGeneralGoodsRateReq;
|
|
import com.cyksj.model.request.ShopGeneralGoodsRateReq;
|
|
|
import com.cyksj.model.request.YhShopVerifyReq;
|
|
import com.cyksj.model.request.YhShopVerifyReq;
|
|
|
import com.cyksj.model.views.GoodsDonSkuView;
|
|
import com.cyksj.model.views.GoodsDonSkuView;
|
|
|
import com.cyksj.service.YhShopUserPlatDistributeRateService;
|
|
import com.cyksj.service.YhShopUserPlatDistributeRateService;
|
|
|
import com.cyksj.service.mange.CmsYhShopCommonService;
|
|
import com.cyksj.service.mange.CmsYhShopCommonService;
|
|
|
import com.cyksj.service.mange.business.UserBusinessRateService;
|
|
import com.cyksj.service.mange.business.UserBusinessRateService;
|
|
|
|
|
+import com.cyksj.service.user.UserBenefitsService;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
import org.springframework.dao.DuplicateKeyException;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
import java.util.Optional;
|
|
import java.util.Optional;
|
|
@@ -39,6 +41,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
*/
|
|
*/
|
|
|
@Service
|
|
@Service
|
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
|
|
|
+@Slf4j
|
|
|
public class CmsYhShopCommonServiceImpl implements CmsYhShopCommonService {
|
|
public class CmsYhShopCommonServiceImpl implements CmsYhShopCommonService {
|
|
|
private final GoodsDonMapper goodsDonMapper;
|
|
private final GoodsDonMapper goodsDonMapper;
|
|
|
|
|
|
|
@@ -52,6 +55,12 @@ public class CmsYhShopCommonServiceImpl implements CmsYhShopCommonService {
|
|
|
|
|
|
|
|
private final YhShopUserBusinessDefaultRateConfigMapper yhShopUserBusinessDefaultRateConfigMapper;
|
|
private final YhShopUserBusinessDefaultRateConfigMapper yhShopUserBusinessDefaultRateConfigMapper;
|
|
|
|
|
|
|
|
|
|
+ private final YhShopUserDistributeBusinessRateMapper yhShopUserDistributeBusinessRateMapper;
|
|
|
|
|
+
|
|
|
|
|
+ private final YhShopDistributeMoneyApplyMapper yhShopDistributeMoneyApplyMapper;
|
|
|
|
|
+
|
|
|
|
|
+ private final UserBenefitsService userBenefitsService;
|
|
|
|
|
+
|
|
|
private final BeanSearcher beanSearcher;
|
|
private final BeanSearcher beanSearcher;
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -173,4 +182,66 @@ public class CmsYhShopCommonServiceImpl implements CmsYhShopCommonService {
|
|
|
yhShopUserBusinessDefaultRateConfigMapper.updateById(config);
|
|
yhShopUserBusinessDefaultRateConfigMapper.updateById(config);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void setBusinessRate(List<UserDistributeBusinessRate> rates) {
|
|
|
|
|
+ rates.forEach(yhShopUserDistributeBusinessRate -> {
|
|
|
|
|
+ Long rateId = yhShopUserDistributeBusinessRate.getId();
|
|
|
|
|
+ YhShopUserDistributeBusinessRate businessRate = Optional.ofNullable(yhShopUserDistributeBusinessRateMapper.selectById(rateId)).orElse(new YhShopUserDistributeBusinessRate());
|
|
|
|
|
+ BeanUtil.copyProperties(yhShopUserDistributeBusinessRate, businessRate);
|
|
|
|
|
+ Number number = beanSearcher.searchCount(GoodsDonSkuView.class, MapUtils.builder()
|
|
|
|
|
+ .field(GoodsDonSkuView::getGoodsId, yhShopUserDistributeBusinessRate.getGoodsId())
|
|
|
|
|
+ .field(GoodsDonSkuView::getSkuId, yhShopUserDistributeBusinessRate.getSkuId())
|
|
|
|
|
+ .field(GoodsDonSkuView::getGoodsDonDeleted, true)
|
|
|
|
|
+ .build());
|
|
|
|
|
+ if (number.intValue() == 0) {
|
|
|
|
|
+ yhShopUserDistributeBusinessRateMapper.delete(Wrappers.lambdaQuery(YhShopUserDistributeBusinessRate.class)
|
|
|
|
|
+ .eq(YhShopUserDistributeBusinessRate::getBusinessId, yhShopUserDistributeBusinessRate.getBusinessId())
|
|
|
|
|
+ .eq(YhShopUserDistributeBusinessRate::getGoodsId, yhShopUserDistributeBusinessRate.getGoodsId())
|
|
|
|
|
+ .eq(YhShopUserDistributeBusinessRate::getSkuId, yhShopUserDistributeBusinessRate.getSkuId()));
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (businessRate.getId() == null) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ yhShopUserDistributeBusinessRateMapper.insert(businessRate);
|
|
|
|
|
+ } catch (DuplicateKeyException e) {
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ yhShopUserDistributeBusinessRateMapper.updateById(businessRate);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ @Transactional(rollbackFor = Throwable.class)
|
|
|
|
|
+ public void verifyYhShopApplyMoney(DistributeApplyMoneyReq distributeApplyMoneyReq) {
|
|
|
|
|
+ YhShopDistributeMoneyApply.Status status = YhShopDistributeMoneyApply.Status.checkStatus(distributeApplyMoneyReq.getVerifyStatus());
|
|
|
|
|
+ if (status == null || status == YhShopDistributeMoneyApply.Status.verifying) {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("审核状态错误");
|
|
|
|
|
+ }
|
|
|
|
|
+ YhShopDistributeMoneyApply distributeMoneyApply = yhShopDistributeMoneyApplyMapper.selectById(distributeApplyMoneyReq.getId());
|
|
|
|
|
+ if (distributeMoneyApply == null) {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("提现记录不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (distributeMoneyApply.getVerifyStatus() != YhShopDistributeMoneyApply.Status.verifying) {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("该提现记录已处理,无法再进行审核");
|
|
|
|
|
+ }
|
|
|
|
|
+ distributeMoneyApply.setVerifyStatus(status);
|
|
|
|
|
+ if (YhShopDistributeMoneyApply.Status.fail.name().equals(distributeApplyMoneyReq.getVerifyStatus()) && StrUtil.isEmpty(distributeApplyMoneyReq.getReason())) {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("拒绝原因为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (YhShopDistributeMoneyApply.Status.fail.name().equals(distributeApplyMoneyReq.getVerifyStatus())) {
|
|
|
|
|
+ distributeMoneyApply.setReason(distributeApplyMoneyReq.getReason());
|
|
|
|
|
+ Long userId = distributeMoneyApply.getUserId();
|
|
|
|
|
+ userBenefitsService.addYhsMoney(userId, distributeMoneyApply.getMoney());
|
|
|
|
|
+ log.info("店铺提现审核失败,归还店铺申请提现金额:{}至用户{}结束", distributeMoneyApply.getMoney().divide(BigDecimal.valueOf(100)), userId);
|
|
|
|
|
+ }
|
|
|
|
|
+ if (YhShopDistributeMoneyApply.Status.success.name().equals(distributeApplyMoneyReq.getVerifyStatus())) {
|
|
|
|
|
+ if (StrUtil.isBlank(distributeApplyMoneyReq.getImg())) {
|
|
|
|
|
+ throw BusinessRuntimeException.getInstance("审核成功时,打款图片不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ distributeMoneyApply.setImg(distributeApplyMoneyReq.getImg());
|
|
|
|
|
+ }
|
|
|
|
|
+ yhShopDistributeMoneyApplyMapper.updateById(distributeMoneyApply);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|