浏览代码

Merge remote-tracking branch 'origin/dev/one' into dev/one

wangyu 6 年之前
父节点
当前提交
e68df1268c

+ 61 - 0
common/src/main/java/com/diagbot/util/EnDecodeUtil.java

@@ -0,0 +1,61 @@
+package com.diagbot.util;
+
+import sun.misc.BASE64Decoder;
+import sun.misc.BASE64Encoder;
+
+import java.io.UnsupportedEncodingException;
+
+/**
+ * @Description: 加解密工具类
+ * @author: ztg
+ * @time: 2018/11/8 14:38
+ */
+public class EnDecodeUtil {
+
+    /**
+     * 采用BASE64算法对字符串进行加密
+     * @param str 原字符串
+     * @return 加密后的字符串
+     */
+    public static String encode(String str) {
+        byte[] b = null;
+        String s = null;
+        try {
+            b = str.getBytes("utf-8");
+        } catch (UnsupportedEncodingException e) {
+            e.printStackTrace();
+        }
+        if (b != null) {
+            s = new BASE64Encoder().encode(b);
+        }
+        return s;
+    }
+
+    /**
+     * 字符串解密,采用BASE64的算法
+     * @param s 需要解密的字符串
+     * @return 解密后的字符串
+     */
+    public static String decode(String s) {
+        byte[] b = null;
+        String result = null;
+        if (s != null) {
+            BASE64Decoder decoder = new BASE64Decoder();
+            try {
+                b = decoder.decodeBuffer(s);
+                result = new String(b, "utf-8");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return result;
+    }
+
+
+    public static void main(String[] args) {
+        String abc = "201811081616";
+        String c = encode(abc);
+        System.out.println(c);
+        System.out.println(decode(c));
+    }
+}

+ 21 - 0
diagbotman-service/src/main/java/com/diagbot/dto/OpenProductCheckDTO.java

@@ -0,0 +1,21 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 开通产品状态校验返回类
+ * @Author: rgb
+ * @Date: 2018/11/8 14:10
+ */
+
+@SuppressWarnings("serial")
+@Getter
+@Setter
+public class OpenProductCheckDTO implements Serializable {
+
+    private Boolean hasPermission ;//标志
+
+}

+ 58 - 7
diagbotman-service/src/main/java/com/diagbot/facade/OpenedProductsFacade.java

@@ -1,9 +1,18 @@
 package com.diagbot.facade;
 
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.EnShowOptionDTO;
 import com.diagbot.dto.GetConsoleOnTrialDTO;
 import com.diagbot.dto.GetConsoleOpenedDTO;
+import com.diagbot.dto.OpenProductCheckDTO;
 import com.diagbot.dto.OpenUpOnTrialDTO;
 import com.diagbot.dto.ProductServiceDTO;
 import com.diagbot.dto.RespDTO;
@@ -27,16 +36,10 @@ import com.diagbot.util.DateUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.ModifyOpeningTimeVO;
+import com.diagbot.vo.OpenProductCheckVO;
 import com.diagbot.vo.OpenUpOnTrialVO;
 import com.diagbot.vo.ProductServiceSaveVO;
 import com.diagbot.vo.StartAndendByUserIdVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
  * @Description:已开通产品业务层
@@ -94,6 +97,12 @@ public class OpenedProductsFacade extends OpenedProductsServiceImpl {
         	}else{
         		i.setIsCreateToken(0);
         	}
+        	if(DateUtil.parseDateTime(i.getEndTime()).getTime()<DateUtil.now().getTime()){
+        		i.setIsExpire(0);
+        	}else{
+        		i.setIsExpire(1);
+        	}
+        	i.setEndTime(i.getEndTime().substring(0, 10));
         }
         
         return retList;
@@ -226,6 +235,48 @@ public class OpenedProductsFacade extends OpenedProductsServiceImpl {
 
         return enShowOptionDTO;
     }
+    
+    public OpenProductCheckDTO openProductCheck(OpenProductCheckVO openProductCheckVO){
+    	OpenProductCheckDTO openProductCheckDTO = new OpenProductCheckDTO();
+    	openProductCheckDTO.setHasPermission(false);
+    	
+    	LantoneProduct lantoneProduct =new LantoneProduct();
+        lantoneProduct.setId(openProductCheckVO.getProductId());
+        lantoneProduct = lantoneProductFacade.getById(lantoneProduct);
+        
+    	if(lantoneProduct==null){
+    		throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该产品不存在,请刷新页面");
+    	}
+    	
+    	if(openProductCheckVO.getOpenId()!=null){
+    		OpenedProducts openedProducts = new OpenedProducts();
+    		openedProducts.setId(openProductCheckVO.getOpenId());
+    		openedProducts = this.getById(openedProducts);
+    		if(openedProducts==null||openedProducts.getProductId()!=openProductCheckVO.getProductId()){
+    			throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "您的产品不存在,请刷新页面");
+    		}
+    		if(openedProducts.getIsDeleted().equals("Y")){
+    			 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "您的产品已删除,请刷新页面");
+    		}
+    		if(openedProducts.getServiceStatus()==StatusEnum.Disable.getKey()){
+    			throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "您的产品已停用,请刷新页面");
+    		}
+    		if(openedProducts.getEndTime().getTime()<DateUtil.now().getTime()){
+    			throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "【"+lantoneProduct.getName()+"】已到期,请刷新页面");
+    		}
+    	}
+    	
+    	if(lantoneProduct.getIsDeleted().equals("Y")){
+			 throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "【"+lantoneProduct.getName()+"】已删除,请刷新页面");
+		}
+    	if(lantoneProduct.getServiceStatus()==StatusEnum.Disable.getKey()){
+			throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "【"+lantoneProduct.getName()+"】已停用,请刷新页面");
+		}
+    	
+    	openProductCheckDTO.setHasPermission(true);
+    	return openProductCheckDTO;
+    }
+    
 
     /**
      * @param startAndendByUserIdVO

+ 22 - 11
diagbotman-service/src/main/java/com/diagbot/facade/ProductOrderFacade.java

@@ -1,9 +1,23 @@
 package com.diagbot.facade;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.AuthDetailDTO;
+import com.diagbot.dto.HasPermissionDTO;
 import com.diagbot.dto.OrderDetialsDTO;
 import com.diagbot.dto.ProductAuthProgressDTO;
 import com.diagbot.dto.ProductLineDTO;
@@ -12,17 +26,20 @@ import com.diagbot.dto.ProductOrderExportDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.dto.UserOrgDTO;
 import com.diagbot.dto.WaitExamOrderCouDTO;
+import com.diagbot.entity.OpenedProducts;
 import com.diagbot.entity.OrderDetailStatus;
 import com.diagbot.entity.OrderDetails;
 import com.diagbot.entity.ProductOrder;
 import com.diagbot.entity.ProductOrderIndex;
 import com.diagbot.entity.User;
 import com.diagbot.entity.wrapper.ProductOrderWrapper;
+import com.diagbot.entity.wrapper.ServiceTokenWrapper;
 import com.diagbot.enums.AuditStatusEnum;
 import com.diagbot.enums.AuthStatusEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.NotPassEnum;
 import com.diagbot.enums.StatusEnum;
+import com.diagbot.enums.TokenTypeEnum;
 import com.diagbot.enums.VisibleIdTypeEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -33,20 +50,13 @@ import com.diagbot.util.DateUtil;
 import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ExportBeanExcelUtil;
 import com.diagbot.util.GsonUtil;
+import com.diagbot.util.ListUtil;
 import com.diagbot.util.UserUtils;
 import com.diagbot.vo.AddOrderVO;
+import com.diagbot.vo.OpenProductCheckVO;
 import com.diagbot.vo.OrderDetialsVO;
 import com.diagbot.vo.ProductOrderExportVO;
 import com.diagbot.vo.ProductOrderVO;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import javax.servlet.http.HttpServletResponse;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 /**
  * 订单业务
@@ -71,6 +81,8 @@ public class ProductOrderFacade extends ProductOrderServiceImpl {
     private ProductOrderFacade productOrderFacade;
     @Autowired
     private OpenedProductsFacade openedProductsFacade;
+    @Autowired
+    private ServiceTokenFacade serviceTokenFacade;
 
 
     /**
@@ -258,8 +270,7 @@ public class ProductOrderFacade extends ProductOrderServiceImpl {
         waitExamOrderCouDTO.setCount(baseMapper.waitExamOrderCou(userIds));
         return waitExamOrderCouDTO;
     }
-
-
+    
 	/**
 	 * 产品申请查询所有订单信息
      *

+ 24 - 0
diagbotman-service/src/main/java/com/diagbot/vo/OpenProductCheckVO.java

@@ -0,0 +1,24 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: appkey 和 secret接收类
+ * @Author: rgb
+ * @Date: 2018/11/8 14:10
+ */
+@SuppressWarnings("serial")
+@Getter
+@Setter
+public class OpenProductCheckVO implements Serializable {
+
+    private Long openId;
+    
+    @NotNull(message = "产品id不能为空")
+    private Long productId;
+}

