Browse Source

Merge branch 'dev' of yeshijie/jw2.0 into dev

yeshijie 6 years ago
parent
commit
67ae540ead

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/base/module/SaasInterfaceDO.java

@ -25,7 +25,7 @@ public class SaasInterfaceDO extends UuidIdentityEntity {
    private Integer protocolType;//协议类型(2restful,1webservice)
    private Integer protocolType;//协议类型(2restful,1webservice)
    private Integer openLevel;//开发程度(1公开,2私有)
    private Integer openLevel;//开发程度(1公开,2私有)
    private Integer checkLevel;//审计程度(1审计,2不审计)
    private Integer checkLevel;//审计程度(1审计,2不审计)
    private Integer status;//状态(1生效中,0已失效)
    private Integer status;//状态(1启用中,0已暂停)
    private String remark;//接口说明
    private String remark;//接口说明
    private String url;//https请求地址
    private String url;//https请求地址

+ 10 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -78,6 +78,16 @@ public class BaseRequestMapping {
        public static final String FIND_ALL  = "/findAll";
        public static final String FIND_ALL  = "/findAll";
    }
    }
    /**
     * 租户接口
     */
    public static class SaasInterface extends Basic {
        public static final String PREFIX  = "/saasInterface";
        public static final String STATUS  = "/status";
        public static final String IS_NAME_EXIST  = "/isNameExist";
        public static final String FIND_ALL  = "/findAll";
    }
    /**
    /**
     * 功能
     * 功能
     */
     */

+ 1 - 1
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/module/SaasInterfaceVO.java

