From f3637227614f3f7efa372d827f4dafb7cc8a85bf Mon Sep 17 00:00:00 2001
From: 李林 <z1292839451@163.com>
Date: 星期四, 28 十二月 2023 11:24:12 +0800
Subject: [PATCH] 第二阶段

---
 framework/src/main/java/com/yuanchu/mom/annotation/ValueAuth.java                    |    9 +
 framework/src/main/java/com/yuanchu/mom/common/AllController.java                    |   56 ++++++
 framework/src/main/java/com/yuanchu/mom/mapper/AuthMapper.java                       |   28 +++
 system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java                   |    3 
 user-server/src/main/java/com/yuanchu/mom/dto/RolePowerDto.java                      |   22 ++
 framework/src/main/resources/AuthMapper.xml                                          |    5 
 user-server/src/main/resources/mapper/RoleMapper.xml                                 |    5 
 data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java    |   50 ++++-
 data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java                |    3 
 framework/src/main/java/com/yuanchu/mom/common/GetLook.java                          |   27 +++
 user-server/src/main/java/com/yuanchu/mom/mapper/RoleMapper.java                     |    8 
 framework/src/main/java/com/yuanchu/mom/annotation/ValueTableShow.java               |    2 
 framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java                     |    2 
 user-server/src/main/java/com/yuanchu/mom/service/imp/RoleServiceImp.java            |   49 +++++
 user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java            |    5 
 user-server/src/main/java/com/yuanchu/mom/controller/EnumController.java             |    4 
 user-server/src/main/java/com/yuanchu/mom/service/imp/ProductEnumServiceImpl.java    |    5 
 data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java          |    4 
 user-server/src/main/java/com/yuanchu/mom/service/imp/CustomEnumServiceImp.java      |    5 
 framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java          |    7 
 data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java |   22 ++
 framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java                        |    8 
 data-server/src/main/java/com/yuanchu/mom/dto/ProductCountDto.java                   |    3 
 user-server/src/main/java/com/yuanchu/mom/service/RoleService.java                   |    8 
 framework/src/main/java/com/yuanchu/mom/config/PowerConfig.java                      |   58 ++++++
 framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java                      |   16 -
 user-server/src/main/resources/mapper/UserMapper.xml                                 |    1 
 data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java            |   14 +
 data-server/src/main/resources/mapper/DataReportingMapper.xml                        |   35 +++
 data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java    |    5 
 user-server/src/main/java/com/yuanchu/mom/controller/UserController.java             |   15 +
 framework/src/main/java/com/yuanchu/mom/exception/ErrorException.java                |    9 +
 /dev/null                                                                            |    0 
 user-server/src/main/java/com/yuanchu/mom/controller/RoleController.java             |   43 ++++
 system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java                 |    2 
 35 files changed, 497 insertions(+), 41 deletions(-)

diff --git a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
index be9afb0..74b4779 100644
--- a/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
+++ b/data-server/src/main/java/com/yuanchu/mom/controller/DataReportingController.java
@@ -1,27 +1,24 @@
 package com.yuanchu.mom.controller;
 
-import cn.hutool.json.JSONObject;
-import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.annotation.ValueAuth;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.dto.DataReportingPageDto;
 import com.yuanchu.mom.dto.ProductCountDto;
 import com.yuanchu.mom.dto.RegistrantCountDto;
 import com.yuanchu.mom.pojo.DataReporting;
 import com.yuanchu.mom.pojo.FansSubmit;
+import com.yuanchu.mom.pojo.FinanceSubmit;
 import com.yuanchu.mom.service.DataReportingService;
 import com.yuanchu.mom.service.FansSubmitService;
-import com.yuanchu.mom.utils.JackSonUtil;
+import com.yuanchu.mom.service.FinanceSubmitService;
 import com.yuanchu.mom.vo.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import java.math.BigDecimal;
 import java.util.Map;
 
 @RequestMapping("/dataReporting")
@@ -34,12 +31,14 @@
 
     private FansSubmitService fansSubmitService;
 
+    private FinanceSubmitService financeSubmitService;
+
     @ApiOperation(value = "鑾峰彇鏁版嵁涓婃姤鍒楄〃")
     @PostMapping("/selectDataReportingList")
     public Result selectDataReportingList(@RequestBody Map<String, Object> data) {
         Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
         DataReportingPageDto dataReportingPageDto = JSON.parseObject(JSON.toJSONString(data.get("entity")), DataReportingPageDto.class);
-        return Result.success(dataReportingService.selectUserList(page, dataReportingPageDto));
+        return Result.success(dataReportingService.selectDataReportingList(page, dataReportingPageDto));
     }
 
     @ApiOperation(value = "淇敼鏁版嵁涓婃姤")
@@ -90,4 +89,37 @@
         return Result.success(fansSubmitService.addFansSubmit(fansSubmit));
     }
 
