From 0b24c883b412fd1f096c5fe3fb607a3d9b13c97e Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 11 九月 2023 09:46:22 +0800
Subject: [PATCH] Merge branch 'dev' of http://139.186.142.91:10010/r/productDev/preselect into dev

---
 server/platform/src/main/java/com/doumee/shiro/ShiroCredentialsMatcher.java                  |   15 
 server/service/src/main/java/com/doumee/service/business/CompanyService.java                 |  100 ++++++
 server/service/src/main/java/com/doumee/service/business/impl/BaseCategoryServiceImpl.java   |  154 +++++++++
 server/platform/src/main/java/com/doumee/api/business/CompanyController.java                 |   74 ++++
 server/service/src/main/java/com/doumee/service/business/BaseCategoryService.java            |   15 
 server/service/src/main/java/com/doumee/service/business/impl/BaseGoodsServiceImpl.java      |   76 +---
 server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java        |  130 ++++++++
 server/service/src/main/java/com/doumee/dao/business/model/dto/BaseCategoryRequest.java      |   52 +++
 server/service/src/main/java/com/doumee/dao/business/model/Company.java                      |   76 +++++
 server/platform/src/main/java/com/doumee/shiro/ShiroToken.java                               |    2 
 server/service/src/main/java/com/doumee/dao/business/CompanyMapper.java                      |   13 
 server/service/src/main/java/com/doumee/dao/business/model/dto/BaseCategoryRequestParam.java |   29 +
 server/company/src/main/java/com/doumee/api/BaseController.java                              |   36 ++
 server/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java            |    5 
 server/service/src/main/java/com/doumee/dao/business/model/Brand.java                        |    2 
 server/platform/src/main/java/com/doumee/api/BaseController.java                             |   37 ++
 server/service/src/main/java/com/doumee/service/business/impl/BrandServiceImpl.java          |    8 
 server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java                 |    5 
 server/service/src/main/java/com/doumee/dao/business/join/BaseGoodsJoinMapper.java           |   13 
 19 files changed, 757 insertions(+), 85 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/BaseController.java b/server/company/src/main/java/com/doumee/api/BaseController.java
index 70925aa..c45000d 100644
--- a/server/company/src/main/java/com/doumee/api/BaseController.java
+++ b/server/company/src/main/java/com/doumee/api/BaseController.java
@@ -4,6 +4,12 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shiro.SecurityUtils;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Controller鍩虹被
  * @author Eva.Caesar Liu
@@ -21,4 +27,34 @@
         return (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
     }
 
+    /**
+     * 鑾峰彇ID闆嗗悎
+     *
+     * @param ids 浣跨敤","闅斿紑鐨勫涓狪D
+     * @return List<Integer>
+     */
+    protected List<Integer> getIdList (String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        return idList;
+    }
+
+    /**
+     * 鑾峰彇鏂囦欢瀛楄妭娴�
+     *
+     * @param is 杈撳叆娴�
+     * @return ByteArrayOutputStream
+     */
+    protected ByteArrayOutputStream getOutputStream (InputStream is) throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        byte[] bs = new byte[is.available()];
+        int len;
+        while ((len = is.read(bs)) != -1) {
+            baos.write(bs, 0, len);
+        }
+        return baos;
+    }
 }
diff --git a/server/platform/src/main/java/com/doumee/api/BaseController.java b/server/platform/src/main/java/com/doumee/api/BaseController.java
index 0231966..a830d8a 100644
--- a/server/platform/src/main/java/com/doumee/api/BaseController.java
+++ b/server/platform/src/main/java/com/doumee/api/BaseController.java
@@ -5,6 +5,12 @@
 import org.apache.shiro.SecurityUtils;
 import  com.doumee.core.model.ApiResponse;
 
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * Controller鍩虹被
  * @author Eva.Caesar Liu
@@ -22,4 +28,35 @@
         return (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
     }
 
+
+    /**
+     * 鑾峰彇ID闆嗗悎
+     *
+     * @param ids 浣跨敤","闅斿紑鐨勫涓狪D
+     * @return List<Integer>
+     */
+    protected List<Integer> getIdList (String ids) {
+        String [] idArray = ids.split(",");
+        List<Integer> idList = new ArrayList<>();
+        for (String id : idArray) {
+            idList.add(Integer.valueOf(id));
+        }
+        return idList;
+    }
+
+    /**
+     * 鑾峰彇鏂囦欢瀛楄妭娴�
+     *
+     * @param is 杈撳叆娴�
+     * @return ByteArrayOutputStream
+     */
+    protected ByteArrayOutputStream getOutputStream (InputStream is) throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        byte[] bs = new byte[is.available()];
+        int len;
+        while ((len = is.read(bs)) != -1) {
+            baos.write(bs, 0, len);
+        }
+        return baos;
+    }
 }
