From 81182562d3328ff9b722e807d07277478c7690bb Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 18 九月 2023 15:08:02 +0800
Subject: [PATCH] 休bug

---
 server/company/src/main/java/com/doumee/api/business/GoodsController.java                  |    3 
 server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java |    2 
 server/company/src/main/java/com/doumee/api/business/BrandController.java                  |    2 
 server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java     |    9 +
 server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java             |   16 ++
 server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java    |  114 ++++++++++++++++
 server/company/src/main/java/com/doumee/api/business/CategoryController.java               |    6 
 server/company/src/main/java/com/doumee/config/shiro/ShiroConfig.java                      |   18 ++
 server/service/src/main/java/com/doumee/dao/system/dto/WebLoginDTO.java                    |   26 +++
 server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java    |   21 +-
 server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java     |   73 +++++++++
 server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java                            |    1 
 server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java             |   10 +
 server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java        |   20 ++
 server/service/src/main/java/com/doumee/config/shiroMemory/ShiroConfig.java                |    1 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                          |    5 
 server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java        |   12 
 server/company/src/main/java/com/doumee/api/system/SystemController.java                   |   14 +
 server/service/src/main/java/com/doumee/dao/business/model/Category.java                   |   11 +
 server/service/src/main/java/com/doumee/service/business/CategoryService.java              |    2 
 server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsImportDTO.java     |   44 ++++++
 21 files changed, 377 insertions(+), 33 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/BrandController.java b/server/company/src/main/java/com/doumee/api/business/BrandController.java
index c10e7ad..92d5112 100644
--- a/server/company/src/main/java/com/doumee/api/business/BrandController.java
+++ b/server/company/src/main/java/com/doumee/api/business/BrandController.java
@@ -4,12 +4,14 @@
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Brand;
 import com.doumee.service.business.BrandService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
diff --git a/server/company/src/main/java/com/doumee/api/business/CategoryController.java b/server/company/src/main/java/com/doumee/api/business/CategoryController.java
index c167c2c..61e0f93 100644
--- a/server/company/src/main/java/com/doumee/api/business/CategoryController.java
+++ b/server/company/src/main/java/com/doumee/api/business/CategoryController.java
@@ -179,4 +179,10 @@
         return ApiResponse.success(baseCategory);
     }
 
+    @ApiOperation("鍒楄〃 - SaaSH5")
+    @PostMapping("/saasList")
+    public ApiResponse<List<Category>> saasList (@RequestBody Category category) {
+        return ApiResponse.success(categoryService.findListSaaS(category));
+    }
+
 }
diff --git a/server/company/src/main/java/com/doumee/api/business/GoodsController.java b/server/company/src/main/java/com/doumee/api/business/GoodsController.java
index 8cb0195..81803f2 100644
--- a/server/company/src/main/java/com/doumee/api/business/GoodsController.java
+++ b/server/company/src/main/java/com/doumee/api/business/GoodsController.java
@@ -12,6 +12,7 @@
 import com.doumee.dao.business.model.dto.GoodsRequest;
 import com.doumee.service.business.GoodsService;
 import io.swagger.annotations.*;
+import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -152,6 +153,8 @@
     @ApiOperation("鍒楄〃 - H5")
     @PostMapping("/list")
     public ApiResponse<List<Goods>> findList (@RequestBody Goods goods) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        goods.setCompanyId(user.getCompanyId());
         return ApiResponse.success(goodsService.findList(goods));
     }
 
diff --git a/server/company/src/main/java/com/doumee/api/system/SystemController.java b/server/company/src/main/java/com/doumee/api/system/SystemController.java
index ed5bcde..1f3c5e3 100644
--- a/server/company/src/main/java/com/doumee/api/system/SystemController.java
+++ b/server/company/src/main/java/com/doumee/api/system/SystemController.java
@@ -9,13 +9,16 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.dao.system.dto.LoginDTO;
 import com.doumee.dao.system.dto.UpdatePwdDto;
+import com.doumee.dao.system.dto.WebLoginDTO;
 import com.doumee.service.system.SystemLoginService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.subject.Subject;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -39,12 +42,21 @@
     private SystemLoginService systemLoginService;
 
     @PreventRepeat(limit = 10, lockTime = 10000)
