Explorar el Código

客户资料功能

lazhaoqian hace 4 años
padre
commit
6ac8916483
Se han modificado 25 ficheros con 297 adiciones y 74 borrados
  1. 0 17
      blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/OssEndpointClient.java
  2. 1 4
      blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java
  3. 12 0
      blade-service-api/blade-client-api/pom.xml
  4. 30 1
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsDescVO.java
  5. 17 2
      blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsTypeVO.java
  6. 16 0
      blade-service/blade-client/pom.xml
  7. 6 2
      blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsAttnController.java
  8. 6 2
      blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsBankController.java
  9. 15 4
      blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsDescController.java
  10. 6 2
      blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsFilesController.java
  11. 6 2
      blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsItemController.java
  12. 17 0
      blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsTypeController.java
  13. 6 2
      blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsTypeDescController.java
  14. 8 1
      blade-service/blade-client/src/main/java/org/springblade/client/entity/CorpsDesc.java
  15. 3 0
      blade-service/blade-client/src/main/java/org/springblade/client/entity/TableMessage.java
  16. 8 0
      blade-service/blade-client/src/main/java/org/springblade/client/mapper/CorpsTypeDescMapper.java
  17. 4 1
      blade-service/blade-client/src/main/java/org/springblade/client/mapper/CorpsTypeDescMapper.xml
  18. 7 0
      blade-service/blade-client/src/main/java/org/springblade/client/mapper/CorpsTypeMapper.java
  19. 24 0
      blade-service/blade-client/src/main/java/org/springblade/client/mapper/CorpsTypeMapper.xml
  20. 4 1
      blade-service/blade-client/src/main/java/org/springblade/client/service/ICorpsDescService.java
  21. 9 0
      blade-service/blade-client/src/main/java/org/springblade/client/service/ICorpsTypeService.java
  22. 50 20
      blade-service/blade-client/src/main/java/org/springblade/client/service/impl/CorpsDescServiceImpl.java
  23. 6 0
      blade-service/blade-client/src/main/java/org/springblade/client/service/impl/CorpsTypeServiceImpl.java
  24. 27 13
      blade-service/blade-client/src/main/java/org/springblade/client/service/impl/TableMessageServiceImpl.java
  25. 9 0
      blade-service/blade-client/src/main/resources/application-dev.yml

+ 0 - 17
blade-ops-api/blade-resource-api/src/main/java/org/springblade/resource/feign/OssEndpointClient.java

@@ -1,17 +0,0 @@
-package org.springblade.resource.feign;
-
-import org.springblade.core.launch.constant.AppConstant;
-import org.springblade.core.oss.model.BladeFile;
-import org.springblade.core.tool.api.R;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.multipart.MultipartFile;
-
-@FeignClient(
-	value = AppConstant.APPLICATION_RESOURCE_NAME
-)
-public interface OssEndpointClient {
-	@PostMapping("/put-file")
-	public R<BladeFile> putFile(@RequestParam MultipartFile file);
-}

+ 1 - 4
blade-ops/blade-resource/src/main/java/org/springblade/resource/endpoint/OssEndpoint.java

@@ -29,13 +29,10 @@ import org.springblade.core.tool.utils.FileUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.resource.builder.oss.OssBuilder;
 import org.springblade.resource.entity.Attach;
-import org.springblade.resource.feign.OssEndpointClient;
 import org.springblade.resource.service.IAttachService;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.InputStream;
-
 /**
  * 对象存储端点
  *
@@ -46,7 +43,7 @@ import java.io.InputStream;
 @AllArgsConstructor
 @RequestMapping("/oss/endpoint")
 @Api(value = "对象存储端点", tags = "对象存储端点")
-public class OssEndpoint implements OssEndpointClient {
+public class OssEndpoint{
 
 	/**
 	 * 对象存储构建类

+ 12 - 0
blade-service-api/blade-client-api/pom.xml

@@ -17,6 +17,18 @@
             <groupId>org.springblade</groupId>
             <artifactId>blade-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-resource-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-system-api</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 

+ 30 - 1
blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsDescVO.java

@@ -16,11 +16,15 @@
  */
 package org.springblade.client.vo;
 
