Kaynağa Gözat

增加注解,删除单表操作方法

zhaops 6 yıl önce
ebeveyn
işleme
62245b4395

+ 100 - 8
diagbotman-service/src/main/java/com/diagbot/facade/ServiceTokenFacade.java

@@ -1,15 +1,20 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.OpenedProducts;
 import com.diagbot.entity.ProductService;
+import com.diagbot.entity.ServiceInfo;
 import com.diagbot.entity.ServiceToken;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.StatusEnum;
 import com.diagbot.enums.TokenTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ServiceTokenServiceImpl;
 import com.diagbot.util.ListUtil;
+import com.diagbot.util.UserUtils;
 import com.diagbot.vo.ServiceTokenVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -32,10 +37,13 @@ public class ServiceTokenFacade extends ServiceTokenServiceImpl {
     ProductServiceFacade productServiceFacade;
     @Autowired
     OpenedProductsFacade openedProductsFacade;
+    @Autowired
+    ServiceInfoFacade serviceInfoFacade;
 
 
     /**
      * 获取资源的url
+     *
      * @param serviceTokenVo 参数
      * @return 是否有权限
      */
@@ -45,11 +53,15 @@ public class ServiceTokenFacade extends ServiceTokenServiceImpl {
         Map<String, Object> paramMap = new HashMap<>();
         paramMap.put("appkey", appkey);
         paramMap.put("secret", secret);
-        ServiceToken st = this.getServiceToken(paramMap);
-        if(null == st) {
+        //ServiceToken st = this.getServiceToken(paramMap);
+        QueryWrapper<ServiceToken> qw = new QueryWrapper<>();
+        qw.eq("app_key_id", appkey);
+        qw.eq("app_key_secret", secret);
+        ServiceToken st = this.selectOneRecord(qw);
+        if (null == st) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "appkey或secret错误,appkey=【" + appkey + "】," + "secret=【" + secret + "】");
         }
-        if(TokenTypeEnum.Trial.getKey() == st.getType()) {
+        if (TokenTypeEnum.Trial.getKey() == st.getType()) {
             ProductService ps = productServiceFacade.getById(st.getProductServiceId());
             if (ps == null) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "无权限访问!");
@@ -63,21 +75,101 @@ public class ServiceTokenFacade extends ServiceTokenServiceImpl {
             }
         } else {
             List<OpenedProducts> opList = openedProductsFacade.getByAppkeyAndSecret(paramMap);
-            if(ListUtil.isEmpty(opList)) {
+            if (ListUtil.isEmpty(opList)) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "无权限访问!");
             }
-            if(opList.size() != 1) {
+            if (opList.size() != 1) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "当前appkey和secret对应多条数据!");
             }
             OpenedProducts op = opList.get(0);// 正常只有一条数据
             Date date = new Date();
-            if(!(StatusEnum.Enable.getKey() == op.getServiceStatus())) {
+            if (!(StatusEnum.Enable.getKey() == op.getServiceStatus())) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "当前服务已停用!");
             }
-            if(op.getEndTime().getTime() < date.getTime()) {
+            if (op.getEndTime().getTime() < date.getTime()) {
                 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "访问权限已过期!");
             }
         }
         return RespDTO.onSuc(true);
     }
-}
+
+    /**
+     * 根据产品服务关联id获取令牌
+     *
+     * @param productServiceId
+     * @return
+     */
+    public ServiceToken getByProductServiceId(Long productServiceId) {
+        QueryWrapper<ServiceToken> qw = new QueryWrapper<>();
+        qw.eq("product_sevice_id", productServiceId);
+        return this.selectOneRecord(qw);
+    }
+
+    /**
+     * 根据产品服务关联id删除令牌
+     *
+     * @param productServiceId
+     * @return
+     */
+    public Integer deleteByProductServiceId(Long productServiceId) {
+        checkCurrentUser(productServiceId);
+        UpdateWrapper<ServiceToken> uw = new UpdateWrapper<>();
+        uw.eq("product_sevice_id", productServiceId);
+        ServiceToken serviceToken = new ServiceToken();
+        serviceToken.setIsDeleted(IsDeleteEnum.Y.getKey());
+        return this.updateRecord(serviceToken, uw);
+    }
+
+    /**
+     * 启用令牌
+     *
+     * @param productServiceId
+     * @return
+     */
+    public Integer enableToken(Long productServiceId) {
+        checkCurrentUser(productServiceId);
+        UpdateWrapper<ServiceToken> uw = new UpdateWrapper<>();
+        uw.eq("product_sevice_id", productServiceId);
+        uw.eq("type", TokenTypeEnum.Manual.getKey());
+        ServiceToken serviceToken = new ServiceToken();
+        serviceToken.setStatus(StatusEnum.Enable.getKey());
+        return this.updateRecord(serviceToken, uw);
+    }
+
+    /**
+     * 禁用令牌
+     *
+     * @param productServiceId
+     * @return
+     */
+    public Integer disableToken(Long productServiceId) {
+        checkCurrentUser(productServiceId);
+        UpdateWrapper<ServiceToken> uw = new UpdateWrapper<>();
+        uw.eq("product_sevice_id", productServiceId);
+        uw.eq("type", TokenTypeEnum.Manual.getKey());
+        ServiceToken serviceToken = new ServiceToken();
+        serviceToken.setStatus(StatusEnum.Disable.getKey());
+        return this.updateRecord(serviceToken, uw);
+    }
+
+    /**
+     * 校验令牌所属用户是否当前登录用户
+     *
+     * @param productServiceId
+     * @return
+     */
+    public Boolean checkCurrentUser(Long productServiceId) {
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        ProductService productService = productServiceFacade.getById(productServiceId);
+        if (productService == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "产品服务端关联不存在");
+        }
+        ServiceInfo serviceInfo = serviceInfoFacade.getById(productService.getServiceId());
+        if (serviceInfo == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "服务端不存在");
+        } else if (serviceInfo.getUserId() != userId) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "登录用户与令牌所属用户不一致");
+        }
+        return true;
+    }
+}

