| | |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.utils.MallUtils; |
| | | import cc.mrbird.febs.common.utils.ValidateEntityUtils; |
| | | import cc.mrbird.febs.mall.conversion.MallGoodsConversion; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | | import cc.mrbird.febs.mall.entity.*; |
| | |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | |
| | | @Transactional |
| | | public FebsResponse addMallGoods(AddMallGoodsDto addMallGoodsDto) { |
| | | String goodsName = addMallGoodsDto.getGoodsName(); |
| | | if (StrUtil.isEmpty(goodsName)) { |
| | | return new FebsResponse().fail().message("商品名称不能为空"); |
| | | } |
| | | Integer mallGoodsByGoodsName = mallGoodsMapper.selectMallGoodsCountByGoodsName(goodsName); |
| | | if (mallGoodsByGoodsName > 0) { |
| | | return new FebsResponse().fail().message("商品名称不能重复"); |
| | | } |
| | | String goodsNo = addMallGoodsDto.getGoodsNo(); |
| | | if (StrUtil.isEmpty(goodsNo)) { |
| | | return new FebsResponse().fail().message("商品编号不能为空"); |
| | | } |
| | | Integer mallGoodsByGoodsNo = mallGoodsMapper.selectMallGoodsCountByGoodsNo(goodsNo); |
| | | if (mallGoodsByGoodsNo > 0) { |
| | | return new FebsResponse().fail().message("商品编号不能重复"); |
| | | } |
| | | ValidateEntityUtils.ensureUnique(goodsName, MallGoods::getGoodsName, mallGoodsMapper::selectCount, "商品名称不能重复"); |
| | | String goodsNo = MallUtils.getOrderNum("PT"); |
| | | ValidateEntityUtils.ensureUnique(goodsNo, MallGoods::getGoodsNo, mallGoodsMapper::selectCount, "商品编号不能重复"); |
| | | addMallGoodsDto.setGoodsNo(goodsNo); |
| | | Integer carriageType = addMallGoodsDto.getCarriageType(); |
| | | if (addMallGoodsDto.getGoodsType() == 1) { |
| | | if (1 == carriageType) { |
| | |
| | | } |
| | | } else { |
| | | Long carriageRuleId = addMallGoodsDto.getCarriageRuleId(); |
| | | MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(carriageRuleId); |
| | | if (ObjectUtil.isEmpty(mallCarriageRule)) { |
| | | return new FebsResponse().fail().message("邮费模板不能为空"); |
| | | } |
| | | ValidateEntityUtils.ensureColumnValid(carriageRuleId, MallCarriageRule::getId, mallCarriageRuleMapper::selectOne, "邮费模板不能为空"); |
| | | } |
| | | } |
| | | |
| | | |
| | | // 付费商品 |
| | | if (addMallGoodsDto.getGoodsType() != 2) { |
| | |
| | | |
| | | @Override |
| | | public FebsResponse upMallGoods(Long id) { |
| | | MallGoods mallGoods = mallGoodsMapper.selectById(id); |
| | | if (ObjectUtil.isEmpty(mallGoods)) { |
| | | return new FebsResponse().fail().message("商品不存在,请刷新当前页面"); |
| | | } |
| | | MallGoods mallGoods = ValidateEntityUtils.ensureColumnReturnEntity(id,MallGoods::getId,mallGoodsMapper::selectOne,"商品不存在,请刷新当前页面"); |
| | | 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 mallGoods = ValidateEntityUtils.ensureColumnReturnEntity(id,MallGoods::getId,mallGoodsMapper::selectOne,"商品不存在,请刷新当前页面"); |
| | | 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("请先下架该商品"); |
| | | } |
| | | MallGoods mallGoods = ValidateEntityUtils.ensureColumnReturnEntity(id,MallGoods::getId,mallGoodsMapper::selectOne,"商品不存在,请刷新当前页面"); |
| | | ValidateEntityUtils.ensureEqual(mallGoods.getIsSale(), MallGoods.ISSALE_STATUS_DISABLED, "请先下架该商品"); |
| | | |
| | | mallGoodsStyleMapper.deleteByGoodsId(id); |
| | | mallGoodsSkuMapper.deleteByGoodsId(id); |
| | |
| | | |
| | | @Override |
| | | public FebsResponse goodsHot(Long id) { |
| | | MallGoods mallGoods = mallGoodsMapper.selectById(id); |
| | | if (ObjectUtil.isEmpty(mallGoods)) { |
| | | return new FebsResponse().fail().message("商品不存在,请刷新当前页面"); |
| | | } |
| | | MallGoods mallGoods = ValidateEntityUtils.ensureColumnReturnEntity(id,MallGoods::getId,mallGoodsMapper::selectOne,"商品不存在,请刷新当前页面"); |
| | | mallGoods.setIsHot(MallGoods.ISHOT_STATE_YES); |
| | | mallGoodsMapper.updateById(mallGoods); |
| | | return new FebsResponse().success(); |
| | |
| | | |
| | | @Override |
| | | public FebsResponse goodsNotHot(Long id) { |
| | | MallGoods mallGoods = mallGoodsMapper.selectById(id); |
| | | if (ObjectUtil.isEmpty(mallGoods)) { |
| | | return new FebsResponse().fail().message("商品不存在,请刷新当前页面"); |
| | | } |
| | | MallGoods mallGoods = ValidateEntityUtils.ensureColumnReturnEntity(id,MallGoods::getId,mallGoodsMapper::selectOne,"商品不存在,请刷新当前页面"); |
| | | mallGoods.setIsHot(MallGoods.ISHOT_STATE_NO); |
| | | mallGoodsMapper.updateById(mallGoods); |
| | | return new FebsResponse().success(); |
| | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse carriageRuleDelById(Long id) { |
| | | MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(mallCarriageRule)){ |
| | | return new FebsResponse().fail().message("操作失败"); |
| | | } |
| | | ValidateEntityUtils.ensureColumnValid(id, MallCarriageRule::getId, mallCarriageRuleMapper::selectOne, "模板不存在"); |
| | | List<MallGoods> mallGoods = this.baseMapper.selectMallGoodsListQueryByRuleId(id); |
| | | if(CollUtil.isNotEmpty(mallGoods)){ |
| | | StringBuffer goodsNameBuffer = new StringBuffer(); |
| | |
| | | @Transactional |
| | | public FebsResponse carriageRuleAdd(AdminCarriageRuleAddDto adminCarriageRuleAddDto) { |
| | | String ruleName = adminCarriageRuleAddDto.getRuleName(); |
| | | QueryWrapper<MallCarriageRule> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("name",ruleName); |
| | | List<MallCarriageRule> mallCarriageRules = mallCarriageRuleMapper.selectList(objectQueryWrapper); |
| | | if(CollUtil.isNotEmpty(mallCarriageRules)){ |
| | | return new FebsResponse().fail().message("标题不能重复"); |
| | | } |
| | | ValidateEntityUtils.ensureUnique(ruleName,MallCarriageRule::getName,mallCarriageRuleMapper::selectCount,"标题不能重复"); |
| | | |
| | | MallCarriageRule mallCarriageRule = new MallCarriageRule(); |
| | | mallCarriageRule.setName(ruleName); |
| | |
| | | @Transactional |
| | | public FebsResponse carriageRuleUpdate(AdminCarriageRuleUpdateDto adminCarriageRuleUpdateDto) { |
| | | Long id = adminCarriageRuleUpdateDto.getId(); |
| | | MallCarriageRule mallCarriageRule = mallCarriageRuleMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(mallCarriageRule)){ |
| | | return new FebsResponse().fail().message("运费模板不存在"); |
| | | } |
| | | MallCarriageRule mallCarriageRule = ValidateEntityUtils.ensureColumnReturnEntity(id,MallCarriageRule::getId,mallCarriageRuleMapper::selectOne,"运费模板不存在"); |
| | | |
| | | List<MallGoods> mallGoods = this.baseMapper.selectMallGoodsListQueryByRuleIdAndIsSale(id,MallGoods.ISHOT_STATE_YES); |
| | | if(CollUtil.isNotEmpty(mallGoods)){ |
| | |
| | | @Override |
| | | public FebsResponse couponRuleAdd(CouponRuleAddDto couponRuleAddDto) { |
| | | String name = couponRuleAddDto.getName(); |
| | | QueryWrapper<MallGoodsCoupon> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("name",name); |
| | | List<MallGoodsCoupon> mallGoodsCoupons = mallGoodsCouponMapper.selectList(objectQueryWrapper); |
| | | if(CollUtil.isNotEmpty(mallGoodsCoupons)){ |
| | | return new FebsResponse().fail().message("名称不能重复"); |
| | | } |
| | | ValidateEntityUtils.ensureUnique(name,MallGoodsCoupon::getName,mallGoodsCouponMapper::selectCount,"优惠卷名称重复了"); |
| | | |
| | | MallGoodsCoupon mallGoodsCoupon = new MallGoodsCoupon(); |
| | | mallGoodsCoupon.setName(name); |
| | |
| | | mallGoodsCouponMapper.insert(mallGoodsCoupon); |
| | | |
| | | Long couponId = mallGoodsCoupon.getId(); |
| | | QueryWrapper<CouponGoods> objectQueryWrapperCoupon = new QueryWrapper<>(); |
| | | objectQueryWrapperCoupon.eq("coupon_id",couponId); |
| | | List<CouponGoods> couponGoodsList = couponGoodsMapper.selectList(objectQueryWrapperCoupon); |
| | | if(CollUtil.isNotEmpty(couponGoodsList)){ |
| | | for(CouponGoods couponGoods : couponGoodsList){ |
| | | couponGoodsMapper.deleteById(couponGoods); |
| | | } |
| | | // 先判断是否存在关联商品,再进行查询和删除 |
| | | if (CollUtil.isNotEmpty(couponGoodsMapper.selectList( |
| | | new LambdaQueryWrapper<CouponGoods>() |
| | | .select(CouponGoods::getId) |
| | | .eq(CouponGoods::getCouponId, couponId)))) { |
| | | couponGoodsMapper.delete(new LambdaQueryWrapper<CouponGoods>().eq(CouponGoods::getCouponId, couponId)); |
| | | } |
| | | if(CollUtil.isNotEmpty(couponRuleAddDto.getGoodsIds())){ |
| | | List<Long> goodsIds = couponRuleAddDto.getGoodsIds(); |
| | | for(Long goodsId : goodsIds){ |
| | | |
| | | // 处理 goodsIds 为 null 或空的情况 |
| | | List<Long> goodsIds = couponRuleAddDto.getGoodsIds(); |
| | | if (CollUtil.isNotEmpty(goodsIds)) { |
| | | for (Long goodsId : goodsIds) { |
| | | CouponGoods couponGoods = new CouponGoods(); |
| | | couponGoods.setGoodsId(goodsId); |
| | | couponGoods.setCouponId(couponId); |
| | |
| | | |
| | | @Override |
| | | public FebsResponse couponRuleDel(Long id) { |
| | | MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(id); |
| | | if (ObjectUtil.isEmpty(mallGoodsCoupon)) { |
| | | return new FebsResponse().fail().message("优惠卷不存在,请刷新当前页面"); |
| | | } |
| | | Integer state = mallGoodsCoupon.getState(); |
| | | if(2 == state){ |
| | | return new FebsResponse().fail().message("请先下架优惠卷"); |
| | | } |
| | | MallGoodsCoupon mallGoodsCoupon = ValidateEntityUtils.ensureColumnReturnEntity(id, MallGoodsCoupon::getId, mallGoodsCouponMapper::selectOne, "优惠卷不存在"); |
| | | ValidateEntityUtils.ensureNotEqual(mallGoodsCoupon.getState(),2,"优惠卷已上架,请先下架"); |
| | | mallGoodsCouponMapper.deleteById(id); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse upCoupon(Long id) { |
| | | MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(id); |
| | | if (ObjectUtil.isEmpty(mallGoodsCoupon)) { |
| | | return new FebsResponse().fail().message("优惠卷不存在,请刷新当前页面"); |
| | | } |
| | | MallGoodsCoupon mallGoodsCoupon = ValidateEntityUtils.ensureColumnReturnEntity(id, MallGoodsCoupon::getId, mallGoodsCouponMapper::selectOne, "优惠卷不存在"); |
| | | mallGoodsCoupon.setState(2); |
| | | mallGoodsCouponMapper.updateById(mallGoodsCoupon); |
| | | return new FebsResponse().success(); |
| | |
| | | |
| | | @Override |
| | | public FebsResponse downCoupon(Long id) { |
| | | MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(id); |
| | | if (ObjectUtil.isEmpty(mallGoodsCoupon)) { |
| | | return new FebsResponse().fail().message("优惠卷不存在,请刷新当前页面"); |
| | | } |
| | | MallGoodsCoupon mallGoodsCoupon = ValidateEntityUtils.ensureColumnReturnEntity(id, MallGoodsCoupon::getId, mallGoodsCouponMapper::selectOne, "优惠卷不存在"); |
| | | mallGoodsCoupon.setState(1); |
| | | mallGoodsCouponMapper.updateById(mallGoodsCoupon); |
| | | return new FebsResponse().success().message("操作成功"); |
| | |
| | | @Override |
| | | public FebsResponse couponUpdate(AdminMallGoodsCouponVo adminMallGoodsCouponVo) { |
| | | Long id = adminMallGoodsCouponVo.getId(); |
| | | MallGoodsCoupon mallGoodsCoupon = mallGoodsCouponMapper.selectById(id); |
| | | if (ObjectUtil.isEmpty(mallGoodsCoupon)) { |
| | | return new FebsResponse().fail().message("优惠卷不存在,请刷新当前页面"); |
| | | } |
| | | Integer state = mallGoodsCoupon.getState(); |
| | | if(2 == state){ |
| | | return new FebsResponse().fail().message("请先下架优惠卷"); |
| | | } |
| | | MallGoodsCoupon mallGoodsCoupon = ValidateEntityUtils.ensureColumnReturnEntity(id, MallGoodsCoupon::getId, mallGoodsCouponMapper::selectOne, "优惠卷不存在"); |
| | | ValidateEntityUtils.ensureNotEqual(mallGoodsCoupon.getState(),2,"优惠卷已上架,请先下架"); |
| | | |
| | | mallGoodsCoupon.setName(adminMallGoodsCouponVo.getName()); |
| | | mallGoodsCoupon.setExpireDay(adminMallGoodsCouponVo.getExpireDay()); |
| | | mallGoodsCoupon.setCostAmount(adminMallGoodsCouponVo.getCostAmount()); |
| | |
| | | mallGoodsCouponMapper.updateById(mallGoodsCoupon); |
| | | |
| | | Long couponId = mallGoodsCoupon.getId(); |
| | | QueryWrapper<CouponGoods> objectQueryWrapperCoupon = new QueryWrapper<>(); |
| | | objectQueryWrapperCoupon.eq("coupon_id",couponId); |
| | | List<CouponGoods> couponGoodsList = couponGoodsMapper.selectList(objectQueryWrapperCoupon); |
| | | if(CollUtil.isNotEmpty(couponGoodsList)){ |
| | | for(CouponGoods couponGoods : couponGoodsList){ |
| | | couponGoodsMapper.deleteById(couponGoods); |
| | | } |
| | | // 先判断是否存在关联商品,再进行查询和删除 |
| | | if (CollUtil.isNotEmpty(couponGoodsMapper.selectList( |
| | | new LambdaQueryWrapper<CouponGoods>() |
| | | .select(CouponGoods::getId) |
| | | .eq(CouponGoods::getCouponId, couponId)))) { |
| | | couponGoodsMapper.delete(new LambdaQueryWrapper<CouponGoods>().eq(CouponGoods::getCouponId, couponId)); |
| | | } |
| | | if(CollUtil.isNotEmpty(adminMallGoodsCouponVo.getGoodsIds())){ |
| | | List<Long> goodsIds = adminMallGoodsCouponVo.getGoodsIds(); |
| | | for(Long goodsId : goodsIds){ |
| | | |
| | | // 处理 goodsIds 为 null 或空的情况 |
| | | List<Long> goodsIds = adminMallGoodsCouponVo.getGoodsIds(); |
| | | if (CollUtil.isNotEmpty(goodsIds)) { |
| | | for (Long goodsId : goodsIds) { |
| | | CouponGoods couponGoods = new CouponGoods(); |
| | | couponGoods.setGoodsId(goodsId); |
| | | couponGoods.setCouponId(couponId); |
| | |
| | | |
| | | @Override |
| | | public List<AdminMallGoodsCouponTreeListVo> findAdminMallGoodsVoTreeList() { |
| | | QueryWrapper<MallGoods> objectQueryWrapper = new QueryWrapper<>(); |
| | | objectQueryWrapper.eq("is_sale",1); |
| | | List<MallGoods> mallGoodsList = mallGoodsMapper.selectList(objectQueryWrapper); |
| | | List<MallGoods> mallGoodsList = mallGoodsMapper.selectList( |
| | | new LambdaQueryWrapper<MallGoods>() |
| | | .select(MallGoods::getId, MallGoods::getGoodsName) |
| | | .eq(MallGoods::getIsSale, MallGoods.ISSALE_STATUS_ENABLE) |
| | | .eq(MallGoods::getGoodsType, MallGoods.ISSALE_STATUS_ENABLE) |
| | | .eq(MallGoods::getIsNormal, MallGoods.ISSALE_STATUS_ENABLE) |
| | | ); |
| | | |
| | | List<AdminMallGoodsCouponTreeListVo> objects = new ArrayList<>(); |
| | | if(CollUtil.isNotEmpty(mallGoodsList)){ |