Browse Source

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

photo
xmzhao71 1 year ago
parent
commit
d230260322
13 changed files with 181 additions and 31 deletions
  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 View File

@@ -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 View File

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

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

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

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


+ 27
- 0
suimangCApi/src/main/java/com/iformall/controller/ApiGuideController.java View File

@@ -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 View File

@@ -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 View File

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

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


+ 3
- 0
suimangService/src/main/java/com/iformall/common/ErrorCode.java View File

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

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

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

private int code;


+ 27
- 0
suimangService/src/main/java/com/iformall/domain/vo/sm/ListApiSubmenuVO.java View File

@@ -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 View File

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

import java.util.List;

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

List<ApiMenuVO> listApiMenuAndDetail(ApiMenu apiMenu);

List<ListApiSubmenuVO> listSubmenu(Long id);
}




+ 5
- 0
suimangService/src/main/java/com/iformall/service/sm/ApiMenuService.java View File

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

import java.util.List;

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

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 View File

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

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
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.UpdateApiGuideDTO;
import com.iformall.domain.po.sm.ApiGuide;
import com.iformall.exception.BizException;
import com.iformall.service.sm.ApiGuideService;
import com.iformall.mapper.ApiGuideMapper;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

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

@Override
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);
apiGuideMapper.insert(apiGuide);
}

@Override
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);
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 View File

@@ -10,6 +10,7 @@ import com.iformall.domain.dto.sm.UpdateApiMenuDTO;
import com.iformall.domain.po.sm.ApiDetail;
import com.iformall.domain.po.sm.ApiMenu;
import com.iformall.domain.vo.sm.ApiMenuVO;
import com.iformall.domain.vo.sm.ListApiSubmenuVO;
import com.iformall.mapper.ApiDetailMapper;
import com.iformall.service.sm.ApiMenuService;
import com.iformall.mapper.ApiMenuMapper;
@@ -76,6 +77,16 @@ public class ApiMenuServiceImpl extends ServiceImpl<ApiMenuMapper, ApiMenu> impl
public List<ApiMenu> 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 View File

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



+ 9
- 0
suimangService/src/main/resources/mapper/ApiMenuMapper.xml View File

@@ -79,4 +79,13 @@
LEFT JOIN api_detail d ON m.id = d.menu_id
<include refid="dynamicWhereConditions"/>
</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>

Loading…
Cancel
Save