Commit 9f5fe385 by guojuxing

商品权限代码回滚

parent 3aa8c0f8
package com.gic.enterprise.service;
import com.gic.api.base.commons.ServiceResponse;
/**
* 商品资源接口
* @ClassName: 

* @Description: 

* @author guojuxing

* @date 2020/11/19 1:47 PM

*/
public interface EnterpriseGoodsResourceApiService {
/**
* 商户是否有商品权限
* @Title: validGoodsAuth

* @Description:

* @author guojuxing
* @param enterpriseId
商户ID
* @return com.gic.api.base.commons.ServiceResponse<java.lang.Boolean>


*/
ServiceResponse<Boolean> validGoodsAuth(Integer enterpriseId);
}
...@@ -7,6 +7,7 @@ import java.util.stream.Collectors; ...@@ -7,6 +7,7 @@ import java.util.stream.Collectors;
import com.gic.cloud.service.IndexDescApiService; import com.gic.cloud.service.IndexDescApiService;
import com.gic.commons.util.CollectionUtil; import com.gic.commons.util.CollectionUtil;
import com.gic.enterprise.constant.BillingAuditStatusEnum; import com.gic.enterprise.constant.BillingAuditStatusEnum;
import com.gic.enterprise.constant.LicenseTypeEnum;
import com.gic.enterprise.dto.market.ServeLicenseDTO; import com.gic.enterprise.dto.market.ServeLicenseDTO;
import com.gic.enterprise.utils.LicenseUtils; import com.gic.enterprise.utils.LicenseUtils;
import com.gic.marketing.process.api.service.sms.SmsSendApiService; import com.gic.marketing.process.api.service.sms.SmsSendApiService;
...@@ -102,6 +103,8 @@ public class EnterpriseApiServiceImpl implements EnterpriseApiService { ...@@ -102,6 +103,8 @@ public class EnterpriseApiServiceImpl implements EnterpriseApiService {
private IndexDescApiService indexDescApiService; private IndexDescApiService indexDescApiService;
@Autowired @Autowired
private SceneCrowdGroupApiService sceneCrowdGroupApiService; private SceneCrowdGroupApiService sceneCrowdGroupApiService;
@Autowired
private EnterpriseGoodsResourceApiService enterpriseGoodsResourceApiService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -449,17 +452,28 @@ public class EnterpriseApiServiceImpl implements EnterpriseApiService { ...@@ -449,17 +452,28 @@ public class EnterpriseApiServiceImpl implements EnterpriseApiService {
public ServiceResponse<MarketServiceDTO> buyForGicForNew(BuyForGicQO basicParams) { public ServiceResponse<MarketServiceDTO> buyForGicForNew(BuyForGicQO basicParams) {
MarketServiceDTO marketServiceDTO = new MarketServiceDTO(); MarketServiceDTO marketServiceDTO = new MarketServiceDTO();
List<TabEnterpriseResourceRel> businessFront = enterpriseResourceRelService.getByEnterpriseId(basicParams.getEnterpriseId().intValue());
//是否有商品管理权限 //是否有商品管理权限
boolean hasGoodsAuth = false; boolean hasGoodsAuth = enterpriseGoodsResourceApiService.validGoodsAuth(basicParams.getEnterpriseId().intValue()).getResult();
if (CollectionUtils.isNotEmpty(businessFront)) {
hasGoodsAuth = businessFront.stream().anyMatch(e -> "goods".equals(e.getResourceCode()) && e.getResourceSwitch().intValue() == 1);
}
List<com.gic.enterprise.dto.market.OrderBuyLicenseDTO> orderBuyLicenseDTOList = basicParams.getLicenseList(); List<com.gic.enterprise.dto.market.OrderBuyLicenseDTO> orderBuyLicenseDTOList = basicParams.getLicenseList();
List<OrderBuyLicenseDTO> licenseListParams = EntityUtil.changeEntityListNew(OrderBuyLicenseDTO.class, List<OrderBuyLicenseDTO> licenseListParams = EntityUtil.changeEntityListNew(OrderBuyLicenseDTO.class,
orderBuyLicenseDTOList); orderBuyLicenseDTOList);
//是否是服务开通操作
boolean isOpenService = basicParams.getOrderType() != null && basicParams.getOrderType() == 1;
if (isOpenService && !hasGoodsAuth) {
//没有商品权限
Long goodsLicenseId = getGoodsLicenseId(basicParams.getEnterpriseId(), basicParams.getOrderType());
if (goodsLicenseId != null) {
//有商品license,给一个默认的商品license 9个
OrderBuyLicenseDTO orderBuyLicenseDTO = new OrderBuyLicenseDTO();
orderBuyLicenseDTO.setNum(9);
orderBuyLicenseDTO.setLicenseId(goodsLicenseId);
licenseListParams.add(orderBuyLicenseDTO);
}
}
ServiceResponse<OrderCheckDTO> result = orderPurchaseApiService.buyForGic(basicParams.getEnterpriseId(), ServiceResponse<OrderCheckDTO> result = orderPurchaseApiService.buyForGic(basicParams.getEnterpriseId(),
basicParams.getName(), basicParams.getSkuId(), basicParams.getCouponLogId(), basicParams.getOrderType(), basicParams.getName(), basicParams.getSkuId(), basicParams.getCouponLogId(), basicParams.getOrderType(),
licenseListParams, basicParams.getPrice(), basicParams.isCommitFlag(), null); licenseListParams, basicParams.getPrice(), basicParams.isCommitFlag(), null);
......
package com.gic.enterprise.service.outer.impl;
import java.util.List;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.entity.TabEnterpriseResourceRel;
import com.gic.enterprise.service.EnterpriseGoodsResourceApiService;
import com.gic.enterprise.service.EnterpriseResourceRelService;
@Service("enterpriseGoodsResourceApiService")
public class EnterpriseGoodsResourceApiServiceImpl implements EnterpriseGoodsResourceApiService {
@Autowired
private EnterpriseResourceRelService enterpriseResourceRelService;
@Override
public ServiceResponse<Boolean> validGoodsAuth(Integer enterpriseId) {
List<TabEnterpriseResourceRel> businessFront = enterpriseResourceRelService.getByEnterpriseId(enterpriseId);
//是否有商品管理权限
boolean hasGoodsAuth = false;
if (CollectionUtils.isNotEmpty(businessFront)) {
hasGoodsAuth = businessFront.stream().anyMatch(e -> "goods".equals(e.getResourceCode()) && e.getResourceSwitch().intValue() == 1);
}
return ServiceResponse.success(hasGoodsAuth);
}
}
...@@ -130,6 +130,7 @@ ...@@ -130,6 +130,7 @@
<dubbo:service interface="com.gic.enterprise.service.AppletQrcodeApiService" ref="appletQrcodeApiService" timeout="6000" /> <dubbo:service interface="com.gic.enterprise.service.AppletQrcodeApiService" ref="appletQrcodeApiService" timeout="6000" />
<dubbo:service interface="com.gic.enterprise.service.WmStoreSyncLogApiService" ref="wmStoreSyncLogApiService" timeout="6000" /> <dubbo:service interface="com.gic.enterprise.service.WmStoreSyncLogApiService" ref="wmStoreSyncLogApiService" timeout="6000" />
<dubbo:service interface="com.gic.enterprise.service.EnterpriseWhiteListApiService" ref="enterpriseWhiteListApiService" timeout="6000" /> <dubbo:service interface="com.gic.enterprise.service.EnterpriseWhiteListApiService" ref="enterpriseWhiteListApiService" timeout="6000" />
<dubbo:service interface="com.gic.enterprise.service.EnterpriseGoodsResourceApiService" ref="enterpriseGoodsResourceApiService" timeout="6000" />
<dubbo:reference interface="com.gic.mall.share.api.service.ShopApiService" id="shopApiService" timeout="6000" /> <dubbo:reference interface="com.gic.mall.share.api.service.ShopApiService" id="shopApiService" timeout="6000" />
......
package com.gic.enterprise.web.controller; package com.gic.enterprise.web.controller;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse; import com.gic.api.base.commons.ServiceResponse;
import com.gic.auth.constant.AppMenuCodeConstants;
import com.gic.auth.dto.MenuDTO;
import com.gic.auth.dto.UserDTO; import com.gic.auth.dto.UserDTO;
import com.gic.auth.service.MenuApiService; import com.gic.auth.service.MenuApiService;
import com.gic.auth.service.UserApiService; import com.gic.auth.service.UserApiService;
...@@ -12,27 +15,18 @@ import com.gic.commons.webapi.reponse.RestResponse; ...@@ -12,27 +15,18 @@ import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.download.utils.log.LogUtils; import com.gic.download.utils.log.LogUtils;
import com.gic.enterprise.dto.BillingAccountDTO; import com.gic.enterprise.dto.BillingAccountDTO;
import com.gic.enterprise.dto.EnterpriseDTO; import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.dto.EnterpriseResourceRelDTO;
import com.gic.enterprise.response.EnterpriseRestResponse; import com.gic.enterprise.response.EnterpriseRestResponse;
import com.gic.enterprise.service.BillingAccountApiService; import com.gic.enterprise.service.BillingAccountApiService;
import com.gic.enterprise.service.EnterpriseApiService; import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.enterprise.utils.ResultControllerUtils; import com.gic.enterprise.utils.ResultControllerUtils;
import com.gic.enterprise.utils.UserDetail; import com.gic.enterprise.utils.UserDetail;
import com.gic.enterprise.utils.UserDetailUtils; import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.enterprise.web.vo.EnterpriseResourceRelVO; import com.gic.enterprise.web.utils.goods.GoodsContext;
import com.gic.enterprise.web.vo.EnterpriseVO; import com.gic.enterprise.web.vo.EnterpriseVO;
import com.gic.enterprise.web.vo.HomePageEnterpriseInfoVO; import com.gic.enterprise.web.vo.HomePageEnterpriseInfoVO;
import com.gic.marketing.api.dto.sms.EnterpriseSmsSignDTO; import com.gic.marketing.api.dto.sms.EnterpriseSmsSignDTO;
import com.gic.marketing.api.dto.sms.SmsApplicationDTO; import com.gic.marketing.api.dto.sms.SmsApplicationDTO;
import com.gic.marketing.api.service.sms.SmsOuterApiService; import com.gic.marketing.api.service.sms.SmsOuterApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/** /**
* *
...@@ -84,40 +78,7 @@ public class EnterpriseController { ...@@ -84,40 +78,7 @@ public class EnterpriseController {
@RequestMapping("/get-enterprise-info") @RequestMapping("/get-enterprise-info")
public RestResponse getEnterpriseInfo() { public RestResponse getEnterpriseInfo() {
Integer enterpriseId = UserDetailUtils.getUserDetail().getEnterpriseId(); Integer enterpriseId = UserDetailUtils.getUserDetail().getEnterpriseId();
//商品资源获取接口调整 return RestResponse.success(GoodsContext.getGoodsAuthData(enterpriseId, 1));
ServiceResponse<MenuDTO> goods = menuApiService.getHasBuyAppByMenuCode(AppMenuCodeConstants.GOODS_APP, enterpriseId);
boolean hasGoodsAuth = false;
if (goods.isSuccess()) {
hasGoodsAuth = true;
}
List<EnterpriseResourceRelVO> result = new ArrayList<>();
ServiceResponse<List<EnterpriseResourceRelDTO>> resourceResponse = this.enterpriseApiService.getBusinessFrontRes(enterpriseId);
if (resourceResponse.isSuccess()) {
result.addAll(EntityUtil.changeEntityListNew(EnterpriseResourceRelVO.class, resourceResponse.getResult()));
}
/**
* 商品选择器 code
*/
String goodsSelectCode = "901";
if (CollectionUtils.isNotEmpty(result)) {
result.forEach(e -> {
if (goodsSelectCode.equals(e.getResourceCode())) {
e.setResourceCode("Deprecated");
}
});
}
EnterpriseResourceRelVO vo = new EnterpriseResourceRelVO();
vo.setResourceCode(goodsSelectCode);
vo.setResourceName("商品选择器");
if (hasGoodsAuth) {
vo.setResourceSwitch(1);
} else {
vo.setResourceSwitch(0);
}
result.add(vo);
return RestResponse.success(result);
} }
@RequestMapping("/update-enterprise") @RequestMapping("/update-enterprise")
......
package com.gic.enterprise.web.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* Spring ApplicationContext 工具类
* @ClassName: ApplicationContextUtils

* @Description: 

* @author guojuxing

* @date 2020/11/11 10:22 AM

*/
@Component
public class ApplicationContextUtils implements ApplicationContextAware{
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
ApplicationContextUtils.applicationContext = applicationContext;
}
public static <T> T getBean(String beanName) {
if (applicationContext.containsBean(beanName)) {
return (T) applicationContext.getBean(beanName);
}
return null;
}
public static <T> T getBean(Class<T> clazz) {
return applicationContext.getBean(clazz);
}
}
package com.gic.enterprise.web.utils.goods;
import com.gic.enterprise.web.vo.EnterpriseResourceRelVO;
import java.util.List;
/**
* 方式调整,便于回滚
* @ClassName: AbstractGoodsStrategy

* @Description: 

* @author guojuxing

* @date 2020/11/19 2:44 PM

*/
public abstract class AbstractGoodsStrategy {
/**
* 商品权限
* @param enterpriseId
* @return
*/
public abstract List<EnterpriseResourceRelVO> getGoodsAuthData(Integer enterpriseId);
}
package com.gic.enterprise.web.utils.goods;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.dto.EnterpriseResourceRelDTO;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.enterprise.service.EnterpriseGoodsResourceApiService;
import com.gic.enterprise.web.vo.EnterpriseResourceRelVO;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* 应用方式
* @ClassName: AppResource

* @Description: 

* @author guojuxing

* @date 2020/11/19 2:49 PM

*/
@Component
public class AppResource extends AbstractGoodsStrategy{
@Autowired
private EnterpriseApiService enterpriseApiService;
@Autowired
private EnterpriseGoodsResourceApiService enterpriseGoodsResourceApiService;
@Override
public List<EnterpriseResourceRelVO> getGoodsAuthData(Integer enterpriseId) {
//商品资源获取接口调整
boolean hasGoodsAuth = enterpriseGoodsResourceApiService.validGoodsAuth(enterpriseId).getResult();
List<EnterpriseResourceRelVO> result = new ArrayList<>();
ServiceResponse<List<EnterpriseResourceRelDTO>> resourceResponse = this.enterpriseApiService.getBusinessFrontRes(enterpriseId);
if (resourceResponse.isSuccess()) {
result.addAll(EntityUtil.changeEntityListNew(EnterpriseResourceRelVO.class, resourceResponse.getResult()));
}
/**
* 商品选择器 code
*/
String goodsSelectCode = "901";
if (CollectionUtils.isNotEmpty(result)) {
result.forEach(e -> {
if (goodsSelectCode.equals(e.getResourceCode())) {
e.setResourceCode("Deprecated");
}
});
}
EnterpriseResourceRelVO vo = new EnterpriseResourceRelVO();
vo.setResourceCode(goodsSelectCode);
vo.setResourceName("商品选择器");
if (hasGoodsAuth) {
vo.setResourceSwitch(1);
} else {
vo.setResourceSwitch(0);
}
result.add(vo);
return result;
}
}
package com.gic.enterprise.web.utils.goods;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.dto.EnterpriseResourceRelDTO;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.enterprise.web.vo.EnterpriseResourceRelVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
/**
* 前置资源方式
* @ClassName: FrontResource

* @Description: 

* @author guojuxing

* @date 2020/11/19 2:47 PM

*/
@Component
public class FrontResource extends AbstractGoodsStrategy{
@Autowired
private EnterpriseApiService enterpriseApiService;
@Override
public List<EnterpriseResourceRelVO> getGoodsAuthData(Integer enterpriseId) {
List<EnterpriseResourceRelVO> result = new ArrayList<>(2);
ServiceResponse<List<EnterpriseResourceRelDTO>> resourceResponse = this.enterpriseApiService.getBusinessFrontRes(enterpriseId);
if (resourceResponse.isSuccess()) {
result.addAll(EntityUtil.changeEntityListNew(EnterpriseResourceRelVO.class, resourceResponse.getResult()));
}
return result;
}
}
package com.gic.enterprise.web.utils.goods;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.gic.enterprise.web.utils.ApplicationContextUtils;
import com.gic.enterprise.web.vo.EnterpriseResourceRelVO;
/**
* 商品资源调用
* @ClassName: 

* @Description: 

* @author guojuxing

* @date 2020/11/19 2:42 PM

*/
public class GoodsContext {
private static Map<Integer, AbstractGoodsStrategy> map = new HashMap<>(4);
static {
map.put(1, ApplicationContextUtils.getBean(FrontResource.class));
map.put(2, ApplicationContextUtils.getBean(AppResource.class));
}
/**
* 获取商品资源权限数据
* @param enterpriseId
* @param strategy
* @return
*/
public static List<EnterpriseResourceRelVO> getGoodsAuthData(Integer enterpriseId, Integer strategy) {
return map.get(strategy).getGoodsAuthData(enterpriseId);
}
}
...@@ -141,4 +141,5 @@ ...@@ -141,4 +141,5 @@
<dubbo:reference interface="com.gic.open.api.service.EnterpriseLicenseApiService" id="enterpriseLicenseApiService" timeout="6000" retries="0"/> <dubbo:reference interface="com.gic.open.api.service.EnterpriseLicenseApiService" id="enterpriseLicenseApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.member.config.api.service.EnterpriseConfigApiService" id="enterpriseConfigApiService" timeout="6000" retries="0"/> <dubbo:reference interface="com.gic.member.config.api.service.EnterpriseConfigApiService" id="enterpriseConfigApiService" timeout="6000" retries="0"/>
<dubbo:reference interface="com.gic.enterprise.service.EnterpriseGoodsResourceApiService" id="enterpriseGoodsResourceApiService" timeout="6000" retries="0"/>
</beans> </beans>
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