Commit 395980e7 by guojuxing

解除联合接口定义

parent d84b8b82
......@@ -31,4 +31,13 @@ public interface UnionEnterpriseAuthResDetailApiService {
ServiceResponse<Void> unionForStore(@NotNull Integer authStatus, @NotNull Integer ownEnterpriseId, @NotNull Integer unionEnterpriseId,
String authKey, String remark);
/**
* 门店资源解除联合进程
* @param authStatus UnionEnterpriseAuthDetailStatusEnum 会有资源处理中,解除成功等状态
* @param ownEnterpriseId
* @param unionEnterpriseId
* @return
*/
ServiceResponse<Void> relieveForStore(@NotNull Integer authStatus, @NotNull Integer ownEnterpriseId, @NotNull Integer unionEnterpriseId);
}
......@@ -50,4 +50,14 @@ public interface UnionEnterpriseAuthResDetailService {
* @return
*/
List<TabSysUnionEnterpriseAuthResDetail> listByUnionEnterpriseAuthIdList(List<Integer> unionEnterpriseAuthIdList);
/**
* 联合资源回调资源状态
* @param unionEnterpriseAuthResDetailId
* @param authStatus UnionEnterpriseAuthDetailStatusEnum
* @param authKey
* @param remark
* @return
*/
int union(@NotNull Integer unionEnterpriseAuthResDetailId, @NotNull Integer authStatus, String authKey, String remark);
}
......@@ -7,6 +7,7 @@ import com.gic.enterprise.dao.mapper.TabSysUnionEnterpriseAuthResDetailMapper;
import com.gic.enterprise.entity.TabSysUnionEnterpriseAuthResDetail;
import com.gic.enterprise.service.UnionEnterpriseAuthResDetailService;
import com.gic.enterprise.service.UnionEnterpriseAuthResLogService;
import com.gic.enterprise.service.UnionEnterpriseAuthService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -23,6 +24,8 @@ public class UnionEnterpriseAuthResDetailServiceImpl implements UnionEnterpriseA
private TabSysUnionEnterpriseAuthResDetailMapper tabSysUnionEnterpriseAuthResDetailMapper;
@Autowired
private UnionEnterpriseAuthResLogService unionEnterpriseAuthResLogService;
@Autowired
private UnionEnterpriseAuthService unionEnterpriseAuthService;
@Override
public List<TabSysUnionEnterpriseAuthResDetail> listUnionEnterpriseAuthResDetail(Integer unionEnterpriseAuthId, Integer authStatus) {
......@@ -98,4 +101,15 @@ public class UnionEnterpriseAuthResDetailServiceImpl implements UnionEnterpriseA
public List<TabSysUnionEnterpriseAuthResDetail> listByUnionEnterpriseAuthIdList(List<Integer> unionEnterpriseAuthIdList) {
return tabSysUnionEnterpriseAuthResDetailMapper.listByUnionEnterpriseAuthIdList(unionEnterpriseAuthIdList);
}
@Override
public int union(@NotNull Integer unionEnterpriseAuthResDetailId, @NotNull Integer authStatus, String authKey, String remark) {
TabSysUnionEnterpriseAuthResDetail record = new TabSysUnionEnterpriseAuthResDetail();
record.setUpdateTime(new Date());
record.setUnionEnterpriseAuthResDetailId(unionEnterpriseAuthResDetailId);
record.setAuthKey(authKey);
record.setRemark(remark);
record.setAuthStatus(authStatus);
return tabSysUnionEnterpriseAuthResDetailMapper.updateByPrimaryKeySelective(record);
}
}
......@@ -7,6 +7,7 @@ import com.gic.auth.service.ResourceGroupApiService;
import com.gic.auth.service.UserApiService;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.constant.union.UnionEnterpriseAuthDetailStatusEnum;
import com.gic.enterprise.constant.union.UnionEnterpriseAuthResOperateEnum;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.dto.union.*;
......@@ -85,9 +86,11 @@ public class UnionEnterpriseAuthApiServiceImpl implements UnionEnterpriseAuthApi
if (!resourceResponse.isSuccess() || resourceResponse.getResult() == null) {
throw new CommonException(ErrorCode.PARAMETER_ERROR.getCode(), "资源组数据不存在");
}
//todo 当前存在“资源处理中”或“资源解除中”,不允许同步
//
checkResourceDealing((old.getUnionEnterpriseAuthId()));
if (isEdit) {
//todo 重置最新联合时间和解除时间?
} else {
}
......@@ -341,4 +344,14 @@ public class UnionEnterpriseAuthApiServiceImpl implements UnionEnterpriseAuthApi
return old;
}
private void checkResourceDealing(Integer unionEnterpriseAuthId) {
List<TabSysUnionEnterpriseAuthResDetail> list = unionEnterpriseAuthResDetailService.listUnionEnterpriseAuthResDetail(unionEnterpriseAuthId, null);
if (CollectionUtils.isNotEmpty(list)) {
if (list.stream().anyMatch(e -> UnionEnterpriseAuthDetailStatusEnum.RELIEVING.getCode().equals(e.getAuthStatus())
|| UnionEnterpriseAuthDetailStatusEnum.RESOURCE_DEALING.getCode().equals(e.getAuthStatus()))) {
throw new CommonException(ErrorCode.PARAMETER_ERROR.getCode(), "当前存在“资源处理中”或“资源解除中”,不允许同步");
}
}
}
}
package com.gic.enterprise.service.outer.impl.union;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.constant.union.UnionEnterpriseAuthDetailStatusEnum;
import com.gic.enterprise.constant.union.UnionEnterpriseAuthResTypeEnum;
import com.gic.enterprise.dto.union.UnionEnterpriseAuthDTO;
import com.gic.enterprise.entity.TabSysUnionEnterpriseAuth;
import com.gic.enterprise.entity.TabSysUnionEnterpriseAuthResDetail;
import com.gic.enterprise.error.ErrorCode;
......@@ -9,10 +11,14 @@ import com.gic.enterprise.exception.CommonException;
import com.gic.enterprise.service.UnionEnterpriseAuthResDetailApiService;
import com.gic.enterprise.service.UnionEnterpriseAuthResDetailService;
import com.gic.enterprise.service.UnionEnterpriseAuthService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* 联合资源回调接口
* @ClassName:
......@@ -39,10 +45,65 @@ public class UnionEnterpriseAuthResDetailApiServiceImpl implements UnionEnterpri
if (old == null) {
throw new CommonException(ErrorCode.PARAMETER_ERROR.getCode(), "联合商户不存在");
}
//todo starrynight
TabSysUnionEnterpriseAuthResDetail detail = unionEnterpriseAuthResDetailService
.getUnionEnterpriseAuthResDetail(old.getUnionEnterpriseAuthId(), UnionEnterpriseAuthResTypeEnum.STORE.getCode());
boolean isUnionSuccess = UnionEnterpriseAuthDetailStatusEnum.HAS_AUTH.getCode().equals(authStatus);
//如果是,则判断其他资源是否已经完成
if (isUnionSuccess && isAllDealSuccess(old.getUnionEnterpriseAuthId(), UnionEnterpriseAuthResTypeEnum.STORE.getCode(), true)) {
//更新最新联合时间()
UnionEnterpriseAuthDTO dto = new UnionEnterpriseAuthDTO();
dto.setUnionEnterpriseAuthId(old.getUnionEnterpriseAuthId());
dto.setLastUnionTime(new Date());
unionEnterpriseAuthService.update(dto);
}
unionEnterpriseAuthResDetailService.union(detail.getUnionEnterpriseAuthResDetailId(), authStatus, authKey, remark);
return ServiceResponse.success();
}
@Override
public ServiceResponse<Void> relieveForStore(@NotNull Integer authStatus, @NotNull Integer ownEnterpriseId, @NotNull Integer unionEnterpriseId) {
TabSysUnionEnterpriseAuth old = unionEnterpriseAuthService.getUnionEnterprise(ownEnterpriseId, unionEnterpriseId);
if (old == null) {
throw new CommonException(ErrorCode.PARAMETER_ERROR.getCode(), "联合商户不存在");
}
TabSysUnionEnterpriseAuthResDetail detail = unionEnterpriseAuthResDetailService
.getUnionEnterpriseAuthResDetail(old.getUnionEnterpriseAuthId(), UnionEnterpriseAuthResTypeEnum.STORE.getCode());
boolean isAllRelieveSuccess = UnionEnterpriseAuthDetailStatusEnum.HAS_RELIEVE.getCode().equals(authStatus);
//如果是,则判断其他资源是否已经完成
if (isAllRelieveSuccess && isAllDealSuccess(old.getUnionEnterpriseAuthId(), UnionEnterpriseAuthResTypeEnum.STORE.getCode(), false)) {
//更新最新联合时间()
UnionEnterpriseAuthDTO dto = new UnionEnterpriseAuthDTO();
dto.setUnionEnterpriseAuthId(old.getUnionEnterpriseAuthId());
dto.setLastRelieveTime(new Date());
unionEnterpriseAuthService.update(dto);
}
unionEnterpriseAuthResDetailService.union(detail.getUnionEnterpriseAuthResDetailId(), authStatus, null, null);
return ServiceResponse.success();
}
/**
* 其他资源是否授权成功/解除成功
* @param unionEnterpriseAuthId
* @param resourceType
* @param isUnion
* @return
*/
private boolean isAllDealSuccess(Integer unionEnterpriseAuthId, Integer resourceType, boolean isUnion) {
Integer authStatus = UnionEnterpriseAuthDetailStatusEnum.HAS_AUTH.getCode();
if (!isUnion) {
authStatus = UnionEnterpriseAuthDetailStatusEnum.HAS_RELIEVE.getCode();
}
boolean isAllDealSuccess = true;
List<TabSysUnionEnterpriseAuthResDetail> resList = unionEnterpriseAuthResDetailService.listUnionEnterpriseAuthResDetail(unionEnterpriseAuthId, null);
if (CollectionUtils.isNotEmpty(resList)) {
for (TabSysUnionEnterpriseAuthResDetail temp : resList) {
if (!temp.getResourceType().equals(resourceType) && !temp.getAuthStatus().equals(authStatus)) {
isAllDealSuccess = false;
}
}
}
return isAllDealSuccess;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment