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) < time + and time <= 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) < time + and time <= 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