Browse Source

增加注解,数据库操作优化,增加删除服务端接口

zhaops 6 years ago
parent
commit
4d5b97f56c

+ 11 - 10
diagbotman-service/src/main/java/com/diagbot/facade/ProductServiceFacade.java

@@ -11,6 +11,8 @@ import com.diagbot.entity.ProductService;
 import com.diagbot.entity.ServiceInfo;
 import com.diagbot.entity.ServiceToken;
 import com.diagbot.entity.wrapper.ProductServiceWrapper;
+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;
@@ -25,7 +27,6 @@ import org.springframework.stereotype.Component;
 
 import java.util.Calendar;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -72,7 +73,7 @@ public class ProductServiceFacade extends ProductServiceServiceImpl {
         QueryWrapper<ProductService> qwps = new QueryWrapper<>();
         qwps.eq("product_id", productServiceSaveVO.getProductId());
         qwps.eq("service_id", productServiceSaveVO.getServiceId());
-        qwps.eq("is_deleted", "N");
+        qwps.eq("is_deleted", IsDeleteEnum.N.getKey());
         ProductService productService = this.getOne(qwps);
         if (productService == null) {
             productService = new ProductService();
@@ -103,7 +104,7 @@ public class ProductServiceFacade extends ProductServiceServiceImpl {
         serviceToken.setType(productServiceSaveVO.getType());
         serviceToken.setAppKeyId(GuidUtil.App_key());
         serviceToken.setAppKeySecret(GuidUtil.App_screct());
-        serviceToken.setStatus(1);
+        serviceToken.setStatus(StatusEnum.Enable.getKey());
         if (old_serviceToken != null && old_serviceToken.getType().equals(TokenTypeEnum.Trial.getKey())) {
             //如果试用已过期,不允许再生成
             if (calendar.after(old_serviceToken.getExpiringDate())) {
@@ -133,7 +134,7 @@ public class ProductServiceFacade extends ProductServiceServiceImpl {
         QueryWrapper<ProductService> qwps = new QueryWrapper<>();
         qwps.eq("product_id", productServiceSaveVO.getProductId());
         qwps.eq("service_id", productServiceSaveVO.getServiceId());
-        qwps.eq("is_deleted", "N");
+        qwps.eq("is_deleted", IsDeleteEnum.N.getKey());
         ProductService productService = this.getOne(qwps);
         if (productService == null) {
             throw new CommonException(CommonErrorCode.NOT_EXISTS,
@@ -160,30 +161,30 @@ public class ProductServiceFacade extends ProductServiceServiceImpl {
         Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
         //当前登录用户服务端列表
         QueryWrapper<ServiceInfo> qwService = new QueryWrapper<>();
-        qwService.eq("is_deleted", "N");
+        qwService.eq("is_deleted", IsDeleteEnum.N.getKey());
         qwService.eq("user_id", userId);
         List<ServiceInfo> serviceInfoList = serviceInfoFacade.list(qwService);
         Map<Long, ServiceInfo> serviceData = EntityUtil.makeEntityMap(serviceInfoList, "id");
         //服务令牌列表
         QueryWrapper<ServiceToken> qwToken = new QueryWrapper<>();
-        qwToken.eq("is_deleted", "N");
+        qwToken.eq("is_deleted", IsDeleteEnum.N.getKey());
         List<ServiceToken> serviceTokenList = serviceTokenFacade.list(qwToken);
         Map<Long, ServiceToken> tokenData = EntityUtil.makeEntityMap(serviceTokenList, "productServiceId");
         //产品列表
         QueryWrapper<LantoneProduct> qwProduct = new QueryWrapper<>();
-        qwProduct.eq("is_deleted", "N");
+        qwProduct.eq("is_deleted", IsDeleteEnum.N.getKey());
         List<LantoneProduct> lantoneProductList = lantoneProductFacade.list(qwProduct);
         Map<Long, LantoneProduct> lantoneProductData = EntityUtil.makeEntityMap(lantoneProductList, "id");
         //当前用户开通的产品列表
         QueryWrapper<OpenedProducts> qwOpenedProducts = new QueryWrapper<>();
-        qwOpenedProducts.eq("is_deleted", "N");
+        qwOpenedProducts.eq("is_deleted", IsDeleteEnum.N.getKey());
         qwOpenedProducts.eq("user_id", userId);
         List<OpenedProducts> openedProductsList = openedProductsFacade.list(qwOpenedProducts);
         Map<Long, OpenedProducts> openedProductData = EntityUtil.makeEntityMap(openedProductsList, "productId");
 
         ProductServiceWrapper productServiceVO = new ProductServiceWrapper();
         productServiceVO.setUserId(userId);
-        IPage<ProductServiceWrapper> psPage = this.selectProductServiceByUserIdPage(page, productServiceVO);
+        IPage<ProductServiceWrapper> psPage = this.selectProductServicePage(page, productServiceVO);
         List<ProductServiceWrapper> psList = psPage.getRecords();
         for (ProductServiceWrapper productService : psList) {
             productService.setLantoneProduct(lantoneProductData.get(productService.getProductId()));
@@ -194,4 +195,4 @@ public class ProductServiceFacade extends ProductServiceServiceImpl {
         psPage.setRecords(psList);
         return psPage;
     }
-}
+}

+ 36 - 0
diagbotman-service/src/main/java/com/diagbot/facade/ServiceInfoFacade.java

@@ -1,15 +1,19 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.entity.ProductService;
 import com.diagbot.entity.ServiceInfo;
+import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.ServiceTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ServiceInfoServiceImpl;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.ServiceSaveVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.Date;
@@ -22,6 +26,9 @@ import java.util.List;
  */
 @Component
 public class ServiceInfoFacade extends ServiceInfoServiceImpl {
+    @Autowired
+    private ProductServiceFacade productServiceFacade;
+
     /**
      * 新建服务端
      *
@@ -59,6 +66,35 @@ public class ServiceInfoFacade extends ServiceInfoServiceImpl {
         return this.updateById(serviceInfo);
     }
 
+    /**
+     * 删除服务端
+     * 删除之前判断是否有产品关联,如果有,不允许删除
+     *
+     * @param serviceId
+     * @return
+     */
+    public Boolean delService(Long serviceId) {
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        ServiceInfo serviceInfo = this.getById(serviceId);
+        if (serviceInfo == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "服务端不存在");
+        } else if (userId != serviceInfo.getUserId()) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                    "服务端【" + serviceInfo.getName() + "】关联用户与当前登录用户不匹配,不允许删除");
+        }
+        QueryWrapper<ProductService> qwps = new QueryWrapper<>();
+        qwps.eq("is_deleted", IsDeleteEnum.N.getKey());
+        qwps.eq("service_id", serviceId);
+        List<ProductService> psList = productServiceFacade.list(qwps);
+        if (psList.size() > 0) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,
+                    "该服务端正在使用,不允许删除,请先删除关联产品!");
+        }
+        serviceInfo.setIsDeleted(IsDeleteEnum.Y.getKey());
+        this.updateById(serviceInfo);
+        return true;
+    }
+
     /**
      * 获取当前登录用户服务列表
      *

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

@@ -101,7 +101,7 @@ public class ServiceTokenFacade extends ServiceTokenServiceImpl {
      */
     public ServiceToken getByProductServiceId(Long productServiceId) {
         QueryWrapper<ServiceToken> qw = new QueryWrapper<>();
-        qw.eq("product_sevice_id", productServiceId);
+        qw.eq("product_service_id", productServiceId);
         return this.selectOneRecord(qw);
     }
 
@@ -114,7 +114,7 @@ public class ServiceTokenFacade extends ServiceTokenServiceImpl {
     public Integer deleteByProductServiceId(Long productServiceId) {
         checkCurrentUser(productServiceId);
         UpdateWrapper<ServiceToken> uw = new UpdateWrapper<>();
-        uw.eq("product_sevice_id", productServiceId);
+        uw.eq("product_service_id", productServiceId);
         ServiceToken serviceToken = new ServiceToken();
         serviceToken.setIsDeleted(IsDeleteEnum.Y.getKey());
         return this.updateRecord(serviceToken, uw);
@@ -129,7 +129,7 @@ public class ServiceTokenFacade extends ServiceTokenServiceImpl {
     public Integer enableToken(Long productServiceId) {
         checkCurrentUser(productServiceId);
         UpdateWrapper<ServiceToken> uw = new UpdateWrapper<>();
-        uw.eq("product_sevice_id", productServiceId);
+        uw.eq("product_service_id", productServiceId);
         uw.eq("type", TokenTypeEnum.Manual.getKey());
         ServiceToken serviceToken = new ServiceToken();
         serviceToken.setStatus(StatusEnum.Enable.getKey());
@@ -145,7 +145,7 @@ public class ServiceTokenFacade extends ServiceTokenServiceImpl {
     public Integer disableToken(Long productServiceId) {
         checkCurrentUser(productServiceId);
         UpdateWrapper<ServiceToken> uw = new UpdateWrapper<>();
-        uw.eq("product_sevice_id", productServiceId);
+        uw.eq("product_service_id", productServiceId);
         uw.eq("type", TokenTypeEnum.Manual.getKey());
         ServiceToken serviceToken = new ServiceToken();
         serviceToken.setStatus(StatusEnum.Disable.getKey());

+ 2 - 2
diagbotman-service/src/main/java/com/diagbot/mapper/ProductServiceMapper.java

@@ -18,11 +18,11 @@ import org.apache.ibatis.annotations.Param;
 public interface ProductServiceMapper extends BaseMapper<ProductService> {
 
     /**
-     * 根据用户id获取产品与服务端的关联列表(分页)
+     * 查询产品与服务端的关联列表(分页)
      *
      * @param page
      * @param productService
      * @return
      */
-    IPage<ProductServiceWrapper> selectProductServiceByUserIdPage(Page page, @Param("productService") ProductServiceWrapper productService);
+    IPage<ProductServiceWrapper> selectProductServicePage(Page page, @Param("productService") ProductServiceWrapper productService);
 }

+ 2 - 2
diagbotman-service/src/main/java/com/diagbot/service/ProductServiceService.java

@@ -21,11 +21,11 @@ import java.util.Map;
 public interface ProductServiceService extends IService<ProductService> {
 
     /**
-     * 根据用户id获取产品与服务端的关联列表(分页)
+     * 查询产品与服务端的关联列表(分页)
      *
      * @param page
      * @param productService
      * @return
      */
-    IPage<ProductServiceWrapper> selectProductServiceByUserIdPage(Page<ProductServiceWrapper> page, ProductServiceWrapper productService);
+    IPage<ProductServiceWrapper> selectProductServicePage(Page<ProductServiceWrapper> page, ProductServiceWrapper productService);
 }

+ 3 - 3
diagbotman-service/src/main/java/com/diagbot/service/impl/ProductServiceServiceImpl.java

@@ -21,13 +21,13 @@ import org.springframework.stereotype.Service;
 public class ProductServiceServiceImpl extends ServiceImpl<ProductServiceMapper, ProductService> implements ProductServiceService {
 
     /**
-     * 根据用户id获取产品与服务端的关联列表(分页)
+     * 查询产品与服务端的关联列表(分页)
      *
      * @param page
      * @param productService
      * @return
      */
-    public IPage<ProductServiceWrapper> selectProductServiceByUserIdPage(Page<ProductServiceWrapper> page, ProductServiceWrapper productService) {
-        return baseMapper.selectProductServiceByUserIdPage(page, productService);
+    public IPage<ProductServiceWrapper> selectProductServicePage(Page<ProductServiceWrapper> page, ProductServiceWrapper productService) {
+        return baseMapper.selectProductServicePage(page, productService);
     }
 }

+ 4 - 3
diagbotman-service/src/main/java/com/diagbot/vo/ProductServiceSaveVO.java

@@ -4,6 +4,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
 
 /**
  * @Description:
@@ -13,10 +14,10 @@ import javax.validation.constraints.NotBlank;
 @Getter
 @Setter
 public class ProductServiceSaveVO {
-    @NotBlank(message = "请输入产品Id!")
+    @NotNull(message = "请输入产品Id!")
     private Long productId;
-    @NotBlank(message = "请输入服务Id!")
+    @NotNull(message = "请输入服务Id!")
     private Long serviceId;
-    @NotBlank(message = "请输入令牌类型!")
+    @NotNull(message = "请输入令牌类型!")
     private Integer type;
 }

+ 2 - 2
diagbotman-service/src/main/java/com/diagbot/web/ProductServiceController.java

@@ -70,12 +70,12 @@ public class ProductServiceController {
     }
 
     /**
-     * 根据用户id获取产品服务关联信息
+     * 获取当前登录用户产品服务分页列表
      *
      * @param page
      * @return
      */
-    @ApiOperation(value = "根据用户id获取产品服务关联信息[by:zhaops]", notes = "根据用户id获取产品服务关联信息")
+    @ApiOperation(value = "获取当前登录用户产品服务分页列表[by:zhaops]", notes = "获取当前登录用户产品服务分页列表")
     @PostMapping("/getProductServiceByCurrentUser")
     @SysLogger("getProductServiceByCurrentUser")
     public RespDTO getProductServiceByCurrentUser(Page page) {

+ 18 - 0
diagbotman-service/src/main/java/com/diagbot/web/ServiceInfoController.java

@@ -15,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.validation.Valid;
@@ -73,6 +74,23 @@ public class ServiceInfoController {
         return RespDTO.onSuc(isSuccess);
     }
 
+    /**
+     * 删除服务
+     *
+     * @param serviceId
+     * @return
+     */
+    @ApiOperation(value = "删除服务[by:zhaops]",
+            notes = "id:id,必填<br>")
+    @PostMapping("/delService")
+    @SysLogger("delService")
+    @Transactional
+    public RespDTO<Boolean> delService(@RequestParam Long serviceId) {
+        Boolean isSuccess = serviceInfoFacade.delService(serviceId);
+        return RespDTO.onSuc(isSuccess);
+    }
+
+
     /**
      * 获取当前登录用户的服务列表
      *

+ 1 - 1
diagbotman-service/src/main/resources/mapper/OpenedProductsMapper.xml

@@ -56,7 +56,7 @@
 
     <select id="getByAppkeyAndSecret" resultMap="BaseResultMap" parameterType="java.util.Map">
         select os.* from diag_service_token st, diag_product_service ps, diag_service_info si, diag_opened_products os
-        where st.product_sevice_id = ps.id and ps.product_id = os.product_id and ps.service_id = si.id and si.user_id = os.user_id
+        where st.product_service_id = ps.id and ps.product_id = os.product_id and ps.service_id = si.id and si.user_id = os.user_id
         and st.is_deleted = 'N' and ps.is_deleted = 'N' and si.is_deleted = 'N' AND os.is_deleted = 'N'
         and st.app_key_id = #{appkey} and st.app_key_secret = #{secret}
     </select>

+ 14 - 5
diagbotman-service/src/main/resources/mapper/ProductServiceMapper.xml

@@ -29,11 +29,20 @@
         <result column="remark" property="remark"/>
     </resultMap>
 
-    <!-- 根据用户id获取产品与服务端的关联列表(分页) -->
-    <select id="selectProductServiceByUserIdPage" resultMap="BaseResultWrapperMap">
+    <!-- 查询产品与服务端的关联列表(分页) -->
+    <select id="selectProductServicePage" resultMap="BaseResultWrapperMap">
         select a.* from diag_product_service a,diag_opened_products b,diag_service_info c ,diag_lantone_product d
-        where a.product_id=b.product_id and a.product_id=d.id and a.service_id=c.id and a.is_deleted='N' and b.is_deleted='N' and c.is_deleted='N' and b.service_status=1  and d.is_deleted='N'
-        and b.user_id=#{productService.userId} and c.user_id=#{productService.userId} and (find_in_set('1',d.access_type) or FIND_IN_SET('2',d.access_type))
+        where a.product_id=b.product_id
+        and a.product_id=d.id
+        and a.service_id=c.id
+        and a.is_deleted='N'
+        and b.is_deleted='N'
+        and c.is_deleted='N'
+        and b.service_status=1
+        and d.is_deleted='N'
+        and (find_in_set('1',d.access_type) or FIND_IN_SET('2',d.access_type))
+        <if test="productService.userId != null and productService.userId != '' ">
+            and b.user_id=#{productService.userId} and c.user_id=#{productService.userId}
+        </if>
     </select>
-
 </mapper>