浏览代码

增加创建账号、修改账号、分页查询账号列表接口

dsx 2 年之前
父节点
当前提交
d54782294c

+ 32 - 0
src/main/java/com/fdkankan/openApi/constant/CountType.java

@@ -0,0 +1,32 @@
+package com.fdkankan.openApi.constant;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@AllArgsConstructor
+public enum CountType {
+
+    /**
+     * 不限制
+     */
+    NO_LIMIT(-1),
+    /**
+     * 增加
+     */
+    ADD(0),
+
+    /**
+     * 减少
+     */
+    REDUCE(1),
+    ;
+
+    private Integer code;
+
+    public Integer code(){
+        return this.code;
+    }
+
+
+
+}

+ 15 - 3
src/main/java/com/fdkankan/openApi/controller/system/SsoUserController.java

@@ -4,6 +4,7 @@ package com.fdkankan.openApi.controller.system;
 import cn.dev33.satoken.annotation.SaIgnore;
 import cn.dev33.satoken.stp.SaLoginModel;
 import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.util.Base64Converter;
 import com.fdkankan.common.util.PasswordUtils;
 import com.fdkankan.openApi.aop.ValidateApi;
@@ -13,8 +14,7 @@ import com.fdkankan.openApi.entity.system.UserAuthInfo;
 import com.fdkankan.openApi.httpclient.client.FdKKClient;
 import com.fdkankan.openApi.service.system.IAccountService;
 import com.fdkankan.openApi.service.system.IUserAuthInfoService;
-import com.fdkankan.openApi.vo.system.CreateAppUserParamVo;
-import com.fdkankan.openApi.vo.system.LoginParam;
+import com.fdkankan.openApi.vo.system.*;
 import com.fdkankan.openApi.vo.www.FdkkLoginVo;
 import com.fdkankan.web.response.Result;
 import com.fdkankan.web.response.ResultData;
@@ -53,11 +53,23 @@ public class SsoUserController extends BaseController {
     }
 
     @SaIgnore
-    @PostMapping("createApp")
+    @PostMapping("app/create")
     public ResultData createApp(@RequestBody @Validated CreateAppUserParamVo param){
         return accountService.createApp(param);
     }
 
+    @SaIgnore
+    @PostMapping("app/update")
+    public ResultData updateApp(@RequestBody @Validated UpdateAppUserParamVo param){
+        return accountService.updateApp(param);
+    }
+
+    @SaIgnore
+    @PostMapping("app/list")
+    public ResultData listApp(@RequestBody PageAppUserParamVo param){
+        return accountService.listApp(param);
+    }
+
 
 }
 

+ 7 - 0
src/main/java/com/fdkankan/openApi/mapper/system/IAccountMapper.java

@@ -1,7 +1,12 @@
 package com.fdkankan.openApi.mapper.system;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.openApi.entity.system.Account;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fdkankan.openApi.entity.www.ScenePlus;
