Browse Source

Merge branch 'dev_externalappauth' into dev_screen_data

dev_shibei_match
wxz 5 years ago
parent
commit
193e3ae535
  1. 10
      epmet-commons/epmet-commons-dynamic-datasource/src/main/java/com/epmet/commons/dynamic/datasource/annotation/DataSource.java
  2. 42
      epmet-commons/epmet-commons-dynamic-datasource/src/main/java/com/epmet/commons/dynamic/datasource/aspect/DataSourceAspect.java
  3. 12
      epmet-commons/epmet-commons-dynamic-datasource/src/main/java/com/epmet/commons/dynamic/datasource/bean/DataSourceParam.java
  4. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java
  5. 25
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ExternalAppFormDTO.java
  6. 23
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ExternalCustomerFormDTO.java
  7. 29
      epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/result/ExternalAppResultDTO.java
  8. 54
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ExternalAppController.java
  9. 45
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ExternalCustomerController.java
  10. 11
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/ExternalAppDao.java
  11. 15
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/ExternalCustomerDao.java
  12. 1
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ExternalAppAuthService.java
  13. 8
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ExternalAppService.java
  14. 9
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ExternalCustomerService.java
  15. 8
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ExternalAppAuthServiceImpl.java
  16. 100
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ExternalAppServiceImpl.java
  17. 36
      epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ExternalCustomerServiceImpl.java
  18. 45
      epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/ExternalAppDao.xml
  19. 16
      epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/ExternalCustomerDao.xml

10
epmet-commons/epmet-commons-dynamic-datasource/src/main/java/com/epmet/commons/dynamic/datasource/annotation/DataSource.java

@ -21,5 +21,15 @@ import java.lang.annotation.*;
@Documented
@Inherited
public @interface DataSource {
/**
* 直接指定数据源名称
* @return
*/
String value() default "";
/**
* 是否从参数中获取数据源名称优先级高于value
* @return
*/
boolean datasourceNameFromArg() default false;
}

42
epmet-commons/epmet-commons-dynamic-datasource/src/main/java/com/epmet/commons/dynamic/datasource/aspect/DataSourceAspect.java

@ -9,7 +9,9 @@
package com.epmet.commons.dynamic.datasource.aspect;
import com.epmet.commons.dynamic.datasource.annotation.DataSource;
import com.epmet.commons.dynamic.datasource.bean.DataSourceParam;
import com.epmet.commons.dynamic.datasource.config.DynamicContextHolder;
import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@ -22,6 +24,7 @@ import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter;
/**
* 多数据源切面处理类
@ -52,9 +55,9 @@ public class DataSourceAspect {
if(targetDataSource != null || methodDataSource != null){
String value;
if(methodDataSource != null){
value = methodDataSource.value();
value = getDatasourceName(methodDataSource, signature.getMethod().getParameters(), point.getArgs());
}else {
value = targetDataSource.value();
value = getDatasourceName(targetDataSource, signature.getMethod().getParameters(), point.getArgs());
}
DynamicContextHolder.push(value);
@ -68,4 +71,39 @@ public class DataSourceAspect {
logger.debug("clean datasource");
}
}
/**
* 获取要用到的数据源名称
* @param dataSource
* @return
*/
public String getDatasourceName(DataSource dataSource, Parameter[] methodParameters, Object[] methodArgValues) {
if (dataSource.datasourceNameFromArg()) {
// 1.从参数中动态获取数据源名称
String datasourceNameFromParam = getDatasourceNameFromArg(methodParameters, methodArgValues);
if (StringUtils.isNotBlank(datasourceNameFromParam)) {
// 如果有DatasourceParam类型的参数并且设置了datasourceName值,那么返回这个值,否则使用硬编码的
return datasourceNameFromParam;
}
}
// 2.硬编码指定数据源名称
return dataSource.value();
}
/**
* 从参数中取数据源名称
* @param parameters
* @param argsObject
* @return
*/
public String getDatasourceNameFromArg(Parameter[] parameters, Object[] argsObject) {
for (int i = 0; i < parameters.length; i++) {
if (parameters[i].getType() == DataSourceParam.class) {
DataSourceParam param = (DataSourceParam) argsObject[i];
return param.getDatasourceName();
}
}
return null;
}
}