+    @ApiOperation(value = "鑾峰彇璐㈠姟涓婃姤鍒楄〃")
+    @PostMapping("/selectFinanceSubmitList")
+    public Result selectFinanceSubmitList(@RequestBody Map<String, Object> data) {
+        Page page = JSON.parseObject(JSON.toJSONString(data.get("page")), Page.class);
+        FinanceSubmit financeSubmit = JSON.parseObject(JSON.toJSONString(data.get("entity")), FinanceSubmit.class);
+        return Result.success(financeSubmitService.selectFinanceSubmitList(page, financeSubmit));
+    }
+
+    @ApiOperation(value = "鍒犻櫎璐㈠姟涓婃姤鍒楄〃")
+    @PostMapping("/delFinanceSubmit")
+    public Result delFinanceSubmit(Integer id){
+        return Result.success(financeSubmitService.delFinanceSubmit(id));
+    }
+
+    @ApiOperation(value = "淇敼璐㈠姟涓婃姤淇℃伅")
+    @PostMapping("/updateFinanceSubmit")
+    public Result<?> updateFinanceSubmit(@RequestBody FinanceSubmit financeSubmit) {
+        return Result.success(financeSubmitService.updateFinanceSubmit(financeSubmit));
+    }
+
+    @ApiOperation(value = "娣诲姞璐㈠姟涓婃姤淇℃伅")
+    @PostMapping("/addFinanceSubmit")
+    public Result<?> addFinanceSubmit(@RequestBody FinanceSubmit financeSubmit) {
+        return Result.success(financeSubmitService.addFinanceSubmit(financeSubmit));
+    }
+
+    @ApiOperation(value = "鑾峰彇棣栭〉鏁版嵁")
+    @GetMapping("/getDataList")
+    @ValueAuth
+    public Result<?> getDataList() {
+        return Result.success(dataReportingService.getDataList());
+    }
+
 }
diff --git a/data-server/src/main/java/com/yuanchu/mom/dto/ProductCountDto.java b/data-server/src/main/java/com/yuanchu/mom/dto/ProductCountDto.java
index 1a1cfee..08d40d0 100644
--- a/data-server/src/main/java/com/yuanchu/mom/dto/ProductCountDto.java
+++ b/data-server/src/main/java/com/yuanchu/mom/dto/ProductCountDto.java
@@ -41,4 +41,7 @@
     @ApiModelProperty("瀹㈡埛鎴愭湰")
     private BigDecimal customerCosts;
 
+    @ApiModelProperty("鍒涘缓鐢ㄦ埛")
+    private Integer createUser;
+
 }
diff --git a/data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java b/data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java
index f76e2be..64ae929 100644
--- a/data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java
+++ b/data-server/src/main/java/com/yuanchu/mom/dto/RegistrantCountDto.java
@@ -146,4 +146,7 @@
     @ValueTableShow(1)
     private LocalDateTime updateTime;
 
+    @ApiModelProperty("鍒涘缓鐢ㄦ埛")
+    private Integer createUser;
+
 }
diff --git a/data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java b/data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java
index a594ccb..ce4dc73 100644
--- a/data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java
+++ b/data-server/src/main/java/com/yuanchu/mom/mapper/DataReportingMapper.java
@@ -8,6 +8,10 @@
 import com.yuanchu.mom.pojo.DataReporting;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
 /**
 * @author Administrator
 * @description 閽堝琛ㄣ�恉ata_reporting(鏁版嵁涓婃姤)銆戠殑鏁版嵁搴撴搷浣淢apper
@@ -22,6 +26,16 @@
 
     IPage<RegistrantCountDto> selectRegistrantCountDtoPageList(IPage<RegistrantCountDto> page, QueryWrapper<RegistrantCountDto> ew);
 
+    Map<String, BigDecimal> getDataFor1();
+
+    List<Map<String, String>> getDataFor2();
+
+    List<Map<String, String>> getDataFor3();
+
+    List<Map<String, String>> getDataFor4();
+
+    List<Map<String, String>> getDataFor5();
+
 }
 
 
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
index f175a0b..9826b8d 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/DataReportingService.java
@@ -16,7 +16,7 @@
 */
 public interface DataReportingService extends IService<DataReporting> {
 
-    Map<String, Object> selectUserList(IPage<DataReportingPageDto> page, DataReportingPageDto dataReportingPageDto);
+    Map<String, Object> selectDataReportingList(IPage<DataReportingPageDto> page, DataReportingPageDto dataReportingPageDto);
 
     int updateDataReporting(DataReporting dataReporting);
 
@@ -24,4 +24,6 @@
 
     Map<String, Object> selectRegistrantCountDtoPageList(IPage<RegistrantCountDto> page, RegistrantCountDto registrantCountDto);
 
+    Map<String, Object> getDataList();
+
 }
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
index 508dd54..087b0df 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/DataReportingServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.dto.DataReportingPageDto;
 import com.yuanchu.mom.dto.ProductCountDto;
@@ -30,9 +31,13 @@
 
     private DataReportingMapper dataReportingMapper;
 
+    private GetLook getLook;
+
     @Override
-    public Map<String, Object> selectUserList(IPage<DataReportingPageDto> page, DataReportingPageDto dataReportingPageDto) {
+    public Map<String, Object> selectDataReportingList(IPage<DataReportingPageDto> page, DataReportingPageDto dataReportingPageDto) {
         Map<String, Object> map = new HashMap<>();
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDataReportingList");
+        if(map1.get("look")==1) dataReportingPageDto.setCreateUser(map1.get("userId"));
         map.put("head", PrintChina.printChina(DataReportingPageDto.class));
         map.put("body", dataReportingMapper.selectDataReportingDtoPageList(page, QueryWrappers.queryWrappers(dataReportingPageDto)));
         return map;
@@ -56,6 +61,8 @@
     public Map<String, Object> selectProductCountDtoPageList(IPage<ProductCountDto> page, ProductCountDto productCountDto) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(ProductCountDto.class));
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDataReportingList");
+        if(map1.get("look")==1) productCountDto.setCreateUser(map1.get("userId"));
         map.put("body", dataReportingMapper.selectProductCountDtoPageList(page, QueryWrappers.queryWrappers(productCountDto)));
         return map;
     }
@@ -64,9 +71,22 @@
     public Map<String, Object> selectRegistrantCountDtoPageList(IPage<RegistrantCountDto> page, RegistrantCountDto registrantCountDto) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(RegistrantCountDto.class));
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDataReportingList");
+        if(map1.get("look")==1) registrantCountDto.setCreateUser(map1.get("userId"));
         map.put("body", dataReportingMapper.selectRegistrantCountDtoPageList(page, QueryWrappers.queryWrappers(registrantCountDto)));
         return map;
     }