-import org.springblade.client.entity.CorpsDesc;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import org.springblade.client.entity.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 
+import java.util.List;
+
 /**
  * 客户详情视图实体类
  *
@@ -32,5 +36,30 @@ import io.swagger.annotations.ApiModel;
 @ApiModel(value = "CorpsDescVO对象", description = "客户详情")
 public class CorpsDescVO extends CorpsDesc {
 	private static final long serialVersionUID = 1L;
+	/**
+	 * 客户联系人
+	 */
+	@ApiModelProperty(value = "客户联系人")
+	private List<CorpsAttn> corpsAttnList;
+	/**
+	 * 客户银行
+	 */
+	@ApiModelProperty(value = "客户银行")
+	private List<CorpsBank> corpsBankList;
+	/**
+	 * 客户文件
+	 */
+	@ApiModelProperty(value = "客户文件")
+	private List<CorpsFiles> corpsFiles;
+	/**
+	 *客户优势项目
+	 */
+	@ApiModelProperty(value = "客户优势项目")
+	private List<CorpsItem> corpsItems;
+	/**
+	 *客户类别
+	 */
+	@ApiModelProperty(value = "客户类别")
+	private List<CorpsTypeDesc> corpsTypeId;
 
 }

+ 17 - 2
blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpsTypeVO.java

@@ -22,6 +22,10 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 import org.springblade.client.entity.CorpsType;
+import org.springblade.core.tool.node.INode;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 客户类别表视图实体类
@@ -32,7 +36,7 @@ import org.springblade.client.entity.CorpsType;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ApiModel(value = "CorpsTypeVO对象", description = "客户类别表")
-public class CorpsTypeVO extends CorpsType {
+public class CorpsTypeVO extends CorpsType implements INode<CorpsTypeVO> {
 	/**
 	 * 父级中文名
 	 */
@@ -53,11 +57,22 @@ public class CorpsTypeVO extends CorpsType {
 	 */
 	@ApiModelProperty(value = "状态中文名")
 	private String statusName;
-
+	/**
+	 * 子孙节点
+	 */
+	@JsonInclude(JsonInclude.Include.NON_EMPTY)
+	private List<CorpsTypeVO> children;
 	/**
 	 * 是否有子孙节点
 	 */
 	@JsonInclude(JsonInclude.Include.NON_EMPTY)
 	private Boolean hasChildren;
 
+	@Override
+	public List<CorpsTypeVO> getChildren() {
+		if (this.children == null) {
+			this.children = new ArrayList<>();
+		}
+		return this.children;
+	}
 }

+ 16 - 0
blade-service/blade-client/pom.xml

@@ -43,6 +43,22 @@
             <artifactId>spring-mock</artifactId>
             <version>2.0.8</version>
         </dependency>
+        <!--Oss-->
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-oss</artifactId>
+        </dependency>
+        <!--MinIO-->
+        <dependency>
+            <groupId>io.minio</groupId>
+            <artifactId>minio</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-resource</artifactId>
+            <version>2.8.2.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 
 

+ 6 - 2
blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsAttnController.java

@@ -98,6 +98,10 @@ public class CorpsAttnController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入corpsAttn")
 	public R update(@Valid @RequestBody CorpsAttn corpsAttn) {
+		if (corpsAttn.getId() == null){
+			return R.data(500,"请选择要删除的数据","error");
+		}
+		corpsAttn.setIsDeleted(1);
 		return R.status(corpsAttnService.updateById(corpsAttn));
 	}
 
@@ -111,7 +115,7 @@ public class CorpsAttnController extends BladeController {
 		return R.status(corpsAttnService.saveOrUpdate(corpsAttn));
 	}
 
-	
+
 	/**
 	 * 删除 客户联系人
 	 */
@@ -122,5 +126,5 @@ public class CorpsAttnController extends BladeController {
 		return R.status(corpsAttnService.removeByIds(Func.toLongList(ids)));
 	}
 
-	
+
 }

+ 6 - 2
blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsBankController.java

@@ -98,6 +98,10 @@ public class CorpsBankController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入corpsBank")
 	public R update(@Valid @RequestBody CorpsBank corpsBank) {
+		if (corpsBank.getId() == null){
+			return R.data(500,"请选择要删除的数据","error");
+		}
+		corpsBank.setIsDeleted(1);
 		return R.status(corpsBankService.updateById(corpsBank));
 	}
 
@@ -111,7 +115,7 @@ public class CorpsBankController extends BladeController {
 		return R.status(corpsBankService.saveOrUpdate(corpsBank));
 	}
 
-	
+
 	/**
 	 * 删除 客户银行
 	 */
@@ -122,5 +126,5 @@ public class CorpsBankController extends BladeController {
 		return R.status(corpsBankService.removeByIds(Func.toLongList(ids)));
 	}
 
-	
+
 }