12
epmet-commons/epmet-commons-dynamic-datasource/src/main/java/com/epmet/commons/dynamic/datasource/bean/DataSourceParam.java

@ -0,0 +1,12 @@
package com.epmet.commons.dynamic.datasource.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
@Data
@AllArgsConstructor
public class DataSourceParam {
private String datasourceName;
}

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java

@ -100,6 +100,8 @@ public enum EpmetErrorCode {
OPER_UPLOAD_FILE_OVER_SIZE(8707, "文件体积过大"),
OPER_UPLOAD_FILE_TYPE_ERROR(8708, "文件类型错误"),
OPER_EXTERNAL_APP_AUTH_ERROR(8709, "外部应用认证失败"),
OPER_EXTERNAL_CUSTOMER_NOT_EXISTS(8710, "该客户不存在"),
OPER_EXTERNAL_APP_EXISTS(8711, "应用已存在"),
// 党建声音 前端提示 88段
DRAFT_CONTENT_IS_NULL(8801, "至少需要添加一个段落"),

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

@ -0,0 +1,25 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class ExternalAppFormDTO {
public interface AddExternalApp {}
public interface UpdateExternalApp {}
@NotBlank(message = "缺少应用ID", groups = { UpdateExternalApp.class })
private String appId;
@NotBlank(message = "缺少应用名称", groups = { AddExternalApp.class, UpdateExternalApp.class })
private String appName;
@NotBlank(message = "缺少所属客户ID", groups = { AddExternalApp.class, UpdateExternalApp.class })
private String customerId;
private Integer pageNo = 1;
private Integer pageSize = 10;
}

23
epmet-module/epmet-common-service/common-service-client/src/main/java/com/epmet/dto/form/ExternalCustomerFormDTO.java

@ -3,13 +3,28 @@ package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
@Data
public class ExternalCustomerFormDTO {
@Min(0)
private Integer pageNo;
public interface ListExternalCustomerGroup {}
public interface AddExternalCustomerGroup {}
public interface UpdateExternalCustomerGroup {}
@Min(0)
private Integer pageSize;
@NotBlank(message = "缺少客户ID参数", groups = { UpdateExternalCustomerGroup.class })
private String customerId;
/**
* 客户名称
*/
@NotBlank(message = "请填写客户名称", groups = { AddExternalCustomerGroup.class, UpdateExternalCustomerGroup.class })
private String customerName;
@Min(value = 0, groups = { ListExternalCustomerGroup.class })
private Integer pageNo = 1;
@Min(value = 0, groups = { ListExternalCustomerGroup.class })
private Integer pageSize = 10;
}

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

@ -0,0 +1,29 @@
package com.epmet.dto.result;
import lombok.Data;
@Data
public class ExternalAppResultDTO {
public String appId;
/**
* APP名字
*/
private String appName;
/**
* 客户ID
*/
private String customerId;
/**
* 客户名称
*/
private String customerName;
/**
* 秘钥
*/
private String secret;
}

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

@ -1,10 +1,15 @@
package com.epmet.controller;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.ExternalAppAuthFormDTO;
import com.epmet.dto.form.ExternalAppFormDTO;
import com.epmet.dto.result.ExternalAppAuthResultDTO;
import com.epmet.dto.result.ExternalAppResultDTO;
import com.epmet.service.ExternalAppAuthService;
import com.epmet.service.ExternalAppService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -23,6 +28,9 @@ public class ExternalAppController {
@Autowired
private ExternalAppAuthService externalAppAuthService;
@Autowired
private ExternalAppService externalAppService;
/**
* 外部请求认证
* @param formDTO
@ -41,4 +49,50 @@ public class ExternalAppController {
return new Result<ExternalAppAuthResultDTO>().ok(auth);
}
/**
* 添加应用
* @param formDTO
* @return
*/
@PostMapping("/add")
public Result<ExternalAppResultDTO> add(@RequestBody ExternalAppFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ExternalAppFormDTO.AddExternalApp.class);
String appName = formDTO.getAppName();
String customerId = formDTO.getCustomerId();
ExternalAppResultDTO dto = externalAppService.add(appName, customerId);
return new Result<ExternalAppResultDTO>().ok(dto);
}
/**
* 修改应用
* @param formDTO
* @return
*/
@PostMapping("/update")
public Result<ExternalAppResultDTO> update(@RequestBody ExternalAppFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ExternalAppFormDTO.UpdateExternalApp.class);
String appId = formDTO.getAppId();
String appName = formDTO.getAppName();
String customerId = formDTO.getCustomerId();
ExternalAppResultDTO dto = externalAppService.updateById(appId, appName, customerId);
return new Result<ExternalAppResultDTO>().ok(dto);
}
/**
* 查询列表
* @param formDTO
* @return
*/
@PostMapping("/list")
public Result<PageData<ExternalAppResultDTO>> list(@RequestBody ExternalAppFormDTO formDTO) {
PageData<ExternalAppResultDTO> page = externalAppService.listPage(formDTO.getPageNo(), formDTO.getPageSize(), formDTO.getCustomerId());
return new Result<PageData<ExternalAppResultDTO>>().ok(page);
}
}

