Pārlūkot izejas kodu

后端代码更新

zxy 3 gadi atpakaļ
vecāks
revīzija
f4c4410663
15 mainītis faili ar 260 papildinājumiem un 11 dzēšanām
  1. 14 2
      light-application-server/src/main/java/com/jd/lightapplication/controller/InspectionTemplateController.java
  2. 15 0
      light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/AddGroupUserDto.java
  3. 27 0
      light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/CreateGroupDto.java
  4. 15 0
      light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/EasemobUserAddDto.java
  5. 15 0
      light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/QueryPageDto.java
  6. 29 0
      light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/SetUserAttributeDto.java
  7. 4 4
      light-application-server/src/main/java/com/jd/lightapplication/mapper/InspectionRecordMapper.java
  8. 4 0
      light-application-server/src/main/java/com/jd/lightapplication/mapper/InspectionTemplateMapper.java
  9. 2 2
      light-application-server/src/main/java/com/jd/lightapplication/model/dto/InspectionRecordQueryDto.java
  10. 2 0
      light-application-server/src/main/java/com/jd/lightapplication/security/MobileLoginFilter.java
  11. 29 2
      light-application-server/src/main/java/com/jd/lightapplication/service/InspectionTemplateService.java
  12. 1 1
      light-application-server/src/main/resources/application.yml
  13. 50 0
      light-application-ui/src/config/WebIM.js
  14. 27 0
      light-application-ui/src/config/WebIMConfig.js
  15. 26 0
      light-application-ui/src/views/page/huanxintest.vue

+ 14 - 2
light-application-server/src/main/java/com/jd/lightapplication/controller/InspectionTemplateController.java

