diff --git a/suimangAdmin/src/main/java/com/iformall/controller/sm/ApiMenuController.java b/suimangAdmin/src/main/java/com/iformall/controller/sm/ApiMenuController.java index 58bec26..00c32d1 100644 --- a/suimangAdmin/src/main/java/com/iformall/controller/sm/ApiMenuController.java +++ b/suimangAdmin/src/main/java/com/iformall/controller/sm/ApiMenuController.java @@ -1,9 +1,11 @@ package com.iformall.controller.sm; +import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.dto.sm.SaveApiMenuDTO; import com.iformall.domain.dto.sm.UpdateApiMenuDTO; import com.iformall.domain.po.sm.ApiMenu; +import com.iformall.exception.BizException; import com.iformall.service.sm.ApiMenuService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -24,6 +26,15 @@ public class ApiMenuController { return new ResultData(apiMenuService.pageApiMenu(ApiMenu, pageNum, pageSize)); } + @ApiOperation("单个查询api菜单") + @GetMapping("/get") + public ResultData getApiMenu(Long id) { + if (id == null) { + throw new BizException(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + return new ResultData(apiMenuService.getApiMenu(id)); + } + @ApiOperation("新增api菜单") @PostMapping("/save") public ResultData saveApiMenu(@RequestBody SaveApiMenuDTO dto) { @@ -37,4 +48,10 @@ public class ApiMenuController { apiMenuService.updateApiMenu(dto); return new ResultData(); } + + @ApiOperation("全查询父级api菜单") + @GetMapping("/listParentMenu") + public ResultData listParentMenu() { + return new ResultData(apiMenuService.listParentMenu()); + } } diff --git a/suimangAdmin/src/main/java/com/iformall/controller/sm/ThirdPartyApiController.java b/suimangAdmin/src/main/java/com/iformall/controller/sm/ThirdPartyApiController.java index e6fbc0b..7f203ce 100644 --- a/suimangAdmin/src/main/java/com/iformall/controller/sm/ThirdPartyApiController.java +++ b/suimangAdmin/src/main/java/com/iformall/controller/sm/ThirdPartyApiController.java @@ -1,8 +1,10 @@ package com.iformall.controller.sm; +import com.iformall.common.ErrorCode; import com.iformall.common.ResultData; import com.iformall.domain.dto.sm.UpdateThirdPartyApiStatusDTO; import com.iformall.domain.po.WxThirdPartyApi; +import com.iformall.exception.BizException; import com.iformall.service.WxThirdPartyApiService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -23,6 +25,15 @@ public class ThirdPartyApiController { return new ResultData(thirdPartyApiService.pageThirdPartyApi(thirdPartyApi, pageNum, pageSize)); } + @ApiOperation("单个查询秘钥") + @GetMapping("/get") + public ResultData getThirdPartyApi(Long id) { + if (id == null) { + throw new BizException(ErrorCode.SYS_PARAMETER_NOT_NULL); + } + return new ResultData(thirdPartyApiService.getThirdPartyApi(id)); + } + @ApiOperation("修改秘钥状态") @PostMapping("/updateStatus") public ResultData updateThirdPartyApiStatus(@RequestBody UpdateThirdPartyApiStatusDTO dto) { diff --git a/suimangService/src/main/java/com/iformall/common/CommonConstants.java b/suimangService/src/main/java/com/iformall/common/CommonConstants.java index 13b67b0..81256ff 100644 --- a/suimangService/src/main/java/com/iformall/common/CommonConstants.java +++ b/suimangService/src/main/java/com/iformall/common/CommonConstants.java @@ -13,4 +13,11 @@ public interface CommonConstants { */ Integer FLAG_TRUE = 1; Integer FLAG_FALSE = 0; + + /** + * 通用数字 + */ + int NUM_0 = 0; + int NUM_1 = 1; + int NUM_2 = 2; } diff --git a/suimangService/src/main/java/com/iformall/domain/dto/sm/SaveApiGuideDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/sm/SaveApiGuideDTO.java index 5e86ffa..03c13d5 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/sm/SaveApiGuideDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/sm/SaveApiGuideDTO.java @@ -12,7 +12,7 @@ import java.util.Date; @ApiModel(value = "新增API指南") @Data public class SaveApiGuideDTO { - @ApiModelProperty("api名称") + @ApiModelProperty("指南名称") private String name; @ApiModelProperty("指南内容") private String content; diff --git a/suimangService/src/main/java/com/iformall/domain/dto/sm/SaveApiMenuDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/sm/SaveApiMenuDTO.java index c4cb19e..7b80a0d 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/sm/SaveApiMenuDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/sm/SaveApiMenuDTO.java @@ -2,6 +2,7 @@ package com.iformall.domain.dto.sm; import com.iformall.common.CommonConstants; import com.iformall.common.IdWorker; +import com.iformall.domain.po.sm.ApiDetail; import com.iformall.domain.po.sm.ApiMenu; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -18,6 +19,26 @@ public class SaveApiMenuDTO { private Long parentId; @ApiModelProperty("状态(0:正常,1:锁定)") private Integer status; + @ApiModelProperty("是否付费(0:否,1:是)") + private Integer chargeFlag; + @ApiModelProperty("是否需用户授权(0:否,1:是)") + private Integer authFlag; + @ApiModelProperty("接口描述") + private String description; + @ApiModelProperty("平台地址") + private String platformUrl; + @ApiModelProperty("系统参数") + private String publicParam; + @ApiModelProperty("请求参数") + private String requestParam; + @ApiModelProperty("响应参数") + private String responseParam; + @ApiModelProperty("请求示例") + private String requestSample; + @ApiModelProperty("响应示例") + private String responseSample; + @ApiModelProperty("异常示例") + private String exceptionSample; public static ApiMenu mapping(SaveApiMenuDTO dto) { ApiMenu apiMenu = new ApiMenu(); @@ -30,4 +51,24 @@ public class SaveApiMenuDTO { apiMenu.setDeleteFlag(CommonConstants.FLAG_FALSE); return apiMenu; } + + public static ApiDetail mappingApiDetail(SaveApiMenuDTO dto, ApiMenu apiMenu) { + ApiDetail apiDetail = new ApiDetail(); + apiDetail.setId(IdWorker.get().nextId()); + apiDetail.setCreateTime(new Date()); + apiDetail.setUpdateTime(new Date()); + apiDetail.setMenuId(apiMenu.getId()); + apiDetail.setMenuName(apiMenu.getName()); + apiDetail.setChargeFlag(dto.getChargeFlag()); + apiDetail.setAuthFlag(dto.getAuthFlag()); + apiDetail.setDescription(dto.getDescription()); + apiDetail.setPlatformUrl(dto.getPlatformUrl()); + apiDetail.setPublicParam(dto.getPublicParam()); + apiDetail.setRequestParam(dto.getRequestParam()); + apiDetail.setResponseParam(dto.getResponseParam()); + apiDetail.setRequestSample(dto.getRequestSample()); + apiDetail.setResponseSample(dto.getResponseSample()); + apiDetail.setExceptionSample(dto.getExceptionSample()); + return apiDetail; + } } diff --git a/suimangService/src/main/java/com/iformall/domain/dto/sm/UpdateApiGuideDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/sm/UpdateApiGuideDTO.java index ca80d9a..74e98e2 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/sm/UpdateApiGuideDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/sm/UpdateApiGuideDTO.java @@ -23,6 +23,7 @@ public class UpdateApiGuideDTO { public static ApiGuide mapping(UpdateApiGuideDTO dto) { ApiGuide apiGuide = new ApiGuide(); + apiGuide.setId(dto.getId()); apiGuide.setUpdateTime(new Date()); if (CommonConstants.STATUS_NORMAL.equals(dto.getStatus())) { apiGuide.setReleaseTime(new Date()); diff --git a/suimangService/src/main/java/com/iformall/domain/dto/sm/UpdateApiMenuDTO.java b/suimangService/src/main/java/com/iformall/domain/dto/sm/UpdateApiMenuDTO.java index d16354d..98903ae 100644 --- a/suimangService/src/main/java/com/iformall/domain/dto/sm/UpdateApiMenuDTO.java +++ b/suimangService/src/main/java/com/iformall/domain/dto/sm/UpdateApiMenuDTO.java @@ -2,6 +2,7 @@ package com.iformall.domain.dto.sm; import com.iformall.common.CommonConstants; import com.iformall.common.IdWorker; +import com.iformall.domain.po.sm.ApiDetail; import com.iformall.domain.po.sm.ApiMenu; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -12,14 +13,36 @@ import java.util.Date; @ApiModel(value = "修改API菜单") @Data public class UpdateApiMenuDTO { - @ApiModelProperty("id") + @ApiModelProperty(value = "菜单id",required = true) private Long id; + @ApiModelProperty(value = "详情id") + private Long detailId; @ApiModelProperty("菜单名称") private String name; @ApiModelProperty("父菜单id") private Long parentId; @ApiModelProperty("状态(0:正常,1:锁定)") private Integer status; + @ApiModelProperty("是否付费(0:否,1:是)") + private Integer chargeFlag; + @ApiModelProperty("是否需用户授权(0:否,1:是)") + private Integer authFlag; + @ApiModelProperty("接口描述") + private String description; + @ApiModelProperty("平台地址") + private String platformUrl; + @ApiModelProperty("系统参数") + private String publicParam; + @ApiModelProperty("请求参数") + private String requestParam; + @ApiModelProperty("响应参数") + private String responseParam; + @ApiModelProperty("请求示例") + private String requestSample; + @ApiModelProperty("响应示例") + private String responseSample; + @ApiModelProperty("异常示例") + private String exceptionSample; public static ApiMenu mapping(UpdateApiMenuDTO dto) { ApiMenu apiMenu = new ApiMenu(); @@ -30,4 +53,22 @@ public class UpdateApiMenuDTO { apiMenu.setStatus(dto.getStatus()); return apiMenu; } + + public static ApiDetail mappingApiDetail(UpdateApiMenuDTO dto) { + ApiDetail apiDetail = new ApiDetail(); + apiDetail.setUpdateTime(new Date()); + apiDetail.setMenuId(dto.getId()); + apiDetail.setMenuName(dto.getName()); + apiDetail.setChargeFlag(dto.getChargeFlag()); + apiDetail.setAuthFlag(dto.getAuthFlag()); + apiDetail.setDescription(dto.getDescription()); + apiDetail.setPlatformUrl(dto.getPlatformUrl()); + apiDetail.setPublicParam(dto.getPublicParam()); + apiDetail.setRequestParam(dto.getRequestParam()); + apiDetail.setResponseParam(dto.getResponseParam()); + apiDetail.setRequestSample(dto.getRequestSample()); + apiDetail.setResponseSample(dto.getResponseSample()); + apiDetail.setExceptionSample(dto.getExceptionSample()); + return apiDetail; + } } diff --git a/suimangService/src/main/java/com/iformall/domain/po/sm/ApiDetail.java b/suimangService/src/main/java/com/iformall/domain/po/sm/ApiDetail.java index 1707d82..0bbf7ba 100644 --- a/suimangService/src/main/java/com/iformall/domain/po/sm/ApiDetail.java +++ b/suimangService/src/main/java/com/iformall/domain/po/sm/ApiDetail.java @@ -44,12 +44,12 @@ public class ApiDetail implements Serializable { /** * 是否付费(0:否,1:是) */ - private Byte chargeFlag; + private Integer chargeFlag; /** * 是否需用户授权(0:否,1:是) */ - private Byte authFlag; + private Integer authFlag; /** * 描述 @@ -91,11 +91,6 @@ public class ApiDetail implements Serializable { */ private String exceptionSample; - /** - * 状态(0:正常,1:锁定) - */ - private Byte status; - @TableField(exist = false) private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/suimangService/src/main/java/com/iformall/domain/vo/sm/ApiMenuVO.java b/suimangService/src/main/java/com/iformall/domain/vo/sm/ApiMenuVO.java new file mode 100644 index 0000000..b01ff0c --- /dev/null +++ b/suimangService/src/main/java/com/iformall/domain/vo/sm/ApiMenuVO.java @@ -0,0 +1,48 @@ +package com.iformall.domain.vo.sm; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@ApiModel(value = "查询API菜单响应数据") +@Data +public class ApiMenuVO { + @ApiModelProperty("菜单id") + private Long id; + @ApiModelProperty("创建时间") + private Date createTime; + @ApiModelProperty("修改时间") + private Date updateTime; + @ApiModelProperty("是否叶子节点(0:否,1:是)") + private Integer leafFlag; + @ApiModelProperty("菜单名称") + private String name; + @ApiModelProperty("父菜单id") + private Long parentId; + @ApiModelProperty("状态(0:正常,1:锁定)") + private Integer status; + @ApiModelProperty("详情id") + private Long detailId; + @ApiModelProperty("是否付费(0:否,1:是)") + private Integer chargeFlag; + @ApiModelProperty("是否需用户授权(0:否,1:是)") + private Integer authFlag; + @ApiModelProperty("接口描述") + private String description; + @ApiModelProperty("平台地址") + private String platformUrl; + @ApiModelProperty("系统参数") + private String publicParam; + @ApiModelProperty("请求参数") + private String requestParam; + @ApiModelProperty("响应参数") + private String responseParam; + @ApiModelProperty("请求示例") + private String requestSample; + @ApiModelProperty("响应示例") + private String responseSample; + @ApiModelProperty("异常示例") + private String exceptionSample; +} diff --git a/suimangService/src/main/java/com/iformall/mapper/ApiMenuMapper.java b/suimangService/src/main/java/com/iformall/mapper/ApiMenuMapper.java index 1a95553..c5edbf4 100644 --- a/suimangService/src/main/java/com/iformall/mapper/ApiMenuMapper.java +++ b/suimangService/src/main/java/com/iformall/mapper/ApiMenuMapper.java @@ -2,6 +2,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 java.util.List; @@ -11,6 +12,10 @@ import java.util.List; public interface ApiMenuMapper extends BaseMapper { List listApiMenu(ApiMenu apiMenu); + + List listParentMenu(); + + List listApiMenuAndDetail(ApiMenu apiMenu); } diff --git a/suimangService/src/main/java/com/iformall/service/WxThirdPartyApiService.java b/suimangService/src/main/java/com/iformall/service/WxThirdPartyApiService.java index e80a8a3..f5b1443 100644 --- a/suimangService/src/main/java/com/iformall/service/WxThirdPartyApiService.java +++ b/suimangService/src/main/java/com/iformall/service/WxThirdPartyApiService.java @@ -44,4 +44,6 @@ public interface WxThirdPartyApiService { * @param dto */ void updateThirdPartyApiStatus(UpdateThirdPartyApiStatusDTO dto); + + WxThirdPartyApi getThirdPartyApi(Long id); } diff --git a/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java b/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java index d3d26ad..01c39a2 100644 --- a/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/impl/WxThirdPartyApiServiceImpl.java @@ -19,6 +19,7 @@ import com.iformall.service.WxThirdPartyApiService; import com.iformall.utils.Constant; import com.iformall.utils.RedisCacheUtils; import com.iformall.utils.sign.AppUtils; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -94,6 +95,14 @@ public class WxThirdPartyApiServiceImpl implements WxThirdPartyApiService { .eq(WxThirdPartyApi::getId, dto.getId())); } + @Override + public WxThirdPartyApi getThirdPartyApi(Long id) { + WxThirdPartyApi thirdPartyApi = new WxThirdPartyApi(); + thirdPartyApi.setId(id); + List vos = wxThirdPartyApiMapper.listThirdPartyApi(thirdPartyApi); + return !CollectionUtils.isEmpty(vos) ? vos.get(0) : null; + } + /** * 构建秘钥实体 * diff --git a/suimangService/src/main/java/com/iformall/service/sm/ApiMenuService.java b/suimangService/src/main/java/com/iformall/service/sm/ApiMenuService.java index efc12ff..aa050b7 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/ApiMenuService.java +++ b/suimangService/src/main/java/com/iformall/service/sm/ApiMenuService.java @@ -5,15 +5,22 @@ import com.iformall.domain.dto.sm.SaveApiMenuDTO; 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 java.util.List; /** * */ public interface ApiMenuService extends IService { - PageInfo pageApiMenu(ApiMenu apiMenu, Integer pageNum, Integer pageSize); + PageInfo pageApiMenu(ApiMenu apiMenu, Integer pageNum, Integer pageSize); void saveApiMenu(SaveApiMenuDTO dto); void updateApiMenu(UpdateApiMenuDTO dto); + + List listParentMenu(); + + ApiMenuVO getApiMenu(Long id); } diff --git a/suimangService/src/main/java/com/iformall/service/sm/impl/ApiMenuServiceImpl.java b/suimangService/src/main/java/com/iformall/service/sm/impl/ApiMenuServiceImpl.java index ff066a6..be7663e 100644 --- a/suimangService/src/main/java/com/iformall/service/sm/impl/ApiMenuServiceImpl.java +++ b/suimangService/src/main/java/com/iformall/service/sm/impl/ApiMenuServiceImpl.java @@ -1,15 +1,24 @@ package com.iformall.service.sm.impl; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.domain.dto.sm.SaveApiMenuDTO; 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.mapper.ApiDetailMapper; import com.iformall.service.sm.ApiMenuService; import com.iformall.mapper.ApiMenuMapper; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; /** * @@ -19,22 +28,53 @@ public class ApiMenuServiceImpl extends ServiceImpl impl @Autowired private ApiMenuMapper apiMenuMapper; + @Autowired + private ApiDetailMapper apiDetailMapper; + + @Override + public PageInfo pageApiMenu(ApiMenu apiMenu, Integer pageNum, Integer pageSize) { + return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> apiMenuMapper.listApiMenuAndDetail(apiMenu)); + } @Override - public PageInfo pageApiMenu(ApiMenu apiMenu, Integer pageNum, Integer pageSize) { - return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> apiMenuMapper.listApiMenu(apiMenu)); + public ApiMenuVO getApiMenu(Long id) { + ApiMenu apiMenu = new ApiMenu(); + apiMenu.setId(id); + List vos = apiMenuMapper.listApiMenuAndDetail(apiMenu); + return !CollectionUtils.isEmpty(vos) ? vos.get(0) : null; } + @Transactional(rollbackFor = Exception.class) @Override public void saveApiMenu(SaveApiMenuDTO dto) { + // 保存菜单信息 ApiMenu apiMenu = SaveApiMenuDTO.mapping(dto); apiMenuMapper.insert(apiMenu); + + if (CommonConstants.NUM_0 != dto.getParentId()) { + // 保存菜单详情信息 + ApiDetail apiDetail = SaveApiMenuDTO.mappingApiDetail(dto, apiMenu); + apiDetailMapper.insert(apiDetail); + } } + @Transactional(rollbackFor = Exception.class) @Override public void updateApiMenu(UpdateApiMenuDTO dto) { + // 修改菜单信息 ApiMenu apiMenu = UpdateApiMenuDTO.mapping(dto); apiMenuMapper.updateById(apiMenu); + + if (CommonConstants.NUM_0 != dto.getParentId()) { + // 修改菜单详情信息 + ApiDetail apiDetail = UpdateApiMenuDTO.mappingApiDetail(dto); + apiDetailMapper.update(apiDetail, new LambdaUpdateWrapper().eq(ApiDetail::getMenuId, dto.getId())); + } + } + + @Override + public List listParentMenu() { + return apiMenuMapper.listParentMenu(); } } diff --git a/suimangService/src/main/resources/mapper/ApiDetailMapper.xml b/suimangService/src/main/resources/mapper/ApiDetailMapper.xml index 982f85e..0640ff1 100644 --- a/suimangService/src/main/resources/mapper/ApiDetailMapper.xml +++ b/suimangService/src/main/resources/mapper/ApiDetailMapper.xml @@ -20,7 +20,6 @@ - @@ -28,7 +27,6 @@ menu_id,menu_name,charge_flag, auth_flag,description,platform_url, public_param,request_param,response_param, - request_sample,response_sample,exception_sample, - status + request_sample,response_sample,exception_sample diff --git a/suimangService/src/main/resources/mapper/ApiMenuMapper.xml b/suimangService/src/main/resources/mapper/ApiMenuMapper.xml index a3810cf..471a148 100644 --- a/suimangService/src/main/resources/mapper/ApiMenuMapper.xml +++ b/suimangService/src/main/resources/mapper/ApiMenuMapper.xml @@ -16,31 +16,67 @@ - id,create_time,update_time, - name,parent_id,status, - leaf_flag,delete_flag + m.id,m.create_time,m.update_time, + m.name,m.parent_id,m.status, + m.leaf_flag,m.delete_flag WHERE 1 = 1 + AND m.delete_flag = 0 - and `id` = #{id} + AND m.`id` = #{id} - and `parent_id` = #{parentId} + AND m.`parent_id` = #{parentId} - and `name` = #{name} + AND m.`name` = #{name} - and `status = #{status} + AND m.`status = #{status} + + + diff --git a/suimangService/src/main/resources/mapper/WxThirdPartyApiMapper.xml b/suimangService/src/main/resources/mapper/WxThirdPartyApiMapper.xml index e8cb59f..7198a8a 100644 --- a/suimangService/src/main/resources/mapper/WxThirdPartyApiMapper.xml +++ b/suimangService/src/main/resources/mapper/WxThirdPartyApiMapper.xml @@ -91,6 +91,6 @@ SELECT FROM wx_third_party_api - +