Переглянути джерело

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

bijl 6 роки тому
батько
коміт
393248cc80
64 змінених файлів з 1248 додано та 559 видалено
  1. 2 1
      diagbotman-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  2. 1 0
      diagbotman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  3. 19 0
      diagbotman-service/src/main/java/com/diagbot/dto/ProductServiceDTO.java
  4. 5 0
      diagbotman-service/src/main/java/com/diagbot/entity/ServiceFilter.java
  5. 5 3
      diagbotman-service/src/main/java/com/diagbot/entity/ServiceToken.java
  6. 1 1
      diagbotman-service/src/main/java/com/diagbot/entity/wrapper/ServiceTokenWrapper.java
  7. 50 0
      diagbotman-service/src/main/java/com/diagbot/enums/StatusEnum.java
  8. 50 0
      diagbotman-service/src/main/java/com/diagbot/enums/TokenTypeEnum.java
  9. 94 0
      diagbotman-service/src/main/java/com/diagbot/facade/ProductServiceFacade.java
  10. 4 3
      diagbotman-service/src/main/java/com/diagbot/facade/ServiceFilterFacade.java
  11. 33 1
      diagbotman-service/src/main/java/com/diagbot/facade/ServiceInfoFacade.java
  12. 39 0
      diagbotman-service/src/main/java/com/diagbot/facade/ServiceTokenFacade.java
  13. 0 13
      diagbotman-service/src/main/java/com/diagbot/facade/SysLogFacade.java
  14. 7 0
      diagbotman-service/src/main/java/com/diagbot/mapper/ProductServiceMapper.java
  15. 4 0
      diagbotman-service/src/main/java/com/diagbot/mapper/ServiceInfoMapper.java
  16. 13 1
      diagbotman-service/src/main/java/com/diagbot/mapper/ServiceTokenMapper.java
  17. 0 16
      diagbotman-service/src/main/java/com/diagbot/mapper/SysLogMapper.java
  18. 5 0
      diagbotman-service/src/main/java/com/diagbot/service/ProductServiceService.java
  19. 2 2
      diagbotman-service/src/main/java/com/diagbot/service/ServiceFilterService.java
  20. 4 1
      diagbotman-service/src/main/java/com/diagbot/service/ServiceInfoService.java
  21. 15 1
      diagbotman-service/src/main/java/com/diagbot/service/ServiceTokenService.java
  22. 0 15
      diagbotman-service/src/main/java/com/diagbot/service/SysLogService.java
  23. 9 0
      diagbotman-service/src/main/java/com/diagbot/service/impl/ProductServiceServiceImpl.java
  24. 4 7
      diagbotman-service/src/main/java/com/diagbot/service/ServiceFilterServiceImpl.java
  25. 9 0
      diagbotman-service/src/main/java/com/diagbot/service/impl/ServiceInfoServiceImpl.java
  26. 33 1
      diagbotman-service/src/main/java/com/diagbot/service/impl/ServiceTokenServiceImpl.java
  27. 0 19
      diagbotman-service/src/main/java/com/diagbot/service/impl/SysLogServiceImpl.java
  28. 3 3
      diagbotman-service/src/main/java/com/diagbot/util/GuidUtil.java
  29. 21 0
      diagbotman-service/src/main/java/com/diagbot/vo/ProductServiceSaveVO.java
  30. 20 0
      diagbotman-service/src/main/java/com/diagbot/vo/ServiceSaveVO.java
  31. 22 0
      diagbotman-service/src/main/java/com/diagbot/vo/ServiceTokenVo.java
  32. 0 21
      diagbotman-service/src/main/java/com/diagbot/vo/SysLogVo.java
  33. 26 2
      diagbotman-service/src/main/java/com/diagbot/web/ProductServiceController.java
  34. 7 6
      diagbotman-service/src/main/java/com/diagbot/web/ServiceFilterController.java
  35. 50 1
      diagbotman-service/src/main/java/com/diagbot/web/ServiceInfoController.java
  36. 69 2
      diagbotman-service/src/main/java/com/diagbot/web/ServiceTokenController.java
  37. 0 108
      diagbotman-service/src/main/java/com/diagbot/web/SysLogController.java
  38. 14 0
      diagbotman-service/src/main/resources/mapper/ProductServiceMapper.xml
  39. 1 0
      diagbotman-service/src/main/resources/mapper/ServiceFilterMapper.xml
  40. 9 0
      diagbotman-service/src/main/resources/mapper/ServiceInfoMapper.xml
  41. 25 0
      diagbotman-service/src/main/resources/mapper/ServiceTokenMapper.xml
  42. 0 21
      diagbotman-service/src/main/resources/mapper/SysLogMapper.xml
  43. 1 0
      docs/002.数据库设计/sys-diagbotman.sql
  44. 6 4
      gateway-service/src/main/java/com/diagbot/client/DiagbotmanServiceClient.java
  45. 0 3
      gateway-service/src/main/java/com/diagbot/client/UserServiceClient.java
  46. 4 4
      gateway-service/src/main/java/com/diagbot/client/hystrix/DiagbotmanServiceHystrix.java
  47. 0 6
      gateway-service/src/main/java/com/diagbot/client/hystrix/UserServiceHystrix.java
  48. 2 2
      gateway-service/src/main/java/com/diagbot/dto/RespDTO.java
  49. 22 0
      gateway-service/src/main/java/com/diagbot/entity/ServiceFilter.java
  50. 22 0
      gateway-service/src/main/java/com/diagbot/entity/ServiceToken.java
  51. 36 27
      gateway-service/src/main/java/com/diagbot/filter/GlobalGatewayFilter.java
  52. 1 1
      pom.xml
  53. 2 0
      user-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  54. 3 1
      user-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  55. 154 0
      user-service/src/main/java/com/diagbot/dto/UserInfoDTO.java
  56. 9 3
      user-service/src/main/java/com/diagbot/entity/User.java
  57. 0 158
      user-service/src/main/java/com/diagbot/entity/UserInfo.java
  58. 7 2
      user-service/src/main/java/com/diagbot/mapper/UserMapper.java
  59. 34 29
      user-service/src/main/java/com/diagbot/service/UserService.java
  60. 16 3
      user-service/src/main/java/com/diagbot/service/impl/UserServiceImpl.java
  61. 42 0
      user-service/src/main/java/com/diagbot/vo/UserInfoOrganizationsVO.java
  62. 38 6
      user-service/src/main/java/com/diagbot/web/UserInfoController.java
  63. 1 1
      user-service/src/main/java/com/diagbot/web/VerController.java
  64. 173 60
      user-service/src/main/resources/mapper/UserMapper.xml

+ 2 - 1
diagbotman-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -25,7 +25,8 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
         http
                 .csrf().disable()
                 .authorizeRequests()
-                .regexMatchers(".*swagger.*",".*v2.*",".*webjars.*","/druid.*","/actuator.*","/hystrix.*","/service_filter/getAll").permitAll()
+                .regexMatchers(".*swagger.*",".*v2.*",".*webjars.*","/druid.*","/actuator.*","/hystrix.*"
+                        ,"/service_filter/getAll", "/serviceToken/hasPermission").permitAll()
                 .antMatchers("/**").authenticated();
 //        .antMatchers("/**").permitAll();
     }

+ 1 - 0
diagbotman-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -35,6 +35,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                     || matchers("/actuator/**", request)
                     || matchers("/hystrix/**", request)
                     || matchers("/service_filter/getAll", request)
