浏览代码

feat:添加api指南相关c端接口

photo
xmzhao71 1年前
父节点
当前提交
d230260322
共有 13 个文件被更改,包括 181 次插入31 次删除
  1. +0
    -26
      suimangAdmin/src/main/java/com/iformall/controller/sm/ApiDetailController.java
  2. +3
    -3
      suimangAdmin/src/main/java/com/iformall/controller/sm/ApiGuideController.java
  3. +27
    -0
      suimangCApi/src/main/java/com/iformall/controller/ApiGuideController.java
  4. +47
    -0
      suimangCApi/src/main/java/com/iformall/controller/ApiMenuController.java
  5. +1
    -1
      suimangCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java
  6. +3
    -0
      suimangService/src/main/java/com/iformall/common/ErrorCode.java
  7. +27
    -0
      suimangService/src/main/java/com/iformall/domain/vo/sm/ListApiSubmenuVO.java
  8. +3
    -0
      suimangService/src/main/java/com/iformall/mapper/ApiMenuMapper.java
  9. +5
    -0
      suimangService/src/main/java/com/iformall/service/sm/ApiMenuService.java
  10. +44
    -0
      suimangService/src/main/java/com/iformall/service/sm/impl/ApiGuideServiceImpl.java
  11. +11
    -0
      suimangService/src/main/java/com/iformall/service/sm/impl/ApiMenuServiceImpl.java
  12. +1
    -1
      suimangService/src/main/resources/mapper/ApiGuideMapper.xml
  13. +9
    -0
      suimangService/src/main/resources/mapper/ApiMenuMapper.xml

+ 0
- 26
suimangAdmin/src/main/java/com/iformall/controller/sm/ApiDetailController.java 查看文件

@@ -1,26 +0,0 @@
package com.iformall.controller.sm;

import com.iformall.common.ResultData;
import com.iformall.domain.dto.sm.SaveApiMenuDTO;
import com.iformall.domain.po.sm.ApiDetail;
import com.iformall.service.sm.ApiDetailService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/apiDetail")
@Api(tags = "api菜单详情接口")
public class ApiDetailController {

@Autowired
private ApiDetailService apiDetailService;

@ApiOperation("查询单个api菜单详情")
@GetMapping("/get")
public ResultData getApiDetail(Long id) {
ApiDetail apiDetail = apiDetailService.getApiDetail(id);
return new ResultData(apiDetail);
}
}

+ 3
- 3
suimangAdmin/src/main/java/com/iformall/controller/sm/ApiGuideController.java 查看文件