@@ -31,7 +31,7 @@ public class InspectionTemplateController {
     @GetMapping("/list")
     @ApiOperation(value = "1、分页查询")
     public R queryPageBean(Page page, InspectionTemplateQueryDto inspectionTemplateQueryDto) {
-        return R.success(inspectionTemplateService.page(page,inspectionTemplateQueryDto));
+        return R.success(inspectionTemplateService.page(page, inspectionTemplateQueryDto));
     }
 
     @PostMapping("/saveOrUpdate")
@@ -59,7 +59,7 @@ public class InspectionTemplateController {
     public R getByType(Long type) {
         LambdaQueryWrapper<InspectionTemplate> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(InspectionTemplate::getType, type);
-        wrapper.eq(InspectionTemplate::getIsEnable,10);
+        wrapper.eq(InspectionTemplate::getIsEnable, 10);
         return R.success(inspectionTemplateService.list(wrapper));
     }
 
@@ -69,4 +69,16 @@ public class InspectionTemplateController {
         return R.success(inspectionTemplateService.getProjectByTemplateId(templateId));
     }
 
+    @GetMapping("/getDailyInspectionProject")
+    @ApiOperation(value = "6、查询当前启用的日常巡检模板的巡检项目")
+    public R getDailyInspectionProject() {
+        return R.success(inspectionTemplateService.getDailyInspectionProject());
+    }
+
+    @PostMapping("/updateIsEnableById")
+    @ApiOperation(value = "6、根据模板id修改模板启用状态")
+    public R updateIsEnableById(Long templateId, Integer isEnable) {
+        return R.success(inspectionTemplateService.updateIsEnableById(templateId, isEnable));
+    }
+
 }

+ 15 - 0
light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/AddGroupUserDto.java

@@ -0,0 +1,15 @@
+package com.jd.lightapplication.easemob.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AddGroupUserDto {
+    @ApiModelProperty("用户")
+    private List<String> usernames;
+    @ApiModelProperty("群聊id")
+    private String chatgroupid;
+
+}

+ 27 - 0
light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/CreateGroupDto.java

@@ -0,0 +1,27 @@
+package com.jd.lightapplication.easemob.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 创建环信群组入参
+ */
+@Data
+public class CreateGroupDto {
+    @ApiModelProperty("群组名称,此属性为必须的")
+    private String groupname;
+    @ApiModelProperty("群组描述,此属性为必须的")
+    private String desc;
+    @ApiModelProperty("是否是公开群,此属性为必须的")
+    private String ispublic;
+    @ApiModelProperty("群组成员最大数(包括群主),值为数值类型,默认值200,最大值2000,此属性为可选的")
+    private String maxusers;
+    @ApiModelProperty("加入公开群是否需要批准,默认值是false(加入公开群不需要群主批准),此属性为必选的,私有群必须为true")
+    private String approval;
+    @ApiModelProperty("群组的管理员,此属性为必须的")
+    private String owner;
+    @ApiModelProperty("群组成员,此属性为可选的,但是如果加了此项,数组元素至少一个(注:群主jma1不需要写入到members里面)。")
+    private List<String> members;
+}

+ 15 - 0
light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/EasemobUserAddDto.java

@@ -0,0 +1,15 @@
+package com.jd.lightapplication.easemob.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 添加环信用户的入参
+ */
+@Data
+public class EasemobUserAddDto {
+    @ApiModelProperty("环信用户名称")
+    private String username;
+    @ApiModelProperty("环信用户密码")
+    private String password;
+}

+ 15 - 0
light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/QueryPageDto.java

@@ -0,0 +1,15 @@
+package com.jd.lightapplication.easemob.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 环信分页查询的入参
+ */
+@Data
+public class QueryPageDto {
+    @ApiModelProperty("获取用户的数量")
+    private String limit;
+    @ApiModelProperty("游标,上一次分页查询之后返回的cursor值")
+    private String cursor;
+}

+ 29 - 0
light-application-server/src/main/java/com/jd/lightapplication/easemob/dto/SetUserAttributeDto.java

@@ -0,0 +1,29 @@
+package com.jd.lightapplication.easemob.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 设置用户属性的入参 除了username外,其他属性可任意设置。注意属性和值对应
+ */
+@Data
+public class SetUserAttributeDto {
+    @ApiModelProperty("用户id")
+    private String username;
+    @ApiModelProperty("用户昵称")
+    private String nickname;
+    @ApiModelProperty("头像地址")
+    private String avatarurl;
+    @ApiModelProperty("邮箱")
+    private String mail;
+    @ApiModelProperty("手机号")
+    private String phone;
+    @ApiModelProperty("性别")
+    private String gender;
+    @ApiModelProperty("生日")
+    private String birth;
+    @ApiModelProperty("签名")
+    private String sign;
+    @ApiModelProperty("")
+    private String ext;
+}

+ 4 - 4
light-application-server/src/main/java/com/jd/lightapplication/mapper/InspectionRecordMapper.java

@@ -21,11 +21,11 @@ public interface InspectionRecordMapper extends BaseMapper<InspectionRecord> {
             "<if test=\"@org.apache.commons.lang3.StringUtils@isNotBlank(inspectionRecordQueryDto.meetingTitle)\">" +
             " and mi.title LIKE CONCAT('%',#{inspectionRecordQueryDto.meetingTitle},'%')" +
             "</if>" +
-            "<if test=\"@org.apache.commons.lang3.StringUtils@isNotBlank(inspectionRecordQueryDto.inspectionType)\">" +
-            " and ir.inspection_type == #{inspectionRecordQueryDto.inspectionType}" +
+            "<if test=\"inspectionRecordQueryDto.inspectionType != null and inspectionRecordQueryDto.inspectionType > 0\">" +
+            " and ir.inspection_type = #{inspectionRecordQueryDto.inspectionType}" +
             "</if>" +
-            "<if test=\"@org.apache.commons.lang3.StringUtils@isNotBlank(inspectionRecordQueryDto.meetingId)\">" +
-            " and ir.meeting_id == #{inspectionRecordQueryDto.meetingId}" +
+            "<if test=\"inspectionRecordQueryDto.meetingId != null and inspectionRecordQueryDto.meetingId > 0\">" +
+            " and ir.meeting_id = #{inspectionRecordQueryDto.meetingId}" +
             "</if>" +
             " ORDER BY ir.create_time DESC" +
             "</script>")

+ 4 - 0
light-application-server/src/main/java/com/jd/lightapplication/mapper/InspectionTemplateMapper.java

@@ -5,6 +5,7 @@ import com.jd.lightapplication.model.InspectionTemplate;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
 
@@ -15,4 +16,7 @@ public interface InspectionTemplateMapper extends BaseMapper<InspectionTemplate>
             " SELECT project_id FROM inspection_template_project WHERE template_id = #{templateId}" +
             ")")
     List<InspectionProject> getProjectByTemplateId(@Param("templateId") Long templateId);
+
+    @Update("UPDATE inspection_template SET is_enable = 20 WHERE type = 10 AND is_enable = 10")
+    void disableCurrentDailyInspectionTemplate();
 }

+ 2 - 2
light-application-server/src/main/java/com/jd/lightapplication/model/dto/InspectionRecordQueryDto.java

@@ -10,12 +10,12 @@ public class InspectionRecordQueryDto {
     private String inspectionPersonnel;
 
     @ApiModelProperty("会议id")
-    private String meetingId;
+    private Long meetingId;
 
     @ApiModelProperty("会议标题")
     private String meetingTitle;
 
 
     @ApiModelProperty("巡检类型")
-    private String inspectionType;
+    private Integer inspectionType;
 }

