Browse Source

1.增加mongodb
2.增加获取系统用户api
3.增加综合app发送消息

sss 3 years ago
parent
commit
bfab4136f7

+ 5 - 0
eladmin-activity/eladmin-activity.iml

@@ -199,5 +199,10 @@
     <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
     <orderEntry type="library" name="Maven: com.github.whvcse:easy-captcha:1.6.2" level="project" />
     <orderEntry type="library" name="Maven: eu.bitwalker:UserAgentUtils:1.21" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.5.22.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:bson:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:2.1.2.RELEASE" level="project" />
   </component>
 </module>

+ 5 - 0
eladmin-common/eladmin-common.iml

@@ -155,5 +155,10 @@
     <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
     <orderEntry type="library" name="Maven: com.github.whvcse:easy-captcha:1.6.2" level="project" />
     <orderEntry type="library" name="Maven: eu.bitwalker:UserAgentUtils:1.21" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.5.22.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:bson:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:2.1.2.RELEASE" level="project" />
   </component>
 </module>

+ 5 - 0
eladmin-generator/eladmin-generator.iml

@@ -157,5 +157,10 @@
     <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
     <orderEntry type="library" name="Maven: com.github.whvcse:easy-captcha:1.6.2" level="project" />
     <orderEntry type="library" name="Maven: eu.bitwalker:UserAgentUtils:1.21" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.5.22.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:bson:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:2.1.2.RELEASE" level="project" />
   </component>
 </module>

+ 6 - 0
eladmin-logging/eladmin-logging.iml

@@ -15,6 +15,7 @@
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
     <orderEntry type="inheritedJdk" />
@@ -152,5 +153,10 @@
     <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
     <orderEntry type="library" name="Maven: com.github.whvcse:easy-captcha:1.6.2" level="project" />
     <orderEntry type="library" name="Maven: eu.bitwalker:UserAgentUtils:1.21" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.5.22.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:bson:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:2.1.2.RELEASE" level="project" />
   </component>
 </module>

+ 7 - 0
eladmin-system/eladmin-system.iml

@@ -10,6 +10,7 @@
         <sourceRoots>
           <root url="file://$MODULE_DIR$/src/main/java" />
           <root url="file://$MODULE_DIR$/src/main/resources" />
+          <root url="file://$MODULE_DIR$/target/generated-sources/annotations" />
         </sourceRoots>
       </configuration>
     </facet>
@@ -21,6 +22,7 @@
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
       <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
     <orderEntry type="inheritedJdk" />
@@ -233,5 +235,10 @@
     <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
     <orderEntry type="library" name="Maven: com.github.whvcse:easy-captcha:1.6.2" level="project" />
     <orderEntry type="library" name="Maven: eu.bitwalker:UserAgentUtils:1.21" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.5.22.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:bson:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:2.1.2.RELEASE" level="project" />
   </component>
 </module>

+ 13 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/api/rest/DmApiController.java

@@ -19,6 +19,8 @@ import me.zhengjie.annotation.Log;
 import me.zhengjie.modules.dm.api.domain.DmApi;
 import me.zhengjie.modules.dm.api.service.DmApiService;
 import me.zhengjie.modules.dm.api.service.dto.DmApiQueryCriteria;
+import me.zhengjie.modules.dm.system.domain.DmSystem;
+import me.zhengjie.modules.dm.system.service.DmSystemService;
 import org.springframework.data.domain.Pageable;
 import lombok.RequiredArgsConstructor;
 import org.springframework.http.HttpStatus;