+                    || matchers("/serviceToken/hasPermission", request)
                     || matchers("/", request)){
                 return;
             } else {

+ 19 - 0
diagbotman-service/src/main/java/com/diagbot/dto/ProductServiceDTO.java

@@ -0,0 +1,19 @@
+package com.diagbot.dto;
+
+import com.diagbot.entity.ProductService;
+import com.diagbot.entity.ServiceToken;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: zhaops
+ * @time: 2018/9/18 19:58
+ */
+@Getter
+@Setter
+public class ProductServiceDTO {
+    private ProductService productService;
+    private ServiceToken serviceToken;
+    private String msg;
+}

+ 5 - 0
diagbotman-service/src/main/java/com/diagbot/entity/ServiceFilter.java

@@ -54,6 +54,11 @@ public class ServiceFilter implements Serializable {
      */
     private String name;
 
+    /**
+     *  产品id
+     */
+    private Long productId;
+
     /**
      * 备注
      */

+ 5 - 3
diagbotman-service/src/main/java/com/diagbot/entity/ServiceToken.java

@@ -3,6 +3,8 @@ package com.diagbot.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.models.auth.In;
+
 import java.util.Date;
 import java.io.Serializable;
 
@@ -70,7 +72,7 @@ public class ServiceToken implements Serializable {
     /**
      * 状态(0:禁用,1:启用)
      */
-    private String status;
+    private Integer status;
 
     /**
      * 开通日期
@@ -168,11 +170,11 @@ public class ServiceToken implements Serializable {
         this.type = type;
     }
 
-    public String getStatus() {
+    public Integer getStatus() {
         return status;
     }
 
-    public void setStatus(String status) {
+    public void setStatus(Integer status) {
         this.status = status;
     }
 

+ 1 - 1
diagbotman-service/src/main/java/com/diagbot/entity/wrapper/ServiceTokenWrapper.java

@@ -5,7 +5,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 /**
- * @Description: 产品服务过滤
+ * @Description: 服务令牌表扩展表
  * @Author: ztg
  * @Date: 2018/9/18 14:35
  */

+ 50 - 0
diagbotman-service/src/main/java/com/diagbot/enums/StatusEnum.java

@@ -0,0 +1,50 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: zhaops
+ * @time: 2018/9/19 10:05
+ */
+public enum StatusEnum implements KeyedNamed {
+    Disable(0, "禁用"),
+    Enable(1, "启用");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    StatusEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static StatusEnum getEnum(Integer key) {
+        for (StatusEnum item : StatusEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        StatusEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}
+

+ 50 - 0
diagbotman-service/src/main/java/com/diagbot/enums/TokenTypeEnum.java

@@ -0,0 +1,50 @@
+package com.diagbot.enums;
+
+import com.diagbot.core.KeyedNamed;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: zhaops
+ * @time: 2018/9/18 18:59
+ */
+public enum TokenTypeEnum implements KeyedNamed {
+    Online(1, "线上生成"),
+    Manual(2, "手动生成"),
+    Trial(3, "试用");
+
+    @Setter
+    private Integer key;
+
+    @Setter
+    private String name;
+
+    TokenTypeEnum(Integer key, String name) {
+        this.key = key;
+        this.name = name;
+    }
+
+    public static TokenTypeEnum getEnum(Integer key) {
+        for (TokenTypeEnum item : TokenTypeEnum.values()) {
+            if (item.key == key) {
+                return item;
+            }
+        }
+        return null;
+    }
+
+    public static String getName(Integer key) {
+        TokenTypeEnum item = getEnum(key);
+        return item != null ? item.name : null;
+    }
+
+    @Override
+    public int getKey() {
+        return key;
+    }
+
+    @Override
+    public String getName() {
+        return name;
+    }
+}

+ 94 - 0
diagbotman-service/src/main/java/com/diagbot/facade/ProductServiceFacade.java

@@ -1,8 +1,21 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.ProductServiceDTO;
+import com.diagbot.entity.ProductService;
+import com.diagbot.entity.ServiceToken;
+import com.diagbot.enums.TokenTypeEnum;
 import com.diagbot.service.impl.ProductServiceServiceImpl;
+import com.diagbot.util.GuidUtil;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.ProductServiceSaveVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.Calendar;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Date;
+
 /**
  * @Description:产品与用户端关联业务层
  * @author: zhaops
@@ -10,4 +23,85 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class ProductServiceFacade extends ProductServiceServiceImpl {
+    @Autowired
+    private ServiceTokenFacade serviceTokenFacade;
+
+    public ProductServiceDTO genProductService(ProductServiceSaveVO productServiceSaveVO) {
+        ProductServiceDTO productServiceDTO=new ProductServiceDTO();
+        Calendar calendar = Calendar.getInstance();
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        Map<String, Object> map = new HashMap<>();
+        map.put("productId", productServiceSaveVO.getProductId());
+        map.put("serviceId", productServiceSaveVO.getServiceId());
+        ProductService productService = this.findByProductIdAndServiceId(map);
+        if (productService == null) {
+            productService = new ProductService();
+            productService.setProductId(productServiceSaveVO.getProductId());
+            productService.setServiceId(productServiceSaveVO.getServiceId());
+            productService.setCreator(userId.toString());
+            productService.setGmtCreate(new Date());
+            this.save(productService);
+        }
+        else {
+            productService.setModifier(userId.toString());
+            productService.setGmtModified(new Date());
+            this.updateById(productService);
+        }
+
+        // 生成令牌
+        // 如果已有令牌,先删除原令牌,再重新生成
+        // 试用产品 type=3 需生成7天有效期,重新生成令牌,有效期继承,超出有效期不允许再生成令牌
+        ServiceToken old_serviceToken = serviceTokenFacade.getByProductServiceId(productService.getId());
+        //删除原有token
+        if (old_serviceToken != null) {
+            serviceTokenFacade.deleteByProductServiceId(old_serviceToken.getProductSeviceId());
+        }
+        ServiceToken serviceToken = new ServiceToken();
+        serviceToken.setCreator(userId.toString());
+        serviceToken.setGmtCreate(new Date());
+        serviceToken.setType(productServiceSaveVO.getType());
+        serviceToken.setAppKeyId(GuidUtil.App_key());
+        serviceToken.setAppKeySecret(GuidUtil.App_screct());
+        serviceToken.setStatus(1);
+        if (old_serviceToken != null && old_serviceToken.getType().equals(TokenTypeEnum.Trial)) {
+            //如果试用已过期,不允许再生成
+            if(calendar.after(old_serviceToken.getExpiringDate())) {
+                productServiceDTO.setMsg("当前试用账号已过期,不允许再生成令牌");
+                return productServiceDTO;
+            }
+            serviceToken.setStartingDate(old_serviceToken.getStartingDate());
+            serviceToken.setExpiringDate(old_serviceToken.getExpiringDate());
+        } else if (productServiceSaveVO.getType().equals(TokenTypeEnum.Trial)) {
+            serviceToken.setStartingDate(new Date());
+            calendar.clear();
+            calendar.setTime(new Date());
+            calendar.add(Calendar.DAY_OF_MONTH, 7);
+            serviceToken.setExpiringDate(calendar.getTime());
+        }
+        serviceTokenFacade.save(serviceToken);
+
+        productServiceDTO.setProductService(productService);
+        productServiceDTO.setServiceToken(serviceToken);
+        productServiceDTO.setMsg("令牌生成成功!");
+        return productServiceDTO;
+    }
+
+    public ProductServiceDTO deleteProductService(ProductServiceSaveVO productServiceSaveVO) {
+        ProductServiceDTO productServiceDTO=new ProductServiceDTO();
+        Calendar calendar = Calendar.getInstance();
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        Map<String, Object> map = new HashMap<>();
+        map.put("productId", productServiceSaveVO.getProductId());
+        map.put("serviceId", productServiceSaveVO.getServiceId());
+        ProductService productService = this.findByProductIdAndServiceId(map);
+        if(productService==null){
+            productServiceDTO.setMsg("产品服务端不存在!");
+            return productServiceDTO;
+        }
+        //删除关联令牌
+        serviceTokenFacade.deleteByProductServiceId(productService.getId());
+        //删除产品服务端
+        productServiceDTO.setMsg("删除成功!");
+        return productServiceDTO;
+    }
 }

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

@@ -1,20 +1,21 @@
 package com.diagbot.facade;
 
 import com.diagbot.dto.RespDTO;
-import com.diagbot.service.ServiceFilterServiceImpl;
+import com.diagbot.entity.ServiceFilter;
+import com.diagbot.service.impl.ServiceFilterServiceImpl;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
 
 /**
- * @Description: 品服务过滤
+ * @Description: 品服务过滤
  * @Author: ztg
  * @Date: 2018/9/18 14:45
  */
 @Component
 public class ServiceFilterFacade extends ServiceFilterServiceImpl {
 
-    public RespDTO<List<String>> getServiceFilter() {
+    public RespDTO<List<ServiceFilter>> getServiceFilter() {
         return this.getAll();
     }
 }

+ 33 - 1
diagbotman-service/src/main/java/com/diagbot/facade/ServiceInfoFacade.java

@@ -1,7 +1,12 @@
 package com.diagbot.facade;
 
+import com.diagbot.entity.ServiceInfo;
 import com.diagbot.service.impl.ServiceInfoServiceImpl;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.ServiceSaveVO;
 import org.springframework.stereotype.Component;
+import java.util.Date;
+import java.util.List;
 
 /**
  * @Description: 用户服务业务层
@@ -9,5 +14,32 @@ import org.springframework.stereotype.Component;
  * @time: 2018/9/18 16:31
  */
 @Component
-public class ServiceInfoFacade extends ServiceInfoServiceImpl{
+public class ServiceInfoFacade extends ServiceInfoServiceImpl {
+    public ServiceInfo createService(ServiceSaveVO serviceSaveVO) {
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        ServiceInfo serviceInfo = new ServiceInfo();
+        serviceInfo.setName(serviceSaveVO.getName());
+        serviceInfo.setDescription(serviceSaveVO.getDescription());
+        serviceInfo.setUserId(userId);
+        serviceInfo.setCreator(userId.toString());
+        serviceInfo.setGmtCreate(new Date());
+        this.save(serviceInfo);
+        return serviceInfo;
+    }
+
+    public Boolean updateService(ServiceSaveVO serviceSaveVO) {
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        ServiceInfo serviceInfo = this.findByName(serviceSaveVO.getName());
+        serviceInfo.setDescription(serviceSaveVO.getDescription());
+        serviceInfo.setModifier(userId.toString());
+        serviceInfo.setGmtModified(new Date());
+        return this.updateById(serviceInfo);
+    }
+
+    public List<ServiceInfo> getServiceListByCurrentUser() {
+        Long userId = Long.parseLong(UserUtils.getCurrentPrincipleID());
+        List<ServiceInfo> list = this.getListByUserId(userId);
+        return list;
+    }
+
 }

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

@@ -1,8 +1,17 @@
 package com.diagbot.facade;
 
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ProductService;
+import com.diagbot.entity.ServiceToken;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.ServiceTokenServiceImpl;
+import com.diagbot.vo.ServiceTokenVo;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
+
 /**
  * @Description: 用户端token业务层
  * @author: zhaops
@@ -10,4 +19,34 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class ServiceTokenFacade extends ServiceTokenServiceImpl {
+
+
+    @Autowired
+    ProductServiceFacade productServiceFacade;
+
+    /**
+     * @Description: 获取资源的url
+     * @Author: ztg
+     * @Date: 2018/9/18 16:54
+     */
+    public RespDTO<Boolean> hasPermission(ServiceTokenVo serviceTokenVo) {
+        String appkey = serviceTokenVo.getAppkey();
+        String secret = serviceTokenVo.getSecret();
+        ServiceToken st = this.getServiceToken(appkey, secret);
+        if(null == st) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "appkey或secret错误,appkey=【" + appkey + "】," + "secret=【" + secret + "】");
+        }
+        ProductService ps = productServiceFacade.getById(st.getProductSeviceId());
+        if(ps == null) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "无权限访问!");
+        }
+        if(!ps.getProductId().equals(serviceTokenVo.getProductId())) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "无权限访问!");
+        }
+        Date date = new Date();
+        if(st.getExpiringDate().getTime() < date.getTime()) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "访问权限已过期!");
+        }
+        return RespDTO.onSuc(true);
+    }
 }

+ 0 - 13
diagbotman-service/src/main/java/com/diagbot/facade/SysLogFacade.java