diff --git a/server/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java b/server/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java
index 1b2d62b..6d8eb6a 100644
--- a/server/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/BaseCategoryController.java
@@ -7,10 +7,11 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
 import com.doumee.dao.business.model.BaseCategory;
+import com.doumee.dao.business.model.dto.BaseCategoryRequest;
 import com.doumee.service.business.BaseCategoryService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;    
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
@@ -34,7 +35,7 @@
     @ApiOperation("鏂板缓")
     @PostMapping("/create")
     @RequiresPermissions("business:basecategory:create")
-    public ApiResponse create(@RequestBody BaseCategory baseCategory) {
+    public ApiResponse create(@RequestBody BaseCategoryRequest baseCategory) {
         return ApiResponse.success(baseCategoryService.create(baseCategory));
     }
 
diff --git a/server/platform/src/main/java/com/doumee/api/business/CompanyController.java b/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
new file mode 100644
index 0000000..0f73c23
--- /dev/null
+++ b/server/platform/src/main/java/com/doumee/api/business/CompanyController.java
@@ -0,0 +1,74 @@
+package com.doumee.api.business;
+
+
+import com.doumee.api.BaseController;
+import com.doumee.core.annotation.pr.PreventRepeat;
+import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Company;
+import com.doumee.service.business.CompanyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author AA
+ * @since 2023/09/08 10:27
+ */
+@Api(tags = "绯荤粺-浼佷笟淇℃伅琛�")
+@RestController
+@RequestMapping("/company")
+public class CompanyController extends BaseController {
+
+    @Autowired
+    private CompanyService companyService;
+
+    @PreventRepeat
+    @ApiOperation("鏂板缓")
+    @PostMapping("/create")
+    @RequiresPermissions("company:company:create")
+    public ApiResponse create(@RequestBody Company company) {
+        return ApiResponse.success(companyService.create(company));
+    }
+
+    @ApiOperation("鏍规嵁ID鍒犻櫎")
+    @GetMapping("/delete/{id}")
+    @RequiresPermissions("company:company:delete")
+    public ApiResponse deleteById(@PathVariable Integer id) {
+        companyService.deleteById(id);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鎵归噺鍒犻櫎")
+    @GetMapping("/delete/batch")
+    @RequiresPermissions("company:company:delete")
+    public ApiResponse deleteByIdInBatch(@RequestParam String ids) {
+        companyService.deleteByIdInBatch(this.getIdList(ids));
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鏍规嵁ID淇敼")
+    @PostMapping("/updateById")
+    @RequiresPermissions("company:company:update")
+    public ApiResponse updateById(@RequestBody Company company) {
+        companyService.updateById(company);
+        return ApiResponse.success(null);
+    }
+
+    @ApiOperation("鍒嗛〉鏌ヨ")
+    @PostMapping("/page")
+    @RequiresPermissions("company:company:query")
+    public ApiResponse<PageData<Company>> findPage (@RequestBody PageWrap<Company> pageWrap) {
+        return ApiResponse.success(companyService.findPage(pageWrap));
+    }
+
+    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @GetMapping("/{id}")
+    @RequiresPermissions("company:company:query")
+    public ApiResponse findById(@PathVariable Integer id) {
+        return ApiResponse.success(companyService.findById(id));
+    }
+}
diff --git a/server/platform/src/main/java/com/doumee/shiro/ShiroCredentialsMatcher.java b/server/platform/src/main/java/com/doumee/shiro/ShiroCredentialsMatcher.java
index 4906c0c..abe6a10 100644
--- a/server/platform/src/main/java/com/doumee/shiro/ShiroCredentialsMatcher.java
+++ b/server/platform/src/main/java/com/doumee/shiro/ShiroCredentialsMatcher.java
@@ -5,6 +5,7 @@
 import com.doumee.service.system.SystemUserService;
 import org.apache.shiro.authc.AuthenticationInfo;
 import org.apache.shiro.authc.AuthenticationToken;
+import org.apache.shiro.authc.UsernamePasswordToken;
 import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -23,7 +24,7 @@
 
     @Override
     public boolean doCredentialsMatch(AuthenticationToken token, AuthenticationInfo info) {
-        ShiroToken usernamePasswordToken = (ShiroToken) token;
+        UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) token;
         SystemUser queryUserDto = new SystemUser();
         queryUserDto.setUsername(usernamePasswordToken.getUsername());
         queryUserDto.setDeleted(Boolean.FALSE);
@@ -31,12 +32,12 @@
         if (systemUser == null) {
             return Boolean.FALSE;
         }
-        if(usernamePasswordToken.getDdLogin()){
-            return Boolean.TRUE;
-        }
-        if(usernamePasswordToken.getWxLogin()){
-            return Boolean.TRUE;
-        }
+//        if(usernamePasswordToken.getDdLogin()){
+//            return Boolean.TRUE;
+//        }
+//        if(usernamePasswordToken.getWxLogin()){
+//            return Boolean.TRUE;
+//        }
         // 鍔犲瘑瀵嗙爜
         String pwd = Utils.Secure.encryptPassword(new String(usernamePasswordToken.getPassword()), systemUser.getSalt());
         // 姣旇緝瀵嗙爜
diff --git a/server/platform/src/main/java/com/doumee/shiro/ShiroToken.java b/server/platform/src/main/java/com/doumee/shiro/ShiroToken.java
index 2964cde..f316d1d 100644
--- a/server/platform/src/main/java/com/doumee/shiro/ShiroToken.java
+++ b/server/platform/src/main/java/com/doumee/shiro/ShiroToken.java
@@ -8,7 +8,7 @@
  * @author Eva.Caesar Liu
  * @date 2022/04/18 18:12
  */
-@Component
+//@Component
 public class ShiroToken extends UsernamePasswordToken {
 
     /**
diff --git a/server/service/src/main/java/com/doumee/dao/business/CompanyMapper.java b/server/service/src/main/java/com/doumee/dao/business/CompanyMapper.java
new file mode 100644
index 0000000..8b11897
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/CompanyMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.Company;
+
+/**
+ * @author AA
+ * @since 2023/09/08 10:27
+ */
+public interface CompanyMapper extends BaseMapper<Company> {
+
+}
+
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/BaseGoodsJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/BaseGoodsJoinMapper.java
new file mode 100644
index 0000000..9094a01
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/BaseGoodsJoinMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business.join;
+
+import com.doumee.dao.business.model.BaseGoods;
+import com.doumee.dao.business.model.Goods;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author T14
+ */
+@Repository
+public interface BaseGoodsJoinMapper extends MPJJoinMapper<BaseGoods> {
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java b/server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java
index 3b1a6f0..86a4e9d 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/BaseCategory.java
@@ -1,5 +1,6 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -88,4 +89,8 @@
     @ExcelColumn(name="鍔犱环绯绘暟")
     private BigDecimal priceRate;
 
+    @ApiModelProperty(value = "鍥炬爣")
+    @ExcelColumn(name="鍥炬爣")
+    @TableField(exist = false)
+    private String imgfullurl;
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Brand.java b/server/service/src/main/java/com/doumee/dao/business/model/Brand.java
index d0c7b77..38d8d31 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Brand.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Brand.java
@@ -75,6 +75,6 @@
 
     @ApiModelProperty(value = "鍓嶇紑璺緞")
     @TableField(exist = false)
-    private String prefixUrl;
+    private String imgfullurl;
 
 }
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Company.java b/server/service/src/main/java/com/doumee/dao/business/model/Company.java
new file mode 100644
index 0000000..3eee652
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Company.java
@@ -0,0 +1,76 @@
+package com.doumee.dao.business.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 绯荤粺-浼佷笟淇℃伅琛�
+ * @author AA
+ * @since 2023/09/08 10:27
+ */
+@Data
+@ApiModel("绯荤粺-浼佷笟淇℃伅琛�")
+@TableName("`company`")
+public class Company {
+
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty(value = "涓婚敭", example = "1")
+    private Integer id;
+
+    @ApiModelProperty(value = "鏄惁宸插垹闄� 0鏈垹闄� 1宸插垹闄�", example = "1")
+    private Byte deleted;
+
+    @ApiModelProperty(value = "鍒涘缓浜虹紪鐮�", example = "1")
+    private Integer createUser;
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    private Date createTime;
+
+    @ApiModelProperty(value = "鏇存柊浜虹紪鐮�", example = "1")
+    private Integer updateUser;
+
+    @ApiModelProperty(value = "鏇存柊鏃堕棿")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "浼佷笟绠�绉�")
+    private String shortName;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "绠$悊鍛樿处鍙凤紙鍏宠仈system_user琛�)", example = "1")
+    private Integer managerId;
+
+    @ApiModelProperty(value = "鑱旂郴浜�")
+    private String linkname;
+
+    @ApiModelProperty(value = "鑱旂郴浜虹數璇�")
+    private String linkephone;
+
+    @ApiModelProperty(value = "缁熶竴绀句細淇$敤浠g爜锛屼笉鍙噸澶�")
+    private String creditCode;
+
+    @ApiModelProperty(value = "涓绘挱鏁伴噺闄愬埗", example = "1")
+    private Integer userNum;
+
+    @ApiModelProperty(value = "绯荤粺浣跨敤鏈夋晥鏈�")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date oepnValidDate;
+
+    @ApiModelProperty(value = "璐︽埛寮�閫氱被鍨� 0璇曠敤璐︽埛 1姝e紡璐︽埛", example = "1")
+    private Integer oepnType;
+
+    @ApiModelProperty(value = "閿�鍞汉鍛樼紪鐮侊紙鍏宠仈system_user琛�)", example = "1")
+    private Integer salesmanId;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseCategoryRequest.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseCategoryRequest.java
new file mode 100644
index 0000000..d326bcc
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseCategoryRequest.java
@@ -0,0 +1,52 @@
+package com.doumee.dao.business.model.dto;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2023/6/7 15:09
+ */
+@Data
+public class BaseCategoryRequest {
+
+    @ApiModelProperty(value = "涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍚嶇О锛堜笉鍙噸澶嶏級")
+    private String name;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "灞炴��1鍚嶇О")
+    private String attrFirst;
+
+    @ApiModelProperty(value = "灞炴��2鍚嶇О")
+    private String attrSecond;
+
+    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+    private Integer sortnum;
+
+    @ApiModelProperty(value = "鍥炬爣")
+    private String imgurl;
+
+    @ApiModelProperty(value = "鍚嶇О鎷奸煶")
+    private String pinyin;
+
+    @ApiModelProperty(value = "鍚嶇О鎷奸煶棣栧瓧姣�")
+    private String shortPinyin;
+
+    @ApiModelProperty(value = "鍙傛暟灞炴�ч厤缃�")
+    List<BaseCategoryRequestParam> baseCategoryRequestParamList;
+
+}
+
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseCategoryRequestParam.java b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseCategoryRequestParam.java
new file mode 100644
index 0000000..1e8fd74
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/model/dto/BaseCategoryRequestParam.java
@@ -0,0 +1,29 @@
+package com.doumee.dao.business.model.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+/**
+ * @author T14
+ */
+@Data
+public class BaseCategoryRequestParam{
+
+    @ApiModelProperty(value = "涓婚敭")
+    private Integer id;
+
+    @ApiModelProperty(value = "鍚嶇О")
+    private String name;
+
+    @ApiModelProperty(value = "澶囨敞")
+    private String remark;
+
+    @ApiModelProperty(value = "鐘舵�� 0鍚敤 1绂佺敤", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "鎺掑簭鐮�", example = "1")
+    private Integer sortnum;
+
+    @ApiModelProperty(value = "鎵�灞炲搧绫荤紪鐮�(鍏宠仈category琛�)", example = "1")
+    private Integer categoryId;
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/BaseCategoryService.java b/server/service/src/main/java/com/doumee/service/business/BaseCategoryService.java
index deb600e..8e47028 100644
--- a/server/service/src/main/java/com/doumee/service/business/BaseCategoryService.java
+++ b/server/service/src/main/java/com/doumee/service/business/BaseCategoryService.java
@@ -3,6 +3,8 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.BaseCategory;
+import com.doumee.dao.business.model.dto.BaseCategoryRequest;
+
 import java.util.List;
 
 /**
@@ -14,11 +16,11 @@
 
     /**
      * 鍒涘缓
-     * 
+     *
      * @param baseCategory 瀹炰綋瀵硅薄
      * @return Integer
      */
-    Integer create(BaseCategory baseCategory);
+    Integer create(BaseCategoryRequest baseCategory);
 
     /**
      * 涓婚敭鍒犻櫎
@@ -40,6 +42,13 @@
      * @param ids 涓婚敭闆�
      */
     void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param baseCategory 瀹炰綋瀵硅薄
+     */
+    void updateById(BaseCategoryRequest baseCategory);
 
     /**
      * 涓婚敭鏇存柊
@@ -78,7 +87,7 @@
      * @return List<BaseCategory>
      */
     List<BaseCategory> findList(BaseCategory baseCategory);
-  
+
     /**
      * 鍒嗛〉鏌ヨ
      *
diff --git a/server/service/src/main/java/com/doumee/service/business/CompanyService.java b/server/service/src/main/java/com/doumee/service/business/CompanyService.java
new file mode 100644
index 0000000..a76c79e
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/CompanyService.java
@@ -0,0 +1,100 @@
+package com.doumee.service.business;
+
+
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.dao.business.model.Company;
+
+import java.util.List;
+
+/**
+ * 绯荤粺-浼佷笟淇℃伅琛⊿ervice瀹氫箟
+ * @author AA
+ * @since 2023/09/08 10:27
+ */
+public interface CompanyService {
+
+    /**
+     * 鍒涘缓
+     *
+     * @param company 瀹炰綋瀵硅薄
+     * @return Integer
+     */
+    Integer create(Company company);
+
+    /**
+     * 涓婚敭鍒犻櫎
+     *
+     * @param id 涓婚敭
+     */
+    void deleteById(Integer id);
+
+    /**
+     * 鍒犻櫎
+     *
+     * @param company 瀹炰綋瀵硅薄
+     */
+    void delete(Company company);
+
+    /**
+     * 鎵归噺涓婚敭鍒犻櫎
+     *
+     * @param ids 涓婚敭闆�
+     */
+    void deleteByIdInBatch(List<Integer> ids);
+
+    /**
+     * 涓婚敭鏇存柊
+     *
+     * @param company 瀹炰綋瀵硅薄
+     */
+    void updateById(Company company);
+
+    /**
+     * 鎵归噺涓婚敭鏇存柊
+     *
+     * @param companys 瀹炰綋闆�
+     */
+    void updateByIdInBatch(List<Company> companys);
+
+    /**
+     * 涓婚敭鏌ヨ
+     *
+     * @param id 涓婚敭
+     * @return Company
+     */
+    Company findById(Integer id);
+
+    /**
+     * 鏉′欢鏌ヨ鍗曟潯璁板綍
+     *
+     * @param company 瀹炰綋瀵硅薄
+     * @return Company
+     */
+    Company findOne(Company company);
+
+    /**
+     * 鏉′欢鏌ヨ
+     *
+     * @param company 瀹炰綋瀵硅薄
+     * @return List<Company>
+     */
+    List<Company> findList(Company company);
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     *
+     * @param pageWrap 鍒嗛〉瀵硅薄
+     * @return PageData<Company>
+     */
+    PageData<Company> findPage(PageWrap<Company> pageWrap);
+
+    /**
+     * 鏉′欢缁熻
+     *
+     * @param company 瀹炰綋瀵硅薄
+     * @return long
+     */
+    long count(Company company);
+}
+
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 efab03d..7b3b4f1 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
@@ -1,20 +1,34 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.BaseCateParamMapper;
 import com.doumee.dao.business.BaseCategoryMapper;
+import com.doumee.dao.business.model.BaseCateParam;
 import com.doumee.dao.business.model.BaseCategory;
+import com.doumee.dao.business.model.dto.BaseCategoryRequest;
+import com.doumee.service.business.BaseCateParamService;
 import com.doumee.service.business.BaseCategoryService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 /**
  * 绱犳潗搴�-鍝佺被淇℃伅琛⊿ervice瀹炵幇
@@ -27,10 +41,64 @@
     @Autowired
     private BaseCategoryMapper baseCategoryMapper;
 
+    @Autowired
+    private BaseCateParamMapper baseCateParamMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     @Override
-    public Integer create(BaseCategory baseCategory) {
-        baseCategoryMapper.insert(baseCategory);
-        return baseCategory.getId();
+    public Integer create(BaseCategoryRequest baseCategory) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
+        QueryWrapper<BaseCategory> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(BaseCategory::getName,baseCategory.getName())
+                        .eq(BaseCategory::getIsdeleted,Constants.ZERO);
+
+        BaseCategory baseCategory1 = baseCategoryMapper.selectOne(wrapper);
+        if (Objects.nonNull(baseCategory1)){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍝佺被淇℃伅琛�");
+        }
+        BaseCategory baseCategory2 = new BaseCategory();
+        baseCategory2.setCreator(loginUserInfo.getId());
+        baseCategory2.setCreateDate(new Date());
+        baseCategory2.setEditor(loginUserInfo.getId());
+        baseCategory2.setEditDate(new Date());
+        baseCategory2.setIsdeleted(Constants.ZERO);
+        baseCategory2.setName(baseCategory.getName());
+        baseCategory2.setRemark(baseCategory.getRemark());
+        baseCategory2.setAttrFirst(baseCategory.getAttrFirst());
+        baseCategory2.setAttrSecond(baseCategory.getAttrSecond());
+        baseCategory2.setStatus(baseCategory.getStatus());
+        baseCategory2.setSortnum(baseCategory.getSortnum());
+        baseCategory2.setImgurl(baseCategory.getImgurl());
+        baseCategory2.setPinyin(baseCategory.getPinyin());
+        baseCategory2.setShortPinyin(baseCategory.getShortPinyin());
+        baseCategoryMapper.insert(baseCategory2);
+
+        if (CollectionUtils.isEmpty(baseCategory.getBaseCategoryRequestParamList())){
+
+            long count = baseCategory.getBaseCategoryRequestParamList().stream().map(s -> s.getName().trim()).distinct().count();
+
+            if (baseCategory.getBaseCategoryRequestParamList().size() != count){
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"灞炴�у瓨鍦ㄩ噸澶�");
+            }
+            baseCategory.getBaseCategoryRequestParamList().forEach(s->{
+                BaseCateParam baseCateParam = new BaseCateParam();
+                baseCateParam.setCreator(loginUserInfo.getId());
+                baseCateParam.setCreateDate(new Date());
+                baseCateParam.setEditor(loginUserInfo.getId());
+                baseCateParam.setEditDate(new Date());
+                baseCateParam.setIsdeleted(Constants.ZERO);
+                baseCateParam.setName(s.getName());
+                baseCateParam.setRemark(s.getRemark());
+                baseCateParam.setStatus(s.getStatus());
+                baseCateParam.setSortnum(s.getSortnum());
+                baseCateParam.setCategoryId(baseCategory2.getId());
+                baseCateParamMapper.insert(baseCateParam);
+            });
+        }
+        return baseCategory2.getId();
     }
 
     @Override
@@ -50,6 +118,64 @@
             return;
         }
         baseCategoryMapper.deleteBatchIds(ids);
+    }
+
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    @Override
+    public void updateById(BaseCategoryRequest baseCategory) {
+
+        LoginUserInfo loginUserInfo = (LoginUserInfo)SecurityUtils.getSubject().getPrincipal();
+
+        if (Objects.nonNull(baseCategory.getId())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍝佺被涓婚敭缂哄け");
+        }
+
+        QueryWrapper<BaseCategory> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(BaseCategory::getName,baseCategory.getName())
+                .eq(BaseCategory::getIsdeleted,Constants.ZERO);
+
+        BaseCategory baseCategory1 = baseCategoryMapper.selectOne(wrapper);
+        if (Objects.nonNull(baseCategory1) && (!baseCategory1.getId().equals(baseCategory.getId()))){
+            throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍝佺被淇℃伅琛�");
+        }
+
+        UpdateWrapper<BaseCategory> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda()
+                .eq(BaseCategory::getId,baseCategory.getId())
+                .set(BaseCategory::getName,baseCategory.getName())
+                .set(BaseCategory::getImgurl,baseCategory.getImgurl())
+                .set(BaseCategory::getSortnum,baseCategory.getSortnum());
+        baseCategoryMapper.update(null,wrapper);
+
+        if (CollectionUtils.isEmpty(baseCategory.getBaseCategoryRequestParamList())){
+
+            long count = baseCategory.getBaseCategoryRequestParamList().stream().map(s -> s.getName().trim()).distinct().count();
+            if (baseCategory.getBaseCategoryRequestParamList().size() != count){
+                throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"灞炴�у瓨鍦ㄩ噸澶�");
+            }
+
+            QueryWrapper<BaseCateParam> baseCateParamQuery = new QueryWrapper<>();
+            baseCateParamQuery.lambda()
+                                .eq(BaseCateParam::getCategoryId,baseCategory.getId());
+            baseCateParamMapper.delete(baseCateParamQuery);
+
+            baseCategory.getBaseCategoryRequestParamList().forEach(s->{
+                BaseCateParam baseCateParam = new BaseCateParam();
+                baseCateParam.setCreator(loginUserInfo.getId());
+                baseCateParam.setCreateDate(new Date());
+                baseCateParam.setEditor(loginUserInfo.getId());
+                baseCateParam.setEditDate(new Date());
+                baseCateParam.setIsdeleted(Constants.ZERO);
+                baseCateParam.setName(s.getName());
+                baseCateParam.setRemark(s.getRemark());
+                baseCateParam.setStatus(s.getStatus());
+                baseCateParam.setSortnum(s.getSortnum());
+                baseCateParam.setCategoryId(baseCategory.getId());
+                baseCateParamMapper.insert(baseCateParam);
+            });
+
+        }
+
     }
 
     @Override
@@ -83,7 +209,7 @@
         QueryWrapper<BaseCategory> wrapper = new QueryWrapper<>(baseCategory);
         return baseCategoryMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<BaseCategory> findPage(PageWrap<BaseCategory> pageWrap) {
         IPage<BaseCategory> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -136,14 +262,14 @@
         if (pageWrap.getModel().getShortPinyin() != null) {
             queryWrapper.lambda().eq(BaseCategory::getShortPinyin, pageWrap.getModel().getShortPinyin());
         }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
+        queryWrapper.lambda().orderByAsc(BaseCategory::getSortnum);
+
+        IPage<BaseCategory> baseCategoryIPage = baseCategoryMapper.selectPage(page, queryWrapper);
+        if (!CollectionUtils.isEmpty(baseCategoryIPage.getRecords())){
+            baseCategoryIPage.getRecords().forEach(s->s.setImgfullurl(getPreUrl()+s.getImgfullurl()));
         }
-        return PageData.from(baseCategoryMapper.selectPage(page, queryWrapper));
+
+        return PageData.from(baseCategoryIPage);
     }
 
     @Override
@@ -151,4 +277,10 @@
         QueryWrapper<BaseCategory> wrapper = new QueryWrapper<>(baseCategory);
         return baseCategoryMapper.selectCount(wrapper);
     }
+
+    private String getPreUrl(){
+        String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
+                + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.CATEGORY_IMG).getCode();
+        return prefixUrl;
+    }
 }
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 37150f6..1ec2edb 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
@@ -4,12 +4,15 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.BaseGoodsMapper;
+import com.doumee.dao.business.join.BaseGoodsJoinMapper;
 import com.doumee.dao.business.model.BaseGoods;
+import com.doumee.dao.business.model.Goods;
 import com.doumee.service.business.BaseGoodsService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -26,6 +29,10 @@
 
     @Autowired
     private BaseGoodsMapper baseGoodsMapper;
+
+
+    @Autowired
+    private BaseGoodsJoinMapper baseGoodsJoinMapper;
 
     @Override
     public Integer create(BaseGoods baseGoods) {
@@ -83,76 +90,33 @@
         QueryWrapper<BaseGoods> wrapper = new QueryWrapper<>(baseGoods);
         return baseGoodsMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<BaseGoods> findPage(PageWrap<BaseGoods> pageWrap) {
         IPage<BaseGoods> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<BaseGoods> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<BaseGoods> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
+
         if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(BaseGoods::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(BaseGoods::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getEditor, pageWrap.getModel().getEditor());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(BaseGoods::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(BaseGoods::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
-        if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getRemark, pageWrap.getModel().getRemark());
+            queryWrapper.eq(BaseGoods::getId, pageWrap.getModel().getId());
         }
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getName, pageWrap.getModel().getName());
+            queryWrapper.eq(BaseGoods::getName, pageWrap.getModel().getName());
         }
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.eq(BaseGoods::getStatus, pageWrap.getModel().getStatus());
         }
-        if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getSortnum, pageWrap.getModel().getSortnum());
-        }
-        if (pageWrap.getModel().getImgurl() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getImgurl, pageWrap.getModel().getImgurl());
-        }
+
+
         if (pageWrap.getModel().getCategoryId() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getCategoryId, pageWrap.getModel().getCategoryId());
+            queryWrapper.eq(BaseGoods::getCategoryId, pageWrap.getModel().getCategoryId());
         }
         if (pageWrap.getModel().getBrandId() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getBrandId, pageWrap.getModel().getBrandId());
+            queryWrapper.eq(BaseGoods::getBrandId, pageWrap.getModel().getBrandId());
         }
-        if (pageWrap.getModel().getZdPrice() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getZdPrice, pageWrap.getModel().getZdPrice());
-        }
-        if (pageWrap.getModel().getPrice() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getPrice, pageWrap.getModel().getPrice());
-        }
-        if (pageWrap.getModel().getContent() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getContent, pageWrap.getModel().getContent());
-        }
-        if (pageWrap.getModel().getPinyin() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getPinyin, pageWrap.getModel().getPinyin());
-        }
-        if (pageWrap.getModel().getShortPinyin() != null) {
-            queryWrapper.lambda().eq(BaseGoods::getShortPinyin, pageWrap.getModel().getShortPinyin());
-        }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
-            }
-        }
-        return PageData.from(baseGoodsMapper.selectPage(page, queryWrapper));
+
+        queryWrapper.orderByDesc(Goods::getId);
+        return PageData.from(baseGoodsJoinMapper.selectJoinPage(page,BaseGoods.class,queryWrapper));
     }
 
     @Override
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 bfd5feb..c20037a 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
@@ -104,7 +104,7 @@
         String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
                 + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
         Brand brand = brandMapper.selectById(id);
-        brand.setPrefixUrl(prefixUrl);
+        brand.setImgfullurl(prefixUrl+brand.getImgurl());
         return brand;
     }
 
@@ -124,11 +124,11 @@
         String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
                 + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
         for (Brand b:list) {
-            b.setPrefixUrl(prefixUrl);
+            b.setImgfullurl(prefixUrl+b.getImgurl());
         }
         return list;
     }
-  
+
     @Override
     public PageData<Brand> findPage(PageWrap<Brand> pageWrap) {
         IPage<Brand> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
@@ -146,7 +146,7 @@
         String prefixUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.FILE_DIR).getCode()
                 + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.PROJECTS).getCode();
         brandIPage.getRecords().forEach(i->{
-            i.setPrefixUrl(prefixUrl);
+            i.setImgfullurl(prefixUrl+i.getImgurl());
         });
         return PageData.from(brandIPage);
     }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
new file mode 100644
index 0000000..257e018
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -0,0 +1,130 @@
+package com.doumee.service.business.impl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.CompanyMapper;
+import com.doumee.dao.business.model.Company;
+import com.doumee.service.business.CompanyService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.List;
+
+/**
+ * 绯荤粺-浼佷笟淇℃伅琛⊿ervice瀹炵幇
+ * @author AA
+ * @since 2023/09/08 10:27
+ */
+@Service
+public class CompanyServiceImpl implements CompanyService {
+
+    @Autowired
+    private CompanyMapper companyMapper;
+
+    @Override
+    public Integer create(Company company) {
+        companyMapper.insert(company);
+        return company.getId();
+    }
+
+    @Override
+    public void deleteById(Integer id) {
+        companyMapper.deleteById(id);
+    }
+
+    @Override
+    public void delete(Company company) {
+        UpdateWrapper<Company> deleteWrapper = new UpdateWrapper<>(company);
+        companyMapper.delete(deleteWrapper);
+    }
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
+        if (CollectionUtils.isEmpty(ids)) {
+            return;
+        }
+        companyMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void updateById(Company company) {
+        companyMapper.updateById(company);
+    }
+
+    @Override
+    public void updateByIdInBatch(List<Company> companys) {
+        if (CollectionUtils.isEmpty(companys)) {
+            return;
+        }
+        for (Company company: companys) {
+            this.updateById(company);
+        }
+    }
+
+    @Override
+    public Company findById(Integer id) {
+        return companyMapper.selectById(id);
+    }
+
+    @Override
+    public Company findOne(Company company) {
+        QueryWrapper<Company> wrapper = new QueryWrapper<>(company);
+        return companyMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public List<Company> findList(Company company) {
+        QueryWrapper<Company> wrapper = new QueryWrapper<>(company);
+        return companyMapper.selectList(wrapper);
+    }
+
+    @Override
+    public PageData<Company> findPage(PageWrap<Company> pageWrap) {
+        IPage<Company> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        QueryWrapper<Company> queryWrapper = new QueryWrapper<>();
+        Utils.MP.blankToNull(pageWrap.getModel());
+        queryWrapper.lambda()
+                .eq(pageWrap.getModel().getId() != null, Company::getId, pageWrap.getModel().getId())
+                .eq(pageWrap.getModel().getDeleted() != null, Company::getDeleted, pageWrap.getModel().getDeleted())
+                .eq(pageWrap.getModel().getCreateUser() != null, Company::getCreateUser, pageWrap.getModel().getCreateUser())
+                .ge(pageWrap.getModel().getCreateTime() != null, Company::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime()))
+                .le(pageWrap.getModel().getCreateTime() != null, Company::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime()))
+                .eq(pageWrap.getModel().getUpdateUser() != null, Company::getUpdateUser, pageWrap.getModel().getUpdateUser())
+                .ge(pageWrap.getModel().getUpdateTime() != null, Company::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime()))
+                .le(pageWrap.getModel().getUpdateTime() != null, Company::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime()))
+                .eq(pageWrap.getModel().getName() != null, Company::getName, pageWrap.getModel().getName())
+                .eq(pageWrap.getModel().getShortName() != null, Company::getShortName, pageWrap.getModel().getShortName())
+                .eq(pageWrap.getModel().getRemark() != null, Company::getRemark, pageWrap.getModel().getRemark())
+                .eq(pageWrap.getModel().getManagerId() != null, Company::getManagerId, pageWrap.getModel().getManagerId())
+                .eq(pageWrap.getModel().getLinkname() != null, Company::getLinkname, pageWrap.getModel().getLinkname())
+                .eq(pageWrap.getModel().getLinkephone() != null, Company::getLinkephone, pageWrap.getModel().getLinkephone())
+                .eq(pageWrap.getModel().getCreditCode() != null, Company::getCreditCode, pageWrap.getModel().getCreditCode())
+                .eq(pageWrap.getModel().getUserNum() != null, Company::getUserNum, pageWrap.getModel().getUserNum())
+                .ge(pageWrap.getModel().getOepnValidDate() != null, Company::getOepnValidDate, Utils.Date.getStart(pageWrap.getModel().getOepnValidDate()))
+                .le(pageWrap.getModel().getOepnValidDate() != null, Company::getOepnValidDate, Utils.Date.getEnd(pageWrap.getModel().getOepnValidDate()))
+                .eq(pageWrap.getModel().getOepnType() != null, Company::getOepnType, pageWrap.getModel().getOepnType())
+                .eq(pageWrap.getModel().getSalesmanId() != null, Company::getSalesmanId, pageWrap.getModel().getSalesmanId())
+        ;
+        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                queryWrapper.orderByDesc(sortData.getProperty());
+            } else {
+                queryWrapper.orderByAsc(sortData.getProperty());
+            }
+        }
+        return PageData.from(companyMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public long count(Company company) {
+        QueryWrapper<Company> wrapper = new QueryWrapper<>(company);
+        return companyMapper.selectCount(wrapper);
+    }
+}

--
Gitblit v1.9.3