@@ -43,6 +45,8 @@ public class DmApiController {
 
     private final DmApiService dmApiService;
 
+    private final DmSystemService dmSystemService;
+
     @Log("导出数据")
     @ApiOperation("导出数据")
     @GetMapping(value = "/download")
@@ -84,4 +88,13 @@ public class DmApiController {
         dmApiService.deleteAll(ids);
         return new ResponseEntity<>(HttpStatus.OK);
     }
+
+    @Log("根据子系统查询接口")
+    @ApiOperation("根据子系统查询接口")
+    @GetMapping(value = "/getDmApiBySystem")
+    @PreAuthorize("@el.check('dmApi:list')")
+    public ResponseEntity<Object> getDmApiBySystem(Integer systemId) {
+        return new ResponseEntity<>(dmSystemService.findById(systemId),HttpStatus.OK);
+    }
+
 }

+ 58 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/messageSendLog/domain/DmMessageSendLog.java

@@ -0,0 +1,58 @@
+package me.zhengjie.modules.dm.messageSendLog.domain;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+import org.springframework.data.mongodb.core.mapping.Field;
+
+@Getter
+@Setter
+@Document(collection = "dm_message_send_log")
+public class DmMessageSendLog {
+
+    /*
+     *  主键id
+     */
+    @Id
+    @Field("_id")
+    private String id;
+
+    /*
+     *  子系统名称
+     */
+    @Field("system_name")
+    private String systemName;
+
+    /*
+     *  子系统发送的关联id
+     */
+    @Field("send_id")
+    private String sendId;
+
+    /*
+     *  发送userId
+     */
+    @Field("send_user_id")
+    private String sendUserId;
+
+    /*
+     *  发送的内容
+     */
+    @Field("send_content")
+    private JSONObject sendContent;
+
+    /*
+     *  接收信息者账号 多个以,隔开
+     */
+    @Field("usernames")
+    private String usernames;
+
+    /*
+     *  创建时间
+     */
+    @Field("create_time")
+    private String createTime;
+
+}

+ 36 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/messageSendLog/service/DmMessageSendLogService.java

@@ -0,0 +1,36 @@
+package me.zhengjie.modules.dm.messageSendLog.service;
+
+import me.zhengjie.modules.dm.messageSendLog.domain.DmMessageSendLog;
+
+import java.awt.print.Pageable;
+import java.util.List;
+
+public interface DmMessageSendLogService {
+
+    /**
+     * 查询数据总数
+     * @return long
+     */
+    long getCount();
+
+    /**
+     * 创建
+     * @param resources
+     * @return DmMessageSendLog
+     */
+    DmMessageSendLog create(DmMessageSendLog resources);
+
+    /**
+     * 根据id查询
+     * @param id
+     * @return DmMessageSendLog
+     */
+    DmMessageSendLog findById(String id);
+
+    /**
+     * 查询数据分页
+     * @return Map<String,Object>
+     */
+    List<DmMessageSendLog> queryAll();
+
+}

+ 45 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/messageSendLog/service/impl/DmMessageSendLogServiceImpl.java

@@ -0,0 +1,45 @@
+package me.zhengjie.modules.dm.messageSendLog.service.impl;
+
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import lombok.RequiredArgsConstructor;
+import me.zhengjie.modules.dm.messageSendLog.domain.DmMessageSendLog;
+import me.zhengjie.modules.dm.messageSendLog.service.DmMessageSendLogService;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.awt.print.Pageable;
+import java.util.List;
+
+@Service
+@RequiredArgsConstructor
+public class DmMessageSendLogServiceImpl implements DmMessageSendLogService {
+
+    @Resource
+    private MongoTemplate mongoTemplate;
+
+    @Override
+    public long getCount() {
+        Query query = new Query();
+        long count = mongoTemplate.count(query, DmMessageSendLog.class);
+        return count;
+    }
+
+    @Override
+    public DmMessageSendLog create(DmMessageSendLog resources) {
+        return  mongoTemplate.save(resources);
+    }
+
+    @Override
+    public DmMessageSendLog findById(String id) {
+        Query query=new Query(Criteria.where("_id").is(id));
+        return mongoTemplate.findById(query,DmMessageSendLog.class);
+    }
+
+    @Override
+    public List<DmMessageSendLog> queryAll() {
+        return mongoTemplate.findAll(DmMessageSendLog.class);
+    }
+
+}

