package cc.mrbird.febs.dapp.service.impl;
|
|
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.*;
|
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;
|
import lombok.RequiredArgsConstructor;
|
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
|
@RequiredArgsConstructor
|
@Transactional
|
public class AdminMallGoodsService extends ServiceImpl<MallGoodsMapper, MallGoods> implements IAdminMallGoodsService {
|
|
private final MallGoodsMapper mallGoodsMapper;
|
private final MallOrderInfoMapper mallOrderInfoMapper;
|
private final DappFundFlowDao dappFundFlowDao;
|
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
|
private final MallGoodsCategoryMapper mallGoodsCategoryMapper;
|
|
private final PlatformBannerMapper platformBannerMapper;
|
private final MallGoodsImagesMapper mallGoodsImagesMapper;
|
|
@Override
|
public IPage<MallGoods> getCategoryListInPage(MallGoods mallGoods, QueryRequest request) {
|
Page<MallGoods> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<MallGoods> adminMallGoodsVos = this.baseMapper.selectMallGoodsInPage(page, mallGoods);
|
return adminMallGoodsVos;
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse addMallGoods(AddMallGoodsDto addMallGoodsDto) {
|
String goodsName = addMallGoodsDto.getGoodsName();
|
Integer mallGoodsByGoodsName = mallGoodsMapper.selectMallGoodsCountByGoodsName(goodsName);
|
if (mallGoodsByGoodsName > 0) {
|
return new FebsResponse().fail().message("商品名称不能重复");
|
}
|
String goodsNo = addMallGoodsDto.getGoodsNo();
|
Integer mallGoodsByGoodsNo = mallGoodsMapper.selectMallGoodsCountByGoodsNo(goodsNo);
|
if (mallGoodsByGoodsNo > 0) {
|
return new FebsResponse().fail().message("商品编号不能重复");
|
}
|
MallGoods mallGoods = new MallGoods();
|
//新增商品
|
BeanUtil.copyProperties(addMallGoodsDto, mallGoods);
|
mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
|
mallGoodsMapper.insert(mallGoods);
|
|
String thumbs = addMallGoodsDto.getThumbs();
|
if (StrUtil.isNotEmpty(thumbs)) {
|
List<String> imgs = StrUtil.splitTrim(thumbs, ",");
|
if (CollUtil.isNotEmpty(imgs)) {
|
int i = 1;
|
for (String img : imgs) {
|
MallGoodsImages mallGoodsImages = new MallGoodsImages();
|
mallGoodsImages.setGoodsId(mallGoods.getId());
|
mallGoodsImages.setImageUrl(img);
|
mallGoodsImages.setSeq(i);
|
mallGoodsImagesMapper.insert(mallGoodsImages);
|
i++;
|
}
|
}
|
}
|
return new FebsResponse().success().message("操作成功");
|
}
|
|
@Override
|
public FebsResponse upMallGoods(Long id) {
|
MallGoods mallGoods = mallGoodsMapper.selectById(id);
|
if (ObjectUtil.isEmpty(mallGoods)) {
|
return new FebsResponse().fail().message("商品不存在,请刷新当前页面");
|
}
|
mallGoods.setIsSale(MallGoods.ISSALE_STATUS_ENABLE);
|
mallGoodsMapper.updateById(mallGoods);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public FebsResponse downMallGoods(Long id) {
|
MallGoods mallGoods = mallGoodsMapper.selectById(id);
|
if (ObjectUtil.isEmpty(mallGoods)) {
|
return new FebsResponse().fail().message("商品不存在,请刷新当前页面");
|
}
|
mallGoods.setIsSale(MallGoods.ISSALE_STATUS_DISABLED);
|
mallGoodsMapper.updateById(mallGoods);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse delMallGoods(Long id) {
|
MallGoods mallGoods = mallGoodsMapper.selectById(id);
|
if (ObjectUtil.isEmpty(mallGoods)) {
|
return new FebsResponse().fail().message("商品不存在,请刷新当前页面");
|
}
|
Integer isSale = mallGoods.getIsSale();
|
if (MallGoods.ISSALE_STATUS_DISABLED != isSale) {
|
return new FebsResponse().fail().message("请先下架该商品");
|
}
|
|
mallGoodsMapper.deleteById(mallGoods);
|
return new FebsResponse().success();
|
}
|
|
@Override
|
public MallGoods selectGoodsById(long id) {
|
MallGoods mallGoods = mallGoodsMapper.selectById(id);
|
List<String> thumbs = mallGoodsImagesMapper.selectByGoodId(mallGoods.getId());
|
mallGoods.setImages(thumbs);
|
return mallGoods;
|
}
|
|
@Override
|
@Transactional
|
public FebsResponse updateMallGoods(MallGoodsUpdateDto mallGoodsUpdateDto) {
|
String goodsName = mallGoodsUpdateDto.getGoodsName();
|
Integer mallGoodsByGoodsName = mallGoodsMapper.selectMallGoodsCountByGoodsNameAndGoodId(goodsName, mallGoodsUpdateDto.getId());
|
if (mallGoodsByGoodsName > 0) {
|
return new FebsResponse().fail().message("商品名称不能重复");
|
}
|
String goodsNo = mallGoodsUpdateDto.getGoodsNo();
|
Integer mallGoodsByGoodsNo = mallGoodsMapper.selectMallGoodsCountByGoodsNoAndGoodId(goodsNo, mallGoodsUpdateDto.getId());
|
if (mallGoodsByGoodsNo > 0) {
|
return new FebsResponse().fail().message("商品编号不能重复");
|
}
|
|
//新增商品
|
MallGoods mallGoods = mallGoodsMapper.selectById(mallGoodsUpdateDto.getId());
|
|
BeanUtil.copyProperties(mallGoodsUpdateDto, mallGoods);
|
mallGoodsMapper.updateById(mallGoods);
|
|
mallGoodsImagesMapper.deleteByGoodsId(mallGoodsUpdateDto.getId());
|
String thumbs = mallGoodsUpdateDto.getThumbs();
|
if (StrUtil.isNotEmpty(thumbs)) {
|
List<String> imgs = StrUtil.splitTrim(thumbs, ",");
|
if (CollUtil.isNotEmpty(imgs)) {
|
int i = 1;
|
for (String img : imgs) {
|
MallGoodsImages mallGoodsImages = new MallGoodsImages();
|
mallGoodsImages.setGoodsId(mallGoods.getId());
|
mallGoodsImages.setImageUrl(img);
|
mallGoodsImages.setSeq(i);
|
mallGoodsImagesMapper.insert(mallGoodsImages);
|
i++;
|
}
|
}
|
}
|
|
return new FebsResponse().success().message("操作成功");
|
}
|
|
@Override
|
public IPage<MallOrderInfo> getOrderListInPage(MallOrderInfoDto mallOrderInfo, QueryRequest request) {
|
Page<MallOrderInfo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
IPage<MallOrderInfo> adminMallOrderInfoVos = mallGoodsMapper.selectOrderListInPage(page, mallOrderInfo);
|
return adminMallOrderInfoVos;
|
}
|
|
@Override
|
public IPage<AdminMallMoneyFlowVo> orderMoneyFlow(QueryRequest request, MallOrderInfo mallOrderInfo) {
|
MallOrderInfo mallOrder = mallOrderInfoMapper.selectById(mallOrderInfo.getId());
|
Page<AdminMallMoneyFlowVo> page = new Page<>(request.getPageNum(), request.getPageSize());
|
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);
|
}
|
}
|
|
}
|