From 7e3a731b960455b16016c3c4e2e727caa8190bb0 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期一, 01 六月 2020 12:03:04 +0800
Subject: [PATCH] 优化查询小区多条是报错问题
---
CommunityService/src/main/java/com/java110/community/dao/impl/MenuServiceDaoImpl.java | 136 +++++++++++++++++++++++++++++++++++----------
1 files changed, 106 insertions(+), 30 deletions(-)
diff --git a/CommunityService/src/main/java/com/java110/community/dao/impl/MenuServiceDaoImpl.java b/CommunityService/src/main/java/com/java110/community/dao/impl/MenuServiceDaoImpl.java
index 78ab8b5..bdf20f1 100644
--- a/CommunityService/src/main/java/com/java110/community/dao/impl/MenuServiceDaoImpl.java
+++ b/CommunityService/src/main/java/com/java110/community/dao/impl/MenuServiceDaoImpl.java
@@ -1,15 +1,17 @@
package com.java110.community.dao.impl;
-import com.alibaba.fastjson.JSONObject;
-import com.java110.common.constant.ResponseConstant;
-import com.java110.common.exception.DAOException;
-import com.java110.common.util.DateUtil;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.DomainContant;
+import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.exception.DAOException;
import com.java110.community.dao.IMenuServiceDao;
import com.java110.core.base.dao.BaseServiceDao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -18,7 +20,7 @@
* Created by wuxw on 2017/4/5.
*/
@Service("menuServiceDaoImpl")
-//@Transactional
+@Transactional
public class MenuServiceDaoImpl extends BaseServiceDao implements IMenuServiceDao {
private static Logger logger = LoggerFactory.getLogger(MenuServiceDaoImpl.class);
@@ -26,14 +28,15 @@
/**
* 淇濆瓨璺敱淇℃伅 鍒� instance
- * @param info bId 淇℃伅
+ *
+ * @param info bId 淇℃伅
* @throws DAOException DAO寮傚父
*/
@Override
public int saveMenuGroupInfo(Map info) throws DAOException {
- logger.debug("淇濆瓨璺敱淇℃伅Instance 鍏ュ弬 info : {}",info);
+ logger.debug("淇濆瓨璺敱淇℃伅Instance 鍏ュ弬 info : {}", info);
- int saveFlag = sqlSessionTemplate.insert("menuServiceDaoImpl.saveMenuGroupInfo",info);
+ int saveFlag = sqlSessionTemplate.insert("menuServiceDaoImpl.saveMenuGroupInfo", info);
return saveFlag;
}
@@ -41,15 +44,16 @@
/**
* 鏌ヨ璺敱淇℃伅锛坕nstance锛�
+ *
* @param info bId 淇℃伅
* @return List<Map>
* @throws DAOException DAO寮傚父
*/
@Override
public List<Map> getMenuGroupInfo(Map info) throws DAOException {
- logger.debug("鏌ヨ璺敱淇℃伅 鍏ュ弬 info : {}",info);
+ logger.debug("鏌ヨ璺敱淇℃伅 鍏ュ弬 info : {}", info);
- List<Map> businessMenuGroupInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.getMenuGroupInfo",info);
+ List<Map> businessMenuGroupInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.getMenuGroupInfo", info);
return businessMenuGroupInfos;
}
@@ -57,26 +61,28 @@
/**
* 淇敼璺敱淇℃伅
+ *
* @param info 淇敼淇℃伅
* @throws DAOException DAO寮傚父
*/
@Override
public int updateMenuGroupInfo(Map info) throws DAOException {
- logger.debug("淇敼璺敱淇℃伅Instance 鍏ュ弬 info : {}",info);
+ logger.debug("淇敼璺敱淇℃伅Instance 鍏ュ弬 info : {}", info);
- int saveFlag = sqlSessionTemplate.update("menuServiceDaoImpl.updateMenuGroupInfo",info);
+ int saveFlag = sqlSessionTemplate.update("menuServiceDaoImpl.updateMenuGroupInfo", info);
return saveFlag;
}
- /**
+ /**
* 鏌ヨ璺敱鏁伴噺
+ *
* @param info 璺敱淇℃伅
* @return 璺敱鏁伴噺
*/
@Override
public int queryMenuGroupsCount(Map info) {
- logger.debug("鏌ヨ璺敱鏁版嵁 鍏ュ弬 info : {}",info);
+ logger.debug("鏌ヨ璺敱鏁版嵁 鍏ュ弬 info : {}", info);
List<Map> businessMenuGroupInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.queryMenuGroupsCount", info);
if (businessMenuGroupInfos.size() < 1) {
@@ -89,14 +95,26 @@
/**
* 淇濆瓨璺敱淇℃伅 鍒� instance
- * @param info bId 淇℃伅
+ *
+ * @param info bId 淇℃伅
* @throws DAOException DAO寮傚父
*/
@Override
public int saveBasePrivilegeInfo(Map info) throws DAOException {
- logger.debug("淇濆瓨璺敱淇℃伅Instance 鍏ュ弬 info : {}",info);
+ logger.debug("淇濆瓨璺敱淇℃伅Instance 鍏ュ弬 info : {}", info);
- int saveFlag = sqlSessionTemplate.insert("menuServiceDaoImpl.saveBasePrivilegeInfo",info);
+ int saveFlag = sqlSessionTemplate.insert("menuServiceDaoImpl.saveBasePrivilegeInfo", info);
+
+ if (saveFlag < 1) {
+ return saveFlag;
+ }
+
+
+ // 灏嗘潈闄愮粍鍒嗛厤缁欏搴斿晢鎴风被鍨嬬鐞嗗憳
+ info.put("pgId", MappingCache.getValue(DomainContant.DEFAULT_PRIVILEGE_ADMIN, info.get("domain").toString()));
+
+ saveFlag = sqlSessionTemplate.insert("menuServiceDaoImpl.saveBasePrivilegeRelInfo", info);
+
return saveFlag;
}
@@ -104,15 +122,16 @@
/**
* 鏌ヨ璺敱淇℃伅锛坕nstance锛�
+ *
* @param info bId 淇℃伅
* @return List<Map>
* @throws DAOException DAO寮傚父
*/
@Override
public List<Map> getBasePrivilegeInfo(Map info) throws DAOException {
- logger.debug("鏌ヨ璺敱淇℃伅 鍏ュ弬 info : {}",info);
+ logger.debug("鏌ヨ璺敱淇℃伅 鍏ュ弬 info : {}", info);
- List<Map> businessBasePrivilegeInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.getBasePrivilegeInfo",info);
+ List<Map> businessBasePrivilegeInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.getBasePrivilegeInfo", info);
return businessBasePrivilegeInfos;
}
@@ -120,26 +139,42 @@
/**
* 淇敼璺敱淇℃伅
+ *
* @param info 淇敼淇℃伅
* @throws DAOException DAO寮傚父
*/
@Override
public int updateBasePrivilegeInfo(Map info) throws DAOException {
- logger.debug("淇敼璺敱淇℃伅Instance 鍏ュ弬 info : {}",info);
+ logger.debug("淇敼璺敱淇℃伅Instance 鍏ュ弬 info : {}", info);
+ int saveFlag = 0;
+ //鍒ゆ柇鏄惁涓哄垹闄�
+ if (info.containsKey("statusCd") && StatusConstant.STATUS_CD_INVALID.equals(info.get("statusCd"))) {
+ //鍋氭煡璇�
+ List<Map> basePrivileges = getBasePrivilegeInfo(info);
- int saveFlag = sqlSessionTemplate.update("menuServiceDaoImpl.updateBasePrivilegeInfo",info);
+ if (basePrivileges != null && basePrivileges.size() > 0) {
+ saveFlag = sqlSessionTemplate.update("menuServiceDaoImpl.updateBasePrivilegeRelInfo", info);
+ if (saveFlag < 1) {
+ return saveFlag;
+ }
+ }
+
+ }
+
+ saveFlag = sqlSessionTemplate.update("menuServiceDaoImpl.updateBasePrivilegeInfo", info);
return saveFlag;
}
/**
* 鏌ヨ璺敱鏁伴噺
+ *
* @param info 璺敱淇℃伅
* @return 璺敱鏁伴噺
*/
@Override
public int queryBasePrivilegesCount(Map info) {
- logger.debug("鏌ヨ璺敱鏁版嵁 鍏ュ弬 info : {}",info);
+ logger.debug("鏌ヨ璺敱鏁版嵁 鍏ュ弬 info : {}", info);
List<Map> businessBasePrivilegeInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.queryBasePrivilegesCount", info);
if (businessBasePrivilegeInfos.size() < 1) {
@@ -149,18 +184,29 @@
return Integer.parseInt(businessBasePrivilegeInfos.get(0).get("count").toString());
}
+ @Override
+ public boolean checkUserHasResource(Map info) {
+ logger.debug("鏌ヨ璺敱淇℃伅 鍏ュ弬 info : {}", info);
+
+ List<Map> businessBasePrivilegeInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.checkUserHasResource", info);
+ if (businessBasePrivilegeInfos != null && businessBasePrivilegeInfos.size() > 0) {
+ return true;
+ }
+ return false;
+ }
/**
* 淇濆瓨璺敱淇℃伅 鍒� instance
- * @param info bId 淇℃伅
+ *
+ * @param info bId 淇℃伅
* @throws DAOException DAO寮傚父
*/
@Override
public int saveMenuInfo(Map info) throws DAOException {
- logger.debug("淇濆瓨璺敱淇℃伅Instance 鍏ュ弬 info : {}",info);
+ logger.debug("淇濆瓨璺敱淇℃伅Instance 鍏ュ弬 info : {}", info);
- int saveFlag = sqlSessionTemplate.insert("menuServiceDaoImpl.saveMenuInfo",info);
+ int saveFlag = sqlSessionTemplate.insert("menuServiceDaoImpl.saveMenuInfo", info);
return saveFlag;
}
@@ -168,15 +214,16 @@
/**
* 鏌ヨ璺敱淇℃伅锛坕nstance锛�
+ *
* @param info bId 淇℃伅
* @return List<Map>
* @throws DAOException DAO寮傚父
*/
@Override
public List<Map> getMenuInfo(Map info) throws DAOException {
- logger.debug("鏌ヨ璺敱淇℃伅 鍏ュ弬 info : {}",info);
+ logger.debug("鏌ヨ璺敱淇℃伅 鍏ュ弬 info : {}", info);
- List<Map> businessMenuInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.getMenuInfo",info);
+ List<Map> businessMenuInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.getMenuInfo", info);
return businessMenuInfos;
}
@@ -184,26 +231,55 @@
/**
* 淇敼璺敱淇℃伅
+ *
* @param info 淇敼淇℃伅
* @throws DAOException DAO寮傚父
*/
@Override
public int updateMenuInfo(Map info) throws DAOException {
- logger.debug("淇敼璺敱淇℃伅Instance 鍏ュ弬 info : {}",info);
+ logger.debug("淇敼璺敱淇℃伅Instance 鍏ュ弬 info : {}", info);
- int saveFlag = sqlSessionTemplate.update("menuServiceDaoImpl.updateMenuInfo",info);
+ int saveFlag = 0;
+
+ //鍒ゆ柇鏄惁涓哄垹闄�
+ if (info.containsKey("statusCd") && StatusConstant.STATUS_CD_INVALID.equals(info.get("statusCd"))) {
+ //鍋氭煡璇�
+ List<Map> baseMenus = getMenuInfo(info);
+
+ if (baseMenus != null && baseMenus.size() > 0) {
+ Map privilegeInfo = new HashMap();
+ privilegeInfo.put("pId", baseMenus.get(0).get("pId"));
+ privilegeInfo.put("statusCd", StatusConstant.STATUS_CD_INVALID);
+ //鍒犻櫎鏉冮檺 鏉冮檺缁勫叧绯�
+ saveFlag = sqlSessionTemplate.update("menuServiceDaoImpl.updateBasePrivilegeRelInfo", info);
+
+ if (saveFlag < 1) {
+ return saveFlag;
+ }
+ //鍒犻櫎鏉冮檺
+ saveFlag = sqlSessionTemplate.update("menuServiceDaoImpl.updateBasePrivilegeInfo", info);
+
+ if (saveFlag < 1) {
+ return saveFlag;
+ }
+ }
+
+ }
+
+ saveFlag = sqlSessionTemplate.update("menuServiceDaoImpl.updateMenuInfo", info);
return saveFlag;
}
/**
* 鏌ヨ璺敱鏁伴噺
+ *
* @param info 璺敱淇℃伅
* @return 璺敱鏁伴噺
*/
@Override
public int queryMenusCount(Map info) {
- logger.debug("鏌ヨ璺敱鏁版嵁 鍏ュ弬 info : {}",info);
+ logger.debug("鏌ヨ璺敱鏁版嵁 鍏ュ弬 info : {}", info);
List<Map> businessMenuInfos = sqlSessionTemplate.selectList("menuServiceDaoImpl.queryMenusCount", info);
if (businessMenuInfos.size() < 1) {
--
Gitblit v1.8.0