|
|
@@ -2,36 +2,24 @@ package com.zhongzheng.modules.top.goods.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.lang.Validator;
|
|
|
-import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
-import com.github.pagehelper.Page;
|
|
|
-import com.zhongzheng.common.annotation.DataScope;
|
|
|
import com.zhongzheng.common.exception.CustomException;
|
|
|
import com.zhongzheng.common.utils.DateUtils;
|
|
|
import com.zhongzheng.modules.bank.domain.*;
|
|
|
import com.zhongzheng.modules.bank.service.*;
|
|
|
import com.zhongzheng.modules.base.domain.*;
|
|
|
import com.zhongzheng.modules.base.service.*;
|
|
|
-import com.zhongzheng.modules.course.bo.CourseMenuQueryBo;
|
|
|
import com.zhongzheng.modules.course.domain.*;
|
|
|
import com.zhongzheng.modules.course.service.*;
|
|
|
-import com.zhongzheng.modules.course.vo.CourseChapterSectionVo;
|
|
|
-import com.zhongzheng.modules.course.vo.CourseMenuVo;
|
|
|
-import com.zhongzheng.modules.course.vo.CourseModuleChapterVo;
|
|
|
-import com.zhongzheng.modules.course.vo.CourseVo;
|
|
|
import com.zhongzheng.modules.exam.domain.ExamPaper;
|
|
|
import com.zhongzheng.modules.exam.service.IExamPaperService;
|
|
|
-import com.zhongzheng.modules.goods.bo.GoodsCourseQueryBo;
|
|
|
-import com.zhongzheng.modules.goods.bo.GoodsQueryBo;
|
|
|
import com.zhongzheng.modules.goods.domain.*;
|
|
|
import com.zhongzheng.modules.goods.service.*;
|
|
|
-import com.zhongzheng.modules.goods.vo.BankGoodsExamVo;
|
|
|
-import com.zhongzheng.modules.goods.vo.GoodsVo;
|
|
|
+import com.zhongzheng.modules.goods.vo.TopGoodsVo;
|
|
|
import com.zhongzheng.modules.pay.domain.PayServe;
|
|
|
import com.zhongzheng.modules.pay.domain.PaySupply;
|
|
|
import com.zhongzheng.modules.pay.service.IPayServeService;
|
|
|
@@ -41,27 +29,22 @@ import com.zhongzheng.modules.polyv.domain.PolyvVideo;
|
|
|
import com.zhongzheng.modules.polyv.service.IPolyvCataService;
|
|
|
import com.zhongzheng.modules.polyv.service.IPolyvVideoService;
|
|
|
import com.zhongzheng.modules.system.bo.GoodsCopyEnum;
|
|
|
-import com.zhongzheng.modules.system.domain.SysGoodsCopyRecord;
|
|
|
-import com.zhongzheng.modules.system.domain.SysTenant;
|
|
|
-import com.zhongzheng.modules.top.goods.bo.TopGoodsAddBo;
|
|
|
-import com.zhongzheng.modules.top.goods.bo.TopGoodsEditBo;
|
|
|
import com.zhongzheng.modules.top.goods.bo.TopGoodsQueryBo;
|
|
|
import com.zhongzheng.modules.top.goods.domain.*;
|
|
|
import com.zhongzheng.modules.top.goods.mapper.TopGoodsMapper;
|
|
|
import com.zhongzheng.modules.top.goods.service.*;
|
|
|
-import com.zhongzheng.modules.top.goods.vo.TopGoodsVo;
|
|
|
+import com.zhongzheng.modules.top.goods.vo.TopBankGoodsExamVo;
|
|
|
import net.polyv.common.v1.util.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.*;
|
|
|
-import java.util.concurrent.atomic.AtomicReference;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Comparator;
|
|
|
+import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import static java.math.RoundingMode.HALF_UP;
|
|
|
-
|
|
|
/**
|
|
|
* 商品Service业务层处理
|
|
|
*
|
|
|
@@ -277,126 +260,6 @@ public class TopGoodsServiceImpl extends ServiceImpl<TopGoodsMapper, TopGoods> i
|
|
|
@Autowired
|
|
|
private ITopPayServeService iTopPayServeService;
|
|
|
|
|
|
- @Override
|
|
|
- public TopGoodsVo queryById(Long goodsId){
|
|
|
- TopGoods db = this.baseMapper.selectById(goodsId);
|
|
|
- return BeanUtil.toBean(db, TopGoodsVo.class);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<TopGoodsVo> queryList(TopGoodsQueryBo bo) {
|
|
|
- LambdaQueryWrapper<TopGoods> lqw = Wrappers.lambdaQuery();
|
|
|
- lqw.eq(bo.getYear() != null, TopGoods::getYear, bo.getYear());
|
|
|
- lqw.eq(bo.getSupplyId() != null, TopGoods::getSupplyId, bo.getSupplyId());
|
|
|
- lqw.eq(bo.getGoodsType() != null, TopGoods::getGoodsType, bo.getGoodsType());
|
|
|
- lqw.eq(bo.getEducationTypeId() != null, TopGoods::getEducationTypeId, bo.getEducationTypeId());
|
|
|
- lqw.eq(bo.getBusinessId() != null, TopGoods::getBusinessId, bo.getBusinessId());
|
|
|
- lqw.eq(bo.getSchoolId() != null, TopGoods::getSchoolId, bo.getSchoolId());
|
|
|
- lqw.eq(bo.getMajorId() != null, TopGoods::getMajorId, bo.getMajorId());
|
|
|
- lqw.like(StrUtil.isNotBlank(bo.getGoodsName()), TopGoods::getGoodsName, bo.getGoodsName());
|
|
|
- lqw.eq(bo.getStandPrice() != null, TopGoods::getStandPrice, bo.getStandPrice());
|
|
|
- lqw.eq(bo.getLowestPrice() != null, TopGoods::getLowestPrice, bo.getLowestPrice());
|
|
|
- lqw.eq(bo.getStatus() != null, TopGoods::getStatus, bo.getStatus());
|
|
|
- lqw.eq(bo.getValidityStartTime() != null, TopGoods::getValidityStartTime, bo.getValidityStartTime());
|
|
|
- lqw.eq(bo.getValidityEndTime() != null, TopGoods::getValidityEndTime, bo.getValidityEndTime());
|
|
|
- lqw.eq(bo.getStudyStartTime() != null, TopGoods::getStudyStartTime, bo.getStudyStartTime());
|
|
|
- lqw.eq(bo.getStudyEndTime() != null, TopGoods::getStudyEndTime, bo.getStudyEndTime());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getCertificateIds()), TopGoods::getCertificateIds, bo.getCertificateIds());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getIntroduce()), TopGoods::getIntroduce, bo.getIntroduce());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getSuitableObject()), TopGoods::getSuitableObject, bo.getSuitableObject());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getBuyNote()), TopGoods::getBuyNote, bo.getBuyNote());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getPcDetailHtml()), TopGoods::getPcDetailHtml, bo.getPcDetailHtml());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getMobileDetailHtml()), TopGoods::getMobileDetailHtml, bo.getMobileDetailHtml());
|
|
|
- lqw.eq(bo.getGoodsStatus() != null, TopGoods::getGoodsStatus, bo.getGoodsStatus());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getCoverUrl()), TopGoods::getCoverUrl, bo.getCoverUrl());
|
|
|
- lqw.eq(bo.getClassHours() != null, TopGoods::getClassHours, bo.getClassHours());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getStandPriceJson()), TopGoods::getStandPriceJson, bo.getStandPriceJson());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getCode()), TopGoods::getCode, bo.getCode());
|
|
|
- lqw.eq(bo.getProjectId() != null, TopGoods::getProjectId, bo.getProjectId());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getGoodsAuditionConfig()), TopGoods::getGoodsAuditionConfig, bo.getGoodsAuditionConfig());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getGoodsPhotographConfig()), TopGoods::getGoodsPhotographConfig, bo.getGoodsPhotographConfig());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getGoodsPlayConfig()), TopGoods::getGoodsPlayConfig, bo.getGoodsPlayConfig());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getGoodsExamConfig()), TopGoods::getGoodsExamConfig, bo.getGoodsExamConfig());
|
|
|
- lqw.eq(bo.getHandoutsId() != null, TopGoods::getHandoutsId, bo.getHandoutsId());
|
|
|
- lqw.eq(bo.getMakeStartTime() != null, TopGoods::getMakeStartTime, bo.getMakeStartTime());
|
|
|
- lqw.eq(bo.getMakeEndTime() != null, TopGoods::getMakeEndTime, bo.getMakeEndTime());
|
|
|
- lqw.eq(bo.getStudyCount() != null, TopGoods::getStudyCount, bo.getStudyCount());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getGoodsPhotoExamConfig()), TopGoods::getGoodsPhotoExamConfig, bo.getGoodsPhotoExamConfig());
|
|
|
- lqw.eq(bo.getMakeGoodsId() != null, TopGoods::getMakeGoodsId, bo.getMakeGoodsId());
|
|
|
- lqw.eq(bo.getServiceTimeType() != null, TopGoods::getServiceTimeType, bo.getServiceTimeType());
|
|
|
- lqw.eq(bo.getServiceTimeNum() != null, TopGoods::getServiceTimeNum, bo.getServiceTimeNum());
|
|
|
- lqw.eq(bo.getSectionMaxNum() != null, TopGoods::getSectionMaxNum, bo.getSectionMaxNum());
|
|
|
- lqw.eq(bo.getExamNumber() != null, TopGoods::getExamNumber, bo.getExamNumber());
|
|
|
- lqw.eq(bo.getDoNumber() != null, TopGoods::getDoNumber, bo.getDoNumber());
|
|
|
- lqw.eq(bo.getTeacherId() != null, TopGoods::getTeacherId, bo.getTeacherId());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getSubjectIds()), TopGoods::getSubjectIds, bo.getSubjectIds());
|
|
|
- lqw.eq(bo.getCertificateTypeId() != null, TopGoods::getCertificateTypeId, bo.getCertificateTypeId());
|
|
|
- lqw.eq(bo.getCertificateId() != null, TopGoods::getCertificateId, bo.getCertificateId());
|
|
|
- lqw.eq(bo.getCertificateTpId() != null, TopGoods::getCertificateTpId, bo.getCertificateTpId());
|
|
|
- lqw.eq(bo.getLinePrice() != null, TopGoods::getLinePrice, bo.getLinePrice());
|
|
|
- lqw.eq(bo.getSpecTemplateId() != null, TopGoods::getSpecTemplateId, bo.getSpecTemplateId());
|
|
|
- lqw.eq(bo.getShowStatus() != null, TopGoods::getShowStatus, bo.getShowStatus());
|
|
|
- lqw.eq(bo.getShowSort() != null, TopGoods::getShowSort, bo.getShowSort());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getExternalLink()), TopGoods::getExternalLink, bo.getExternalLink());
|
|
|
- lqw.eq(bo.getExternalLinkStatus() != null, TopGoods::getExternalLinkStatus, bo.getExternalLinkStatus());
|
|
|
- lqw.eq(bo.getCommitPeriodStatus() != null, TopGoods::getCommitPeriodStatus, bo.getCommitPeriodStatus());
|
|
|
- lqw.eq(StrUtil.isNotBlank(bo.getCommitPeriodRemark()), TopGoods::getCommitPeriodRemark, bo.getCommitPeriodRemark());
|
|
|
- return entity2Vo(this.list(lqw));
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 实体类转化成视图对象
|
|
|
- *
|
|
|
- * @param collection 实体类集合
|
|
|
- * @return
|
|
|
- */
|
|
|
- private List<TopGoodsVo> entity2Vo(Collection<TopGoods> collection) {
|
|
|
- List<TopGoodsVo> voList = collection.stream()
|
|
|
- .map(any -> BeanUtil.toBean(any, TopGoodsVo.class))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (collection instanceof Page) {
|
|
|
- Page<TopGoods> page = (Page<TopGoods>)collection;
|
|
|
- Page<TopGoodsVo> pageVo = new Page<>();
|
|
|
- BeanUtil.copyProperties(page,pageVo);
|
|
|
- pageVo.addAll(voList);
|
|
|
- voList = pageVo;
|
|
|
- }
|
|
|
- return voList;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Boolean insertByAddBo(TopGoodsAddBo bo) {
|
|
|
- TopGoods add = BeanUtil.toBean(bo, TopGoods.class);
|
|
|
- validEntityBeforeSave(add);
|
|
|
- add.setCreateTime(DateUtils.getNowTime());
|
|
|
- add.setUpdateTime(DateUtils.getNowTime());
|
|
|
- return this.save(add);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Boolean updateByEditBo(TopGoodsEditBo bo) {
|
|
|
- TopGoods update = BeanUtil.toBean(bo, TopGoods.class);
|
|
|
- validEntityBeforeSave(update);
|
|
|
- update.setUpdateTime(DateUtils.getNowTime());
|
|
|
- return this.updateById(update);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 保存前的数据校验
|
|
|
- *
|
|
|
- * @param entity 实体类数据
|
|
|
- */
|
|
|
- private void validEntityBeforeSave(TopGoods entity){
|
|
|
- //TODO 做一些数据校验,如唯一约束
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
|
|
- if(isValid){
|
|
|
- //TODO 做一些业务上的校验,判断是否需要校验
|
|
|
- }
|
|
|
- return this.removeByIds(ids);
|
|
|
- }
|
|
|
|
|
|
@Override
|
|
|
// @Transactional(rollbackFor = Exception.class)
|
|
|
@@ -1891,35 +1754,28 @@ public class TopGoodsServiceImpl extends ServiceImpl<TopGoodsMapper, TopGoods> i
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- @DataScope(businessAlias = "cb")
|
|
|
public List<TopGoodsVo> selectList(TopGoodsQueryBo bo) {
|
|
|
if (Validator.isNotEmpty(bo.getGoodsName())) {
|
|
|
bo.setGoodsName(bo.getGoodsName().trim());
|
|
|
}
|
|
|
List<TopGoodsVo> list = baseMapper.selectAllList(bo);
|
|
|
if (Validator.isNotEmpty(bo.getSectionNum()) && bo.getSectionNum().longValue() == 1) {
|
|
|
- for (GoodsVo vo : list) {
|
|
|
+ for (TopGoodsVo vo : list) {
|
|
|
Long sectionNum = baseMapper.getSectionNum(vo.getGoodsId());
|
|
|
vo.setSectionNum(sectionNum);
|
|
|
}
|
|
|
}
|
|
|
- if (Validator.isNotEmpty(bo.getGoodsType()) && bo.getGoodsType() == 2) {
|
|
|
- for (GoodsVo vo : list) {
|
|
|
- Long totalNum = getExamNum(vo.getGoodsId());
|
|
|
- vo.setTotalExamNum(totalNum);
|
|
|
- }
|
|
|
- }
|
|
|
list.forEach(goods -> {
|
|
|
//多规格下的价格区间
|
|
|
if (ObjectUtils.isNotNull(goods.getSpecTemplateId())) {
|
|
|
- List<GoodsSpecAttributeRelation> specAttributeRelations = goodsSpecAttributeRelationService
|
|
|
- .list(new LambdaQueryWrapper<GoodsSpecAttributeRelation>()
|
|
|
- .eq(GoodsSpecAttributeRelation::getSpecTemplateId, goods.getSpecTemplateId()));
|
|
|
+ List<TopGoodsSpecAttributeRelation> specAttributeRelations = topGoodsSpecAttributeRelationService
|
|
|
+ .list(new LambdaQueryWrapper<TopGoodsSpecAttributeRelation>()
|
|
|
+ .eq(TopGoodsSpecAttributeRelation::getSpecTemplateId, goods.getSpecTemplateId()));
|
|
|
if (CollectionUtils.isNotEmpty(specAttributeRelations)) {
|
|
|
- List<Long> goodsIds = specAttributeRelations.stream().filter(x -> ObjectUtils.isNotNull(x.getGoodsId())).map(GoodsSpecAttributeRelation::getGoodsId).collect(Collectors.toList());
|
|
|
- List<Goods> goodsList = listByIds(goodsIds);
|
|
|
+ List<Long> goodsIds = specAttributeRelations.stream().filter(x -> ObjectUtils.isNotNull(x.getGoodsId())).map(TopGoodsSpecAttributeRelation::getGoodsId).collect(Collectors.toList());
|
|
|
+ List<TopGoods> goodsList = listByIds(goodsIds);
|
|
|
//从小到大排序
|
|
|
- List<Goods> collect = goodsList.stream().filter(x -> ObjectUtils.isNotNull(x.getStandPrice())).sorted(Comparator.comparing(Goods::getStandPrice)).collect(Collectors.toList());
|
|
|
+ List<TopGoods> collect = goodsList.stream().filter(x -> ObjectUtils.isNotNull(x.getStandPrice())).sorted(Comparator.comparing(TopGoods::getStandPrice)).collect(Collectors.toList());
|
|
|
goods.setMinPrice(collect.get(0).getStandPrice());
|
|
|
goods.setMaxPrice(collect.get(collect.size() - 1).getStandPrice());
|
|
|
}
|
|
|
@@ -1927,7 +1783,7 @@ public class TopGoodsServiceImpl extends ServiceImpl<TopGoodsMapper, TopGoods> i
|
|
|
//是否包含每日一练试卷
|
|
|
if (goods.getGoodsType() == 2) {
|
|
|
//题库商品
|
|
|
- List<BankGoodsExamVo> examVos = questionMapper.getBankGoodsExamList(goods.getGoodsId());
|
|
|
+ List<TopBankGoodsExamVo> examVos = iTopQuestionService.getBankGoodsExamList(goods.getGoodsId());
|
|
|
if (examVos.stream().filter(x -> StringUtils.isNotBlank(x.getPaperName())).anyMatch(x -> x.getPaperName().equals("每日一练"))) {
|
|
|
goods.setExamRecord(1);
|
|
|
} else {
|
|
|
@@ -1936,59 +1792,7 @@ public class TopGoodsServiceImpl extends ServiceImpl<TopGoodsMapper, TopGoods> i
|
|
|
} else {
|
|
|
goods.setExamRecord(0);
|
|
|
}
|
|
|
-
|
|
|
- //商品同步新机构时间
|
|
|
- List<SysGoodsCopyRecord> copyRecords = iSysGoodsCopyRecordService.getGoodsCopy(goods.getGoodsId(),GoodsCopyEnum.GOODS.getType());
|
|
|
- if (CollectionUtils.isNotEmpty(copyRecords)){
|
|
|
- Map<Long, List<SysGoodsCopyRecord>> map = copyRecords.stream().collect(Collectors.groupingBy(SysGoodsCopyRecord::getTenantId));
|
|
|
- List<String> msg = new ArrayList<>();
|
|
|
- map.forEach((k,v) -> {
|
|
|
- SysGoodsCopyRecord record = v.stream().sorted(Comparator.comparing(SysGoodsCopyRecord::getCreateTime).reversed()).collect(Collectors.toList()).stream().findFirst().get();
|
|
|
- SysTenant tenant = iSysTenantService.getById(record.getTenantId());
|
|
|
- msg.add(String.format("%s【最新同步时间:%s】",tenant.getTenantName(),DateUtils.timestampToDateFormat(record.getCreateTime(),"yyyy-MM-dd HH:mm:ss")));
|
|
|
- });
|
|
|
- goods.setCopyTime(msg);
|
|
|
- }
|
|
|
});
|
|
|
- //继教二建统计学时
|
|
|
- if (Validator.isNotEmpty(bo.getChapterNum())) {
|
|
|
- list.forEach(goodsVo -> {
|
|
|
- AtomicReference<Double> classHours = new AtomicReference<>(0.0);
|
|
|
- //查询课程列表
|
|
|
- GoodsCourseQueryBo courseQueryBo = new GoodsCourseQueryBo();
|
|
|
- courseQueryBo.setGoodsId(goodsVo.getGoodsId());
|
|
|
- List<CourseVo> courseVoList = iGoodsCourseService.selectList(courseQueryBo);
|
|
|
- if (courseVoList != null && courseVoList.size() > 0) {
|
|
|
- courseVoList.forEach(courseVo -> {
|
|
|
- //获取模块信息
|
|
|
- CourseMenuQueryBo bo1 = new CourseMenuQueryBo();
|
|
|
- bo1.setCourseId(courseVo.getCourseId());
|
|
|
- List<CourseMenuVo> courseMenuVoList = iCourseMenuService.selectList(bo1);
|
|
|
- if (courseMenuVoList != null && courseMenuVoList.size() > 0) {
|
|
|
- courseMenuVoList.forEach(courseMenuVo -> {
|
|
|
- classHours.updateAndGet(v -> v + Math.round(courseMenuVo.getClassHours()));
|
|
|
- //获取章信息
|
|
|
- List<CourseModuleChapterVo> courseModuleChapterVoList = iCourseModuleChapterService.getListById(courseMenuVo.getMenuId());
|
|
|
- AtomicReference<Double> chapterHours = new AtomicReference<>(0.0);
|
|
|
- if (courseModuleChapterVoList != null && courseModuleChapterVoList.size() > 0) {
|
|
|
- courseModuleChapterVoList.forEach(courseModuleChapterVo -> {
|
|
|
- //获取节信息
|
|
|
- List<CourseChapterSectionVo> courseChapterSectionVoList = iCourseChapterSectionService.getListById(courseModuleChapterVo.getChapterId());
|
|
|
- if (courseChapterSectionVoList != null && courseChapterSectionVoList.size() > 0) {
|
|
|
- courseChapterSectionVoList.forEach(courseChapterSectionVo -> {
|
|
|
- chapterHours.updateAndGet(v -> v + courseChapterSectionVo.getClassHours());
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- classHours.updateAndGet(v -> v + Math.round(chapterHours.get()));
|
|
|
- });
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- goodsVo.setClassHours((new BigDecimal(String.valueOf(classHours))).setScale(0, HALF_UP));
|
|
|
- });
|
|
|
- }
|
|
|
return list;
|
|
|
}
|
|
|
|