添加计粉代码

master
bynt 6 months ago
parent ba821a8372
commit c4f5f0462f

@ -7,7 +7,9 @@ import com.baiye.modules.distribute.dto.PushCodeDTO;
import com.baiye.modules.distribute.dto.WeChatAddFriendDTO;
import com.baiye.modules.distribute.qo.AccountQo;
import com.baiye.modules.distribute.service.WeChatService;
import com.baiye.modules.distribute.service.WechatFriendService;
import com.baiye.modules.distribute.vo.AddFriendVo;
import com.baiye.modules.distribute.vo.StatisticsFriendVO;
import com.baiye.modules.distribute.vo.WeChatAccountVO;
import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils;
@ -17,6 +19,8 @@ import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @author Enzo
* @date : 2024/3/27
@ -30,6 +34,9 @@ public class WeChatController {
private final WeChatService weChatService;
private final WechatFriendService wechatFriendService;
@GetMapping("/page")
@Operation(summary = "分页查询账号")
public R<PageResult<WeChatAccountVO>> getClueRecordPage(@Validated PageParam pageParam, AccountQo qo) {
@ -64,7 +71,6 @@ public class WeChatController {
}
@GetMapping("/create/equipment")
@Operation(summary = "创建设备")
public R<String> createEquipment(Integer num, Integer packageType) {
@ -75,9 +81,15 @@ public class WeChatController {
@GetMapping("/friend/page")
@Operation(summary = "添加好友记录")
public R<PageResult<AddFriendVo>> getData(@Validated PageParam pageParam, AccountQo qo) {
return R.ok(weChatService.queryDateData(pageParam, qo));
return R.ok(weChatService.queryFirendData(pageParam, qo));
}
@GetMapping("/query/friend")
@Operation(summary = "天统计粉丝记录")
public R<List<StatisticsFriendVO>> getDateBy(Integer queryType) {
return R.ok(wechatFriendService.statisticsFriendByType(queryType));
}
}

@ -49,5 +49,8 @@ public class WeChatFriedRecord implements Serializable {
@Schema(title = "头像")
private String bigHeadImgUrl;
@Schema(title = "userId")
private Long userId;
}

@ -1,8 +1,13 @@
package com.baiye.modules.distribute.mapper;
import cn.hutool.core.date.DateTime;
import com.baiye.extend.mybatis.plus.mapper.ExtendMapper;
import com.baiye.modules.distribute.entity.WeChatFriedRecord;
import com.baiye.modules.distribute.vo.StatisticsFriendVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Enzo
@ -11,5 +16,13 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface WeChatFriendMapper extends ExtendMapper<WeChatFriedRecord> {
/**
*
*
* @param beginOfDay
* @param now
* @param currentUserId
* @return
*/
List<StatisticsFriendVO> queryByDate(@Param("startTime") DateTime beginOfDay, @Param("endTime") DateTime now, @Param("userId") Long currentUserId);
}

@ -10,6 +10,7 @@ import com.baiye.modules.distribute.dto.WeChatUserLoginDTO;
import com.baiye.modules.distribute.entity.WeChatAccount;
import com.baiye.modules.distribute.qo.AccountQo;
import com.baiye.modules.distribute.vo.AddFriendVo;
import com.baiye.modules.distribute.vo.StatisticsFriendVO;
import com.baiye.modules.distribute.vo.WeChatAccountVO;
/**
@ -82,7 +83,7 @@ public interface WeChatService extends ExtendService<WeChatAccount> {
* @param qo
* @return
*/
PageResult<AddFriendVo> queryDateData(PageParam pageParam, AccountQo qo);
PageResult<AddFriendVo> queryFirendData(PageParam pageParam, AccountQo qo);
/**
*
@ -92,4 +93,12 @@ public interface WeChatService extends ExtendService<WeChatAccount> {
* @return
*/
Boolean equipmentRenewal(Integer robotId, Integer payType);
/**
* ID
* @param robotWxId
* @return
*/
WeChatAccount findByWxId(String robotWxId);
}

@ -3,6 +3,9 @@ package com.baiye.modules.distribute.service;
import com.baiye.extend.mybatis.plus.service.ExtendService;
import com.baiye.modules.distribute.dto.WeChatFriendDTO;
import com.baiye.modules.distribute.entity.WeChatFriedRecord;
import com.baiye.modules.distribute.vo.StatisticsFriendVO;
import java.util.List;
/**
* @author Enzo
@ -12,7 +15,16 @@ public interface WechatFriendService extends ExtendService<WeChatFriedRecord> {
/**
*
*
* @param weChatFriendDTO
* @param userId
*/
void addFriendByResponse(WeChatFriendDTO weChatFriendDTO, Long userId);
/**
*
* @param queryType
* @return
*/
void addFriendByResponse(WeChatFriendDTO weChatFriendDTO);
List<StatisticsFriendVO> statisticsFriendByType(Integer queryType);
}

@ -1,7 +1,6 @@
package com.baiye.modules.distribute.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
@ -26,7 +25,9 @@ import com.baiye.modules.distribute.mapper.WeChatAccountMapper;
import com.baiye.modules.distribute.qo.AccountQo;
import com.baiye.modules.distribute.service.LoginEquipmentService;
import com.baiye.modules.distribute.service.WeChatService;
import com.baiye.modules.distribute.service.WechatFriendService;
import com.baiye.modules.distribute.vo.AddFriendVo;
import com.baiye.modules.distribute.vo.StatisticsFriendVO;
import com.baiye.modules.distribute.vo.WeChatAccountVO;
import com.baiye.modules.distribute.vo.WeChatAddFriendVo;
import com.baiye.result.WeChatResponse;
@ -55,8 +56,11 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
private final WeChatProperties weChatProperties;
private final WechatFriendService wechatFriendService;
private final LoginEquipmentService loginEquipmentService;
@Override
public String createQrCode(CreateCodeDTO createCodeDTO) {
Map<String, Object> beanToMap = BeanUtil.beanToMap(createCodeDTO);
@ -167,7 +171,7 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
@Override
public PageResult<AddFriendVo> queryDateData(PageParam pageParam, AccountQo qo) {
public PageResult<AddFriendVo> queryFirendData(PageParam pageParam, AccountQo qo) {
qo.setUserId(SecurityUtils.getCurrentUserId());
List<AddFriendVo> addFriendVos = Lists.newArrayList();
PageResult<WeChatAccountVO> accountVo = baseMapper.queryPage(pageParam, qo);
@ -185,7 +189,7 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
List<AddFriendVo.FriendDTO> newArrayList = Lists.newArrayList();
for (int i = 0; i < DefaultNumberConstants.FIFTEEN_NUMBER; i++) {
// 时间格式
String dateTime = DateUtil.format(DateUtil.offsetDay(DateUtil.date(), -i), DatePattern.NORM_DATE_PATTERN);
String dateTime = DateUtil.format(DateUtil.offsetDay(DateUtil.date(), -i), "MM-dd");
AddFriendVo.FriendDTO dto = new AddFriendVo.FriendDTO();
dto.setDayStr(dateTime);
if (map.containsKey(dateTime)) {
@ -232,4 +236,10 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
return Boolean.FALSE;
}
@Override
public WeChatAccount findByWxId(String robotWxId) {
return baseMapper.findByWxId(robotWxId);
}
}

@ -1,11 +1,13 @@
package com.baiye.modules.distribute.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.constant.WechatCallbackConstant;
import com.baiye.modules.distribute.dto.WeChatFriendDTO;
import com.baiye.modules.distribute.dto.WeChatUserLoginDTO;
import com.baiye.modules.distribute.entity.LoginEquipment;
import com.baiye.modules.distribute.entity.WeChatAccount;
import com.baiye.modules.distribute.service.LoginEquipmentService;
import com.baiye.modules.distribute.service.WeChatService;
import com.baiye.modules.distribute.service.WechatCallbackService;
@ -62,7 +64,11 @@ public class WechatCallbackServiceImpl implements WechatCallbackService {
private void viaFriendRequest(WeChatResponse weChatResponse) {
WeChatFriendDTO weChatFriendDTO =
JSONUtil.toBean(JSONUtil.toJsonStr(weChatResponse.getData()), WeChatFriendDTO.class);
wechatFriendService.addFriendByResponse(weChatFriendDTO);
WeChatAccount byWxId = weChatService.findByWxId(weChatFriendDTO.getRobotWxId());
if (ObjectUtil.isNotNull(byWxId) && ObjectUtil.isNotNull(byWxId.getId())) {
wechatFriendService.addFriendByResponse(weChatFriendDTO, byWxId.getUserId());
}
}
public void wechatLogin(WeChatResponse weChatResponse) {

@ -2,12 +2,19 @@ package com.baiye.modules.distribute.service.impl;
import cn.hutool.core.bean.BeanUtil;
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.enums.StatisticsEnum;
import com.baiye.extend.mybatis.plus.service.impl.ExtendServiceImpl;
import com.baiye.extend.mybatis.plus.toolkit.WrappersX;
import com.baiye.modules.distribute.dto.WeChatFriendDTO;
import com.baiye.modules.distribute.entity.WeChatFriedRecord;
import com.baiye.modules.distribute.mapper.WeChatFriendMapper;
import com.baiye.modules.distribute.service.WechatFriendService;
import com.baiye.modules.distribute.vo.StatisticsFriendVO;
import com.baiye.security.util.SecurityUtils;
import com.google.common.collect.Lists;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@ -21,18 +28,33 @@ import java.util.List;
@Slf4j
@Service
@RequiredArgsConstructor
public class WechatFriendServiceImpl extends ExtendServiceImpl<WeChatFriendMapper, WeChatFriedRecord> implements WechatFriendService {
public class WechatFriendServiceImpl extends ExtendServiceImpl
<WeChatFriendMapper, WeChatFriedRecord> implements WechatFriendService {
@Override
public void addFriendByResponse(WeChatFriendDTO weChatFriendDTO) {
public void addFriendByResponse(WeChatFriendDTO weChatFriendDTO, Long userId) {
List<WeChatFriedRecord> weChatFriedRecords =
this.baseMapper.selectList(WrappersX.lambdaQueryX(WeChatFriedRecord.class).eq
(WeChatFriedRecord::getRobotWxId, weChatFriendDTO.getRobotWxId()).eq(WeChatFriedRecord::getAlias, weChatFriendDTO.getAlias()));
if (CollUtil.isEmpty(weChatFriedRecords)) {
WeChatFriedRecord weChatFriedRecord = new WeChatFriedRecord();
BeanUtil.copyProperties(weChatFriendDTO, weChatFriedRecord);
weChatFriedRecord.setUserId(userId);
this.baseMapper.insert(weChatFriedRecord);
}
}
@Override
public List<StatisticsFriendVO> statisticsFriendByType(Integer queryType) {
Integer num = StatisticsEnum.find(queryType);
if (num > DefaultNumberConstants.ZERO_NUMBER) {
DateTime now = DateUtil.date();
DateTime beginOfDay = DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.date(), -num));
return baseMapper.queryByDate(beginOfDay, now, SecurityUtils.getCurrentUserId());
}
return Lists.newArrayList();
}
}

@ -1,8 +1,6 @@
package com.baiye.modules.distribute.vo;
import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

@ -0,0 +1,16 @@
package com.baiye.modules.distribute.vo;
import lombok.Data;
/**
* @author Enzo
* @date : 2024/4/3
*/
@Data
public class StatisticsFriendVO {
private Integer addFriendType;
private Integer count;
}

@ -41,7 +41,7 @@
</select>
<select id="queryByDate" resultType="com.baiye.modules.distribute.vo.WeChatAddFriendVo">
SELECT DATE_FORMAT(create_time, '%Y-%m-%d') dayStr
SELECT DATE_FORMAT(create_time, '%m-%d') dayStr
, count(1) as num
, add_friend_type
FROM tb_wechat_friend

@ -0,0 +1,17 @@
<?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.baiye.modules.distribute.mapper.WeChatFriendMapper">
<select id="queryByDate" resultType="com.baiye.modules.distribute.vo.StatisticsFriendVO">
SELECT
add_friend_type,
COUNT( 1 ) AS count
FROM
`tb_wechat_friend`
WHERE
`create_time` &gt; #{startTime} AND `create_time` &lt; #{endTime} and user_id = #{userId}
GROUP BY
add_friend_type
</select>
</mapper>

@ -0,0 +1,48 @@
package com.baiye.enums;
import com.baiye.constant.DefaultNumberConstants;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Objects;
/**
* @author Enzo
* @date : 2024/4/3
*/
@Getter
@AllArgsConstructor
public enum StatisticsEnum {
/**
*
*/
TODAY(1, 0),
/**
*
*/
SEVEN_DAYS(2, 7),
/**
*
*/
THIRTY_DAYS(30, 2);
private final Integer type;
private final Integer num;
public static Integer find(Integer val) {
for (StatisticsEnum salesManEnum : StatisticsEnum.values()) {
if (Objects.equals(salesManEnum.getType(), val)) {
return salesManEnum.getNum();
}
}
return DefaultNumberConstants.MINUS_ONE_NUMBER;
}
}
Loading…
Cancel
Save