+ 15 - 4
blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsDescController.java

@@ -25,6 +25,7 @@ import javax.validation.Valid;
 
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.web.bind.annotation.*;
@@ -55,7 +56,7 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 1)
 	@ApiOperation(value = "详情", notes = "传入corpsDesc")
 	public R<CorpsDesc> detail(CorpsDesc corpsDesc) {
-		CorpsDesc detail = corpsDescService.getOne(Condition.getQueryWrapper(corpsDesc));
+		CorpsDesc detail = corpsDescService.getMessageByID(corpsDesc);
 		return R.data(detail);
 	}
 
@@ -66,6 +67,8 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入corpsDesc")
 	public R<IPage<CorpsDesc>> list(CorpsDesc corpsDesc, Query query) {
+		corpsDesc.setIsDeleted(0);//默认查有效的
+		corpsDesc.setTenantId(SecureUtil.getTenantId());
 		IPage<CorpsDesc> pages = corpsDescService.page(Condition.getPage(query), Condition.getQueryWrapper(corpsDesc));
 		return R.data(pages);
 	}
@@ -98,6 +101,10 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入corpsDesc")
 	public R update(@Valid @RequestBody CorpsDesc corpsDesc) {
+		if (corpsDesc.getId() == null){
+			return R.data(500,"请选择要删除的数据","error");
+		}
+		corpsDesc.setIsDeleted(1);
 		return R.status(corpsDescService.updateById(corpsDesc));
 	}
 
@@ -108,10 +115,14 @@ public class CorpsDescController extends BladeController {
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入corpsDesc")
 	public R submit(@Valid @RequestBody CorpsDesc corpsDesc) {
-		return R.status(corpsDescService.saveOrUpdate(corpsDesc));
+		CorpsDesc submit = corpsDescService.submit(corpsDesc);
+		if (submit != null){
+			return R.data(submit);
+		}
+		return R.data(500,"error","保存失败");
 	}
 
-	
+
 	/**
 	 * 删除 客户详情
 	 */
@@ -122,5 +133,5 @@ public class CorpsDescController extends BladeController {
 		return R.status(corpsDescService.removeByIds(Func.toLongList(ids)));
 	}
 
-	
+
 }

+ 6 - 2
blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsFilesController.java

@@ -98,6 +98,10 @@ public class CorpsFilesController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入corpsFiles")
 	public R update(@Valid @RequestBody CorpsFiles corpsFiles) {
+		if (corpsFiles.getId() == null){
+			return R.data(500,"请选择要删除的数据","error");
+		}
+		corpsFiles.setIsDeleted(1);
 		return R.status(corpsFilesService.updateById(corpsFiles));
 	}
 
@@ -111,7 +115,7 @@ public class CorpsFilesController extends BladeController {
 		return R.status(corpsFilesService.saveOrUpdate(corpsFiles));
 	}
 
-	
+
 	/**
 	 * 删除 客户文件
 	 */
@@ -122,5 +126,5 @@ public class CorpsFilesController extends BladeController {
 		return R.status(corpsFilesService.removeByIds(Func.toLongList(ids)));
 	}
 
-	
+
 }

+ 6 - 2
blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsItemController.java

@@ -98,6 +98,10 @@ public class CorpsItemController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入corpsItem")
 	public R update(@Valid @RequestBody CorpsItem corpsItem) {
+		if (corpsItem.getId() == null){
+			return R.data(500,"请选择要删除的数据","error");
+		}
+		corpsItem.setIsDeleted(1);
 		return R.status(corpsItemService.updateById(corpsItem));
 	}
 