@@ -18,20 +18,20 @@ public class ApiGuideController {
@Autowired @Autowired
private ApiGuideService apiGuideService; private ApiGuideService apiGuideService;


@ApiOperation("分页查询api菜单")
@ApiOperation("分页查询api指南")
@GetMapping("/page") @GetMapping("/page")
public ResultData pageApiGuide(ApiGuide apiGuide, Integer pageNum, Integer pageSize) { public ResultData pageApiGuide(ApiGuide apiGuide, Integer pageNum, Integer pageSize) {
return new ResultData(apiGuideService.pageApiGuide(apiGuide, pageNum, pageSize)); return new ResultData(apiGuideService.pageApiGuide(apiGuide, pageNum, pageSize));
} }


@ApiOperation("新增api菜单")
@ApiOperation("新增api指南")
@PostMapping("/save") @PostMapping("/save")
public ResultData saveApiGuide(@RequestBody SaveApiGuideDTO dto) { public ResultData saveApiGuide(@RequestBody SaveApiGuideDTO dto) {
apiGuideService.saveApiGuide(dto); apiGuideService.saveApiGuide(dto);
return new ResultData(); return new ResultData();
} }


@ApiOperation("修改api菜单")
@ApiOperation("修改api指南")
@PostMapping("/update") @PostMapping("/update")
public ResultData updateApiGuide(@RequestBody UpdateApiGuideDTO dto) { public ResultData updateApiGuide(@RequestBody UpdateApiGuideDTO dto) {
apiGuideService.updateApiGuide(dto); apiGuideService.updateApiGuide(dto);


+ 27
- 0
suimangCApi/src/main/java/com/iformall/controller/ApiGuideController.java 查看文件

@@ -0,0 +1,27 @@
package com.iformall.controller;

import com.iformall.annotation.AuthIgnore;
import com.iformall.common.ResultData;
import com.iformall.service.sm.ApiGuideService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/apiGuide")
@Api(tags = "api指南接口")
public class ApiGuideController {

@Autowired
private ApiGuideService apiGuideService;

@AuthIgnore
@ApiOperation("单个查询api指南")
@GetMapping("/getAvailableApiGuide")
public ResultData getAvailableApiGuide() {
return new ResultData(apiGuideService.getAvailableApiGuide());
}
}

+ 47
- 0
suimangCApi/src/main/java/com/iformall/controller/ApiMenuController.java 查看文件

@@ -0,0 +1,47 @@
package com.iformall.controller;

import com.iformall.annotation.AuthIgnore;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.exception.BizException;
import com.iformall.service.sm.ApiMenuService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/apiMenu")
@Api(tags = "api菜单接口")
public class ApiMenuController {
@Autowired
private ApiMenuService apiMenuService;

@AuthIgnore
@ApiOperation("全查询api菜单")
@GetMapping("/list")
public ResultData listApiMenu() {
return new ResultData(apiMenuService.listMenu());
}

@AuthIgnore
@ApiOperation("查询某个api菜单所有子菜单")
@GetMapping("/listSubmenu")
public ResultData listApiSubmenu(Long id) {
if (id == null) {
throw new BizException(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
return new ResultData(apiMenuService.listApiSubmenu(id));
}

@AuthIgnore
@ApiOperation("单个查询菜单详情")
@GetMapping("/get")
public ResultData getApiMenu(Long id) {
if (id == null) {
throw new BizException(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
return new ResultData(apiMenuService.getApiMenu(id));
}
}

+ 1
- 1
suimangCApi/src/main/java/com/iformall/interceptor/AuthorizationInterceptor.java 查看文件

@@ -44,7 +44,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter {


@Override @Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
AuthIgnore annotation; AuthIgnore annotation;
if(handler instanceof HandlerMethod) { if(handler instanceof HandlerMethod) {
annotation = ((HandlerMethod) handler).getMethodAnnotation(AuthIgnore.class); annotation = ((HandlerMethod) handler).getMethodAnnotation(AuthIgnore.class);


+ 3
- 0
suimangService/src/main/java/com/iformall/common/ErrorCode.java 查看文件

@@ -681,6 +681,9 @@ public enum ErrorCode{


SECRET_NOT_EXISTS(71001, "该秘钥不存在"), SECRET_NOT_EXISTS(71001, "该秘钥不存在"),
SERVICE_LOCKED(71002, "合作商被锁定,无法修改"), SERVICE_LOCKED(71002, "合作商被锁定,无法修改"),

NAME_REPEAT(81000, "名称重复"),
EXIST_AVAILABLE_GUIDE(81001, "存在可用指南"),
; ;


private int code; private int code;


+ 27
- 0
suimangService/src/main/java/com/iformall/domain/vo/sm/ListApiSubmenuVO.java 查看文件

@@ -0,0 +1,27 @@
package com.iformall.domain.vo.sm;

import com.iformall.domain.po.sm.ApiDetail;
import com.iformall.domain.po.sm.ApiMenu;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

@ApiModel(value = "查询某个api菜单所有子菜单相应数据")
@Data
public class ListApiSubmenuVO {
@ApiModelProperty("菜单id")
private Long id;
@ApiModelProperty("修改时间")
private Date updateTime;
@ApiModelProperty("菜单名称")
private String name;
@ApiModelProperty("状态(0:正常,1:锁定)")
private Integer status;
@ApiModelProperty("详情id")
private Long detailId;
@ApiModelProperty("接口描述")
private String description;
}

+ 3
- 0
suimangService/src/main/java/com/iformall/mapper/ApiMenuMapper.java 查看文件

@@ -3,6 +3,7 @@ package com.iformall.mapper;
import com.iformall.domain.po.sm.ApiMenu; import com.iformall.domain.po.sm.ApiMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.vo.sm.ApiMenuVO; import com.iformall.domain.vo.sm.ApiMenuVO;
import com.iformall.domain.vo.sm.ListApiSubmenuVO;


import java.util.List; import java.util.List;


@@ -16,6 +17,8 @@ public interface ApiMenuMapper extends BaseMapper<ApiMenu> {
List<ApiMenu> listParentMenu(); List<ApiMenu> listParentMenu();


List<ApiMenuVO> listApiMenuAndDetail(ApiMenu apiMenu); List<ApiMenuVO> listApiMenuAndDetail(ApiMenu apiMenu);

List<ListApiSubmenuVO> listSubmenu(Long id);
} }






+ 5
- 0
suimangService/src/main/java/com/iformall/service/sm/ApiMenuService.java 查看文件

@@ -6,6 +6,7 @@ import com.iformall.domain.dto.sm.UpdateApiMenuDTO;
import com.iformall.domain.po.sm.ApiMenu; import com.iformall.domain.po.sm.ApiMenu;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.iformall.domain.vo.sm.ApiMenuVO; import com.iformall.domain.vo.sm.ApiMenuVO;
import com.iformall.domain.vo.sm.ListApiSubmenuVO;


import java.util.List; import java.util.List;


@@ -23,4 +24,8 @@ public interface ApiMenuService extends IService<ApiMenu> {
List<ApiMenu> listParentMenu(); List<ApiMenu> listParentMenu();


ApiMenuVO getApiMenu(Long id); ApiMenuVO getApiMenu(Long id);

List<ApiMenu> listMenu();

List<ListApiSubmenuVO> listApiSubmenu(Long id);
} }

+ 44
- 0
suimangService/src/main/java/com/iformall/service/sm/impl/ApiGuideServiceImpl.java 查看文件

@@ -1,16 +1,23 @@
package com.iformall.service.sm.impl; package com.iformall.service.sm.impl;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.CommonConstants;
import com.iformall.common.ErrorCode;
import com.iformall.domain.dto.sm.SaveApiGuideDTO; import com.iformall.domain.dto.sm.SaveApiGuideDTO;
import com.iformall.domain.dto.sm.UpdateApiGuideDTO; import com.iformall.domain.dto.sm.UpdateApiGuideDTO;
import com.iformall.domain.po.sm.ApiGuide; import com.iformall.domain.po.sm.ApiGuide;
import com.iformall.exception.BizException;
import com.iformall.service.sm.ApiGuideService; import com.iformall.service.sm.ApiGuideService;
import com.iformall.mapper.ApiGuideMapper; import com.iformall.mapper.ApiGuideMapper;
import org.apache.commons.collections.CollectionUtils;
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 java.util.List;

/** /**
* *
*/ */
@@ -27,15 +34,52 @@ public class ApiGuideServiceImpl extends ServiceImpl<ApiGuideMapper, ApiGuide> i


@Override @Override
public void saveApiGuide(SaveApiGuideDTO dto) { public void saveApiGuide(SaveApiGuideDTO dto) {
ApiGuide dbApiGuide = apiGuideMapper.selectOne(new LambdaQueryWrapper<ApiGuide>().eq(ApiGuide::getName, dto.getName()));
if (dbApiGuide != null) {
throw new BizException(ErrorCode.NAME_REPEAT);
}

// 暂时处理,存在正常的指南,则不可新增新的正常指南
List<ApiGuide> apiGuides = apiGuideMapper.selectList(new LambdaQueryWrapper<ApiGuide>()
.eq(ApiGuide::getStatus, CommonConstants.STATUS_NORMAL)
.eq(ApiGuide::getDeleteFlag, CommonConstants.FLAG_FALSE));
if (CommonConstants.STATUS_NORMAL.equals(dto.getStatus()) && !CollectionUtils.isEmpty(apiGuides)) {
throw new BizException(ErrorCode.EXIST_AVAILABLE_GUIDE);
}

ApiGuide apiGuide = SaveApiGuideDTO.mapping(dto); ApiGuide apiGuide = SaveApiGuideDTO.mapping(dto);
apiGuideMapper.insert(apiGuide); apiGuideMapper.insert(apiGuide);
} }


@Override @Override
public void updateApiGuide(UpdateApiGuideDTO dto) { public void updateApiGuide(UpdateApiGuideDTO dto) {
ApiGuide dbApiGuide = apiGuideMapper.selectOne(new LambdaQueryWrapper<ApiGuide>()
.eq(ApiGuide::getName, dto.getName())
.ne(ApiGuide::getId, dto.getId()));
if (dbApiGuide != null) {
throw new BizException(ErrorCode.NAME_REPEAT);
}

// 暂时处理,存在正常的指南,则不可修改新的正常指南
List<ApiGuide> apiGuides = apiGuideMapper.selectList(new LambdaQueryWrapper<ApiGuide>()
.eq(ApiGuide::getStatus, CommonConstants.STATUS_NORMAL)
.eq(ApiGuide::getDeleteFlag, CommonConstants.FLAG_FALSE)
.ne(ApiGuide::getId, dto.getId()));
if (CommonConstants.STATUS_NORMAL.equals(dto.getStatus()) && !CollectionUtils.isEmpty(apiGuides)) {
throw new BizException(ErrorCode.EXIST_AVAILABLE_GUIDE);
}

ApiGuide apiGuide = UpdateApiGuideDTO.mapping(dto); ApiGuide apiGuide = UpdateApiGuideDTO.mapping(dto);
apiGuideMapper.updateById(apiGuide); apiGuideMapper.updateById(apiGuide);
} }

@Override
public ApiGuide getAvailableApiGuide() {
ApiGuide apiGuide = new ApiGuide();
apiGuide.setStatus(CommonConstants.STATUS_NORMAL);
List<ApiGuide> apiGuides = apiGuideMapper.listApiGuide(apiGuide);
return !CollectionUtils.isEmpty(apiGuides) ? apiGuides.get(0) : null;
}
} }






+ 11
- 0
suimangService/src/main/java/com/iformall/service/sm/impl/ApiMenuServiceImpl.java 查看文件

@@ -10,6 +10,7 @@ import com.iformall.domain.dto.sm.UpdateApiMenuDTO;
import com.iformall.domain.po.sm.ApiDetail; import com.iformall.domain.po.sm.ApiDetail;
import com.iformall.domain.po.sm.ApiMenu; import com.iformall.domain.po.sm.ApiMenu;
import com.iformall.domain.vo.sm.ApiMenuVO; import com.iformall.domain.vo.sm.ApiMenuVO;
import com.iformall.domain.vo.sm.ListApiSubmenuVO;
import com.iformall.mapper.ApiDetailMapper; import com.iformall.mapper.ApiDetailMapper;
import com.iformall.service.sm.ApiMenuService; import com.iformall.service.sm.ApiMenuService;
import com.iformall.mapper.ApiMenuMapper; import com.iformall.mapper.ApiMenuMapper;
@@ -76,6 +77,16 @@ public class ApiMenuServiceImpl extends ServiceImpl<ApiMenuMapper, ApiMenu> impl
public List<ApiMenu> listParentMenu() { public List<ApiMenu> listParentMenu() {
return apiMenuMapper.listParentMenu(); return apiMenuMapper.listParentMenu();
} }

@Override
public List<ApiMenu> listMenu() {
return apiMenuMapper.listApiMenu(null);
}

@Override
public List<ListApiSubmenuVO> listApiSubmenu(Long id) {
return apiMenuMapper.listSubmenu(id);
}
} }






+ 1
- 1
suimangService/src/main/resources/mapper/ApiGuideMapper.xml 查看文件

@@ -30,7 +30,7 @@
and `name` = #{name} and `name` = #{name}
</if> </if>
<if test=" null != status "> <if test=" null != status ">
and `status = #{status}
and `status` = #{status}
</if> </if>
</sql> </sql>




+ 9
- 0
suimangService/src/main/resources/mapper/ApiMenuMapper.xml 查看文件

@@ -79,4 +79,13 @@
LEFT JOIN api_detail d ON m.id = d.menu_id LEFT JOIN api_detail d ON m.id = d.menu_id
<include refid="dynamicWhereConditions"/> <include refid="dynamicWhereConditions"/>
</select> </select>
<select id="listSubmenu" resultType="com.iformall.domain.vo.sm.ListApiSubmenuVO">
SELECT
m.id AS id, m.update_time AS updateTime, m.name AS name, m.status AS status, d.id AS detailId, d.description AS description
FROM
api_menu m
LEFT JOIN api_detail d ON m.id = d.menu_id
WHERE
m.delete_flag = 0 AND m.`status` = 0 AND m.parent_id = #{id}
</select>
</mapper> </mapper>

正在加载...
取消
保存