+import com.fdkankan.openApi.vo.system.AppUserVo;
+import com.fdkankan.openApi.vo.system.PageAppUserParamVo;
+import com.fdkankan.openApi.vo.www.PageScenesParamVo;
 import org.apache.ibatis.annotations.Mapper;
 
 /**
@@ -15,4 +20,6 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 public interface IAccountMapper extends BaseMapper<Account> {
 
+    Page<AppUserVo> pageList(Page<AppUserVo> page, PageAppUserParamVo param);
+
 }

+ 7 - 5
src/main/java/com/fdkankan/openApi/service/system/IAccountService.java

@@ -1,12 +1,10 @@
 package com.fdkankan.openApi.service.system;
 
-import com.fdkankan.openApi.entity.system.Account;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.fdkankan.openApi.vo.system.CreateAppUserParamVo;
-import com.fdkankan.openApi.vo.system.LoginParam;
+import com.fdkankan.openApi.entity.system.Account;
+import com.fdkankan.openApi.vo.system.*;
 import com.fdkankan.web.response.ResultData;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -28,4 +26,8 @@ public interface IAccountService extends IService<Account> {
 
     ResultData createApp(CreateAppUserParamVo param);
 
+    ResultData updateApp(UpdateAppUserParamVo param);
+
+    ResultData listApp(PageAppUserParamVo param);
+
 }

+ 2 - 0
src/main/java/com/fdkankan/openApi/service/system/IUserAuthInfoService.java

@@ -35,4 +35,6 @@ public interface IUserAuthInfoService extends IService<UserAuthInfo> {
 
     void setReidsCount(String appKey, int count, boolean isInfinite);
 
+    UserAuthInfo findByAccountId(long accountId);
+
 }

+ 62 - 3
src/main/java/com/fdkankan/openApi/service/system/impl/AccountServiceImpl.java

@@ -2,13 +2,17 @@ package com.fdkankan.openApi.service.system.impl;
 
 import cn.dev33.satoken.stp.SaLoginModel;
 import cn.dev33.satoken.stp.StpUtil;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.constant.CommonStatus;
 import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.util.Base64Converter;
 import com.fdkankan.common.util.PasswordUtils;
+import com.fdkankan.openApi.common.PageInfo;
+import com.fdkankan.openApi.constant.CountType;
 import com.fdkankan.openApi.entity.system.Account;
 import com.fdkankan.openApi.entity.system.UserAuthInfo;
 import com.fdkankan.openApi.entity.www.User;
@@ -20,14 +24,14 @@ import com.fdkankan.openApi.service.system.IUserAuthInfoService;
 import com.fdkankan.openApi.service.www.IUserService;
 import com.fdkankan.openApi.util.JwtUtil;
 import com.fdkankan.openApi.util.TokenUtil;
-import com.fdkankan.openApi.vo.system.CreateAppUserParamVo;
-import com.fdkankan.openApi.vo.system.LoginParam;
+import com.fdkankan.openApi.vo.system.*;
 import com.fdkankan.openApi.vo.www.FdkkLoginVo;
 import com.fdkankan.web.response.Result;
 import com.fdkankan.web.response.ResultData;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -135,7 +139,7 @@ public class AccountServiceImpl extends ServiceImpl<IAccountMapper, Account> imp
         userAuthInfo.setAccountId(account.getId());
         userAuthInfo.setUserId(user.getId());
         userAuthInfo.setAppKey(TokenUtil.createToken());
-        userAuthInfo.setTotalCount(param.getCount());
+        userAuthInfo.setTotalCount(CountType.NO_LIMIT.code() == param.getCountType() ? -1 : param.getCount());
         userAuthInfo.setState(userAuthInfo.getState());
         userAuthInfo.setEffectTime(param.getEffectTime());
         userAuthInfo.setCreaterId(param.getCreaterId());
@@ -143,4 +147,59 @@ public class AccountServiceImpl extends ServiceImpl<IAccountMapper, Account> imp
 
         return ResultData.ok();
     }
+
+    @Override
+    public ResultData updateApp(UpdateAppUserParamVo param) {
+
+        Account account = this.getById(param.getId());
+        if(Objects.isNull(account)){
+            throw new BusinessException(ErrorCode.FAILURE_CODE_10003);
+        }
+
+        if(!param.getUserName().equals(account.getUserName())){
+            User user = userService.getByUserName(param.getUserName());
+            account.setUserName(param.getUserName());
+            account.setUserId(user.getId());
+        }
+        account.setCustomerName(param.getCustomerName());
+        account.setDescription(param.getDescription());
+        account.setUpdaterId(param.getUpdaterId());
+        this.updateById(account);
+
+
+        UserAuthInfo userAuthInfo = userAuthService.findByAccountId(account.getId());
+
+        int totalCount = userAuthInfo.getTotalCount();
+        if(totalCount < 0){
+            totalCount = 0;
+        }
+        Integer count = param.getCount();
+        if(CountType.NO_LIMIT.code() == param.getCountType()){
+            totalCount = -1;
+        }else if(CountType.REDUCE.code() == param.getCountType()){
+            totalCount  -= count;
+            totalCount = totalCount < 0 ? 0 : totalCount;
+        }else{
+            totalCount += count;
+        }
+        userAuthInfo.setUserId(account.getUserId());
+        userAuthInfo.setTotalCount(totalCount);
+        userAuthInfo.setState(param.getState());
+        userAuthInfo.setUpdaterId(param.getUpdaterId());
+        userAuthService.updateById(userAuthInfo);
+
+        return ResultData.ok();
+    }
+
+    @Override
+    public ResultData listApp(PageAppUserParamVo param) {
+        Page<AppUserVo> appUserVoPage = this.baseMapper.pageList(new Page<>(param.getPageNum(), param.getPageSize()), param);
+        List<AppUserVo> records = appUserVoPage.getRecords();
+        if(CollUtil.isNotEmpty(records)){
+            records.stream().forEach(record -> {
+                record.setLeaveCount(record.getTotalCount() - record.getCallCount());
+            });
+        }
+        return ResultData.ok(PageInfo.PageInfo(appUserVoPage));
+    }
 }

+ 5 - 0
src/main/java/com/fdkankan/openApi/service/system/impl/UserAuthInfoInfoServiceImpl.java

@@ -157,4 +157,9 @@ public class UserAuthInfoInfoServiceImpl extends ServiceImpl<IUserAuthInfoMapper
     public boolean decrCallCount(String appKey) {
         return this.update(new LambdaUpdateWrapper<UserAuthInfo>().setSql("call_count = call_count + " + 1).eq(UserAuthInfo::getAppKey, appKey));
     }
+
+    @Override
+    public UserAuthInfo findByAccountId(long accountId) {
+        return this.getOne(new LambdaQueryWrapper<UserAuthInfo>().eq(UserAuthInfo::getAccountId, accountId));
+    }
 }

+ 68 - 0
src/main/java/com/fdkankan/openApi/vo/system/AppUserVo.java

@@ -0,0 +1,68 @@
+package com.fdkankan.openApi.vo.system;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class AppUserVo {
+
+    /**
+     * 账号
+     */
+    private String userName;
+    /**
+     * 客户名称
+     */
+    private String customerName;
+
+    /**
+     * 客户描述
+     */
+    private String description;
+
+    /**
+     * appkey
+     */
+    private String appkey;
+
+    /**
+     * 总次数(-1表示无限制)
+     */
+    private Integer totalCount;
+
+    /**
+     * 已调用次数
+     */
+    private Integer callCount;
+
+    /**
+     * 剩余次数
+     */
+    private Integer leaveCount;
+
+
+    /**
+     * 启用状态(0-否,1-是)
+     */
+    private Integer state;
+
+    /**
+     * 生效时间
+     */
+    private Date effectTime;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+}

