ljy121 1 سال پیش
والد
کامیت
1e51dd8cc0

+ 49 - 0
zjugis-module-infra/zjugis-module-infra-biz/src/main/java/com/zjugis/module/infra/dal/dataobject/msg/MsgSendRecordDO.java

@@ -0,0 +1,49 @@
+package com.zjugis.module.infra.dal.dataobject.msg;
+
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.zjugis.module.infra.dal.dataobject.file.FileConfigDO;
+import lombok.*;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author ljy
+ * @version 1.0
+ * @date 2024/7/9 9:25
+ */
+@TableName("infra_msg_send_record")
+@KeySequence("infra_msg_send_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@Data
+@ToString(callSuper = true)
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class MsgSendRecordDO {
+
+
+    private Long id;
+
+    private String sendPersonId;
+
+    private String sendPerson;
+
+    private String sendMobile;
+
+    private Integer sendState;
+
+    private Integer sendType;
+
+    private LocalDateTime sendTime;
+
+    private String sendContent;
+
+    private String sendResult;
+
+    private String thirdId;
+
+    private String msgType;
+
+
+}

+ 14 - 0
zjugis-module-infra/zjugis-module-infra-biz/src/main/java/com/zjugis/module/infra/dal/mysql/msg/MsgSendRecordMapper.java

@@ -0,0 +1,14 @@
+package com.zjugis.module.infra.dal.mysql.msg;
+
+import com.zjugis.framework.mybatis.core.mapper.BaseMapperX;
+import com.zjugis.module.infra.dal.dataobject.msg.MsgSendRecordDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ljy
+ * @version 1.0
+ * @date 2024/7/9 9:30
+ */
+@Mapper
+public interface MsgSendRecordMapper extends BaseMapperX<MsgSendRecordDO> {
+}

+ 17 - 0
zjugis-module-infra/zjugis-module-infra-biz/src/main/java/com/zjugis/module/infra/enums/msg/SendTypeEnum.java

@@ -0,0 +1,17 @@
+package com.zjugis.module.infra.enums.msg;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum SendTypeEnum {
+
+    /**
+     * 钉钉
+     */
+    DING(1);
+
+    private final Integer type;
+
+}

+ 32 - 0
zjugis-module-infra/zjugis-module-infra-biz/src/main/java/com/zjugis/module/infra/service/ding/DingServiceImpl.java

@@ -13,13 +13,21 @@ import com.dingtalk.api.response.OapiGettokenResponse;
 import com.dingtalk.api.response.OapiMessageCorpconversationAsyncsendV2Response;
 import com.dingtalk.api.response.OapiUserGetByMobileResponse;
 import com.taobao.api.ApiException;
+import com.zjugis.framework.common.pojo.CommonResult;
 import com.zjugis.module.infra.api.ding.dto.*;
+import com.zjugis.module.infra.dal.dataobject.msg.MsgSendRecordDO;
+import com.zjugis.module.infra.enums.msg.SendTypeEnum;
+import com.zjugis.module.infra.service.msg.MsgSendRecordService;
+import com.zjugis.module.system.api.user.AdminUserApi;
+import com.zjugis.module.system.api.user.dto.AdminUserRespDTO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -44,6 +52,12 @@ public class DingServiceImpl implements DingService {
     @Value("${zjugis.ding.appsecret}")
     private String appsecret;
 
+    @Autowired
+    private MsgSendRecordService msgSendRecordService;
+
+    @Autowired
+    private AdminUserApi adminUserApi;
+
     /**
      * @param mobile
      * @param
@@ -70,9 +84,27 @@ public class DingServiceImpl implements DingService {
         }
         request.setMsg(msg);
         OapiMessageCorpconversationAsyncsendV2Response rsp = client.execute(request, token);
+        saveLog(dingMessageDto,rsp,userId,mobile);
         return rsp.toString();
     }
 
+    private void saveLog(DingMessageDto dingMessageDto, OapiMessageCorpconversationAsyncsendV2Response rsp, String userId,String mobile) {
+        MsgSendRecordDO record = new MsgSendRecordDO();
+        CommonResult<AdminUserRespDTO> userRes = adminUserApi.getUser(userId);
+        AdminUserRespDTO user = userRes.getCheckedData();
+        record.setSendPerson(user.getNickname());
+        record.setSendPersonId(userId);
+        record.setSendMobile(mobile);
+        record.setSendContent(dingMessageDto.getContent());
+        record.setSendType(SendTypeEnum.DING.getType());
+        record.setSendTime(LocalDateTime.now());
+        record.setMsgType(dingMessageDto.getMsgType().name());
+        record.setSendState(rsp.isSuccess()?1:0);
+        record.setSendResult(rsp.toString());
+        record.setThirdId(String.valueOf(rsp.getTaskId()));
+        msgSendRecordService.createMsgSendRecord(record);
+    }
+
     @Override
     public String createStaff(StaffDTO dto) throws ApiException {
         String accessToken = getDingTalkToken();

+ 22 - 0
zjugis-module-infra/zjugis-module-infra-biz/src/main/java/com/zjugis/module/infra/service/msg/MsgSendRecordService.java

@@ -0,0 +1,22 @@
+package com.zjugis.module.infra.service.msg;
+
+import com.zjugis.module.infra.controller.admin.file.vo.config.FileConfigCreateReqVO;
+import com.zjugis.module.infra.dal.dataobject.msg.MsgSendRecordDO;
+
+import javax.validation.Valid;
+
+/**
+ * @author ljy
+ * @version 1.0
+ * @date 2024/7/9 9:31
+ */
+public interface MsgSendRecordService {
+
+    /**
+     * 创建文件配置
+     *
+     * @param msgSendRecordDO 创建信息
+     * @return 编号
+     */
+    Long createMsgSendRecord(MsgSendRecordDO msgSendRecordDO);
+}

+ 25 - 0
zjugis-module-infra/zjugis-module-infra-biz/src/main/java/com/zjugis/module/infra/service/msg/MsgSendRecordServiceImpl.java

@@ -0,0 +1,25 @@
+package com.zjugis.module.infra.service.msg;
+
+import com.zjugis.module.infra.dal.dataobject.msg.MsgSendRecordDO;
+import com.zjugis.module.infra.dal.mysql.msg.MsgSendRecordMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author ljy
+ * @version 1.0
+ * @date 2024/7/9 9:32
+ */
+@Service
+public class MsgSendRecordServiceImpl implements MsgSendRecordService{
+
+    @Autowired
+    MsgSendRecordMapper msgSendRecordMapper;
+
+
+    @Override
+    public Long createMsgSendRecord(MsgSendRecordDO msgSendRecordDO) {
+        msgSendRecordMapper.insert(msgSendRecordDO);
+        return msgSendRecordDO.getId();
+    }
+}