45
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/controller/ExternalCustomerController.java

@ -1,13 +1,12 @@
package com.epmet.controller;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.ExternalAppAuthFormDTO;
import com.epmet.dto.form.ExternalCustomerFormDTO;
import com.epmet.dto.result.ExternalAppAuthResultDTO;
import com.epmet.service.ExternalAppAuthService;
import org.apache.commons.lang3.StringUtils;
import com.epmet.dto.result.ExternalCustomerResultDTO;
import com.epmet.entity.ExternalCustomerEntity;
import com.epmet.service.ExternalCustomerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -16,7 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
/**
* 外部客户管理
@ -28,20 +27,46 @@ public class ExternalCustomerController {
private static Logger logger = LoggerFactory.getLogger(ExternalCustomerController.class);
@Autowired
private ExternalAppAuthService externalAppAuthService;
private ExternalCustomerService externalCustomerService;
/**
* 外部客户管理
* @return
*/
@PostMapping("/list")
public Result<ExternalAppAuthResultDTO> list(@RequestBody ExternalCustomerFormDTO form) {
ValidatorUtils.validateEntity(form);
public Result<PageData<ExternalCustomerResultDTO>> list(@RequestBody ExternalCustomerFormDTO form) {
ValidatorUtils.validateEntity(form, ExternalCustomerFormDTO.ListExternalCustomerGroup.class);
Integer pageNo = form.getPageNo();
Integer pageSize = form.getPageSize();
PageData<ExternalCustomerResultDTO> page = externalCustomerService.listPage(pageNo, pageSize);
return new Result<PageData<ExternalCustomerResultDTO>>().ok(page);
}
/**
* 添加外部客户
* @param formDTO
* @return
*/
@PostMapping("add")
public Result<ExternalCustomerEntity> add(@RequestBody ExternalCustomerFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ExternalCustomerFormDTO.AddExternalCustomerGroup.class);
String customerName = formDTO.getCustomerName();
ExternalCustomerEntity result = externalCustomerService.add(customerName);
return new Result<ExternalCustomerEntity>().ok(result);
}
return null;
/**
* 更新客户信息
* @param formDTO
* @return
*/
@PostMapping("update")
public Result<ExternalCustomerEntity> update(@RequestBody ExternalCustomerFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ExternalCustomerFormDTO.UpdateExternalCustomerGroup.class);
String customerId = formDTO.getCustomerId();
String customerName = formDTO.getCustomerName();
ExternalCustomerEntity result = externalCustomerService.update(customerId, customerName);
return new Result<ExternalCustomerEntity>().ok(result);
}
}

