@@ -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()); | |||
} | |||
} |
@@ -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) { | |||
@@ -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; | |||
} |
@@ -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; | |||
@@ -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; | |||
} | |||
} |
@@ -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()); | |||
@@ -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; | |||
} | |||
} |
@@ -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; | |||
} |
@@ -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; | |||
} |
@@ -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<ApiMenu> { | |||
List<ApiMenu> listApiMenu(ApiMenu apiMenu); | |||
List<ApiMenu> listParentMenu(); | |||
List<ApiMenuVO> listApiMenuAndDetail(ApiMenu apiMenu); | |||
} | |||
@@ -44,4 +44,6 @@ public interface WxThirdPartyApiService { | |||
* @param dto | |||
*/ | |||
void updateThirdPartyApiStatus(UpdateThirdPartyApiStatusDTO dto); | |||
WxThirdPartyApi getThirdPartyApi(Long id); | |||
} |
@@ -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<WxThirdPartyApi> vos = wxThirdPartyApiMapper.listThirdPartyApi(thirdPartyApi); | |||
return !CollectionUtils.isEmpty(vos) ? vos.get(0) : null; | |||
} | |||
/** | |||
* 构建秘钥实体 | |||
* | |||
@@ -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<ApiMenu> { | |||
PageInfo<ApiMenu> pageApiMenu(ApiMenu apiMenu, Integer pageNum, Integer pageSize); | |||
PageInfo<ApiMenuVO> pageApiMenu(ApiMenu apiMenu, Integer pageNum, Integer pageSize); | |||
void saveApiMenu(SaveApiMenuDTO dto); | |||
void updateApiMenu(UpdateApiMenuDTO dto); | |||
List<ApiMenu> listParentMenu(); | |||
ApiMenuVO getApiMenu(Long id); | |||
} |
@@ -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<ApiMenuMapper, ApiMenu> impl | |||
@Autowired | |||
private ApiMenuMapper apiMenuMapper; | |||
@Autowired | |||
private ApiDetailMapper apiDetailMapper; | |||
@Override | |||
public PageInfo<ApiMenuVO> pageApiMenu(ApiMenu apiMenu, Integer pageNum, Integer pageSize) { | |||
return PageHelper.startPage(pageNum, pageSize).doSelectPageInfo(() -> apiMenuMapper.listApiMenuAndDetail(apiMenu)); | |||
} | |||
@Override | |||
public PageInfo<ApiMenu> 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<ApiMenuVO> 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<ApiDetail>().eq(ApiDetail::getMenuId, dto.getId())); | |||
} | |||
} | |||
@Override | |||
public List<ApiMenu> listParentMenu() { | |||
return apiMenuMapper.listParentMenu(); | |||
} | |||
} | |||
@@ -20,7 +20,6 @@ | |||
<result property="requestSample" column="request_sample" jdbcType="VARCHAR"/> | |||
<result property="responseSample" column="response_sample" jdbcType="VARCHAR"/> | |||
<result property="exceptionSample" column="exception_sample" jdbcType="VARCHAR"/> | |||
<result property="status" column="status" jdbcType="TINYINT"/> | |||
</resultMap> | |||
<sql id="Base_Column_List"> | |||
@@ -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 | |||
</sql> | |||
</mapper> |
@@ -16,31 +16,67 @@ | |||
</resultMap> | |||
<sql id="Base_Column_List"> | |||
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 | |||
</sql> | |||
<sql id="dynamicWhereConditions"> | |||
WHERE 1 = 1 | |||
AND m.delete_flag = 0 | |||
<if test=" null != id "> | |||
and `id` = #{id} | |||
AND m.`id` = #{id} | |||
</if> | |||
<if test=" null != parentId and '' != parentId "> | |||
and `parent_id` = #{parentId} | |||
AND m.`parent_id` = #{parentId} | |||
</if> | |||
<if test=" null != name and '' != name "> | |||
and `name` = #{name} | |||
AND m.`name` = #{name} | |||
</if> | |||
<if test=" null != status "> | |||
and `status = #{status} | |||
AND m.`status = #{status} | |||
</if> | |||
</sql> | |||
<select id="listApiMenu" resultType="com.iformall.domain.po.sm.ApiMenu"> | |||
SELECT | |||
<include refid="Base_Column_List"/> | |||
FROM api_menu | |||
FROM api_menu m | |||
<include refid="dynamicWhereConditions"/> | |||
</select> | |||
<select id="listParentMenu" resultType="com.iformall.domain.po.sm.ApiMenu"> | |||
SELECT | |||
<include refid="Base_Column_List"/> | |||
FROM | |||
api_menu m | |||
WHERE | |||
m.delete_flag = 0 | |||
AND m.parent_id = 0 | |||
</select> | |||
<select id="listApiMenuAndDetail" resultType="com.iformall.domain.vo.sm.ApiMenuVO"> | |||
SELECT | |||
m.id, | |||
m.create_time AS createTime, | |||
m.update_time AS updateTime, | |||
m.leaf_flag AS leafFlag, | |||
m.`name` AS `name`, | |||
m.parent_id AS parentId, | |||
m.`status` AS `status`, | |||
d.id AS detailId, | |||
d.charge_flag AS chargeFlag, | |||
d.auth_flag AS authFlag, | |||
d.description AS description, | |||
d.platform_url AS platformUrl, | |||
d.public_param AS publicParam, | |||
d.request_param AS requestParam, | |||
d.response_param AS responseParam, | |||
d.request_sample AS requestSample, | |||
d.response_sample AS responseSample, | |||
d.exception_sample AS exception_sample | |||
FROM | |||
api_menu m | |||
LEFT JOIN api_detail d ON m.id = d.menu_id | |||
<include refid="dynamicWhereConditions"/> | |||
</select> | |||
</mapper> |
@@ -91,6 +91,6 @@ | |||
SELECT | |||
<include refid="allColumns"/> | |||
FROM wx_third_party_api | |||
<include refid="generalWhereConditions"></include> | |||
<include refid="generalWhereConditions"/> | |||
</select> | |||
</mapper> |