@@ -1,13 +0,0 @@
-package com.diagbot.facade;
-
-import com.diagbot.service.impl.SysLogServiceImpl;
-import org.springframework.stereotype.Component;
-
-/**
- * @Description: 用户日志业务层
- * @author: gaodm
- * @time: 2018/8/6 9:11
- */
-@Component
-public class SysLogFacade extends SysLogServiceImpl {
-}

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

@@ -3,6 +3,9 @@ package com.diagbot.mapper;
 import com.diagbot.entity.ProductService;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 服务端维护表 Mapper 接口
@@ -13,4 +16,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ProductServiceMapper extends BaseMapper<ProductService> {
 
+    ProductService findByProductIdAndServiceId(Map<String, Object> map);
+
+    List<ProductService> findByProductId(Long productId);
+
 }

+ 4 - 0
diagbotman-service/src/main/java/com/diagbot/mapper/ServiceInfoMapper.java

@@ -3,6 +3,8 @@ package com.diagbot.mapper;
 import com.diagbot.entity.ServiceInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 用户服务表 Mapper 接口
@@ -12,5 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2018-09-17
  */
 public interface ServiceInfoMapper extends BaseMapper<ServiceInfo> {
+    ServiceInfo findByName(String name);
 
+    List<ServiceInfo> getListByUserId(Long userId);
 }

+ 13 - 1
diagbotman-service/src/main/java/com/diagbot/mapper/ServiceTokenMapper.java

@@ -1,7 +1,9 @@
 package com.diagbot.mapper;
 
-import com.diagbot.entity.ServiceToken;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.entity.ServiceToken;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +15,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 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);
 }

+ 0 - 16
diagbotman-service/src/main/java/com/diagbot/mapper/SysLogMapper.java

@@ -1,16 +0,0 @@
-package com.diagbot.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.diagbot.entity.SysLog;
-
-/**
- * <p>
- *  Mapper 接口
- * </p>
- *
- * @author gaodm
- * @since 2018-08-02
- */
-public interface SysLogMapper extends BaseMapper<SysLog> {
-
-}

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

@@ -3,6 +3,9 @@ package com.diagbot.service;
 import com.diagbot.entity.ProductService;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 服务端维护表 服务类
@@ -12,5 +15,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2018-09-17
  */
 public interface ProductServiceService extends IService<ProductService> {
+    ProductService findByProductIdAndServiceId(Map<String, Object> map);
 
+    List<ProductService> findByProductId(Long productId);
 }

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

@@ -14,9 +14,9 @@ import java.util.List;
 public interface ServiceFilterService extends IService<ServiceFilter> {
 
     /**
-     * @Description: 根据Map中的参数取值
+     * @Description: 获取服务列表
      * @Author: ztg
      * @Date: 2018/9/18 14:57
      */
-    public RespDTO<List<String>> getAll();
+    public RespDTO<List<ServiceFilter>> getAll();
 }

+ 4 - 1
diagbotman-service/src/main/java/com/diagbot/service/ServiceInfoService.java

@@ -3,6 +3,8 @@ package com.diagbot.service;
 import com.diagbot.entity.ServiceInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
 
+import java.util.List;
+
 /**
  * <p>
  * 用户服务表 服务类
@@ -12,5 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2018-09-17
  */
 public interface ServiceInfoService extends IService<ServiceInfo> {
-
+    ServiceInfo findByName(String name);
+    List<ServiceInfo> getListByUserId(Long userId);
 }

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

@@ -1,7 +1,7 @@
 package com.diagbot.service;
 
-import com.diagbot.entity.ServiceToken;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.entity.ServiceToken;
 
 /**
  * <p>
@@ -13,4 +13,18 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ServiceTokenService extends IService<ServiceToken> {
 
+    /**
+     * @Description: 根据参数获取服务令牌
+     * @Author: ztg
+     * @Date: 2018/9/18 16:38
+     */
+    ServiceToken getServiceToken(String appkey, String secret);
+
+    ServiceToken getByProductServiceId(Long productServiceId);
+
+    Integer deleteByProductServiceId(Long productServiceId);
+
+    Integer enableToken(Long productServiceId);
+
+    Integer disableToken(Long productServiceId);
 }

+ 0 - 15
diagbotman-service/src/main/java/com/diagbot/service/SysLogService.java

@@ -1,15 +0,0 @@
-package com.diagbot.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.diagbot.entity.SysLog;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author gaodm
- * @since 2018-08-02
- */
-public interface SysLogService extends IService<SysLog> {
-}

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

@@ -6,6 +6,9 @@ import com.diagbot.service.ProductServiceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 服务端维护表 服务实现类
@@ -16,5 +19,11 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class ProductServiceServiceImpl extends ServiceImpl<ProductServiceMapper, ProductService> implements ProductServiceService {
+    public ProductService findByProductIdAndServiceId(Map<String, Object> map) {
+        return baseMapper.findByProductIdAndServiceId(map);
+    }
 
+    public List<ProductService> findByProductId(Long productId) {
+        return baseMapper.findByProductId(productId);
+    }
 }

+ 4 - 7
diagbotman-service/src/main/java/com/diagbot/service/ServiceFilterServiceImpl.java

@@ -1,9 +1,10 @@
-package com.diagbot.service;
+package com.diagbot.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.ServiceFilter;
 import com.diagbot.mapper.ServiceFilterMapper;
+import com.diagbot.service.ServiceFilterService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -22,13 +23,9 @@ public class ServiceFilterServiceImpl extends ServiceImpl<ServiceFilterMapper, S
     ServiceFilterMapper serviceFilterMapper;
 
     @Override
-    public RespDTO<List<String>> getAll() {
+    public RespDTO<List<ServiceFilter>> getAll() {
         List<ServiceFilter> list = serviceFilterMapper.getAll();
-        List<String> service = new ArrayList<>();
-        for(ServiceFilter bean : list) {
-            service.add(bean.getName());
-        }
-        return RespDTO.onSuc(service);
+        return RespDTO.onSuc(list);
     }
 
 

+ 9 - 0
diagbotman-service/src/main/java/com/diagbot/service/impl/ServiceInfoServiceImpl.java

@@ -6,6 +6,8 @@ import com.diagbot.service.ServiceInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 用户服务表 服务实现类
@@ -16,5 +18,12 @@ import org.springframework.stereotype.Service;
  */
 @Service
 public class ServiceInfoServiceImpl extends ServiceImpl<ServiceInfoMapper, ServiceInfo> implements ServiceInfoService {
+    public ServiceInfo findByName(String name){
+        return baseMapper.findByName(name);
+    }
+
+    public List<ServiceInfo> getListByUserId(Long userId){
+        return baseMapper.getListByUserId(userId);
+    }
 
 }

+ 33 - 1
diagbotman-service/src/main/java/com/diagbot/service/impl/ServiceTokenServiceImpl.java

@@ -1,11 +1,17 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.entity.ServiceToken;
+import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.enums.StatusEnum;
 import com.diagbot.mapper.ServiceTokenMapper;
 import com.diagbot.service.ServiceTokenService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * <p>
  * 服务令牌表 服务实现类
@@ -17,4 +23,30 @@ import org.springframework.stereotype.Service;
 @Service
 public class ServiceTokenServiceImpl extends ServiceImpl<ServiceTokenMapper, ServiceToken> implements ServiceTokenService {
 
+    @Autowired
+    ServiceTokenMapper serviceTokenMapper;
+
+    @Override
+    public ServiceToken getServiceToken(String appkey, String secret) {
+        Map<String, Object> paramMap = new HashMap<>();
+        paramMap.put("appkey", appkey);
+        paramMap.put("secret", secret);
+        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);
+    }
+
+    public Integer disableToken(Long productServiceId) {
+        return baseMapper.disableToken(productServiceId);
+    }
 }

+ 0 - 19
diagbotman-service/src/main/java/com/diagbot/service/impl/SysLogServiceImpl.java

@@ -1,19 +0,0 @@
-package com.diagbot.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.diagbot.entity.SysLog;
-import com.diagbot.mapper.SysLogMapper;
-import com.diagbot.service.SysLogService;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- *  服务实现类
- * </p>
- *
- * @author gaodm
- * @since 2018-08-02
- */
-@Service
-public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> implements SysLogService {
-}

+ 3 - 3
diagbotman-service/src/main/java/com/diagbot/util/GuidUtil.java

@@ -8,7 +8,7 @@ import java.util.UUID;
  * @time: 2018/9/11 10:27
  */
 public class GuidUtil {
-    public String app_key;
+    public static String app_key;
     /**
      * @description:随机获取key值
      * @return
@@ -22,7 +22,7 @@ public class GuidUtil {
      * 这是其中一个url的参数,是GUID的,全球唯一标志符
      * @return
      */
-    public String App_key() {
+    public static String App_key() {
         GuidUtil g = new GuidUtil();
         String guid = g.guid();
         app_key = MD5Util.MD5(guid).toUpperCase();
@@ -32,7 +32,7 @@ public class GuidUtil {
      * 根据md5加密
      * @return
      */
-    public String App_screct() {
+    public static String App_screct() {
         String mw = "key" + app_key ;
         String app_sign = MD5Util.MD5Salt(mw).toUpperCase();// 得到以后还要用MD5加密。
         return app_sign;

+ 21 - 0
diagbotman-service/src/main/java/com/diagbot/vo/ProductServiceSaveVO.java

@@ -0,0 +1,21 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @author: zhaops
+ * @time: 2018/9/18 18:53
+ */
+@Getter
+@Setter
+public class ProductServiceSaveVO {
+    @NotBlank(message = "请输入产品Id!")
+    private Long productId;
+    @NotBlank(message = "请输入服务Id!")
+    private Long serviceId;
+    private Integer type;
+}

+ 20 - 0
diagbotman-service/src/main/java/com/diagbot/vo/ServiceSaveVO.java

@@ -0,0 +1,20 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @author: zhaops
+ * @time: 2018/9/18 16:48
+ */
+@Getter
+@Setter
+public class ServiceSaveVO {
+    @NotBlank(message = "请输入产品名称!")
+    private String name;
+    @NotBlank(message = "请输入产品介绍!")
+    private String description;
+}

+ 22 - 0
diagbotman-service/src/main/java/com/diagbot/vo/ServiceTokenVo.java

@@ -0,0 +1,22 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: appkey 和 secret接收类
+ * @Author: ztg
+ * @Date: 2018/9/19 13:14
+ */
+@Getter
+@Setter
+public class ServiceTokenVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+   private String appkey;
+   private String secret;
+   private Long productId;
+}

+ 0 - 21
diagbotman-service/src/main/java/com/diagbot/vo/SysLogVo.java

@@ -1,21 +0,0 @@
-package com.diagbot.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.Date;
-
-/**
- * @Description:
- * @author: gaodm
- * @time: 2018/8/6 10:16
- */
-@Getter
-@Setter
-public class SysLogVo {
-    private Date createDate;
-    private String ip;
-    private String method;
-    private String operation;
-    private String params;
-}

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

@@ -1,9 +1,20 @@
 package com.diagbot.web;
 
 
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.ProductServiceDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ServiceInfo;
+import com.diagbot.facade.ProductServiceFacade;
+import com.diagbot.vo.ProductServiceSaveVO;
+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.RequestMapping;
 
-import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
 
 /**
  * <p>
@@ -13,9 +24,22 @@ import org.springframework.stereotype.Controller;
  * @author zhaops
  * @since 2018-09-17
  */
-@Controller
+@RestController
+@Api(value="产品服务端API", tags={"产品服务端API"})
 @RequestMapping("/productService")
 public class ProductServiceController {
+    @Autowired
+    private ProductServiceFacade productServiceFacade;
 
+    @ApiOperation(value = "服务端关联到产品接口",
+            notes = "productId:产品Id,必填<br>" +
+                    "serviceId:服务Id,必填<br> ")
+    @PostMapping("/genProductService")
+    @SysLogger("genProductService")
+    @Transactional
+    public RespDTO<ProductServiceDTO> genProductService(ProductServiceSaveVO productServiceSaveVO) {
+        ProductServiceDTO productServiceDTO = productServiceFacade.genProductService(productServiceSaveVO);
+        return RespDTO.onSuc(productServiceDTO);
+    }
 }
 

+ 7 - 6
diagbotman-service/src/main/java/com/diagbot/web/ServiceFilterController.java

@@ -1,10 +1,13 @@
 package com.diagbot.web;
 
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ServiceFilter;
 import com.diagbot.facade.ServiceFilterFacade;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
 import java.util.List;
 
@@ -20,16 +23,14 @@ public class ServiceFilterController {
     @Autowired
     ServiceFilterFacade serviceFilterFacade;
 
-    @RequestMapping("/getAll")
-    public RespDTO<List<String>> getServiceFilter() {
+    @ApiIgnore
+    @PostMapping("/getAll")
+    public RespDTO<List<ServiceFilter>> getServiceFilter() {
         return serviceFilterFacade.getAll();
     }
 
 
-    @RequestMapping("/getPermissonUrl")
-    public RespDTO<List<String>> getPermissonUrl(String appkey, String secret) {
-        return serviceFilterFacade.getPermissonUrl(appkey, secret);
-    }
+
 
 }
 

+ 50 - 1
diagbotman-service/src/main/java/com/diagbot/web/ServiceInfoController.java

@@ -1,9 +1,24 @@
 package com.diagbot.web;
 
 
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ServiceInfo;
+import com.diagbot.facade.ServiceInfoFacade;
+import com.diagbot.vo.ServiceSaveVO;
+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.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.List;
 
 /**
  * <p>
@@ -13,9 +28,43 @@ import org.springframework.stereotype.Controller;
  * @author zhaops
  * @since 2018-09-17
  */
-@Controller
+@RestController
+@Api(value="用户服务API", tags={"用户服务API"})
 @RequestMapping("/serviceInfo")
 public class ServiceInfoController {
 
+    @Autowired
+    private ServiceInfoFacade serviceInfoFacade;
+
+    @ApiOperation(value = "新增服务",
+            notes = "name:产品名称,必填<br>" +
+                    "description:产品简介,必填<br> ")
+    @PostMapping("/createService")
+    @SysLogger("createService")
+    @Transactional
+    public RespDTO<ServiceInfo> createService(@RequestBody @Valid ServiceSaveVO serviceSaveVO) {
+        ServiceInfo serviceInfo = serviceInfoFacade.createService(serviceSaveVO);
+        return RespDTO.onSuc(serviceInfo);
+    }
+
+    @ApiOperation(value = "修改服务",
+            notes = "name:产品名称,必填<br>" +
+                    "description:产品简介,必填<br> ")
+    @PostMapping("/updateService")
+    @SysLogger("updateService")
+    @Transactional
+    public RespDTO<Boolean> updateService(@RequestBody @Valid ServiceSaveVO serviceSaveVO) {
+        Boolean isSuccess = serviceInfoFacade.updateService(serviceSaveVO);
+        return RespDTO.onSuc(isSuccess);
+    }
+
+    @ApiOperation(value = "获取当前登录用户的服务列表")
+    @PostMapping("/getServiceListByCurrentUser")
+    @SysLogger("getServiceListByCurrentUser")
+    @Transactional
+    public RespDTO<List<ServiceInfo>> getServiceListByCurrentUser() {
+        List<ServiceInfo> list = serviceInfoFacade.getServiceListByCurrentUser();
+        return RespDTO.onSuc(list);
+    }
 }
 

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

@@ -1,9 +1,24 @@
 package com.diagbot.web;
 
 
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.ProductServiceDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.ProductServiceFacade;
+import com.diagbot.facade.ServiceTokenFacade;
+import com.diagbot.vo.ServiceTokenVo;
+import com.diagbot.vo.ProductServiceSaveVO;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import springfox.documentation.annotations.ApiIgnore;
 
-import org.springframework.stereotype.Controller;
+import javax.validation.Valid;
 
 /**
  * <p>
@@ -13,9 +28,61 @@ import org.springframework.stereotype.Controller;
  * @author zhaops
  * @since 2018-09-17
  */
-@Controller
+@RestController
 @RequestMapping("/serviceToken")
 public class ServiceTokenController {
 
+    @Autowired
+    ServiceTokenFacade serviceTokenFacade;
+    @Autowired
+    ProductServiceFacade productServiceFacade;
+
+
+    @PostMapping("/hasPermission")
+    @ApiIgnore
+    public RespDTO<Boolean> hasPermission(@RequestBody ServiceTokenVo serviceTokenVo) {
+        return serviceTokenFacade.hasPermission(serviceTokenVo);
+    }
+
+    @ApiOperation(value = "生成令牌",
+            notes = "productId:产品Id,必填<br>" +
+                    "serviceId:服务Id,必填<br> ")
+    @PostMapping("/createServiceToken")
+    @SysLogger("createServiceToken")
+    @Transactional
+    public RespDTO<ProductServiceDTO> createServiceToken(@RequestBody @Valid ProductServiceSaveVO productServiceSaveVO) {
+        ProductServiceDTO productServiceDTO = productServiceFacade.genProductService(productServiceSaveVO);
+        return RespDTO.onSuc(productServiceDTO);
+    }
+
+    @ApiOperation(value = "令牌禁用",
+            notes = "productServiceId:产品服务id,必填<br>")
+    @PostMapping("/disableToken")
+    @SysLogger("disableToken")
+    @Transactional
+    public RespDTO<Integer> disableToken(@RequestParam Long productServiceId) {
+        Integer count = serviceTokenFacade.disableToken(productServiceId);
+        return RespDTO.onSuc(count);
+    }
+
+    @ApiOperation(value = "令牌启用",
+            notes = "productServiceId:产品服务id,必填<br>")
+    @PostMapping("/enableToken")
+    @SysLogger("enableToken")
+    @Transactional
+    public RespDTO<Integer> enableToken(@RequestParam Long productServiceId) {
+        Integer count = serviceTokenFacade.enableToken(productServiceId);
+        return RespDTO.onSuc(count);
+    }
+
+    @ApiOperation(value = "令牌删除",
+            notes = "productServiceId:产品服务id,必填<br>")
+    @PostMapping("/deleteTokenByProductServiceId")
+    @SysLogger("deleteTokenByProductServiceId")
+    @Transactional
+    public RespDTO<Integer> deleteTokenByProductServiceId(@RequestParam Long productServiceId) {
+        Integer count = serviceTokenFacade.deleteByProductServiceId(productServiceId);
+        return RespDTO.onSuc(count);
+    }
 }
 

+ 0 - 108
diagbotman-service/src/main/java/com/diagbot/web/SysLogController.java

@@ -1,108 +0,0 @@
-package com.diagbot.web;
-
-
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
-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.annotation.SysLogger;
-import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.SysLog;
-import com.diagbot.facade.SysLogFacade;
-import com.diagbot.vo.SysLogVo;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-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 java.util.Date;
-
-/**
- * @Description: 日志操作控制层
- * @author: gaodm
- * @time: 2018/8/30 10:12
- */
-@RestController
-@ApiIgnore
-@RequestMapping("/log")
-public class SysLogController {
-
-    @Autowired
-    private SysLogFacade sysLogFacade;
-
-    /**
-     * 新增日志信息
-     *
-     * @param sysLogVo 新增日志输入参数
-     * @return 新增日志是否成功
-     */
-    @ApiOperation(value = "添加日志", notes = "添加日志")
-    @PostMapping("/add")
-    @SysLogger("postLog")
-    public RespDTO add(@RequestBody SysLogVo sysLogVo){
-        //初始化新增日志信息
-        SysLog sysLog = new SysLog();
-        sysLog.setGmtCreate(new Date());
-        sysLog.setIp(sysLogVo.getIp());
-        sysLog.setMethod(sysLogVo.getMethod());
-        sysLog.setOperation(sysLogVo.getOperation());
-        sysLog.setParams(sysLogVo.getParams());
-        return RespDTO.onSuc(sysLogFacade.save(sysLog)?"添加成功":"添加失败");
-    }
-
-    /**
-     * 删除日志
-     * @param id 日志信息ID
-     * @return 删除是否成功
-     */
-    @ApiOperation(value = "删除日志", notes = "删除日志")
-    @DeleteMapping("/delete/{id}")
-    @SysLogger("deleteLog")
-    public RespDTO delete(@PathVariable(value = "id") Integer id){
-        return RespDTO.onSuc(sysLogFacade.removeById(id)?"删除成功":"删除失败");
-    }
-
-    /**
-     * 修改日志
-     * @param sysLog 修改日志输入参数
-     * @return 修改是否成功
-     */
-    @ApiOperation(value = "修改日志", notes = "修改日志")
-    @PostMapping("/update")
-    @SysLogger("updateLog")
-    public RespDTO update(@RequestBody SysLog sysLog){
-        return RespDTO.onSuc(sysLogFacade.updateById(sysLog)?"修改成功":"修改失败");
-    }
-
-    /**
-     * 获取日志列表
-     * @return 日志列信息
-     */
-    @ApiOperation(value = "获取日志列表", notes = "获取日志列表")
-    @GetMapping("/list")
-    @SysLogger("listLog")
-    public RespDTO list(){
-        Wrapper<SysLog> wrapper = new QueryWrapper<>();
-        return RespDTO.onSuc(sysLogFacade.list(wrapper));
-    }
-
-    /**
-     * 获取日志翻页信息
-     * @return 日志翻页信息
-     */
-    @ApiOperation(value = "获取日志翻页信息", notes = "获取日志翻页信息")
-    @GetMapping("/page")
-    @SysLogger("pageLog")
-    public RespDTO page() {
-        //初始化日志翻页参数
-        IPage<SysLog> wrapper = new Page<>();
-        return RespDTO.onSuc(sysLogFacade.page(wrapper, null));
-    }
-}
-

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

@@ -15,4 +15,18 @@
         <result column="remark" property="remark" />
     </resultMap>
 
+    <select id="findByProductIdAndServiceId" resultMap="BaseResultMap" parameterType="java.util.Map">
+        select * from diag_product_service
+        where product_id = #{procuctId} and service_id=#{serviceId} and is_deleted = 'N'
+    </select>
+
+    <select id="findByProductId" resultMap="BaseResultMap" parameterType="java.lang.Long">
+        select * from diag_product_service
+        where product_id = #{procuctId} and is_deleted = 'N'
+    </select>
+
+    <update id="deleteById" parameterType="java.lang.Long">
+        update diag_product_service set is_deleted='Y'
+        where id = #{id} and is_deleted = 'N'
+    </update>
 </mapper>

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

@@ -11,6 +11,7 @@
         <result column="creator" property="creator" />
         <result column="modifier" property="modifier" />
         <result column="name" property="name" />
+        <result column="product_id" property="productId" />
         <result column="remark" property="remark" />
     </resultMap>
 

+ 9 - 0
diagbotman-service/src/main/resources/mapper/ServiceInfoMapper.xml

@@ -15,4 +15,13 @@
         <result column="user_id" property="userId" />
     </resultMap>
 
+    <select id="findByName" resultMap="BaseResultMap" parameterType="java.lang.String">
+        select * from diag_service_info
+        where name = #{name} and is_deleted = 'N'
+    </select>
+
+    <select id="getListByUserId" resultMap="BaseResultMap" parameterType="java.lang.Long">
+        select * from diag_service_info
+        where user_id = #{userId} and is_deleted = 'N'
+    </select>
 </mapper>

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

@@ -20,4 +20,29 @@
         <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>

+ 0 - 21
diagbotman-service/src/main/resources/mapper/SysLogMapper.xml

@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.diagbot.mapper.SysLogMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.diagbot.entity.SysLog">
-        <id column="id" property="id" />
-        <result column="is_deleted" property="isDeleted" />
-        <result column="gmt_create" property="gmtCreate" />
-        <result column="gmt_modified" property="gmtModified" />
-        <result column="creator" property="creator" />
-        <result column="modifier" property="modifier" />
-        <result column="ip" property="ip" />
-        <result column="sys_type" property="sysType" />
-        <result column="method" property="method" />
-        <result column="operation" property="operation" />
-        <result column="params" property="params" />
-        <result column="username" property="username" />
-    </resultMap>
-
-</mapper>

+ 1 - 0
docs/002.数据库设计/sys-diagbotman.sql

@@ -49,6 +49,7 @@ CREATE TABLE `diag_service_filter` (
   `creator` varchar(20) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
   `modifier` varchar(20) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
   `name` varchar(255) NOT NULL DEFAULT '' COMMENT '名称',
+  `product_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '产品id',
   `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
   PRIMARY KEY (`id`),
   UNIQUE KEY `name` (`name`)

+ 6 - 4
gateway-service/src/main/java/com/diagbot/client/DiagbotmanServiceClient.java

@@ -2,9 +2,11 @@ package com.diagbot.client;
 
 import com.diagbot.client.hystrix.DiagbotmanServiceHystrix;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ServiceFilter;
+import com.diagbot.entity.ServiceToken;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RequestBody;
 
 import java.util.List;
 
@@ -18,10 +20,10 @@ import java.util.List;
 public interface DiagbotmanServiceClient {
 
     @PostMapping("/service_filter/getAll")
-    RespDTO<List<String>> getAll();
+    RespDTO<List<ServiceFilter>> getAll();
 
-    @PostMapping("/service_filter/getPermissonUrl")
-    RespDTO<List<String>> getPermissonUrl(@RequestParam("appkey")String appkey, @RequestParam("secret")String secret);
+    @PostMapping("/serviceToken/hasPermission")
+    RespDTO<Boolean> hasPermission(@RequestBody ServiceToken st);
 
 }
 

+ 0 - 3
gateway-service/src/main/java/com/diagbot/client/UserServiceClient.java

@@ -19,9 +19,6 @@ public interface UserServiceClient {
     @PostMapping("/user/login")
     RespDTO<User> login(@RequestParam("username") String username , @RequestParam("password") String password);
 
-    @PostMapping("/user/getPermission")
-    RespDTO getPermission(@RequestParam("appkey") String appkey , @RequestParam("secret") String secret);
-
 }
 
 

+ 4 - 4
gateway-service/src/main/java/com/diagbot/client/hystrix/DiagbotmanServiceHystrix.java

@@ -3,10 +3,10 @@ package com.diagbot.client.hystrix;
 
 import com.diagbot.client.DiagbotmanServiceClient;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.ServiceToken;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
-
-import java.util.List;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * @Description: 产品服务客户端(请求失败熔断)
@@ -24,8 +24,8 @@ public class DiagbotmanServiceHystrix implements DiagbotmanServiceClient {
     }
 
     @Override
-    public RespDTO<List<String>> getPermissonUrl(String appkey, String secret) {
-        log.error("【hystrix】调用{}异常","getPermissonUrl");
+    public RespDTO<Boolean> hasPermission(@RequestBody ServiceToken st) {
+        log.error("【hystrix】调用{}异常","hasPermisson");
         return null;
     }
 }

+ 0 - 6
gateway-service/src/main/java/com/diagbot/client/hystrix/UserServiceHystrix.java

@@ -19,10 +19,4 @@ public class UserServiceHystrix implements UserServiceClient {
         log.error("【hystrix】调用{}异常","login");
         return null;
     }
-
-    @Override
-    public RespDTO getPermission(String appkey, String secret) {
-        log.error("【hystrix】调用{}异常","getPermission");
-        return null;
-    }
 }

+ 2 - 2
gateway-service/src/main/java/com/diagbot/dto/RespDTO.java

@@ -9,8 +9,8 @@ import java.io.Serializable;
  */
 public class RespDTO<T> implements Serializable{
 
-
-    public String code = "0";
+    public static final String TRUE_CODE = "0";
+    public String code = TRUE_CODE;
     public String msg = "";
     public T data;
 

+ 22 - 0
gateway-service/src/main/java/com/diagbot/entity/ServiceFilter.java

@@ -0,0 +1,22 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 产品服务过滤接受类
+ * @Author: ztg
+ * @Date: 2018/9/18 14:35
+ */
+@Getter
+@Setter
+public class ServiceFilter implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    private String name;
+    private Long productId;
+
+
+}

+ 22 - 0
gateway-service/src/main/java/com/diagbot/entity/ServiceToken.java

@@ -0,0 +1,22 @@
+package com.diagbot.entity;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * @Description: appkey 和 secret发送类
+ * @Author: ztg
+ * @Date: 2018/9/19 13:14
+ */
+@Getter
+@Setter
+public class ServiceToken implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+   private String appkey;
+   private String secret;
+   private Long productId;
+}

+ 36 - 27
gateway-service/src/main/java/com/diagbot/filter/GlobalGatewayFilter.java

@@ -3,10 +3,10 @@ package com.diagbot.filter;
 import com.diagbot.client.DiagbotmanServiceClient;
 import com.diagbot.client.UserServiceClient;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.exception.CommonErrorCode;
-import com.diagbot.exception.CommonException;
-import com.diagbot.exception.ErrorCode;
+import com.diagbot.entity.ServiceFilter;
+import com.diagbot.entity.ServiceToken;
 import com.diagbot.util.GsonUtil;
+import com.diagbot.util.ListUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.gateway.filter.GatewayFilterChain;
@@ -22,10 +22,11 @@ import reactor.core.publisher.Mono;
 
 import java.net.URI;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 全局过滤器
@@ -37,8 +38,8 @@ import java.util.List;
 public class GlobalGatewayFilter implements GlobalFilter {
 
     private static final String GATE_WAY_PREFIX = "/api";
-    private static final Boolean IS_GENERATE = false;
-    private static List<String> SERVICE_FILTER = new ArrayList<>();
+    private static Boolean IS_GENERATE = false;
+    private static Map<String, Long> SERVICE_FILTER = new HashMap<>();
 
     @Autowired
     UserServiceClient userServiceClient;
@@ -65,24 +66,33 @@ public class GlobalGatewayFilter implements GlobalFilter {
         }
         log.info("APIURL:{}", requestUri);
         log.info("SERVICENAME:{}", serviceName);
-        //
 
-//        if(!IS_GENERATE) {
-//            SERVICE_FILTER = diagbotmanServiceClient.getAll().data;
-//        }
-//        if(SERVICE_FILTER.contains(serviceName)) {
-//            String appkey = request.getHeaders().getFirst("appkey");
-//            String secret = request.getHeaders().getFirst("secret");
-//            //获取appkey,secret对应的
-//            RespDTO<Permission> res = userServiceClient.getPermission(appkey, secret);
-//        }
-//        if(1 == 1) {
-//            throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "出错了!");
-//        }
-
-//        if(1==1){
-//            return getVoidMono(serverWebExchange, CommonErrorCode.NO_PERMISSION);
-//        }
+        if(!IS_GENERATE) {
+            RespDTO<List<ServiceFilter>> filter = diagbotmanServiceClient.getAll();
+            if (filter != null){
+                List<ServiceFilter> list =  filter.data;
+                if (ListUtil.isNotEmpty(list)){
+                    for(ServiceFilter bean : list) {
+                        SERVICE_FILTER.put(bean.getName(), bean.getProductId());
+                    }
+                    IS_GENERATE = true;
+                }
+            }
+        }
+        if(SERVICE_FILTER.get(serviceName) != null) {
+            String appkey = request.getHeaders().getFirst("appkey");
+            String secret = request.getHeaders().getFirst("secret");
+            Long productId = SERVICE_FILTER.get(serviceName);
+            //获取appkey,secret对应的权限信息
+            ServiceToken st = new ServiceToken();
+            st.setAppkey(appkey);
+            st.setSecret(secret);
+            st.setProductId(productId);
+            RespDTO<Boolean> res = diagbotmanServiceClient.hasPermission(st);
+            if(res == null || !RespDTO.TRUE_CODE.equals(res.code)) {
+                return getVoidMono(serverWebExchange, res);
+            }
+        }
 
         ServerHttpRequest.Builder builder = serverWebExchange.getRequest().mutate();
         builder.header("Authorization","Authorization Bearer token");
@@ -93,13 +103,12 @@ public class GlobalGatewayFilter implements GlobalFilter {
     /**
      * 网关抛异常
      *
-     * @param body
      */
-    private Mono<Void> getVoidMono(ServerWebExchange serverWebExchange, ErrorCode body) {
+    private Mono<Void> getVoidMono(ServerWebExchange serverWebExchange, RespDTO res) {
         RespDTO resp = new RespDTO();
         serverWebExchange.getResponse().setStatusCode(HttpStatus.OK);
-        resp.msg = body.getMsg();
-        resp.code = body.getCode();
+        resp.msg = res.msg;
+        resp.code = res.code;
         resp.data = "";
         byte[] bytes = GsonUtil.toJson(resp).getBytes(StandardCharsets.UTF_8);
         DataBuffer buffer = serverWebExchange.getResponse().bufferFactory().wrap(bytes);

+ 1 - 1
pom.xml

@@ -37,7 +37,7 @@
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <java.version>1.8</java.version>
         <spring-cloud.version>Finchley.SR1</spring-cloud.version>
-        <mybatis-plus-boot-starter.version>3.0.2</mybatis-plus-boot-starter.version>
+        <mybatis-plus-boot-starter.version>3.0.3</mybatis-plus-boot-starter.version>
         <mybatis-spring-boot.version>1.3.2</mybatis-spring-boot.version>
         <druid.version>1.1.9</druid.version>
         <swagger.version>2.9.2</swagger.version>

+ 2 - 0
user-service/src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -34,6 +34,8 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/user/resetPassword").permitAll()
                 .antMatchers("/userInfo/getUserInfoPag").permitAll()
                 .antMatchers("/user/getPermission").permitAll()
+                .antMatchers("/userInfo/updateUserInfoAll").permitAll()
+                .antMatchers("/userInfo/updateDeleted").permitAll()
                 .antMatchers("/**").authenticated();
 //        .antMatchers("/**").permitAll();
     }

+ 3 - 1
user-service/src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -48,7 +48,9 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/userver/verifySmsVerification", request)
                 || matchers("/userInfo/getUserInfoPag", request)
                 || matchers("/user/getPermission", request)
-
+                || matchers("/userInfo/updateUserInfoAll", request)
+                || matchers("/userInfo/updateDeleted", request)
+                
                 || matchers("/", request)){
                     return;
                 } else {

+ 154 - 0
user-service/src/main/java/com/diagbot/dto/UserInfoDTO.java

@@ -0,0 +1,154 @@
+package com.diagbot.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: 用户信息类表
+ * @date 2018年9月17日 下午4:35:35
+ */
+public class UserInfoDTO implements Serializable{
+	
+	 private static final long serialVersionUID = 1L;
+
+	    @TableId(value = "id", type = IdType.AUTO)
+	    private Long userId;//用户ID
+	    private Date userGmtCreate;//记录创建时间
+	    private String userName;// 用户名
+	    private String linKman;//联系人
+	    private String email;// 邮箱
+	    @TableId(value = "id", type = IdType.AUTO)
+	    private Long orgId;//机构ID
+	    private Date orgGmtCreate;//记录创建时间
+	    private String orgName;//机构名称
+	    private String orgType;//机构属性
+	    private String orgPrincipal;//负责人
+	    private String orgAddress;//机构地址
+	    private Long orgParentId;//上级机构id
+	    private Integer orgSubNum;//下属机构数量
+	    private String autPosition;//岗位信息
+	    private String autIsReject;//是否通过认证 N:未通过,Y:已通过
+	    private String autStatus;//认证状态
+		public Long getUserId() {
+			return userId;
+		}
+		public void setUserId(Long userId) {
+			this.userId = userId;
+		}
+		public Date getUserGmtCreate() {
+			return userGmtCreate;
+		}
+		public void setUserGmtCreate(Date userGmtCreate) {
+			this.userGmtCreate = userGmtCreate;
+		}
+		public String getUserName() {
+			return userName;
+		}
+		public void setUserName(String userName) {
+			this.userName = userName;
+		}
+		public String getLinKman() {
+			return linKman;
+		}
+		public void setLinKman(String linKman) {
+			this.linKman = linKman;
+		}
+		public String getEmail() {
+			return email;
+		}
+		public void setEmail(String email) {
+			this.email = email;
+		}
+		public Long getOrgId() {
+			return orgId;
+		}
+		public void setOrgId(Long orgId) {
+			this.orgId = orgId;
+		}
+		public Date getOrgGmtCreate() {
+			return orgGmtCreate;
+		}
+		public void setOrgGmtCreate(Date orgGmtCreate) {
+			this.orgGmtCreate = orgGmtCreate;
+		}
+		public String getOrgName() {
+			return orgName;
+		}
+		public void setOrgName(String orgName) {
+			this.orgName = orgName;
+		}
+		public String getOrgType() {
+			return orgType;
+		}
+		public void setOrgType(String orgType) {
+			this.orgType = orgType;
+		}
+		public String getOrgPrincipal() {
+			return orgPrincipal;
+		}
+		public void setOrgPrincipal(String orgPrincipal) {
+			this.orgPrincipal = orgPrincipal;
+		}
+		public String getOrgAddress() {
+			return orgAddress;
+		}
+		public void setOrgAddress(String orgAddress) {
+			this.orgAddress = orgAddress;
+		}
+		public Long getOrgParentId() {
+			return orgParentId;
+		}
+		public void setOrgParentId(Long orgParentId) {
+			this.orgParentId = orgParentId;
+		}
+		public Integer getOrgSubNum() {
+			return orgSubNum;
+		}
+		public void setOrgSubNum(Integer orgSubNum) {
+			this.orgSubNum = orgSubNum;
+		}
+		public String getAutPosition() {
+			return autPosition;
+		}
+		public void setAutPosition(String autPosition) {
+			this.autPosition = autPosition;
+		}
+		public String getAutIsReject() {
+			return autIsReject;
+		}
+		public void setAutIsReject(String autIsReject) {
+			this.autIsReject = autIsReject;
+		}
+		public String getAutStatus() {
+			return autStatus;
+		}
+		public void setAutStatus(String autStatus) {
+			this.autStatus = autStatus;
+		}
+		public static long getSerialversionuid() {
+			return serialVersionUID;
+		}
+		@Override
+		public String toString() {
+			return "UserInfo [userId=" + userId + ", userGmtCreate=" + userGmtCreate + ", userName=" + userName
+					+ ", linKman=" + linKman + ", email=" + email + ", orgId=" + orgId + ", orgGmtCreate="
+					+ orgGmtCreate + ", orgName=" + orgName + ", orgType=" + orgType + ", orgPrincipal=" + orgPrincipal
+					+ ", orgAddress=" + orgAddress + ", orgParentId=" + orgParentId + ", orgSubNum=" + orgSubNum
+					+ ", autPosition=" + autPosition + ", autIsReject=" + autIsReject + ", autStatus=" + autStatus
+					+ "]";
+		}
+
+
+		
+	    
+
+}

+ 9 - 3
user-service/src/main/java/com/diagbot/entity/User.java

@@ -75,18 +75,24 @@ public class User implements Serializable {
     /**
      * 用户类型
      */
-    private String type;
+    private Integer type;
 
 
 
-    public String getType() {
+    
+
+	public Integer getType() {
 		return type;
 	}
 
-	public void setType(String type) {
+	public void setType(Integer type) {
 		this.type = type;
 	}
 
+	public static long getSerialversionuid() {
+		return serialVersionUID;
+	}
+
 	public Long getId() {
         return id;
     }

+ 0 - 158
user-service/src/main/java/com/diagbot/entity/UserInfo.java

@@ -1,158 +0,0 @@
-package com.diagbot.entity;
-
-import java.io.Serializable;
-import java.util.Date;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-
-/**
- * 
- * @author wangfeng
- * @Description: 用户信息类表
- * @date 2018年9月17日 下午4:35:35
- */
-@TableName("sys_user and sys_user_organization")
-public class UserInfo implements Serializable{
-	
-	 private static final long serialVersionUID = 1L;
-	 
-	 /**
-	     * 用户ID
-	     */
-	    @TableId(value = "id", type = IdType.AUTO)
-	    private Long userId;
-
-	    /**
-	     * 记录创建时间
-	     */
-	    private Date userGmtCreate;
-	   
-	    /**
-	     * 用户名
-	     */
-	    private String userName;
-
-	    /**
-	     * 联系人
-	     */
-	    private String linKman;
-
-	    /**
-	     * 邮箱
-	     */
-	    private String email;
-	    /**
-	     * 机构ID
-	     */
-	    @TableId(value = "id", type = IdType.AUTO)
-	    private Long orgId;
-
-	    /**
-	     * 记录创建时间
-	     */
-	    private Date orgGmtCreate;
-
-
-	    /**
-	     * 机构名称
-	     */
-	    private String orgName;
-
-
-		public Long getUserId() {
-			return userId;
-		}
-
-
-		public void setUserId(Long userId) {
-			this.userId = userId;
-		}
-
-
-		public Date getUserGmtCreate() {
-			return userGmtCreate;
-		}
-
-
-		public void setUserGmtCreate(Date userGmtCreate) {
-			this.userGmtCreate = userGmtCreate;
-		}
-
-
-		public String getUserName() {
-			return userName;
-		}
-
-
-		public void setUserName(String userName) {
-			this.userName = userName;
-		}
-
-
-		public String getLinKman() {
-			return linKman;
-		}
-
-
-		public void setLinKman(String linKman) {
-			this.linKman = linKman;
-		}
-
-
-		public String getEmail() {
-			return email;
-		}
-
-
-		public void setEmail(String email) {
-			this.email = email;
-		}
-
-
-		public Long getOrgId() {
-			return orgId;
-		}
-
-
-		public void setOrgId(Long orgId) {
-			this.orgId = orgId;
-		}
-
-
-		public Date getOrgGmtCreate() {
-			return orgGmtCreate;
-		}
-
-
-		public void setOrgGmtCreate(Date orgGmtCreate) {
-			this.orgGmtCreate = orgGmtCreate;
-		}
-
-
-		public String getOrgName() {
-			return orgName;
-		}
-
-
-		public void setOrgName(String orgName) {
-			this.orgName = orgName;
-		}
-
-
-		public static long getSerialversionuid() {
-			return serialVersionUID;
-		}
-
-
-		@Override
-		public String toString() {
-			return "UserInfo [userId=" + userId + ", userGmtCreate=" + userGmtCreate + ", userName=" + userName
-					+ ", linKman=" + linKman + ", email=" + email + ", orgId=" + orgId + ", orgGmtCreate="
-					+ orgGmtCreate + ", orgName=" + orgName + "]";
-		}
-	    
-	    
-
-}

+ 7 - 2
user-service/src/main/java/com/diagbot/mapper/UserMapper.java

@@ -3,8 +3,9 @@ package com.diagbot.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.diagbot.dto.UserInfoDTO;
 import com.diagbot.entity.User;
-import com.diagbot.entity.UserInfo;
+import com.diagbot.vo.UserInfoOrganizationsVO;
 
 import org.apache.ibatis.annotations.Param;
 
@@ -25,5 +26,9 @@ public interface UserMapper extends BaseMapper<User> {
 
     IPage<User> selectUserListPage(Page page, @Param("user") User user);
     
-    IPage<UserInfo> selectUserInfoListPage(Page page);
+    IPage<UserInfoDTO> selectUserInfoListPage(Page page,@Param("userInfo") UserInfoDTO userInfo);
+    
+    public Integer updateUserInfoAll(UserInfoOrganizationsVO userInfo);
+    
+    public Integer updateDeleted(@Param("map") Map<String ,String> map);
 }

+ 34 - 29
user-service/src/main/java/com/diagbot/service/UserService.java

@@ -1,29 +1,34 @@
-package com.diagbot.service;
-
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.diagbot.entity.User;
-import com.diagbot.entity.UserInfo;
-
-import javafx.scene.control.Pagination;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * <p>
- *  服务类
- * </p>
- *
- * @author gaodm
- * @since 2018-08-02
- */
-public interface UserService extends IService<User> {
-
-    User findByName(String username);
-
-    IPage<User> selectUserListPage(Page<User> page, User user);
-    
-    public IPage<UserInfo>  selectUserInfoListPage(Page<UserInfo> page);
-}
+package com.diagbot.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.dto.UserInfoDTO;
+import com.diagbot.entity.User;
+import com.diagbot.vo.UserInfoOrganizationsVO;
+
+import javafx.scene.control.Pagination;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author gaodm
+ * @since 2018-08-02
+ */
+public interface UserService extends IService<User> {
+
+    User findByName(String username);
+
+    IPage<User> selectUserListPage(Page<User> page, User user);
+    
+    public IPage<UserInfoDTO>  selectUserInfoListPage(Page<UserInfoDTO> page,UserInfoDTO userInfo);
+    
+    public Integer updateUserInfoAll(UserInfoOrganizationsVO userInfo);
+
+	Integer updateDeleted(Map<String, String> map);
+}

+ 16 - 3
user-service/src/main/java/com/diagbot/service/impl/UserServiceImpl.java

@@ -3,10 +3,12 @@ package com.diagbot.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.UserInfoDTO;
 import com.diagbot.entity.User;
-import com.diagbot.entity.UserInfo;
 import com.diagbot.mapper.UserMapper;
 import com.diagbot.service.UserService;
+import com.diagbot.vo.UserInfoOrganizationsVO;
+
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -32,8 +34,19 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         return baseMapper.selectUserListPage(page, user);
     }
     @Override
-    public IPage<UserInfo>  selectUserInfoListPage(Page<UserInfo> page){
-    	return baseMapper.selectUserInfoListPage(page);
+    public IPage<UserInfoDTO>  selectUserInfoListPage(Page<UserInfoDTO> page,UserInfoDTO userInfo){
+    	return baseMapper.selectUserInfoListPage(page, userInfo);
     	
     }
+
+	@Override
+	public Integer  updateUserInfoAll(UserInfoOrganizationsVO userInfo) {
+		return baseMapper.updateUserInfoAll(userInfo);
+		
+	}
+	@Override
+	public Integer updateDeleted(Map<String,String> map){
+		return baseMapper.updateDeleted(map);
+		
+	}
 }

+ 42 - 0
user-service/src/main/java/com/diagbot/vo/UserInfoOrganizationsVO.java

@@ -0,0 +1,42 @@
+package com.diagbot.vo;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 
+ * @author wangfeng
+ * @Description: 用于修改用户信息及机构信息
+ * @date 2018年9月18日 下午3:06:58
+ */
+@Getter
+@Setter
+public class UserInfoOrganizationsVO implements Serializable {
+	
+	  private Date gmtModified;//修改时间
+	  private String modifier;//修改人id
+	  private String email;//邮箱
+	  private String principal;//负责人
+	  private String address;//单位地址
+	  private Integer type;//机构属性
+	  private String position;//岗位部门
+	  private String isReject;//是否通过认证 N:未通过,Y:已通过
+	  private Integer rejectType;//未通过类型
+	  private String rejectComment;//认证被拒理由
+	  private String status;//认证状态(0:未认证,1:已认证,2:认证中)
+	  private Long userId;//用户id
+	
+	@Override
+	public String toString() {
+		return "UserInfoOrganizations [gmtModified=" + gmtModified + ", modifier="
+				+ modifier + ", email=" + email + ", principal=" + principal + ", address=" + address + ", type=" + type
+				+ ", position=" + position + ", isReject=" + isReject + ", rejectType=" + rejectType
+				+ ", rejectComment=" + rejectComment + ", status=" + status + ", userId=" + userId + "]";
+	}
+	  
+	  
+
+}

+ 38 - 6
user-service/src/main/java/com/diagbot/web/UserInfoController.java

@@ -1,20 +1,27 @@
 package com.diagbot.web;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
-import com.diagbot.entity.User;
-import com.diagbot.entity.UserInfo;
+import com.diagbot.dto.UserInfoDTO;
 import com.diagbot.facade.UserFacade;
+import com.diagbot.util.UserUtils;
+import com.diagbot.vo.UserInfoOrganizationsVO;
 
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import springfox.documentation.annotations.ApiIgnore;
 
 /**
  * @Description: 外部用户信息
@@ -22,6 +29,7 @@ import springfox.documentation.annotations.ApiIgnore;
  * @time: 2018年9月17日 下午1:53:53
  */
 @RestController
+@Api(value="用户信息和机构信息API", tags={"用户信息和机构信息API"})
 @RequestMapping("/userInfo")
 public class UserInfoController {
 	
@@ -32,10 +40,34 @@ public class UserInfoController {
 	    @PostMapping("/getUserInfoPag")
 	    @SysLogger("getUserInfoPag")
 //	    @ApiIgnore
-	    public RespDTO getUserInfoPag(Page page){
-	        IPage<UserInfo> user=  userFacade.selectUserInfoListPage(page);
+	    public RespDTO<UserInfoDTO> getUserInfoPag(Page page, String orgName, String autStatus ){
+	    	UserInfoDTO userInfo =new UserInfoDTO();
+	    	userInfo.setOrgName(orgName);
+	    	userInfo.setAutStatus(autStatus);
+	        IPage<UserInfoDTO> user=  userFacade.selectUserInfoListPage(page,userInfo);
 	        return RespDTO.onSuc(user);
 	    }
-	
+	    
+	    @ApiOperation(value = "修改用户信息和机构信息以", notes = "用户信息和机构信息")
+	    @PostMapping("/updateUserInfoAll")
+	    @SysLogger("updateUserInfoAll")
+	    public RespDTO<UserInfoOrganizationsVO> updateUserInfoAll( UserInfoOrganizationsVO userInfo){
+	         int res= userFacade.updateUserInfoAll(userInfo);
+	         
+	        return RespDTO.onSuc("修改成功"+res);
+	    }
+	    
+	    @ApiOperation(value = "删除用户信息和机构信息", notes = "用户信息和机构信息")
+	    @PostMapping("/updateDeleted")
+	    @SysLogger("updateDeleted")
+	    public RespDTO updateDeleted(@RequestParam String  userId){
+	    	Map<String,String> map = new HashMap<String, String>();
+	    	map.put("userId", userId);
+	    	map.put("modifier",UserUtils.getCurrentPrincipleID());
+	    	SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+	    	map.put("gmtModified",df.format(new Date()));
+	    	 int res= userFacade.updateDeleted(map);
+	    	 return RespDTO.onSuc("刪除成功"+res);
+	    }
 	
 }

+ 1 - 1
user-service/src/main/java/com/diagbot/web/VerController.java

@@ -23,7 +23,7 @@ import javax.validation.Valid;
  * @time: 2018/9/4 19:30
  */
 @RestController
-@Api(value="用户验证API", tags={"用户验证API"})
+@Api(value="用户验证API", tags={"用户手机图片验证API"})
 @RequestMapping("/userver")
 public class VerController {
     @Autowired

+ 173 - 60
user-service/src/main/resources/mapper/UserMapper.xml

@@ -1,60 +1,173 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.diagbot.mapper.UserMapper">
-
-    <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.diagbot.entity.User">
-        <id column="id" property="id" />
-        <result column="is_deleted" property="isDeleted" />
-        <result column="gmt_create" property="gmtCreate" />
-        <result column="gmt_modified" property="gmtModified" />
-        <result column="creator" property="creator" />
-        <result column="modifier" property="modifier" />
-        <result column="password" property="password" />
-        <result column="username" property="username" />
-        <result column="linkman" property="linkman" />
-        <result column="email" property="email" />
-        <result column="type" property="type" />
-    </resultMap>
-
-    <select id="findByName" resultMap="BaseResultMap" parameterType="java.lang.String">
-        select * from sys_user
-        where username = #{username} and is_deleted = 'N'
-    </select>
-
-    <select id="selectUserListPage" resultMap="BaseResultMap">
-		select u.*
-		from sys_user u
-        LEFT JOIN sys_user_role ur on u.id= ur.user_id
-        LEFT JOIN sys_role r on ur.role_id=r.id
-        where u.is_deleted = 'N'
-        <if test="user.id != null">
-            and u.id = #{user.id}
-        </if>
-    </select>
-
-<!-- 	<select id="selectUserInfoListPage" resultMap="BaseResultMap">
-		select u.*
-		LEFT JOIN sys_user_role ur on u.id= ur.user_id
-		LEFT JOIN
-		sys_role r on ur.role_id=r.id
-		where u.is_deleted = 'N' and type = "0"
-		ORDER BY gmt_create DESC
-	</select> -->
-	
-    <select id="selectUserInfoListPage"  resultType="com.diagbot.entity.UserInfo">
-		SELECT
-		u.id AS userId,
-		u.gmt_create as userGmtCreate,
-		u.username as userName,
-		u.linkman as linKman,
-		u.email as email,
-		org.id AS orgId,
-		org.gmt_create as orgGmtCreate,
-		org.name as orgName
-		FROM sys_user u
-		LEFT JOIN sys_user_organization uorg ON u.id = uorg.user_id
-		LEFT JOIN sys_organization org ON uorg.organization_id = org.id
-		WHERE u.is_deleted = 'N' AND u.TYPE = "0" ORDER BY u.gmt_create DESC
-	</select>
-</mapper>
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.UserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.User">
+        <id column="id" property="id" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="password" property="password" />
+        <result column="username" property="username" />
+        <result column="linkman" property="linkman" />
+        <result column="email" property="email" />
+        <result column="type" property="type" />
+    </resultMap>
+
+    <select id="findByName" resultMap="BaseResultMap" parameterType="java.lang.String">
+        select * from sys_user
+        where username = #{username} and is_deleted = 'N'
+    </select>
+
+    <select id="selectUserListPage" resultMap="BaseResultMap">
+		select u.*
+		from sys_user u
+        LEFT JOIN sys_user_role ur on u.id= ur.user_id
+        LEFT JOIN sys_role r on ur.role_id=r.id
+        where u.is_deleted = 'N'
+        <if test="user.id != null">
+            and u.id = #{user.id}
+        </if>
+    </select>
+
+<!-- 	<select id="selectUserInfoListPage" resultMap="BaseResultMap">
+		select u.*
+		LEFT JOIN sys_user_role ur on u.id= ur.user_id
+		LEFT JOIN
+		sys_role r on ur.role_id=r.id
+		where u.is_deleted = 'N' and type = "0"
+		ORDER BY gmt_create DESC
+	</select> -->
+	
+   <!--  <select id="selectUserInfoPage"  parameterType="com.diagbot.dto.UserInfoDTO" resultType="com.diagbot.dto.UserInfoDTO">
+		SELECT
+		u.id AS userId,
+		u.gmt_create as userGmtCreate,
+		u.username as userName,
+		u.linkman as linKman,
+		u.email as email,
+		org.id AS orgId,
+		org.gmt_create as orgGmtCreate,
+		org.name as orgName
+		FROM sys_user u
+		LEFT JOIN sys_user_organization uorg ON u.id = uorg.user_id
+		LEFT JOIN sys_organization org ON uorg.organization_id = org.id
+		WHERE u.is_deleted = 'N' AND u.TYPE = 0 ORDER BY u.gmt_create DESC
+	</select> -->
+	<select id="selectUserInfoListPage"  resultType="com.diagbot.dto.UserInfoDTO">
+	 SELECT
+		u.id AS userId,
+		u.gmt_create AS userGmtCreate,
+		u.username AS userName,
+		u.linkman AS linKman,
+		u.email AS email,
+		org.id AS orgId,
+		org.gmt_create AS orgGmtCreate,
+		org.name AS orgName,
+		org.type as orgType,
+		org.principal AS orgPrincipal,
+		org.address as orgAddress,
+		org.parent_id as orgParent_id,
+		org.sub_num as orgSub_num,
+		aut.position as autPosition,
+		aut.is_reject as autIsReject,
+		aut.status as autStatus
+		FROM sys_user u
+		LEFT JOIN sys_user_organization uorg ON u.id = uorg.user_id
+		LEFT JOIN sys_organization org ON uorg.organization_id = org.id
+	        LEFT JOIN sys_user_authentication aut ON u.id = aut.user_id
+		WHERE u.is_deleted = 'N' AND u.TYPE = 0
+		<if test="userInfo.orgName != null">
+		 AND org.name LIKE CONCAT('%', #{userInfo.orgName}, '%') 
+		 </if>
+		 <if test="userInfo.autStatus != null">
+	     AND aut.status = #{userInfo.autStatus}  
+	     </if>
+	     ORDER BY  u.gmt_create DESC
+	</select>
+	
+	<update id="updateUserInfoAll" parameterType="com.diagbot.vo.UserInfoOrganizationsVO" >
+	UPDATE sys_user u ,sys_user_organization a ,
+	sys_organization b ,sys_user_authentication c
+	SET  u.remark = "0" 
+	<if test="email != null">
+	    <if test="gmtModified !=null"> 
+	      ,u.gmt_modified=#{gmtModified}
+	   </if>
+	   <if test="modifier != modifier">
+	      ,u.modifier=#{modifier}
+	   </if>
+	  ,u.email=#{email}
+	</if>
+	<if test="principal != null || address != null || type != null">
+	     <if test="gmtModified !=null"> 
+	       ,b.gmt_modified=#{gmtModified}
+	     </if>
+	     <if test="modifier != null">
+	      ,b.modifier=#{modifier}
+	     </if>
+		<if test="principal != null">
+		  ,b.principal=#{principal}
+		</if>
+		<if test="address != null">
+		  ,b.address=#{address}
+		</if>
+		<if test="type != null">
+		  ,b.type=#{type}
+		</if>
+	</if>
+	
+	<if test="position != null || isReject != null || rejectType !=null || rejectComment !=null || status != null">
+	    <if test="gmtModified !=null">
+		  ,c.gmt_modified=#{gmtModified}
+		</if>
+		<if test="modifier != null">
+		  ,c.modifier=#{modifier}
+		</if>
+		<if test="position != null">
+		  ,c.position=#{position}
+		</if>
+		<if test="isReject != null">
+		 ,c.is_reject=#{isReject}
+		</if>
+		<if test="rejectType !=null">
+		  ,c.reject_type=#{rejectType}
+		</if>
+		<if test="rejectComment !=null">
+		  ,c.reject_comment=#{rejectComment}
+		</if>
+		<if test="status != null">
+		  ,c.status = #{status}
+		</if>
+	</if>
+	WHERE u.id = #{userId} 
+	AND c.user_id= #{userId} 
+	AND a.user_id = #{userId} 
+	AND a.organization_id =b.id
+</update>
+
+ <update id="updateDeleted" parameterType="java.util.Map">
+	UPDATE sys_user u ,sys_user_organization a ,
+	 sys_organization b,sys_user_authentication c
+	SET u.is_deleted = "Y",a.is_deleted= "Y",b.is_deleted= "Y",c.is_deleted="Y"
+	<if test="map.gmtModified !=null">
+	,u.gmt_modified=#{map.gmtModified}
+	,b.gmt_modified=#{map.gmtModified}
+	,c.gmt_modified=#{map.gmtModified}
+	</if>
+	<if test="map.modifier != null">
+	,u.modifier=#{map.modifier}
+	,b.modifier=#{map.modifier}
+	,c.modifier=#{map.modifier}
+	</if>
+	WHERE u.id = #{map.userId} 
+	AND c.user_id= #{map.userId} 
+	AND a.user_id = #{map.userId} 
+	AND a.organization_id =b.id
+</update>
+
+
+</mapper>