From 951feaeef11f38701290ced94f71c9e103a419bf Mon Sep 17 00:00:00 2001
From: ZQN <364596817@qq.com>
Date: 星期一, 17 六月 2024 17:35:31 +0800
Subject: [PATCH] 企业信息管理,验证码登录,惠企政策添加

---
 project-system/src/main/java/com/project/system/service/ISysRegionService.java                |    2 
 project-system/src/main/java/com/project/system/service/impl/SysRegionServiceImpl.java        |    2 
 project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java        |  146 +++++
 project-system/src/main/java/com/project/system/domain/SysDoc.java                            |   61 ++
 project-system/src/main/resources/mapper/system/SysUserMapper.xml                             |   17 
 project-admin/src/main/java/com/project/admin/controller/monitor/SysUserOnlineController.java |    2 
 project-system/src/main/java/com/project/system/domain/bo/queryBo/RegionQueryBo.java          |    2 
 project-admin/src/main/resources/application.yml                                              |    8 
 project-system/src/main/resources/mapper/system/SysCompanyMapper.xml                          |   30 +
 project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java        |   42 +
 project-system/src/main/java/com/project/system/domain/SysCompany.java                        |   89 +++
 project-system/src/main/java/com/project/system/service/impl/SysDocServiceImpl.java           |  105 ++++
 project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java       |  112 ++++
 project-system/src/main/java/com/project/system/domain/bo/queryBo/SysCompanyQueryBo.java      |   68 ++
 project-system/src/main/java/com/project/system/service/ISysDocService.java                   |   53 ++
 project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java     |  106 ++++
 project-system/src/main/java/com/project/system/domain/bo/editBo/SysCompanyBo.java            |   84 +++
 project-system/src/main/java/com/project/system/domain/bo/queryBo/SysDocQueryBo.java          |   47 +
 project-system/src/main/java/com/project/system/mapper/SysUserMapper.java                     |    2 
 project-system/src/main/java/com/project/system/mapper/SysCompanyMapper.java                  |   13 
 project-admin/src/main/java/com/project/admin/controller/system/SysRegionController.java      |    2 
 project-common/src/main/java/com/project/common/core/domain/entity/SysUser.java               |    8 
 project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java       |   47 +
 project-system/src/main/java/com/project/system/domain/bo/editBo/UserPhoneLoginBo.java        |   24 +
 project-system/src/main/java/com/project/system/service/ISysCompanyService.java               |   53 ++
 project-system/src/main/java/com/project/system/domain/vo/SysCompanyVo.java                   |   61 ++
 project-system/src/main/java/com/project/system/domain/vo/SysDocVo.java                       |   40 +
 project-system/src/main/java/com/project/system/domain/bo/queryBo/SysUserOnlineQueryBo.java   |    2 
 project-system/src/main/resources/mapper/system/SysDocMapper.xml                              |   23 
 project-admin/src/main/java/com/project/admin/controller/system/SysDocController.java         |  106 ++++
 project-system/src/main/java/com/project/system/domain/bo/editBo/SysDocBo.java                |   56 ++
 project-system/src/main/java/com/project/system/mapper/SysDocMapper.java                      |   13 
 32 files changed, 1,358 insertions(+), 68 deletions(-)

diff --git a/project-admin/src/main/java/com/project/admin/controller/monitor/SysUserOnlineController.java b/project-admin/src/main/java/com/project/admin/controller/monitor/SysUserOnlineController.java
index d2db0d0..a89a0f3 100644
--- a/project-admin/src/main/java/com/project/admin/controller/monitor/SysUserOnlineController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/monitor/SysUserOnlineController.java
@@ -5,7 +5,7 @@
 import java.util.Collections;
 import java.util.List;
 
