jiaosong
2023-09-18 cb8db5f74edbbc4ae0f37aa089c761408cc017a5
#联调修改
已修改5个文件
136 ■■■■ 文件已修改
server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/core/utils/Constants.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsImportDTO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java 117 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java
@@ -37,7 +37,7 @@
    @PreventRepeat
    @ApiOperation("新建")
    @PostMapping("/create")
//    @RequiresPermissions("business:basegoods:create")
    @RequiresPermissions("business:basegoods:create")
    public ApiResponse create(@RequestBody BaseGoodsCreateOrUpdateRequest baseGoods) {
        return ApiResponse.success(baseGoodsService.create(baseGoods));
    }
@@ -87,9 +87,9 @@
    @ApiOperation("根据ID查询")
    @GetMapping("/{id}")
//    @RequiresPermissions("business:basegoods:query")
    public ApiResponse findById(@PathVariable Integer id) {
        return ApiResponse.success(baseGoodsService.findById(id));
    @RequiresPermissions("business:basegoods:query")
    public ApiResponse<BaseGoodsDTO> findById(@PathVariable Integer id) {
        return ApiResponse.success(baseGoodsService.findByIdBaseGoods(id));
    }
    /**
@@ -126,7 +126,7 @@
     */
    @ApiOperation("根据ID查询平台商品详细信息")
    @GetMapping("/findByIdBaseGoods")
//    @RequiresPermissions("business:basegoods:query")
    @RequiresPermissions("business:basegoods:query")
    public ApiResponse<BaseGoodsDTO> findByIdBaseGoods(@RequestParam Integer id){
        BaseGoodsDTO byIdBaseGoods = baseGoodsService.findByIdBaseGoods(id);
        return ApiResponse.success(byIdBaseGoods);
@@ -139,7 +139,7 @@
     */
    @ApiOperation("根据ID修改-编辑修改")
    @PostMapping("/update")
//    @RequiresPermissions("business:basegoods:update")
    @RequiresPermissions("business:basegoods:update")
    public ApiResponse update(@RequestBody BaseGoodsCreateOrUpdateRequest baseGoods){
        baseGoodsService.update(baseGoods);
        return ApiResponse.success(null);
server/platform/src/main/resources/application.yml
@@ -62,4 +62,4 @@
  basic:
    enable: true
    username: admin
    password: 111111
    password: 111111
server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -50,6 +50,7 @@
    public static final String DEFAULT_MANAGE_ROLE = "DEFAULT_MANAGE_ROLE";
    public static final String DEFAULT_PASSWORD = "DEFAULT_PASSWORD";
    public static final String BRAND_IMG = "BRAND_IMG";
    public static final String PLATFORM = "PLATFORM";
    /**
     * 企业数据来源 0平台注册 1后台导入
server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsImportDTO.java
@@ -32,11 +32,11 @@
    @ApiModelProperty(value = "指导价")
    @ExcelColumn(name="指导价")
    private BigDecimal zdPrice;
    private String zdPrice;
    @ApiModelProperty(value = "入手价")
    @ExcelColumn(name="入手价")
    private BigDecimal price;
    private String price;
    @ApiModelProperty(value = "产品参数")
    @ExcelColumn(name="产品参数")
server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java
@@ -13,10 +13,8 @@
import com.doumee.dao.business.*;
import com.doumee.dao.business.join.BaseGoodsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.model.dto.BaseGoodsCreateOrUpdateRequest;
import com.doumee.dao.business.model.dto.BaseGoodsDTO;
import com.doumee.dao.business.model.dto.BaseGoodsImportDTO;
import com.doumee.dao.business.model.dto.BaseGoodsParamCreatRequest;
import com.doumee.dao.business.model.dto.*;
import com.doumee.service.business.BaseDataService;
import com.doumee.service.business.BaseGoodsService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
@@ -33,10 +31,9 @@
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.io.File;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -74,6 +71,11 @@
    @Autowired
    private BaseCategoryMapper baseCategoryMapper;
    @Autowired
    @Lazy
    private BaseDataService baseDataService;
    @Override
@@ -305,8 +307,8 @@
                .eq(BaseGoods::getId,id);
        BaseGoodsDTO baseGoodsDTO = baseGoodsJoinMapper.selectJoinOne(BaseGoodsDTO.class, queryWrapper);
        String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
                + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_IMG).getCode();
        baseGoodsDTO.setImgfullurl(prefixUrl+baseGoodsDTO.getImgurl());
        List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>()
@@ -374,7 +376,7 @@
        return baseGoodsMapper.selectCount(wrapper);
    }
    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
    @Override
    public Integer importBaseGoodsBatch(MultipartFile file) {
@@ -406,6 +408,10 @@
            dataList.forEach(s->{
                if(baseGoodsMapper.selectCount(new QueryWrapper<BaseGoods>().eq("ISDELETED", Constants.ZERO).eq("name",s.getName()))>0){
                    throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+s.getName()+"】已存在");
                }
                BaseGoods baseGoods = new BaseGoods();
                baseGoods.setCreator(user.getId());
                baseGoods.setCreateDate(new Date());
@@ -414,7 +420,8 @@
                baseGoods.setIsdeleted(Constants.ZERO);
                baseGoods.setName(s.getName());
                baseGoods.setStatus(Constants.ZERO);
                baseGoods.setZdPrice(new BigDecimal(s.getZdPrice()));
                baseGoods.setPrice(new BigDecimal(s.getPrice()));
                if (StringUtils.isBlank(s.getCategoryName())){
                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"商品类别不可为空");
                }
@@ -422,26 +429,87 @@
                categoryQuery.lambda()
                    .eq(BaseCategory::getName,s.getCategoryName());
                BaseCategory baseCategory = baseCategoryMapper.selectOne(categoryQuery);
                if (Objects.isNull(baseCategory)){
                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"商品类别不存在");
                }
                QueryWrapper<Brand> brandQuery = new QueryWrapper<>();
                brandQuery.lambda()
                        .eq(Brand::getName,s.getBrandName());
                Brand brand = brandMapper.selectOne(brandQuery);
                if (Objects.isNull(brand)){
                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"商品品牌不存在");
                }
                //处理批量上传
                String proDir =systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PLATFORM).getCode();
                String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.GOODS_IMG_DIR).getCode()
                        + proDir + File.separator + s.getId();
                List<String> mulFiles = new ArrayList<>();
                if(StringUtils.isNotBlank(path)){
                    OssModel ossModel = baseDataService.initOssModel();
                    File dir =new File(path+File.separator);
                    if(dir!=null && dir.isDirectory()){
                        File[]  files = dir.listFiles();
                        if(files!=null && files.length>0){
                            for(File f:files){
                                if(isImgFile(f)){
                                    //取第一张图片作为列表图
                                    baseGoods.setImgurl(baseDataService.getOssImgurl(ossModel,ossModel.getGoodsFolder(),f));
                                }
                                if(f.isDirectory()){
                                    //如果是文件夹
                                    File[] fs = f.listFiles();
                                    if(fs != null && fs.length > 0){
                                        for(File mf : fs){
                                            if(isImgFile(mf)){
                                                if(mulFiles==null){
                                                    mulFiles = new ArrayList<>();
                                                }
                                                mulFiles.add(baseDataService.getOssImgurl(ossModel,ossModel.getGoodsFolder(),mf));
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
//                baseGoods.setImgurl();
                baseGoods.setCategoryId(baseCategory.getId());
                baseGoods.setBrandId(brand.getId());
                baseGoodsMapper.insert(baseGoods);
                if(mulFiles !=null && mulFiles.size()>0){
                    for(int i=0;i<mulFiles.size();i++){
                        String str = mulFiles.get(i);
                        Multifile f = new Multifile();
                        f.setObjType(Constants.ZERO);
                        f.setName(str);
                        f.setType(Constants.ZERO);
                        f.setObjId(baseGoods.getId());
                        f.setCreateDate(new Date());
                        f.setCreator(user.getId());
                        f.setIsdeleted(Constants.ZERO);
                        f.setSortnum(i);
                        f.setCompanyId(user.getCompanyId());
                        f.setFileurl(str);
                        multifileMapper.insert(f);
                    }
                }
                String baseGoodsParamString = s.getBaseGoodsParamString();
                List<List<String>> collect = Arrays.asList(baseGoodsParamString.split("\n"))
                        .stream().map(s1 -> Arrays.asList(s1.split("[:,:]")) ).collect(Collectors.toList());
                if (!CollectionUtils.isEmpty(collect)){
                    Integer i = 0;
                    collect.forEach(s2->{
//                    Integer i = 0;
                    for (int i = 0; i < collect.size(); i++){
                        if (!CollectionUtils.isEmpty(baseCategory.getBaseCateParamList())){
                            List<String> s2 = collect.get(i);
                            BaseCateParam baseCateParam = baseCategory.getBaseCateParamList()
                                    .stream().filter(s3 -> s3.getName().equals(s2.get(0))).findFirst()
                                    .orElseThrow(()->new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"配置参数不存在"));
@@ -461,7 +529,7 @@
                            baseGoodsParamMapper.insert(baseGoodsParam);
                        }
                    });
                    };
                }
@@ -474,4 +542,19 @@
        }
        return null;
    }
    private boolean isImgFile(File f) {
        if(f!=null && f.isFile() ){
            String name = f.getName();
            if(name.endsWith(".jpg")
                    ||name.endsWith(".JPG")
                    ||name.endsWith(".JPEG")
                    ||name.endsWith(".jpeg")
                    ||name.endsWith(".PNG")
                    ||name.endsWith(".png")){
                return  true;
            }
        }
        return  false;
    }
}