+ 8 - 1
src/main/java/com/fdkankan/openApi/vo/system/CreateAppUserParamVo.java

@@ -26,7 +26,13 @@ public class CreateAppUserParamVo {
     private String description;
 
     /**
-     * api调用次数,当值为-1时,表示无限制,非负数表示增加次数
+     * 次数类型(-1-无限制,0-增加,1-减少)
+     */
+    @NotNull(message = "countType不能为空")
+    private Integer countType;
+
+    /**
+     * api调用次数
      */
     @NotNull(message = "count不能为空")
     private Integer count;
@@ -51,4 +57,5 @@ public class CreateAppUserParamVo {
 
 
 
+
 }

+ 31 - 0
src/main/java/com/fdkankan/openApi/vo/system/PageAppUserParamVo.java

@@ -0,0 +1,31 @@
+package com.fdkankan.openApi.vo.system;
+
+import com.fdkankan.web.request.RequestBase;
+import lombok.Data;
+
+@Data
+public class PageAppUserParamVo extends RequestBase {
+
+    /**
+     * 账号
+     */
+    private String userName;
+    /**
+     * 客户名称
+     */
+    private String customerName;
+
+    /**
+     * appkey
+     */
+    private String appKey;
+
+    /**
+     * 启用状态(0-否,1-是)
+     */
+    private Integer state;
+
+
+
+
+}

+ 56 - 0
src/main/java/com/fdkankan/openApi/vo/system/UpdateAppUserParamVo.java

@@ -0,0 +1,56 @@
+package com.fdkankan.openApi.vo.system;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+@Data
+public class UpdateAppUserParamVo {
+
+    @NotNull(message = "id不能为空")
+    private Long id;
+
+    /**
+     * 账号
+     */
+    @NotBlank(message = "userName不能为空")
+    private String userName;
+    /**
+     * 客户名称
+     */
+    @NotBlank(message = "customerName不能为空")
+    private String customerName;
+
+    /**
+     * 客户描述
+     */
+    private String description;
+
+    /**
+     * 次数类型(-1-无限制,0-增加,1-减少)
+     */
+    private Integer countType;
+
+    /**
+     * api调用次数
+     */
+    @NotNull(message = "count不能为空")
+    private Integer count;
+
+    /**
+     * 启用状态(0-否,1-是)
+     */
+    @NotNull(message = "state不能为空")
+    private Integer state;
+
+    /**
+     * 修改人id(对应管理后台用户id)
+     */
+    @NotNull(message = "updateId不能为空")
+    private Long updaterId;
+
+
+
+}

+ 23 - 0
src/main/resources/mapper/system/AccountMapper.xml

@@ -2,4 +2,27 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fdkankan.openApi.mapper.system.IAccountMapper">
 
+    <select id="pageList" resultType="com.fdkankan.openApi.vo.system.AppUserVo">
+
+        select * from t_account t
+        left join t_user_auth_info u on t.id = u.account_id
+        where t.tb_status = 0 and u.tb_status = 0
+        <if test="param.userName != null and param.userName != ''">
+            and t.user_name = #{param.userName}
+        </if>
+        <if test="param.customerName != null and param.customerName != ''">
+            and t.customer_name like concat('%', #{param.customerName}, '%')
+        </if>
+        <if test="param.appKey != null and param.appKey != ''">
+            and u.app_key = #{param.appKey}
+        </if>
+        <if test="param.state != null">
+            and u.state = #{param.state}
+        </if>
+
+
+
+    </select>
+
+
 </mapper>