+
+    @Override
+    public Map<String, Object> getDataList() {
+        Map<String, Object> map = new HashMap<>();
+        map.put("data1", dataReportingMapper.getDataFor1());
+        map.put("data2", dataReportingMapper.getDataFor2());
+        map.put("data3", dataReportingMapper.getDataFor3());
+        map.put("data4", dataReportingMapper.getDataFor4());
+        map.put("data5", dataReportingMapper.getDataFor5());
+        return map;
+    }
 }
 
 
diff --git a/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java b/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java
index e1b3b37..94b0329 100644
--- a/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java
+++ b/data-server/src/main/java/com/yuanchu/mom/service/impl/FansSubmitServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.dto.DataReportingPageDto;
 import com.yuanchu.mom.pojo.FansSubmit;
@@ -26,10 +27,14 @@
 
     private FansSubmitMapper fansSubmitMapper;
 
+    private GetLook getLook;
+
     @Override
     public Map<String, Object> selectFansSubmitList(IPage<FansSubmit> page, FansSubmit fansSubmit) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(FansSubmit.class));
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDataReportingList");
+        if(map1.get("look")==1) fansSubmit.setCreateUser(map1.get("userId"));
         map.put("body", fansSubmitMapper.selectFansSubmitPageList(page, QueryWrappers.queryWrappers(fansSubmit)));
         return map;
     }
diff --git a/data-server/src/main/resources/mapper/DataReportingMapper.xml b/data-server/src/main/resources/mapper/DataReportingMapper.xml
index 2d5c698..5e626cc 100644
--- a/data-server/src/main/resources/mapper/DataReportingMapper.xml
+++ b/data-server/src/main/resources/mapper/DataReportingMapper.xml
@@ -43,7 +43,7 @@
     </select>
     <select id="selectProductCountDtoPageList" resultType="com.yuanchu.mom.dto.ProductCountDto">
         select * from (
-        select update_time, create_time, product, sum(consumption) consumption, sum(fans_add) fans_add, sum(customer_costs) customer_costs
+        select update_time, create_time, product, sum(consumption) consumption, sum(fans_add) fans_add, sum(customer_costs) customer_costs, create_user
         from data_reporting
         group by product
         ) a
@@ -53,7 +53,7 @@
     </select>
     <select id="selectRegistrantCountDtoPageList" resultType="com.yuanchu.mom.dto.RegistrantCountDto">
         select * from (
-        select id, department, registrant, product, name, sum(`show`) `show`, sum(click) click, sum(account_consumption)account_consumption, sum(rebate_consumption) rebate_consumption,(sum(rebate_consumption)+sum(remark)) rebate_consumption2, sum(discounted_consumption) discounted_consumption, sum(fans_add) fans_add, sum(actual_cost) actual_cost, sum(customer_costs) customer_costs, sum(profit) profit, sum(agent_rebate) agent_rebate, sum(customer_rebate) customer_rebate, sum(remark) remark, create_time, update_time
+        select id, department, registrant, product, name, sum(`show`) `show`, sum(click) click, sum(account_consumption)account_consumption, sum(rebate_consumption) rebate_consumption,(sum(rebate_consumption)+sum(remark)) rebate_consumption2, sum(discounted_consumption) discounted_consumption, sum(fans_add) fans_add, sum(actual_cost) actual_cost, sum(customer_costs) customer_costs, sum(profit) profit, sum(agent_rebate) agent_rebate, sum(customer_rebate) customer_rebate, sum(remark) remark, create_time, update_time, create_user
         from data_reporting
         group by registrant
         ) a
@@ -61,4 +61,35 @@
             ${ew.customSqlSegment}
         </if>
     </select>
+    <select id="getDataFor1" resultType="java.util.Map">
+        select COALESCE(sum(account_consumption), 0) data1, COALESCE(sum(consumption), 0) data2, COALESCE(sum(customer_costs),0) data3, COALESCE(sum(actual_cost), 0) data4
+        from data_reporting
+        where date(create_time) like CURDATE()
+    </select>
+    <select id="getDataFor2" resultType="java.util.Map">
+        SELECT sum(account_consumption) account_consumptions, DATE_FORMAT(create_time, '%m-%d') `date`, DATE_FORMAT(create_time, '%y-%m-%d') time
+        FROM data_reporting
+        group by DATE_FORMAT(create_time, '%y-%m-%d')
+        having DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt; time
+        and time &lt;= CURDATE()
+    </select>
+    <select id="getDataFor3" resultType="java.util.Map">
+        SELECT sum(consumption) consumption, DATE_FORMAT(create_time, '%m-%d') `date`, DATE_FORMAT(create_time, '%y-%m-%d') time
+        FROM data_reporting
+        group by DATE_FORMAT(create_time, '%y-%m-%d')
+        having DATE_SUB(CURDATE(), INTERVAL 7 DAY) &lt; time
+        and time &lt;= CURDATE()
+    </select>
+    <select id="getDataFor4" resultType="java.util.Map">
+        select product, sum(customer_costs) customerCosts
+        from data_reporting
+        group by product
+        order by customerCosts desc limit 7
+    </select>
+    <select id="getDataFor5" resultType="java.util.Map">
+        select product, sum(actual_cost) actualCost
+        from data_reporting
+        group by product
+        order by actualCost desc limit 7
+    </select>
 </mapper>