-    @ApiOperation("鐧诲綍")
+    @ApiOperation("鐧诲綍 - 鍚庣")
     @PostMapping("/login")
     public ApiResponse<String> login (@Validated @RequestBody LoginDTO dto, HttpServletRequest request) {
         return ApiResponse.success(systemLoginService.loginByPassword(dto, Constants.ONE, request));
     }
 
+    @PreventRepeat(limit = 10, lockTime = 10000)
+    @ApiOperation("鐧诲綍 - H5")
+    @PostMapping("/loginH5")
+    public ApiResponse<String> loginH5 (@Validated @RequestBody WebLoginDTO dto, HttpServletRequest request) {
+        LoginDTO loginDTO = new LoginDTO();
+        BeanUtils.copyProperties(dto,loginDTO);
+        return ApiResponse.success(systemLoginService.loginByPassword(loginDTO, Constants.TWO, request));
+    }
+
     @ApiOperation("閫�鍑虹櫥褰�")
     @PostMapping("/logout")
     public ApiResponse logout () {
diff --git a/server/company/src/main/java/com/doumee/config/shiro/ShiroConfig.java b/server/company/src/main/java/com/doumee/config/shiro/ShiroConfig.java
index 6a9becb..c9bee5f 100644
--- a/server/company/src/main/java/com/doumee/config/shiro/ShiroConfig.java
+++ b/server/company/src/main/java/com/doumee/config/shiro/ShiroConfig.java
@@ -89,15 +89,33 @@
         Map<String, String> map = new LinkedHashMap<>();
         // 璺緞鎷︽埅閰嶇疆
         // 璺緞鎷︽埅閰嶇疆
+//        map.put("/system/dictData/companyUserRules","anon");
+//        map.put("/system/login", "anon");
+//        map.put("/system/logout", "anon");
+//        map.put("/common/captcha", "anon");
+//        map.put("/business/areas/*", "anon");
+//        map.put("/public/uploadPicture","anon");
+//        map.put("/public/uploadLocal","anon");
+
         map.put("/system/dictData/companyUserRules","anon");
         map.put("/system/login", "anon");
         map.put("/system/logout", "anon");
+        map.put("/system/loginH5", "anon");
         map.put("/common/captcha", "anon");
         map.put("/business/areas/*", "anon");
         map.put("/public/uploadPicture","anon");
         map.put("/public/uploadLocal","anon");
 
 
+        map.put("/business/company/register", "anon");
+        map.put("/business/labels/page","anon");
+        map.put("/business/*/list","anon");
+        map.put("/business/goods/goodsPage","anon");
+        map.put("/business/goods/h5Image","anon");
+        map.put("/business/goods/export","anon");
+        map.put("/business/goods/listForH5","anon");
+
+
         // - 鏀捐swagger
         map.put("/doc.html", "anon");
         map.put("/webjars/**", "anon");
diff --git a/server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java b/server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java
index f2c716c..ddf51c0 100644
--- a/server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/BaseGoodsController.java
@@ -10,13 +10,15 @@
 import com.doumee.dao.business.model.dto.BaseGoodsCreateOrUpdateRequest;
 import com.doumee.dao.business.model.dto.BaseGoodsDTO;
 import com.doumee.service.business.BaseGoodsService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
 import javax.servlet.http.HttpServletResponse;
 
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -142,4 +144,14 @@
         baseGoodsService.update(baseGoods);
         return ApiResponse.success(null);
     }
+
+    @ApiOperation("瀵煎叆妯℃澘")
+    @PostMapping("/importExcel")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "file", value = "file", required = true, paramType = "query", dataType = "file", dataTypeClass = File.class),
+    })
+    @RequiresPermissions("business:basegoods:create")
+    public ApiResponse<Integer> importExcel (@ApiParam(value = "file") MultipartFile file) {
+        return ApiResponse.success(baseGoodsService.importBaseGoodsBatch(file));
+    }
 }
diff --git a/server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java b/server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java
index 97bfa1e..5f49fff 100644
--- a/server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java
+++ b/server/platform/src/main/java/com/doumee/shiro/ShiroConfig.java
@@ -91,6 +91,7 @@
         map.put("/system/dictData/companyUserRules","anon");
         map.put("/system/login", "anon");
         map.put("/system/logout", "anon");
+        map.put("/system/loginH5", "anon");
         map.put("/common/captcha", "anon");
         map.put("/business/areas/*", "anon");
         map.put("/public/uploadPicture","anon");