@ -31,7 +31,7 @@ public class SaasInterfaceVO extends UuidIdentityVO {
    private Integer openLevel;
    private Integer openLevel;
    @ApiModelProperty(value = "审计程度(1审计,2不审计)", example = "1")
    @ApiModelProperty(value = "审计程度(1审计,2不审计)", example = "1")
    private Integer checkLevel;
    private Integer checkLevel;
    @ApiModelProperty(value = "状态(1生效中,0已失效)", example = "1")
    @ApiModelProperty(value = "状态(1启用,0暂停)", example = "1")
    private Integer status;
    private Integer status;
    @ApiModelProperty(value = "接口说明", example = "明")
    @ApiModelProperty(value = "接口说明", example = "明")
    private String remark;
    private String remark;

+ 8 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/module/SaasInterfaceDao.java

@ -2,6 +2,8 @@ package com.yihu.jw.base.dao.module;
import com.yihu.jw.entity.base.module.SaasInterfaceDO;
import com.yihu.jw.entity.base.module.SaasInterfaceDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
/**
@ -10,5 +12,11 @@ import org.springframework.data.repository.PagingAndSortingRepository;
 */
 */
public interface SaasInterfaceDao extends PagingAndSortingRepository<SaasInterfaceDO, String>, JpaSpecificationExecutor<SaasInterfaceDO> {
public interface SaasInterfaceDao extends PagingAndSortingRepository<SaasInterfaceDO, String>, JpaSpecificationExecutor<SaasInterfaceDO> {
    @Modifying
    @Query("update SaasInterfaceDO p set p.status=?2 where p.id=?1")
    void updateStatus(String id,Integer status);
    @Modifying
    @Query("update SaasInterfaceDO p set p.status=?2 where p.interfaceId=?1")
    void updateStatusByInterfaceId(String interfaceId,Integer status);
}
}

+ 10 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/module/SaasInterfaceErrorCodeDao.java

@ -1,9 +1,14 @@
package com.yihu.jw.base.dao.module;
package com.yihu.jw.base.dao.module;
import com.yihu.jw.entity.base.module.InterfaceErrorCodeDO;
import com.yihu.jw.entity.base.module.SaasInterfaceErrorCodeDO;
import com.yihu.jw.entity.base.module.SaasInterfaceErrorCodeDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
/**
 * 接口错误说明
 * 接口错误说明
 * @author yeshijie on 2018/10/11.
 * @author yeshijie on 2018/10/11.
@ -11,5 +16,10 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface SaasInterfaceErrorCodeDao extends PagingAndSortingRepository<SaasInterfaceErrorCodeDO, String>,
public interface SaasInterfaceErrorCodeDao extends PagingAndSortingRepository<SaasInterfaceErrorCodeDO, String>,
        JpaSpecificationExecutor<SaasInterfaceErrorCodeDO> {
        JpaSpecificationExecutor<SaasInterfaceErrorCodeDO> {
    @Query("from SaasInterfaceErrorCodeDO w where w.saasInterfaceId =?1 and w.del=1")
    List<SaasInterfaceErrorCodeDO> findBySaasInterfaceId(String saasInterfaceId);
    @Modifying
    @Query("delete from SaasInterfaceErrorCodeDO p where p.saasInterfaceId=?1")
    void deleteBySaasInterfaceId(String saasInterfaceId);
}
}

+ 13 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/dao/module/SaasInterfaceParamDao.java

@ -1,13 +1,25 @@
package com.yihu.jw.base.dao.module;
package com.yihu.jw.base.dao.module;
import com.yihu.jw.entity.base.module.InterfaceParamDO;
import com.yihu.jw.entity.base.module.SaasInterfaceParamDO;
import com.yihu.jw.entity.base.module.SaasInterfaceParamDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
/**
 * 接口入参出参
 * 接口入参出参
 * @author yeshijie on 2018/10/11.
 * @author yeshijie on 2018/10/11.
 */
 */
public interface SaasInterfaceParamDao extends PagingAndSortingRepository<SaasInterfaceParamDO, String>, JpaSpecificationExecutor<SaasInterfaceParamDO> {
public interface SaasInterfaceParamDao extends PagingAndSortingRepository<SaasInterfaceParamDO, String>,
        JpaSpecificationExecutor<SaasInterfaceParamDO> {
    @Query("from SaasInterfaceParamDO w where w.saasInterfaceId =?1 and w.del=1")
    List<SaasInterfaceParamDO> findBySaasInterfaceId(String saasInterfaceId);
    @Modifying
    @Query("delete from SaasInterfaceParamDO p where p.saasInterfaceId=?1")
    void deleteBySaasInterfaceId(String saasInterfaceId);
}
}

+ 4 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/module/SaasModuleDao.java

@ -6,6 +6,8 @@ import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
/**
 * Entity - 租户模块
 * Entity - 租户模块
 * Created by yeshijie on 2018/10/11.
 * Created by yeshijie on 2018/10/11.
@ -18,4 +20,6 @@ public interface SaasModuleDao extends PagingAndSortingRepository<SaasModuleDO,
    @Modifying
    @Modifying
    @Query("delete from SaasModuleDO p where p.moduleId=?1 ")
    @Query("delete from SaasModuleDO p where p.moduleId=?1 ")
    void deleteByModuleId(String moduleId);
    void deleteByModuleId(String moduleId);
    List<SaasModuleDO> findByModuleId(String moduleId);
}
}

+ 121 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/module/SaasInterfaceEndpoint.java

@ -0,0 +1,121 @@
package com.yihu.jw.base.endpoint.module;
import com.yihu.jw.base.service.module.SaasInterfaceService;
import com.yihu.jw.base.util.ErrorCodeUtil;
import com.yihu.jw.entity.base.module.SaasInterfaceDO;
import com.yihu.jw.exception.code.BaseErrorCode;
import com.yihu.jw.restmodel.base.module.SaasInterfaceVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * 租户接口
 * @author yeshijie on 2018/10/11.
 */
@RestController
@RequestMapping(value = BaseRequestMapping.SaasInterface.PREFIX)
@Api(value = "租户接口管理", description = "租户接口管理服务接口", tags = {"基础服务 - 租户接口管理服务接口"})
public class SaasInterfaceEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private SaasInterfaceService interfaceService;
    @Autowired
    private ErrorCodeUtil errorCodeUtil;
    @PostMapping(value = BaseRequestMapping.SaasInterface.CREATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "创建")
    public ObjEnvelop<SaasInterfaceVO> create (
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        SaasInterfaceDO interfaceDO = toEntity(jsonData, SaasInterfaceDO.class);
        interfaceDO = interfaceService.addInterface(interfaceDO);
        return success(interfaceDO, SaasInterfaceVO.class);
    }
    @GetMapping(value = BaseRequestMapping.SaasInterface.FINDBYID)
    @ApiOperation(value = "按id查找")
    public ObjEnvelop<SaasInterfaceVO> findById (
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id) throws Exception {
        SaasInterfaceDO interfaceDO = interfaceService.findById(id);
        return success(interfaceDO, SaasInterfaceVO.class);
    }
    @PostMapping(value = BaseRequestMapping.SaasInterface.STATUS)
    @ApiOperation(value = "启用/暂停")
    public Envelop status(
            @ApiParam(name = "id", value = "id", required = true)
            @RequestParam(value = "id") String id,
            @ApiParam(name = "status", value = "1生效,0失效", required = true)
            @RequestParam(value = "status") Integer status) {
        interfaceService.updateStatus(id, status);
        return success("修改成功");
    }
    @PostMapping(value = BaseRequestMapping.SaasInterface.DELETE)
    @ApiOperation(value = "删除")
    public Envelop delete(
            @ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
            @RequestParam(value = "ids") String ids) {
        interfaceService.delete(ids.split(","));
        return success("删除成功");
    }
    @PostMapping(value = BaseRequestMapping.SaasInterface.UPDATE, consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "更新")
    public ObjEnvelop<SaasInterfaceVO> update (
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
        SaasInterfaceDO interfaceDO = toEntity(jsonData, SaasInterfaceDO.class);
        if (null == interfaceDO.getId()) {
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Common.ID_IS_NULL), ObjEnvelop.class);
        }
        interfaceDO = interfaceService.addInterface(interfaceDO);
        return success(interfaceDO, SaasInterfaceVO.class);
    }
    @GetMapping(value = BaseRequestMapping.SaasInterface.PAGE)
    @ApiOperation(value = "获取分页")
    public PageEnvelop<SaasInterfaceVO> page (
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1")
            @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15")
            @RequestParam(value = "size") int size) throws Exception {
        List<SaasInterfaceDO> modules = interfaceService.search(fields, filters, sorts, page, size);
        int count = (int)interfaceService.getCount(filters);
        return success(modules, count, page, size, SaasInterfaceVO.class);
    }
    @GetMapping(value = BaseRequestMapping.SaasInterface.LIST)
    @ApiOperation(value = "获取列表")
    public ListEnvelop<SaasInterfaceVO> list (
            @ApiParam(name = "fields", value = "返回的字段,为空返回全部字段")
            @RequestParam(value = "fields", required = false) String fields,
            @ApiParam(name = "filters", value = "过滤器,为空检索所有条件")
            @RequestParam(value = "filters", required = false) String filters,
            @ApiParam(name = "sorts", value = "排序,规则参见说明文档")
            @RequestParam(value = "sorts", required = false) String sorts) throws Exception {
        List<SaasInterfaceDO> interfaceDOs = interfaceService.search(fields, filters, sorts);
        return success(interfaceDOs, SaasInterfaceVO.class);
    }
}