diff --git a/framework/src/main/java/com/yuanchu/mom/annotation/ValueAuth.java b/framework/src/main/java/com/yuanchu/mom/annotation/ValueAuth.java
new file mode 100644
index 0000000..7b8727d
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/annotation/ValueAuth.java
@@ -0,0 +1,9 @@
+package com.yuanchu.mom.annotation;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ValueAuth {
+
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/annotation/ValueTableShow.java b/framework/src/main/java/com/yuanchu/mom/annotation/ValueTableShow.java
index 7b892e9..6bf2458 100644
--- a/framework/src/main/java/com/yuanchu/mom/annotation/ValueTableShow.java
+++ b/framework/src/main/java/com/yuanchu/mom/annotation/ValueTableShow.java
@@ -6,6 +6,6 @@
 @Retention(RetentionPolicy.RUNTIME)
 public @interface ValueTableShow {
 
-    int value() default 0;
+    int value() default 1;
 
 }
diff --git a/framework/src/main/java/com/yuanchu/mom/common/AllController.java b/framework/src/main/java/com/yuanchu/mom/common/AllController.java
new file mode 100644
index 0000000..10176fc
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/common/AllController.java
@@ -0,0 +1,56 @@
+package com.yuanchu.mom.common;
+
+import com.yuanchu.mom.annotation.ValueAuth;
+import com.yuanchu.mom.mapper.AuthMapper;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
+import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.util.Map;
+
+@Component
+public class AllController {
+    @Resource
+    WebApplicationContext applicationContext;
+
+    @Resource
+    private AuthMapper authMapper;
+
+    public void addAllController() {
+        RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class);
+        Map<RequestMappingInfo, HandlerMethod> methodMap = mapping.getHandlerMethods();
+        authMapper.deletePower();
+        for (HandlerMethod value : methodMap.values()) {
+            ApiOperation annotation = value.getMethodAnnotation(ApiOperation.class);
+            ValueAuth valueAuth = value.getMethodAnnotation(ValueAuth.class);
+            if (valueAuth==null){
+                if (annotation != null) {
+                    String remark = annotation.value();
+                    String type = "淇敼";
+                    if (remark.contains("鑾峰彇")||remark.contains("鏌ヨ")){
+                        type = "鏌ヨ";
+                    } else if(remark.contains("鍒犻櫎")){
+                        type = "鍒犻櫎";
+                    } else if(remark.contains("娣诲姞")||remark.contains("鏂板")){
+                        type = "娣诲姞";
+                    }
+                    try {
+                        authMapper.insertPower(value.getMethod().getName(), remark, type);
+                    }catch (Exception e){
+                        System.err.println(value.getMethod());
+                    }
+                }
+            }
+        }
+    }
+
+    @PostConstruct
+    public void pingStart() {
+        addAllController();
+    }
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/common/GetLook.java b/framework/src/main/java/com/yuanchu/mom/common/GetLook.java
new file mode 100644
index 0000000..d7a263c
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/common/GetLook.java
@@ -0,0 +1,27 @@
+package com.yuanchu.mom.common;
+
+import cn.hutool.json.JSONUtil;
+import com.yuanchu.mom.mapper.AuthMapper;
+import com.yuanchu.mom.utils.Jwt;
+import com.yuanchu.mom.utils.ServletUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Component
+public class GetLook {
+
+    @Resource
+    private AuthMapper authMapper;
+
+    public Map<String, Integer> selectPowerByMethodAndUserId(String method){
+        Integer id = Integer.parseInt(JSONUtil.parseObj(new Jwt().readJWT(ServletUtils.getRequest().getHeader("token")).get("data")).get("id")+"");
+        Map<String, Integer> map = new HashMap<>();
+        map.put("userId", id);
+        map.put("look", authMapper.countPower(id, method));
+        return map;
+    }
+
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java b/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java
index bb90e50..3d0662c 100644
--- a/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java
+++ b/framework/src/main/java/com/yuanchu/mom/config/FiferConfig.java
@@ -25,8 +25,6 @@
     @Value("${server.port}")
     private String serverPort;
 
-    private static ThreadLocal<String> threadLocal = new ThreadLocal<>();
-
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         if (HttpMethod.OPTIONS.toString().equals(request.getMethod())) {
@@ -35,17 +33,17 @@
         }
         String[] strs = request.getRequestURL().toString().split(serverPort);
         AtomicBoolean judge = new AtomicBoolean(false);
-        list.forEach(a -> {
-            if (strs[1].equals(a)) {
+        for (String s : list) {
+            if (strs[1].equals(s)) {
                 judge.set(true);
-                return;
-            } else if (a.indexOf("/**") > -1) {
-                if (strs[1].indexOf(a.replace("/**", "")) == 0) {
+                break;
+            } else if (s.indexOf("/**") > -1) {
+                if (strs[1].indexOf(s.replace("/**", "")) == 0) {
                     judge.set(true);
-                    return;
+                    break;
                 }
             }
-        });
+        }
         if (judge.get()) return true;
         response.setContentType(MediaType.APPLICATION_JSON_VALUE);
         response.setCharacterEncoding("UTF-8");
diff --git a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
index 782ed57..d9e0358 100644
--- a/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
+++ b/framework/src/main/java/com/yuanchu/mom/config/OpenFifer.java
@@ -5,15 +5,21 @@
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
 
+import javax.annotation.Resource;
+
 @Configuration
 public class OpenFifer extends WebMvcConfigurationSupport {
 
-    @Autowired
+    @Resource
     private FiferConfig fiferConfig;
+
+    @Resource
+    private PowerConfig powerConfig;
 
     @Override
     protected void addInterceptors(InterceptorRegistry registry) {
         registry.addInterceptor(fiferConfig).addPathPatterns("/**");
+        registry.addInterceptor(powerConfig).addPathPatterns("/**");
         super.addInterceptors(registry);
     }
 }
diff --git a/framework/src/main/java/com/yuanchu/mom/config/PowerConfig.java b/framework/src/main/java/com/yuanchu/mom/config/PowerConfig.java
new file mode 100644
index 0000000..2018aef
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/config/PowerConfig.java
@@ -0,0 +1,58 @@
+package com.yuanchu.mom.config;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.yuanchu.mom.annotation.ValueAuth;
+import com.yuanchu.mom.exception.ErrorException;
+import com.yuanchu.mom.exception.MyFileException;
+import com.yuanchu.mom.mapper.AuthMapper;
+import com.yuanchu.mom.utils.JackSonUtil;
+import com.yuanchu.mom.utils.Jwt;
+import com.yuanchu.mom.utils.ServletUtils;
+import org.apache.catalina.User;
+import org.springframework.stereotype.Component;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Map;
+
+@Component
+public class PowerConfig implements HandlerInterceptor {
+
+    @Resource
+    private AuthMapper authMapper;
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        if(handler instanceof HandlerMethod) {
+            HandlerMethod h = (HandlerMethod)handler;
+            ValueAuth annotation = h.getMethodAnnotation(ValueAuth.class);
+            if(annotation!=null){
+                return HandlerInterceptor.super.preHandle(request, response, handler);
+            }
+            JSONObject obj = JSONUtil.parseObj(new Jwt().readJWT(request.getHeader("token")).get("data"));
+            Integer userId = Integer.parseInt(obj.get("id") + "");
+            int i = authMapper.isPower(userId, h.getMethod().getName());
+
+            if (i == 0){
+                throw new ErrorException(obj.get("name") + " 鏃犳潈闄愯闂� " + h.getMethod().getName() + " 鎺ュ彛");
+            }
+        }
+        return HandlerInterceptor.super.preHandle(request, response, handler);
+    }
+
+    @Override
+    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+        HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
+    }
+
+    @Override
+    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+        HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
+    }
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/exception/ErrorException.java b/framework/src/main/java/com/yuanchu/mom/exception/ErrorException.java
new file mode 100644
index 0000000..5317716
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/exception/ErrorException.java
@@ -0,0 +1,9 @@
+package com.yuanchu.mom.exception;
+
+public class ErrorException extends RuntimeException{
+
+    public ErrorException(String msg){
+        super(msg);
+    }
+
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java b/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java
index fe92f7e..7d8679b 100644
--- a/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java
+++ b/framework/src/main/java/com/yuanchu/mom/handler/GlobalExceptionHandler.java
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.handler;
 
+import com.yuanchu.mom.exception.ErrorException;
 import com.yuanchu.mom.exception.MyFileException;
 import com.yuanchu.mom.vo.Result;
 import lombok.extern.slf4j.Slf4j;
@@ -264,6 +265,12 @@
         return Result.fail("鎶辨瓑涓嶆敮鎸併��" + e.getMessage() +"銆戝悗缂�鐨勬枃浠讹紒");
     }
 
+    @ExceptionHandler({ErrorException.class})
+    public Result<?> errorException(Exception e) {
+        log.error(e.getMessage());
+        return Result.fail(e.getMessage());
+    }
+
     /** 鍏朵粬閿欒 */
     /**
      * 鍏朵粬閿欒
diff --git a/framework/src/main/java/com/yuanchu/mom/mapper/AuthMapper.java b/framework/src/main/java/com/yuanchu/mom/mapper/AuthMapper.java
new file mode 100644
index 0000000..8a3a9a6
--- /dev/null
+++ b/framework/src/main/java/com/yuanchu/mom/mapper/AuthMapper.java
@@ -0,0 +1,28 @@
+package com.yuanchu.mom.mapper;
+
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+import org.springframework.stereotype.Repository;
+
+import java.util.Map;
+
+@Mapper
+@Repository
+public interface AuthMapper {
+
+    @Insert("insert menu value (#{method}, #{remark}, #{type}, now())")
+    int insertPower(String method, String remark, String type);
+
+
+    @Delete("delete from menu")
+    int deletePower();
+
+    @Select("select COALESCE(count(*), 0) from power p left join user u on u.role_id = p.role_id where u.id = #{userId} and p.menu_method = #{method}")
+    int isPower(Integer userId, String method);
+
+    @Select("select look from power p left join user u on u.role_id = p.role_id where u.id = #{userId} and p.menu_method = #{method}")
+    int countPower(Integer userId, String method);
+
+}
diff --git a/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java b/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java
index d61f0ca..b9b34a0 100644
--- a/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java
+++ b/framework/src/main/java/com/yuanchu/mom/utils/QueryWrappers.java
@@ -61,7 +61,7 @@
                 }
             }
         }
-        System.out.println(wrapper.getExpression().getSqlSegment());
+//        System.out.println(wrapper.getExpression().getSqlSegment());
         return wrapper;
     }
 
diff --git a/framework/src/main/resources/AuthMapper.xml b/framework/src/main/resources/AuthMapper.xml
new file mode 100644
index 0000000..5973ddb
--- /dev/null
+++ b/framework/src/main/resources/AuthMapper.xml
@@ -0,0 +1,5 @@
+<?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.yuanchu.mom.mapper.AuthMapper">
+
+</mapper>
\ No newline at end of file
diff --git a/shengyun_2023_12_23_2300.sql b/shengyun_2023_12_23_2300.sql
deleted file mode 100644
index e69de29..0000000
--- a/shengyun_2023_12_23_2300.sql
+++ /dev/null
diff --git a/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java b/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java
index e38aeea..3e4c5e5 100644
--- a/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java
+++ b/system-run/src/main/java/com/yuanchu/mom/SystemRunApplication.java
@@ -1,10 +1,13 @@
 package com.yuanchu.mom;
 
+import com.yuanchu.mom.common.AllController;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.AutoConfiguration;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
+import javax.annotation.Resource;
+
 @SpringBootApplication
 @MapperScan("com.yuanchu.mom.mapper")// 鎵弿Mybatis涓殑mapper鍖�
 public class SystemRunApplication {
diff --git a/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java b/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java
index af60537..aafc809 100644
--- a/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java
+++ b/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java
@@ -149,7 +149,7 @@
      * 姣忓ぉ鏅氫笂23鐐�0鍒�10绉掓墽琛� 銆�  0 0 4 1/1 * ? 銆�
      * 娴嬭瘯 20 绉掍竴娆°��  0/20 * * * * ? 銆�
      */
-    @Scheduled(cron = "6 0 23 * * ?")
+//    @Scheduled(cron = "6 0 23 * * ?")
     private void TimerDeleteFile(){
         Date date = new Date();
         SimpleDateFormat sdf = new SimpleDateFormat("d");
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/EnumController.java b/user-server/src/main/java/com/yuanchu/mom/controller/EnumController.java
index 1634464..c6e21c4 100644
--- a/user-server/src/main/java/com/yuanchu/mom/controller/EnumController.java
+++ b/user-server/src/main/java/com/yuanchu/mom/controller/EnumController.java
@@ -44,13 +44,13 @@
 
     @ApiOperation(value = "鍒犻櫎瀹㈡埛鍒楄〃")
     @PostMapping("/delCustomEnum")
-    public Result delRole(Integer id){
+    public Result delCustomEnum(Integer id){
         return Result.success(customEnumService.delCustomEnum(id));
     }
 
     @ApiOperation(value = "淇敼瀹㈡埛淇℃伅")
     @PostMapping("/updateCustomEnum")
-    public Result<?> updateUser(@RequestBody CustomEnum customEnum) {
+    public Result<?> updateCustomEnum(@RequestBody CustomEnum customEnum) {
         return Result.success(customEnumService.updateCustomEnum(customEnum));
     }
 
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/RoleController.java b/user-server/src/main/java/com/yuanchu/mom/controller/RoleController.java
index 4142e36..b6233db 100644
--- a/user-server/src/main/java/com/yuanchu/mom/controller/RoleController.java
+++ b/user-server/src/main/java/com/yuanchu/mom/controller/RoleController.java
@@ -1,10 +1,18 @@
 package com.yuanchu.mom.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.annotation.ValueAuth;
+import com.yuanchu.mom.common.GetLook;
+import com.yuanchu.mom.dto.RolePowerDto;
 import com.yuanchu.mom.dto.UserPageDto;
+import com.yuanchu.mom.mapper.AuthMapper;
+import com.yuanchu.mom.mapper.PowerMapper;
 import com.yuanchu.mom.pojo.CustomEnum;
+import com.yuanchu.mom.pojo.Power;
 import com.yuanchu.mom.pojo.Role;
 import com.yuanchu.mom.pojo.User;
+import com.yuanchu.mom.service.PowerService;
 import com.yuanchu.mom.service.RoleService;
 import com.yuanchu.mom.service.UserService;
 import com.yuanchu.mom.utils.JackSonUtil;
@@ -14,10 +22,12 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.apache.ibatis.annotations.ResultType;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @RequestMapping("/role")
@@ -28,16 +38,18 @@
 
     private RoleService roleService;
 
+    private PowerService powerService;
+
     @ApiOperation(value = "鑾峰彇瑙掕壊鍒楄〃鏋氫妇")
     @GetMapping("/selectRoleList")
-    public Result selectUserList(){
+    public Result selectRoleList(){
         return Result.success(roleService.selectList());
     }
 
 
     @ApiOperation(value = "鑾峰彇瑙掕壊鍒楄〃")
     @PostMapping("/selectRoleLists")
-    public Result selectRoleList(@RequestBody Map<String, Object> data) throws Exception {
+    public Result selectRoleLists(@RequestBody Map<String, Object> data) throws Exception {
         Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
         Role role = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), Role.class);
         return Result.success(roleService.selectUserList(page, role));
@@ -49,9 +61,30 @@
         return Result.success(roleService.delRole(id));
     }
 
-    @ApiOperation(value = "娣诲姞瑙掕壊淇℃伅")
+    @ApiOperation(value = "閫氳繃瑙掕壊id鏌ヨ鏉冮檺鍒楄〃")
+    @PostMapping("/selectPowerByRoleId")
+    public Result<?> selectPowerByRoleId(Integer id) {
+        return Result.success(powerService.selectPowerByRoleId(id));
+    }
+
+    @ApiOperation(value = "鑾峰彇鑿滃崟")
+    @GetMapping("/selectMenuList")
+    @ValueAuth
+    public Result<?> selectMenuList() {
+        return Result.success(roleService.selectMenuList());
+    }
+
+    @ApiOperation(value = "娣诲姞瑙掕壊")
     @PostMapping("/addRole")
-    public Result<?> addRole(@RequestBody Role role) {
-        return Result.success(roleService.addRole(role));
+    public Result<?> addRole(String str) {
+        RolePowerDto powers = JSON.parseObject(str, RolePowerDto.class);
+        return Result.success(roleService.addRole(powers));
+    }
+
+    @ApiOperation(value = "淇敼瑙掕壊淇℃伅")
+    @PostMapping("/upRole")
+    public Result<?> upRole(String str) {
+        RolePowerDto powers = JSON.parseObject(str, RolePowerDto.class);
+        return Result.success(roleService.upRole(powers));
     }
 }
diff --git a/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java b/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java
index c9a93bc..450cfe9 100644
--- a/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java
+++ b/user-server/src/main/java/com/yuanchu/mom/controller/UserController.java
@@ -4,9 +4,11 @@
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.annotation.ValueAuth;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.dto.UserPageDto;
 import com.yuanchu.mom.pojo.User;
+import com.yuanchu.mom.service.PowerService;
 import com.yuanchu.mom.service.UserService;
 import com.yuanchu.mom.utils.JackSonUtil;
 import com.yuanchu.mom.utils.Jwt;
@@ -15,6 +17,7 @@
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.DigestUtils;
 import org.springframework.validation.annotation.Validated;
@@ -26,16 +29,18 @@
 @RequestMapping("/user")
 @RestController
 @Api(tags = "鐢ㄦ埛妯″潡")
+@AllArgsConstructor
 public class UserController {
 
-    @Autowired
-    UserService userService;
+    private UserService userService;
 
-    @Autowired
+    private PowerService powerService;
+
     private Jwt jwt;
 
     @ApiOperation(value = "鐧诲綍")
     @PostMapping("/enter")
+    @ValueAuth
     public Result login(String account, String password) {
         User user = userService.selectUserByPwd(account, password);
         if (user == null) return Result.fail("鐧诲綍澶辫触");
@@ -43,15 +48,17 @@
         String jwtReToken = jwt.createJwt(user.getName(), user.getId(), 24 * 60);
         RedisUtil.set("" + user.getId(), jwtToken, 60);
         RedisUtil.set(user.getId() + "Re", jwtReToken, 24 * 60);
-        Map<String, String> map = new HashMap<>();
+        Map<String, Object> map = new HashMap<>();
         map.put("token", jwtToken);
         map.put("reToken", jwtReToken);
         map.put("name", user.getName());
+        map.put("power", powerService.selectPowerByRoleId(user.getRoleId()));
         return Result.success("鐧诲綍鎴愬姛", map);
     }
 
     @ApiOperation(value = "token鍒锋柊")
     @PostMapping("/refresh")
+    @ValueAuth
     public Result refresh(String reToken) throws Exception {
         Map<String, String> map = new Jwt().readJWT(reToken);
         Map<String, String> maps = JackSonUtil.unmarshal(map.get("data"), Map.class);
diff --git a/user-server/src/main/java/com/yuanchu/mom/dto/RolePowerDto.java b/user-server/src/main/java/com/yuanchu/mom/dto/RolePowerDto.java
new file mode 100644
index 0000000..b8ef27e
--- /dev/null
+++ b/user-server/src/main/java/com/yuanchu/mom/dto/RolePowerDto.java
@@ -0,0 +1,22 @@
+package com.yuanchu.mom.dto;
+
+import com.yuanchu.mom.pojo.Power;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RolePowerDto implements Serializable {
+
+    private Integer roleId2;
+
+    private String roleName;
+
+    private List<Power> powers;
+
+}
diff --git a/user-server/src/main/java/com/yuanchu/mom/mapper/RoleMapper.java b/user-server/src/main/java/com/yuanchu/mom/mapper/RoleMapper.java
index 86307a5..7c405a0 100644
--- a/user-server/src/main/java/com/yuanchu/mom/mapper/RoleMapper.java
+++ b/user-server/src/main/java/com/yuanchu/mom/mapper/RoleMapper.java
@@ -1,12 +1,20 @@
 package com.yuanchu.mom.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.mom.pojo.Menu;
+import com.yuanchu.mom.pojo.Power;
 import com.yuanchu.mom.pojo.Role;
 import org.apache.ibatis.annotations.Mapper;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 @Mapper
 @Repository
 public interface RoleMapper extends BaseMapper<Role> {
 
+    List<Menu> selectMenuList();
+
+    int addPower(Power power);
+
 }
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/RoleService.java b/user-server/src/main/java/com/yuanchu/mom/service/RoleService.java
index 41e8a3b..bd39cc0 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/RoleService.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/RoleService.java
@@ -1,7 +1,9 @@
 package com.yuanchu.mom.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yuanchu.mom.dto.RolePowerDto;
 import com.yuanchu.mom.dto.UserPageDto;
+import com.yuanchu.mom.pojo.Menu;
 import com.yuanchu.mom.pojo.Role;
 import com.yuanchu.mom.pojo.User;
 
@@ -16,6 +18,10 @@
 
     int delRole(Integer id);
 
-    int addRole(Role role);
+    int addRole(RolePowerDto rolePowerDto);
+
+    List<Menu> selectMenuList();
+
+    int upRole(RolePowerDto rolePowerDto);
 
 }
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/imp/CustomEnumServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/imp/CustomEnumServiceImp.java
index eb01451..6419394 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/imp/CustomEnumServiceImp.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/imp/CustomEnumServiceImp.java
@@ -1,6 +1,7 @@
 package com.yuanchu.mom.service.imp;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.mapper.CustomEnumMapper;
 import com.yuanchu.mom.pojo.CustomEnum;
@@ -20,10 +21,14 @@
 
     private CustomEnumMapper customEnumMapper;
 
+    private GetLook getLook;
+
     @Override
     public Map<String, Object> selectCustomEnumList(IPage<CustomEnum> page, CustomEnum customEnum) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(CustomEnum.class));
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDataReportingList");
+        if(map1.get("look")==1) customEnum.setCreateUser(map1.get("userId"));
         map.put("body", customEnumMapper.selectPage(page, QueryWrappers.queryWrappers(customEnum)));
         return map;
     }
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/imp/ProductEnumServiceImpl.java b/user-server/src/main/java/com/yuanchu/mom/service/imp/ProductEnumServiceImpl.java
index fb9bfa4..363746a 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/imp/ProductEnumServiceImpl.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/imp/ProductEnumServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.mapper.ProductEnumMapper;
 import com.yuanchu.mom.pojo.ProductEnum;
@@ -28,10 +29,14 @@
 
     private ProductEnumMapper productEnumMapper;
 
+    private GetLook getLook;
+
     @Override
     public Map<String, Object> selectProductEnumList(IPage<ProductEnum> page, ProductEnum productEnum) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(ProductEnum.class));
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDataReportingList");
+        if(map1.get("look")==1) productEnum.setCreateUser(map1.get("userId"));
         map.put("body", productEnumMapper.selectPage(page, QueryWrappers.queryWrappers(productEnum)));
         return map;
     }
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/imp/RoleServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/imp/RoleServiceImp.java
index 307ae3e..1017636 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/imp/RoleServiceImp.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/imp/RoleServiceImp.java
@@ -2,10 +2,16 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
+import com.yuanchu.mom.dto.RolePowerDto;
 import com.yuanchu.mom.dto.UserPageDto;
+import com.yuanchu.mom.mapper.PowerMapper;
 import com.yuanchu.mom.mapper.RoleMapper;
 import com.yuanchu.mom.mapper.UserMapper;
+import com.yuanchu.mom.pojo.Menu;
+import com.yuanchu.mom.pojo.Power;
 import com.yuanchu.mom.pojo.Role;
 import com.yuanchu.mom.pojo.User;
 import com.yuanchu.mom.service.RoleService;
@@ -14,6 +20,7 @@
 import com.yuanchu.mom.utils.QueryWrappers;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.DigestUtils;
 
 import java.util.HashMap;
@@ -26,6 +33,10 @@
 
     private RoleMapper roleMapper;
 
+    private PowerMapper powerMapper;
+
+    private GetLook getLook;
+
     @Override
     public List<Role> selectList() {
         return roleMapper.selectList(null);
@@ -35,6 +46,8 @@
     public Map<String, Object> selectUserList(IPage<Role> page, Role role) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(Role.class));
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDataReportingList");
+        if(map1.get("look")==1) role.setCreateUser(map1.get("userId"));
         map.put("body", roleMapper.selectPage(page, QueryWrappers.queryWrappers(role)));
         return map;
     }
@@ -45,7 +58,39 @@
     }
 
     @Override