diff --git a/server/service/src/main/java/com/doumee/config/shiroMemory/ShiroConfig.java b/server/service/src/main/java/com/doumee/config/shiroMemory/ShiroConfig.java
index 509c63d..ef719af 100644
--- a/server/service/src/main/java/com/doumee/config/shiroMemory/ShiroConfig.java
+++ b/server/service/src/main/java/com/doumee/config/shiroMemory/ShiroConfig.java
@@ -75,6 +75,7 @@
         map.put("/system/dictData/companyUserRules","anon");
         map.put("/system/login", "anon");
         map.put("/system/logout", "anon");
+        map.put("/system/loginH5", "anon");
         map.put("/common/captcha", "anon");
         map.put("/business/areas/*", "anon");
         map.put("/business/company/register", "anon");
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 8cbd647..7c7b36b 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -24,6 +24,11 @@
     public static final String ENDPOINT = "ENDPOINT";
     public static final String RESOURCE_PATH = "RESOURCE_PATH";
     public static final String WEB_PARAM = "WEB_PARAM";
+    public static final String MAIN_COLOR = "MAIN_COLOR";
+    public static final String BG_IMG = "BG_IMG";
+    public static final String TOP_IMG = "TOP_IMG";
+    public static final String PK_IMG = "PK_IMG";
+    public static final String RANGE_SIZE = "RANGE_SIZE";
 
 
     public static final String SYSTEM ="SYSTEM";
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Category.java b/server/service/src/main/java/com/doumee/dao/business/model/Category.java
index 0c67dbb..3768bad 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Category.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Category.java
@@ -103,11 +103,11 @@
     @TableField(exist = false)
     private List<CateParam> paramList;
 
-    @ApiModelProperty(value = "灞炴��1 鍒楄〃鍊�")
+    @ApiModelProperty(value = "灞炴��1 鍒楄〃鍊�"  ,hidden = true)
     @TableField(exist = false)
     private List<CateAttr> attrFirstList;
 
-    @ApiModelProperty(value = "灞炴��2 鍒楄〃鍊�")
+    @ApiModelProperty(value = "灞炴��2 鍒楄〃鍊�"  ,hidden = true)
     @TableField(exist = false)
     private List<CateAttr> attrSecondList;
 
@@ -115,4 +115,11 @@
     @TableField(exist = false)
     private List<CateBudget> budgetList;
 
