From c29479a57db73c4dd379788d1b819e716ff7e1c1 Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期二, 28 十一月 2023 10:39:39 +0800
Subject: [PATCH] 参数赋值,漏洞修复

---
 consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java |  171 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 123 insertions(+), 48 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
index 25f650a..bdfe0a0 100644
--- a/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
+++ b/consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
@@ -5,11 +5,12 @@
 import com.alibaba.excel.event.AnalysisEventListener;
 import com.alibaba.excel.exception.ExcelDataConvertException;
 import com.consum.base.BaseController;
+import com.consum.base.core.utils.CommonUtil;
+import com.consum.base.core.utils.FinSysTenantUtils;
 import com.consum.base.pojo.FinSysTenantParam;
 import com.consum.base.pojo.FinSysTenantSearchParam;
 import com.consum.base.service.FinSysTenantServiceImpl;
 import com.consum.base.service.FinSysTenantUserServiceImpl;
-import com.consum.base.core.utils.FinSysTenantUtils;
 import com.consum.model.po.FinSysTenant;
 import com.consum.model.po.FinSysTenantUser;
 import com.consum.model.vo.FinSysTenantUserResult;
@@ -17,6 +18,19 @@
 import com.walker.infrastructure.tree.TreeNode;
 import com.walker.infrastructure.utils.StringUtils;
 import com.walker.web.ResponseValue;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.io.ClassPathResource;
@@ -26,13 +40,12 @@
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URLEncoder;
-import java.util.*;
 
 /**
  * @Description 鍖哄垝
@@ -120,7 +133,12 @@
      * @Date 2023/7/14 13:59
      */
     @RequestMapping("/select/list")
-    public ResponseValue allocatedList(FinSysTenantSearchParam param) {
+    public ResponseValue allocatedList() {
+        FinSysTenantSearchParam param = CommonUtil.getObjFromReq(FinSysTenantSearchParam.class);
+        FinSysTenantSearchParam param2 = new FinSysTenantSearchParam();
+        CommonUtil.copyProperties(param, param2);
+        param = param2;
+
         FinSysTenantUser sysInfo = getSysInfo();
         if (sysInfo == null) {
             return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
@@ -164,12 +182,12 @@
         // 鐪佽繘鍏� 鏌ヨ 鐪佸拰鍦板競 锛涘湴甯傝繘鍏� 鏌ヨ鑷繁鍦板競
         // TODO Long.valueOf(getSysInfo().getTenantId())
         FinSysTenant finSysTenant =
-                this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId())));
+            this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId())));
         if (finSysTenant.getLv() == 3) {
             return ResponseValue.error("鍘垮尯绾у埆鏃犳硶鏌ョ湅");
         }
         List<FinSysTenant> finSysTenantList =
-                this.finSysTenantService.queryTreeById(finSysTenant.getId(), finSysTenant.getLv());
+            this.finSysTenantService.queryTreeById(finSysTenant.getId(), finSysTenant.getLv());
         List<TreeNode> treeNodeList = new ArrayList<>();
         // 鐪佹煡鏈韩鍙婁互涓� 甯傛煡鏈骇 鍘挎棤鏉冩煡鐪�
         if (finSysTenant.getLv() == 1) {
@@ -181,7 +199,7 @@
             }
         } else {
             TreeNode treeNode = new TreeNode(finSysTenantList.get(0).getId(), finSysTenantList.get(0).getName(),
-                    new ArrayList<>(), finSysTenantList.get(0).getParentId(), finSysTenantList.get(0).getCode());
+                new ArrayList<>(), finSysTenantList.get(0).getParentId(), finSysTenantList.get(0).getCode());
             treeNodeList.add(treeNode);
         }
         return ResponseValue.success(treeNodeList);
@@ -196,12 +214,12 @@
         // 鐪佽繘鍏� 鏌ヨ 鐪佸拰鍦板競 锛涘湴甯傝繘鍏� 鏌ヨ鑷繁鍦板競
         // TODO Long.valueOf(getSysInfo().getTenantId())
         FinSysTenant finSysTenant =
-                this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId())));
+            this.finSysTenantService.get(new FinSysTenant(Long.valueOf(getSysInfo().getTenantId())));
         if (finSysTenant.getLv() == 3) {
             return ResponseValue.error("鍘垮尯绾у埆鏃犳硶鏌ョ湅");
         }
         Map<Long, List<FinSysTenant>> finSysTenantList =
