企业微信添加好友功能
parent
986d0a264e
commit
94ba838fa1
@ -0,0 +1,19 @@
|
||||
package com.baiye.http;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/6/27
|
||||
*/
|
||||
@Data
|
||||
public class WeChatParseResponse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -4823173492909135229L;
|
||||
|
||||
private Integer status;
|
||||
|
||||
private String desc;
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
package com.baiye.util;
|
||||
|
||||
import cn.hutool.extra.emoji.EmojiUtil;
|
||||
|
||||
import javax.persistence.AttributeConverter;
|
||||
import javax.persistence.Converter;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022-7-1
|
||||
*/
|
||||
@Converter
|
||||
public class JpaConverterUnicode implements AttributeConverter<Object, String> {
|
||||
|
||||
|
||||
@Override
|
||||
public String convertToDatabaseColumn(Object obj) {
|
||||
return EmojiUtil.toAlias(obj.toString());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object convertToEntityAttribute(String s) {
|
||||
return EmojiUtil.toUnicode(s);
|
||||
}
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package com.baiye.model.dto;
|
||||
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.util.JpaConverterAes;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/7/1
|
||||
*/
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@NoArgsConstructor
|
||||
public class AddWeChatFriendRecordDTO implements Serializable {
|
||||
|
||||
|
||||
private static final long serialVersionUID = 7818011288635567258L;
|
||||
|
||||
@ApiModelProperty("添加类型 1企业微信 2个人微信")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty("登录用户id")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("线索id")
|
||||
private Long clueId;
|
||||
|
||||
@ApiModelProperty("添加状态 0已添加 1已通过")
|
||||
private Integer status;
|
||||
|
||||
@ApiModelProperty("机器人微信")
|
||||
private String robotWeChat;
|
||||
|
||||
@ApiModelProperty("用户微信")
|
||||
private String userWechat;
|
||||
|
||||
@ApiModelProperty("添加时间")
|
||||
private Date addFriendTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.baiye.model.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/7/4
|
||||
*/
|
||||
@Data
|
||||
public class TemplateUserDTO {
|
||||
private Date endTime;
|
||||
private Integer status;
|
||||
private Boolean weChatFlag;
|
||||
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
package com.baiye.model.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/6/24
|
||||
*/
|
||||
@Data
|
||||
public class WeChatQrCodeDTO implements Serializable {
|
||||
private static final long serialVersionUID = 5388401222056549488L;
|
||||
|
||||
private String wechat;
|
||||
|
||||
private String uuid;
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.baiye.model.dto.wechat;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotBlank;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/6/27
|
||||
*/
|
||||
@Data
|
||||
public class WeChatFriendDTO {
|
||||
|
||||
@NotNull
|
||||
@ApiModelProperty(value = "添加类型 0-手机号 1-微信号")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(value = "微信号 type为1时传递")
|
||||
private String tagetWxId;
|
||||
|
||||
@NotBlank
|
||||
@ApiModelProperty(value = "线索id")
|
||||
private String clueId;
|
||||
|
||||
@ApiModelProperty(value = "发送内容")
|
||||
private String sendContent;
|
||||
|
||||
}
|
@ -0,0 +1,60 @@
|
||||
package com.baiye.model.dto.wechat;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/6/28
|
||||
*/
|
||||
@Data
|
||||
public class WeChatUserLoginDTO implements Serializable {
|
||||
private static final long serialVersionUID = -3405251435086857475L;
|
||||
|
||||
private String flag;
|
||||
|
||||
private Integer loginType;
|
||||
|
||||
private Boolean newDevice;
|
||||
|
||||
private String qrCodeKey;
|
||||
|
||||
private Boolean newWxLogin;
|
||||
|
||||
private String cusQrUuId;
|
||||
|
||||
private String wxid;
|
||||
|
||||
private String serverid;
|
||||
|
||||
private Boolean second;
|
||||
|
||||
private String token;
|
||||
|
||||
private Integer protoVer;
|
||||
|
||||
private String randomid;
|
||||
|
||||
private String wxdat;
|
||||
|
||||
private String softwareId;
|
||||
|
||||
private Integer sourceType;
|
||||
|
||||
private String qrCodeUrl;
|
||||
|
||||
private String host;
|
||||
|
||||
private String nickname;
|
||||
|
||||
private Integer strategy;
|
||||
|
||||
private String usercode;
|
||||
|
||||
private String account;
|
||||
|
||||
private String smallHeadImgUrl;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package com.baiye.modules.system.domain;
|
||||
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.model.base.BaseEntity;
|
||||
import com.baiye.util.JpaConverterAes;
|
||||
import com.baiye.util.JpaConverterUnicode;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/7/1
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@Table(name = "tb_we_chat_friend_record")
|
||||
@EntityListeners(AuditingEntityListener.class)
|
||||
public class AddWeChatFriendRecord extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 3045806596975568412L;
|
||||
|
||||
@Id
|
||||
@Column(name = "id")
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty("添加类型 1企业微信 2个人微信")
|
||||
@Column(name = "type")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty("登录用户id")
|
||||
@Column(name = "user_Id")
|
||||
private Long userId;
|
||||
|
||||
@ApiModelProperty("线索id")
|
||||
@Column(name = "clue_id")
|
||||
private Long clueId;
|
||||
|
||||
@ApiModelProperty("添加状态 0已添加 1已通过")
|
||||
@Column(name = "status")
|
||||
private Integer status = DefaultNumberConstants.ZERO_NUMBER;
|
||||
|
||||
@ApiModelProperty("机器人微信")
|
||||
@Column(name = "robot_we_chat")
|
||||
@Convert(converter = JpaConverterAes.class)
|
||||
private String robotWeChat;
|
||||
|
||||
@ApiModelProperty("用户微信")
|
||||
@Column(name = "user_we_chat")
|
||||
@Convert(converter = JpaConverterAes.class)
|
||||
private String userWechat;
|
||||
|
||||
@ApiModelProperty("发送内容")
|
||||
@Convert(converter = JpaConverterUnicode.class)
|
||||
@Column(name = "send_content")
|
||||
private String sendContent;
|
||||
|
||||
@ApiModelProperty("好友通过时间")
|
||||
@Column(name = "add_friend_time")
|
||||
private Date addFriendTime;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.domain;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.model.base.BaseEntity;
|
||||
import com.baiye.util.JpaConverterUnicode;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
/**
|
||||
* @website https://el-admin.vip
|
||||
* @description /
|
||||
* @author Enzo
|
||||
* @date 2022-07-01
|
||||
**/
|
||||
@Entity
|
||||
@Data
|
||||
@Table(name="tb_wechat_send_message")
|
||||
public class WechatSendMessage extends BaseEntity implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -8886964419423069607L;
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id")
|
||||
@ApiModelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
@Column(name = "status")
|
||||
@ApiModelProperty(value = "状态值")
|
||||
private Integer status = DefaultNumberConstants.ONE_NUMBER;
|
||||
|
||||
@Column(name = "user_id")
|
||||
@ApiModelProperty(value = "用户")
|
||||
private Long userId;
|
||||
|
||||
@Column(name = "great_message")
|
||||
@ApiModelProperty(value = "发送消息")
|
||||
@Convert(converter = JpaConverterUnicode.class)
|
||||
private String greatMessage;
|
||||
|
||||
@Column(name = "is_default")
|
||||
@ApiModelProperty(value = "是否默认")
|
||||
private Integer isDefault;
|
||||
|
||||
|
||||
public void copy(WechatSendMessage source){
|
||||
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.repository;
|
||||
|
||||
import com.baiye.modules.system.domain.AddWeChatFriendRecord;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @website https://el-admin.vip
|
||||
* @author Enzo
|
||||
* @date 2022-07-01
|
||||
**/
|
||||
public interface AddWeChatFriendRecordRepository extends JpaRepository<AddWeChatFriendRecord, Long>, JpaSpecificationExecutor<AddWeChatFriendRecord> {
|
||||
|
||||
/**
|
||||
* 线索id查找
|
||||
* @param clueId
|
||||
* @return
|
||||
*/
|
||||
AddWeChatFriendRecord findByClueId(Long clueId);
|
||||
|
||||
|
||||
/**
|
||||
* 状态查找
|
||||
* @param num
|
||||
* @return
|
||||
*/
|
||||
List<AddWeChatFriendRecord> findByStatus(Integer num);
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.repository;
|
||||
|
||||
import com.baiye.modules.system.domain.WechatSendMessage;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Modifying;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @website https://el-admin.vip
|
||||
* @author Enzo
|
||||
* @date 2022-07-01
|
||||
**/
|
||||
public interface WechatSendMessageRepository extends JpaRepository<WechatSendMessage, Long>, JpaSpecificationExecutor<WechatSendMessage> {
|
||||
|
||||
/**
|
||||
* 用户id查找发送模板
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
@Query(value = "from WechatSendMessage where status = 1 and userId = ?1 order by isDefault desc")
|
||||
List<WechatSendMessage> findByUserId(Long userId);
|
||||
|
||||
|
||||
/**
|
||||
* 默认值查找
|
||||
* @param num
|
||||
* @return
|
||||
*/
|
||||
WechatSendMessage findByIsDefault(Integer num);
|
||||
|
||||
/**
|
||||
* 修改默认值
|
||||
* @param changeValue
|
||||
* @param originalValue
|
||||
*/
|
||||
@Modifying
|
||||
@Query(value = "UPDATE WechatSendMessage m set m.isDefault = ?1 where m.isDefault = ?2")
|
||||
void updateDefaultByDefault(Integer changeValue,Integer originalValue);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 修改默认值
|
||||
* @param changeValue
|
||||
* @param id
|
||||
*/
|
||||
@Modifying
|
||||
@Query(value = "UPDATE WechatSendMessage m set m.isDefault = ?1 where m.id = ?2")
|
||||
void updateDefaultById(Integer changeValue,Long id );
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.baiye.modules.system.rest;
|
||||
|
||||
import com.baiye.modules.system.service.AddWeChatFriendRecordService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/7/1
|
||||
*/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "系统代理商管理")
|
||||
@RequestMapping("/api/addFriendRecord")
|
||||
public class AddWeChatFriendController {
|
||||
private final AddWeChatFriendRecordService addWeChatFriendRecordService;
|
||||
|
||||
@ApiOperation("查找记录")
|
||||
@GetMapping("/findByClueId")
|
||||
public ResponseEntity<Object> query(@RequestParam("clueId") Long clueId) {
|
||||
return new ResponseEntity<>(addWeChatFriendRecordService.findByClueId(clueId), HttpStatus.OK);
|
||||
}
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.rest;
|
||||
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.modules.system.domain.WechatSendMessage;
|
||||
import com.baiye.modules.system.service.WechatSendMessageService;
|
||||
import com.baiye.modules.system.service.dto.WechatSendMessageDto;
|
||||
import com.baiye.modules.system.service.dto.WechatSendMessageQueryCriteria;
|
||||
import com.baiye.util.SecurityUtils;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @website https://el-admin.vip
|
||||
* @date 2022-07-01
|
||||
**/
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "WechatSendMessageController管理")
|
||||
@RequestMapping("/api/wechatSendMessage")
|
||||
public class WechatSendMessageController {
|
||||
|
||||
private final WechatSendMessageService wechatSendMessageService;
|
||||
|
||||
@ApiOperation("导出数据")
|
||||
@GetMapping(value = "/download")
|
||||
public void exportWechatSendMessage(HttpServletResponse response, WechatSendMessageQueryCriteria criteria) throws IOException {
|
||||
wechatSendMessageService.download(wechatSendMessageService.queryAll(criteria), response);
|
||||
}
|
||||
|
||||
@GetMapping
|
||||
@ApiOperation("查询WechatSendMessage")
|
||||
public ResponseEntity<Object> queryWechatSendMessage(WechatSendMessageQueryCriteria criteria, Pageable pageable) {
|
||||
return new ResponseEntity<>(wechatSendMessageService.queryAll(criteria, pageable), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/list")
|
||||
@ApiOperation("查询WechatSendMessage")
|
||||
public ResponseEntity<Object> listAll() {
|
||||
List<WechatSendMessageDto> wechatSendMessageDtos =
|
||||
wechatSendMessageService.querySendMessageByUserId(SecurityUtils.getCurrentUserId());
|
||||
Map<String, Object> map =
|
||||
ImmutableMap.of("data", wechatSendMessageDtos,
|
||||
"status", DefaultNumberConstants.ZERO_NUMBER);
|
||||
return new ResponseEntity<>(map, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
@ApiOperation("新增WechatSendMessageController")
|
||||
public ResponseEntity<Object> createWechatSendMessage
|
||||
(@Validated @RequestBody WechatSendMessage resources) {
|
||||
return new ResponseEntity<>(wechatSendMessageService.create(resources), HttpStatus.CREATED);
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@ApiOperation("修改WechatSendMessage")
|
||||
public ResponseEntity<Object> updateWechatSendMessage(@Validated @RequestBody WechatSendMessage resources) {
|
||||
wechatSendMessageService.update(resources);
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
|
||||
@GetMapping("/changeIsDefault")
|
||||
@ApiOperation("修改WechatSendMessage")
|
||||
public ResponseEntity<Object> updateWechatSendMessage(Long id,Integer isDefault) {
|
||||
wechatSendMessageService.changeStatus(id, isDefault);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@DeleteMapping
|
||||
@ApiOperation("删除WechatSendMessage")
|
||||
public ResponseEntity<Object> deleteWechatSendMessage(@RequestBody Long[] ids) {
|
||||
wechatSendMessageService.deleteAll(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package com.baiye.modules.system.service;
|
||||
|
||||
import com.baiye.model.dto.AddWeChatFriendRecordDTO;
|
||||
import com.baiye.modules.system.domain.AddWeChatFriendRecord;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/7/1
|
||||
*/
|
||||
public interface AddWeChatFriendRecordService {
|
||||
/**
|
||||
* id查找
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
AddWeChatFriendRecordDTO findByClueId(Long id);
|
||||
|
||||
/**
|
||||
* 状态查找
|
||||
* @param num
|
||||
* @return
|
||||
*/
|
||||
List<AddWeChatFriendRecord> findByStatus(Integer num);
|
||||
|
||||
/**
|
||||
* 是否成为好友
|
||||
* @param friendRecord
|
||||
* @return
|
||||
*/
|
||||
Boolean whetherFriends(AddWeChatFriendRecord friendRecord);
|
||||
|
||||
/**
|
||||
* 保存记录
|
||||
* @param friendRecord
|
||||
*/
|
||||
void save(AddWeChatFriendRecord friendRecord);
|
||||
}
|
@ -0,0 +1,99 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.service;
|
||||
|
||||
import com.baiye.modules.system.domain.WechatSendMessage;
|
||||
import com.baiye.modules.system.service.dto.WechatSendMessageDto;
|
||||
import com.baiye.modules.system.service.dto.WechatSendMessageQueryCriteria;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @website https://el-admin.vip
|
||||
* @description 服务接口
|
||||
* @author Enzo
|
||||
* @date 2022-07-01
|
||||
**/
|
||||
public interface WechatSendMessageService {
|
||||
|
||||
/**
|
||||
* 查询数据分页
|
||||
* @param criteria 条件
|
||||
* @param pageable 分页参数
|
||||
* @return Map<String,Object>
|
||||
*/
|
||||
Map<String,Object> queryAll(WechatSendMessageQueryCriteria criteria, Pageable pageable);
|
||||
|
||||
/**
|
||||
* 查询所有数据不分页
|
||||
* @param criteria 条件参数
|
||||
* @return List<WechatSendMessageDto>
|
||||
*/
|
||||
List<WechatSendMessageDto> queryAll(WechatSendMessageQueryCriteria criteria);
|
||||
|
||||
/**
|
||||
* 根据ID查询
|
||||
* @param id ID
|
||||
* @return WechatSendMessageDto
|
||||
*/
|
||||
WechatSendMessageDto findById(Long id);
|
||||
|
||||
/**
|
||||
* 创建
|
||||
* @param resources /
|
||||
* @return WechatSendMessageDto
|
||||
*/
|
||||
WechatSendMessageDto create(WechatSendMessage resources);
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
* @param resources /
|
||||
*/
|
||||
void update(WechatSendMessage resources);
|
||||
|
||||
/**
|
||||
* 多选删除
|
||||
* @param ids /
|
||||
*/
|
||||
void deleteAll(Long[] ids);
|
||||
|
||||
/**
|
||||
* 导出数据
|
||||
* @param all 待导出的数据
|
||||
* @param response /
|
||||
* @throws IOException /
|
||||
*/
|
||||
void download(List<WechatSendMessageDto> all, HttpServletResponse response) throws IOException;
|
||||
|
||||
/**
|
||||
* 获取正在使用的模板
|
||||
* @param currentUserId
|
||||
* @return
|
||||
*/
|
||||
List<WechatSendMessageDto> querySendMessageByUserId(Long currentUserId);
|
||||
|
||||
/**
|
||||
* 修改状态
|
||||
*
|
||||
* @param id
|
||||
* @param isDefault
|
||||
*/
|
||||
void changeStatus(Long id, Integer isDefault);
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
|
||||
/**
|
||||
* @website https://el-admin.vip
|
||||
* @description /
|
||||
* @author Enzo
|
||||
* @date 2022-07-01
|
||||
**/
|
||||
@Data
|
||||
public class WechatSendMessageDto implements Serializable {
|
||||
|
||||
private Long id;
|
||||
|
||||
/** 状态值 */
|
||||
private Integer status;
|
||||
|
||||
/** 用户 */
|
||||
private Long userId;
|
||||
|
||||
/** 发送消息 */
|
||||
private String greatMessage;
|
||||
|
||||
/** 是否默认 */
|
||||
private Integer isDefault;
|
||||
|
||||
/** 创建者 */
|
||||
private String createBy;
|
||||
|
||||
/** 更新者 */
|
||||
private String updateBy;
|
||||
|
||||
/** 创建日期 */
|
||||
private Timestamp createTime;
|
||||
|
||||
/** 更新时间 */
|
||||
private Timestamp updateTime;
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.service.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @website https://el-admin.vip
|
||||
* @author Enzo
|
||||
* @date 2022-07-01
|
||||
**/
|
||||
@Data
|
||||
public class WechatSendMessageQueryCriteria{
|
||||
}
|
@ -0,0 +1,73 @@
|
||||
package com.baiye.modules.system.service.impl;
|
||||
|
||||
import cn.hutool.http.HttpStatus;
|
||||
import cn.hutool.http.HttpUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baiye.config.properties.WeChatProperties;
|
||||
import com.baiye.constant.WeChatRequestConstants;
|
||||
import com.baiye.http.CommonResponse;
|
||||
import com.baiye.http.WeChatResponse;
|
||||
import com.baiye.model.enums.ResponseCode;
|
||||
import com.baiye.modules.system.domain.AddWeChatFriendRecord;
|
||||
import com.baiye.modules.system.repository.AddWeChatFriendRecordRepository;
|
||||
import com.baiye.modules.system.service.AddWeChatFriendRecordService;
|
||||
import com.baiye.model.dto.AddWeChatFriendRecordDTO;
|
||||
import com.baiye.modules.system.service.mapstruct.AddWeChatFriendRecordMapper;
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/7/1
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AddWeChatWeChatFriendRecordServiceImpl implements AddWeChatFriendRecordService {
|
||||
private final AddWeChatFriendRecordRepository addWeChatFriendRecordRepository;
|
||||
|
||||
private final AddWeChatFriendRecordMapper addWeChatFriendRecordMapper;
|
||||
|
||||
private final WeChatProperties weChatProperties;
|
||||
|
||||
@Override
|
||||
public AddWeChatFriendRecordDTO findByClueId(Long clueId) {
|
||||
AddWeChatFriendRecord addWechatFriendRecord = addWeChatFriendRecordRepository.findByClueId(clueId);
|
||||
return addWeChatFriendRecordMapper.toDto(addWechatFriendRecord);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AddWeChatFriendRecord> findByStatus(Integer num) {
|
||||
return addWeChatFriendRecordRepository.findByStatus(num);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean whetherFriends(AddWeChatFriendRecord friendRecord) {
|
||||
Map<String, Object> map =
|
||||
ImmutableMap.of("wechat", friendRecord.getRobotWeChat(),
|
||||
"targetWx", friendRecord.getUserWechat(), "type", 1);
|
||||
// 发送请求
|
||||
String friendsInfo = HttpUtil.post
|
||||
(weChatProperties.getGatewayHost().
|
||||
concat(WeChatRequestConstants.WE_CHAT_FRIEND_INFORMATION), map);
|
||||
if (friendsInfo.contains(ResponseCode.SUCCESS.getDesc())) {
|
||||
WeChatResponse weChatResponse =
|
||||
JSONUtil.toBean(friendsInfo, WeChatResponse.class);
|
||||
if (weChatResponse.getStatus() == HttpStatus.HTTP_OK) {
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
}
|
||||
return Boolean.FALSE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(AddWeChatFriendRecord friendRecord) {
|
||||
addWeChatFriendRecordRepository.save(friendRecord);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,136 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.service.impl;
|
||||
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.exception.BadRequestException;
|
||||
import com.baiye.model.enums.ResponseCode;
|
||||
import com.baiye.modules.system.domain.WechatSendMessage;
|
||||
import com.baiye.modules.system.repository.WechatSendMessageRepository;
|
||||
import com.baiye.modules.system.service.WechatSendMessageService;
|
||||
import com.baiye.modules.system.service.dto.WechatSendMessageDto;
|
||||
import com.baiye.modules.system.service.dto.WechatSendMessageQueryCriteria;
|
||||
import com.baiye.modules.system.service.mapstruct.WechatSendMessageMapper;
|
||||
import com.baiye.util.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @website https://el-admin.vip
|
||||
* @description 服务实现
|
||||
* @date 2022-07-01
|
||||
**/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class WechatSendMessageServiceImpl implements WechatSendMessageService {
|
||||
|
||||
private final WechatSendMessageRepository wechatSendMessageRepository;
|
||||
private final WechatSendMessageMapper wechatSendMessageMapper;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(WechatSendMessageQueryCriteria criteria, Pageable pageable) {
|
||||
Page<WechatSendMessage> page = wechatSendMessageRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder), pageable);
|
||||
return PageUtil.toPage(page.map(wechatSendMessageMapper::toDto));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WechatSendMessageDto> queryAll(WechatSendMessageQueryCriteria criteria) {
|
||||
return wechatSendMessageMapper.toDto(wechatSendMessageRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, criteria, criteriaBuilder)));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public WechatSendMessageDto findById(Long id) {
|
||||
WechatSendMessage wechatSendMessage = wechatSendMessageRepository.findById(id).orElseGet(WechatSendMessage::new);
|
||||
ValidationUtil.isNull(wechatSendMessage.getId(), "WechatSendMessage", "id", id);
|
||||
return wechatSendMessageMapper.toDto(wechatSendMessage);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public WechatSendMessageDto create(WechatSendMessage resources) {
|
||||
resources.setUserId(SecurityUtils.getCurrentUserId());
|
||||
return wechatSendMessageMapper.toDto(wechatSendMessageRepository.save(resources));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(WechatSendMessage resources) {
|
||||
WechatSendMessage wechatSendMessage = wechatSendMessageRepository.findById
|
||||
(resources.getId()).orElseGet(WechatSendMessage::new);
|
||||
ValidationUtil.isNull(wechatSendMessage.getId(), "WechatSendMessage", "id", resources.getId());
|
||||
wechatSendMessage.copy(resources);
|
||||
|
||||
wechatSendMessageRepository.save(wechatSendMessage);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAll(Long[] ids) {
|
||||
for (Long id : ids) {
|
||||
wechatSendMessageRepository.deleteById(id);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void download(List<WechatSendMessageDto> all, HttpServletResponse response) throws IOException {
|
||||
List<Map<String, Object>> list = new ArrayList<>();
|
||||
for (WechatSendMessageDto wechatSendMessage : all) {
|
||||
Map<String, Object> map = new LinkedHashMap<>();
|
||||
map.put("状态值", wechatSendMessage.getStatus());
|
||||
map.put("用户", wechatSendMessage.getUserId());
|
||||
map.put("发送消息", wechatSendMessage.getGreatMessage());
|
||||
map.put("是否默认", wechatSendMessage.getIsDefault());
|
||||
map.put("创建者", wechatSendMessage.getCreateBy());
|
||||
map.put("更新者", wechatSendMessage.getUpdateBy());
|
||||
map.put("创建日期", wechatSendMessage.getCreateTime());
|
||||
map.put("更新时间", wechatSendMessage.getUpdateTime());
|
||||
list.add(map);
|
||||
}
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<WechatSendMessageDto> querySendMessageByUserId(Long currentUserId) {
|
||||
return wechatSendMessageMapper.toDto(wechatSendMessageRepository.findByUserId(currentUserId));
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void changeStatus(Long id, Integer isDefault) {
|
||||
WechatSendMessage byIsDefault =
|
||||
wechatSendMessageRepository.findByIsDefault(DefaultNumberConstants.ONE_NUMBER);
|
||||
if (byIsDefault != null &&
|
||||
isDefault == DefaultNumberConstants.ZERO_NUMBER &&
|
||||
byIsDefault.getId().equals(id)) {
|
||||
throw new BadRequestException(ResponseCode.TEMPLATE_CHANGE_ERROR.getDesc());
|
||||
}
|
||||
wechatSendMessageRepository.updateDefaultByDefault
|
||||
(DefaultNumberConstants.ZERO_NUMBER, DefaultNumberConstants.ONE_NUMBER);
|
||||
wechatSendMessageRepository.updateDefaultById
|
||||
(DefaultNumberConstants.ONE_NUMBER, id);
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.service.mapstruct;
|
||||
|
||||
import com.baiye.model.base.BaseMapper;
|
||||
import com.baiye.modules.system.domain.AddWeChatFriendRecord;
|
||||
import com.baiye.model.dto.AddWeChatFriendRecordDTO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.ReportingPolicy;
|
||||
|
||||
/**
|
||||
* @author Zheng Jie
|
||||
* @date 2019-03-25
|
||||
*/
|
||||
@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||
public interface AddWeChatFriendRecordMapper extends BaseMapper<AddWeChatFriendRecordDTO, AddWeChatFriendRecord> {
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright 2019-2020 Zheng Jie
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.baiye.modules.system.service.mapstruct;
|
||||
|
||||
import com.baiye.model.base.BaseMapper;
|
||||
import com.baiye.modules.system.domain.WechatSendMessage;
|
||||
import com.baiye.modules.system.service.dto.WechatSendMessageDto;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.ReportingPolicy;
|
||||
|
||||
/**
|
||||
* @website https://el-admin.vip
|
||||
* @author Enzo
|
||||
* @date 2022-07-01
|
||||
**/
|
||||
@Mapper(componentModel = "spring", unmappedTargetPolicy = ReportingPolicy.IGNORE)
|
||||
public interface WechatSendMessageMapper extends BaseMapper<WechatSendMessageDto, WechatSendMessage> {
|
||||
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
package com.baiye.timed;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baiye.constant.DefaultNumberConstants;
|
||||
import com.baiye.modules.system.domain.AddWeChatFriendRecord;
|
||||
import com.baiye.modules.system.domain.User;
|
||||
import com.baiye.modules.system.service.AddWeChatFriendRecordService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date : 2022/7/4
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
public class WeChatAddFriendSync {
|
||||
|
||||
private final AddWeChatFriendRecordService addWeChatFriendRecordService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 过期账号自动设置过期
|
||||
*/
|
||||
// @Scheduled(cron = "0 */5 * * * ?")
|
||||
@Scheduled(cron = "0 0/5 * * * ?")
|
||||
public void checkUserBalance() {
|
||||
List<AddWeChatFriendRecord> addWeChatFriendRecords =
|
||||
addWeChatFriendRecordService.findByStatus(DefaultNumberConstants.ZERO_NUMBER);
|
||||
if (CollUtil.isNotEmpty(addWeChatFriendRecords)) {
|
||||
for (AddWeChatFriendRecord friendRecord : addWeChatFriendRecords) {
|
||||
Boolean aBoolean = addWeChatFriendRecordService.whetherFriends(friendRecord);
|
||||
if (Boolean.TRUE.equals(aBoolean)){
|
||||
friendRecord.setStatus(DefaultNumberConstants.ONE_NUMBER);
|
||||
friendRecord.setAddFriendTime(DateUtil.date());
|
||||
addWeChatFriendRecordService.save(friendRecord);
|
||||
continue;
|
||||
}
|
||||
// 偏移三天
|
||||
DateTime dateTime = DateUtil.offsetDay(DateUtil.date(),
|
||||
DefaultNumberConstants.MINUS_THREE_NUMBER);
|
||||
if (dateTime.after(friendRecord.getAddFriendTime())) {
|
||||
friendRecord.setStatus(DefaultNumberConstants.MINUS_TWO_NUMBER);
|
||||
addWeChatFriendRecordService.save(friendRecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package com.baiye.feign;
|
||||
|
||||
import com.baiye.feign.fallback.OrganizeClientFallback;
|
||||
import com.baiye.model.dto.AddWeChatFriendRecordDTO;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date 2022-7-1
|
||||
* 微信添加好友请求
|
||||
*/
|
||||
|
||||
@FeignClient(value = "ad-platform-management",fallback = OrganizeClientFallback.class)
|
||||
public interface WeChatAddFriendClient {
|
||||
|
||||
String PAY_PREFIX = "/api/addFriendRecord";
|
||||
|
||||
/**
|
||||
* 查询组标签和任务标签
|
||||
* @param clueId
|
||||
* @return
|
||||
*/
|
||||
@GetMapping(PAY_PREFIX + "/findByClueId")
|
||||
ResponseEntity<AddWeChatFriendRecordDTO> findByClueId(@RequestParam("clueId") Long clueId);
|
||||
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package com.baiye.feign.fallback;
|
||||
|
||||
import com.baiye.feign.WeChatAddFriendClient;
|
||||
import com.baiye.model.dto.AddWeChatFriendRecordDTO;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author Enzo
|
||||
* @date 2022-7-1
|
||||
*/
|
||||
@Component
|
||||
public class WeChatAddFriendClientFallback implements WeChatAddFriendClient {
|
||||
|
||||
|
||||
@Override
|
||||
public ResponseEntity<AddWeChatFriendRecordDTO> findByClueId(Long clueId) {
|
||||
return null;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue