Przeglądaj źródła

商品加规格明细信息、自定义列修改

lazhaoqian 4 lat temu
rodzic
commit
ae73f3b971
17 zmienionych plików z 186 dodań i 14 usunięć
  1. 30 4
      blade-common/src/main/java/org/springblade/common/utils/CreateFileUtil.java
  2. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsSpecification.java
  3. 1 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/TableMessage.java
  4. 9 0
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IGoodsDescClient.java
  5. 9 0
      blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/feign/IStockGoodsClient.java
  6. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java
  7. 13 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/feign/GoodsDescClient.java
  8. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsSpecificationMapper.xml
  9. 10 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/IGoodsSpecificationService.java
  10. 1 1
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java
  11. 23 0
      blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsSpecificationServiceImpl.java
  12. 5 2
      blade-service/blade-client/src/main/java/org/springblade/client/serial/controller/TableMessageController.java
  13. 8 1
      blade-service/blade-client/src/main/java/org/springblade/client/serial/service/ITableMessageService.java
  14. 14 1
      blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/TableMessageServiceImpl.java
  15. 42 0
      blade-service/blade-client/src/main/java/org/springblade/client/serial/util/FileUtil.java
  16. 1 1
      blade-service/blade-client/src/main/resources/application-dev.yml
  17. 17 0
      blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java

+ 30 - 4
blade-common/src/main/java/org/springblade/common/utils/CreateFileUtil.java

@@ -1,9 +1,6 @@
 package org.springblade.common.utils;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
+import java.io.*;
 
 public class CreateFileUtil {
 	/**
@@ -60,4 +57,33 @@ public class CreateFileUtil {
 		// 返回是否成功的标记
 		return flag;
 	}
+	public  static  String readJson(File file){
+		//从给定位置获取文件
+		BufferedReader reader = null;
+		//返回值,使用StringBuffer
+		StringBuffer data = new StringBuffer();
+		//
+		try {
+			reader = new BufferedReader(new FileReader(file));
+			//每次读取文件的缓存
+			String temp = null;
+			while((temp = reader.readLine()) != null){
+				data.append(temp);
+			}
+		} catch (FileNotFoundException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}finally {
+			//关闭文件流
+			if (reader != null){
+				try {
+					reader.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return data.toString();
+	}
 }

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/GoodsSpecification.java

@@ -68,7 +68,7 @@ public class GoodsSpecification implements Serializable {
 	* 描述
 	*/
 		@ApiModelProperty(value = "描述")
-		private String describe;
+		private String description;
 	/**
 	* 备注
 	*/

+ 1 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/TableMessage.java

@@ -102,7 +102,7 @@ public class TableMessage implements Serializable {
 	/**
 	 * 是否已删除(0 否 1是)
 	 */
-	//@TableLogic
+	@TableLogic
 	@ApiModelProperty(value = "是否已删除(0 否 1是)")
 	private Integer isDeleted;
 	/**

+ 9 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/feign/IGoodsDescClient.java

@@ -21,6 +21,7 @@ public interface IGoodsDescClient {
 	String GOODS_BASIC = API_PREFIX + "/goodsBasic";
 	String GOODSD_ESCMESSAGE = API_PREFIX + "/goodsDescMessage";
 	String GOODS_BY_CODE = API_PREFIX + "goods_by_code";
+	String GET_SPECIFICATION = API_PREFIX + "/get_Specification" ;
 
 	/**
 	 * 获取商品信息
@@ -47,5 +48,13 @@ public interface IGoodsDescClient {
 	@GetMapping(GOODS_BASIC)
 	R<List<GoodsDescVO>> selectGoodsBasic();
 
+	/**
+	 * 根据商品id获取商品规格
+	 * @param goodId
+	 * @return
+	 */
+	@GetMapping(GET_SPECIFICATION)
+	R<List<String>> getSpecification(@RequestParam("goodId") Long goodId);
+
 
 }

+ 9 - 0
blade-service-api/blade-stock-api/src/main/java/org/springblade/stock/feign/IStockGoodsClient.java

@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.validation.Valid;
+import java.util.List;
 
 @FeignClient(
 	value = LauncherConstant.APPLICATION_STOCK_NAME
@@ -19,6 +20,7 @@ public interface IStockGoodsClient {
 	String API_PREFIX = "/client";
 	String SELECT_STOKE = API_PREFIX + "select-stock";
 	String SAVE_STOCK = API_PREFIX + "save-stock" ;
+	String GET_STOCK = API_PREFIX + "/get_stock";
 
 	/**
 	 * 查询库存总账 是否存在
@@ -43,4 +45,11 @@ public interface IStockGoodsClient {
 	 */
 	@PostMapping(SAVE_STOCK)
 	R saveStock(@Valid @RequestBody StockGoods stockGoods);
+	/**
+	 * 订单明细查询库存总账
+	 * @param stockGoods
+	 * @return
+	 */
+	@GetMapping(GET_STOCK)
+	R<List<StockGoods>> getStock(StockGoods stockGoods);
 }

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/controller/GoodsDescController.java

@@ -153,8 +153,8 @@ public class GoodsDescController extends BladeController {
 			goodsDesc.setSaleGoodsPrice(sale);
 			goodsDesc.setBuyGoodsPrice(buy);
 			goodsDesc.setFilesList(filesList);
-			goodsDesc.setGoodsSpecificationList(goodsSpecificationList);
 		}
+		goodsDesc.setGoodsSpecificationList(goodsSpecificationList);
 		return R.data(goodsDesc);
 	}
 

+ 13 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/feign/GoodsDescClient.java

@@ -8,6 +8,7 @@ import org.springblade.client.feign.IGoodsDescClient;
 import org.springblade.client.entity.GoodsDesc;
 import org.springblade.client.goods.assemble.mapstruct.GoodsDescMapstructMapper;
 import org.springblade.client.goods.service.IGoodsDescService;
+import org.springblade.client.goods.service.IGoodsSpecificationService;
 import org.springblade.client.vo.GoodsDescVO;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tenant.annotation.NonDS;
@@ -31,6 +32,8 @@ public class GoodsDescClient implements IGoodsDescClient {
 
 	private GoodsDescMapstructMapper goodsDescMapstructMapper;
 
+	private IGoodsSpecificationService goodsSpecificationService;
+
 	/**
 	 * 获取商品信息
 	 *
@@ -62,4 +65,14 @@ public class GoodsDescClient implements IGoodsDescClient {
 //		return R.data(goodsDescList.stream().map(goodsDescMapstructMapper::toVo).collect(Collectors.toList()));
 		return R.data(BeanUtil.copy(goodsDescList, GoodsDescVO.class));
 	}
+
+	/**
+	 * 根据商品信息获取商品规格信息
+	 * @param goodId
+	 * @return
+	 */
+	@Override
+	public R<List<String>> getSpecification(Long goodId) {
+		return R.data(goodsSpecificationService.getSpecification(goodId));
+	}
 }

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/mapper/GoodsSpecificationMapper.xml

@@ -9,7 +9,7 @@
         <result column="cname" property="cname"/>
         <result column="texture" property="texture"/>
         <result column="colour" property="colour"/>
-        <result column="describe" property="describe"/>
+        <result column="description" property="description"/>
         <result column="remarks" property="remarks"/>
         <result column="version" property="version"/>
         <result column="create_user" property="createUser"/>

+ 10 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/IGoodsSpecificationService.java

@@ -21,6 +21,9 @@ import org.springblade.client.vo.GoodsSpecificationVO;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.awt.*;
+import java.util.List;
+
 /**
  * 商品规格明细表 服务类
  *
@@ -38,4 +41,11 @@ public interface IGoodsSpecificationService extends IService<GoodsSpecification>
 	 */
 	IPage<GoodsSpecificationVO> selectGoodsSpecificationPage(IPage<GoodsSpecificationVO> page, GoodsSpecificationVO goodsSpecification);
 
+	/**
+	 * 根据商品id获取商品规格信息
+	 * @param goodId
+	 * @return
+	 */
+	List<String> getSpecification(Long goodId);
+
 }

+ 1 - 1
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsDescServiceImpl.java

@@ -187,7 +187,7 @@ public class GoodsDescServiceImpl extends ServiceImpl<GoodsDescMapper, GoodsDesc
 		GoodsDesc selectOne = baseMapper.selectOne(lambdaQueryWrapper);
 		if(selectOne != null && goodsDesc.getId() == null) {
 			throw new ServiceException("存在重复数据,请修改后添加");
-		}else if (selectOne != null && goodsDesc.getId() != selectOne.getId()){
+		}else if (selectOne != null && goodsDesc.getId().longValue() != selectOne.getId().longValue()){
 			throw new ServiceException("存在重复数据,请修改后添加");
 		}
 

+ 23 - 0
blade-service/blade-client/src/main/java/org/springblade/client/goods/service/impl/GoodsSpecificationServiceImpl.java

@@ -16,14 +16,23 @@
  */
 package org.springblade.client.goods.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import org.springblade.client.entity.GoodsSpecification;
 import org.springblade.client.goods.mapper.GoodsSpecificationMapper;
 import org.springblade.client.goods.service.IGoodsSpecificationService;
 import org.springblade.client.vo.GoodsSpecificationVO;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.awt.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
 /**
  * 商品规格明细表 服务实现类
  *
@@ -38,4 +47,18 @@ public class GoodsSpecificationServiceImpl extends ServiceImpl<GoodsSpecificatio
 		return page.setRecords(baseMapper.selectGoodsSpecificationPage(page, goodsSpecification));
 	}
 
+	@Override
+	public List<String> getSpecification(Long goodId) {
+		List<String> list = new ArrayList<>();
+		LambdaQueryWrapper<GoodsSpecification> specificationWrapper = new LambdaQueryWrapper<>();
+		specificationWrapper.eq(GoodsSpecification::getPid,goodId);
+		specificationWrapper.eq(GoodsSpecification::getIsDeleted,0);
+		specificationWrapper.eq(GoodsSpecification::getTenantId, SecureUtil.getTenantId());
+		List<GoodsSpecification> goodsSpecificationList = baseMapper.selectList(specificationWrapper);
+		if (CollectionUtils.isNotEmpty(goodsSpecificationList)){
+			list = goodsSpecificationList.stream().map(GoodsSpecification::getCname).collect(Collectors.toList());
+		}
+		return list;
+	}
+
 }

+ 5 - 2
blade-service/blade-client/src/main/java/org/springblade/client/serial/controller/TableMessageController.java

@@ -56,8 +56,10 @@ public class TableMessageController extends BladeController {
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入tableMessage")
 	public R<TableMessage> detail(TableMessage tableMessage) {
+		tableMessage.setIsDeleted(0);
 		tableMessage.setTenantId(SecureUtil.getTenantId());
-		TableMessage detail = tableMessageService.getOne(Condition.getQueryWrapper(tableMessage));
+		tableMessage.setCreateUser(SecureUtil.getUserId());
+		TableMessage detail = tableMessageService.getMessage(tableMessage);
 		return R.data(detail);
 	}
 
@@ -91,7 +93,7 @@ public class TableMessageController extends BladeController {
 	@PostMapping("/save")
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "新增", notes = "传入tableMessage")
-	public R save(@Valid @RequestBody TableMessage tableMessage) {
+	public R save(@Valid @RequestBody TableMessage tableMessage) throws Exception {
 		return tableMessageService.saveMessage(tableMessage);
 	}
 
@@ -127,4 +129,5 @@ public class TableMessageController extends BladeController {
 	}
 
 
+
 }

+ 8 - 1
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/ITableMessageService.java

@@ -44,5 +44,12 @@ public interface ITableMessageService extends IService<TableMessage> {
 	 * @param tableMessage
 	 * @return
 	 */
-	R saveMessage(TableMessage tableMessage);
+	R saveMessage(TableMessage tableMessage) throws Exception;
+
+	/**
+	 * 获取文件信息
+	 * @param tableMessage
+	 * @return
+	 */
+	TableMessage getMessage(TableMessage tableMessage);
 }

+ 14 - 1
blade-service/blade-client/src/main/java/org/springblade/client/serial/service/impl/TableMessageServiceImpl.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.client.entity.TableMessage;
 import org.springblade.client.serial.mapper.TableMessageMapper;
 import org.springblade.client.serial.service.ITableMessageService;
+import org.springblade.client.serial.util.FileUtil;
 import org.springblade.client.vo.TableMessageVO;
 import org.springblade.common.utils.CreateFileUtil;
 import org.springblade.core.oss.MinioTemplate;