+    @ApiModelProperty(value = "灞炴��1 鍒楄〃鍊�")
+    @TableField(exist = false)
+    private List<CateParamSelect> cateParamFirstList;
+
+    @ApiModelProperty(value = "灞炴��2 鍒楄〃鍊�")
+    @TableField(exist = false)
+    private List<CateParamSelect> cateParamSecondList;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsImportDTO.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsImportDTO.java
new file mode 100644
index 0000000..001da90
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseGoodsImportDTO.java
@@ -0,0 +1,44 @@
+package com.doumee.dao.business.model.dto;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author T14
+ */
+@Data
+@ApiModel("鍙傛暟灞炴�у��")
+public class BaseGoodsImportDTO {
+
+    @ApiModelProperty(value = "鍟嗗搧ID")
+    @ExcelColumn(name="鍟嗗搧ID")
+    private String id;
+
+    @ApiModelProperty(value = "鍟嗗搧鍚嶇О")
+    @ExcelColumn(name="鍟嗗搧鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "鍟嗗搧绫诲埆")
+    @ExcelColumn(name="鍟嗗搧绫诲埆")
+    private String categoryName;
+
+    @ApiModelProperty(value = "鍟嗗搧鍝佺墝")
+    @ExcelColumn(name="鍟嗗搧鍝佺墝")
+    private String brandName;
+
+    @ApiModelProperty(value = "鎸囧浠�")
+    @ExcelColumn(name="鎸囧浠�")
+    private BigDecimal zdPrice;
+
+    @ApiModelProperty(value = "鍏ユ墜浠�")
+    @ExcelColumn(name="鍏ユ墜浠�")
+    private BigDecimal price;
+
+    @ApiModelProperty(value = "浜у搧鍙傛暟")
+    @ExcelColumn(name="浜у搧鍙傛暟")
+    private String baseGoodsParamString;
+}
diff --git a/server/service/src/main/java/com/doumee/dao/system/dto/WebLoginDTO.java b/server/service/src/main/java/com/doumee/dao/system/dto/WebLoginDTO.java
new file mode 100644
index 0000000..22575c6
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/system/dto/WebLoginDTO.java
@@ -0,0 +1,26 @@
+package com.doumee.dao.system.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/02/14 11:14
+ */
+@Data
+@ApiModel("H5涓绘挱鐧诲綍鍙傛暟")
+public class WebLoginDTO implements Serializable {
+
+    @NotBlank(message = "鐢ㄦ埛鍚嶄笉鑳戒负绌�")
+    @ApiModelProperty(value = "鐢ㄦ埛鍚�")
+    private String username;
+
+    @NotBlank(message = "瀵嗙爜涓嶈兘涓虹┖")
+    @ApiModelProperty(value = "瀵嗙爜")
+    private String password;
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java b/server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java
index c2b4d3d..e88130c 100644
--- a/server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java
+++ b/server/service/src/main/java/com/doumee/service/business/BaseGoodsService.java
@@ -5,6 +5,7 @@
 import com.doumee.dao.business.model.BaseGoods;
 import com.doumee.dao.business.model.dto.BaseGoodsCreateOrUpdateRequest;
 import com.doumee.dao.business.model.dto.BaseGoodsDTO;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
 
@@ -131,4 +132,13 @@
      * @return long
      */
     long count(BaseGoods baseGoods);
+
+
+
+    /**
+     * 浼佷笟鐢ㄦ埛鎵归噺瀵煎叆
+     * @param file
+     * @return
+     */
+    Integer importBaseGoodsBatch(MultipartFile file);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/CategoryService.java b/server/service/src/main/java/com/doumee/service/business/CategoryService.java
index 3131e15..8e83906 100644
--- a/server/service/src/main/java/com/doumee/service/business/CategoryService.java
+++ b/server/service/src/main/java/com/doumee/service/business/CategoryService.java
@@ -85,6 +85,8 @@
      */
     List<Category> findList(Category category);
 
+    List<Category> findListSaaS(Category category);
+
     List<Category> companyFindList(Category category);
     /**
      * 鏌ヨ绫诲埆
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java
index bc7332f..59a522d 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java
@@ -61,7 +61,7 @@
 
         BaseCategory baseCategory1 = baseCategoryMapper.selectOne(wrapper);
         if (Objects.nonNull(baseCategory1)){
-            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍝佺被淇℃伅琛�");
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍝佺被淇℃伅宸插瓨鍦�");
         }
         BaseCategory baseCategory2 = new BaseCategory();
         baseCategory2.setCreator(loginUserInfo.getId());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java
index b6e046d..562835a 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java
@@ -1,6 +1,7 @@
 package com.doumee.service.business.impl;
 
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.annotation.excel.ExcelImporter;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
@@ -14,6 +15,7 @@
 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.service.business.BaseGoodsService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -21,6 +23,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,16 +31,20 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 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.util.stream.Collectors;
 
 /**
  * 绱犳潗搴�-鍟嗗搧淇℃伅琛⊿ervice瀹炵幇
  * @author 姹熻箘韫�
  * @date 2023/09/07 11:41
  */
+@Slf4j
 @Service
 public class BaseGoodsServiceImpl implements BaseGoodsService {
 
@@ -64,6 +71,10 @@
 
     @Autowired
     private GoodsMapper goodsMapper;
+
+    @Autowired
+    private BaseCategoryMapper baseCategoryMapper;
+
 
     @Override
     public Integer create(BaseGoodsCreateOrUpdateRequest baseGoods) {
@@ -342,7 +353,7 @@
                     .selectAs(BaseCategory::getName,BaseGoods::getCategoryName)
                     .eq(BaseGoods::getIsdeleted, Constants.ZERO)
                     .like(StringUtils.isNotBlank(pageWrap.getModel().getName()), BaseGoods::getName,pageWrap.getModel().getName())
-                    .eq(pageWrap.getModel().getId()!=null,BaseGoods::getId, pageWrap.getModel().getId())
+                    .like(pageWrap.getModel().getId()!=null,BaseGoods::getId, pageWrap.getModel().getId())
                     .eq(pageWrap.getModel().getCategoryId()!=null,BaseGoods::getCategoryId, pageWrap.getModel().getCategoryId())
                     .eq(pageWrap.getModel().getBrandId()!=null,BaseGoods::getBrandId, pageWrap.getModel().getBrandId())
                     .eq(pageWrap.getModel().getStatus()!=null,BaseGoods::getStatus, pageWrap.getModel().getStatus());
@@ -362,4 +373,105 @@
         QueryWrapper<BaseGoods> wrapper = new QueryWrapper<>(baseGoods);
         return baseGoodsMapper.selectCount(wrapper);
     }
+
+
+    @Override
+    public Integer importBaseGoodsBatch(MultipartFile file) {
+
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        try {
+
+            ExcelImporter ie = new ExcelImporter(file,0,0);
+            List<BaseGoodsImportDTO> dataList = ie.getDataList(BaseGoodsImportDTO.class,null);
+            if(dataList == null || dataList.size() ==0){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝褰曞叆鏁版嵁涓虹┖锛�");
+            }
+            List<String> comNameList = dataList.stream().map(s -> s.getName().trim()).distinct().collect(Collectors.toList());
+
+            if (!(dataList.size() == comNameList.size())){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍟嗗搧鍚嶇О鏈夊凡瀛樺湪");
+            }
+
+//            List<String> collect1 = dataList.stream().filter(s->{
+//                if (StringUtils.isBlank(s.getBrandName())){
+//                    throw new BusinessException(ResponseStatus.BAD_REQUEST);
+//                }else {
+//                    return true;
+//                }
+//            }).map(s -> s.getCategoryName()).collect(Collectors.toList());
+//            QueryWrapper<BaseCategory> wrapper = new QueryWrapper<>();
+//            wrapper.lambda()
+//                    .in(BaseCategory::getName,collect1);
+//            List<BaseCategory> baseCategories = baseCategoryMapper.selectList(wrapper);
+
+            dataList.forEach(s->{
+
+                BaseGoods baseGoods = new BaseGoods();
+                baseGoods.setCreator(user.getId());
+                baseGoods.setCreateDate(new Date());
+                baseGoods.setEditor(user.getId());
+                baseGoods.setEditDate(new Date());
+                baseGoods.setIsdeleted(Constants.ZERO);
+                baseGoods.setName(s.getName());
+                baseGoods.setStatus(Constants.ZERO);
+
+                if (StringUtils.isBlank(s.getCategoryName())){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍟嗗搧绫诲埆涓嶅彲涓虹┖");
+                }
+                QueryWrapper<BaseCategory> categoryQuery = new QueryWrapper<>();
+                categoryQuery.lambda()
+                    .eq(BaseCategory::getName,s.getCategoryName());
+                BaseCategory baseCategory = baseCategoryMapper.selectOne(categoryQuery);
+
+
+                QueryWrapper<Brand> brandQuery = new QueryWrapper<>();
+                brandQuery.lambda()
+                        .eq(Brand::getName,s.getBrandName());
+                Brand brand = brandMapper.selectOne(brandQuery);
+
+//                baseGoods.setImgurl();
+                baseGoods.setCategoryId(baseCategory.getId());
+                baseGoods.setBrandId(brand.getId());
+                baseGoodsMapper.insert(baseGoods);
+
+                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->{
+                        if (!CollectionUtils.isEmpty(baseCategory.getBaseCateParamList())){
+
+                            BaseCateParam baseCateParam = baseCategory.getBaseCateParamList()
+                                    .stream().filter(s3 -> s3.getName().equals(s2.get(0))).findFirst()
+                                    .orElseThrow(()->new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"閰嶇疆鍙傛暟涓嶅瓨鍦�"));
+                            BaseGoodsParam baseGoodsParam = new BaseGoodsParam();
+                            baseGoodsParam.setCreator(user.getId());
+                            baseGoodsParam.setCreateDate(new Date());
+                            baseGoodsParam.setEditor(user.getId());
+                            baseGoodsParam.setEditDate(new Date());
+                            baseGoodsParam.setIsdeleted(Constants.ZERO);
+                            baseGoodsParam.setName(baseCateParam.getName());
+                            baseGoodsParam.setRemark(baseCateParam.getRemark());
+                            baseGoodsParam.setStatus(Constants.ZERO);
+                            baseGoodsParam.setSortnum(i+Constants.ONE);
+                            baseGoodsParam.setPramaId(baseCateParam.getId());
+                            baseGoodsParam.setVal(s2.size() > 1 ? s2.get(1) : null );
+                            baseGoodsParam.setGoodsId(baseGoods.getId());
+                            baseGoodsParamMapper.insert(baseGoodsParam);
+
+                        }
+                    });
+
+                }
+
+            });
+        }catch (Exception e) {
+            log.error(String.format("鎵归噺鎻掑叆寮傚父%s ",e.getMessage()));
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),e.getMessage());
+        }finally {
+
+        }
+        return null;
+    }
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java
index c71ad09..e9b5162 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java
@@ -158,8 +158,9 @@
         if (Constants.equalsInteger(user.getType(), Constants.UserType.SYSTEM.getKey())) {
             wrapper.lambda().eq(Brand::getType,Constants.ONE);
         }else {
-            wrapper.lambda().and(wapper ->{wapper.eq(Brand::getType,brand.getCompanyId())
-                    .or().eq(Brand::getType,Constants.ZERO);} );
+            wrapper.lambda().and(i->i.eq(Brand::getCompanyId,user.getCompanyId())
+                            .or().eq(Brand::getType,Constants.ZERO)
+            );
         }
         List<Brand> list = brandMapper.selectList(wrapper);
         String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()
