From 259530d8ee76c61e8520e254fa8c3da74ee94505 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 14 十一月 2019 22:41:38 +0800
Subject: [PATCH] 加入线程同步
---
OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java | 260 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 256 insertions(+), 4 deletions(-)
diff --git a/OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java b/OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java
index 8083378..e3acb77 100644
--- a/OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java
+++ b/OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java
@@ -1,9 +1,11 @@
package com.java110.order.smo.impl;
import com.alibaba.fastjson.JSONObject;
-import com.java110.common.cache.MappingCache;
-import com.java110.common.constant.MappingConstant;
-import com.java110.common.util.Assert;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.MappingConstant;
+import com.java110.utils.exception.SMOException;
+import com.java110.utils.util.Assert;
+import com.java110.core.factory.GenerateCodeFactory;
import com.java110.order.dao.IPrivilegeDAO;
import com.java110.order.smo.IPrivilegeSMO;
import org.slf4j.Logger;
@@ -12,6 +14,9 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
/**
* 鐢ㄦ埛鏉冮檺澶勭悊绫�
@@ -35,12 +40,17 @@
Assert.jsonObjectHaveKey(privilegeInfo,"storeTypeCd","璇锋眰鎶ユ枃涓湭鍖呭惈storeTypeCd鑺傜偣");
+ Assert.jsonObjectHaveKey(privilegeInfo,"userFlag","璇锋眰鎶ユ枃涓湭鍖呭惈userFlag鑺傜偣");
+
JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
String storeTypeCd = privilegeObj.getString("storeTypeCd");
- String defaultPrivilege = MappingCache.getValue(MappingConstant.DOMAIN_DEFAULT_PRIVILEGE_ADMIN,storeTypeCd);
+ String privilegeDomain = "admin".equals(privilegeObj.getString("userFlag"))
+ ?MappingConstant.DOMAIN_DEFAULT_PRIVILEGE_ADMIN:MappingConstant.DOMAIN_DEFAULT_PRIVILEGE;
+
+ String defaultPrivilege = MappingCache.getValue(privilegeDomain,storeTypeCd);
Assert.hasLength(defaultPrivilege,"鍦╟_mapping 琛ㄤ腑鏈厤缃晢鎴风被鍨嬩负"+storeTypeCd+" 鐨勯粯璁ゆ潈闄愮粍");
privilegeObj.put("pId",defaultPrivilege);
@@ -52,6 +62,248 @@
return new ResponseEntity<String>("鏈煡寮傚父", HttpStatus.INTERNAL_SERVER_ERROR);
}
+ /**
+ * 鍒犻櫎鐢ㄦ埛鏉冮檺
+ * @param privilegeInfo
+ * @return
+ */
+ @Override
+ public ResponseEntity<String> deleteUserAllPrivilege(String privilegeInfo) {
+ Assert.isJsonObject(privilegeInfo,"璇锋眰鎶ユ枃涓嶆槸鏈夋晥鐨刯son鏍煎紡");
+
+ Assert.jsonObjectHaveKey(privilegeInfo,"userId","璇锋眰鎶ユ枃涓湭鍖呭惈userId鑺傜偣");
+
+ JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
+ if(privilegeDAOImpl.deleteUserAllPrivilege(privilegeObj)){
+ return new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
+ }
+
+ return new ResponseEntity<String>("鏈煡寮傚父", HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+
+ @Override
+ public ResponseEntity<String> savePrivilegeGroup(String privilegeGroupInfo) {
+
+ Assert.isJsonObject(privilegeGroupInfo,"璇锋眰鎶ユ枃涓嶆槸鏈夋晥鐨刯son鏍煎紡");
+
+ Assert.jsonObjectHaveKey(privilegeGroupInfo,"name","璇锋眰鎶ユ枃涓湭鍖呭惈name鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeGroupInfo,"storeId","璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeGroupInfo,"storeTypeCd","璇锋眰鎶ユ枃涓湭鍖呭惈storeTypeCd鑺傜偣");
+ JSONObject privilegeGroupObj = JSONObject.parseObject(privilegeGroupInfo);
+
+ privilegeGroupObj.put("pgId",GenerateCodeFactory.getPgId());
+
+ if(privilegeDAOImpl.savePrivilegeGroup(privilegeGroupObj)){
+ return new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
+ }
+
+ return new ResponseEntity<String>("鏈煡寮傚父", HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+
+ /**
+ * 鍒犻櫎鏉冮檺缁�
+ * @param privilegeGroupInfo
+ * @return
+ */
+ @Override
+ public ResponseEntity<String> deletePrivilegeGroup(String privilegeGroupInfo) {
+
+ Assert.isJsonObject(privilegeGroupInfo,"璇锋眰鎶ユ枃涓嶆槸鏈夋晥鐨刯son鏍煎紡");
+
+ Assert.jsonObjectHaveKey(privilegeGroupInfo,"pgId","璇锋眰鎶ユ枃涓湭鍖呭惈pgId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeGroupInfo,"storeId","璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeGroupInfo,"storeTypeCd","璇锋眰鎶ユ枃涓湭鍖呭惈storeTypeCd鑺傜偣");
+ JSONObject privilegeGroupObj = JSONObject.parseObject(privilegeGroupInfo);
+ //鍒犻櫎鏉冮檺缁�
+ privilegeDAOImpl.deletePrivilegeGroup(privilegeGroupObj);
+
+ List<Map> privileges = privilegeDAOImpl.queryPrivilegeRel(privilegeGroupObj);
+
+ if(privileges !=null && privileges.size()>0) {
+ //鍒犻櫎鏉冮檺缁勫拰鏉冮檺鍏崇郴
+ privilegeDAOImpl.deletePrivilegeRel(privilegeGroupObj);
+ }
+
+ return new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
+
+ }
+
+ @Override
+ public ResponseEntity<String> addPrivilegeToPrivilegeGroup(String privilegeInfo) {
+ Assert.isJsonObject(privilegeInfo, "璇锋眰鎶ユ枃涓嶆槸鏈夋晥鐨刯son鏍煎紡");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "pgId", "璇锋眰鎶ユ枃涓湭鍖呭惈pgId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "pId", "璇锋眰鎶ユ枃涓湭鍖呭惈pId鑺傜偣");
+ JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
+ //鏍规嵁鏉冮檺缁処D鍜屽晢鎴稩D鏌ヨ鏄惁鏈夋暟鎹�
+ List<Map> privilegeGroups = privilegeDAOImpl.queryPrivilegeGroup(privilegeObj);
+ Assert.isNotNull(privilegeGroups, "褰撳墠娌℃湁鏉冮檺鎿嶄綔鏉冮檺缁刾gId = " + privilegeObj.getString("pgId"));
+
+ if (!privilegeDAOImpl.addPrivilegeRel(privilegeObj)) {
+ return new ResponseEntity<String>("娣诲姞鏉冮檺澶辫触", HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+
+ return new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
+ }
+
+ /**
+ *
+ * @param privilegeInfo
+ * @return
+ */
+ @Override
+ public ResponseEntity<String> deletePrivilegeToPrivilegeGroup(String privilegeInfo) {
+
+ Assert.isJsonObject(privilegeInfo, "璇锋眰鎶ユ枃涓嶆槸鏈夋晥鐨刯son鏍煎紡");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "pgId", "璇锋眰鎶ユ枃涓湭鍖呭惈pgId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "pId", "璇锋眰鎶ユ枃涓湭鍖呭惈pId鑺傜偣");
+
+ JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
+ //鏍规嵁鏉冮檺缁処D鍜屽晢鎴稩D鏌ヨ鏄惁鏈夋暟鎹�
+ List<Map> privilegeGroups = privilegeDAOImpl.queryPrivilegeGroup(privilegeObj);
+ Assert.isNotNull(privilegeGroups, "褰撳墠娌℃湁鏉冮檺鎿嶄綔鏉冮檺缁刾gId = " + privilegeObj.getString("pgId"));
+
+ if (!privilegeDAOImpl.deletePrivilegeRel(privilegeObj)) {
+ return new ResponseEntity<String>("鍒犻櫎鏉冮檺澶辫触", HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+
+ return new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
+ }
+
+ /**
+ * 鍛樺伐娣诲姞鏉冮檺鎴栨潈闄愮粍
+ * @param privilegeInfo
+ * @return
+ */
+ @Override
+ public ResponseEntity<String> addStaffPrivilegeOrPrivilegeGroup(String privilegeInfo) {
+
+ JSONObject privilegeObj = validateData(privilegeInfo);
+ //鏍规嵁鏉冮檺缁処D鍜屽晢鎴稩D鏌ヨ鏄惁鏈夋暟鎹�
+ String pFlag = privilegeObj.getString("pFlag");//鏉冮檺缁�
+ privilegeObj.put("privilegeFlag","1".equals(pFlag)?"1":"0");
+ List<Map> privilegeGroups = privilegeDAOImpl.queryUserPrivilege(privilegeObj);
+ Assert.listIsNull(privilegeGroups, "宸茬粡瀛樺湪璇ユ潈闄愭棤闇�澶氭娣诲姞" + privilegeInfo);
+
+ if (!privilegeDAOImpl.addUserPrivilege(privilegeObj)) {
+ return new ResponseEntity<String>("娣诲姞鏉冮檺澶辫触", HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+
+ return new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
+ }
+
+ /**
+ * 鍒犻櫎鍛樺伐鏉冮檺
+ * @param privilegeInfo
+ * @return
+ */
+ @Override
+ public ResponseEntity<String> deleteStaffPrivilegeOrPrivilegeGroup(String privilegeInfo) {
+ JSONObject privilegeObj = validateDeleteStaffPrivilegeData(privilegeInfo);
+ //鏍规嵁鏉冮檺缁処D鍜屽晢鎴稩D鏌ヨ鏄惁鏈夋暟鎹�
+ String pFlag = privilegeObj.getString("pFlag");//鏉冮檺缁�
+ privilegeObj.put("privilegeFlag","1".equals(pFlag)?"1":"0");
+ List<Map> privilegeGroups = privilegeDAOImpl.queryUserPrivilege(privilegeObj);
+ Assert.isNotNull(privilegeGroups, "涓嶅瓨鍦ㄨ鏉冮檺" + privilegeInfo);
+
+ if (!privilegeDAOImpl.deleteUserPrivilege(privilegeObj)) {
+ return new ResponseEntity<String>("娣诲姞鏉冮檺澶辫触", HttpStatus.INTERNAL_SERVER_ERROR);
+ }
+
+ return new ResponseEntity<String>("鎴愬姛", HttpStatus.OK);
+ }
+
+ /**
+ * 鏁版嵁鏍¢獙
+ * @param privilegeInfo
+ * @return
+ */
+ private JSONObject validateDeleteStaffPrivilegeData(String privilegeInfo) {
+
+ Assert.isJsonObject(privilegeInfo, "璇锋眰鎶ユ枃涓嶆槸鏈夋晥鐨刯son鏍煎紡");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "pId", "璇锋眰鎶ユ枃涓湭鍖呭惈pId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "pFlag", "璇锋眰鎶ユ枃涓湭鍖呭惈pFlag鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "userId", "璇锋眰鎶ユ枃涓湭鍖呭惈userId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "storeTypeCd", "璇锋眰鎶ユ枃涓湭鍖呭惈storeTypeCd鑺傜偣");
+
+ JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
+ String pFlag = privilegeObj.getString("pFlag");//鏉冮檺缁�
+ if("1".equals(pFlag)){
+ validatePrivilegeGroup(privilegeObj);
+ return privilegeObj;
+ }
+ validatePrivilege(privilegeObj);
+ return privilegeObj;
+ }
+
+ private JSONObject validateData(String privilegeInfo) {
+
+ Assert.isJsonObject(privilegeInfo, "璇锋眰鎶ユ枃涓嶆槸鏈夋晥鐨刯son鏍煎紡");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "pId", "璇锋眰鎶ユ枃涓湭鍖呭惈pId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "pFlag", "璇锋眰鎶ユ枃涓湭鍖呭惈pFlag鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "userId", "璇锋眰鎶ユ枃涓湭鍖呭惈userId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "storeId", "璇锋眰鎶ユ枃涓湭鍖呭惈storeId鑺傜偣");
+
+ Assert.jsonObjectHaveKey(privilegeInfo, "storeTypeCd", "璇锋眰鎶ユ枃涓湭鍖呭惈storeTypeCd鑺傜偣");
+
+ JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
+ String pFlag = privilegeObj.getString("pFlag");//鏉冮檺缁�
+ if("1".equals(pFlag)){
+ validatePrivilegeGroup(privilegeObj);
+ return privilegeObj;
+ }
+ validatePrivilege(privilegeObj);
+ return privilegeObj;
+ }
+
+ /**
+ * 鏉冮檺缁勬暟鎹牎楠�
+ * @param privilegeObj
+ */
+ private void validatePrivilegeGroup(JSONObject privilegeObj){
+
+ //鍒ゆ柇褰撳墠鏉冮檺缁勬槸鍚﹂毝灞炰簬 褰撳墠鍟嗘埛
+ privilegeObj.put("pgId",privilegeObj.getString("pId"));
+ List<Map> privilegeGroups = privilegeDAOImpl.queryPrivilegeGroup(privilegeObj);
+ if(privilegeGroups == null || privilegeGroups.size() == 0){
+ throw new SMOException(1999,"褰撳墠娌℃湁鏉冮檺鎿嶄綔璇ユ潈闄愮粍"+privilegeGroups.toString());
+ }
+ }
+
+ /**
+ * 鏉冮檺鏁版嵁鏍¢獙
+ * @param privilegeObj
+ */
+ private void validatePrivilege(JSONObject privilegeObj){
+
+ privilegeObj.put("domain",privilegeObj.getString("storeTypeCd"));
+ List<Map> privileges = privilegeDAOImpl.queryPrivilege(privilegeObj);
+ if(privileges == null || privileges.size() == 0){
+ throw new SMOException(1999,"褰撳墠娌℃湁鏉冮檺鎿嶄綔璇ユ潈闄�"+privileges.toString());
+ }
+ }
+
public IPrivilegeDAO getPrivilegeDAOImpl() {
return privilegeDAOImpl;
--
Gitblit v1.8.0