-                this.finSysTenantService.queryCountyByCityCode(finSysTenant.getId(), finSysTenant.getLv());
+            this.finSysTenantService.queryCountyByCityCode(finSysTenant.getId(), finSysTenant.getLv());
         return ResponseValue.success(finSysTenantList);
     }
 
@@ -272,7 +290,7 @@
 
     protected TreeNode toTreeNode(FinSysTenant entity) {
         TreeNode treeNode =
-                new TreeNode(entity.getId(), entity.getName(), (List) null, entity.getParentId(), entity.getCode());
+            new TreeNode(entity.getId(), entity.getName(), (List) null, entity.getParentId(), entity.getCode());
         return treeNode;
     }
 
@@ -295,9 +313,14 @@
      * @Description 涓嶅垎椤垫煡璇�
      */
     @RequestMapping("/select/allList")
-    public ResponseValue allList(FinSysTenantSearchParam param) {
+    public ResponseValue allList() {
+        FinSysTenantSearchParam param = CommonUtil.getObjFromReq(FinSysTenantSearchParam.class);
+        FinSysTenantSearchParam param2 = new FinSysTenantSearchParam();
+        CommonUtil.copyProperties(param, param2);
+        param = param2;
+
         StringBuilder whStr = new StringBuilder("where 1=1 and status = 1 and is_delete = 0 ");
-        HashMap  parameter = new HashMap<>();
+        HashMap parameter = new HashMap<>();
         if (param.getFirstZmS() != null && !param.getFirstZmS().equals("")) {
             whStr.append(" and name is not null and(");
             String upperCase = param.getFirstZmS().toUpperCase();
@@ -314,25 +337,37 @@
 
     /**
      * 鍒犻櫎
+     *
      * @author 鍗㈠簡闃�
      * @date 2023/10/4
      */
     @PostMapping("/del")
-    public ResponseValue del(@RequestBody FinSysTenantParam param) {
+    public ResponseValue del() {
+        FinSysTenantParam param = CommonUtil.getObjFromReqBody(FinSysTenantParam.class);
+        FinSysTenantParam finSysTenantParam = new FinSysTenantParam();
+        CommonUtil.copyProperties(param, finSysTenantParam);
+        param = finSysTenantParam;
+
         if (param.getId() == null) {
             return ResponseValue.error("鏈烘瀯id涓虹┖");
         }
-        int num =this.finSysTenantService.updateById(param,this.getSysInfo());
-        return num>0 ? ResponseValue.success(1):ResponseValue.error("鍒犻櫎澶辫触锛�");
+        int num = this.finSysTenantService.updateById(param, this.getSysInfo());
+        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("鍒犻櫎澶辫触锛�");
     }
 
     /**
      * 娣诲姞鏈烘瀯
+     *
      * @author 鍗㈠簡闃�
      * @date 2023/10/4
      */
     @PostMapping("/add")
-    public ResponseValue add(@RequestBody FinSysTenantParam param){
+    public ResponseValue add() {
+        FinSysTenantParam param = CommonUtil.getObjFromReqBody(FinSysTenantParam.class);
+        FinSysTenantParam finSysTenantParam = new FinSysTenantParam();
+        CommonUtil.copyProperties(param, finSysTenantParam);
+        param = finSysTenantParam;
+
         if (param == null) {
             return ResponseValue.error("鍙傛暟涓虹┖");
         }
@@ -342,7 +377,7 @@
         if (StringUtils.isEmpty(param.getName())) {
             return ResponseValue.error("鏈烘瀯鍚嶇О涓虹┖");
         }
-        FinSysTenant finSysTenant = this.finSysTenantService.selectByTenantId(param.getCode());
+        FinSysTenant finSysTenant = this.finSysTenantService.queryOneByCode(param.getCode());
         if (finSysTenant != null) {
             return ResponseValue.error("鏈烘瀯缂栧彿宸插瓨鍦�");
         }
@@ -351,8 +386,10 @@
         if (lv > 4) {
             return ResponseValue.error("涓嶈兘鍒涘缓鏀眬浠ヤ笅鏈烘瀯");
         }
-        int num = this.finSysTenantService.addFinSysTenant(param,this.getSysInfo(),lv);
-        if(num>0) return ResponseValue.success(1);
+        int num = this.finSysTenantService.addFinSysTenant(param, this.getSysInfo(), lv);
+        if (num > 0) {
+            return ResponseValue.success(1);
+        }
         return ResponseValue.error("鎻掑叆澶辫触锛�");
     }
 
@@ -371,9 +408,9 @@
         InputStreamResource resourceToDownload = new InputStreamResource(inputStream);
         // 杩斿洖甯︽湁鏂囦欢杈撳叆娴佺殑ResponseEntity瀵硅薄
         return ResponseEntity
-                .status(HttpStatus.OK)
-                .headers(headers)
-                .body(resourceToDownload);
+            .status(HttpStatus.OK)
+            .headers(headers)
+            .body(resourceToDownload);
     }
 
 
@@ -396,20 +433,20 @@
         InputStreamResource resourceToDownload = new InputStreamResource(inputStream);
         // 杩斿洖甯︽湁鏂囦欢杈撳叆娴佺殑ResponseEntity瀵硅薄
         return ResponseEntity
-                .status(HttpStatus.OK)
-                .headers(headers)
-                .body(resourceToDownload);
+            .status(HttpStatus.OK)
+            .headers(headers)
+            .body(resourceToDownload);
     }
 
 
     @PostMapping("import")
     public ResponseValue upload(@RequestParam Long pid, MultipartFile file) throws IOException {
         String originalFilename = file.getOriginalFilename();
-        if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))){
+        if (!"xls".equals(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))) {
             return ResponseValue.error("鏂囦欢鏍煎紡鏈夎!");
         }
         FinSysTenantUser sysInfo = this.getSysInfo();
-        if (sysInfo==null){
+        if (sysInfo == null) {
             return ResponseValue.error("褰撳墠鐧诲綍鐢ㄦ埛涓虹┖");
         }
         String parentIdStr = pid + "";
@@ -420,17 +457,20 @@
 
         EasyExcel.read(file.getInputStream(), FinSysTenantParam.class, new AnalysisEventListener<FinSysTenantParam>() {
             LinkedList<FinSysTenantParam> finSysTenantParams = new LinkedList<>();
+
             @Override
             public void invoke(FinSysTenantParam finSysTenantParam, AnalysisContext analysisContext) {
-                if (StringUtils.isEmpty(finSysTenantParam.getCode())||finSysTenantParam.getCode().length()>20){
-                    IllegalStateException exception = new IllegalStateException("绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯缂栧彿涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�20");
+                if (StringUtils.isEmpty(finSysTenantParam.getCode()) || finSysTenantParam.getCode().length() > 20) {
+                    IllegalStateException exception = new IllegalStateException(
+                        "绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯缂栧彿涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�20");
                     throw exception;
                 }
-                if (null!=finSysTenantService.selectByTenantId(finSysTenantParam.getCode())){
+                if (null != finSysTenantService.queryOneByCode(finSysTenantParam.getCode())) {
                     throw new IllegalStateException("绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯缂栧彿宸插瓨鍦�");
                 }
-                if (StringUtils.isEmpty(finSysTenantParam.getName())||finSysTenantParam.getName().length()>100){
-                    IllegalStateException exception = new IllegalStateException("绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯鍚嶇О涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�100");
+                if (StringUtils.isEmpty(finSysTenantParam.getName()) || finSysTenantParam.getName().length() > 100) {
+                    IllegalStateException exception = new IllegalStateException(
+                        "绗�" + analysisContext.readSheetHolder().getRowIndex() + "琛�,鏈烘瀯鍚嶇О涓嶈兘涓虹┖鎴栭暱搴﹀ぇ浜�100");
                     throw exception;
                 }
                 finSysTenantParam.setParentId(pid);
@@ -438,39 +478,48 @@
                 finSysTenantParam.setSummary("绯荤粺瀵煎叆");
                 finSysTenantParams.add(finSysTenantParam);
             }
+
             @Override
             public void doAfterAllAnalysed(AnalysisContext analysisContext) {
-                finSysTenantService.insertFinSysTenantBatch(finSysTenantParams,sysInfo,lv);
+                finSysTenantService.insertFinSysTenantBatch(finSysTenantParams, sysInfo, lv);
             }
 
             @Override
             public void onException(Exception exception, AnalysisContext context) {
                 // 濡傛灉鏄煇涓�涓崟鍏冩牸鐨勮浆鎹㈠紓甯� 鑳借幏鍙栧埌鍏蜂綋琛屽彿
                 if (exception instanceof ExcelDataConvertException) {
-                    ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
-                    logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}",excelDataConvertException.getRowIndex(),
-                            excelDataConvertException.getColumnIndex()+1, excelDataConvertException.getCellData().getStringValue());
-                    throw new IllegalStateException("绗�"+(excelDataConvertException.getRowIndex()+1)+"琛岋紝绗�"+(excelDataConvertException.getColumnIndex()+1)+"鍒楄В鏋愬紓甯�,寮傚父鏁版嵁涓�:[ "+excelDataConvertException.getCellData().getStringValue()+" ]");
+                    ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException) exception;
+                    logger.error("绗瑊}琛岋紝绗瑊}鍒楄В鏋愬紓甯革紝鏁版嵁涓�:{}", excelDataConvertException.getRowIndex(),
+                        excelDataConvertException.getColumnIndex() + 1, excelDataConvertException.getCellData().getStringValue());
+                    throw new IllegalStateException(
+                        "绗�" + (excelDataConvertException.getRowIndex() + 1) + "琛岋紝绗�" + (excelDataConvertException.getColumnIndex() + 1) + "鍒楄В鏋愬紓甯�,寮傚父鏁版嵁涓�:[ "
+                            + excelDataConvertException.getCellData().getStringValue() + " ]");
                 }
-                if (exception instanceof IllegalStateException){
-                    throw (IllegalStateException)exception;
+                if (exception instanceof IllegalStateException) {
+                    throw (IllegalStateException) exception;
                 }
 
             }
 
         }).doReadAll();
 
-        return ResponseValue.success("瀵煎叆鎴愬姛!",1);
+        return ResponseValue.success("瀵煎叆鎴愬姛!", 1);
     }
 
     /**
      * 缂栬緫
+     *
      * @author 鍗㈠簡闃�
      * @date 2023/10/6
      */
     @PostMapping("/edit")
-    public ResponseValue edit(@RequestBody FinSysTenant finSysTenant) {
-        Long id = finSysTenant.getId();
+    public ResponseValue edit() {
+        FinSysTenant param = CommonUtil.getObjFromReqBody(FinSysTenant.class);
+        FinSysTenant finSysTenant = new FinSysTenant();
+        CommonUtil.copyProperties(param, finSysTenant);
+        param = finSysTenant;
+
+        Long id = param.getId();
         if (id == null || id.longValue() <= 0) {
             return ResponseValue.error("缂栬緫鐨勬満鏋勪笉瀛樺湪");
         }
@@ -482,8 +531,8 @@
 //        if (finSysTenant1.getLv() != 1) {
 //            return ResponseValue.error("鏆傛棤淇敼鏉冮檺");
 //        }
-        int num = this.finSysTenantService.updateFinSysTenant(finSysTenant,this.getSysInfo());
-        return num>0 ? ResponseValue.success(1):ResponseValue.error("缂栬緫澶辫触锛�");
+        int num = this.finSysTenantService.updateFinSysTenant(param, this.getSysInfo());
+        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("缂栬緫澶辫触锛�");
     }
 
     /**
@@ -564,4 +613,30 @@
         }
         return ResponseValue.success(finSysTenantUserResults);
     }
+
+    @ApiOperation(value = "鑾峰彇鐖剁骇鏈烘瀯", notes = "鑾峰彇鐖剁骇鏈烘瀯")
+    @ApiImplicitParams({
+        @ApiImplicitParam(name = "Authorization", value = "token", dataType = "String", paramType = "header"),
+    })
+    @GetMapping("/get/parent/tenant")
+    public ResponseValue getParentTenant() {
+        FinSysTenantUser sysInfo = getSysInfo();
+        if (sysInfo == null) {
+            return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        String tenantId = sysInfo.getTenantId();
+        FinSysTenant finSysTenant = new FinSysTenant();
+        finSysTenant.setTempId(Long.valueOf(tenantId));
+        FinSysTenant userTenant = this.finSysTenantService.get(finSysTenant);
+        Long parentId = userTenant.getParentId();
+        //绗竴绾�
+        if (parentId == 0) {
+            return ResponseValue.success(userTenant);
+        } else {
+            FinSysTenant param = new FinSysTenant();
+            param.setTempId(Long.valueOf(parentId));
+            FinSysTenant result = this.finSysTenantService.get(param);
+            return ResponseValue.success(result);
+        }
+    }
 }

--
Gitblit v1.9.1