+ 2 - 0
light-application-server/src/main/java/com/jd/lightapplication/security/MobileLoginFilter.java

@@ -81,6 +81,7 @@ public class MobileLoginFilter extends OncePerRequestFilter implements Initializ
         String phone = request.getParameter("phone");
         String code = request.getParameter("code");
         String type = request.getParameter("type");
+        System.err.println("【phone:" + phone + "】【code:" + code + "】【type:" + type + "】");
 
         if (QUICK.equals(type)) {//表示手机快捷登录 用code去微信服务器换取手机号
             phone = this.getPhone(code);
@@ -134,6 +135,7 @@ public class MobileLoginFilter extends OncePerRequestFilter implements Initializ
 
     /**
      * 根据小程序拿到的动态令牌获取用户手机号
+     *
      * @param code
      * @return
      */

+ 29 - 2
light-application-server/src/main/java/com/jd/lightapplication/service/InspectionTemplateService.java

@@ -36,6 +36,10 @@ public class InspectionTemplateService extends ServiceImpl<InspectionTemplateMap
      */
     @Transactional(rollbackFor = Exception.class)
     public Boolean saveOrUpdate(InspectionTemplateAddOrUpdateDto inspectionTemplateAddOrUpdateDto) {
+        //如果修改或者是保存的日常巡检模板并且是启用状态,把之前启用的日常巡检模板设为禁用
+        if (inspectionTemplateAddOrUpdateDto.getType() == 10 && inspectionTemplateAddOrUpdateDto.getIsEnable() == 10) {
+            baseMapper.disableCurrentDailyInspectionTemplate();
+        }
         //先保存或者修改巡检模板主表信息
         InspectionTemplate inspectionTemplate = new InspectionTemplate()
                 .setId(inspectionTemplateAddOrUpdateDto.getId())
@@ -72,9 +76,32 @@ public class InspectionTemplateService extends ServiceImpl<InspectionTemplateMap
             wrapper.like(InspectionTemplate::getName, inspectionTemplateQueryDto.getName());
         }
         if (inspectionTemplateQueryDto.getType() != null && inspectionTemplateQueryDto.getType() != 0) {
-            wrapper.eq(InspectionTemplate::getType,inspectionTemplateQueryDto.getType());
+            wrapper.eq(InspectionTemplate::getType, inspectionTemplateQueryDto.getType());
         }
         wrapper.orderByDesc(InspectionTemplate::getCreateTime);
-        return this.page(page,wrapper);
+        return this.page(page, wrapper);
+    }
+
+    public List<InspectionProject> getDailyInspectionProject() {
+        //先找到日常巡检的模板
+        LambdaQueryWrapper<InspectionTemplate> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(InspectionTemplate::getType, 10);
+        wrapper.eq(InspectionTemplate::getIsEnable, 10);
+        wrapper.orderByDesc(InspectionTemplate::getCreateTime);
+        List<InspectionTemplate> inspectionTemplateList = baseMapper.selectList(wrapper);
+        if (inspectionTemplateList.size() == 0 || inspectionTemplateList.get(0) == null) {
+            return null;
+        }
+        return this.getProjectByTemplateId(inspectionTemplateList.get(0).getId());
+    }
+
+    public Boolean updateIsEnableById(Long templateId, Integer isEnable) {
+        //如果这个模板是日常巡检模板,并且是启用,要把之前启用的日常巡检模板禁用掉
+        InspectionTemplate inspectionTemplate = baseMapper.selectById(templateId);
+        if (inspectionTemplate.getType() == 10 && isEnable == 10) {
+            baseMapper.disableCurrentDailyInspectionTemplate();
+        }
+        inspectionTemplate.setIsEnable(isEnable);
+        return baseMapper.updateById(inspectionTemplate) > 0;
     }
 }

+ 1 - 1
light-application-server/src/main/resources/application.yml

@@ -35,7 +35,7 @@ mybatis-plus:
   configuration:
     map-underscore-to-camel-case: true
     auto-mapping-behavior: full