@@ -71,7 +72,7 @@ public class TableMessageServiceImpl extends ServiceImpl<TableMessageMapper, Tab
 			}
 			//上传json文件]
 			try {
-				String fileName = SecureUtil.getUser().getTenantId() + "/" + SecureUtil.getUser().getUserId() + "/" + tableMessage.getFileName();
+				String fileName = tableMessage.getFileName() +".json";
 				BladeFile bladeFile = minioTemplate.putFile(bucketName, fileName, multipartFile.getInputStream());
 				if (StringUtils.isNotBlank(bladeFile.getLink())) {
 					tableMessage.setFileUrl(bladeFile.getLink());
@@ -81,6 +82,7 @@ public class TableMessageServiceImpl extends ServiceImpl<TableMessageMapper, Tab
 			} catch (Exception e) {
 				return R.data(500, "上传json文件失败");
 			}
+
 			//R<BladeFile> bladeFileR = ossEndpointClient.putFile(multipartFile);
 			/*if (bladeFile != null){
 				tableMessage.setFileUrl(bladeFile.getLink());
@@ -114,4 +116,15 @@ public class TableMessageServiceImpl extends ServiceImpl<TableMessageMapper, Tab
 		return R.success("保存成功");
 	}
 
+	@Override
+	public TableMessage getMessage(TableMessage tableMessage) {
+		TableMessage table = baseMapper.selectOne(new QueryWrapper<TableMessage>().setEntity(tableMessage));
+		if (table != null && StringUtils.isNotBlank(table.getFileUrl())){
+			FileUtil fileUtil = new FileUtil();
+			String fileByUrl = fileUtil.readFileByUrl(table.getFileUrl());
+			table.setJsonMessage(fileByUrl);
+		}
+		return table;
+	}
+
 }

+ 42 - 0
blade-service/blade-client/src/main/java/org/springblade/client/serial/util/FileUtil.java

@@ -0,0 +1,42 @@
+package org.springblade.client.serial.util;
+
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+public class FileUtil {
+	public static String readFileByUrl(String urlStr) {
+		String res = null;
+		try {
+			URL url = new URL(urlStr);
+			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+			//设置超时间为3秒
+			conn.setConnectTimeout(3 * 1000);
+			//防止屏蔽程序抓取而返回403错误
+			conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
+			//得到输入流
+			InputStream inputStream = conn.getInputStream();
+			res = readInputStream(inputStream);
+		} catch (Exception e) {
+			System.out.println("通过url地址获取文本内容失败");
+		}
+		return res;
+	}
+	/**
+	 * 从输入流中获取字符串
+	 *
+	 * @param inputStream
+	 * @return
+	 * @throws IOException
+	 */
+	public static String readInputStream(InputStream inputStream) throws IOException {
+		byte[] buffer = new byte[1024];
+		int len = 0;
+		ByteArrayOutputStream bos = new ByteArrayOutputStream();
+		while ((len = inputStream.read(buffer)) != -1) {
+			bos.write(buffer, 0, len);
+		}
+		bos.close();
+		return new String(bos.toByteArray(), "utf-8");
+	}
+}

+ 1 - 1
blade-service/blade-client/src/main/resources/application-dev.yml

@@ -14,7 +14,7 @@ oss:
   enabled: true
   name: minio
   tenant-mode: true
-  endpoint: http://127.0.0.1:9000
+  endpoint: http://121.37.83.47:9000
   access-key: minioadmin
   secret-key: minioadmin
   bucket-name: bladex

+ 17 - 0
blade-service/blade-stock/src/main/java/org/springblade/stock/feign/StockGoodsClient.java

@@ -1,7 +1,9 @@
 package org.springblade.stock.feign;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
 import org.springblade.stock.entity.StockGoods;
@@ -9,10 +11,12 @@ import org.springblade.stock.service.IStockGoodsService;
 import org.springblade.stock.vo.StockGoodsVO;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
 import javax.validation.Valid;
+import java.util.List;
 
 @Slf4j
 @NonDS
@@ -48,4 +52,17 @@ public class StockGoodsClient implements IStockGoodsClient{
 	public R saveStock(@Valid StockGoods stockGoods) {
 		return R.status(stockGoodsService.saveStock(stockGoods));
 	}
+
+	/**
+	 * 订单商品明细获取库存
+	 * @param stockGoods
+	 * @return
+	 */
+	@Override
+	@GetMapping(GET_STOCK)
+	public R<List<StockGoods>> getStock(StockGoods stockGoods) {
+		stockGoods.setTenantId(SecureUtil.getTenantId());
+		stockGoods.setIsDeleted(0);
+		return R.data(stockGoodsService.list(new QueryWrapper<StockGoods>().setEntity(stockGoods)));
+	}
 }