diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
index d88e4dfca..cbbb7cdd3 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java
@@ -312,6 +312,7 @@ public enum ErrorCodeEnum {
NOT_FLAGSHIP_STORE(16100005,"非直营店,无法跳过缴费阶段!",null),
NOT_FLAGSHIP_STORE_NOT_EXIST(16100006,"当前阶段加盟类型不能变更!",null),
+ JOIN_MODE_NOT_ALLOW_OPERATE(16100007,"加盟部人员只能新建加盟店或联营店,请确认!",null),
;
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java
index 4fca7bf91..0c4b24555 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/JoinModeEnum.java
@@ -38,4 +38,10 @@ public enum JoinModeEnum {
}
return null;
}
+ /**
+ * 是否是加盟部加盟店或者联营店 如果不是 返回false
+ */
+ public static boolean isFranchise(Integer code) {
+ return code == FRANCHISE_DEPARTMENT.code || code == AFFILIATES.code;
+ }
}
diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml
index 4b3246910..5a019939f 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml
@@ -30,7 +30,7 @@
- id, user_id, name, remark, mobile, email, main_admin, is_admin, unionid,
+ id, user_id, name, remark, mobile, email, main_admin, is_admin, unionid,departments,
avatar, jobnumber, is_leader, is_leader_in_depts, face_url, user_status, create_time,
third_oa_unique_flag
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseService.java
index 2fb88f946..33ddacccc 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseService.java
@@ -22,4 +22,11 @@ public interface EnterpriseService {
* 获取并缓存refreshToken
*/
RefreshUser getRefreshUser(String userId, String mobile);
+
+ /**
+ * 校验用户新建分店/新建线索 可以选择加盟类型类型
+ * @param userId
+ * @param joinMode
+ */
+ void checkUser(String userId,Integer joinMode);
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseServiceImpl.java
index 79b08e9d3..036c02713 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseServiceImpl.java
@@ -7,6 +7,7 @@ import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.SysRoleDO;
import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.enums.JoinModeEnum;
import com.cool.store.enums.Role;
import com.cool.store.enums.UserStatusEnum;
import com.cool.store.exception.ServiceException;
@@ -126,6 +127,22 @@ public class EnterpriseServiceImpl implements EnterpriseService {
return refreshUser;
}
+ @Override
+ public void checkUser(String userId,Integer joinMode) {
+ EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId);
+ if (userInfo !=null){
+ //校验当前人员是否是加盟部 581
+ String departments = userInfo.getDepartments();
+ //如果departments包含/581/ 加盟部
+ if (com.cool.store.utils.poi.StringUtils.isNotBlank(departments) && departments.contains("/581/")) {
+ //加盟部 FRANCHISE_COMPANIES
+ if (!JoinModeEnum.isFranchise(joinMode)){
+ throw new ServiceException(ErrorCodeEnum.JOIN_MODE_NOT_ALLOW_OPERATE);
+ }
+ }
+ }
+ }
+
public static void main(String[] args) {
try {
System.out.println(DateUtils.parseDate("2024-05-09 18:54:28",DateUtils.YYYY_MM_DD_HH_MM_SS));
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineServiceImpl.java
index 2db3f5441..cc40863fd 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineServiceImpl.java
@@ -88,6 +88,8 @@ public class LineServiceImpl implements LineService {
private RegionQrcodeConfigDao regionQrcodeConfigDao;
@Resource
QualificationsInfoDAO qualificationsInfoDAO;
+ @Resource
+ EnterpriseService enterpriseService;
@Override
@@ -514,6 +516,7 @@ public class LineServiceImpl implements LineService {
public Boolean addLine(AddLineRequest addLineRequest, LoginUserInfo userInfo) {
//必填参数
log.info("addLine:{}", JSONObject.toJSONString(addLineRequest));
+ enterpriseService.checkUser(userInfo.getUserId(), addLineRequest.getJoinMode());
if (!StringUtil.isNoneBlank(addLineRequest.getMobile(), addLineRequest.getUserName())) {
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java
index ef44ca211..9f4a09703 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java
@@ -110,6 +110,8 @@ public class ShopServiceImpl implements ShopService {
DecorationDesignInfoDAO decorationDesignInfoDAO;
@Resource
StoreService storeService;
+ @Resource
+ EnterpriseService enterpriseService;
@Override
@@ -330,6 +332,7 @@ public class ShopServiceImpl implements ShopService {
if (StringUtils.isBlank(request.getInvestmentManagerUserId())) {
request.setInvestmentManagerUserId(userId);
}
+ enterpriseService.checkUser(userId, request.getJoinMode());
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(request.getLineId());
if (lineInfo.getWorkflowSubStageStatus() < WorkflowSubStageStatusEnum.PAY_DEPOSIT_45.getCode()) {
throw new ServiceException(ErrorCodeEnum.LINE_STATUS_NOT_ALLOW_OPERATE);