+ 21 - 9
diagbotman-service/src/main/java/com/diagbot/web/ProductOrderController.java

@@ -1,10 +1,22 @@
 package com.diagbot.web;
 
+import java.util.List;
+
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Autowired;
+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.RestController;
+
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.EnShowOptionDTO;
 import com.diagbot.dto.GetConsoleOnTrialDTO;
 import com.diagbot.dto.GetConsoleOpenedDTO;
+import com.diagbot.dto.OpenProductCheckDTO;
 import com.diagbot.dto.OpenUpOnTrialDTO;
 import com.diagbot.dto.ProductAuthProgressDTO;
 import com.diagbot.dto.ProductOrderDTO;
@@ -20,22 +32,15 @@ import com.diagbot.facade.OrderDetailsFacade;
 import com.diagbot.facade.ProductOrderFacade;
 import com.diagbot.facade.UserRenewalsFacade;
 import com.diagbot.vo.ModifyOpeningTimeVO;
+import com.diagbot.vo.OpenProductCheckVO;
 import com.diagbot.vo.OpenUpOnTrialVO;
 import com.diagbot.vo.ProductOrderVO;
 import com.diagbot.vo.StartAndendByUserIdVO;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-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.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
-import javax.validation.Valid;
-import java.util.List;
-
 /**
  * @author rgb
  * @Description 订单产品相关的操作
@@ -99,6 +104,13 @@ public class ProductOrderController {
     public RespDTO<WaitExamOrderCouDTO> waitExamOrderCou() {
         return RespDTO.onSuc(productOrderFacade.waitExamOrderCou());
     }
+    
+    @ApiOperation(value = "已开通产品状态校验[by:rengb]", notes = "已开通产品状态校验")
+    @PostMapping("/openProductCheck")
+    @SysLogger("openProductCheck")
+    public RespDTO<OpenProductCheckDTO> openProductCheck(@RequestBody OpenProductCheckVO openProductCheckVO) {
+        return RespDTO.onSuc(openedProductsFacade.openProductCheck(openProductCheckVO));
+    }
 
     @ApiOperation(value = "客户中心-传入用户id查询已开通的功能(传userId)[by:wangfeng]", notes = "已开通信息")
     @PostMapping("/getInformationAvailableByUserId")

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

@@ -60,14 +60,13 @@
 			b.id as productId,
 			b.name as name,
 			DATE_FORMAT(a.start_time,'%Y-%m-%d') as startTime,
-			DATE_FORMAT(a.end_time,'%Y-%m-%d') as endTime,
+			DATE_FORMAT(a.end_time,'%Y-%m-%d %H:%i:%s') as endTime,
 			a.service_status as serviceStatus,
 			b.url as url,
 			b.access_type as accessType,
 			d.app_key_id as appKeyId,
 			d.app_key_secret as appKeySecret,
 			case when c.id is null then 0 else 1 end as renewalsStutas,
-			case when sysdate()>a.end_time then 0 else 1 end as isExpire,
 			case when a.start_time>sysdate() then 0 else 1 end as isBegin
 		from diag_opened_products a join diag_lantone_product b on a.product_id=b.id
 		left join diag_user_renewals c on a.user_id=c.user_id and a.product_id=c.product_id and c.renewals_status=0 and c.cancel_renewals=0 and c.is_deleted='N'