+ 9 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/system/domain/DmSystem.java

@@ -20,12 +20,14 @@ import cn.hutool.core.bean.BeanUtil;
 import io.swagger.annotations.ApiModelProperty;
 import cn.hutool.core.bean.copier.CopyOptions;
 import me.zhengjie.domain.LocalStorage;
+import me.zhengjie.modules.dm.api.domain.DmApi;
 import me.zhengjie.modules.dm.user.domain.DmUser;
 
 import javax.persistence.*;
 import javax.validation.constraints.*;
 import java.sql.Timestamp;
 import java.io.Serializable;
+import java.util.List;
 
 /**
 * @website https://el-admin.vip
@@ -62,6 +64,13 @@ public class DmSystem implements Serializable {
     @ApiModelProperty(value = "子系统管理员")
     private DmUser dmUser;
 
+    @ManyToMany
+    @ApiModelProperty(value = "子系统接口")
+    @JoinTable(name = "dm_system_api",
+            joinColumns = {@JoinColumn(name = "system_id",referencedColumnName = "id")},
+            inverseJoinColumns = {@JoinColumn(name = "api_id",referencedColumnName = "id")})
+    private List<DmApi> dmApis;
+
     public void copy(DmSystem source){
         BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
     }

+ 4 - 0
eladmin-system/src/main/java/me/zhengjie/modules/dm/system/service/dto/DmSystemDto.java

@@ -17,10 +17,12 @@ package me.zhengjie.modules.dm.system.service.dto;
 
 import lombok.Data;
 import me.zhengjie.domain.LocalStorage;
+import me.zhengjie.modules.dm.api.domain.DmApi;
 import me.zhengjie.modules.dm.user.domain.DmUser;
 
 import java.sql.Timestamp;
 import java.io.Serializable;
+import java.util.List;
 
 /**
 * @website https://el-admin.vip
@@ -45,4 +47,6 @@ public class DmSystemDto implements Serializable {
 
     /** 子系统管理员 */
     private DmUser dmUser;
+
+    private List<DmApi> dmApis;
 }

+ 4 - 1
eladmin-system/src/main/java/me/zhengjie/modules/system/service/dto/UserQueryCriteria.java