@@ -111,7 +115,7 @@ public class CorpsItemController extends BladeController {
 		return R.status(corpsItemService.saveOrUpdate(corpsItem));
 	}
 
-	
+
 	/**
 	 * 删除 客户优势项目
 	 */
@@ -122,5 +126,5 @@ public class CorpsItemController extends BladeController {
 		return R.status(corpsItemService.removeByIds(Func.toLongList(ids)));
 	}
 
-	
+
 }

+ 17 - 0
blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsTypeController.java

@@ -27,6 +27,8 @@ import javax.validation.Valid;
 import org.springblade.core.cache.utils.CacheUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.web.bind.annotation.*;
@@ -36,6 +38,8 @@ import org.springblade.client.vo.CorpsTypeVO;
 import org.springblade.client.service.ICorpsTypeService;
 import org.springblade.core.boot.ctrl.BladeController;
 
+import java.util.List;
+
 import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE;
 
 /**
@@ -82,6 +86,7 @@ public class CorpsTypeController extends BladeController {
 	@ApiOperation(value = "分页", notes = "传入corpsType")
 	public R<IPage<CorpsTypeVO>> page(CorpsTypeVO corpsType, Query query) {
 		corpsType.setIsDeleted(0);
+		corpsType.setTenantId(SecureUtil.getTenantId());
 		IPage<CorpsTypeVO> pages = corpsTypeService.selectCorpsTypePage(Condition.getPage(query), corpsType);
 		return R.data(pages);
 	}
@@ -131,6 +136,18 @@ public class CorpsTypeController extends BladeController {
 	public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
 		return R.status(corpsTypeService.removeByIds(Func.toLongList(ids)));
 	}
+	/**
+	 * 获取客户类别树形结构
+	 *
+	 * @return
+	 */
+	@GetMapping("/tree")
+	@ApiOperationSupport(order = 4)
+	@ApiOperation(value = "树形结构", notes = "树形结构")
+	public R<List<CorpsTypeVO>> tree(String tenantId, BladeUser bladeUser) {
+		List<CorpsTypeVO> tree = corpsTypeService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()));
+		return R.data(tree);
+	}
 
 
 }

+ 6 - 2
blade-service/blade-client/src/main/java/org/springblade/client/controller/CorpsTypeDescController.java

@@ -98,6 +98,10 @@ public class CorpsTypeDescController extends BladeController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "修改", notes = "传入corpsTypeDesc")
 	public R update(@Valid @RequestBody CorpsTypeDesc corpsTypeDesc) {
+		if (corpsTypeDesc.getId() == null){
+			return R.data(500,"请选择要删除的数据","error");
+		}
+		corpsTypeDesc.setStatus(1);
 		return R.status(corpsTypeDescService.updateById(corpsTypeDesc));
 	}
 
@@ -111,7 +115,7 @@ public class CorpsTypeDescController extends BladeController {
 		return R.status(corpsTypeDescService.saveOrUpdate(corpsTypeDesc));
 	}
 
-	
+
 	/**
 	 * 删除 客户-客户类别对应表
 	 */
@@ -122,5 +126,5 @@ public class CorpsTypeDescController extends BladeController {
 		return R.status(corpsTypeDescService.removeByIds(Func.toLongList(ids)));
 	}
 
-	
+
 }

+ 8 - 1
blade-service/blade-client/src/main/java/org/springblade/client/entity/CorpsDesc.java

@@ -19,6 +19,7 @@ package org.springblade.client.entity;
 import java.math.BigDecimal;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.time.LocalDateTime;
@@ -29,6 +30,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.springframework.data.annotation.Transient;
 
 /**
  * 客户详情实体类
@@ -238,27 +240,32 @@ public class CorpsDesc implements Serializable {
 	 * 客户联系人
 	 */
 		@ApiModelProperty(value = "客户联系人")
+		@TableField(exist = false)
 		private List<CorpsAttn> corpsAttnList;
 	/**
 	 * 客户银行
 	 */
 		@ApiModelProperty(value = "客户银行")
+		@TableField(exist = false)
 		private List<CorpsBank> corpsBankList;
 	/**
 	 * 客户文件
 	 */
 		@ApiModelProperty(value = "客户文件")
