Commit 04dd7173 by guojuxing

资源组编辑,如果已经授权给联合商户,则需要验证码

parent 86def759
......@@ -94,6 +94,17 @@ public class ResourceGroupDTO implements Serializable{
*/
private Integer userResourceCount;
/****资源组编辑的时候,如果是已授权给联合商户,则需要发送验证码验证*****/
/**
* 验证码code
*/
private String authCode;
/**
* 验证码ID
*/
private Integer authCodeId;
public Integer getResourceGroupId() {
return resourceGroupId;
}
......@@ -238,6 +249,24 @@ public class ResourceGroupDTO implements Serializable{
return this;
}
public String getAuthCode() {
return authCode;
}
public ResourceGroupDTO setAuthCode(String authCode) {
this.authCode = authCode;
return this;
}
public Integer getAuthCodeId() {
return authCodeId;
}
public ResourceGroupDTO setAuthCodeId(Integer authCodeId) {
this.authCodeId = authCodeId;
return this;
}
@Override
public String toString() {
return "ResourceGroupDTO{" +
......@@ -257,6 +286,8 @@ public class ResourceGroupDTO implements Serializable{
", updateTime=" + updateTime +
", deleteFlag=" + deleteFlag +
", userResourceCount=" + userResourceCount +
", authCode='" + authCode + '\'' +
", authCodeId=" + authCodeId +
'}';
}
}
......@@ -10,8 +10,9 @@ import com.alibaba.fastjson.JSON;
import com.gic.auth.constant.ResourceHoldEnum;
import com.gic.auth.dto.*;
import com.gic.auth.entity.TabSysUser;
import com.gic.auth.service.UserService;
import com.gic.auth.service.*;
import com.gic.auth.utils.resourcegroup.ResourceGroupUtils;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.enterprise.exception.CommonException;
import com.gic.enterprise.response.EnterpriseServiceResponse;
import com.gic.enterprise.service.UnionEnterpriseAuthApiService;
......@@ -27,9 +28,6 @@ import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.application.center.api.service.AuthorizeService;
import com.gic.auth.entity.TabSysResourceGroup;
import com.gic.auth.service.ResourceGroupApiService;
import com.gic.auth.service.ResourceGroupService;
import com.gic.auth.service.UserResourceService;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.PageHelperUtils;
import com.gic.enterprise.error.ErrorCode;
......@@ -56,6 +54,8 @@ public class ResourceGroupApiServiceImpl implements ResourceGroupApiService{
private StoreWidgetApiService storeWidgetApiService;
@Autowired
private UnionEnterpriseAuthApiService unionEnterpriseAuthApiService;
@Autowired
private AuthCodeApiService authCodeApiService;
@Override
public ServiceResponse<Integer> saveResourceGroup(ResourceGroupDTO resourceGroup) {
......@@ -73,6 +73,15 @@ public class ResourceGroupApiServiceImpl implements ResourceGroupApiService{
if (validParamResponse != null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), validParamResponse);
}
//是否联合授权,如果是
if (unionEnterpriseAuthApiService.hasUnionEnterpriseAuth(resourceGroup.getResourceGroupId()).getResult()) {
ServiceResponse authCodeResult = authCodeApiService.validateAuthCode(resourceGroup.getAuthCodeId(), resourceGroup.getAuthCode());
if (!authCodeResult.isSuccess()) {
return authCodeResult;
}
}
//todo starrynight 通知业务方数据同步联合调整
resourceGroupService.editResourceGroup(resourceGroup);
return ServiceResponse.success();
}
......
package com.gic.auth.web.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import com.gic.auth.dto.AuthCodeDTO;
import com.gic.auth.dto.UserDTO;
import com.gic.auth.service.AuthCodeApiService;
import com.gic.auth.service.UserApiService;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.exception.CommonException;
import com.gic.enterprise.response.EnterpriseRestResponse;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.enterprise.service.UnionEnterpriseAuthApiService;
import com.gic.enterprise.utils.CreateRandomUtils;
import com.gic.enterprise.utils.UserDetail;
import com.gic.marketing.process.api.service.sms.SmsSendApiService;
import com.gic.platform.member.constant.enums.CuTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -63,6 +73,18 @@ public class ResourceController {
private EnterpriseLicenseApiService enterpriseLicenseApiService;
@Autowired
private ResourceGroupApiService resourceGroupApiService;
@Autowired
private UnionEnterpriseAuthApiService unionEnterpriseAuthApiService;
@Autowired
private EnterpriseApiService enterpriseApiService;
@Autowired
private UserApiService userApiService;
@Autowired
private AuthCodeApiService authCodeApiService;
@Autowired
private SmsSendApiService smsSendApiService;
private static final String UNION_ENTERPRISE_AUTH_SMS_CODE = "GICSHHT001";
@RequestMapping("/list-sms-sign")
......@@ -90,6 +112,57 @@ public class ResourceController {
OperationResultUtils.LOG_EDIT + "资源组", resourceGroup.getResourceGroupName());
}
/**
* 是否授权给联合商户,如果是,则需要发短信给联合商户超管
* @param resourceGroupId
* @return
*/
@RequestMapping("/has-auth-union-enterprise")
public RestResponse hasAuthUnionEnterprise(Integer resourceGroupId) {
return ResultControllerUtils.commonResult(unionEnterpriseAuthApiService.getUnionEnterpriseAuthByResourceGroupId(resourceGroupId));
}
@RequestMapping("send-auth-code-to-union-enterprise")
public RestResponse sendAuthCode(Integer enterpriseId) {
EnterpriseDTO unionEnterprise = getEnterprise(enterpriseId);
ServiceResponse<UserDTO> unionUserRes = userApiService.getUserByEnterpriseId(enterpriseId);
UserDTO unionUser = unionUserRes.getResult();
UserDetail userDetail = UserDetailUtils.getUserDetail();
//验证码生成
AuthCodeDTO authCodeDTO = new AuthCodeDTO();
authCodeDTO.setEnterpriseId(UserDetailUtils.getUserDetail().getEnterpriseId());
//生成6位数字验证码
String authCode = CreateRandomUtils.generateNumberStr(6);
authCodeDTO.setAuthCode(authCode);
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.MINUTE, 2);
authCodeDTO.setExpirationTime(calendar.getTime());
ServiceResponse<Integer> result = authCodeApiService.saveAuth(authCodeDTO);
if (result.isSuccess()) {
Integer authCodeId = result.getResult();
//发送手机验证码
String[] smsArr = new String[] { unionEnterprise.getEnterpriseName(),
userDetail.getEnterpriseInfo().getEnterpriseName(),
authCode,
userDetail.getEnterpriseInfo().getEnterpriseName()};
ServiceResponse<Void> smsSendResult = smsSendApiService.sendPlatformSms(UNION_ENTERPRISE_AUTH_SMS_CODE,
unionEnterprise.getEnterpriseId(),
unionUser.getPhoneAreaCode(),
unionUser.getPhoneNumber(),
smsArr);
if (!smsSendResult.isSuccess()) {
return EnterpriseRestResponse.failure(smsSendResult);
} else {
return RestResponse.success(authCodeId);
}
}
return EnterpriseRestResponse.failure(result);
}
@RequestMapping("/del-resource")
public RestResponse delResourceNew(Integer resourceGroupId) {
return OperationResultUtils.operationResult(resourceGroupApiService.deleteResourceGroup(resourceGroupId),
......@@ -138,4 +211,13 @@ public class ResourceController {
ServiceResponse<EnterpriseServeInfoDTO> serveInfo = enterpriseLicenseApiService.getServeInfo(UserDetailUtils.getUserDetail().getEnterpriseId(), "gic");
return RestResponse.success("basic".equals(serveInfo.getResult().getVersionCode()));
}
private EnterpriseDTO getEnterprise(Integer enterpriseId) {
//查询联合商户信息
ServiceResponse<EnterpriseDTO> enterpriseResponse = enterpriseApiService.getEnterpriseById(enterpriseId);
if (!enterpriseResponse.isSuccess()) {
throw new CommonException(ErrorCode.PARAMETER_ERROR.getCode(), "商户不存在");
}
return enterpriseResponse.getResult();
}
}
......@@ -79,6 +79,7 @@
<dubbo:reference interface="com.gic.open.api.service.EnterpriseLicenseApiService" id="enterpriseLicenseApiService" timeout="6000" />
<dubbo:reference interface="com.gic.auth.service.ResourceGroupApiService" id="resourceGroupApiService" timeout="6000" />
<dubbo:reference interface="com.gic.enterprise.service.UnionEnterpriseAuthApiService" id="unionEnterpriseAuthApiService" timeout="6000" />
</beans>
\ No newline at end of file
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