Browse Source

外部应用管理增加内部客户ing

dev_shibei_match
wxz 5 years ago
parent
commit
3de10a1564
  1. 9
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ExternalAppFormDTO.java
  2. 4
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/ExternalAppResultDTO.java
  3. 6
      epmet-module/epmet-common-service/common-service-server/pom.xml
  4. 6
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ExternalAppController.java
  5. 2
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/entity/ExternalAppEntity.java
  6. 41
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/enu/CustomerTypeEnum.java
  7. 4
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ExternalAppService.java
  8. 37
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ExternalAppServiceImpl.java
  9. 1
      epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/V0.0.4__add_extcustomer_source.sql
  10. 3
      epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/ExternalAppDao.xml
  11. 3
      epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java

9
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ExternalAppFormDTO.java

@ -20,6 +20,15 @@ public class ExternalAppFormDTO {
@NotBlank(message = "缺少所属客户ID", groups = { AddExternalApp.class, UpdateExternalApp.class }) @NotBlank(message = "缺少所属客户ID", groups = { AddExternalApp.class, UpdateExternalApp.class })
private String customerId; private String customerId;
/**
* 客户类型
* external:外部
* internal:内部
*/
@NotBlank(message = "缺少客户类型", groups = { AddExternalApp.class, UpdateExternalApp.class })
private String customerType;
private Integer pageNo = 1; private Integer pageNo = 1;
private Integer pageSize = 10; private Integer pageSize = 10;

4
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/ExternalAppResultDTO.java

@ -21,6 +21,10 @@ public class ExternalAppResultDTO {
*/ */
private String customerName; private String customerName;
private String customerType;
private String customerTypeName;
/** /**
* 秘钥 * 秘钥
*/ */

6
epmet-module/epmet-common-service/common-service-server/pom.xml

@ -64,6 +64,12 @@
<artifactId>jjwt</artifactId> <artifactId>jjwt</artifactId>
<version>0.7.0</version> <version>0.7.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>oper-crm-client</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

6
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ExternalAppController.java

@ -64,8 +64,9 @@ public class ExternalAppController {
String appName = formDTO.getAppName(); String appName = formDTO.getAppName();
String customerId = formDTO.getCustomerId(); String customerId = formDTO.getCustomerId();
String customerType = formDTO.getCustomerType();
ExternalAppResultDTO dto = externalAppService.add(appName, customerId); ExternalAppResultDTO dto = externalAppService.add(appName, customerId, customerType);
return new Result<ExternalAppResultDTO>().ok(dto); return new Result<ExternalAppResultDTO>().ok(dto);
} }
@ -82,8 +83,9 @@ public class ExternalAppController {
String appId = formDTO.getAppId(); String appId = formDTO.getAppId();
String appName = formDTO.getAppName(); String appName = formDTO.getAppName();
String customerId = formDTO.getCustomerId(); String customerId = formDTO.getCustomerId();
String customerType = formDTO.getCustomerType();
ExternalAppResultDTO dto = externalAppService.updateById(appId, appName, customerId); ExternalAppResultDTO dto = externalAppService.updateById(appId, appName, customerId, customerType);
return new Result<ExternalAppResultDTO>().ok(dto); return new Result<ExternalAppResultDTO>().ok(dto);
} }

2
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/entity/ExternalAppEntity.java

@ -48,4 +48,6 @@ public class ExternalAppEntity extends BaseEpmetEntity {
*/ */
private String customerId; private String customerId;
private String customerType;
} }

41
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/enu/CustomerTypeEnum.java

@ -0,0 +1,41 @@
package com.epmet.enu;
import org.apache.commons.lang3.StringUtils;
/**
* 客户类型枚举
*/
public enum CustomerTypeEnum {
INTERNAL("internal", "内部应用"),
EXTERNAL("external", "外部应用"),
UN_KNOW("unknow", "未知应用");
private String type;
private String name;
CustomerTypeEnum(String type, String name) {
this.type = type;
this.name = name;
}
public static String getName(String type) {
if (StringUtils.isBlank(type)) {
return null;
}
for (CustomerTypeEnum value : CustomerTypeEnum.values()) {
if (value.type.equals(type)) {
return value.name;
}
}
return UN_KNOW.name;
}
public String getType() {
return type;
}
public String getName() {
return name;
}
}

4
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ExternalAppService.java

@ -27,9 +27,9 @@ import com.epmet.dto.result.ExternalAppResultDTO;
* @since v1.0.0 2020-08-18 * @since v1.0.0 2020-08-18
*/ */
public interface ExternalAppService { public interface ExternalAppService {
ExternalAppResultDTO add(String appName, String customerId); ExternalAppResultDTO add(String appName, String customerId, String customerType);
ExternalAppResultDTO updateById(String appId, String appName, String customerId); ExternalAppResultDTO updateById(String appId, String appName, String customerId, String customerType);
PageData<ExternalAppResultDTO> listPage(Integer pageNo, Integer pageSize, String customerId); PageData<ExternalAppResultDTO> listPage(Integer pageNo, Integer pageSize, String customerId);

37
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ExternalAppServiceImpl.java

@ -20,15 +20,21 @@ package com.epmet.service.impl;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dao.ExternalAppDao; import com.epmet.dao.ExternalAppDao;
import com.epmet.dao.ExternalAppSecretDao; import com.epmet.dao.ExternalAppSecretDao;
import com.epmet.dao.ExternalCustomerDao; import com.epmet.dao.ExternalCustomerDao;
import com.epmet.dto.CustomerDTO;
import com.epmet.dto.result.ExternalAppResultDTO; import com.epmet.dto.result.ExternalAppResultDTO;
import com.epmet.entity.ExternalAppEntity; import com.epmet.entity.ExternalAppEntity;
import com.epmet.entity.ExternalAppSecretEntity; import com.epmet.entity.ExternalAppSecretEntity;
import com.epmet.enu.CustomerTypeEnum;
import com.epmet.feign.OperCrmOpenFeignClient;
import com.epmet.service.ExternalAppService; import com.epmet.service.ExternalAppService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -45,6 +51,8 @@ import java.util.UUID;
@Service @Service
public class ExternalAppServiceImpl implements ExternalAppService { public class ExternalAppServiceImpl implements ExternalAppService {
private static Logger logger = LoggerFactory.getLogger(ExternalAppServiceImpl.class);
@Autowired @Autowired
private ExternalAppDao externalAppDao; private ExternalAppDao externalAppDao;
@ -54,9 +62,12 @@ public class ExternalAppServiceImpl implements ExternalAppService {
@Autowired @Autowired
private ExternalCustomerDao externalCustomerDao; private ExternalCustomerDao externalCustomerDao;
@Autowired
private OperCrmOpenFeignClient operCrmOpenFeignClient;
@Transactional @Transactional
@Override @Override
public ExternalAppResultDTO add(String appName, String customerId) { public ExternalAppResultDTO add(String appName, String customerId, String customerType) {
Integer count = externalAppDao.countByAppNameAndCustomerId(appName, customerId); Integer count = externalAppDao.countByAppNameAndCustomerId(appName, customerId);
if (count > 0) { if (count > 0) {
throw new RenException(EpmetErrorCode.OPER_EXTERNAL_APP_EXISTS.getCode(), throw new RenException(EpmetErrorCode.OPER_EXTERNAL_APP_EXISTS.getCode(),
@ -72,6 +83,7 @@ public class ExternalAppServiceImpl implements ExternalAppService {
ExternalAppEntity appEntity = new ExternalAppEntity(); ExternalAppEntity appEntity = new ExternalAppEntity();
appEntity.setAppName(appName); appEntity.setAppName(appName);
appEntity.setCustomerId(customerId); appEntity.setCustomerId(customerId);
appEntity.setCustomerType(customerType);
externalAppDao.insert(appEntity); externalAppDao.insert(appEntity);
// 秘钥表插入 // 秘钥表插入
@ -98,7 +110,7 @@ public class ExternalAppServiceImpl implements ExternalAppService {
} }
@Override @Override
public ExternalAppResultDTO updateById(String appId, String appName, String customerId) { public ExternalAppResultDTO updateById(String appId, String appName, String customerId, String customerType) {
ExternalAppEntity exists = externalAppDao.selectById(appId); ExternalAppEntity exists = externalAppDao.selectById(appId);
if (exists == null) { if (exists == null) {
throw new RenException(EpmetErrorCode.OPER_EXTERNAL_CUSTOMER_NOT_EXISTS.getCode(), throw new RenException(EpmetErrorCode.OPER_EXTERNAL_CUSTOMER_NOT_EXISTS.getCode(),
@ -113,6 +125,7 @@ public class ExternalAppServiceImpl implements ExternalAppService {
exists.setAppName(appName); exists.setAppName(appName);
exists.setCustomerId(customerId); exists.setCustomerId(customerId);
exists.setCustomerType(customerType);
externalAppDao.updateById(exists); externalAppDao.updateById(exists);
ExternalAppResultDTO resultDTO = new ExternalAppResultDTO(); ExternalAppResultDTO resultDTO = new ExternalAppResultDTO();
@ -126,6 +139,26 @@ public class ExternalAppServiceImpl implements ExternalAppService {
public PageData<ExternalAppResultDTO> listPage(Integer pageNo, Integer pageSize, String customerId) { public PageData<ExternalAppResultDTO> listPage(Integer pageNo, Integer pageSize, String customerId) {
PageHelper.startPage(pageNo, pageSize); PageHelper.startPage(pageNo, pageSize);
List<ExternalAppResultDTO> list = externalAppDao.list(customerId); List<ExternalAppResultDTO> list = externalAppDao.list(customerId);
for (ExternalAppResultDTO app : list) {
// 设置客户类型中文
app.setCustomerTypeName(CustomerTypeEnum.getName(app.getCustomerType()));
if (CustomerTypeEnum.INTERNAL.getType().equals(app.getCustomerType())) {
// 如果是内部客户,那么需要去oper_crm库查询客户信息
CustomerDTO form = new CustomerDTO();
form.setId(app.getCustomerId());
Result<CustomerDTO> customerInfoRst = operCrmOpenFeignClient.getCustomerInfo(form);
if (! customerInfoRst.success()) {
logger.error("common service->ExternalAppServiceImpl#listPage查询内部客户失败:{}", customerInfoRst.getInternalMsg());
continue;
}
// 设置客户名称
CustomerDTO customerInfo = customerInfoRst.getData();
if (customerInfo != null) {
app.setCustomerName(customerInfo.getCustomerName());
}
}
}
PageInfo<ExternalAppResultDTO> pageInfo = new PageInfo<>(list); PageInfo<ExternalAppResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal()); return new PageData<>(list, pageInfo.getTotal());
} }

1
epmet-module/epmet-common-service/common-service-server/src/main/resources/db/migration/V0.0.4__add_extcustomer_source.sql

@ -0,0 +1 @@
alter table external_app add column CUSTOMER_SOURCE varchar(20) not null after CUSTOMER_ID;

3
epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/ExternalAppDao.xml

@ -33,10 +33,11 @@
ea.APP_NAME, ea.APP_NAME,
ea.CUSTOMER_ID, ea.CUSTOMER_ID,
ec.CUSTOMER_NAME , ec.CUSTOMER_NAME ,
ea.CUSTOMER_TYPE,
eas.SECRET eas.SECRET
FROM FROM
external_app ea external_app ea
INNER JOIN external_customer ec ON ( ea.CUSTOMER_ID = ec.ID ) LEFT JOIN external_customer ec ON ( ea.CUSTOMER_ID = ec.ID )
LEFT JOIN external_app_secret eas ON (ea.ID = eas.APP_ID) LEFT JOIN external_app_secret eas ON (ea.ID = eas.APP_ID)
<where> <where>
ea.DEL_FLAG = 0 ea.DEL_FLAG = 0

3
epmet-module/oper-crm/oper-crm-client/src/main/java/com/epmet/feign/OperCrmOpenFeignClient.java

@ -19,7 +19,8 @@ import java.util.List;
* @author yinzuomei@elink-cn.com * @author yinzuomei@elink-cn.com
* @date 2020/6/4 13:25 * @date 2020/6/4 13:25
*/ */
@FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmOpenFeignClientFallback.class) //@FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmOpenFeignClientFallback.class)
@FeignClient(name = ServiceConstant.OPER_CRM_SERVER, fallback = OperCrmOpenFeignClientFallback.class, url = "118.190.150.119:48080/api")
public interface OperCrmOpenFeignClient { public interface OperCrmOpenFeignClient {
/** /**
* 获取客户信息 * 获取客户信息

Loading…
Cancel
Save