11
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/ExternalAppDao.java

@ -18,8 +18,12 @@
package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.ExternalAppResultDTO;
import com.epmet.entity.ExternalAppEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 外部应用列表
@ -29,5 +33,10 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface ExternalAppDao extends BaseDao<ExternalAppEntity> {
Integer countByAppNameAndCustomerId(@Param("appName") String appName, @Param("customerId") String customerId);
ExternalAppResultDTO getByNameAndCustomerId(@Param("appName") String appName, @Param("customerId") String customerId);
List<ExternalAppResultDTO> list(@Param("customerId") String customerId);
}

15
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/dao/ExternalCustomerDao.java

@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.ExternalCustomerResultDTO;
import com.epmet.entity.ExternalCustomerEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -38,4 +39,18 @@ public interface ExternalCustomerDao extends BaseDao<ExternalCustomerEntity> {
* @return
*/
List<ExternalCustomerResultDTO> listBaseInfo();
/**
* 根据名称查询客户
* @param customerName
* @return
*/
ExternalCustomerResultDTO getByCustomerName(@Param("customerName") String customerName);
/**
* 根据客户名称计数
* @param customerName
* @return
*/
Integer countByCustomerName(@Param("customerName") String customerName);
}

1
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ExternalAppAuthService.java

@ -1,6 +1,7 @@
package com.epmet.service;
import com.epmet.dto.result.ExternalAppAuthResultDTO;
import com.epmet.dto.result.ExternalAppResultDTO;
public interface ExternalAppAuthService {

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

@ -17,6 +17,9 @@
package com.epmet.service;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.result.ExternalAppResultDTO;
/**
* 外部应用列表
*
@ -24,4 +27,9 @@ package com.epmet.service;
* @since v1.0.0 2020-08-18
*/
public interface ExternalAppService {
ExternalAppResultDTO add(String appName, String customerId);
ExternalAppResultDTO updateById(String appId, String appName, String customerId);
PageData<ExternalAppResultDTO> listPage(Integer pageNo, Integer pageSize, String customerId);
}

9
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/ExternalCustomerService.java

@ -1,11 +1,14 @@
package com.epmet.service;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dto.result.ExternalCustomerResultDTO;
import java.util.List;
import com.epmet.entity.ExternalCustomerEntity;
public interface ExternalCustomerService {
public List<ExternalCustomerResultDTO> list(Integer pageNo, Integer pageSize);
PageData<ExternalCustomerResultDTO> listPage(Integer pageNo, Integer pageSize);
ExternalCustomerEntity add(String customerName);
ExternalCustomerEntity update(String customerId, String customerName);
}

8
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ExternalAppAuthServiceImpl.java

@ -1,10 +1,15 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.redis.RedisKeys;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.dao.ExternalAppDao;
import com.epmet.dao.ExternalAppSecretDao;
import com.epmet.dto.result.ExternalAppAuthResultDTO;
import com.epmet.dto.result.ExternalAppResultDTO;
import com.epmet.entity.ExternalAppEntity;
import com.epmet.entity.ExternalAppSecretEntity;
import com.epmet.service.ExternalAppAuthService;
import com.epmet.utils.externalapp.ExtAppJwtTokenUtils;
@ -29,6 +34,9 @@ public class ExternalAppAuthServiceImpl implements ExternalAppAuthService {
@Autowired
private ExternalAppSecretDao externalAppSecretDao;
@Autowired
private ExternalAppDao externalAppDao;
private int diffMillins = 1000 * 60 * 5;
@Override

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

@ -17,8 +17,24 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dao.ExternalAppDao;
import com.epmet.dao.ExternalAppSecretDao;
import com.epmet.dao.ExternalCustomerDao;
import com.epmet.dto.result.ExternalAppResultDTO;
import com.epmet.entity.ExternalAppEntity;
import com.epmet.entity.ExternalAppSecretEntity;
import com.epmet.service.ExternalAppService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.UUID;
/**
* 外部应用列表
@ -29,5 +45,89 @@ import org.springframework.stereotype.Service;
@Service
public class ExternalAppServiceImpl implements ExternalAppService {
@Autowired
private ExternalAppDao externalAppDao;
@Autowired
private ExternalAppSecretDao externalAppSecretDao;
@Autowired
private ExternalCustomerDao externalCustomerDao;
@Transactional
@Override
public ExternalAppResultDTO add(String appName, String customerId) {
Integer count = externalAppDao.countByAppNameAndCustomerId(appName, customerId);
if (count > 0) {
throw new RenException(EpmetErrorCode.OPER_EXTERNAL_APP_EXISTS.getCode(),
EpmetErrorCode.OPER_EXTERNAL_APP_EXISTS.getMsg());
}
if (externalCustomerDao.selectById(customerId) == null) {
throw new RenException(EpmetErrorCode.OPER_EXTERNAL_CUSTOMER_NOT_EXISTS.getCode(),
EpmetErrorCode.OPER_EXTERNAL_CUSTOMER_NOT_EXISTS.getMsg());
}
// 应用表插入
ExternalAppEntity appEntity = new ExternalAppEntity();
appEntity.setAppName(appName);
appEntity.setCustomerId(customerId);
externalAppDao.insert(appEntity);
// 秘钥表插入
ExternalAppSecretEntity secretEntity = new ExternalAppSecretEntity();
secretEntity.setAppId(appEntity.getId());
secretEntity.setSecret(genSecret());
externalAppSecretDao.insert(secretEntity);
ExternalAppResultDTO dto = new ExternalAppResultDTO();
dto.setAppName(appName);
dto.setCustomerId(customerId);
dto.setAppId(appEntity.getId());
return dto;
}
/**
* 生成秘钥
* @return
*/
private String genSecret() {
String part1 = UUID.randomUUID().toString();
String part2 = UUID.randomUUID().toString();
return part1.concat(part2).replace("-", "");
}
@Override
public ExternalAppResultDTO updateById(String appId, String appName, String customerId) {
ExternalAppEntity exists = externalAppDao.selectById(appId);
if (exists == null) {
throw new RenException(EpmetErrorCode.OPER_EXTERNAL_CUSTOMER_NOT_EXISTS.getCode(),
EpmetErrorCode.OPER_EXTERNAL_CUSTOMER_NOT_EXISTS.getMsg());
}
ExternalAppResultDTO byName = externalAppDao.getByNameAndCustomerId(appName, customerId);
if (byName != null && !byName.getAppId().equals(appId)) {
// 说明改了之后的名字跟当前客户内的其他应用重复
throw new RenException(EpmetErrorCode.OPER_EXTERNAL_APP_EXISTS.getCode(), "应用名称重复");
}
exists.setAppName(appName);
exists.setCustomerId(customerId);
externalAppDao.updateById(exists);
ExternalAppResultDTO resultDTO = new ExternalAppResultDTO();
resultDTO.setAppId(appId);
resultDTO.setCustomerId(customerId);
resultDTO.setAppName(appName);
return resultDTO;
}
@Override
public PageData<ExternalAppResultDTO> listPage(Integer pageNo, Integer pageSize, String customerId) {
PageHelper.startPage(pageNo, pageSize);
List<ExternalAppResultDTO> list = externalAppDao.list(customerId);
PageInfo<ExternalAppResultDTO> pageInfo = new PageInfo<>(list);
return new PageData<>(list, pageInfo.getTotal());
}
}

36
epmet-module/epmet-common-service/common-service-server/src/main/java/com/epmet/service/impl/ExternalCustomerServiceImpl.java

@ -1,7 +1,11 @@
package com.epmet.service.impl;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData;
import com.epmet.dao.ExternalCustomerDao;
import com.epmet.dto.result.ExternalCustomerResultDTO;
import com.epmet.entity.ExternalCustomerEntity;
import com.epmet.service.ExternalCustomerService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@ -17,10 +21,36 @@ public class ExternalCustomerServiceImpl implements ExternalCustomerService {
private ExternalCustomerDao externalCustomerDao;
@Override
public List<ExternalCustomerResultDTO> list(Integer pageNo, Integer pageSize) {
public PageData<ExternalCustomerResultDTO> listPage(Integer pageNo, Integer pageSize) {
PageHelper.startPage(pageNo, pageSize);
List<ExternalCustomerResultDTO> customers = externalCustomerDao.listBaseInfo();
PageInfo<ExternalCustomerResultDTO> pageInfo = new PageInfo<>(customers);
return null;
long total = new PageInfo<>(customers).getTotal();
PageData<ExternalCustomerResultDTO> pageData = new PageData<>(customers, (int) total);
return pageData;
}
@Override
public ExternalCustomerEntity add(String customerName) {
Integer exitsCustomerCount = externalCustomerDao.countByCustomerName(customerName);
if (exitsCustomerCount > 0) {
throw new RenException(EpmetErrorCode.OPER_CUSTOMER_EXISTS.getCode(), "客户已存在");
}
ExternalCustomerEntity entity = new ExternalCustomerEntity();
entity.setCustomerName(customerName);
externalCustomerDao.insert(entity);
return entity;
}
@Override
public ExternalCustomerEntity update(String customerId, String customerName) {
ExternalCustomerEntity existsCustomer = externalCustomerDao.selectById(customerId);
if (existsCustomer == null) {
throw new RenException(EpmetErrorCode.OPER_EXTERNAL_CUSTOMER_NOT_EXISTS.getCode(),
EpmetErrorCode.OPER_EXTERNAL_CUSTOMER_NOT_EXISTS.getMsg());
}
existsCustomer.setCustomerName(customerName);
externalCustomerDao.updateById(existsCustomer);
return existsCustomer;
}
}

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

@ -15,5 +15,50 @@
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
<!-- appName和客户ID查询-->
<select id="countByAppNameAndCustomerId" resultType="java.lang.Integer">
SELECT
count(0)
FROM
external_app
WHERE
APP_NAME = #{appName}
AND CUSTOMER_ID = #{customerId}
AND DEL_FLAG = 0
</select>
<select id="list" resultType="com.epmet.dto.result.ExternalAppResultDTO">
SELECT
ea.ID appId,
ea.APP_NAME,
ea.CUSTOMER_ID,
ec.CUSTOMER_NAME ,
eas.SECRET
FROM
external_app ea
INNER JOIN external_customer ec ON ( ea.CUSTOMER_ID = ec.ID )
LEFT JOIN external_app_secret eas ON (ea.ID = eas.APP_ID)
<where>
ea.DEL_FLAG = 0
<if test="customerId != null and customerId != ''">
AND ea.CUSTOMER_ID = #{customerId}
</if>
</where>
</select>
<select id="getByNameAndCustomerId" resultType="com.epmet.dto.result.ExternalAppResultDTO">
SELECT
ID AS appId,
APP_NAME ,
CUSTOMER_ID
FROM
external_app
WHERE
APP_NAME = #{appName}
AND
CUSTOMER_ID = #{customerId}
AND DEL_FLAG = 0
</select>
</mapper>

16
epmet-module/epmet-common-service/common-service-server/src/main/resources/mapper/ExternalCustomerDao.xml

@ -25,5 +25,21 @@
DEL_FLAG = 0
</select>
<select id="getByCustomerName" resultType="com.epmet.dto.result.ExternalCustomerResultDTO">
SELECT
ID, CUSTOMER_NAME
from
external_customer
WHERE CUSTOMER_NAME = #{customerName}
</select>
<select id="countByCustomerName" resultType="int">
SELECT
count(1)
from
external_customer
WHERE CUSTOMER_NAME = #{customerName}
</select>
</mapper>
Loading…
Cancel
Save