+ 94 - 6
svr/svr-base/src/main/java/com/yihu/jw/base/service/module/InterfaceService.java

@ -1,17 +1,14 @@
package com.yihu.jw.base.service.module;
package com.yihu.jw.base.service.module;
import com.yihu.jw.base.dao.module.InterfaceDao;
import com.yihu.jw.base.dao.module.InterfaceErrorCodeDao;
import com.yihu.jw.base.dao.module.InterfaceParamDao;
import com.yihu.jw.entity.base.module.InterfaceDO;
import com.yihu.jw.entity.base.module.InterfaceErrorCodeDO;
import com.yihu.jw.entity.base.module.InterfaceParamDO;
import com.yihu.jw.base.dao.module.*;
import com.yihu.jw.entity.base.module.*;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.StringUtils;
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;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Collectors;
@ -28,6 +25,14 @@ public class InterfaceService extends BaseJpaService<InterfaceDO, InterfaceDao>
    private InterfaceParamDao interfaceParamDao;
    private InterfaceParamDao interfaceParamDao;
    @Autowired
    @Autowired
    private InterfaceErrorCodeDao interfaceErrorCodeDao;
    private InterfaceErrorCodeDao interfaceErrorCodeDao;
    @Autowired
    private SaasInterfaceDao saasInterfaceDao;
    @Autowired
    private SaasModuleDao saasModuleDao;
    @Autowired
    private SaasInterfaceParamDao saasInterfaceParamDao;
    @Autowired
    private SaasInterfaceErrorCodeDao saasInterfaceErrorCodeDao;
    /**
    /**
     * 返回接口
     * 返回接口
@ -60,9 +65,18 @@ public class InterfaceService extends BaseJpaService<InterfaceDO, InterfaceDao>
    @Transactional(rollbackFor = Exception.class)
    @Transactional(rollbackFor = Exception.class)
    public InterfaceDO addInterface(InterfaceDO interfaceDO){
    public InterfaceDO addInterface(InterfaceDO interfaceDO){
        boolean isNew = true;
        if(StringUtils.isNotBlank(interfaceDO.getId())){
        if(StringUtils.isNotBlank(interfaceDO.getId())){
            interfaceParamDao.deleteByInterfaceId(interfaceDO.getId());
            interfaceParamDao.deleteByInterfaceId(interfaceDO.getId());
            interfaceErrorCodeDao.deleteByInterfaceId(interfaceDO.getId());
            interfaceErrorCodeDao.deleteByInterfaceId(interfaceDO.getId());
            isNew = false;
            InterfaceDO oldInterfaceDO = interfaceDao.findOne(interfaceDO.getId());
            //判断是否修改了状态
            if(!oldInterfaceDO.getStatus().equals(interfaceDO.getStatus())){
                //修改租户的接口状态
                saasInterfaceDao.updateStatusByInterfaceId(interfaceDO.getId(),interfaceDO.getStatus());
            }
        }
        }
        List<InterfaceParamDO> entryParams = interfaceDO.getEntryParams();
        List<InterfaceParamDO> entryParams = interfaceDO.getEntryParams();
@ -82,6 +96,78 @@ public class InterfaceService extends BaseJpaService<InterfaceDO, InterfaceDao>
        interfaceParamDao.save(outParams);
        interfaceParamDao.save(outParams);
        interfaceErrorCodeDao.save(errorCodes);
        interfaceErrorCodeDao.save(errorCodes);
        //为租户新增接口
        if (isNew){
            List<SaasModuleDO> saasModuleDOList = saasModuleDao.findByModuleId(interfaceDO.getModuleId());
            saasModuleDOList.forEach(saasModuleDO -> {
                SaasInterfaceDO saasInterfaceDO = new SaasInterfaceDO();
                saasInterfaceDO.setInterfaceId(interfaceDO.getId());
                saasInterfaceDO.setUrl(interfaceDO.getUrl());
                saasInterfaceDO.setStatus(interfaceDO.getStatus());
                saasInterfaceDO.setCheckLevel(interfaceDO.getCheckLevel());
                saasInterfaceDO.setMethodName(interfaceDO.getMethodName());
                saasInterfaceDO.setModuleId(interfaceDO.getModuleId());
                saasInterfaceDO.setName(interfaceDO.getName());
                saasInterfaceDO.setModuleName(interfaceDO.getModuleName());
                saasInterfaceDO.setOpenLevel(interfaceDO.getOpenLevel());
                saasInterfaceDO.setProtocolType(interfaceDO.getProtocolType());
                saasInterfaceDO.setRemark(interfaceDO.getRemark());
                saasInterfaceDO.setSaasId(saasModuleDO.getSaasId());
                List<SaasInterfaceParamDO> saasEntryParams = new ArrayList<>(16);
                List<SaasInterfaceParamDO> saasOutParams = new ArrayList<>(16);
                List<SaasInterfaceErrorCodeDO> saasErrorCodes = new ArrayList<>(16);
                saasInterfaceDao.save(saasInterfaceDO);
                entryParams.forEach(interfaceParamDO -> {
                    SaasInterfaceParamDO saasInterfaceParamDO = new SaasInterfaceParamDO();
                    saasInterfaceParamDO.setSaasId(saasInterfaceDO.getSaasId());
                    saasInterfaceParamDO.setDel(interfaceParamDO.getDel());
                    saasInterfaceParamDO.setName(interfaceParamDO.getName());
                    saasInterfaceParamDO.setDataType(interfaceParamDO.getDataType());
                    saasInterfaceParamDO.setDescription(interfaceParamDO.getDescription());
                    saasInterfaceParamDO.setExample(interfaceParamDO.getExample());
                    saasInterfaceParamDO.setIsRequire(interfaceParamDO.getIsRequire());
                    saasInterfaceParamDO.setMaxLength(interfaceParamDO.getMaxLength());
                    saasInterfaceParamDO.setParamType(interfaceParamDO.getParamType());
                    saasInterfaceParamDO.setSaasInterfaceId(saasInterfaceDO.getId());
                    saasInterfaceParamDO.setSort(interfaceParamDO.getSort());
                    saasInterfaceParamDO.setType(interfaceParamDO.getType());
                    saasEntryParams.add(saasInterfaceParamDO);
                });
                outParams.forEach(interfaceParamDO -> {
                    SaasInterfaceParamDO saasInterfaceParamDO = new SaasInterfaceParamDO();
                    saasInterfaceParamDO.setSaasId(saasInterfaceDO.getSaasId());
                    saasInterfaceParamDO.setDel(interfaceParamDO.getDel());
                    saasInterfaceParamDO.setName(interfaceParamDO.getName());
                    saasInterfaceParamDO.setDataType(interfaceParamDO.getDataType());
                    saasInterfaceParamDO.setDescription(interfaceParamDO.getDescription());
                    saasInterfaceParamDO.setExample(interfaceParamDO.getExample());
                    saasInterfaceParamDO.setIsRequire(interfaceParamDO.getIsRequire());
                    saasInterfaceParamDO.setMaxLength(interfaceParamDO.getMaxLength());
                    saasInterfaceParamDO.setParamType(interfaceParamDO.getParamType());
                    saasInterfaceParamDO.setSaasInterfaceId(saasInterfaceDO.getId());
                    saasInterfaceParamDO.setSort(interfaceParamDO.getSort());
                    saasInterfaceParamDO.setType(interfaceParamDO.getType());
                    saasOutParams.add(saasInterfaceParamDO);
                });
                errorCodes.forEach(interfaceErrorCodeDO -> {
                    SaasInterfaceErrorCodeDO saasInterfaceErrorCodeDO = new SaasInterfaceErrorCodeDO();
                    saasInterfaceErrorCodeDO.setSort(interfaceErrorCodeDO.getSort());
                    saasInterfaceErrorCodeDO.setDel(interfaceErrorCodeDO.getDel());
                    saasInterfaceErrorCodeDO.setSaasInterfaceId(saasInterfaceDO.getId());
                    saasInterfaceErrorCodeDO.setDescription(interfaceErrorCodeDO.getDescription());
                    saasInterfaceErrorCodeDO.setName(interfaceErrorCodeDO.getName());
                    saasInterfaceErrorCodeDO.setSaasId(saasInterfaceDO.getSaasId());
                    saasInterfaceErrorCodeDO.setSolution(interfaceErrorCodeDO.getSolution());
                    saasErrorCodes.add(saasInterfaceErrorCodeDO);
                });
                saasInterfaceParamDao.save(saasEntryParams);
                saasInterfaceParamDao.save(saasOutParams);
                saasInterfaceErrorCodeDao.save(saasErrorCodes);
            });
        }
        return interfaceDO;
        return interfaceDO;
    }
    }
@ -93,5 +179,7 @@ public class InterfaceService extends BaseJpaService<InterfaceDO, InterfaceDao>
    @Transactional(rollbackFor = Exception.class)
    @Transactional(rollbackFor = Exception.class)
    public void updateStatus(String id,Integer status){
    public void updateStatus(String id,Integer status){
        interfaceDao.updateStatus(id,status);
        interfaceDao.updateStatus(id,status);
        //修改租户的接口状态
        saasInterfaceDao.updateStatusByInterfaceId(id,status);
    }
    }
}
}

+ 16 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/module/SaasInterfaceErrorCodeService.java

@ -0,0 +1,16 @@
package com.yihu.jw.base.service.module;
import com.yihu.jw.base.dao.module.SaasInterfaceErrorCodeDao;
import com.yihu.jw.entity.base.module.SaasInterfaceErrorCodeDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
/**
 * 接口错误说明
 * @author yeshijie on 2018/10/11.
 */