-  #控制台打印sql
+    #控制台打印sql
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
   #xml文件路径
   mapper-locations: classpath*:/mapper/**Mapper.xml

+ 50 - 0
light-application-ui/src/config/WebIM.js

@@ -0,0 +1,50 @@
+import config from "./WebIMConfig";
+import websdk from "easemob-websdk";
+
+let conn = {};
+WebIM.config = config;
+conn = WebIM.conn = new WebIM.connection({
+	appKey: WebIM.config.appkey,
+	isHttpDNS: WebIM.config.isHttpDNS,
+	isMultiLoginSessions: WebIM.config.isMultiLoginSessions,
+	https: WebIM.config.https,
+	url: WebIM.config.socketServer,
+	apiUrl: WebIM.config.restServer,
+	isAutoLogin: WebIM.config.isAutoLogin,
+	autoReconnectNumMax: WebIM.config.autoReconnectNumMax,
+	autoReconnectInterval: WebIM.config.autoReconnectInterval,
+	delivery: WebIM.config.delivery,
+	useOwnUploadFun: WebIM.config.useOwnUploadFun
+})
+
+conn.listen({
+	onOpened: function () {},                  //连接成功回调
+	onClosed: function () {},                  //连接关闭回调
+	onTextMessage: function ( message ) {},    //收到文本消息
+	onEmojiMessage: function ( message ) {},   //收到表情消息
+	onPictureMessage: function ( message ) {}, //收到图片消息
+	onCmdMessage: function ( message ) {},     //收到命令消息
+	onAudioMessage: function ( message ) {},   //收到音频消息
+	onLocationMessage: function ( message ) {},//收到位置消息
+	onFileMessage: function ( message ) {},    //收到文件消息
+	onCustomMessage: function ( message ) {},  //收到自定义消息
+	onVideoMessage: function (message) {},   //收到视频消息
+	onPresence: function ( message ) {},       //处理“广播”或“发布-订阅”消息,如联系人订阅请求、处理群组、聊天室被踢解散等消息
+	onRoster: function ( message ) {},         //处理好友申请
+	onInviteMessage: function ( message ) {},  //处理群组邀请
+	onOnline: function () {},                  //本机网络连接成功
+	onOffline: function () {},                 //本机网络掉线
+	onError: function ( message ) {},          //失败回调
+	onBlacklistUpdate: function (list) {       //黑名单变动
+											   // 查询黑名单,将好友拉黑,将好友从黑名单移除都会回调这个函数,list则是黑名单现有的所有好友信息
+	},
+	onRecallMessage: function(message){},      //收到撤回消息回调
+	onReceivedMessage: function(message){},    //收到消息送达服务器回执
+	onDeliveredMessage: function(message){},   //收到消息送达客户端回执
+	onReadMessage: function(message){},        //收到消息已读回执
+	onCreateGroup: function(message){},        //创建群组成功回执(需调用createGroupNew)
+	onMutedMessage: function(message){},       //如果用户在A群组被禁言,在A群发消息会走这个回调并且消息不会传递给群其它成员
+	onChannelMessage: function(message){}      //收到整个会话已读的回执,在对方发送channel ack时会在这个回调里收到消息
+});
+
+export default WebIM;

+ 27 - 0
light-application-ui/src/config/WebIMConfig.js

@@ -0,0 +1,27 @@
+
+var config = {
+    socketServer: '//im-api-v2.easemob.com/ws',    // socket Server地址
+
+    restServer: '//a1.easemob.com',               // rest Server地址
+
+    appkey: '1160220415096727#light-application',        // App key
+
+    https : false,                            // 是否使用https
+
+    isHttpDNS: true,                          // 3.0 SDK支持,防止DNS劫持从服务端获取XMPPUrl、restUrl
+
+    isMultiLoginSessions: false,              // 是否开启多页面同步收消息,注意,需要先联系商务开通此功能
+
+    isDebug: false,                           // 打开调试,会自动打印log,在控制台的console中查看log
+
+    autoReconnectNumMax: 2,                   // 断线重连最大次数
+
+    heartBeatWait: 30000,                     // 心跳间隔(只在小程序中使用)
+
+    delivery: false,                           // 是否发送已读回执
+
+    useOwnUploadFun: false,         // 是否使用自己的上传方式(如将图片文件等上传到自己的服务器,构建消息时只传url)
+
+    deviceId: 'webim'               // 设备ID,默认可不传,如果传一个固定值,在没开启多端登录的情况下同一个账号会互踢
+}
+export default config

+ 26 - 0
light-application-ui/src/views/page/huanxintest.vue

@@ -0,0 +1,26 @@
+<template>
+    <div></div>
+</template>
+
+<script>
+export default {
+    name: 'huanxintest',
+    data() {
+        return {
+        };
+    },
+    created() {
+        var options = {
+            user: 'admin',
+            pwd: '123456',
+            appKey: WebIM.config.appkey
+        };
+        WebIM.conn.open(options);
+    },
+    methods: {}
+};
+</script>
+
+<style scoped>
+
+</style>