@@ -31,7 +31,7 @@ import java.util.Set;
 public class UserQueryCriteria implements Serializable {
 
     @Query
-    private Long id;
+    private String id;
 
     @Query(propName = "id", type = Query.Type.IN, joinName = "dept")
     private Set<String> deptIds = new HashSet<>();
@@ -46,4 +46,7 @@ public class UserQueryCriteria implements Serializable {
 
     @Query(type = Query.Type.BETWEEN)
     private List<Timestamp> createTime;
+
+    @Query(type = Query.Type.BETWEEN)
+    private List<Timestamp> updateTime;
 }

+ 66 - 0
eladmin-system/src/main/java/me/zhengjie/modules/thirdparty/v1/MessageSendLogApiController.java

@@ -0,0 +1,66 @@
+package me.zhengjie.modules.thirdparty.v1;
+
+import cn.hutool.http.HttpRequest;
+import com.alibaba.fastjson.JSONObject;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import me.zhengjie.annotation.Log;
+import me.zhengjie.annotation.rest.AnonymousPostMapping;
+import me.zhengjie.base.BaseResponse;
+import me.zhengjie.base.QueryPageParams;
+import me.zhengjie.modules.dm.messageSendLog.domain.DmMessageSendLog;
+import me.zhengjie.modules.dm.messageSendLog.service.DmMessageSendLogService;
+import me.zhengjie.modules.system.service.dto.DeptQueryNoAuthCriteria;
+import me.zhengjie.utils.SecurityUtils;
+import me.zhengjie.utils.StringUtils;
+import org.springframework.data.domain.Pageable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+@Slf4j
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息接口")
+@RequestMapping("/api/thirdparty/v1/message")
+public class MessageSendLogApiController {
+
+    private final DmMessageSendLogService dmMessageSendLogService;
+
+    private final String erpapiUrl = "http://222.84.157.37:25894";
+
+    @Log("发送IM消息")
+    @ApiOperation("发送IM消息")
+    @AnonymousPostMapping(value = "/sendChatMessage")
+    public BaseResponse<Object> sendChatMessage(@RequestBody QueryPageParams<DmMessageSendLog> params) {
+        SecurityUtils.CheckApiAuth(params);
+        String url = "/api-im-logic/busi/im/logic/c2c/sendChatMessage";
+        //组装erp发送信息接口请求参数
+        JSONObject bodyJSON = new JSONObject();
+        bodyJSON.put("clientId","yw");
+        bodyJSON.put("token","9cc3dbc9-415a-479f-a03a-cbe15412875b");
+        bodyJSON.put("payload",params.getQuery().getSendContent());
+        bodyJSON.put("payloadType","text");
+        bodyJSON.put("messageFrom","usky");
+        bodyJSON.put("messageTo",params.getQuery().getUsernames());
+        log.info("bodyJSON:"+bodyJSON.toJSONString());
+        String res = HttpRequest.get(erpapiUrl+url)
+                .header("serviceId", "USky")
+                .header("serviceUserId",params.getQuery().getSendUserId())
+                .body(bodyJSON.toJSONString()).execute().body();
+        JSONObject json = JSONObject.parseObject(res);
+        log.info("json:"+json);
+        String code = json.getString("code");
+        if(StringUtils.equals("0000",code)){
+            dmMessageSendLogService.create(params.getQuery());
+        } else {
+            return new BaseResponse<>("发送失败",-1,"fail");
+        }
+        return new BaseResponse<>("发送成功");
+    }
+
+}

+ 8 - 0
eladmin-system/src/main/java/me/zhengjie/modules/thirdparty/v1/UserApiController.java

@@ -273,4 +273,12 @@ public class UserApiController {
         dmUserService.update(params.getQuery());
         return new BaseResponse<>(null);
     }
+
+    @Log("获取系统用户数据")
+    @ApiOperation("获取系统用户数据")
+    @AnonymousPostMapping(value = "/getZkSysUsers")
+    public BaseResponse<Object> getZkSysUsers(@RequestBody QueryPageParams<UserQueryCriteria> params, Pageable pageable) {
+        SecurityUtils.CheckApiAuth(params);
+        return new BaseResponse<>(userService.queryAll(params.getQuery(), pageable));
+    }
 }

+ 8 - 0
eladmin-system/src/main/resources/config/application-dev.yml

@@ -1,5 +1,13 @@
 #配置数据源
 spring:
+  data:
+    mongodb:
+        host: 127.0.0.1
+        port: 27017
+        database: dm_zkpt
+        authentication-database: admin
+        username: admin
+        password: '123456'
   datasource:
     druid:
       db-type: com.alibaba.druid.pool.DruidDataSource

+ 6 - 0
eladmin-tools/eladmin-tools.iml

@@ -15,6 +15,7 @@
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" generated="true" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
     <orderEntry type="inheritedJdk" />
@@ -162,5 +163,10 @@
     <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
     <orderEntry type="library" name="Maven: com.github.whvcse:easy-captcha:1.6.2" level="project" />
     <orderEntry type="library" name="Maven: eu.bitwalker:UserAgentUtils:1.21" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-mongodb:1.5.22.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:bson:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mongodb:mongodb-driver-core:3.8.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-mongodb:2.1.2.RELEASE" level="project" />
   </component>
 </module>

+ 7 - 0
pom.xml

@@ -208,6 +208,13 @@
             <artifactId>UserAgentUtils</artifactId>
             <version>1.21</version>
         </dependency>
+
+        <!-- 增加mongodb支持 -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-mongodb</artifactId>
+            <version>1.5.22.RELEASE</version>
+        </dependency>
     </dependencies>
 
     <build>