Commit e325b64f by 陶光胜

Merge branch 'developer' of…

Merge branch 'developer' of http://115.159.76.241/base_platform_enterprise/gic-platform-enterprise into developer
parents 55fe43b5 4e6975f9
package com.gic.enterprise.constant;
/**
* 微盟商城店铺配置类型
* @ClassName: WmStoreConfigTypeEnum

* @Description: 

* @author guojuxing

* @date 2019/11/25 2:42 PM

*/
public enum WmStoreConfigTypeEnum {
MEMBER_CARD_CONFIG(1, "会员卡配置"),
COUPON_CONFIG(2, "卡券配置"),
ORDER_CONFIG(3, "订单配置"),
INTEGRAL_CONFIG(4, "积分配置"),
GOODS_CONFIG(5, "商品配置"),
APPLET_CONFIG(6, "小程序配置");
private int code;
private String message;
/**
* 是否是枚举内的code值
* @param code
* @return
*/
public static boolean isRightCode(Integer code) {
if (code == null) {
return false;
}
for (WmStoreConfigTypeEnum typeEnum : values()) {
if (code.intValue() == typeEnum.getCode()) {
return true;
}
}
return false;
}
public static String getMessageByCode(Integer code) {
if (isRightCode(code)) {
for (WmStoreConfigTypeEnum typeEnum : values()) {
if (code.intValue() == typeEnum.getCode()) {
return typeEnum.getMessage();
}
}
}
return "--";
}
private WmStoreConfigTypeEnum(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
package com.gic.enterprise.dto;
import java.io.Serializable;
import java.util.Date;
/**
* 微盟商城店铺-积分配置
* @ClassName: WmOrderConfigDTO

* @Description: 

* @author guojuxing

* @date 2020/4/14 4:08 PM

*/
public class WmIntegralConfigDTO implements Serializable{
private static final long serialVersionUID = -8965484222353430286L;
/**
*
*/
private Integer enterpriseId;
/**
* 微盟主账号(平台唯一),用于关联配置
*/
private String wmMainAccount;
/**
* GIC计算本商城订单积分 1:开启 0:关闭
* 开启后订单积分计算统一由GIC计算,关闭则由ERP计算
*/
private Integer gicCalculateMallOrderIntegral;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
public Integer getEnterpriseId() {
return enterpriseId;
}
public WmIntegralConfigDTO setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
return this;
}
public String getWmMainAccount() {
return wmMainAccount;
}
public WmIntegralConfigDTO setWmMainAccount(String wmMainAccount) {
this.wmMainAccount = wmMainAccount;
return this;
}
public Integer getGicCalculateMallOrderIntegral() {
return gicCalculateMallOrderIntegral;
}
public WmIntegralConfigDTO setGicCalculateMallOrderIntegral(Integer gicCalculateMallOrderIntegral) {
this.gicCalculateMallOrderIntegral = gicCalculateMallOrderIntegral;
return this;
}
public Date getCreateTime() {
return createTime;
}
public WmIntegralConfigDTO setCreateTime(Date createTime) {
this.createTime = createTime;
return this;
}
public Date getUpdateTime() {
return updateTime;
}
public WmIntegralConfigDTO setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
return this;
}
}
package com.gic.enterprise.dto.wm;
import java.io.Serializable;
import java.util.Date;
/**
* 微盟店铺配置
* @ClassName: WmStoreConfigDTO

* @Description: 

* @author guojuxing

* @date 2020/4/15 10:16 AM

*/
public class WmStoreConfigDTO implements Serializable{
private static final long serialVersionUID = 6295403527873697597L;
/**
*
*/
private Integer storeConfigId;
/**
*
*/
private Integer enterpriseId;
/**
* 微盟主账号(平台唯一),用于关联配置
*/
private String wmMainAccount;
/**
* 店铺配置类型 1:会员卡配置 2:卡券配置 3:订单配置 4:积分配置 5:商品同步记录 6:小程序配置
*/
private Integer storeConfigType;
/**
* 店铺配置类型json字符串
*/
private String storeConfigJson;
/**
* 1:有效
*/
private Integer status;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
public Integer getStoreConfigId() {
return storeConfigId;
}
public WmStoreConfigDTO setStoreConfigId(Integer storeConfigId) {
this.storeConfigId = storeConfigId;
return this;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public WmStoreConfigDTO setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
return this;
}
public String getWmMainAccount() {
return wmMainAccount;
}
public WmStoreConfigDTO setWmMainAccount(String wmMainAccount) {
this.wmMainAccount = wmMainAccount;
return this;
}
public Integer getStoreConfigType() {
return storeConfigType;
}
public WmStoreConfigDTO setStoreConfigType(Integer storeConfigType) {
this.storeConfigType = storeConfigType;
return this;
}
public String getStoreConfigJson() {
return storeConfigJson;
}
public WmStoreConfigDTO setStoreConfigJson(String storeConfigJson) {
this.storeConfigJson = storeConfigJson;
return this;
}
public Integer getStatus() {
return status;
}
public WmStoreConfigDTO setStatus(Integer status) {
this.status = status;
return this;
}
public Date getCreateTime() {
return createTime;
}
public WmStoreConfigDTO setCreateTime(Date createTime) {
this.createTime = createTime;
return this;
}
public Date getUpdateTime() {
return updateTime;
}
public WmStoreConfigDTO setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
return this;
}
}
......@@ -4,6 +4,7 @@ import com.gic.api.base.commons.ServiceResponse;
import com.gic.enterprise.dto.WmMemberCardConfigDTO;
import com.gic.enterprise.dto.WmOrderConfigDTO;
import com.gic.enterprise.dto.WmStoreDTO;
import com.gic.enterprise.dto.wm.WmStoreConfigDTO;
import java.util.List;
......@@ -51,42 +52,23 @@ public interface WmStoreApiService {
ServiceResponse<WmStoreDTO> getWmStoreByWmMallStoreId(Integer wmMallStoreId);
/**
* 新增会员卡配置
* @Title: saveOrUpdateWmMemberCardConfig

* 店铺配置
* @Title: saveOrUpdateWmStoreConfig

* @Description:

* @author guojuxing
* @param dto

* @return com.gic.api.base.commons.ServiceResponse<java.lang.Integer>


*/
ServiceResponse<Integer> saveOrUpdateWmMemberCardConfig(WmMemberCardConfigDTO dto);
ServiceResponse<Integer> saveOrUpdateWmStoreConfig(WmStoreConfigDTO dto);
/**
* 根据微盟主账号查询会员卡配置
* @Title: getWmMemberCardConfigByWmMainAccount

* 根据微盟主账号查询配置
* @Title: getWmStoreConfigByWmMainAccount

* @Description:

* @author guojuxing
* @param wmMainAccount

* @return com.gic.api.base.commons.ServiceResponse<com.gic.enterprise.dto.WmMemberCardConfigDTO>

* @param wmStoreConfigType 店铺配置类型 1:会员卡配置 2:卡券配置 3:订单配置 4:积分配置 5:商品同步记录 6:小程序配置 WmStoreConfigTypeEnum枚举类
* @return com.gic.api.base.commons.ServiceResponse<com.gic.enterprise.dto.wm.WmStoreConfigDTO>


*/
ServiceResponse<WmMemberCardConfigDTO> getWmMemberCardConfigByWmMainAccount(String wmMainAccount);
/**
* 订单配置
* @Title: saveOrUpdateWmOrderConfig

* @Description:

* @author guojuxing
* @param dto

* @return com.gic.api.base.commons.ServiceResponse<java.lang.Integer>


*/
ServiceResponse<Integer> saveOrUpdateWmOrderConfig(WmOrderConfigDTO dto);
/**
* 根据微盟主账号查询订单配置
* @Title: getWmOrderConfigByWmMainAccount

* @Description:

* @author guojuxing
* @param wmMainAccount

* @return com.gic.api.base.commons.ServiceResponse<com.gic.enterprise.dto.WmOrderConfigDTO>


*/
ServiceResponse<WmOrderConfigDTO> getWmOrderConfigByWmMainAccount(String wmMainAccount);
ServiceResponse<WmStoreConfigDTO> getWmStoreConfigByWmMainAccount(String wmMainAccount, Integer wmStoreConfigType);
}
package com.gic.enterprise.dao.mapper;
import com.gic.enterprise.entity.TabWmOrderConfig;
public interface TabWmOrderConfigMapper {
/**
* 根据主键删除
*
* @param orderConfigId 主键
* @return 更新条目数
*/
int deleteByPrimaryKey(Integer orderConfigId);
/**
* 插入一条记录
*
* @param record 实体对象
* @return 更新条目数
*/
int insert(TabWmOrderConfig record);
/**
* 动态插入一条记录
*
* @param record 实体对象
* @return 更新条目数
*/
int insertSelective(TabWmOrderConfig record);
/**
* 根据主键查询
*
* @param orderConfigId 主键
* @return 实体对象
*/
TabWmOrderConfig selectByPrimaryKey(Integer orderConfigId);
/**
* 根据主键动态更新记录
*
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKeySelective(TabWmOrderConfig record);
/**
* 根据主键更新记录
*
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKey(TabWmOrderConfig record);
TabWmOrderConfig getByWmMainAccount(String wmMainAccount);
}
\ No newline at end of file
package com.gic.enterprise.dao.mapper;
import com.gic.enterprise.entity.TabWmMemberCardConfig;
import com.gic.enterprise.entity.TabWmStoreConfig;
import org.apache.ibatis.annotations.Param;
public interface TabWmMemberCardConfigMapper {
public interface TabWmStoreConfigMapper {
/**
* 根据主键删除
*
* @param memberCardConfigId 主键
* @param storeConfigId 主键
* @return 更新条目数
*/
int deleteByPrimaryKey(Integer memberCardConfigId);
int deleteByPrimaryKey(Integer storeConfigId);
/**
* 插入一条记录
......@@ -17,7 +18,7 @@ public interface TabWmMemberCardConfigMapper {
* @param record 实体对象
* @return 更新条目数
*/
int insert(TabWmMemberCardConfig record);
int insert(TabWmStoreConfig record);
/**
* 动态插入一条记录
......@@ -25,15 +26,15 @@ public interface TabWmMemberCardConfigMapper {
* @param record 实体对象
* @return 更新条目数
*/
int insertSelective(TabWmMemberCardConfig record);
int insertSelective(TabWmStoreConfig record);
/**
* 根据主键查询
*
* @param memberCardConfigId 主键
* @param storeConfigId 主键
* @return 实体对象
*/
TabWmMemberCardConfig selectByPrimaryKey(Integer memberCardConfigId);
TabWmStoreConfig selectByPrimaryKey(Integer storeConfigId);
/**
* 根据主键动态更新记录
......@@ -41,7 +42,7 @@ public interface TabWmMemberCardConfigMapper {
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKeySelective(TabWmMemberCardConfig record);
int updateByPrimaryKeySelective(TabWmStoreConfig record);
/**
* 根据主键更新记录
......@@ -49,7 +50,7 @@ public interface TabWmMemberCardConfigMapper {
* @param record 实体对象
* @return 更新条目数
*/
int updateByPrimaryKey(TabWmMemberCardConfig record);
int updateByPrimaryKey(TabWmStoreConfig record);
TabWmMemberCardConfig getByWmMainAccount(String wmMainAccount);
TabWmStoreConfig getByWmMainAccount(@Param("wmMainAccount") String wmMainAccount, @Param("storeConfigType") Integer storeConfigType);
}
\ No newline at end of file
package com.gic.enterprise.entity;
import java.util.Date;
/**
* tab_wm_store_config
*/
public class TabWmStoreConfig {
/**
*
*/
private Integer storeConfigId;
/**
*
*/
private Integer enterpriseId;
/**
* 微盟主账号(平台唯一),用于关联配置
*/
private String wmMainAccount;
/**
* 店铺配置类型 1:会员卡配置 2:卡券配置 3:订单配置 4:积分配置 5:商品同步记录 6:小程序配置
*/
private Integer storeConfigType;
/**
* 店铺配置类型json字符串
*/
private String storeConfigJson;
/**
* 1:有效
*/
private Integer status;
/**
*
*/
private Date createTime;
/**
*
*/
private Date updateTime;
public Integer getStoreConfigId() {
return storeConfigId;
}
public TabWmStoreConfig setStoreConfigId(Integer storeConfigId) {
this.storeConfigId = storeConfigId;
return this;
}
public Integer getEnterpriseId() {
return enterpriseId;
}
public TabWmStoreConfig setEnterpriseId(Integer enterpriseId) {
this.enterpriseId = enterpriseId;
return this;
}
public String getWmMainAccount() {
return wmMainAccount;
}
public TabWmStoreConfig setWmMainAccount(String wmMainAccount) {
this.wmMainAccount = wmMainAccount;
return this;
}
public Integer getStoreConfigType() {
return storeConfigType;
}
public TabWmStoreConfig setStoreConfigType(Integer storeConfigType) {
this.storeConfigType = storeConfigType;
return this;
}
public String getStoreConfigJson() {
return storeConfigJson;
}
public TabWmStoreConfig setStoreConfigJson(String storeConfigJson) {
this.storeConfigJson = storeConfigJson;
return this;
}
public Integer getStatus() {
return status;
}
public TabWmStoreConfig setStatus(Integer status) {
this.status = status;
return this;
}
public Date getCreateTime() {
return createTime;
}
public TabWmStoreConfig setCreateTime(Date createTime) {
this.createTime = createTime;
return this;
}
public Date getUpdateTime() {
return updateTime;
}
public TabWmStoreConfig setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
return this;
}
}
\ No newline at end of file
package com.gic.enterprise.service;
import com.gic.enterprise.dto.WmOrderConfigDTO;
import com.gic.enterprise.entity.TabWmOrderConfig;
public interface WmOrderConfigService {
/**
* 新增订单配置(商城店铺配置)
* @Title: saveWmOrderConfig

* @Description:

* @author guojuxing
* @param dto

* @return java.lang.Integer


*/
Integer saveWmOrderConfig(WmOrderConfigDTO dto);
void editWmOrderConfig(WmOrderConfigDTO dto);
/**
* 根据微盟主账号查询对应的订单配置
* @Title: getByWmMainAccount

* @Description:

* @author guojuxing
* @param wmMainAccount

* @return com.gic.enterprise.entity.TabWmOrderConfig


*/
TabWmOrderConfig getByWmMainAccount(String wmMainAccount);
}
package com.gic.enterprise.service;
import com.gic.enterprise.dto.WmMemberCardConfigDTO;
import com.gic.enterprise.entity.TabWmMemberCardConfig;
import com.gic.enterprise.dto.wm.WmStoreConfigDTO;
import com.gic.enterprise.entity.TabWmStoreConfig;
public interface WmMemberCardConfigService {
public interface WmStoreConfigService {
/**
* 新增会员卡配置
* @Title: saveWmMemberCardConfig

* 新增店铺配置
* @Title: saveWmStoreConfig

* @Description:

* @author guojuxing
* @param dto

* @return java.lang.Integer


*/
Integer saveWmMemberCardConfig(WmMemberCardConfigDTO dto);
Integer saveWmStoreConfig(WmStoreConfigDTO dto);
void updateWmMemberCardConfig(WmMemberCardConfigDTO dto);
void editWmStoreConfig(WmStoreConfigDTO dto);
/**
* 根据微盟主账号查询记录,主账号平台唯一
* 根据微盟主账号查询配置
* @Title: getByWmMainAccount

* @Description:

* @author guojuxing
* @param wmMainAccount

* @return com.gic.enterprise.entity.TabWmMemberCardConfig

* @param wmMainAccount
* @param storeConfigType
店铺配置类型 1:会员卡配置 2:卡券配置 3:订单配置 4:积分配置 5:商品同步记录 6:小程序配置 WmStoreConfigTypeEnum枚举类
* @return com.gic.enterprise.entity.TabWmStoreConfig


*/
TabWmMemberCardConfig getByWmMainAccount(String wmMainAccount);
TabWmStoreConfig getByWmMainAccount(String wmMainAccount, Integer storeConfigType);
}
package com.gic.enterprise.service.impl;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.dao.mapper.TabWmMemberCardConfigMapper;
import com.gic.enterprise.dto.WmMemberCardConfigDTO;
import com.gic.enterprise.entity.TabWmMemberCardConfig;
import com.gic.enterprise.service.WmMemberCardConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service("wmMemberCardConfigService")
public class WmMemberCardConfigServiceImpl implements WmMemberCardConfigService{
@Autowired
private TabWmMemberCardConfigMapper tabWmMemberCardConfigMapper;
@Override
public Integer saveWmMemberCardConfig(WmMemberCardConfigDTO dto) {
Date now = new Date();
dto.setUpdateTime(now);
dto.setCreateTime(now);
dto.setStatus(1);
TabWmMemberCardConfig record = EntityUtil.changeEntityNew(TabWmMemberCardConfig.class, dto);
tabWmMemberCardConfigMapper.insert(record);
return record.getMemberCardConfigId();
}
@Override
public void updateWmMemberCardConfig(WmMemberCardConfigDTO dto) {
dto.setUpdateTime(new Date());
TabWmMemberCardConfig record = EntityUtil.changeEntityNew(TabWmMemberCardConfig.class, dto);
tabWmMemberCardConfigMapper.updateByPrimaryKeySelective(record);
}
@Override
public TabWmMemberCardConfig getByWmMainAccount(String wmMainAccount) {
return tabWmMemberCardConfigMapper.getByWmMainAccount(wmMainAccount);
}
}
package com.gic.enterprise.service.impl;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.dao.mapper.TabWmOrderConfigMapper;
import com.gic.enterprise.dto.WmOrderConfigDTO;
import com.gic.enterprise.entity.TabWmOrderConfig;
import com.gic.enterprise.service.WmOrderConfigService;
import com.gic.enterprise.dao.mapper.TabWmStoreConfigMapper;
import com.gic.enterprise.dto.wm.WmStoreConfigDTO;
import com.gic.enterprise.entity.TabWmStoreConfig;
import com.gic.enterprise.service.WmStoreConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service("wmOrderConfigService")
public class WmOrderConfigServiceImpl implements WmOrderConfigService{
@Service("wmStoreConfigService")
public class WmStoreConfigServiceImpl implements WmStoreConfigService{
@Autowired
private TabWmOrderConfigMapper tabWmOrderConfigMapper;
private TabWmStoreConfigMapper tabWmStoreConfigMapper;
@Override
public Integer saveWmOrderConfig(WmOrderConfigDTO dto) {
public Integer saveWmStoreConfig(WmStoreConfigDTO dto) {
Date now = new Date();
dto.setCreateTime(now);
dto.setUpdateTime(now);
dto.setCreateTime(now);
dto.setStatus(1);
TabWmOrderConfig record = EntityUtil.changeEntityNew(TabWmOrderConfig.class, dto);
tabWmOrderConfigMapper.insert(record);
return record.getOrderConfigId();
TabWmStoreConfig record = EntityUtil.changeEntityNew(TabWmStoreConfig.class, dto);
tabWmStoreConfigMapper.insert(record);
return record.getStoreConfigId();
}
@Override
public void editWmOrderConfig(WmOrderConfigDTO dto) {
public void editWmStoreConfig(WmStoreConfigDTO dto) {
dto.setUpdateTime(new Date());
TabWmOrderConfig record = EntityUtil.changeEntityNew(TabWmOrderConfig.class, dto);
tabWmOrderConfigMapper.updateByPrimaryKeySelective(record);
TabWmStoreConfig record = EntityUtil.changeEntityNew(TabWmStoreConfig.class, dto);
tabWmStoreConfigMapper.updateByPrimaryKeySelective(record);
}
@Override
public TabWmOrderConfig getByWmMainAccount(String wmMainAccount) {
return tabWmOrderConfigMapper.getByWmMainAccount(wmMainAccount);
public TabWmStoreConfig getByWmMainAccount(String wmMainAccount, Integer storeConfigType) {
return tabWmStoreConfigMapper.getByWmMainAccount(wmMainAccount, storeConfigType);
}
}
......@@ -84,12 +84,6 @@ public class AppletDecorationConfigApiServiceImpl implements AppletDecorationCon
if (!mainCardResult.isSuccess()) {
return ServiceResponse.failure(mainCardResult.getCode(), mainCardResult.getMessage());
}
//默认选中和主卡关联的店铺,不可编辑
ServiceResponse<ShopDTO> shopResult = getMainCardStore(appId, enterpriseId);
if (!shopResult.isSuccess()) {
return ServiceResponse.failure(shopResult.getCode(), shopResult.getMessage());
}
ShopDTO shopDTO = shopResult.getResult();
Long mainCardId = mainCardResult.getResult();
AppletDecorationConfigDTO result = new AppletDecorationConfigDTO();
......@@ -98,8 +92,14 @@ public class AppletDecorationConfigApiServiceImpl implements AppletDecorationCon
dataAssetArea.setOrder(mainCardId.toString());
dataAssetArea.setCoupon(mainCardId.toString());
dataAssetArea.setIntegral(mainCardId.toString());
dataAssetArea.setMallOrder(shopDTO.getId().toString());
dataAssetArea.setMallOrderName(shopDTO.getName());
//默认选中和主卡关联的店铺,不可编辑
ServiceResponse<ShopDTO> shopResult = getMainCardStore(appId, enterpriseId);
if (shopResult.isSuccess()) {
ShopDTO shopDTO = shopResult.getResult();
dataAssetArea.setMallOrder(shopDTO.getId().toString());
dataAssetArea.setMallOrderName(shopDTO.getName());
}
//会员中心页面卡范围
result.setMemberCardArea(mainCardId.toString());
//数据资产对象
......@@ -311,12 +311,11 @@ public class AppletDecorationConfigApiServiceImpl implements AppletDecorationCon
//默认选中和主卡关联的店铺,不可编辑 //实时调用
ServiceResponse<ShopDTO> shopResult = getMainCardStore(appId, enterpriseId);
if (!shopResult.isSuccess()) {
return ServiceResponse.failure(shopResult.getCode(), shopResult.getMessage());
if (shopResult.isSuccess()) {
ShopDTO shopDTO = shopResult.getResult();
appletDataAssetArea.setMallOrder(shopDTO.getId().toString());
appletDataAssetArea.setMallOrderName(shopDTO.getName());
}
ShopDTO shopDTO = shopResult.getResult();
appletDataAssetArea.setMallOrder(shopDTO.getId().toString());
appletDataAssetArea.setMallOrderName(shopDTO.getName());
//数据资产设置
dto.setDataAssetArea(JSON.toJSONString(appletDataAssetArea));
......
......@@ -3,12 +3,6 @@ package com.gic.enterprise.service.outer.impl;
import java.util.List;
import java.util.Optional;
import com.gic.enterprise.dto.WmMemberCardConfigDTO;
import com.gic.enterprise.dto.WmOrderConfigDTO;
import com.gic.enterprise.entity.TabWmMemberCardConfig;
import com.gic.enterprise.entity.TabWmOrderConfig;
import com.gic.enterprise.service.WmMemberCardConfigService;
import com.gic.enterprise.service.WmOrderConfigService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -16,10 +10,15 @@ import org.springframework.stereotype.Service;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.EntityUtil;
import com.gic.enterprise.constant.MallModeEnum;
import com.gic.enterprise.constant.WmStoreConfigTypeEnum;
import com.gic.enterprise.dto.WmMemberCardConfigDTO;
import com.gic.enterprise.dto.WmStoreDTO;
import com.gic.enterprise.dto.wm.WmStoreConfigDTO;
import com.gic.enterprise.entity.TabWmStore;
import com.gic.enterprise.entity.TabWmStoreConfig;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.service.WmStoreApiService;
import com.gic.enterprise.service.WmStoreConfigService;
import com.gic.enterprise.service.WmStoreService;
@Service("wmStoreApiService")
......@@ -27,9 +26,7 @@ public class WmStoreApiServiceImpl implements WmStoreApiService {
@Autowired
private WmStoreService wmStoreService;
@Autowired
private WmMemberCardConfigService wmMemberCardConfigService;
@Autowired
private WmOrderConfigService wmOrderConfigService;
private WmStoreConfigService wmStoreConfigService;
@Override
public ServiceResponse<Integer> saveWmStore(WmStoreDTO wmStoreDTO) {
......@@ -63,8 +60,7 @@ public class WmStoreApiServiceImpl implements WmStoreApiService {
@Override
public ServiceResponse<List<WmStoreDTO>> listWmStore(Integer enterpriseId) {
List<TabWmStore> list = wmStoreService.listWmStore(enterpriseId);
return ServiceResponse.success(
EntityUtil.changeEntityListNew(WmStoreDTO.class, list));
return ServiceResponse.success(EntityUtil.changeEntityListNew(WmStoreDTO.class, list));
}
@Override
......@@ -76,59 +72,46 @@ public class WmStoreApiServiceImpl implements WmStoreApiService {
return ServiceResponse.success(EntityUtil.changeEntityNew(WmStoreDTO.class, record));
}
@Override
public ServiceResponse<Integer> saveOrUpdateWmMemberCardConfig(WmMemberCardConfigDTO dto) {
ServiceResponse validParam = validWmMemberCardConfig(dto);
if (!validParam.isSuccess()) {
return ServiceResponse.failure(validParam.getCode(), validParam.getMessage());
}
TabWmMemberCardConfig record = wmMemberCardConfigService.getByWmMainAccount(dto.getWmMainAccount());
if (record == null) {
return ServiceResponse.success(wmMemberCardConfigService.saveWmMemberCardConfig(dto));
}
//编辑
dto.setMemberCardConfigId(record.getMemberCardConfigId());
wmMemberCardConfigService.updateWmMemberCardConfig(dto);
return ServiceResponse.success(record.getMemberCardConfigId());
}
@Override
public ServiceResponse<WmMemberCardConfigDTO> getWmMemberCardConfigByWmMainAccount(String wmMainAccount) {
TabWmMemberCardConfig record = wmMemberCardConfigService.getByWmMainAccount(wmMainAccount);
if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "还未配置");
}
return ServiceResponse.success(EntityUtil.changeEntityNew(WmMemberCardConfigDTO.class, record));
}
@Override
public ServiceResponse<Integer> saveOrUpdateWmOrderConfig(WmOrderConfigDTO dto) {
public ServiceResponse<Integer> saveOrUpdateWmStoreConfig(WmStoreConfigDTO dto) {
if (dto.getEnterpriseId() == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "商户ID不能为空");
}
dto.setOrderFromMode(Optional.ofNullable(dto.getOrderFromMode()).orElse(1));
dto.setWmOrderToOffline(Optional.ofNullable(dto.getWmOrderToOffline()).orElse(0));
dto.setOfflineDifferentiateWm(Optional.ofNullable(dto.getOfflineDifferentiateWm()).orElse(0));
if (!WmStoreConfigTypeEnum.isRightCode(dto.getStoreConfigType())) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "店铺配置类型值非法");
}
TabWmStore wmStore = wmStoreService.getByWmMainAccount(dto.getWmMainAccount());
if (wmStore == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "微盟主账号错误,查无数据");
}
TabWmOrderConfig record = wmOrderConfigService.getByWmMainAccount(dto.getWmMainAccount());
if (StringUtils.isBlank(dto.getStoreConfigJson())) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "店铺配置信息不能为空");
}
TabWmStoreConfig record = wmStoreConfigService.getByWmMainAccount(dto.getWmMainAccount(),
dto.getStoreConfigType());
if (record == null) {
return ServiceResponse.success(wmOrderConfigService.saveWmOrderConfig(dto));
//新增
return ServiceResponse.success(wmStoreConfigService.saveWmStoreConfig(dto));
}
dto.setOrderConfigId(record.getOrderConfigId());
wmOrderConfigService.editWmOrderConfig(dto);
return ServiceResponse.success(record.getOrderConfigId());
dto.setStoreConfigId(record.getStoreConfigId());
wmStoreConfigService.editWmStoreConfig(dto);
return ServiceResponse.success(record.getStoreConfigId());
}
@Override
public ServiceResponse<WmOrderConfigDTO> getWmOrderConfigByWmMainAccount(String wmMainAccount) {
TabWmOrderConfig record = wmOrderConfigService.getByWmMainAccount(wmMainAccount);
public ServiceResponse<WmStoreConfigDTO> getWmStoreConfigByWmMainAccount(String wmMainAccount,
Integer wmStoreConfigType) {
TabWmStoreConfig record = wmStoreConfigService.getByWmMainAccount(wmMainAccount, wmStoreConfigType);
if (record == null) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "还未配置");
if (!WmStoreConfigTypeEnum.isRightCode(wmStoreConfigType)) {
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(), "店铺配置类型值非法");
}
//新增
return ServiceResponse.failure(ErrorCode.PARAMETER_ERROR.getCode(),
WmStoreConfigTypeEnum.getMessageByCode(wmStoreConfigType) + "还未配置");
}
return ServiceResponse.success(EntityUtil.changeEntityNew(WmOrderConfigDTO.class, record));
return ServiceResponse.success(EntityUtil.changeEntityNew(WmStoreConfigDTO.class, record));
}
private ServiceResponse validWmMemberCardConfig(WmMemberCardConfigDTO dto) {
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.enterprise.dao.mapper.TabWmStoreConfigMapper">
<resultMap id="BaseResultMap" type="com.gic.enterprise.entity.TabWmStoreConfig">
<id column="store_config_id" jdbcType="INTEGER" property="storeConfigId" />
<result column="enterprise_id" jdbcType="INTEGER" property="enterpriseId" />
<result column="wm_main_account" jdbcType="VARCHAR" property="wmMainAccount" />
<result column="store_config_type" jdbcType="INTEGER" property="storeConfigType" />
<result column="store_config_json" jdbcType="VARCHAR" property="storeConfigJson" />
<result column="status" jdbcType="INTEGER" property="status" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
store_config_id, enterprise_id, wm_main_account, store_config_type, store_config_json,
status, create_time, update_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tab_wm_store_config
where store_config_id = #{storeConfigId,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from tab_wm_store_config
where store_config_id = #{storeConfigId,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.gic.enterprise.entity.TabWmStoreConfig" useGeneratedKeys="true" keyProperty="storeConfigId">
insert into tab_wm_store_config (store_config_id, enterprise_id, wm_main_account,
store_config_type, store_config_json, status,
create_time, update_time)
values (#{storeConfigId,jdbcType=INTEGER}, #{enterpriseId,jdbcType=INTEGER}, #{wmMainAccount,jdbcType=VARCHAR},
#{storeConfigType,jdbcType=INTEGER}, #{storeConfigJson,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.gic.enterprise.entity.TabWmStoreConfig">
insert into tab_wm_store_config
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="storeConfigId != null">
store_config_id,
</if>
<if test="enterpriseId != null">
enterprise_id,
</if>
<if test="wmMainAccount != null">
wm_main_account,
</if>
<if test="storeConfigType != null">
store_config_type,
</if>
<if test="storeConfigJson != null">
store_config_json,
</if>
<if test="status != null">
status,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="storeConfigId != null">
#{storeConfigId,jdbcType=INTEGER},
</if>
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=INTEGER},
</if>
<if test="wmMainAccount != null">
#{wmMainAccount,jdbcType=VARCHAR},
</if>
<if test="storeConfigType != null">
#{storeConfigType,jdbcType=INTEGER},
</if>
<if test="storeConfigJson != null">
#{storeConfigJson,jdbcType=VARCHAR},
</if>
<if test="status != null">
#{status,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.enterprise.entity.TabWmStoreConfig">
update tab_wm_store_config
<set>
<if test="enterpriseId != null">
enterprise_id = #{enterpriseId,jdbcType=INTEGER},
</if>
<if test="wmMainAccount != null">
wm_main_account = #{wmMainAccount,jdbcType=VARCHAR},
</if>
<if test="storeConfigType != null">
store_config_type = #{storeConfigType,jdbcType=INTEGER},
</if>
<if test="storeConfigJson != null">
store_config_json = #{storeConfigJson,jdbcType=VARCHAR},
</if>
<if test="status != null">
status = #{status,jdbcType=INTEGER},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where store_config_id = #{storeConfigId,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.gic.enterprise.entity.TabWmStoreConfig">
update tab_wm_store_config
set enterprise_id = #{enterpriseId,jdbcType=INTEGER},
wm_main_account = #{wmMainAccount,jdbcType=VARCHAR},
store_config_type = #{storeConfigType,jdbcType=INTEGER},
store_config_json = #{storeConfigJson,jdbcType=VARCHAR},
status = #{status,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where store_config_id = #{storeConfigId,jdbcType=INTEGER}
</update>
<select id="getByWmMainAccount" resultMap="BaseResultMap">
select <include refid="Base_Column_List"></include>
from tab_wm_store_config
where wm_main_account = #{wmMainAccount}
and status = 1
and store_config_type = #{storeConfigType}
</select>
</mapper>
\ No newline at end of file
......@@ -13,9 +13,9 @@ import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.download.utils.OperationResultUtils;
import com.gic.enterprise.constant.MallModeEnum;
import com.gic.enterprise.dto.WmMemberCardConfigDTO;
import com.gic.enterprise.dto.WmOrderConfigDTO;
import com.gic.enterprise.constant.WmStoreConfigTypeEnum;
import com.gic.enterprise.dto.WmStoreDTO;
import com.gic.enterprise.dto.wm.WmStoreConfigDTO;
import com.gic.enterprise.service.WmStoreApiService;
import com.gic.enterprise.utils.ResultControllerUtils;
import com.gic.enterprise.utils.UserDetailUtils;
......@@ -76,29 +76,28 @@ public class WmMallStoreController {
return RestResponse.success(result);
}
@RequestMapping("/save-or-update-wm-member-card-config")
public RestResponse saveOrUpdateWmMemberCardConfig(WmMemberCardConfigDTO dto) {
dto.setEnterpriseId(UserDetailUtils.getUserDetail().getEnterpriseId());
return OperationResultUtils.operationResult(wmStoreApiService.saveOrUpdateWmMemberCardConfig(dto),
OperationResultUtils.LOG_EDIT + "微盟商城-会员卡配置", dto.getWmMainAccount());
}
@RequestMapping("/get-wm-member-card-config-by-wm-main-account")
public RestResponse getWmMemberCardConfigByWmMainAccount(String wmMainAccount) {
return ResultControllerUtils
.commonResult(wmStoreApiService.getWmMemberCardConfigByWmMainAccount(wmMainAccount));
@RequestMapping("/list-wm-store-config")
public RestResponse listWmStoreConfig() {
Map<String, String> result = new HashMap<>(16);
for (WmStoreConfigTypeEnum modeEnum : WmStoreConfigTypeEnum.values()) {
result.put(String.valueOf(modeEnum.getCode()), modeEnum.getMessage());
}
return RestResponse.success(result);
}
@RequestMapping("/save-or-update-wm-order-config")
public RestResponse saveOrUpdateWmOrderConfig(WmOrderConfigDTO dto) {
@RequestMapping("/save-or-update-wm-store-config")
public RestResponse saveOrUpdateWmStoreConfig(WmStoreConfigDTO dto) {
dto.setEnterpriseId(UserDetailUtils.getUserDetail().getEnterpriseId());
return OperationResultUtils.operationResult(wmStoreApiService.saveOrUpdateWmOrderConfig(dto),
OperationResultUtils.LOG_EDIT + "微盟商城-订单配置", dto.getWmMainAccount());
return OperationResultUtils
.operationResult(wmStoreApiService.saveOrUpdateWmStoreConfig(dto),
OperationResultUtils.LOG_EDIT + "微盟商城-店铺配置"
+ WmStoreConfigTypeEnum.getMessageByCode(dto.getStoreConfigType()),
dto.getWmMainAccount());
}
@RequestMapping("/get-wm-order-config-by-wm-main-account")
public RestResponse getWmOrderConfigByWmMainAccount(String wmMainAccount) {
@RequestMapping("/get-wm-store-config-by-wm-main-account")
public RestResponse getWmStoreConfigByWmMainAccount(String wmMainAccount, Integer wmStoreConfigType) {
return ResultControllerUtils
.commonResult(wmStoreApiService.getWmOrderConfigByWmMainAccount(wmMainAccount));
.commonResult(wmStoreApiService.getWmStoreConfigByWmMainAccount(wmMainAccount, wmStoreConfigType));
}
}
package com.gic.operation.web.controller;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import com.gic.auth.constant.UserConstants;
import com.gic.authcenter.security.core.dto.EnterpriseTempDTO;
import com.gic.authcenter.security.core.dto.UserDetailsVO;
import com.gic.enterprise.dto.EnterpriseResourceRelDTO;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.qo.EnterpriseQO;
import com.gic.enterprise.utils.AutoCreatePasswordUtils;
import com.gic.enterprise.utils.UserDetailUtils;
import com.gic.finance.constant.EnterprisePlatformTypeEnum;
import com.gic.finance.constant.OrderTypeEnum;
import com.gic.marketing.process.api.service.sms.SmsSendApiService;
import com.gic.open.api.dto.market.MarketUserDTO;
import com.gic.open.api.service.market.MarketAppCategoryApiService;
import com.gic.open.api.service.market.MarketUserApiService;
import com.gic.operation.web.vo.ApplicationTokenVO;
import com.gic.operation.web.vo.CouponLogVO;
import com.gic.operation.web.vo.MarketAppCategoryVO;
import com.gic.authcenter.security.core.constant.DataResourceEnum;
import com.gic.authcenter.security.core.dto.AuthcenterUserDetails;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
......@@ -35,9 +17,12 @@ import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.auth.constant.UserConstants;
import com.gic.auth.dto.UserDTO;
import com.gic.auth.service.MenuApiService;
import com.gic.auth.service.UserApiService;
import com.gic.authcenter.security.core.dto.EnterpriseTempDTO;
import com.gic.authcenter.security.core.dto.UserDetailsVO;
import com.gic.authcenter.security.core.util.UserUtils;
import com.gic.commons.util.CollectionUtil;
import com.gic.commons.util.EntityUtil;
......@@ -48,27 +33,39 @@ import com.gic.enterprise.constant.EnterpriseVersionStatusEnum;
import com.gic.enterprise.dto.EnterpriseDTO;
import com.gic.enterprise.dto.EnterpriseInitDTO;
import com.gic.enterprise.dto.EnterpriseLicenseDTO;
import com.gic.enterprise.dto.EnterpriseResourceRelDTO;
import com.gic.enterprise.dto.market.OrderBuyLicenseDTO;
import com.gic.enterprise.dto.market.OrderGicDTO;
import com.gic.enterprise.error.ErrorCode;
import com.gic.enterprise.qo.BuyForGicQO;
import com.gic.enterprise.qo.EnterpriseQO;
import com.gic.enterprise.qo.OrderServiceQO;
import com.gic.enterprise.response.EnterpriseRestResponse;
import com.gic.enterprise.service.EnterpriseApiService;
import com.gic.enterprise.service.EnterpriseInitApiService;
import com.gic.enterprise.utils.AutoCreatePasswordUtils;
import com.gic.enterprise.utils.ResultControllerUtils;
import com.gic.finance.constant.EnterprisePlatformTypeEnum;
import com.gic.finance.constant.OrderTypeEnum;
import com.gic.finance.dto.TransferAccountsApprovalDTO;
import com.gic.finance.service.TransferAccountsApprovalApiService;
import com.gic.marketing.process.api.service.sms.SmsSendApiService;
import com.gic.open.api.dto.ApplicationTokenDTO;
import com.gic.open.api.dto.OrderDTO;
import com.gic.open.api.dto.OrderItemDTO;
import com.gic.open.api.dto.market.MarketUserDTO;
import com.gic.open.api.service.AppTokenApiService;
import com.gic.open.api.service.CouponApiService;
import com.gic.open.api.service.OrderApiService;
import com.gic.open.api.service.ServeApiService;
import com.gic.open.api.service.market.MarketAppCategoryApiService;
import com.gic.open.api.service.market.MarketUserApiService;
import com.gic.operation.web.qo.PageQO;
import com.gic.operation.web.utils.UserPasswordUtil;
import com.gic.operation.web.vo.ApplicationTokenVO;
import com.gic.operation.web.vo.CouponLogVO;
import com.gic.operation.web.vo.MarketAppCategoryVO;
import com.gic.operation.web.vo.enterprise.*;
import com.gic.store.utils.CommonResultControllerUtils;
/**
* 商户相关操作
......@@ -152,22 +149,33 @@ public class EnterpriseController {
orderBy = 0;
}
UserDetailsVO user = UserUtils.getUser();
//运维拥有的权限商户ID集合
List<EnterpriseTempDTO> enterpriseTemp = user.getEnterpriseList();
List<Integer> enterpriseIdList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(enterpriseTemp)) {
for (EnterpriseTempDTO enterpriseTempDTO : enterpriseTemp) {
enterpriseIdList.add(enterpriseTempDTO.getId());
//是否拥有全部商户
boolean permissionAll = user.getAuthorities().stream().anyMatch(
sga -> Objects.equals(sga.getAuthority(),
AuthcenterUserDetails.DATA_PREFIX + DataResourceEnum.all_enterprise.name()
)
);
List<Integer> enterpriseIdList = null;
if (!permissionAll) {
//运维拥有的权限商户ID集合
enterpriseIdList = new ArrayList<>();
List<EnterpriseTempDTO> enterpriseTemp = user.getEnterpriseList();
if (CollectionUtils.isNotEmpty(enterpriseTemp)) {
for (EnterpriseTempDTO enterpriseTempDTO : enterpriseTemp) {
enterpriseIdList.add(Integer.parseInt(enterpriseTempDTO.getEnterpriseId()));
}
}
}
EnterpriseQO params = new EnterpriseQO()
.setSearch(search).setServiceVersion(serviceVersion).setCreatorId(user.getId())
.setEnterpriseIdList(enterpriseIdList).setOrderBy(EnterpriseListOrderByEnum.getOrderBy(orderBy))
.setEnterpriseIdList(Optional.ofNullable(enterpriseIdList).orElse(Arrays.asList(-9999))).setOrderBy(EnterpriseListOrderByEnum.getOrderBy(orderBy))
.setServiceStatus(serviceStatus);
pageQO.setCurrentPage(pageQO.getCurrentPage());
pageQO.setPageSize(pageQO.getPageSize());
//todo 现放开过滤
params.setListAll(1);
if (permissionAll) {
params.setListAll(1);
}
return ResultControllerUtils.commonResult(enterpriseApiService.listEnterprise(params));
}
......@@ -224,8 +232,7 @@ public class EnterpriseController {
@RequestMapping("/list-enterprise-init-info")
public RestResponse listEnterpriseInitInfo(Integer enterpriseId) {
List<EnterpriseInitDTO> dtoList = (List<EnterpriseInitDTO>) CommonResultControllerUtils
.commonResult(enterpriseInitApiService.listByEnterpriseId(enterpriseId));
List<EnterpriseInitDTO> dtoList = enterpriseInitApiService.listByEnterpriseId(enterpriseId).getResult();
return RestResponse.success(changeListToTree(0, dtoList));
}
......@@ -290,20 +297,17 @@ public class EnterpriseController {
@RequestMapping("/get-enterprise")
public RestResponse editEnterprise(Integer enterpriseId) {
return RestResponse.success(
CommonResultControllerUtils.commonResult(enterpriseApiService.getEnterpriseById(enterpriseId)));
return ResultControllerUtils.commonResult(enterpriseApiService.getEnterpriseById(enterpriseId));
}
@RequestMapping("/enable-enterprise")
public RestResponse enableEnterprise(Integer enterpriseId) {
return RestResponse
.success(CommonResultControllerUtils.commonResult(enterpriseApiService.enableEnterprise(enterpriseId)));
return ResultControllerUtils.commonResult(enterpriseApiService.enableEnterprise(enterpriseId));
}
@RequestMapping("/disable-enterprise")
public RestResponse disableEnterprise(Integer enterpriseId) {
return RestResponse.success(
CommonResultControllerUtils.commonResult(enterpriseApiService.disableEnterprise(enterpriseId)));
return ResultControllerUtils.commonResult(enterpriseApiService.disableEnterprise(enterpriseId));
}
@RequestMapping("/basic-service-info")
......@@ -318,8 +322,7 @@ public class EnterpriseController {
@RequestMapping("/list-gic-default-service")
public RestResponse listGicDefaultService() {
return RestResponse
.success(CommonResultControllerUtils.commonResult(serveApiService.listServePropByGICDefaultAPP()));
return ResultControllerUtils.commonResult(serveApiService.listServePropByGICDefaultAPP());
}
@RequestMapping("/enterprise-detail")
......
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