-import com.project.system.domain.bo.SysUserOnlineQueryBo;
+import com.project.system.domain.bo.queryBo.SysUserOnlineQueryBo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.DeleteMapping;
diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java
new file mode 100644
index 0000000..5d4180e
--- /dev/null
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysCompanyController.java
@@ -0,0 +1,106 @@
+package com.project.admin.controller.system;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.project.common.annotation.RepeatSubmit;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.project.common.annotation.Log;
+import com.project.common.core.controller.BaseController;
+import com.project.common.core.domain.AjaxResult;
+import com.project.common.enums.BusinessType;
+import com.project.system.domain.vo.SysCompanyVo;
+import com.project.system.domain.bo.editBo.SysCompanyBo;
+import com.project.system.domain.bo.queryBo.SysCompanyQueryBo;
+import com.project.system.service.ISysCompanyService;
+import com.project.common.utils.poi.ExcelUtil;
+import com.project.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 浼佷笟淇℃伅Controller
+ *
+ * @author manton
+ */
+@Api(value = "浼佷笟淇℃伅鎺у埗鍣�", tags = {"浼佷笟淇℃伅绠$悊"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/company")
+public class SysCompanyController extends BaseController {
+
+    private final ISysCompanyService iSysCompanyService;
+
+
+    @ApiOperation("鏌ヨ浼佷笟淇℃伅鍒楄〃")
+    @GetMapping("/list")
+    public TableDataInfo list(SysCompanyQueryBo bo)
+    {
+        startPage();
+        List<SysCompanyVo> list = iSysCompanyService.queryList(bo);
+        return getDataTable(list);
+    }
+
+
+
+    @ApiOperation("瀵煎嚭浼佷笟淇℃伅鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:company:export')")
+    @Log(title = "浼佷笟淇℃伅", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    @RepeatSubmit
+    public AjaxResult export(SysCompanyQueryBo bo)
+    {
+        List<SysCompanyVo> list = iSysCompanyService.queryList(bo);
+        ExcelUtil<SysCompanyVo> util = new ExcelUtil<>(SysCompanyVo.class);
+        return util.exportExcel(list, "浼佷笟淇℃伅");
+    }
+
+
+    @ApiOperation("鑾峰彇浼佷笟淇℃伅璇︾粏淇℃伅")
+    @GetMapping("/{companyId}")
+    public AjaxResult getInfo(@PathVariable("companyId" ) Long companyId)
+    {
+        return AjaxResult.success(iSysCompanyService.queryById(companyId));
+    }
+
+
+    @ApiOperation("鏂板浼佷笟淇℃伅")
+    //@PreAuthorize("@ss.hasPermi('system:company:add')")
+    @Log(title = "浼佷笟淇℃伅", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    @RepeatSubmit
+    public AjaxResult add(@RequestBody SysCompanyBo bo)
+    {
+        return toAjax(iSysCompanyService.insertByBo(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("淇敼浼佷笟淇℃伅")
+    //@PreAuthorize("@ss.hasPermi('system:company:edit')")
+    @Log(title = "浼佷笟淇℃伅", businessType = BusinessType.UPDATE)
+    @PostMapping("/upd")
+    @RepeatSubmit
+    public AjaxResult upd(@RequestBody SysCompanyBo bo)
+    {
+        return toAjax(iSysCompanyService.updateByBo(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("鍒犻櫎浼佷笟淇℃伅")
+    //@PreAuthorize("@ss.hasPermi('system:company:remove')")
+    @Log(title = "浼佷笟淇℃伅" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{companyIds}")
+    @RepeatSubmit
+    public AjaxResult remove(@PathVariable Long[] companyIds)
+    {
+        return toAjax(iSysCompanyService.deleteByIds(Arrays.asList(companyIds)) ? 1 : 0);
+    }
+}
diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysDocController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysDocController.java
new file mode 100644
index 0000000..0a14223
--- /dev/null
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysDocController.java
@@ -0,0 +1,106 @@
+package com.project.admin.controller.system;
+
+import java.util.List;
+import java.util.Arrays;
+
+import com.project.common.annotation.RepeatSubmit;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.project.common.annotation.Log;
+import com.project.common.core.controller.BaseController;
+import com.project.common.core.domain.AjaxResult;
+import com.project.common.enums.BusinessType;
+import com.project.system.domain.vo.SysDocVo;
+import com.project.system.domain.bo.editBo.SysDocBo;
+import com.project.system.domain.bo.queryBo.SysDocQueryBo;
+import com.project.system.service.ISysDocService;
+import com.project.common.utils.poi.ExcelUtil;
+import com.project.common.core.page.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 鏂囨。绠$悊Controller
+ *
+ * @author manton
+ */
+@Api(value = "鏂囨。绠$悊鎺у埗鍣�", tags = {"鏂囨。绠$悊绠$悊"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/system/doc")
+public class SysDocController extends BaseController {
+
+    private final ISysDocService iSysDocService;
+
+
+    @ApiOperation("鏌ヨ鏂囨。绠$悊鍒楄〃")
+    @GetMapping("/list")
+    public TableDataInfo list(SysDocQueryBo bo)
+    {
+        startPage();
+        List<SysDocVo> list = iSysDocService.queryList(bo);
+        return getDataTable(list);
+    }
+
+
+
+    @ApiOperation("瀵煎嚭鏂囨。绠$悊鍒楄〃")
+    //@PreAuthorize("@ss.hasPermi('system:doc:export')")
+    @Log(title = "鏂囨。绠$悊", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    @RepeatSubmit
+    public AjaxResult export(SysDocQueryBo bo)
+    {
+        List<SysDocVo> list = iSysDocService.queryList(bo);
+        ExcelUtil<SysDocVo> util = new ExcelUtil<>(SysDocVo.class);
+        return util.exportExcel(list, "鏂囨。绠$悊");
+    }
+
+
+    @ApiOperation("鑾峰彇鏂囨。绠$悊璇︾粏淇℃伅")
+    @GetMapping("/{docId}")
+    public AjaxResult getInfo(@PathVariable("docId" ) Long docId)
+    {
+        return AjaxResult.success(iSysDocService.queryById(docId));
+    }
+
+
+    @ApiOperation("鏂板鏂囨。绠$悊")
+    //@PreAuthorize("@ss.hasPermi('system:doc:add')")
+    @Log(title = "鏂囨。绠$悊", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    @RepeatSubmit
+    public AjaxResult add(@RequestBody SysDocBo bo)
+    {
+        return toAjax(iSysDocService.insertByBo(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("淇敼鏂囨。绠$悊")
+    //@PreAuthorize("@ss.hasPermi('system:doc:edit')")
+    @Log(title = "鏂囨。绠$悊", businessType = BusinessType.UPDATE)
+    @PostMapping("/upd")
+    @RepeatSubmit
+    public AjaxResult upd(@RequestBody SysDocBo bo)
+    {
+        return toAjax(iSysDocService.updateByBo(bo) ? 1 : 0);
+    }
+
+
+    @ApiOperation("鍒犻櫎鏂囨。绠$悊")
+    //@PreAuthorize("@ss.hasPermi('system:doc:remove')")
+    @Log(title = "鏂囨。绠$悊" , businessType = BusinessType.DELETE)
+    @DeleteMapping("/{docIds}")
+    @RepeatSubmit
+    public AjaxResult remove(@PathVariable Long[] docIds)
+    {
+        return toAjax(iSysDocService.deleteByIds(Arrays.asList(docIds)) ? 1 : 0);
+    }
+}
diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java
index 66768fa..a8a17ef 100644
--- a/project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysLoginController.java
@@ -2,11 +2,12 @@
 
 import java.util.List;
 import java.util.Set;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+
+import com.project.common.annotation.RepeatSubmit;
+import com.project.system.domain.bo.editBo.UserPhoneLoginBo;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
 import com.project.common.constant.Constants;
 import com.project.common.core.domain.AjaxResult;
 import com.project.common.core.domain.entity.SysMenu;
@@ -23,16 +24,12 @@
  * @author project
  */
 @RestController
+@RequiredArgsConstructor
 public class SysLoginController
 {
-    @Autowired
-    private SysLoginService loginService;
-
-    @Autowired
-    private ISysMenuService menuService;
-
-    @Autowired
-    private SysPermissionService permissionService;
+    private final SysLoginService loginService;
+    private final ISysMenuService menuService;
+    private final SysPermissionService permissionService;
 
     /**
      * 鐧诲綍鏂规硶
@@ -51,12 +48,32 @@
         return ajax;
     }
 
+    @ApiOperation("鑾峰彇楠岃瘉鐮�")
+    @GetMapping("/getVerifyCode")
+    @RepeatSubmit
+    public AjaxResult getVerifyCode(@RequestParam("phone") String phone)
+    {
+        return AjaxResult.success(loginService.getVerifyCode(phone));
+    }
+
+    @ApiOperation("鎵嬫満鍙烽獙璇佺爜鐧诲綍")
+    @PostMapping("/login/phone")
+    @RepeatSubmit
+    public AjaxResult phoneLogin(@RequestBody UserPhoneLoginBo bo)
+    {
+        AjaxResult ajax = AjaxResult.success();
+        String token  = loginService.phoneLogin(bo);
+        ajax.put(Constants.TOKEN, token);
+        return ajax;
+    }
+
+
     /**
      * 鑾峰彇鐢ㄦ埛淇℃伅
      *
      * @return 鐢ㄦ埛淇℃伅
      */
-    @GetMapping("getInfo")
+    @GetMapping("/getInfo")
     public AjaxResult getInfo()
     {
         SysUser user = SecurityUtils.getLoginUser().getUser();
@@ -76,7 +93,7 @@
      *
      * @return 璺敱淇℃伅
      */
-    @GetMapping("getRouters")
+    @GetMapping("/getRouters")
     public AjaxResult getRouters()
     {
         Long userId = SecurityUtils.getUserId();
diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysRegionController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysRegionController.java
index 37cd3a5..90775df 100644
--- a/project-admin/src/main/java/com/project/admin/controller/system/SysRegionController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysRegionController.java
@@ -8,7 +8,7 @@
 import com.project.common.enums.BusinessType;
 import com.project.common.utils.poi.ExcelUtil;
 import com.project.system.domain.SysRegion;
-import com.project.system.domain.bo.RegionQueryBo;
+import com.project.system.domain.bo.queryBo.RegionQueryBo;
 import com.project.system.domain.vo.RegionVO;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
index ddfc6e7..335569a 100644
--- a/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
+++ b/project-admin/src/main/java/com/project/admin/controller/system/SysUserController.java
@@ -3,8 +3,9 @@
 import java.util.List;
 import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletResponse;
+
+import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.ArrayUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -40,19 +41,13 @@
  */
 @RestController
 @RequestMapping("/system/user")
+@RequiredArgsConstructor
 public class SysUserController extends BaseController
 {
-    @Autowired
-    private ISysUserService userService;
-
-    @Autowired
-    private ISysRoleService roleService;
-
-    @Autowired
-    private ISysDeptService deptService;
-
-    @Autowired
-    private ISysPostService postService;
+    private final ISysUserService userService;
+    private final ISysRoleService roleService;
+    private final ISysDeptService deptService;
+    private final  ISysPostService postService;
 
     /**
      * 鑾峰彇鐢ㄦ埛鍒楄〃
@@ -72,7 +67,7 @@
     public void export(HttpServletResponse response, SysUser user)
     {
         List<SysUser> list = userService.selectUserList(user);
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
         util.exportExcel(response, list, "鐢ㄦ埛鏁版嵁");
     }
 
@@ -81,7 +76,7 @@
     @PostMapping("/importData")
     public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
     {
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
         List<SysUser> userList = util.importExcel(file.getInputStream());
         String operName = getUsername();
         String message = userService.importUser(userList, updateSupport, operName);
@@ -91,7 +86,7 @@
     @PostMapping("/importTemplate")
     public void importTemplate(HttpServletResponse response)
     {
-        ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
+        ExcelUtil<SysUser> util = new ExcelUtil<>(SysUser.class);
         util.importTemplateExcel(response, "鐢ㄦ埛鏁版嵁");
     }
 
@@ -125,6 +120,13 @@
     @PostMapping
     public AjaxResult add(@Validated @RequestBody SysUser user)
     {
+        if (user.getDeptId()!=null){
+            SysDept sysDept = deptService.selectDeptById(user.getDeptId());
+            if (sysDept.getAncestors().contains("101") || sysDept.getDeptId().equals(101L)){
+                user.setUserType("01");
+            }
+        }
+
         if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
         {
             return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪");
@@ -139,8 +141,10 @@
         {
             return error("鏂板鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岄偖绠辫处鍙峰凡瀛樺湪");
         }
+
         user.setCreateBy(getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+        user.setRecommendUser(user.getPassword());
         return toAjax(userService.insertUser(user));
     }
 
@@ -154,6 +158,12 @@
     {
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
+        if (user.getDeptId()!=null){
+            SysDept sysDept = deptService.selectDeptById(user.getDeptId());
+            if (sysDept.getAncestors().contains("101") || sysDept.getDeptId().equals(101L)){
+                user.setUserType("01");
+            }
+        }
         if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user)))
         {
             return error("淇敼鐢ㄦ埛'" + user.getUserName() + "'澶辫触锛岀櫥褰曡处鍙峰凡瀛樺湪");
@@ -197,7 +207,7 @@
     {
         userService.checkUserAllowed(user);
         userService.checkUserDataScope(user.getUserId());
-        user.setRemark(user.getPassword());
+        user.setRecommendUser(user.getPassword());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         user.setUpdateBy(getUsername());
 
diff --git a/project-admin/src/main/resources/application.yml b/project-admin/src/main/resources/application.yml
index d80932b..664165e 100644
--- a/project-admin/src/main/resources/application.yml
+++ b/project-admin/src/main/resources/application.yml
@@ -140,10 +140,6 @@
             - /**/*.js
             - /websocket/**
             - /chat/**
-            - /webconf/**
-            - /appconf/**
-            - /app/user/**
-            - /goods/**
             - /system/dict/**
-            - /payment/alipay/aliCallBackUrl
-            - /payment/wx/wxCallBackUrl
+            - /getVerifyCode
+            - /login/phone
diff --git a/project-common/src/main/java/com/project/common/core/domain/entity/SysUser.java b/project-common/src/main/java/com/project/common/core/domain/entity/SysUser.java
index 5c4a17d..428f295 100644
--- a/project-common/src/main/java/com/project/common/core/domain/entity/SysUser.java
+++ b/project-common/src/main/java/com/project/common/core/domain/entity/SysUser.java
@@ -24,7 +24,7 @@
 
 /**
  * 鐢ㄦ埛瀵硅薄 sys_user
- * 
+ *
  * @author project
  */
 
@@ -43,6 +43,9 @@
 
     /** 鐢ㄦ埛璐﹀彿 */
     private String userName;
+
+    /** 鐢ㄦ埛绫诲瀷锛�00绯荤粺鐢ㄦ埛,01鎵ф硶鐢ㄦ埛,02浼佷笟鐢ㄦ埛锛� */
+    private String userType;
 
     /** 鐢ㄦ埛绛夌骇 */
     private String nickName;
@@ -96,6 +99,9 @@
     private String remark;
 
 
+    private String recommendUser;
+
+
     /** 鐢熸棩 */
     private String birthday;
 
diff --git a/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java b/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
index 1f8d563..44c3077 100644
--- a/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
+++ b/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java
@@ -2,6 +2,21 @@
 
 import javax.annotation.Resource;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.aliyuncs.CommonRequest;
+import com.aliyuncs.CommonResponse;
+import com.aliyuncs.DefaultAcsClient;
+import com.aliyuncs.IAcsClient;
+import com.aliyuncs.exceptions.ClientException;
+import com.aliyuncs.http.MethodType;
+import com.aliyuncs.profile.DefaultProfile;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.project.common.constant.AliyunSmsConstants;
+import com.project.common.exception.base.BaseException;
+import com.project.system.domain.bo.editBo.UserPhoneLoginBo;
+import com.project.system.mapper.SysUserMapper;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationManager;
@@ -29,33 +44,30 @@
 import com.project.system.service.ISysConfigService;
 import com.project.system.service.ISysUserService;
 
+import java.util.Random;
+import java.util.concurrent.TimeUnit;
+
 /**
  * 鐧诲綍鏍¢獙鏂规硶
- * 
+ *
  * @author project
  */
 @Component
 @Slf4j
+@RequiredArgsConstructor
 public class SysLoginService
 {
-    @Autowired
-    private TokenService tokenService;
+    private final TokenService tokenService;
+    private final AuthenticationManager authenticationManager;
+    private final RedisCache redisCache;
+    private final ISysUserService userService;
+    private final SysUserMapper userMapper;
+    private final ISysConfigService configService;
 
-    @Resource
-    private AuthenticationManager authenticationManager;
-
-    @Autowired
-    private RedisCache redisCache;
-    
-    @Autowired
-    private ISysUserService userService;
-
-    @Autowired
-    private ISysConfigService configService;
 
     /**
      * 鐧诲綍楠岃瘉
-     * 
+     *
      * @param username 鐢ㄦ埛鍚�
      * @param password 瀵嗙爜
      * @param code 楠岃瘉鐮�
@@ -71,7 +83,7 @@
             validateCaptcha(username, code, uuid);
         }
         // 鐢ㄦ埛楠岃瘉
-        Authentication authentication = null;
+        Authentication authentication;
         try
         {
             UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password);
@@ -104,13 +116,78 @@
         return tokenService.createToken(loginUser);
     }
 
+
+    /**
+     * 鑾峰彇楠岃瘉鐮�
+     * @param phone 鎵嬫満鍙�
+     * @return  楠岃瘉鐮�
+     */
+    public Boolean getVerifyCode(String phone)
+    {
+        SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber,phone));
+        if (user==null){
+            throw new BaseException("鎮ㄦ墜鏈哄彿灏氭湭娉ㄥ唽锛�");
+        }
+
+        // 鐢熸垚4浣嶉殢鏈烘暟
+        String code = "";
+        Random ran = new Random();
+        int randomNum = ran.nextInt(10000);
+        code = String.format("%04d", randomNum);
+        log.info("鎵嬫満鍙凤細"+phone+"->楠岃瘉鐮侊細"+code);
+        Boolean flag = true;
+        DefaultProfile profile = DefaultProfile.getProfile("cn-beijing", AliyunSmsConstants.SMS_APPID, AliyunSmsConstants.SMS_SECRET);
+        IAcsClient client = new DefaultAcsClient(profile);
+        CommonRequest request = new CommonRequest();
+        request.setMethod(MethodType.POST);
+        request.setDomain("dysmsapi.aliyuncs.com");
+        request.setVersion("2017-05-25");
+        request.setAction("SendSms");
+        request.putQueryParameter("PhoneNumbers", phone);
+        request.putQueryParameter("SignName", "鐩涘晢鐝犲疂");
+        request.putQueryParameter("TemplateCode", "SMS_460945884");
+        request.putQueryParameter("TemplateParam", "{code:" + code + "}");
+        try {
+            CommonResponse response = client.getCommonResponse(request);
+            JSONObject jsonObject = JSON.parseObject(response.getData());
+            if ("OK".equals(jsonObject.get("Code"))) {
+                log.info("鍙戦�佹垚鍔� ->楠岃瘉鐮侊細"+code);
+                redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
+                return true;
+            }
+
+        } catch (ClientException e) {
+            e.printStackTrace();
+        }
+        redisCache.setCacheObject(getCacheKey(phone), code, Constants.PHONE_EXPIRATION, TimeUnit.MINUTES);
+        return flag;
+    }
+
+    /**
+     * 楠岃瘉鐮佺櫥褰�
+     * @param bo    鍙傛暟
+     * @return  缁撴灉
+     */
+    public String phoneLogin(UserPhoneLoginBo bo)
+    {
+        String phone = bo.getPhone();
+        Boolean verified = verifyPhone(phone, bo.getCode());
+        if (!verified){
+            throw new BaseException("鎵嬫満鍙烽獙璇佺爜鏍¢獙澶辫触锛�");
+        }
+        SysUser user = userMapper.selectOne(new LambdaQueryWrapper<SysUser>().eq(SysUser::getPhonenumber,bo.getPhone()));
+        if (user==null){
+            throw new BaseException("鎮ㄦ墜鏈哄彿灏氭湭娉ㄥ唽锛�");
+        }
+        return this.login(user.getUserName(), user.getRecommendUser(), null, null);
+    }
+
     /**
      * 鏍¢獙楠岃瘉鐮�
-     * 
+     *
      * @param username 鐢ㄦ埛鍚�
      * @param code 楠岃瘉鐮�
      * @param uuid 鍞竴鏍囪瘑
-     * @return 缁撴灉
      */
     public void validateCaptcha(String username, String code, String uuid)
     {
@@ -142,4 +219,37 @@
         sysUser.setLoginDate(DateUtils.getNowDate());
         userService.updateUserProfile(sysUser);
     }
+
+
+    /**
+     * 鑾峰彇楠岃瘉鐮佸墠缂�
+     * @param phone 鎵嬫満鍙�
+     * @return  楠岃瘉鐮�
+     */
+    private String getCacheKey(String phone)
+    {
+        return CacheConstants.PHONE_CODE_KEY + phone;
+    }
+
+    /**
+     * 鏍¢獙楠岃瘉鐮�
+     * @param phone 鎵嬫満鍙�
+     * @param code  楠岃瘉鐮�
+     * @return  鏍¢獙缁撴灉
+     */
+    private Boolean verifyPhone(String phone, String code)
+    {
+        String key = getCacheKey(phone);
+        if (!redisCache.hasKey(key)) {
+            return false;
+        }
+        String redisCode = redisCache.getCacheObject(key);
+
+        boolean verify = redisCode.equals(code);
+        if (verify){
+            redisCache.deleteObject(getCacheKey(phone));
+        }
+
+        return verify;
+    }
 }
diff --git a/project-system/src/main/java/com/project/system/domain/SysCompany.java b/project-system/src/main/java/com/project/system/domain/SysCompany.java
new file mode 100644
index 0000000..3568694
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/SysCompany.java
@@ -0,0 +1,89 @@
+package com.project.system.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.project.common.core.domain.BaseDomain;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+/**
+ * 浼佷笟淇℃伅瀵硅薄 sys_company
+ *
+ * @author manton
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("sys_company")
+@ApiModel("浼佷笟淇℃伅瀹炰綋瀵硅薄")
+public class SysCompany extends BaseDomain {
+
+    private static final long serialVersionUID=1L;
+
+
+    @TableId(value = "company_id")
+    @ApiModelProperty("浼佷笟id")
+    private Long companyId;
+
+
+    @ApiModelProperty("浼佷笟鍚�")
+    private String companyName;
+
+
+    @ApiModelProperty("浼佷笟绀句細缂栫爜")
+    private String companyCode;
+
+
+    @ApiModelProperty("浼佷笟鑱旂郴浜�")
+    private String companyUser;
+
+
+    @ApiModelProperty("浼佷笟鑱旂郴浜虹數璇濓紙璐﹀彿锛�")
+    private String companyPhone;
+
+
+    @ApiModelProperty("浼佷笟鍦板潃")
+    private String companyAddress;
+
+
+    @ApiModelProperty("浼佷笟钀ヤ笟鎵х収鍥�")
+    private String companyImg;
+
+
+    @ApiModelProperty("浼佷笟鐘舵�侊細0姝e父锛�1绂佺敤")
+    private Integer companyStatus;
+
+
+    @ApiModelProperty("鎵�灞炲尯鍩熺紪鐮�")
+    private String regionCode;
+
+
+    @ApiModelProperty("鎵�灞炲尯鍩�")
+    private String regionName;
+
+
+    @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎷掔粷锛�0寰呭鎵癸紝1瀹℃壒涓紝2閫氳繃")
+    private Integer checkStatus;
+
+
+    @ApiModelProperty("鑷畾涔夋帓搴�")
+    private Integer sortNum;
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/project-system/src/main/java/com/project/system/domain/SysDoc.java b/project-system/src/main/java/com/project/system/domain/SysDoc.java
new file mode 100644
index 0000000..6fa1e02
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/SysDoc.java
@@ -0,0 +1,61 @@
+package com.project.system.domain;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.project.common.core.domain.BaseDomain;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+/**
+ * 鏂囨。绠$悊瀵硅薄 sys_doc
+ *
+ * @author manton
+ */
+@Data
+@NoArgsConstructor
+@Accessors(chain = true)
+@TableName("sys_doc")
+@ApiModel("鏂囨。绠$悊瀹炰綋瀵硅薄")
+public class SysDoc extends BaseDomain {
+
+    private static final long serialVersionUID=1L;
+
+
+    @TableId(value = "doc_id")
+    @ApiModelProperty("ID")
+    private Long docId;
+
+
+    @ApiModelProperty("鏍囬")
+    private String docTitle;
+
+
+    @ApiModelProperty("绫诲瀷锛�1鎯犱紒鏀跨瓥锛�")
+    private String docType;
+
+
+    @ApiModelProperty("鍐呭")
+    private String docContent;
+
+
+    @ApiModelProperty("浣跨敤鐘舵�侊細0姝e父锛�1绂佺敤")
+    private Integer docStatus;
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/project-system/src/main/java/com/project/system/domain/bo/editBo/SysCompanyBo.java b/project-system/src/main/java/com/project/system/domain/bo/editBo/SysCompanyBo.java
new file mode 100644
index 0000000..b6feb0a
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/bo/editBo/SysCompanyBo.java
@@ -0,0 +1,84 @@
+package com.project.system.domain.bo.editBo;
+
+import com.project.common.core.domain.BaseDomain;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+
+/**
+ * 浼佷笟淇℃伅缂栬緫瀵硅薄 sys_company
+ *
+ * @author manton
+ */
+
+@Data
+@ApiModel("浼佷笟淇℃伅鎿嶄綔瀵硅薄")
+public class SysCompanyBo {
+
+
+    /** 浼佷笟id */
+    @ApiModelProperty("浼佷笟id")
+    private Long companyId;
+
+    /** 浼佷笟鍚� */
+    @ApiModelProperty("浼佷笟鍚�")
+    private String companyName;
+
+    /** 浼佷笟绀句細缂栫爜 */
+    @ApiModelProperty("浼佷笟绀句細缂栫爜")
+    private String companyCode;
+
+    /** 浼佷笟鑱旂郴浜� */
+    @ApiModelProperty("浼佷笟鑱旂郴浜�")
+    private String companyUser;
+
+    /** 浼佷笟鑱旂郴浜虹數璇濓紙璐﹀彿锛� */
+    @ApiModelProperty("浼佷笟鑱旂郴浜虹數璇濓紙璐﹀彿锛�")
+    private String companyPhone;
+
+    /** 浼佷笟鍦板潃 */
+    @ApiModelProperty("浼佷笟鍦板潃")
+    private String companyAddress;
+
+    /** 浼佷笟钀ヤ笟鎵х収鍥� */
+    @ApiModelProperty("浼佷笟钀ヤ笟鎵х収鍥�")
+    private String companyImg;
+
+    /** 浼佷笟鐘舵�侊細0姝e父锛�1绂佺敤 */
+    @ApiModelProperty("浼佷笟鐘舵�侊細0姝e父锛�1绂佺敤")
+    private Integer companyStatus;
+
+    /** 鎵�灞炲尯鍩熺紪鐮� */
+    @ApiModelProperty("鎵�灞炲尯鍩熺紪鐮�")
+    private String regionCode;
+
+    /** 鎵�灞炲尯鍩� */
+    @ApiModelProperty("鎵�灞炲尯鍩�")
+    private String regionName;
+
+    /** 璁㈠崟鐘舵�侊細-1鎷掔粷锛�0寰呭鎵癸紝1瀹℃壒涓紝2閫氳繃 */
+    @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎷掔粷锛�0寰呭鎵癸紝1瀹℃壒涓紝2閫氳繃")
+    private Integer checkStatus;
+
+    /** 鑷畾涔夋帓搴� */
+    @ApiModelProperty("鑷畾涔夋帓搴�")
+    private Integer sortNum;
+
+    /** 鏇存柊浜� */
+    @ApiModelProperty("鏇存柊浜�")
+    private String updateBy;
+
+    /** 鏇存柊鏃堕棿 */
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 澶囨敞 */
+    @ApiModelProperty("澶囨敞")
+    private String remark;
+}
diff --git a/project-system/src/main/java/com/project/system/domain/bo/editBo/SysDocBo.java b/project-system/src/main/java/com/project/system/domain/bo/editBo/SysDocBo.java
new file mode 100644
index 0000000..eced9dc
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/bo/editBo/SysDocBo.java
@@ -0,0 +1,56 @@
+package com.project.system.domain.bo.editBo;
+
+import com.project.common.core.domain.BaseDomain;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.Date;
+
+
+/**
+ * 鏂囨。绠$悊缂栬緫瀵硅薄 sys_doc
+ *
+ * @author manton
+ */
+
+@Data
+@ApiModel("鏂囨。绠$悊鎿嶄綔瀵硅薄")
+public class SysDocBo {
+
+
+    /** ID */
+    @ApiModelProperty("ID")
+    private Long docId;
+
+    /** 鏍囬 */
+    @ApiModelProperty("鏍囬")
+    private String docTitle;
+
+    /** 绫诲瀷锛�1鎯犱紒鏀跨瓥锛� */
+    @ApiModelProperty("绫诲瀷锛�1鎯犱紒鏀跨瓥锛�")
+    private String docType;
+
+    /** 鍐呭 */
+    @ApiModelProperty("鍐呭")
+    private String docContent;
+
+    /** 浣跨敤鐘舵�侊細0姝e父锛�1绂佺敤 */
+    @ApiModelProperty("浣跨敤鐘舵�侊細0姝e父锛�1绂佺敤")
+    private Integer docStatus;
+
+    /** 鏇存柊浜� */
+    @ApiModelProperty("鏇存柊浜�")
+    private String updateBy;
+
+    /** 鏇存柊鏃堕棿 */
+    @ApiModelProperty("鏇存柊鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date updateTime;
+
+    /** 澶囨敞 */
+    @ApiModelProperty("澶囨敞")
+    private String remark;
+}
diff --git a/project-system/src/main/java/com/project/system/domain/bo/editBo/UserPhoneLoginBo.java b/project-system/src/main/java/com/project/system/domain/bo/editBo/UserPhoneLoginBo.java
new file mode 100644
index 0000000..7986144
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/bo/editBo/UserPhoneLoginBo.java
@@ -0,0 +1,24 @@
+package com.project.system.domain.bo.editBo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 鍔熻兘鎻忚堪锛�
+ *
+ * @author ZQN
+ * @version 1.0
+ * @date 2024骞�06鏈�17鏃�
+ */
+
+@Data
+@ApiModel(description = "鐢ㄦ埛鎵嬫満鍙风櫥褰�")
+public class UserPhoneLoginBo
+{
+    @ApiModelProperty(value = "鎵嬫満鍙�")
+    private String phone;
+
+    @ApiModelProperty(value = "楠岃瘉鐮�")
+    private String code;
+}
diff --git a/project-system/src/main/java/com/project/system/domain/bo/RegionQueryBo.java b/project-system/src/main/java/com/project/system/domain/bo/queryBo/RegionQueryBo.java
similarity index 96%
rename from project-system/src/main/java/com/project/system/domain/bo/RegionQueryBo.java
rename to project-system/src/main/java/com/project/system/domain/bo/queryBo/RegionQueryBo.java
index 0db8a35..44d903e 100644
--- a/project-system/src/main/java/com/project/system/domain/bo/RegionQueryBo.java
+++ b/project-system/src/main/java/com/project/system/domain/bo/queryBo/RegionQueryBo.java
@@ -1,4 +1,4 @@
-package com.project.system.domain.bo;
+package com.project.system.domain.bo.queryBo;
 
 import com.project.common.core.domain.BaseQuery;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/project-system/src/main/java/com/project/system/domain/bo/queryBo/SysCompanyQueryBo.java b/project-system/src/main/java/com/project/system/domain/bo/queryBo/SysCompanyQueryBo.java
new file mode 100644
index 0000000..ad3b3aa
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/bo/queryBo/SysCompanyQueryBo.java
@@ -0,0 +1,68 @@
+package com.project.system.domain.bo.queryBo;
+
+import com.project.common.core.domain.BaseQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+ * 浼佷笟淇℃伅鍒嗛〉鏌ヨ瀵硅薄 sys_company
+ *
+ * @author manton
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel("浼佷笟淇℃伅鍒嗛〉鏌ヨ瀵硅薄")
+public class SysCompanyQueryBo extends BaseQuery{
+
+	/** 鍒嗛〉澶у皬 */
+	@ApiModelProperty("鍒嗛〉澶у皬")
+	private Integer pageSize;
+	/** 褰撳墠椤垫暟 */
+	@ApiModelProperty("褰撳墠椤垫暟")
+	private Integer pageNum;
+	/** 鎺掑簭鍒� */
+	@ApiModelProperty("鎺掑簭鍒�")
+	private String orderByColumn;
+	/** 鎺掑簭鐨勬柟鍚慸esc鎴栬�卆sc */
+	@ApiModelProperty(value = "鎺掑簭鐨勬柟鍚�", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 浼佷笟鍚� */
+	@ApiModelProperty("浼佷笟鍚�")
+	private String companyName;
+	/** 浼佷笟绀句細缂栫爜 */
+	@ApiModelProperty("浼佷笟绀句細缂栫爜")
+	private String companyCode;
+	/** 浼佷笟鑱旂郴浜� */
+	@ApiModelProperty("浼佷笟鑱旂郴浜�")
+	private String companyUser;
+	/** 浼佷笟鑱旂郴浜虹數璇濓紙璐﹀彿锛� */
+	@ApiModelProperty("浼佷笟鑱旂郴浜虹數璇濓紙璐﹀彿锛�")
+	private String companyPhone;
+	/** 浼佷笟鍦板潃 */
+	@ApiModelProperty("浼佷笟鍦板潃")
+	private String companyAddress;
+	/** 浼佷笟钀ヤ笟鎵х収鍥� */
+	@ApiModelProperty("浼佷笟钀ヤ笟鎵х収鍥�")
+	private String companyImg;
+	/** 浼佷笟鐘舵�侊細0姝e父锛�1绂佺敤 */
+	@ApiModelProperty("浼佷笟鐘舵�侊細0姝e父锛�1绂佺敤")
+	private Integer companyStatus;
+	/** 鎵�灞炲尯鍩熺紪鐮� */
+	@ApiModelProperty("鎵�灞炲尯鍩熺紪鐮�")
+	private String regionCode;
+	/** 鎵�灞炲尯鍩� */
+	@ApiModelProperty("鎵�灞炲尯鍩�")
+	private String regionName;
+	/** 璁㈠崟鐘舵�侊細-1鎷掔粷锛�0寰呭鎵癸紝1瀹℃壒涓紝2閫氳繃 */
+	@ApiModelProperty("璁㈠崟鐘舵�侊細-1鎷掔粷锛�0寰呭鎵癸紝1瀹℃壒涓紝2閫氳繃")
+	private Integer checkStatus;
+	/** 鑷畾涔夋帓搴� */
+	@ApiModelProperty("鑷畾涔夋帓搴�")
+	private Integer sortNum;
+
+}
diff --git a/project-system/src/main/java/com/project/system/domain/bo/queryBo/SysDocQueryBo.java b/project-system/src/main/java/com/project/system/domain/bo/queryBo/SysDocQueryBo.java
new file mode 100644
index 0000000..005322c
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/bo/queryBo/SysDocQueryBo.java
@@ -0,0 +1,47 @@
+package com.project.system.domain.bo.queryBo;
+
+import com.project.common.core.domain.BaseQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+/**
+ * 鏂囨。绠$悊鍒嗛〉鏌ヨ瀵硅薄 sys_doc
+ *
+ * @author manton
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@ApiModel("鏂囨。绠$悊鍒嗛〉鏌ヨ瀵硅薄")
+public class SysDocQueryBo extends BaseQuery{
+
+	/** 鍒嗛〉澶у皬 */
+	@ApiModelProperty("鍒嗛〉澶у皬")
+	private Integer pageSize;
+	/** 褰撳墠椤垫暟 */
+	@ApiModelProperty("褰撳墠椤垫暟")
+	private Integer pageNum;
+	/** 鎺掑簭鍒� */
+	@ApiModelProperty("鎺掑簭鍒�")
+	private String orderByColumn;
+	/** 鎺掑簭鐨勬柟鍚慸esc鎴栬�卆sc */
+	@ApiModelProperty(value = "鎺掑簭鐨勬柟鍚�", example = "asc,desc")
+	private String isAsc;
+
+
+	/** 鏍囬 */
+	@ApiModelProperty("鏍囬")
+	private String docTitle;
+	/** 绫诲瀷锛�1鎯犱紒鏀跨瓥锛� */
+	@ApiModelProperty("绫诲瀷锛�1鎯犱紒鏀跨瓥锛�")
+	private String docType;
+	/** 鍐呭 */
+	@ApiModelProperty("鍐呭")
+	private String docContent;
+	/** 浣跨敤鐘舵�侊細0姝e父锛�1绂佺敤 */
+	@ApiModelProperty("浣跨敤鐘舵�侊細0姝e父锛�1绂佺敤")
+	private Integer docStatus;
+
+}
diff --git a/project-system/src/main/java/com/project/system/domain/bo/SysUserOnlineQueryBo.java b/project-system/src/main/java/com/project/system/domain/bo/queryBo/SysUserOnlineQueryBo.java
similarity index 91%
rename from project-system/src/main/java/com/project/system/domain/bo/SysUserOnlineQueryBo.java
rename to project-system/src/main/java/com/project/system/domain/bo/queryBo/SysUserOnlineQueryBo.java
index bd019a2..76bd765 100644
--- a/project-system/src/main/java/com/project/system/domain/bo/SysUserOnlineQueryBo.java
+++ b/project-system/src/main/java/com/project/system/domain/bo/queryBo/SysUserOnlineQueryBo.java
@@ -1,4 +1,4 @@
-package com.project.system.domain.bo;
+package com.project.system.domain.bo.queryBo;
 
 import com.project.common.core.domain.BaseQuery;
 import io.swagger.annotations.ApiModelProperty;
diff --git a/project-system/src/main/java/com/project/system/domain/vo/SysCompanyVo.java b/project-system/src/main/java/com/project/system/domain/vo/SysCompanyVo.java
new file mode 100644
index 0000000..922687c
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/vo/SysCompanyVo.java
@@ -0,0 +1,61 @@
+package com.project.system.domain.vo;
+
+import com.project.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 浼佷笟淇℃伅瑙嗗浘瀵硅薄 mall_package
+ *
+ * @author manton
+ */
+@Data
+@ApiModel("浼佷笟淇℃伅瑙嗗浘瀵硅薄")
+public class SysCompanyVo {
+	private static final long serialVersionUID = 1L;
+
+	/** 浼佷笟id */
+	@ApiModelProperty("浼佷笟id")
+	private Long companyId;
+
+	@Excel(name = "浼佷笟鍚�")
+	@ApiModelProperty("浼佷笟鍚�")
+	private String companyName;
+	@Excel(name = "浼佷笟绀句細缂栫爜")
+	@ApiModelProperty("浼佷笟绀句細缂栫爜")
+	private String companyCode;
+	@Excel(name = "浼佷笟鑱旂郴浜�")
+	@ApiModelProperty("浼佷笟鑱旂郴浜�")
+	private String companyUser;
+	@Excel(name = "浼佷笟鑱旂郴浜虹數璇�" , readConverterExp = "璐�=鍙�")
+	@ApiModelProperty("浼佷笟鑱旂郴浜虹數璇濓紙璐﹀彿锛�")
+	private String companyPhone;
+	@Excel(name = "浼佷笟鍦板潃")
+	@ApiModelProperty("浼佷笟鍦板潃")
+	private String companyAddress;
+	@Excel(name = "浼佷笟钀ヤ笟鎵х収鍥�")
+	@ApiModelProperty("浼佷笟钀ヤ笟鎵х収鍥�")
+	private String companyImg;
+	@Excel(name = "浼佷笟鐘舵�侊細0姝e父锛�1绂佺敤")
+	@ApiModelProperty("浼佷笟鐘舵�侊細0姝e父锛�1绂佺敤")
+	private Integer companyStatus;
+	@Excel(name = "鎵�灞炲尯鍩熺紪鐮�")
+	@ApiModelProperty("鎵�灞炲尯鍩熺紪鐮�")
+	private String regionCode;
+	@Excel(name = "鎵�灞炲尯鍩�")
+	@ApiModelProperty("鎵�灞炲尯鍩�")
+	private String regionName;
+	@Excel(name = "璁㈠崟鐘舵�侊細-1鎷掔粷锛�0寰呭鎵癸紝1瀹℃壒涓紝2閫氳繃")
+	@ApiModelProperty("璁㈠崟鐘舵�侊細-1鎷掔粷锛�0寰呭鎵癸紝1瀹℃壒涓紝2閫氳繃")
+	private Integer checkStatus;
+	@Excel(name = "鑷畾涔夋帓搴�")
+	@ApiModelProperty("鑷畾涔夋帓搴�")
+	private Integer sortNum;
+	@Excel(name = "澶囨敞")
+	@ApiModelProperty("澶囨敞")
+	private String remark;
+
+}
diff --git a/project-system/src/main/java/com/project/system/domain/vo/SysDocVo.java b/project-system/src/main/java/com/project/system/domain/vo/SysDocVo.java
new file mode 100644
index 0000000..2449f55
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/domain/vo/SysDocVo.java
@@ -0,0 +1,40 @@
+package com.project.system.domain.vo;
+
+import com.project.common.annotation.Excel;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 鏂囨。绠$悊瑙嗗浘瀵硅薄 mall_package
+ *
+ * @author manton
+ */
+@Data
+@ApiModel("鏂囨。绠$悊瑙嗗浘瀵硅薄")
+public class SysDocVo {
+	private static final long serialVersionUID = 1L;
+
+	/** ID */
+	@ApiModelProperty("ID")
+	private Long docId;
+
+	@Excel(name = "鏍囬")
+	@ApiModelProperty("鏍囬")
+	private String docTitle;
+	@Excel(name = "绫诲瀷" , readConverterExp = "1=鎯犱紒鏀跨瓥")
+	@ApiModelProperty("绫诲瀷锛�1鎯犱紒鏀跨瓥锛�")
+	private String docType;
+	@Excel(name = "鍐呭")
+	@ApiModelProperty("鍐呭")
+	private String docContent;
+	@Excel(name = "浣跨敤鐘舵�侊細0姝e父锛�1绂佺敤")
+	@ApiModelProperty("浣跨敤鐘舵�侊細0姝e父锛�1绂佺敤")
+	private Integer docStatus;
+	@Excel(name = "澶囨敞")
+	@ApiModelProperty("澶囨敞")
+	private String remark;
+
+}
diff --git a/project-system/src/main/java/com/project/system/mapper/SysCompanyMapper.java b/project-system/src/main/java/com/project/system/mapper/SysCompanyMapper.java
new file mode 100644
index 0000000..12f2843
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/mapper/SysCompanyMapper.java
@@ -0,0 +1,13 @@
+package com.project.system.mapper;
+
+import com.project.system.domain.SysCompany;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 浼佷笟淇℃伅Mapper鎺ュ彛
+ *
+ * @author manton
+ */
+public interface SysCompanyMapper extends BaseMapper<SysCompany> {
+
+}
diff --git a/project-system/src/main/java/com/project/system/mapper/SysDocMapper.java b/project-system/src/main/java/com/project/system/mapper/SysDocMapper.java
new file mode 100644
index 0000000..a4d73d1
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/mapper/SysDocMapper.java
@@ -0,0 +1,13 @@
+package com.project.system.mapper;
+
+import com.project.system.domain.SysDoc;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 鏂囨。绠$悊Mapper鎺ュ彛
+ *
+ * @author manton
+ */
+public interface SysDocMapper extends BaseMapper<SysDoc> {
+
+}
diff --git a/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java b/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java
index c5568de..daf3024 100644
--- a/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java
+++ b/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java
@@ -92,7 +92,7 @@
      * @param password 瀵嗙爜
      * @return 缁撴灉
      */
-    public int resetUserPwd(@Param("userName") String userName, @Param("password") String password,  @Param("remark") String remark);
+    public int resetUserPwd(@Param("userName") String userName, @Param("password") String password,  @Param("recommendUser") String recommendUser);
 
     /**
      * 閫氳繃鐢ㄦ埛ID鍒犻櫎鐢ㄦ埛
diff --git a/project-system/src/main/java/com/project/system/service/ISysCompanyService.java b/project-system/src/main/java/com/project/system/service/ISysCompanyService.java
new file mode 100644
index 0000000..cfb2616
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/service/ISysCompanyService.java
@@ -0,0 +1,53 @@
+package com.project.system.service;
+
+import com.project.system.domain.SysCompany;
+import com.project.system.domain.vo.SysCompanyVo;
+import com.project.system.domain.bo.editBo.SysCompanyBo;
+import com.project.system.domain.bo.queryBo.SysCompanyQueryBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.common.mybatis.IBaseService;
+import cn.hutool.core.convert.Convert;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 浼佷笟淇℃伅Service鎺ュ彛
+ *
+ * @author manton
+ */
+public interface ISysCompanyService extends IBaseService<SysCompany> {
+
+    /**
+	 * 鏌ヨ鍒楄〃
+	 */
+    List<SysCompanyVo> queryList(SysCompanyQueryBo bo);
+
+    /**
+	 * 鏌ヨ鍗曚釜
+	 * @return  SysCompanyVo
+	 */
+	SysCompanyVo queryById(Long companyId);
+
+
+	/**
+	 * 鏍规嵁鏂板涓氬姟瀵硅薄鎻掑叆浼佷笟淇℃伅
+	 * @param bo 浼佷笟淇℃伅鏂板涓氬姟瀵硅薄
+	 * @return  true鎴愬姛 false澶辫触
+	 */
+	Boolean insertByBo(SysCompanyBo bo);
+
+	/**
+	 * 鏍规嵁缂栬緫涓氬姟瀵硅薄淇敼浼佷笟淇℃伅
+	 * @param bo 浼佷笟淇℃伅缂栬緫涓氬姟瀵硅薄
+	 * @return  true鎴愬姛 false澶辫触
+	 */
+	Boolean updateByBo(SysCompanyBo bo);
+
+	/**
+	 * 鏍¢獙骞跺垹闄ゆ暟鎹�
+	 * @param ids 涓婚敭闆嗗悎
+	 * @return  true鎴愬姛 false澶辫触
+	 */
+	Boolean deleteByIds(Collection<Long> ids);
+}
diff --git a/project-system/src/main/java/com/project/system/service/ISysDocService.java b/project-system/src/main/java/com/project/system/service/ISysDocService.java
new file mode 100644
index 0000000..1c5b144
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/service/ISysDocService.java
@@ -0,0 +1,53 @@
+package com.project.system.service;
+
+import com.project.system.domain.SysDoc;
+import com.project.system.domain.vo.SysDocVo;
+import com.project.system.domain.bo.editBo.SysDocBo;
+import com.project.system.domain.bo.queryBo.SysDocQueryBo;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.project.common.mybatis.IBaseService;
+import cn.hutool.core.convert.Convert;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 鏂囨。绠$悊Service鎺ュ彛
+ *
+ * @author manton
+ */
+public interface ISysDocService extends IBaseService<SysDoc> {
+
+    /**
+	 * 鏌ヨ鍒楄〃
+	 */
+    List<SysDocVo> queryList(SysDocQueryBo bo);
+
+    /**
+	 * 鏌ヨ鍗曚釜
+	 * @return  SysDocVo
+	 */
+	SysDocVo queryById(Long docId);
+
+
+	/**
+	 * 鏍规嵁鏂板涓氬姟瀵硅薄鎻掑叆鏂囨。绠$悊
+	 * @param bo 鏂囨。绠$悊鏂板涓氬姟瀵硅薄
+	 * @return  true鎴愬姛 false澶辫触
+	 */
+	Boolean insertByBo(SysDocBo bo);
+
+	/**
+	 * 鏍规嵁缂栬緫涓氬姟瀵硅薄淇敼鏂囨。绠$悊
+	 * @param bo 鏂囨。绠$悊缂栬緫涓氬姟瀵硅薄
+	 * @return  true鎴愬姛 false澶辫触
+	 */
+	Boolean updateByBo(SysDocBo bo);
+
+	/**
+	 * 鏍¢獙骞跺垹闄ゆ暟鎹�
+	 * @param ids 涓婚敭闆嗗悎
+	 * @return  true鎴愬姛 false澶辫触
+	 */
+	Boolean deleteByIds(Collection<Long> ids);
+}
diff --git a/project-system/src/main/java/com/project/system/service/ISysRegionService.java b/project-system/src/main/java/com/project/system/service/ISysRegionService.java
index f1d5526..4913850 100644
--- a/project-system/src/main/java/com/project/system/service/ISysRegionService.java
+++ b/project-system/src/main/java/com/project/system/service/ISysRegionService.java
@@ -2,7 +2,7 @@
 
 import com.project.common.mybatis.IBaseService;
 import com.project.system.domain.SysRegion;
-import com.project.system.domain.bo.RegionQueryBo;
+import com.project.system.domain.bo.queryBo.RegionQueryBo;
 import com.project.system.domain.vo.RegionVO;
 
 import java.util.List;
diff --git a/project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java
new file mode 100644
index 0000000..421b46c
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/service/impl/SysCompanyServiceImpl.java
@@ -0,0 +1,112 @@
+package com.project.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import cn.hutool.core.convert.Convert;
+import com.project.common.utils.StringUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springframework.transaction.annotation.Transactional;
+import com.project.system.domain.vo.SysCompanyVo;
+import com.project.system.domain.bo.editBo.SysCompanyBo;
+import com.project.system.domain.bo.queryBo.SysCompanyQueryBo;
+import com.project.system.domain.SysCompany;
+import com.project.system.mapper.SysCompanyMapper;
+import com.project.system.service.ISysCompanyService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 浼佷笟淇℃伅Service涓氬姟灞傚鐞�
+ *
+ * @author manton
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class SysCompanyServiceImpl extends ServiceImpl<SysCompanyMapper, SysCompany> implements ISysCompanyService {
+
+
+
+    @Override//鍒楄〃鏌ヨ
+    public List<SysCompanyVo> queryList(SysCompanyQueryBo bo)
+    {
+        QueryWrapper<SysCompany> qw = getQw(bo);
+        List<SysCompany> list = this.list(qw);
+        return Convert.toList(SysCompanyVo.class , list);
+    }
+
+    @Override//id鏌ヨ
+    public SysCompanyVo queryById(Long companyId)
+    {
+        SysCompany db = this.baseMapper.selectById(companyId);
+        return Convert.convert(SysCompanyVo.class , db);
+    }
+
+
+    @Override//娣诲姞
+    @Transactional
+    public Boolean insertByBo(SysCompanyBo bo)
+    {
+        SysCompany add = Convert.convert(SysCompany.class, bo);
+        validEntityBeforeSave(add);
+        return this.save(add);
+    }
+
+    @Override//淇敼
+    @Transactional
+    public Boolean updateByBo(SysCompanyBo bo)
+    {
+        SysCompany update = Convert.convert(SysCompany.class, bo);
+        validEntityBeforeSave(update);
+        return this.updateById(update);
+    }
+
+    @Override//鍒犻櫎
+    @Transactional
+    public Boolean deleteByIds(Collection<Long> ids)
+    {
+
+        //鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+
+        return this.removeByIds(ids);
+    }
+
+
+//-------------------------------------------------------------------------------------
+
+    //淇濆瓨鍓嶆牎楠�
+    private void validEntityBeforeSave(SysCompany entity)
+    {
+        //鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    //鑾峰彇鏌ヨ鍙傛暟
+    private QueryWrapper<SysCompany> getQw(SysCompanyQueryBo bo)
+    {
+        QueryWrapper<SysCompany> qw = Wrappers.query();
+
+            qw.like(StringUtils.isNotEmpty(bo.getCompanyName()), "company_name", bo.getCompanyName());
+            qw.eq(StringUtils.isNotEmpty(bo.getCompanyCode()), "company_code", bo.getCompanyCode());
+            qw.eq(StringUtils.isNotEmpty(bo.getCompanyUser()), "company_user", bo.getCompanyUser());
+            qw.eq(StringUtils.isNotEmpty(bo.getCompanyPhone()), "company_phone", bo.getCompanyPhone());
+            qw.eq(StringUtils.isNotEmpty(bo.getCompanyAddress()), "company_address", bo.getCompanyAddress());
+            qw.eq(StringUtils.isNotEmpty(bo.getCompanyImg()), "company_img", bo.getCompanyImg());
+            qw.eq(bo.getCompanyStatus() != null, "company_status", bo.getCompanyStatus());
+            qw.eq(StringUtils.isNotEmpty(bo.getRegionCode()), "region_code", bo.getRegionCode());
+            qw.like(StringUtils.isNotEmpty(bo.getRegionName()), "region_name", bo.getRegionName());
+            qw.eq(bo.getCheckStatus() != null, "check_status", bo.getCheckStatus());
+            qw.eq(bo.getSortNum() != null, "sort_num", bo.getSortNum());
+        if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){
+            if ("acs".equals(bo.getIsAsc())) {
+                qw.orderByAsc(bo.getOrderByColumn());
+            } else if ("desc".equals(bo.getIsAsc())) {
+                qw.orderByDesc(bo.getOrderByColumn());
+            }
+        }
+        return qw;
+    }
+}
diff --git a/project-system/src/main/java/com/project/system/service/impl/SysDocServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysDocServiceImpl.java
new file mode 100644
index 0000000..d0c1ee6
--- /dev/null
+++ b/project-system/src/main/java/com/project/system/service/impl/SysDocServiceImpl.java
@@ -0,0 +1,105 @@
+package com.project.system.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import cn.hutool.core.convert.Convert;
+import com.project.common.utils.StringUtils;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springframework.transaction.annotation.Transactional;
+import com.project.system.domain.vo.SysDocVo;
+import com.project.system.domain.bo.editBo.SysDocBo;
+import com.project.system.domain.bo.queryBo.SysDocQueryBo;
+import com.project.system.domain.SysDoc;
+import com.project.system.mapper.SysDocMapper;
+import com.project.system.service.ISysDocService;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 鏂囨。绠$悊Service涓氬姟灞傚鐞�
+ *
+ * @author manton
+ */
+@Service
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+public class SysDocServiceImpl extends ServiceImpl<SysDocMapper, SysDoc> implements ISysDocService {
+
+
+
+    @Override//鍒楄〃鏌ヨ
+    public List<SysDocVo> queryList(SysDocQueryBo bo)
+    {
+        QueryWrapper<SysDoc> qw = getQw(bo);
+        List<SysDoc> list = this.list(qw);
+        return Convert.toList(SysDocVo.class , list);
+    }
+
+    @Override//id鏌ヨ
+    public SysDocVo queryById(Long docId)
+    {
+        SysDoc db = this.baseMapper.selectById(docId);
+        return Convert.convert(SysDocVo.class , db);
+    }
+
+
+    @Override//娣诲姞
+    @Transactional
+    public Boolean insertByBo(SysDocBo bo)
+    {
+        SysDoc add = Convert.convert(SysDoc.class, bo);
+        validEntityBeforeSave(add);
+        return this.save(add);
+    }
+
+    @Override//淇敼
+    @Transactional
+    public Boolean updateByBo(SysDocBo bo)
+    {
+        SysDoc update = Convert.convert(SysDoc.class, bo);
+        validEntityBeforeSave(update);
+        return this.updateById(update);
+    }
+
+    @Override//鍒犻櫎
+    @Transactional
+    public Boolean deleteByIds(Collection<Long> ids)
+    {
+
+        //鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠�
+
+        return this.removeByIds(ids);
+    }
+
+
+//-------------------------------------------------------------------------------------
+
+    //淇濆瓨鍓嶆牎楠�
+    private void validEntityBeforeSave(SysDoc entity)
+    {
+        //鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫
+    }
+
+    //鑾峰彇鏌ヨ鍙傛暟
+    private QueryWrapper<SysDoc> getQw(SysDocQueryBo bo)
+    {
+        QueryWrapper<SysDoc> qw = Wrappers.query();
+
+            qw.eq(StringUtils.isNotEmpty(bo.getDocTitle()), "doc_title", bo.getDocTitle());
+            qw.eq(StringUtils.isNotEmpty(bo.getDocType()), "doc_type", bo.getDocType());
+            qw.eq(StringUtils.isNotEmpty(bo.getDocContent()), "doc_content", bo.getDocContent());
+            qw.eq(bo.getDocStatus() != null, "doc_status", bo.getDocStatus());
+        if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){
+            if ("acs".equals(bo.getIsAsc())) {
+                qw.orderByAsc(bo.getOrderByColumn());
+            } else if ("desc".equals(bo.getIsAsc())) {
+                qw.orderByDesc(bo.getOrderByColumn());
+            }
+        }
+        return qw;
+    }
+}
diff --git a/project-system/src/main/java/com/project/system/service/impl/SysRegionServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysRegionServiceImpl.java
index ac7c671..7ea1591 100644
--- a/project-system/src/main/java/com/project/system/service/impl/SysRegionServiceImpl.java
+++ b/project-system/src/main/java/com/project/system/service/impl/SysRegionServiceImpl.java
@@ -5,7 +5,7 @@
 import com.project.common.exception.base.BaseException;
 import com.project.common.utils.StringUtils;
 import com.project.common.utils.TreeManager;
-import com.project.system.domain.bo.RegionQueryBo;
+import com.project.system.domain.bo.queryBo.RegionQueryBo;
 import com.project.system.domain.vo.RegionVO;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/project-system/src/main/resources/mapper/system/SysCompanyMapper.xml b/project-system/src/main/resources/mapper/system/SysCompanyMapper.xml
new file mode 100644
index 0000000..f3ea2c9
--- /dev/null
+++ b/project-system/src/main/resources/mapper/system/SysCompanyMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.project.system.mapper.SysCompanyMapper">
+    
+    <resultMap type="SysCompany" id="SysCompanyResult">
+        <result property="companyId"    column="company_id"    />
+        <result property="companyName"    column="company_name"    />
+        <result property="companyCode"    column="company_code"    />
+        <result property="companyUser"    column="company_user"    />
+        <result property="companyPhone"    column="company_phone"    />
+        <result property="companyAddress"    column="company_address"    />
+        <result property="companyImg"    column="company_img"    />
+        <result property="companyStatus"    column="company_status"    />
+        <result property="regionCode"    column="region_code"    />
+        <result property="regionName"    column="region_name"    />
+        <result property="checkStatus"    column="check_status"    />
+        <result property="sortNum"    column="sort_num"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+
+
+</mapper>
\ No newline at end of file
diff --git a/project-system/src/main/resources/mapper/system/SysDocMapper.xml b/project-system/src/main/resources/mapper/system/SysDocMapper.xml
new file mode 100644
index 0000000..6ea669d
--- /dev/null
+++ b/project-system/src/main/resources/mapper/system/SysDocMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.project.system.mapper.SysDocMapper">
+    
+    <resultMap type="SysDoc" id="SysDocResult">
+        <result property="docId"    column="doc_id"    />
+        <result property="docTitle"    column="doc_title"    />
+        <result property="docType"    column="doc_type"    />
+        <result property="docContent"    column="doc_content"    />
+        <result property="docStatus"    column="doc_status"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+        <result property="delFlag"    column="del_flag"    />
+    </resultMap>
+
+
+
+</mapper>
\ No newline at end of file
diff --git a/project-system/src/main/resources/mapper/system/SysUserMapper.xml b/project-system/src/main/resources/mapper/system/SysUserMapper.xml
index a28c496..f14ecff 100644
--- a/project-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/project-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -9,6 +9,7 @@
         <result property="deptId"       column="dept_id"      />
         <result property="userName"     column="user_name"    />
         <result property="nickName"     column="nick_name"    />
+        <result property="userType"     column="user_type"    />
         <result property="email"        column="email"        />
         <result property="phonenumber"  column="phonenumber"  />
         <result property="wxOpenid"  column="wx_openid"  />
@@ -52,7 +53,7 @@
     </resultMap>
 
 	<sql id="selectUserVo">
-        select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email,  u.phonenumber,u.wx_openid,u.sex, u.avatar,
+        select u.user_id, u.dept_id, u.user_name, u.nick_name,u.user_type, u.email,  u.phonenumber,u.wx_openid,u.sex, u.avatar,
                u.password, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.update_by, u.update_time,
                u.remark,u.birthday,u.province,u.city,u.area,
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
@@ -64,7 +65,7 @@
     </sql>
 
     <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
-		select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag,
+		select u.user_id, u.dept_id, u.nick_name, u.user_name,u.user_type, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag,
 		       u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,d.dept_name, d.leader
 		from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
@@ -157,6 +158,7 @@
  			<if test="deptId != null and deptId != 0">dept_id,</if>
  			<if test="userName != null and userName != ''">user_name,</if>
  			<if test="nickName != null and nickName != ''">nick_name,</if>
+ 			<if test="userType != null and userType != ''">user_type,</if>
  			<if test="email != null and email != ''">email,</if>
  			<if test="avatar != null and avatar != ''">avatar,</if>
  			<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
@@ -164,6 +166,7 @@
  			<if test="password != null and password != ''">password,</if>
  			<if test="status != null and status != ''">status,</if>
  			<if test="createBy != null and createBy != ''">create_by,</if>
+ 			<if test="recommendUser != null and recommendUser != ''">recommend_user,</if>
  			<if test="remark != null and remark != ''">remark,</if>
  			create_time
  		)values(
@@ -171,6 +174,7 @@
  			<if test="deptId != null and deptId != ''">#{deptId},</if>
  			<if test="userName != null and userName != ''">#{userName},</if>
  			<if test="nickName != null and nickName != ''">#{nickName},</if>
+			<if test="userType != null and userType != ''">#{userType},</if>
  			<if test="email != null and email != ''">#{email},</if>
  			<if test="avatar != null and avatar != ''">#{avatar},</if>
  			<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
@@ -178,6 +182,7 @@
  			<if test="password != null and password != ''">#{password},</if>
  			<if test="status != null and status != ''">#{status},</if>
  			<if test="createBy != null and createBy != ''">#{createBy},</if>
+			<if test="recommendUser != null and recommendUser != ''">#{recommendUser},</if>
  			<if test="remark != null and remark != ''">#{remark},</if>
  			sysdate()
  		)
@@ -189,6 +194,7 @@
  			<if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
  			<if test="userName != null and userName != ''">user_name = #{userName},</if>
  			<if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
+ 			<if test="userType != null and userType != ''">user_type = #{userType},</if>
  			<if test="email != null ">email = #{email},</if>
  			<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
  			<if test="sex != null and sex != ''">sex = #{sex},</if>
@@ -198,6 +204,7 @@
  			<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
  			<if test="loginDate != null">login_date = #{loginDate},</if>
  			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+ 			<if test="recommendUser != null and recommendUser != ''">recommend_user = #{recommendUser},</if>
  			<if test="remark != null">remark = #{remark},</if>
  			update_time = sysdate()
  		</set>
@@ -213,15 +220,15 @@
 	</update>
 
 	<update id="resetUserPwd" parameterType="SysUser">
- 		update sys_user set password = #{password}, remark = #{remark} where user_name = #{userName}
+ 		update sys_user set password = #{password}, recommend_user = #{recommendUser} where user_name = #{userName}
 	</update>
 
 	<delete id="deleteUserById" parameterType="Long">
- 		update sys_user set del_flag = '2' where user_id = #{userId}
+ 		update sys_user set del_flag = '1' where user_id = #{userId}
  	</delete>
 
  	<delete id="deleteUserByIds" parameterType="Long">
- 		update sys_user set del_flag = '2' where user_id in
+ 		update sys_user set del_flag = '1' where user_id in
  		<foreach collection="array" item="userId" open="(" separator="," close=")">
  			#{userId}
         </foreach>

--
Gitblit v1.9.1