-    public int addRole(Role role) {
-        return roleMapper.insert(role);
+    @Transactional(rollbackFor = Exception.class)
+    public int addRole(RolePowerDto rolePowerDto) {
+        Role role = new Role();
+        role.setName(rolePowerDto.getRoleName());
+        int insert = roleMapper.insert(role);
+        if (insert == 1){
+            rolePowerDto.getPowers().forEach(a->{
+                a.setRoleId(role.getId());
+                powerMapper.insert(a);
+            });
+        }
+        return 1;
+    }
+
+    @Override
+    public List<Menu> selectMenuList() {
+        return roleMapper.selectMenuList();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int upRole(RolePowerDto rolePowerDto) {
+        Role role = new Role();
+        role.setName(rolePowerDto.getRoleName());
+        role.setId(rolePowerDto.getRoleId2());
+        int up = roleMapper.updateById(role);
+        if (up == 1){
+            powerMapper.delete(Wrappers.<Power>lambdaUpdate().eq(Power::getRoleId, role.getId()));
+            rolePowerDto.getPowers().forEach(a->{
+                a.setRoleId(role.getId());
+                powerMapper.insert(a);
+            });
+        }
+        return 1;
     }
 }
diff --git a/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java b/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java
index 1ef4784..648cad0 100644
--- a/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java
+++ b/user-server/src/main/java/com/yuanchu/mom/service/imp/UserServiceImp.java
@@ -7,6 +7,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yuanchu.mom.common.GetLook;
 import com.yuanchu.mom.common.PrintChina;
 import com.yuanchu.mom.dto.UserPageDto;
 import com.yuanchu.mom.mapper.UserMapper;
@@ -33,6 +34,8 @@
 
     Jwt jwt;
 
+    private GetLook getLook;
+
     @Override
     public User selectUserByPwd(String account, String password) {
         QueryWrapper<User> wrapper = new QueryWrapper<>();
@@ -52,6 +55,8 @@
     public Map<String, Object> selectUserList(IPage<UserPageDto> page, UserPageDto user) {
         Map<String, Object> map = new HashMap<>();
         map.put("head", PrintChina.printChina(UserPageDto.class));
+        Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId("selectDataReportingList");
+        if(map1.get("look")==1) user.setCreateUser(map1.get("userId"));
         map.put("body", userMapper.selectUserDtoPageList(page, QueryWrappers.queryWrappers(user)));
         return map;
     }
diff --git a/user-server/src/main/resources/mapper/RoleMapper.xml b/user-server/src/main/resources/mapper/RoleMapper.xml
index 82c0ab5..e5b1926 100644
--- a/user-server/src/main/resources/mapper/RoleMapper.xml
+++ b/user-server/src/main/resources/mapper/RoleMapper.xml
@@ -1,5 +1,10 @@
 <?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.yuanchu.mom.mapper.RoleMapper">
+    <insert id="addPower">
 
+    </insert>
+    <select id="selectMenuList" resultType="com.yuanchu.mom.pojo.Menu">
+        select method,remark,type from menu
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/user-server/src/main/resources/mapper/UserMapper.xml b/user-server/src/main/resources/mapper/UserMapper.xml
index 8dc3b9d..b51610f 100644
--- a/user-server/src/main/resources/mapper/UserMapper.xml
+++ b/user-server/src/main/resources/mapper/UserMapper.xml
@@ -1,7 +1,6 @@
 <?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.yuanchu.mom.mapper.UserMapper">
-
     <select id="selectUserDtoPageList" resultType="com.yuanchu.mom.dto.UserPageDto">
         select * from (
             select u1.id, u1.account, u1.name, u1.state, u1.create_time, u1.update_time, u1.create_user, u1.update_user, u1.age, u1.email, u1.phone, u1.department, u1.company, u1.role_id, u2.name create_user_name, u3.name update_user_name, r.name role_name

--
Gitblit v1.9.3