@@ -189,10 +190,9 @@
         if (Objects.isNull(user.getCompanyId())) {
             queryWrapper.lambda().eq(Brand::getType,Constants.ONE);
         }else {
-            queryWrapper.lambda().and(wreapper->{
-                wreapper.eq(Brand::getType,pageWrap.getModel().getCompanyId())
-                        .or().eq(Brand::getType,Constants.ZERO);});
-
+            queryWrapper.lambda().and(i->i.eq(Brand::getCompanyId,user.getCompanyId())
+                    .or().eq(Brand::getType,Constants.ZERO)
+            );
         }
         queryWrapper.lambda().orderByAsc(Brand::getSortnum);
         IPage<Brand> brandIPage = brandMapper.selectPage(page, queryWrapper);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
index 233aebf..e084723 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CategoryServiceImpl.java
@@ -11,6 +11,7 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.CateAttrMapper;
 import com.doumee.dao.business.CateParamMapper;
+import com.doumee.dao.business.CateParamSelectMapper;
 import com.doumee.dao.business.CategoryMapper;
 import com.doumee.dao.business.model.*;
 import com.doumee.service.business.CategoryService;
@@ -47,6 +48,9 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private CateParamSelectMapper cateParamSelectMapper;
 
     @Override
     public Integer create(Category category) {
@@ -410,13 +414,15 @@
 
     @Override
     public List<Category> findList(Category category) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         QueryWrapper<Category> wrapper = new QueryWrapper<>(category)
                 .eq("STATUS",Constants.ZERO)
                 .eq("ISDELETED",Constants.ZERO)
+                .eq("COMPANY_ID",user.getCompanyId())
                 .orderByAsc(" SORTNUM ");
         List<Category> list = categoryMapper.selectList(wrapper);
-        String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
-                + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.FILE_DIR).getCode()
+                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode();
         for (Category c:list) {
             c.setPrefixUrl(prefixUrl);
             c.setAttrFirstList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ZERO).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
