From e42e414c4dd5e844908a2062c8b2c563ba7aff24 Mon Sep 17 00:00:00 2001 From: Rui_Li <877258667@qq.com> Date: Mon, 18 Apr 2022 17:31:39 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=20=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/controller/ReportController.java | 50 +++++++++++++++++ .../gaotao/modules/report/dao/ReportDao.java | 37 +++++++++++++ .../report/dao/impl/ReportDaoImpl.java | 44 +++++++++++++++ .../report/data/CustomerReportRoleData.java | 51 +++++++++++++++++ .../modules/report/service/ReportService.java | 28 ++++++++++ .../service/impl/ReportServiceImpl.java | 55 +++++++++++++++++-- 6 files changed, 261 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/gaotao/modules/report/data/CustomerReportRoleData.java diff --git a/src/main/java/com/gaotao/modules/report/controller/ReportController.java b/src/main/java/com/gaotao/modules/report/controller/ReportController.java index 39ff8dc..de6d56f 100644 --- a/src/main/java/com/gaotao/modules/report/controller/ReportController.java +++ b/src/main/java/com/gaotao/modules/report/controller/ReportController.java @@ -2,6 +2,7 @@ package com.gaotao.modules.report.controller; import com.gaotao.common.utils.R; import com.gaotao.modules.report.data.CustomerReportData; +import com.gaotao.modules.report.data.CustomerReportRoleData; import com.gaotao.modules.report.data.CustomerSearchColumnData; import com.gaotao.modules.report.data.SearchReportData; import com.gaotao.modules.report.service.ReportService; @@ -198,6 +199,55 @@ public class ReportController { .put("msg", "操作成功!"); } + /** + * @Author LR + * @Description 获取需要授权的角色 + * @DateTime 2022/4/18 15:08 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "getAuthRoles") + public R getAuthRoles(@RequestBody SearchReportData inData){ + List resultList = reportService.getAuthRoles(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!") + .put("rows", resultList) + .put("total", resultList.size()); + } + + + /** + * @Author LR + * @Description 保存单个报表的权限数据 + * @DateTime 2022/4/18 15:42 + * @Param [inMap] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "saveAuthSingleCustomerReport") + public R saveAuthSingleCustomerReport(@RequestBody Map inMap){ + reportService.saveAuthSingleCustomerReport(inMap); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!"); + } + + /** + * @Author LR + * @Description 获取用户的定制报表信息 + * @DateTime 2022/4/18 16:32 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "getUserCustomerReportList") + public R getUserCustomerReportList(@RequestBody SearchReportData inData){ + List resultList = reportService.getUserCustomerReportList(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!") + .put("rows", resultList) + .put("total", resultList.size()); + } diff --git a/src/main/java/com/gaotao/modules/report/dao/ReportDao.java b/src/main/java/com/gaotao/modules/report/dao/ReportDao.java index 821732d..91739d8 100644 --- a/src/main/java/com/gaotao/modules/report/dao/ReportDao.java +++ b/src/main/java/com/gaotao/modules/report/dao/ReportDao.java @@ -1,6 +1,7 @@ package com.gaotao.modules.report.dao; import com.gaotao.modules.report.data.CustomerReportData; +import com.gaotao.modules.report.data.CustomerReportRoleData; import com.gaotao.modules.report.data.CustomerSearchColumnData; import com.gaotao.modules.report.data.SearchReportData; @@ -129,4 +130,40 @@ public interface ReportDao { * @return void **/ void deleteCustomerReportByReportId(String reportId); + + /** + * @Author LR + * @Description 获取需要授权的角色 + * @DateTime 2022/4/18 15:10 + * @Param [inData] + * @return java.util.List + **/ + List getAuthRoles(String reportId); + + /** + * @Author LR + * @Description 删除以前报表的权限 + * @DateTime 2022/4/18 16:07 + * @Param [reportId] + * @return void + **/ + void deleteCustomerReportRoleByReportId(String reportId); + + /** + * @Author LR + * @Description 批量新增报表的权限 + * @DateTime 2022/4/18 16:08 + * @Param [saveAuthRoles] + * @return void + **/ + void batchInsertCustomerReportRoles(List saveAuthRoles); + + /** + * @Author LR + * @Description 获取用户的定制报表信息 + * @DateTime 2022/4/18 16:35 + * @Param [site, username] + * @return java.util.List + **/ + List getUserCustomerReportList(String site, String username); } diff --git a/src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java b/src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java index d140b40..ce89305 100644 --- a/src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java +++ b/src/main/java/com/gaotao/modules/report/dao/impl/ReportDaoImpl.java @@ -2,6 +2,7 @@ package com.gaotao.modules.report.dao.impl; import com.gaotao.modules.report.dao.ReportDao; import com.gaotao.modules.report.data.CustomerReportData; +import com.gaotao.modules.report.data.CustomerReportRoleData; import com.gaotao.modules.report.data.CustomerSearchColumnData; import com.gaotao.modules.report.data.SearchReportData; import org.springframework.beans.factory.annotation.Autowired; @@ -174,5 +175,48 @@ public class ReportDaoImpl implements ReportDao { parameterJdbcTemplate.update(sql.toString(), paramMap); } + @Override + public List getAuthRoles(String reportId) { + StringBuilder sql = new StringBuilder(); + Map paramMap = new HashMap<>(); + sql.append("SELECT crr.site, sr.role_id, sr.role_name, crr.report_id, (CASE WHEN crr.report_id IS NULL THEN 'N' ELSE 'Y' END) checkedFlag"); + sql.append(" FROM sys_role sr"); + sql.append(" LEFT JOIN customer_report_role crr ON crr.role_id = sr.role_id AND crr.report_id = :reportId"); + paramMap.put("reportId", reportId); + return parameterJdbcTemplate.query(sql.toString(), paramMap, new BeanPropertyRowMapper<>(CustomerReportRoleData.class)); + } + + @Override + public void deleteCustomerReportRoleByReportId(String reportId) { + StringBuilder sql = new StringBuilder(); + Map paramMap = new HashMap<>(); + sql.append("DELETE FROM customer_report_role WHERE report_id = :reportId"); + paramMap.put("reportId", reportId); + parameterJdbcTemplate.update(sql.toString(), paramMap); + } + + @Override + public void batchInsertCustomerReportRoles(List saveAuthRoles) { + StringBuilder sql = new StringBuilder(); + sql.append("INSERT INTO customer_report_role(site, role_id, report_id, created_by, created_date)"); + sql.append(" VALUES(:site, :roleId, :reportId, :createdBy, :createdDate)"); + parameterJdbcTemplate.batchUpdate(sql.toString(), SqlParameterSourceUtils.createBatch(saveAuthRoles.toArray())); + } + + @Override + public List getUserCustomerReportList(String site, String username) { + StringBuilder sql = new StringBuilder(); + Map paramMap = new HashMap<>(); + sql.append("SELECT DISTINCT crh.id, crh.site, crh.report_id, crh.report_name, crh.report_type, crh.report_sql, crh.report_remark, crh.report_status,"); + sql.append(" crh.sort_no, crh.created_by, crh.created_date, crh.updated_by, crh.updated_date FROM customer_report_header crh"); + sql.append(" LEFT JOIN customer_report_role crr ON crr.site = crh.site AND crr.report_id = crh.report_id"); + sql.append(" LEFT JOIN sys_user_role sur ON sur.role_id = crr.role_id"); + sql.append(" LEFT JOIN sys_user su ON su.user_id = sur.user_id"); + sql.append(" WHERE crh.site = :site AND su.username = :username"); + paramMap.put("site", site); + paramMap.put("username", username); + return parameterJdbcTemplate.query(sql.toString(), paramMap, new BeanPropertyRowMapper<>(CustomerReportData.class)); + } + } diff --git a/src/main/java/com/gaotao/modules/report/data/CustomerReportRoleData.java b/src/main/java/com/gaotao/modules/report/data/CustomerReportRoleData.java new file mode 100644 index 0000000..8364f59 --- /dev/null +++ b/src/main/java/com/gaotao/modules/report/data/CustomerReportRoleData.java @@ -0,0 +1,51 @@ +package com.gaotao.modules.report.data; + +import com.gaotao.modules.schedule.data.BaseData; +import org.apache.ibatis.type.Alias; + +/** + * @author LR + * @date 2022/4/13 14:48 + */ +@Alias("CustomerReportRoleData") +public class CustomerReportRoleData extends BaseData { + private String reportId;// + private String roleId;// + private String roleName;// + private String checkedFlag;// + + public CustomerReportRoleData() { + } + + public String getReportId() { + return reportId; + } + + public void setReportId(String reportId) { + this.reportId = reportId; + } + + public String getRoleId() { + return roleId; + } + + public void setRoleId(String roleId) { + this.roleId = roleId; + } + + public String getRoleName() { + return roleName; + } + + public void setRoleName(String roleName) { + this.roleName = roleName; + } + + public String getCheckedFlag() { + return checkedFlag; + } + + public void setCheckedFlag(String checkedFlag) { + this.checkedFlag = checkedFlag; + } +} \ No newline at end of file diff --git a/src/main/java/com/gaotao/modules/report/service/ReportService.java b/src/main/java/com/gaotao/modules/report/service/ReportService.java index d4d5512..2a17a82 100644 --- a/src/main/java/com/gaotao/modules/report/service/ReportService.java +++ b/src/main/java/com/gaotao/modules/report/service/ReportService.java @@ -1,6 +1,7 @@ package com.gaotao.modules.report.service; import com.gaotao.modules.report.data.CustomerReportData; +import com.gaotao.modules.report.data.CustomerReportRoleData; import com.gaotao.modules.report.data.CustomerSearchColumnData; import com.gaotao.modules.report.data.SearchReportData; @@ -111,4 +112,31 @@ public interface ReportService { * @return void **/ void deleteCustomerReportSearchColumn(CustomerSearchColumnData inData); + + /** + * @Author LR + * @Description 获取需要授权的角色 + * @DateTime 2022/4/18 15:09 + * @Param [inData] + * @return java.util.List + **/ + List getAuthRoles(SearchReportData inData); + + /** + * @Author LR + * @Description 保存单个报表的权限数据 + * @DateTime 2022/4/18 15:44 + * @Param [inMap] + * @return void + **/ + void saveAuthSingleCustomerReport(Map inMap); + + /** + * @Author LR + * @Description 获取用户的定制报表信息 + * @DateTime 2022/4/18 16:32 + * @Param [inData] + * @return java.util.List + **/ + List getUserCustomerReportList(SearchReportData inData); } diff --git a/src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java b/src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java index 89f87ef..ee415bc 100644 --- a/src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java +++ b/src/main/java/com/gaotao/modules/report/service/impl/ReportServiceImpl.java @@ -15,10 +15,7 @@ import com.gaotao.common.exception.RRException; import com.gaotao.common.utils.DateUtil; import com.gaotao.modules.report.dao.ProcedureDao; import com.gaotao.modules.report.dao.ReportDao; -import com.gaotao.modules.report.data.CustomerReportColumnData; -import com.gaotao.modules.report.data.CustomerReportData; -import com.gaotao.modules.report.data.CustomerSearchColumnData; -import com.gaotao.modules.report.data.SearchReportData; +import com.gaotao.modules.report.data.*; import com.gaotao.modules.report.service.ReportService; import com.gaotao.modules.schedule.data.SearchScheduleData; import com.gaotao.modules.schedule.data.SfdcMaterialData; @@ -378,4 +375,54 @@ public class ReportServiceImpl implements ReportService { //执行删除操作 reportDao.deleteCustomerReportSearchColumn(reportId, columnField); } + + @Override + public List getAuthRoles(SearchReportData inData) { + //公共参数 + String reportId = inData.getReportId(); + return reportDao.getAuthRoles(reportId); + } + + @Override + @Transactional + public void saveAuthSingleCustomerReport(Map inMap) { + //条件 + String strPageData = String.valueOf(inMap.get("pageData")); + SearchReportData pageData = JSON.parseObject(strPageData, SearchReportData.class); + String strAuthRoles = String.valueOf(inMap.get("authRoles")); + List currentColumnList = JSON.parseArray(strAuthRoles, CustomerReportRoleData.class); + //查询当前的列表 + String site = pageData.getSite(); + String reportId = pageData.getReportId(); + String username = pageData.getUsername(); + //新增的对象 + List saveAuthRoles = new ArrayList<>(); + + //循环判断是否已经保存了 + for (CustomerReportRoleData reportRoleData: currentColumnList){ + String checkedFlag = reportRoleData.getCheckedFlag(); + //没有保存的才需要保存 + if("Y".equalsIgnoreCase(checkedFlag)){ + reportRoleData.setSite(site); + reportRoleData.setReportId(reportId); + reportRoleData.setCreatedBy(username); + reportRoleData.setCreatedDate(new Date()); + saveAuthRoles.add(reportRoleData); + } + } + //先删除以前报表的权限 在新增 + reportDao.deleteCustomerReportRoleByReportId(reportId); + //判断是否新增 批量新增报表的权限 + if(saveAuthRoles.size() > 0){ + reportDao.batchInsertCustomerReportRoles(saveAuthRoles); + } + } + + @Override + public List getUserCustomerReportList(SearchReportData inData) { + //公共参数 + String site = inData.getSite(); + String username = inData.getUsername(); + return reportDao.getUserCustomerReportList(site, username); + } }