+		@TableField(exist = false)
 		private List<CorpsFiles> corpsFiles;
 	/**
 	 *客户优势项目
 	 */
 		@ApiModelProperty(value = "客户优势项目")
+		@TableField(exist = false)
 		private List<CorpsItem> corpsItems;
 	/**
 	 *客户类别
 	 */
 		@ApiModelProperty(value = "客户类别")
-		private Long corpsTypeId;
+		@TableField(exist = false)
+		private String corpsTypeId;
 
 
 }

+ 3 - 0
blade-service/blade-client/src/main/java/org/springblade/client/entity/TableMessage.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.client.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import java.time.LocalDateTime;
 import java.io.Serializable;
@@ -23,6 +24,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.springframework.data.annotation.Transient;
 
 /**
  * 用户自定义列表信息实体类
@@ -101,6 +103,7 @@ public class TableMessage implements Serializable {
 	 * 转换json字符串
 	 */
 	@ApiModelProperty(value = "转换json字符串")
+	@TableField(exist = false)
 	private String jsonMessage;
 
 

+ 8 - 0
blade-service/blade-client/src/main/java/org/springblade/client/mapper/CorpsTypeDescMapper.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.client.mapper;
 
+import org.apache.ibatis.annotations.Param;
 import org.springblade.client.entity.CorpsTypeDesc;
 import org.springblade.client.vo.CorpsTypeDescVO;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -39,4 +40,11 @@ public interface CorpsTypeDescMapper extends BaseMapper<CorpsTypeDesc> {
 	 */
 	List<CorpsTypeDescVO> selectCorpsTypeDescPage(IPage page, CorpsTypeDescVO corpsTypeDesc);
 
+	/**
+	 * 查询客户类别
+	 * @param corpId
+	 * @return
+	 */
+	List<String> selectTypeId(@Param("corpId") Long corpId);
+
 }

+ 4 - 1
blade-service/blade-client/src/main/java/org/springblade/client/mapper/CorpsTypeDescMapper.xml

@@ -18,7 +18,10 @@
 
 
     <select id="selectCorpsTypeDescPage" resultMap="corpsTypeDescResultMap">
-        select * from basic_corps_type_desc where is_deleted = 0
+        select * from basic_corps_type_desc where status = 0
+    </select>
+    <select id="selectTypeId" resultType="string">
+        select corp_type_id from basic_corps_type_desc where status = 0 and corp_id = #{corpId}
     </select>
 
 </mapper>

+ 7 - 0
blade-service/blade-client/src/main/java/org/springblade/client/mapper/CorpsTypeMapper.java

@@ -39,5 +39,12 @@ public interface CorpsTypeMapper extends BaseMapper<CorpsType> {
 	 * @return
 	 */
 	List<CorpsTypeVO> selectCorpsTypePage(IPage page, @Param("corpsType") CorpsTypeVO corpsType);
+	/**
+	 * 获取树形节点
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	List<CorpsTypeVO> tree(String tenantId);
 
 }

+ 24 - 0
blade-service/blade-client/src/main/java/org/springblade/client/mapper/CorpsTypeMapper.xml

@@ -20,6 +20,14 @@
         <result column="status" property="status"/>
         <result column="is_deleted" property="isDeleted"/>
     </resultMap>
+    <resultMap id="treeNodeResultMap" type="org.springblade.core.tool.node.TreeNode">
+        <id column="id" property="id"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="title" property="title"/>
+        <result column="value" property="value"/>
+        <result column="key" property="key"/>
+        <result column="has_children" property="hasChildren"/>
+    </resultMap>
 
 
     <select id="selectCorpsTypePage" resultType="org.springblade.client.vo.CorpsTypeVO">
@@ -92,5 +100,21 @@
             </if>
         </where>
     </select>
+    <select id="tree" resultMap="treeNodeResultMap">
+        SELECT
+        id,
+        parent_id,
+        cname AS title,
+        id AS "value",
+        id AS "key"
+        FROM
+        basic_corps_type
+        WHERE
+        is_deleted = 0
+        <if test="_parameter!=null and _parameter!=''">
+            and tenant_id = #{_parameter}
+        </if>
+        ORDER BY sort
+    </select>
 
 </mapper>

+ 4 - 1
blade-service/blade-client/src/main/java/org/springblade/client/service/ICorpsDescService.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.client.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springblade.client.entity.CorpsDesc;
 import org.springblade.client.vo.CorpsDescVO;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -43,6 +44,8 @@ public interface ICorpsDescService extends IService<CorpsDesc> {
 	 * @param corpsDesc
 	 * @return
 	 */
-	boolean submit(CorpsDesc corpsDesc);
+	CorpsDesc submit(CorpsDesc corpsDesc);
+
+	CorpsDesc getMessageByID(CorpsDesc corpsDesc);
 
 }