@@ -426,6 +432,61 @@
         return list;
     }
 
+
+
+    @Override
+    public List<Category> findListSaaS(Category category) {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!user.getType().equals(Constants.UserType.ZHUBO.getKey())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛绫诲埆閿欒锛岄潪涓绘挱鐢ㄦ埛!");
+        }
+        QueryWrapper<Category> wrapper = new QueryWrapper<>(category)
+                .eq("STATUS",Constants.ZERO)
+                .eq("ISDELETED",Constants.ZERO)
+                .eq("COMPANY_ID",user.getCompanyId())
+                .orderByAsc(" SORTNUM ");
+        List<Category> list = categoryMapper.selectList(wrapper);
+        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.FILE_DIR).getCode()
+                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode();
+        for (Category c:list) {
+            c.setPrefixUrl(prefixUrl);
+//            c.setAttrFirstList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ZERO).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
+//            c.setAttrSecondList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ONE).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
+            c.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
+            this.getParamSelect(c);
+        }
+        return list;
+    }
+
+
+    public void getParamSelect(Category category){
+        List<CateParam> cateParamList =  cateParamMapper.selectList(new QueryWrapper<CateParam>()
+                .eq("CATEGORY_ID",category.getId())
+                .eq("ISSELECT",Constants.ONE)
+                .eq("ISDELETED",Constants.ZERO)
+                .orderByAsc(" SORTNUM ")
+                .last(" limit 2 ")
+        );
+        if(!Objects.isNull(cateParamList)&&cateParamList.size()>Constants.ZERO){
+            for (int i = 0; i < cateParamList.size(); i++) {
+                CateParam cateParam = cateParamList.get(i);
+                List<CateParamSelect> cateParamSelectList = cateParamSelectMapper.selectList(new QueryWrapper<CateParamSelect>()
+                        .eq("PARAM_ID",cateParam.getId())
+                        .eq("ISDELETED",Constants.ZERO));
+                if(i==0){
+                    category.setAttrFirst(cateParam.getName());
+                    category.setCateParamFirstList(cateParamSelectList);
+                }else if(i==1){
+                    category.setAttrSecond(cateParam.getName());
+                    category.setCateParamSecondList(cateParamSelectList);
+                }
+
+            }
+        }
+    }
+
+
+
     @Override
     public List<Category> findListForGoods(Integer goodsId) {
         QueryWrapper<Category> wrapper = new QueryWrapper<Category>()
@@ -433,8 +494,8 @@
                 .eq("ISDELETED",Constants.ZERO)
                 .orderByAsc(" SORTNUM ");
         List<Category> list = categoryMapper.selectList(wrapper);
-        String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
-                + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.FILE_DIR).getCode()
+                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode();
         for (Category c:list) {
             c.setPrefixUrl(prefixUrl);
             c.setAttrFirstList(cateAttrMapper.selectList(new QueryWrapper<CateAttr>().eq("TYPE",Constants.ZERO).eq("ISDELETED",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
@@ -491,8 +552,8 @@
                 .eq("ISDELETED",Constants.ZERO)
                 .orderByAsc(" SORTNUM ");
         List<Category> list = categoryMapper.selectList(wrapper);
-        String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
-                + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
+        String prefixUrl = systemDictDataBiz.queryByCode(Constants.OSS, Constants.FILE_DIR).getCode()
+                + systemDictDataBiz.queryByCode(Constants.OSS, Constants.CATEGORY_IMG).getCode();
         for (Category c:list) {
             c.setPrefixUrl(prefixUrl);
             c.setBudgetList(cateBudgetMapper.selectList(new QueryWrapper<CateBudget>().eq("STATUS",Constants.ZERO).eq("CATEGORY_ID",c.getId()).orderByAsc(" SORTNUM ")));
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
index ad4b0c8..a805828 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/GoodsServiceImpl.java
@@ -21,6 +21,7 @@
 import com.doumee.service.business.BaseDataService;
 import com.doumee.service.business.GoodsService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import lombok.extern.java.Log;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
@@ -970,6 +971,7 @@
     @Override
     public void export(HttpServletRequest request, HttpServletResponse response) throws Exception {
         try {
+            LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
             String fileName = "浜у搧瀵煎叆琛�"+System.currentTimeMillis()+".xlsx";
             // 鑾峰彇鏂囦欢杈撳叆娴�
             InputStream inputStream =  this.getClass().getClassLoader().getResourceAsStream("static/file/goodsExcelTemp.xlsx");
@@ -983,7 +985,10 @@
             // sheet.getPhysicalNumberOfRows()鑾峰彇鎬荤殑琛屾暟
             // 寰幆璇诲彇姣忎竴琛�
             Row row = sheet.createRow(1);
-            List<Category> categoryList = categoryMapper.selectList(new QueryWrapper<Category>().eq("ISDELETED",0));
+            List<Category> categoryList = categoryMapper.selectList(
+                    new QueryWrapper<Category>().eq("ISDELETED",0)
+                            .eq("COMPANY_ID",loginUserInfo.getCompanyId())
+            );
             categoryList.forEach(i->{
                 i.setParamList(cateParamMapper.selectList(new QueryWrapper<CateParam>().eq("ISDELETED",0).eq("CATEGORY_ID",i.getId())));
             });
@@ -1048,8 +1053,8 @@
                 .apply(!Objects.isNull(pageWrap.getModel()) && !Objects.isNull(pageWrap.getModel().getEPrice()), "  t.PRICE <=  "+pageWrap.getModel().getEPrice()+" ");
         queryWrapper.orderByDesc(Goods::getId);
         IPage<Goods> goodsIPage =  goodsJoinMapper.selectJoinPage(page, Goods.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();
         goodsIPage.getRecords().forEach(i->{
             i.setPrefixUrl(prefixUrl);
             i.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",i.getId()).orderByAsc(" SORTNUM ")));
@@ -1061,6 +1066,10 @@
 
     @Override
     public List<Goods> findListForH5(GoodsRequest goodsRequest) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(!loginUserInfo.getType().equals(Constants.UserType.ZHUBO.getKey())){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰富鎾敤鎴锋棤娉曚娇鐢�");
+        }
         MPJLambdaWrapper<Goods> queryWrapper = new MPJLambdaWrapper<>();
         queryWrapper.selectAll(Goods.class);
         queryWrapper.selectAs(Category::getName, Goods::getCategoryName);
@@ -1072,6 +1081,7 @@
         queryWrapper.leftJoin(Brand.class, Brand::getId, Goods::getBrandId);
         queryWrapper.eq(Goods::getStatus,Constants.ZERO);
         queryWrapper.eq(Goods::getIsdeleted,Constants.ZERO);
+        queryWrapper.eq(Goods::getCompanyId,loginUserInfo.getCompanyId());
         queryWrapper.eq(!Objects.isNull(goodsRequest) && !Objects.isNull(goodsRequest.getCategoryId()), Goods::getCategoryId, goodsRequest.getCategoryId())
                 .eq(!Objects.isNull(goodsRequest) && !Objects.isNull(goodsRequest.getBrandId()), Goods::getBrandId, goodsRequest.getBrandId())
                 .and(!Objects.isNull(goodsRequest) && StringUtils.isNotBlank(goodsRequest.getKeyword()),
@@ -1085,8 +1095,8 @@
                 .apply(!Objects.isNull(goodsRequest) && !Objects.isNull(goodsRequest.getEPrice()), "  t.PRICE <=  "+goodsRequest.getEPrice()+" ");
         queryWrapper.orderByDesc(Goods::getId);
         List<Goods> goodsList = goodsJoinMapper.selectJoinList(Goods.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();
         goodsList.forEach(i->{
             i.setPrefixUrl(prefixUrl);
             i.setMultifileList(multifileMapper.selectList(new QueryWrapper<Multifile>().eq("OBJ_ID",i.getId()).orderByAsc(" SORTNUM ")));
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java
index 2d9043e..4e811eb 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java
@@ -48,6 +48,15 @@
         if(!Objects.isNull(webParam)){
             webParam.setResourcePath(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode() +
                     systemDictDataBiz.queryByCode(Constants.OSS,Constants.WEB_PARAM).getCode());
+        }else{
+            webParam = new WebParam();
+            webParam.setResourcePath(systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode() +
+                    systemDictDataBiz.queryByCode(Constants.OSS,Constants.WEB_PARAM).getCode());
+            webParam.setBgImg(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.BG_IMG).getCode());
+            webParam.setTopImg(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.TOP_IMG).getCode());
+            webParam.setPkImg(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.PK_IMG).getCode());
+            webParam.setMainColor(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.MAIN_COLOR).getCode());
+            webParam.setRangeSize(systemDictDataBiz.queryByCode(Constants.WEB_PARAM,Constants.RANGE_SIZE).getCode());
         }
         return webParam;
     }
diff --git a/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java b/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
index 452b0a0..2f4ce06 100644
--- a/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/system/impl/SystemLoginServiceImpl.java
@@ -3,6 +3,7 @@
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.system.dto.LoginDTO;
 import com.doumee.dao.system.model.SystemLoginLog;
@@ -49,16 +50,18 @@
         loginLog.setOsInfo(Utils.User_Client.getOS(request));
         loginLog.setServerIp(Utils.Server.getIP());
         // 鏍¢獙楠岃瘉鐮�
-        try {
-            if(captchaCheck){
-                captchaService.check(dto.getUuid(), dto.getCode());
+        if(type!= Constants.TWO){
+            try {
+                if(captchaCheck){
+                    captchaService.check(dto.getUuid(), dto.getCode());
+                }
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+                loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage());
+                loginLog.setSuccess(Boolean.FALSE);
+                systemLoginLogService.create(loginLog);
+                throw e;
             }
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            loginLog.setReason(e.getMessage().length() > 200 ? (e.getMessage().substring(0, 190) + "...") : e.getMessage());
-            loginLog.setSuccess(Boolean.FALSE);
-            systemLoginLogService.create(loginLog);
-            throw e;
         }
         // 鏍¢獙鐢ㄦ埛鍚嶅拰瀵嗙爜
         Subject subject = SecurityUtils.getSubject();

--
Gitblit v1.9.3