xiaoyong931011
2023-08-16 47d2ae569bc1bed2e6881768cfd7cf9f7d3d8293
src/main/java/cc/mrbird/febs/dapp/service/impl/AdminMallGoodsService.java
@@ -3,17 +3,20 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.dapp.dto.AddMallGoodsDto;
import cc.mrbird.febs.dapp.dto.HlmBasicPerkDto;
import cc.mrbird.febs.dapp.dto.MallGoodsUpdateDto;
import cc.mrbird.febs.dapp.dto.MallOrderInfoDto;
import cc.mrbird.febs.dapp.entity.MallGoods;
import cc.mrbird.febs.dapp.entity.MallOrderInfo;
import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
import cc.mrbird.febs.dapp.mapper.MallGoodsMapper;
import cc.mrbird.febs.dapp.mapper.MallOrderInfoMapper;
import cc.mrbird.febs.dapp.entity.*;
import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.IAdminMallGoodsService;
import cc.mrbird.febs.dapp.vo.AdminMallGoodsCategoryTreeVo;
import cc.mrbird.febs.dapp.vo.AdminMallGoodsCategoryVo;
import cc.mrbird.febs.dapp.vo.AdminMallMoneyFlowVo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -21,6 +24,12 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Service
@@ -31,6 +40,10 @@
    private final MallGoodsMapper mallGoodsMapper;
    private final MallOrderInfoMapper mallOrderInfoMapper;
    private final DappFundFlowDao dappFundFlowDao;
    private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
    private final MallGoodsCategoryMapper mallGoodsCategoryMapper;
    private final PlatformBannerMapper platformBannerMapper;
    @Override
    public IPage<MallGoods> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) {
@@ -141,4 +154,240 @@
        IPage<AdminMallMoneyFlowVo> adminMallMoneyFlowVos = dappFundFlowDao.selectOrderMoneyFlowInPage(page, mallOrder);
        return adminMallMoneyFlowVos;
    }
    @Override
    public List<DataDictionaryCustom> findDataDicByType(String type) {
        return dataDictionaryCustomMapper.selectDicByType(type);
    }
    @Override
    public void bonusSystemSetting(Map<String, Object> map) {
        for (Map.Entry<String, Object> entry : map.entrySet()) {
            if (entry.getValue() instanceof String) {
                dataDictionaryCustomMapper.updateDicValueByTypeAndCode(null, entry.getKey(), (String) entry.getValue());
            } else {
                List<LinkedHashMap<String, Object>> value = (List<LinkedHashMap<String, Object>>) entry.getValue();
                for (LinkedHashMap<String, Object> dic : value) {
                    String type = (String) dic.get("type");
                    String code = (String) dic.get("code");
                    String dataValue = (String) dic.get("value");
                    dataDictionaryCustomMapper.updateDicValueByTypeAndCode(type, code, dataValue);
                }
            }
        }
    }
    @Override
    public void hlmBasicPerk(HlmBasicPerkDto hlmBasicPerkDto) {
        updateDataDic(DataDictionaryEnum.DONATE_SCORE_PERCENT.getType(),
                DataDictionaryEnum.DONATE_SCORE_PERCENT.getCode(),
                hlmBasicPerkDto.getDonateScorePercent());
        updateDataDic(DataDictionaryEnum.STATIC_RELEASE.getType(),
                DataDictionaryEnum.STATIC_RELEASE.getCode(),
                hlmBasicPerkDto.getStaticRelease());
        updateDataDic(DataDictionaryEnum.DIRECT_RELEASE.getType(),
                DataDictionaryEnum.DIRECT_RELEASE.getCode(),
                hlmBasicPerkDto.getDirectRelease());
        updateDataDic(DataDictionaryEnum.MAX_RELEASE.getType(),
                DataDictionaryEnum.MAX_RELEASE.getCode(),
                hlmBasicPerkDto.getMaxRelease());
        updateDataDic(DataDictionaryEnum.USDT_ORDER_PERCENT.getType(),
                DataDictionaryEnum.USDT_ORDER_PERCENT.getCode(),
                hlmBasicPerkDto.getUsdtOrderRelease());
        updateDataDic(DataDictionaryEnum.TEAM_PERK_LEVEL_EQUALS.getType(),
                DataDictionaryEnum.TEAM_PERK_LEVEL_EQUALS.getCode(),
                hlmBasicPerkDto.getTeamPerkLevelEquals());
        updateDataDic(DataDictionaryEnum.MEMBER_BUY_MAX_AMOUNT.getType(),
                DataDictionaryEnum.MEMBER_BUY_MAX_AMOUNT.getCode(),
                hlmBasicPerkDto.getMemberBuyMaxAmount());
        updateDataDic(DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getType(),
                DataDictionaryEnum.PACKAGE_TOTAL_SCORE.getCode(),
                hlmBasicPerkDto.getPackageTotalScore());
        updateDataDic(DataDictionaryEnum.PACKAGE_SCORE_PRICE.getType(),
                DataDictionaryEnum.PACKAGE_SCORE_PRICE.getCode(),
                hlmBasicPerkDto.getPackageScorePrice());
        updateDataDic(DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getType(),
                DataDictionaryEnum.PACKAGE_SALE_TO_POOR_PERCENT.getCode(),
                hlmBasicPerkDto.getPackageSaleToPoorPercent());
        updateDataDic(DataDictionaryEnum.PACKAGE_POOR.getType(),
                DataDictionaryEnum.PACKAGE_POOR.getCode(),
                hlmBasicPerkDto.getPackagePoor());
        updateDataDic(DataDictionaryEnum.WITHDRAW_FEE.getType(),
                DataDictionaryEnum.WITHDRAW_FEE.getCode(),
                hlmBasicPerkDto.getWithDrawFee());
    }
    @Override
    public IPage<MallGoodsCategory> getCategoryList(MallGoodsCategory mallGoodsCategory, QueryRequest request) {
        Page<MallGoodsCategory> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<MallGoodsCategory> mallGoodsCategorys = mallGoodsCategoryMapper.selectCategoryListInPage(page, mallGoodsCategory);
        return mallGoodsCategorys;
    }
    @Override
    public FebsResponse addCategory(MallGoodsCategory mallGoodsCategory) {
        String name = mallGoodsCategory.getName();
        if(StrUtil.isEmpty(name)){
            return new FebsResponse().fail().message("分类名称不能为空");
        }
        List<MallGoodsCategory> categorys = mallGoodsCategoryMapper.selectCategoryByName(name);
        if(CollUtil.isNotEmpty(categorys)){
            return new FebsResponse().fail().message("分类名称不能重复");
        }
        Long parentIdParam = mallGoodsCategory.getParentId() == null ? 0L:mallGoodsCategory.getParentId();
        Integer isRecommendParam = mallGoodsCategory.getIsRecommend();
        if(parentIdParam > 0 && isRecommendParam == 1){
            return new FebsResponse().fail().message("子分类不能选择【是否推荐】为【是】");
        }
        MallGoodsCategory goodsCategory = new MallGoodsCategory();
        goodsCategory.setName(name);
        goodsCategory.setImage(mallGoodsCategory.getImage());
        if(ObjectUtil.isNotEmpty(mallGoodsCategory.getParentId())){
            Long parentId = mallGoodsCategory.getParentId();
            MallGoodsCategory mallGoodsCategoryParent = mallGoodsCategoryMapper.selectById(parentId);
            goodsCategory.setParentId(mallGoodsCategory.getParentId());
            if(StrUtil.isNotEmpty(mallGoodsCategoryParent.getParentIds())){
                goodsCategory.setParentIds(mallGoodsCategoryParent.getParentIds()+","+mallGoodsCategory.getParentId()+",");
            }else{
                goodsCategory.setParentIds(mallGoodsCategory.getParentId()+",");
            }
            goodsCategory.setIsRecommend(0);
        }else{
            goodsCategory.setParentId(0L);
            goodsCategory.setIsRecommend(mallGoodsCategory.getIsRecommend());
        }
        mallGoodsCategoryMapper.insert(goodsCategory);
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse updateCategory(MallGoodsCategory mallGoodsCategoryParam) {
        String name = mallGoodsCategoryParam.getName();
        if(StrUtil.isEmpty(name)){
            return new FebsResponse().fail().message("名称不能为空");
        }
        Long parentIdParam = mallGoodsCategoryParam.getParentId() == null ? 0L:mallGoodsCategoryParam.getParentId();
        Integer isRecommendParam = mallGoodsCategoryParam.getIsRecommend();
        if(parentIdParam > 0 && isRecommendParam == 1){
            return new FebsResponse().fail().message("子分类不能选择【是否推荐】为【是】");
        }
        Long id = mallGoodsCategoryParam.getId();
        MallGoodsCategory mallGoodsCategory = mallGoodsCategoryMapper.selectById(id);
        mallGoodsCategory.setName(mallGoodsCategoryParam.getName());
        mallGoodsCategory.setImage(mallGoodsCategoryParam.getImage());
        mallGoodsCategory.setIndexNum(mallGoodsCategoryParam.getIndexNum());
        if(ObjectUtil.isNotEmpty(mallGoodsCategoryParam.getParentId())){
            Long parentId = mallGoodsCategoryParam.getParentId();
            MallGoodsCategory mallGoodsCategoryParent = mallGoodsCategoryMapper.selectById(parentId);
            mallGoodsCategory.setParentId(mallGoodsCategoryParam.getParentId());
            if(StrUtil.isNotEmpty(mallGoodsCategoryParent.getParentIds())){
                mallGoodsCategory.setParentIds(mallGoodsCategoryParent.getParentIds()+","+mallGoodsCategory.getParentId()+",");
            }else{
                mallGoodsCategory.setParentIds(mallGoodsCategory.getParentId()+",");
            }
            mallGoodsCategory.setIsRecommend(0);
        }else{
            mallGoodsCategory.setParentId(0L);
            mallGoodsCategory.setIsRecommend(mallGoodsCategoryParam.getIsRecommend());
        }
        mallGoodsCategoryMapper.updateById(mallGoodsCategory);
        return new FebsResponse().success();
    }
    @Override
    public FebsResponse delCategary(Long id) {
        MallGoodsCategory mallGoodsCategory = mallGoodsCategoryMapper.selectById(id);
        if(ObjectUtil.isEmpty(mallGoodsCategory)){
            return new FebsResponse().fail().message("系统繁忙,请刷新页面重试");
        }
        List<MallGoodsCategory> childCategarys = mallGoodsCategoryMapper.selectChildCategaryById(id);
        if(CollUtil.isNotEmpty(childCategarys)){
            for(MallGoodsCategory childCategary : childCategarys){
                Long childCategaryId = childCategary.getId();
                List<MallGoods> mallChildGoods = mallGoodsMapper.selectMallGoodsByCategaryId(childCategaryId);
                if(CollUtil.isNotEmpty(mallChildGoods)){
                    return new FebsResponse().fail().message("该分类下的子类【"+childCategary.getName()+"】还有商品,请先删除商品或者修改商品分类");
                }
            }
        }
        if(CollUtil.isNotEmpty(childCategarys)){
            return new FebsResponse().fail().message("该分类下还有子类,请先删除子类");
        }
        List<MallGoods> mallGoods = mallGoodsMapper.selectMallGoodsByCategaryId(id);
        if(CollUtil.isNotEmpty(mallGoods)){
            return new FebsResponse().fail().message("该分类下还有商品,请先删除商品或者修改商品分类");
        }
        mallGoodsCategoryMapper.deleteById(mallGoodsCategory);
        return new FebsResponse().success();
    }
    @Override
    public AdminMallGoodsCategoryVo getMallGoodsCategoryInfoById(long id) {
        return mallGoodsCategoryMapper.getMallGoodsCategoryInfoById(id);
    }
    @Override
    public List<AdminMallGoodsCategoryTreeVo> getParentCategorys() {
        List<AdminMallGoodsCategoryTreeVo> adminMallGoodsCategoryTreeVos = mallGoodsCategoryMapper.getParentCategorys();
        return adminMallGoodsCategoryTreeVos;
    }
    @Override
    public IPage<PlatformBanner> findPlatformBannerInPage(PlatformBanner platformBannerEntity,
                                                          QueryRequest request) {
        Page<PlatformBanner> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<PlatformBanner> platformBannerEntitys = platformBannerMapper.findPlatformBannerInPage(page, platformBannerEntity);
        return platformBannerEntitys;
    }
    @Override
    public PlatformBanner selectPlatformBannerById(long id) {
        PlatformBanner platformBannerEntity = platformBannerMapper.selectById(id);
        return platformBannerEntity;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public FebsResponse platformBannerConfirm(@Valid PlatformBanner platformBannerEntity) {
        platformBannerMapper.updateById(platformBannerEntity);
        return new FebsResponse().success();
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public FebsResponse platformBannerDelete(@NotNull(message = "{required}") Long id) {
        platformBannerMapper.deleteById(id);
        return new FebsResponse().success();
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void platformBannerAdd(@Valid PlatformBanner platformBannerEntity) {
        PlatformBanner platformBannerEntityAdd = new PlatformBanner();
        platformBannerEntityAdd.setImageUrl(platformBannerEntity.getImageUrl());
        platformBannerEntityAdd.setIsInside(platformBannerEntity.getIsInside());
        platformBannerEntityAdd.setIsJump(platformBannerEntity.getIsJump());
        platformBannerEntityAdd.setIsTop(platformBannerEntity.getIsTop());
        platformBannerEntityAdd.setJumpUrl(platformBannerEntity.getJumpUrl());
        platformBannerEntityAdd.setName(platformBannerEntity.getName());
        platformBannerEntityAdd.setShowPort(platformBannerEntity.getShowPort());
        platformBannerEntityAdd.setSort(platformBannerEntity.getSort());
        platformBannerMapper.insert(platformBannerEntityAdd);
    }
    public void updateDataDic(String type, String code, String value) {
        DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(type, code);
        if (dic != null) {
            dic.setValue(value);
            dataDictionaryCustomMapper.updateById(dic);
        }
    }
}