+ 0 - 11
diagbotman-service/src/main/java/com/diagbot/mapper/ServiceTokenMapper.java

@@ -14,15 +14,4 @@ import java.util.Map;
  * @since 2018-09-17
  */
 public interface ServiceTokenMapper extends BaseMapper<ServiceToken> {
-
-
-    ServiceToken getServiceToken(Map map);
-
-    ServiceToken getByProductServiceId(Long productServiceId);
-
-    Integer deleteByProductServiceId(Long productServiceId);
-
-    Integer enableToken(Long productServiceId);
-
-    Integer disableToken(Long productServiceId);
 }

+ 16 - 15
diagbotman-service/src/main/java/com/diagbot/service/ServiceTokenService.java

@@ -1,10 +1,10 @@
 package com.diagbot.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.entity.ServiceToken;
 
-import java.util.Map;
-
 /**
  * <p>
  * 服务令牌表 服务类
@@ -14,19 +14,20 @@ import java.util.Map;
  * @since 2018-09-17
  */
 public interface ServiceTokenService extends IService<ServiceToken> {
-
     /**
-     * @Description: 根据参数获取服务令牌
-     * @Author: ztg
-     * @Date: 2018/9/18 16:38
+     * 更新令牌
+     *
+     * @param entity
+     * @param updateWrapper
+     * @return
      */
-    ServiceToken getServiceToken(Map<String, Object> paramMap);
-
-    ServiceToken getByProductServiceId(Long productServiceId);
-
-    Integer deleteByProductServiceId(Long productServiceId);
+    Integer updateRecord(ServiceToken entity, UpdateWrapper<ServiceToken> updateWrapper);
 
-    Integer enableToken(Long productServiceId);
-
-    Integer disableToken(Long productServiceId);
-}
+    /**
+     * 查找令牌(单记录)
+     *
+     * @param queryWrapper
+     * @return
+     */
+    ServiceToken selectOneRecord(QueryWrapper<ServiceToken> queryWrapper);
+}

+ 22 - 24
diagbotman-service/src/main/java/com/diagbot/service/impl/ServiceTokenServiceImpl.java

@@ -1,14 +1,14 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.entity.ServiceToken;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.mapper.ServiceTokenMapper;
 import com.diagbot.service.ServiceTokenService;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Map;
-
 /**
  * <p>
  * 服务令牌表 服务实现类
@@ -19,28 +19,26 @@ import java.util.Map;
  */
 @Service
 public class ServiceTokenServiceImpl extends ServiceImpl<ServiceTokenMapper, ServiceToken> implements ServiceTokenService {
-
-    @Autowired
-    ServiceTokenMapper serviceTokenMapper;
-
-    @Override
-    public ServiceToken getServiceToken(Map<String, Object> paramMap) {
-        return serviceTokenMapper.getServiceToken(paramMap);
-    }
-
-    public ServiceToken getByProductServiceId(Long productServiceId) {
-        return baseMapper.getByProductServiceId(productServiceId);
-    }
-
-    public Integer deleteByProductServiceId(Long productServiceId) {
-        return baseMapper.deleteByProductServiceId(productServiceId);
-    }
-
-    public Integer enableToken(Long productServiceId) {
-        return baseMapper.enableToken(productServiceId);
+    /**
+     * 更新令牌
+     *
+     * @param entity
+     * @param updateWrapper
+     * @return
+     */
+    public Integer updateRecord(ServiceToken entity, UpdateWrapper<ServiceToken> updateWrapper) {
+        updateWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        return this.baseMapper.update(entity, updateWrapper);
     }
 
-    public Integer disableToken(Long productServiceId) {
-        return baseMapper.disableToken(productServiceId);
+    /**
+     * 查找令牌(单记录)
+     *
+     * @param queryWrapper
+     * @return
+     */
+    public ServiceToken selectOneRecord(QueryWrapper<ServiceToken> queryWrapper) {
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+        return this.baseMapper.selectOne(queryWrapper);
     }
 }

+ 0 - 26
diagbotman-service/src/main/resources/mapper/ServiceTokenMapper.xml

@@ -19,30 +19,4 @@
         <result column="expiring_date" property="expiringDate" />
         <result column="remark" property="remark" />
     </resultMap>
-
-
-    <select id="getServiceToken" resultMap="BaseResultMap" parameterType="java.util.Map">
-        SELECT a.* FROM `diag_service_token` a  where a.is_deleted = 'N' and a.app_key_id = #{appkey} and a.app_key_secret = #{secret}
-    </select>
-
-    <select id="getByProductServiceId" resultMap="BaseResultMap" parameterType="java.lang.Long">
-        select * from diag_service_token
-        where product_sevice_id = #{productServiceId} and is_deleted = 'N'
-    </select>
-
-    <update id="deleteByProductServiceId"  parameterType="java.lang.Long">
-        update diag_service_token set is_deleted='Y'
-        where product_sevice_id = #{productServiceId} and is_deleted = 'N'
-    </update>
-
-    <update id="enableToken" parameterType="java.lang.Long">
-        update diag_service_token set status=1
-        where product_sevice_id = #{productServiceId} and is_deleted = 'N'
-    </update>
-
-    <update id="disableToken" parameterType="java.lang.Long">
-        update diag_service_token set status=0
-        where product_sevice_id = #{productServiceId} and is_deleted = 'N'
-    </update>
-
 </mapper>