@Service
public class SaasInterfaceErrorCodeService extends BaseJpaService<SaasInterfaceErrorCodeDO, SaasInterfaceErrorCodeDao> {
}

+ 15 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/module/SaasInterfaceParamService.java

@ -0,0 +1,15 @@
package com.yihu.jw.base.service.module;
import com.yihu.jw.base.dao.module.SaasInterfaceParamDao;
import com.yihu.jw.entity.base.module.SaasInterfaceParamDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.stereotype.Service;
/**
 * 接口入参出参
 * @author yeshijie on 2018/10/11.
 */
@Service
public class SaasInterfaceParamService extends BaseJpaService<SaasInterfaceParamDO, SaasInterfaceParamDao> {
}

+ 94 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/module/SaasInterfaceService.java

@ -0,0 +1,94 @@
package com.yihu.jw.base.service.module;
import com.yihu.jw.base.dao.module.SaasInterfaceDao;
import com.yihu.jw.base.dao.module.SaasInterfaceErrorCodeDao;
import com.yihu.jw.base.dao.module.SaasInterfaceParamDao;
import com.yihu.jw.entity.base.module.*;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
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.stream.Collectors;
/**
 * 租户接口
 * @author yeshijie on 2018/10/11.
 */
@Service
public class SaasInterfaceService extends BaseJpaService<SaasInterfaceDO, SaasInterfaceDao> {
    @Autowired
    private SaasInterfaceDao interfaceDao;
    @Autowired
    private SaasInterfaceParamDao interfaceParamDao;
    @Autowired
    private SaasInterfaceErrorCodeDao interfaceErrorCodeDao;
    /**
     * 新增接口
     * @param interfaceDO
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public SaasInterfaceDO addInterface(SaasInterfaceDO interfaceDO){
        if(StringUtils.isNotBlank(interfaceDO.getId())){
            interfaceParamDao.deleteBySaasInterfaceId(interfaceDO.getId());
            interfaceErrorCodeDao.deleteBySaasInterfaceId(interfaceDO.getId());
        }
        List<SaasInterfaceParamDO> entryParams = interfaceDO.getEntryParams();
        List<SaasInterfaceParamDO> outParams = interfaceDO.getOutParams();
        List<SaasInterfaceErrorCodeDO> errorCodes = interfaceDO.getErrorCodes();
        interfaceDao.save(interfaceDO);
        entryParams.forEach(interfaceParamDO -> {
            interfaceParamDO.setSaasInterfaceId(interfaceDO.getId());
        });
        outParams.forEach(interfaceParamDO -> {
            interfaceParamDO.setSaasInterfaceId(interfaceDO.getId());
        });
        errorCodes.forEach(interfaceErrorCodeDO -> {
            interfaceErrorCodeDO.setSaasInterfaceId(interfaceDO.getId());
        });
        interfaceParamDao.save(entryParams);
        interfaceParamDao.save(outParams);
        interfaceErrorCodeDao.save(errorCodes);
        return interfaceDO;
    }
    /**
     * 返回接口
     * @param id
     * @return
     */
    public SaasInterfaceDO findById(String id){
        SaasInterfaceDO interfaceDO = interfaceDao.findOne(id);
        List<SaasInterfaceParamDO> paramDOList = interfaceParamDao.findBySaasInterfaceId(id);
        List<SaasInterfaceParamDO> entryParams = paramDOList.stream()
                .filter(interfaceParamDO -> InterfaceParamDO.Type.entry.getValue().equals(interfaceParamDO.getType()))
                .collect(Collectors.toList());
        List<SaasInterfaceParamDO> outParams = paramDOList.stream()
                .filter(interfaceParamDO -> InterfaceParamDO.Type.out.getValue().equals(interfaceParamDO.getType()))
                .collect(Collectors.toList());
        List<SaasInterfaceErrorCodeDO> errorCodeDOList = interfaceErrorCodeDao.findBySaasInterfaceId(id);
        interfaceDO.setErrorCodes(errorCodeDOList);
        interfaceDO.setEntryParams(entryParams);
        interfaceDO.setOutParams(outParams);
        return interfaceDO;
    }
    /**
     * 设置生效和失效
     * @param id
     * @param status
     */
    @Transactional(rollbackFor = Exception.class)
    public void updateStatus(String id,Integer status){
        interfaceDao.updateStatus(id,status);
    }
}