| | |
| | | package com.ruoyi.goods.service.impl.goods; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.bean.BeanUtils; |
| | | import com.ruoyi.common.core.utils.uuid.IdUtils; |
| | | import com.ruoyi.common.security.utils.CodeFactoryUtil; |
| | | import com.ruoyi.goods.domain.dto.*; |
| | | import com.ruoyi.system.api.domain.poji.activity.Activity; |
| | | import com.ruoyi.goods.domain.pojo.goods.GoodsTotal; |
| | | import com.ruoyi.goods.domain.vo.*; |
| | | import com.ruoyi.goods.mapper.goods.GoodsMapper; |
| | | import com.ruoyi.goods.service.activity.ActivityGoodsService; |
| | | import com.ruoyi.goods.service.activity.ActivityRecordService; |
| | | import com.ruoyi.goods.service.activity.ActivityService; |
| | | import com.ruoyi.goods.service.goods.GoodsFileService; |
| | | import com.ruoyi.goods.service.goods.GoodsService; |
| | | import com.ruoyi.goods.service.goods.GoodsTotalService; |
| | | import com.ruoyi.goods.service.goods.ShopGoodsService; |
| | | import com.ruoyi.system.api.constant.AppErrorConstant; |
| | | import com.ruoyi.system.api.domain.dto.AppActivityGoodsPageDto; |
| | | import com.ruoyi.system.api.domain.dto.MerGoodsPriceListDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtClassNumDto; |
| | | import com.ruoyi.system.api.domain.poji.activity.ActivityGoods; |
| | | import com.ruoyi.system.api.domain.poji.config.SysClassification; |
| | | import com.ruoyi.system.api.domain.poji.goods.Goods; |
| | | import com.ruoyi.system.api.domain.poji.goods.GoodsFile; |
| | | import com.ruoyi.system.api.domain.poji.goods.ShopGoods; |
| | | import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo; |
| | | import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo; |
| | | import com.ruoyi.system.api.service.RemoteConfigService; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | @Resource |
| | | private GoodsTotalService goodsTotalService; |
| | | |
| | | @Resource |
| | | private ActivityService activityService; |
| | | |
| | | @Resource |
| | | private ActivityRecordService activityRecordService; |
| | | |
| | | /** |
| | | * @description 获取推荐商品列表 |
| | | * @param page shopId |
| | |
| | | public List<AppSimpleGoodsVo> pageRecommendGoods(Page page, Long shopId){ |
| | | List<AppSimpleGoodsVo> appSimpleGoodsVoList = goodsMapper.pageRecommendGoods(page,shopId); |
| | | return appSimpleGoodsVoList; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取活动精选 |
| | | * @author jqs |
| | | * @date 2023/7/4 18:06 |
| | | * @param shopId |
| | | * @return List<AppSimpleGoodsVo> |
| | | */ |
| | | @Override |
| | | public AppHomeActivityVo pageActivityGoods(Long shopId){ |
| | | AppHomeActivityVo appHomeActivityVo = new AppHomeActivityVo(); |
| | | Activity activity = activityService.getRecommendActivity(shopId); |
| | | List<AppSimpleGoodsVo> simpleGoodsVoList = new ArrayList<>(); |
| | | if(activity!=null){ |
| | | appHomeActivityVo.setEndTime(activity.getActivityEndTime()); |
| | | appHomeActivityVo.setTimestamp(activity.getActivityEndTime().getTime()); |
| | | simpleGoodsVoList = goodsMapper.pageActivityGoods(activity.getActivityId(),shopId); |
| | | appHomeActivityVo.setGoodsVoList(simpleGoodsVoList); |
| | | } |
| | | return appHomeActivityVo; |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public List<AppSimpleActivityGoodsVo> pageSearchActivityGoods(Page page, AppSearchGoodsPageDto appSearchGoodsPageDto){ |
| | | List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsMapper.pageSearchActivityGoods(page,appSearchGoodsPageDto); |
| | | int activityNumber; |
| | | int salesNumber; |
| | | BigDecimal salesPercent; |
| | | for(AppSimpleActivityGoodsVo appSimpleActivityGoodsVo : appSimpleGoodsVoList){ |
| | | activityNumber = appSimpleActivityGoodsVo.getActivityNumber(); |
| | | salesNumber = appSimpleActivityGoodsVo.getSalesNumber(); |
| | | salesPercent = BigDecimal.ZERO; |
| | | if(activityNumber != 0){ |
| | | salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber), 2, BigDecimal.ROUND_HALF_UP); |
| | | List<String> activityIdList = activityService.listActivityIdByShopId(appSearchGoodsPageDto.getShopId()); |
| | | appSearchGoodsPageDto.setActivityIdList(activityIdList); |
| | | // 获取搜索结果的商品列表 |
| | | List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsMapper.pageSearchActivityGoods(page, appSearchGoodsPageDto); |
| | | // 计算销售百分比和设置时间戳 |
| | | for (AppSimpleActivityGoodsVo appSimpleActivityGoodsVo : appSimpleGoodsVoList) { |
| | | int activityNumber = appSimpleActivityGoodsVo.getActivityNumber(); |
| | | int salesNumber = appSimpleActivityGoodsVo.getSalesNumber(); |
| | | BigDecimal salesPercent = BigDecimal.ZERO; |
| | | // 计算销售百分比 |
| | | if (activityNumber != 0) { |
| | | salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber),2, BigDecimal.ROUND_HALF_UP); |
| | | } |
| | | // 设置销售百分比和时间戳 |
| | | appSimpleActivityGoodsVo.setSalesPercent(salesPercent); |
| | | appSimpleActivityGoodsVo.setTimestamp(appSimpleActivityGoodsVo.getEndTime().getTime()); |
| | | } |
| | | // 返回结果 |
| | | return appSimpleGoodsVoList; |
| | | } |
| | | |
| | |
| | | ShopGoods shopGoods = shopGoodsService.getByShopIdAndGoodsId(appGoodsInfoGetDto.getShopId(),goods.getGoodsId()); |
| | | if(shopGoods!=null){ |
| | | appGoodsInfoVo.setSalesPrice(shopGoods.getSalesPrice()); |
| | | appGoodsInfoVo.setSalesNum(shopGoods.getServiceNum()); |
| | | appGoodsInfoVo.setServiceNum(shopGoods.getServiceNum()); |
| | | } |
| | | GoodsTotal goodsTotal = goodsTotalService.getById(goods.getGoodsId()); |
| | | appGoodsInfoVo.setSalesNum(goodsTotal.getBuyNumCount()); |
| | | //活动商品判断 |
| | | if(appGoodsInfoGetDto.getActivityFlag()==1){ |
| | | ActivityGoods activityGoods = activityGoodsService.getByGoodsId(goods.getGoodsId()); |
| | | ActivityGoods activityGoods = activityGoodsService.getByGoodsId(appGoodsInfoGetDto.getActivityId(),goods.getGoodsId()); |
| | | Activity activity = activityService.getById(appGoodsInfoGetDto.getActivityId()); |
| | | //原价取较大值 |
| | | if(shopGoods!=null&&goods.getSalesPrice().compareTo(shopGoods.getSalesPrice())>0){ |
| | | appGoodsInfoVo.setSalesPrice(goods.getSalesPrice()); |
| | |
| | | appGoodsInfoVo.setActivityFlag(1); |
| | | appGoodsInfoVo.setActivityPrice(activityGoods.getActivityPrice()); |
| | | appGoodsInfoVo.setSalesNum(activityGoods.getSalesNumber()); |
| | | appGoodsInfoVo.setActivityDeadline(activityGoods.getActivityDeadline()); |
| | | appGoodsInfoVo.setActivityStartTime(activity.getActivityStartTime()); |
| | | appGoodsInfoVo.setActivityDeadline(activity.getActivityEndTime()); |
| | | appGoodsInfoVo.setTimestamp(activity.getActivityEndTime().getTime()); |
| | | Integer availableBuyNum = 0; |
| | | //售罄判断 |
| | | if(activityGoods.getActivityNumber().equals(activityGoods.getSalesNumber())){ |
| | | appGoodsInfoVo.setSellOutFlag(1); |
| | | }else{ |
| | | availableBuyNum = activityGoods.getActivityNumber() - activityGoods.getSalesNumber(); |
| | | appGoodsInfoVo.setSellOutFlag(0); |
| | | } |
| | | appGoodsInfoVo.setActivityId(appGoodsInfoGetDto.getActivityId()); |
| | | //限购判断 |
| | | appGoodsInfoVo.setPurchaseLimitationFlag(activityGoods.getPurchaseLimitationFlag()); |
| | | if(activityGoods.getPurchaseLimitationFlag()==1){ |
| | | Integer buyNum = activityRecordService.getUserActivityGoodsNum(goods.getGoodsId(),activityGoods.getActivityId(),appGoodsInfoGetDto.getUserId()); |
| | | Integer limitBuyNum = activityGoods.getLimitNumber() - buyNum; |
| | | if(limitBuyNum<availableBuyNum){ |
| | | availableBuyNum = limitBuyNum; |
| | | } |
| | | } |
| | | appGoodsInfoVo.setAvailableBuyNum(availableBuyNum); |
| | | }else{ |
| | | appGoodsInfoVo.setActivityFlag(0); |
| | | } |
| | |
| | | List<String> bannerList = new ArrayList<>(); |
| | | if(goodsFileList!=null&&!goodsFileList.isEmpty()){ |
| | | for(GoodsFile goodsFile : goodsFileList){ |
| | | if(goodsFile.getFileType()==2){ |
| | | if(goodsFile.getFileType()==1){ |
| | | appGoodsInfoVo.setGoodsPicture(goodsFile.getFileUrl()); |
| | | }else if(goodsFile.getFileType()==2){ |
| | | appGoodsInfoVo.setGoodsVideo(goodsFile.getFileUrl()); |
| | | }else if(goodsFile.getFileType()==3){ |
| | | bannerList.add(goodsFile.getFileUrl()); |
| | |
| | | |
| | | } |
| | | |
| | | /** |
| | | * @description 获取确认次数周期商品 |
| | | * @author jqs |
| | | * @date 2023/7/31 16:49 |
| | | * @param shopId |
| | | * @return List<MerGoodsPageVo> |
| | | */ |
| | | @Override |
| | | public List<MerGoodsPageVo> listMerCycleGoods (Long shopId){ |
| | | List<MerGoodsPageVo> merGoodsPageVoList = goodsMapper.listMerCycleGoods(shopId); |
| | | return merGoodsPageVoList; |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 修改商户商品 |
| | |
| | | */ |
| | | @Override |
| | | public MgtGoodsTotalVo getMgtGoodsTotal(){ |
| | | return goodsMapper.getMgtGoodsTotal(); |
| | | MgtGoodsTotalVo goodsTotalVo = goodsMapper.getMgtGoodsTotal(); |
| | | LambdaQueryWrapper<Goods> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(Goods::getDelFlag,0); |
| | | goodsTotalVo.setGoodsTotal(this.count(queryWrapper)); |
| | | return goodsTotalVo; |
| | | } |
| | | |
| | | /** |
| | |
| | | Goods goods; |
| | | Boolean newGoods = false; |
| | | String goodsId = mgtGoodsEditDto.getGoodsId(); |
| | | Goods goodsSame = this.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getDelFlag,0).eq(Goods::getGoodsName,mgtGoodsEditDto.getGoodsName())); |
| | | // 创建MgtClassNumDto对象 |
| | | MgtClassNumDto mgtClassNumDto = new MgtClassNumDto(); |
| | | if(mgtGoodsEditDto.getGoodsType()!=1){ |
| | | mgtGoodsEditDto.setCycleNumFlag(1); |
| | | }else{ |
| | | if(mgtGoodsEditDto.getCycleNumFlag()==null){ |
| | | throw new ServiceException("周期商品需选择是否明确次数"); |
| | | } |
| | | } |
| | | // 判断是否有商品ID 没有则新建 |
| | | if (goodsId != null) { |
| | | if (StringUtils.isNotBlank(goodsId)) { |
| | | if(goodsSame!=null&&!Objects.equals(goodsSame.getGoodsId(), goodsId)){ |
| | | throw new ServiceException(AppErrorConstant.GOODS_DOUBLE); |
| | | } |
| | | goods = this.getById(goodsId); |
| | | if(goods.getGoodsStatus()==-1){ |
| | | throw new ServiceException(AppErrorConstant.GOODS_DELETED); |
| | | } |
| | | //删除历史数据 |
| | | goodsFileService.deleteByGoodsId(goodsId); |
| | | // 如果类别ID不为空并且文章的类别ID不为空并且类别ID不同,则设置子类别ID和新增类别ID |
| | | if (mgtGoodsEditDto.getGoodsClassId() != null && goods.getGoodsClassId() != null |
| | | && !mgtGoodsEditDto.getGoodsClassId().equals(goods.getGoodsClassId())) { |
| | | mgtClassNumDto.setSubClassId(goods.getGoodsClassId()); |
| | | mgtClassNumDto.setAddClassId(mgtGoodsEditDto.getGoodsClassId()); |
| | | } |
| | | // 如果类别ID不为空并且文章的类别ID为空,则设置新增类别ID |
| | | else if (mgtGoodsEditDto.getGoodsClassId() != null && goods.getGoodsClassId() == null) { |
| | | mgtClassNumDto.setAddClassId(mgtGoodsEditDto.getGoodsClassId()); |
| | | } |
| | | } else { |
| | | if(goodsSame!=null){ |
| | | throw new ServiceException(AppErrorConstant.GOODS_DOUBLE); |
| | | } |
| | | goods = new Goods(); |
| | | goodsId = IdUtils.simpleUUID(); |
| | | goods.setGoodsId(goodsId); |
| | | goods.setDelFlag(0); |
| | | goods.setGoodsNo(CodeFactoryUtil.getGoodsNo()); |
| | | goods.setCreateTime(new Date()); |
| | | goods.setCreateUserId(mgtGoodsEditDto.getUserId()); |
| | | newGoods = true; |
| | | mgtClassNumDto.setAddClassId(mgtGoodsEditDto.getGoodsClassId()); |
| | | } |
| | | goods.setUpdateTime(new Date()); |
| | | goods.setUpdateUserId(mgtGoodsEditDto.getUserId()); |
| | |
| | | goods.setSubscriptionFlag(0); |
| | | } |
| | | goods.setSubscription(mgtGoodsEditDto.getSubscription()); |
| | | goods.setGoodsDetail(mgtGoodsEditDto.getGoodsDetail()); |
| | | goods.setRecommendFlag(mgtGoodsEditDto.getRecommendFlag()); |
| | | String goodsDetail = mgtGoodsEditDto.getGoodsDetail(); |
| | | if(StringUtils.isNotBlank(goodsDetail)){ |
| | | byte[] decodedBytes = Base64.getDecoder().decode(goodsDetail); |
| | | goodsDetail = new String(decodedBytes, StandardCharsets.UTF_8); |
| | | goods.setGoodsDetail(goodsDetail); |
| | | } |
| | | goods.setRecommendFlag(0); |
| | | goods.setGoodsNurses(mgtGoodsEditDto.getGoodsNurses()); |
| | | goods.setGoodsTags(mgtGoodsEditDto.getGoodsNurses()); |
| | | goods.setGoodsTags(mgtGoodsEditDto.getGoodsTags()); |
| | | this.saveOrUpdate(goods); |
| | | //商品图片视频处理 |
| | | final String goodsIdFinal = goodsId; |
| | |
| | | goodsTotal.setBuyMoneyTotal(new BigDecimal("0.00")); |
| | | goodsTotalService.saveOrUpdate(goodsTotal); |
| | | } |
| | | //更新商品分类统计 |
| | | remoteConfigService.changeClassNum(mgtClassNumDto); |
| | | } |
| | | |
| | | /** |
| | |
| | | goods.setUpdateTime(new Date()); |
| | | goods.setUpdateUserId(userId); |
| | | this.saveOrUpdate(goods); |
| | | if(goods.getGoodsClassId()!=null){ |
| | | MgtClassNumDto mgtClassNumDto = new MgtClassNumDto(); |
| | | mgtClassNumDto.setSubClassId(goods.getGoodsClassId()); |
| | | //更新商品分类统计 |
| | | remoteConfigService.changeClassNum(mgtClassNumDto); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @description 删除商品分类 |
| | | * @author jqs |
| | | * @date 2023/6/8 10:31 |
| | | * @param classId |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void deleteGoodsClass(Long classId){ |
| | | goodsMapper.deleteGoodsClass(classId); |
| | | } |
| | | |
| | | /** |
| | | * @description 删除商品标签 |
| | | * @author jqs |
| | | * @date 2023/6/8 17:02 |
| | | * @param goodsTag |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void deleteGoodsTag(String goodsTag){ |
| | | goodsMapper.deleteGoodsTag(goodsTag); |
| | | } |
| | | |
| | | /** |
| | | * @description 通过id获取商品列表 |
| | | * @author jqs |
| | | * @date 2023/6/13 15:55 |
| | | * @param goodsIds |
| | | * @return List<Goods> |
| | | */ |
| | | @Override |
| | | public List<Goods> listGoodsByGoodsId(String goodsIds){ |
| | | return goodsMapper.listGoodsByGoodsId(goodsIds); |
| | | } |
| | | |
| | | /** |
| | | * @description 分页获取商品选择列表 |
| | | * @author jqs |
| | | * @date 2023/6/13 16:33 |
| | | * @param page |
| | | * @param mgtSelectGoodsPageDto |
| | | * @return List<MgtSelectGoodsPageVo> |
| | | */ |
| | | @Override |
| | | public List<MgtSelectGoodsPageVo> pageMgtSelectGoods(Page page, MgtSelectGoodsPageDto mgtSelectGoodsPageDto){ |
| | | return goodsMapper.pageMgtSelectGoods(page, mgtSelectGoodsPageDto); |
| | | } |
| | | |
| | | /** |
| | | * @description 通过id获取商品列表 |
| | | * @author jqs |
| | | * @date 2023/7/3 9:58 |
| | | * @param merGoodsPriceListDto |
| | | * @return List<MerGoodsPriceListVo> |
| | | */ |
| | | @Override |
| | | public List<MerGoodsPriceListVo> listGoodsPriceByGoodsId(MerGoodsPriceListDto merGoodsPriceListDto){ |
| | | return goodsMapper.listGoodsPriceByGoodsId(merGoodsPriceListDto.getShopId(),merGoodsPriceListDto.getGoodsIds()); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description 分页获取活动商品 |
| | | * @author jqs |
| | | * @date 2023/7/6 9:40 |
| | | * @param page |
| | | * @param appActivityGoodsPageDto |
| | | * @return List<AppSimpleActivityGoodsVo> |
| | | */ |
| | | @Override |
| | | public List<AppSimpleActivityGoodsVo> pageAppActivityGoods(Page page, AppActivityGoodsPageDto appActivityGoodsPageDto){ |
| | | // 获取搜索结果的商品列表 |
| | | List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsMapper.pageAppActivityGoods(page, appActivityGoodsPageDto); |
| | | // 计算销售百分比和设置时间戳 |
| | | for (AppSimpleActivityGoodsVo appSimpleActivityGoodsVo : appSimpleGoodsVoList) { |
| | | int activityNumber = appSimpleActivityGoodsVo.getActivityNumber(); |
| | | int salesNumber = appSimpleActivityGoodsVo.getSalesNumber(); |
| | | BigDecimal salesPercent = BigDecimal.ZERO; |
| | | // 计算销售百分比 |
| | | if (activityNumber != 0) { |
| | | salesPercent = BigDecimal.valueOf(salesNumber).multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(activityNumber),2, BigDecimal.ROUND_HALF_UP); |
| | | } |
| | | // 设置销售百分比和时间戳 |
| | | appSimpleActivityGoodsVo.setSalesPercent(salesPercent); |
| | | appSimpleActivityGoodsVo.setTimestamp(appSimpleActivityGoodsVo.getEndTime().getTime()); |
| | | //限购判断 |
| | | if(appSimpleActivityGoodsVo.getPurchaseLimitationFlag()==1){ |
| | | Integer buyNum = activityRecordService.getUserActivityGoodsNum(appSimpleActivityGoodsVo.getGoodsId(),appActivityGoodsPageDto.getActivityId(),appActivityGoodsPageDto.getUserId()); |
| | | Integer limitBuyNum = appSimpleActivityGoodsVo.getLimitNumber() - buyNum; |
| | | appSimpleActivityGoodsVo.setAvailableBuyNum(limitBuyNum); |
| | | } |
| | | } |
| | | // 返回结果 |
| | | return appSimpleGoodsVoList; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取商品编辑详情 |
| | | * @author jqs |
| | | * @date 2023/7/11 16:48 |
| | | * @param mgtBaseGetDto |
| | | * @return MgtGoodsEditInfoVo |
| | | */ |
| | | @Override |
| | | public MgtGoodsEditInfoVo getMgtGoodsEditInfo(MgtBaseGetDto mgtBaseGetDto){ |
| | | MgtGoodsEditInfoVo mgtGoodsEditInfoVo = new MgtGoodsEditInfoVo(); |
| | | Goods goods = this.getById(mgtBaseGetDto.getId()); |
| | | BeanUtils.copyProperties(goods,mgtGoodsEditInfoVo); |
| | | if(goods.getSubscriptionFlag()==0){ |
| | | mgtGoodsEditInfoVo.setSubscription(null); |
| | | } |
| | | List<GoodsFile> goodsFileList = goodsFileService.listByGoodsId(goods.getGoodsId()); |
| | | if(goodsFileList!=null&&!goodsFileList.isEmpty()){ |
| | | StringJoiner goodsBannersSj = new StringJoiner(","); |
| | | for(GoodsFile goodsFile : goodsFileList){ |
| | | if(goodsFile.getFileType()==1){ |
| | | mgtGoodsEditInfoVo.setGoodsPicture(goodsFile.getFileUrl()); |
| | | }else if(goodsFile.getFileType()==2){ |
| | | mgtGoodsEditInfoVo.setGoodsVideo(goodsFile.getFileUrl()); |
| | | }else if(goodsFile.getFileType()==3){ |
| | | goodsBannersSj.add(goodsFile.getFileUrl()); |
| | | } |
| | | } |
| | | if(goodsBannersSj!=null){ |
| | | mgtGoodsEditInfoVo.setGoodsBanners(goodsBannersSj.toString()); |
| | | } |
| | | } |
| | | return mgtGoodsEditInfoVo; |
| | | } |
| | | |
| | | /** |
| | | * @description 获取商品分类名 |
| | | * @author jqs |
| | | * @date 2023/8/12 18:33 |
| | | * @param classId |
| | | * @return List<String> |
| | | */ |
| | | @Override |
| | | public List<String> listGoodsNameByGoodsClass(Long classId){ |
| | | List<String> goodsNameList = goodsMapper.listGoodsNameByGoodsClass(classId); |
| | | return goodsNameList; |
| | | } |
| | | } |