+ 9 - 0
blade-service/blade-client/src/main/java/org/springblade/client/service/ICorpsTypeService.java

@@ -22,6 +22,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springblade.core.mp.support.Query;
 
+import java.util.List;
+
 /**
  * 客户类别表 服务类
  *
@@ -40,5 +42,12 @@ public interface ICorpsTypeService extends IService<CorpsType> {
 	IPage<CorpsTypeVO> selectCorpsTypePage(IPage<CorpsTypeVO> page, CorpsTypeVO corpsType);
 
 	boolean saveMessage(CorpsType corpsType);
+	/**
+	 * 树形结构
+	 *
+	 * @param tenantId
+	 * @return
+	 */
+	List<CorpsTypeVO> tree(String tenantId);
 
 }

+ 50 - 20
blade-service/blade-client/src/main/java/org/springblade/client/service/impl/CorpsDescServiceImpl.java

@@ -18,12 +18,13 @@ package org.springblade.client.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.conditions.query.QueryChainWrapper;
+import io.minio.messages.Item;
 import lombok.AllArgsConstructor;
-import org.springblade.client.entity.CorpsDesc;
-import org.springblade.client.entity.CorpsFiles;
-import org.springblade.client.entity.CorpsTypeDesc;
+import org.springblade.client.entity.*;
 import org.springblade.client.mapper.CorpsAttnMapper;
+import org.springblade.client.mapper.CorpsTypeDescMapper;
 import org.springblade.client.vo.CorpsDescVO;
 import org.springblade.client.mapper.CorpsDescMapper;
 import org.springblade.client.service.ICorpsDescService;
@@ -37,6 +38,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -55,6 +58,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	private CorpsFilesServiceImpl corpsFilesService;//客户文件
 	private CorpsItemServiceImpl corpsItemService;//客户优势项目
 	private CorpsTypeDescServiceImpl corpsTypeDescService;//客户与客户类别对应表
+	private CorpsTypeDescMapper corpsTypeDescMapper;
 	@Override
 	public IPage<CorpsDescVO> selectCorpsDescPage(IPage<CorpsDescVO> page, CorpsDescVO corpsDesc) {
 		return page.setRecords(baseMapper.selectCorpsDescPage(page, corpsDesc));
@@ -62,7 +66,7 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 
 	@Override
 	@Transactional
-	public boolean submit(CorpsDesc corpsDesc) {
+	public CorpsDesc submit(CorpsDesc corpsDesc) {
 		boolean flag = false;
 		Integer i ;
 		if (StringUtil.isBlank(corpsDesc.getTenantId())) {
@@ -91,12 +95,30 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 		//保存客户与类别对应关系
 		flag = this.saveOrUpdateTypeDesc(corpsDesc,userId,pId,date);
 		if (i != null && i>0){
-			flag = true;
+			return corpsDesc;
 		}else {
 			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+			return null;
 		}
-		return flag;
+	}
 
+	@Override
+	public CorpsDesc getMessageByID(CorpsDesc corpsDesc) {
+		CorpsDesc desc = baseMapper.selectById(corpsDesc.getId());
+		if (desc!= null){
+			//获取客户联系人
+			desc.setCorpsAttnList(corpsAttnService.list(new QueryWrapper<CorpsAttn>().eq("pid", corpsDesc.getId()).eq("is_deleted", 0).eq("status", 0)));
+			//获取客户银行
+			desc.setCorpsBankList(corpsBankService.list(new QueryWrapper<CorpsBank>().eq("pid", corpsDesc.getId()).eq("is_deleted", 0).eq("status", 0)));
+			//获取客户文件
+			desc.setCorpsFiles(corpsFilesService.list(new QueryWrapper<CorpsFiles>().eq("pid", corpsDesc.getId()).eq("is_deleted", 0).eq("status", 0)));
+			//获取客户优势项目
+			desc.setCorpsItems(corpsItemService.list(new QueryWrapper<CorpsItem>().eq("pid", corpsDesc.getId()).eq("is_deleted", 0).eq("status", 0)));
+			//获取客户类别
+			List<String> longs = corpsTypeDescMapper.selectTypeId(corpsDesc.getId());
+			desc.setCorpsTypeId(String.join(",",longs));
+		}
+		return desc;
 	}
 
 	/**
@@ -216,22 +238,30 @@ public class CorpsDescServiceImpl extends ServiceImpl<CorpsDescMapper, CorpsDesc
 	 * @return
 	 */
 	public boolean saveOrUpdateTypeDesc(CorpsDesc corpsDesc,Long userId,Long pId,Date date){
-		if (corpsDesc.getCorpsTypeId() != null){
-			CorpsTypeDesc typeDesc = corpsTypeDescService.getOne(new QueryWrapper<CorpsTypeDesc>().eq("corp_id", pId));
-			if (typeDesc != null){
-				typeDesc.setCorpTypeId(corpsDesc.getCorpsTypeId());
-				typeDesc.setUpdateTime(DateUtil.fromDate(date));
-				typeDesc.setUpdateUser(userId);
-				corpsTypeDescService.updateById(typeDesc);
-			}else {
-				CorpsTypeDesc corpsTypeDesc = new CorpsTypeDesc();
-				corpsTypeDesc.setCorpTypeId(corpsDesc.getCorpsTypeId());
-				corpsTypeDesc.setCreateUser(userId);
-				corpsTypeDesc.setCreateTime(DateUtil.fromDate(date));
-				corpsTypeDescService.save(corpsTypeDesc);
-			}
+		corpsTypeDescService.remove(new QueryWrapper<CorpsTypeDesc>().eq("corp_id",corpsDesc.getId()));
+		if (StringUtils.isNotBlank(corpsDesc.getCorpsTypeId())){
+			List<String> list = Arrays.asList(corpsDesc.getCorpsTypeId().split(","));
+			list.stream().forEach(item ->{
+				CorpsTypeDesc typeDesc = corpsTypeDescService.getOne(new QueryWrapper<CorpsTypeDesc>().eq("corp_id", pId)
+				.eq("corp_type_id",item));
+				if (typeDesc != null){
+					typeDesc.setCorpTypeId(Long.valueOf(item));
+					typeDesc.setCorpId(corpsDesc.getId());
+					typeDesc.setUpdateTime(DateUtil.fromDate(date));
+					typeDesc.setUpdateUser(userId);
+					corpsTypeDescService.updateById(typeDesc);
+				}else {
+					CorpsTypeDesc corpsTypeDesc = new CorpsTypeDesc();
+					corpsTypeDesc.setCorpId(corpsDesc.getId());
+					corpsTypeDesc.setCorpTypeId(Long.valueOf(item));
+					corpsTypeDesc.setCreateUser(userId);
+					corpsTypeDesc.setCreateTime(DateUtil.fromDate(date));
+					corpsTypeDescService.save(corpsTypeDesc);
+				}
+			});
 		}
 		return true;
 	}
 
+
 }

+ 6 - 0
blade-service/blade-client/src/main/java/org/springblade/client/service/impl/CorpsTypeServiceImpl.java

@@ -24,6 +24,7 @@ import org.springblade.client.service.ICorpsTypeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
@@ -92,4 +93,9 @@ public class CorpsTypeServiceImpl extends ServiceImpl<CorpsTypeMapper, CorpsType
 		return false;
 	}
 
+	@Override
+	public List<CorpsTypeVO> tree(String tenantId) {
+		return ForestNodeMerger.merge(baseMapper.tree(tenantId));
+	}
+
 }

+ 27 - 13
blade-service/blade-client/src/main/java/org/springblade/client/service/impl/TableMessageServiceImpl.java

@@ -25,12 +25,11 @@ import org.springblade.client.mapper.TableMessageMapper;
 import org.springblade.client.service.ITableMessageService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.common.utils.CreateFileUtil;
-import org.springblade.common.utils.FileUtil;
+import org.springblade.core.oss.MinioTemplate;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.DateUtil;
-import org.springblade.resource.feign.OssEndpointClient;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Service;
@@ -55,13 +54,16 @@ public class TableMessageServiceImpl extends ServiceImpl<TableMessageMapper, Tab
 
 	@Value("${server.profile}")
 	private String profile;
-	private final OssEndpointClient ossEndpointClient;
-	private static FileUtil fileUtil;
+	@Value("${oss.bucket-name}")
+	private String bucketName;
 
-	public TableMessageServiceImpl(OssEndpointClient ossEndpointClient) {
-		this.ossEndpointClient = ossEndpointClient;
+	private final MinioTemplate minioTemplate;
+
+	public TableMessageServiceImpl(MinioTemplate minioTemplate) {
+		this.minioTemplate = minioTemplate;
 	}
 
+
 	@Override
 	public IPage<TableMessageVO> selectTableMessagePage(IPage<TableMessageVO> page, TableMessageVO tableMessage) {
 		return page.setRecords(baseMapper.selectTableMessagePage(page, tableMessage));
@@ -83,22 +85,34 @@ public class TableMessageServiceImpl extends ServiceImpl<TableMessageMapper, Tab
 				InputStream inputStream = new FileInputStream(file);
 				multipartFile = new MockMultipartFile(file.getName(), inputStream);
 			}catch (Exception e){
-				return R.data(500,"上传json文件出错");
+				return R.data(500,"json文件转换出错");
 			}
 			//上传json文件]
-			//MultipartFile multipartFile = fileUtil.fileToMultipartFile(file);
-			R<BladeFile> bladeFileR = ossEndpointClient.putFile(multipartFile);
-			if (bladeFileR.isSuccess()){
-				tableMessage.setFileUrl(bladeFileR.getData().getLink());
-				file.delete();
+			try {
+				String fileName = SecureUtil.getUser().getTenantId()+"/"+SecureUtil.getUser().getUserId()+"/"+tableMessage.getFileName();
+				BladeFile bladeFile = minioTemplate.putFile(bucketName,fileName,multipartFile.getInputStream());
+				if (StringUtils.isNotBlank(bladeFile.getLink())){
+					tableMessage.setFileUrl(bladeFile.getLink());
+				}else {
+					return R.data(500,"上传json文件失败");
+				}
+			}catch (Exception e){
+				return R.data(500,"上传json文件失败");
 			}
+			//R<BladeFile> bladeFileR = ossEndpointClient.putFile(multipartFile);
+			/*if (bladeFile != null){
+				tableMessage.setFileUrl(bladeFile.getLink());
+				file.delete();
+			}else {
+				return R.data(500,"上传json文件失败");
+			}*/
 		}
 		//保存用户自定义信息
 		Integer i ;
 		List<TableMessage> tableMessages = baseMapper.selectList(new QueryWrapper<TableMessage>().eq("create_user", SecureUtil.getUserId()).eq("file_name", tableMessage.getFileName()));
 		tableMessage.setCreateDept(Long.valueOf(SecureUtil.getUser().getDeptId()));
 		Date date = new Date();
-		if (CollectionUtils.isNotEmpty(tableMessages)){
+		if (CollectionUtils.isEmpty(tableMessages)){
 			tableMessage.setCreateUser(SecureUtil.getUserId());
 			tableMessage.setCreateTime(DateUtil.fromDate(date));
 			i = baseMapper.insert(tableMessage);

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

@@ -9,4 +9,13 @@ spring:
     url: ${blade.datasource.dev.url}
     username: ${blade.datasource.dev.username}
     password: ${blade.datasource.dev.password}
+#默认对象存储配置
+oss:
+  enabled: true
+  name: minio
+  tenant-mode: true
+  endpoint: http://127.0.0.1:9000
+  access-key: minioadmin
+  secret-key: minioadmin
+  bucket-name: bladex