添加计粉代码

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.dto.WeChatAddFriendDTO;
import com.baiye.modules.distribute.qo.AccountQo; import com.baiye.modules.distribute.qo.AccountQo;
import com.baiye.modules.distribute.service.WeChatService; 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.AddFriendVo;
import com.baiye.modules.distribute.vo.StatisticsFriendVO;
import com.baiye.modules.distribute.vo.WeChatAccountVO; import com.baiye.modules.distribute.vo.WeChatAccountVO;
import com.baiye.result.R; import com.baiye.result.R;
import com.baiye.security.util.SecurityUtils; import com.baiye.security.util.SecurityUtils;
@ -17,6 +19,8 @@ import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* @author Enzo * @author Enzo
* @date : 2024/3/27 * @date : 2024/3/27
@ -30,6 +34,9 @@ public class WeChatController {
private final WeChatService weChatService; private final WeChatService weChatService;
private final WechatFriendService wechatFriendService;
@GetMapping("/page") @GetMapping("/page")
@Operation(summary = "分页查询账号") @Operation(summary = "分页查询账号")
public R<PageResult<WeChatAccountVO>> getClueRecordPage(@Validated PageParam pageParam, AccountQo qo) { public R<PageResult<WeChatAccountVO>> getClueRecordPage(@Validated PageParam pageParam, AccountQo qo) {
@ -64,10 +71,9 @@ public class WeChatController {
} }
@GetMapping("/create/equipment") @GetMapping("/create/equipment")
@Operation(summary = "创建设备") @Operation(summary = "创建设备")
public R<String> createEquipment(Integer num,Integer packageType) { public R<String> createEquipment(Integer num, Integer packageType) {
return Boolean.TRUE.equals(weChatService.createEquipment(num, packageType, SecurityUtils.getCurrentUserId())) ? R.ok() : R.failed("创建设备失败"); return Boolean.TRUE.equals(weChatService.createEquipment(num, packageType, SecurityUtils.getCurrentUserId())) ? R.ok() : R.failed("创建设备失败");
} }
@ -75,9 +81,15 @@ public class WeChatController {
@GetMapping("/friend/page") @GetMapping("/friend/page")
@Operation(summary = "添加好友记录") @Operation(summary = "添加好友记录")
public R<PageResult<AddFriendVo>> getData(@Validated PageParam pageParam, AccountQo qo) { 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 = "头像") @Schema(title = "头像")
private String bigHeadImgUrl; private String bigHeadImgUrl;
@Schema(title = "userId")
private Long userId;
} }

@ -1,8 +1,13 @@
package com.baiye.modules.distribute.mapper; package com.baiye.modules.distribute.mapper;
import cn.hutool.core.date.DateTime;
import com.baiye.extend.mybatis.plus.mapper.ExtendMapper; import com.baiye.extend.mybatis.plus.mapper.ExtendMapper;
import com.baiye.modules.distribute.entity.WeChatFriedRecord; 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.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* @author Enzo * @author Enzo
@ -11,5 +16,13 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface WeChatFriendMapper extends ExtendMapper<WeChatFriedRecord> { 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.entity.WeChatAccount;
import com.baiye.modules.distribute.qo.AccountQo; import com.baiye.modules.distribute.qo.AccountQo;
import com.baiye.modules.distribute.vo.AddFriendVo; 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.WeChatAccountVO;
/** /**
@ -82,7 +83,7 @@ public interface WeChatService extends ExtendService<WeChatAccount> {
* @param qo * @param qo
* @return * @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 * @return
*/ */
Boolean equipmentRenewal(Integer robotId, Integer payType); 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.extend.mybatis.plus.service.ExtendService;
import com.baiye.modules.distribute.dto.WeChatFriendDTO; import com.baiye.modules.distribute.dto.WeChatFriendDTO;
import com.baiye.modules.distribute.entity.WeChatFriedRecord; import com.baiye.modules.distribute.entity.WeChatFriedRecord;
import com.baiye.modules.distribute.vo.StatisticsFriendVO;
import java.util.List;
/** /**
* @author Enzo * @author Enzo
@ -12,7 +15,16 @@ public interface WechatFriendService extends ExtendService<WeChatFriedRecord> {
/** /**
* *
*
* @param weChatFriendDTO * @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; package com.baiye.modules.distribute.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil; 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.qo.AccountQo;
import com.baiye.modules.distribute.service.LoginEquipmentService; import com.baiye.modules.distribute.service.LoginEquipmentService;
import com.baiye.modules.distribute.service.WeChatService; 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.AddFriendVo;
import com.baiye.modules.distribute.vo.StatisticsFriendVO;
import com.baiye.modules.distribute.vo.WeChatAccountVO; import com.baiye.modules.distribute.vo.WeChatAccountVO;
import com.baiye.modules.distribute.vo.WeChatAddFriendVo; import com.baiye.modules.distribute.vo.WeChatAddFriendVo;
import com.baiye.result.WeChatResponse; import com.baiye.result.WeChatResponse;
@ -55,8 +56,11 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
private final WeChatProperties weChatProperties; private final WeChatProperties weChatProperties;
private final WechatFriendService wechatFriendService;
private final LoginEquipmentService loginEquipmentService; private final LoginEquipmentService loginEquipmentService;
@Override @Override
public String createQrCode(CreateCodeDTO createCodeDTO) { public String createQrCode(CreateCodeDTO createCodeDTO) {
Map<String, Object> beanToMap = BeanUtil.beanToMap(createCodeDTO); Map<String, Object> beanToMap = BeanUtil.beanToMap(createCodeDTO);
@ -167,7 +171,7 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
@Override @Override
public PageResult<AddFriendVo> queryDateData(PageParam pageParam, AccountQo qo) { public PageResult<AddFriendVo> queryFirendData(PageParam pageParam, AccountQo qo) {
qo.setUserId(SecurityUtils.getCurrentUserId()); qo.setUserId(SecurityUtils.getCurrentUserId());
List<AddFriendVo> addFriendVos = Lists.newArrayList(); List<AddFriendVo> addFriendVos = Lists.newArrayList();
PageResult<WeChatAccountVO> accountVo = baseMapper.queryPage(pageParam, qo); PageResult<WeChatAccountVO> accountVo = baseMapper.queryPage(pageParam, qo);
@ -179,13 +183,13 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
loginEquipmentService.queryByDate(DefaultNumberConstants.MINUS_FIFTEEN_NUMBER, vo.getWxId()); loginEquipmentService.queryByDate(DefaultNumberConstants.MINUS_FIFTEEN_NUMBER, vo.getWxId());
// 转为map // 转为map
Map<String, List<WeChatAddFriendVo>> map = weChatAddFriendVos.stream().collect Map<String, List<WeChatAddFriendVo>> map = weChatAddFriendVos.stream().collect
(Collectors.groupingBy(WeChatAddFriendVo::getDayStr)); (Collectors.groupingBy(WeChatAddFriendVo::getDayStr));
Integer newFriendsInitiativeNum = DefaultNumberConstants.ZERO_NUMBER; Integer newFriendsInitiativeNum = DefaultNumberConstants.ZERO_NUMBER;
Integer newPassiveNum = DefaultNumberConstants.ZERO_NUMBER; Integer newPassiveNum = DefaultNumberConstants.ZERO_NUMBER;
List<AddFriendVo.FriendDTO> newArrayList = Lists.newArrayList(); List<AddFriendVo.FriendDTO> newArrayList = Lists.newArrayList();
for (int i = 0; i < DefaultNumberConstants.FIFTEEN_NUMBER; i++) { 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(); AddFriendVo.FriendDTO dto = new AddFriendVo.FriendDTO();
dto.setDayStr(dateTime); dto.setDayStr(dateTime);
if (map.containsKey(dateTime)) { if (map.containsKey(dateTime)) {
@ -232,4 +236,10 @@ public class WeChatServiceImpl extends ExtendServiceImpl<WeChatAccountMapper, We
return Boolean.FALSE; return Boolean.FALSE;
} }
@Override
public WeChatAccount findByWxId(String robotWxId) {
return baseMapper.findByWxId(robotWxId);
}
} }

@ -1,11 +1,13 @@
package com.baiye.modules.distribute.service.impl; package com.baiye.modules.distribute.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baiye.constant.DefaultNumberConstants; import com.baiye.constant.DefaultNumberConstants;
import com.baiye.constant.WechatCallbackConstant; import com.baiye.constant.WechatCallbackConstant;
import com.baiye.modules.distribute.dto.WeChatFriendDTO; import com.baiye.modules.distribute.dto.WeChatFriendDTO;
import com.baiye.modules.distribute.dto.WeChatUserLoginDTO; import com.baiye.modules.distribute.dto.WeChatUserLoginDTO;
import com.baiye.modules.distribute.entity.LoginEquipment; 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.LoginEquipmentService;
import com.baiye.modules.distribute.service.WeChatService; import com.baiye.modules.distribute.service.WeChatService;
import com.baiye.modules.distribute.service.WechatCallbackService; import com.baiye.modules.distribute.service.WechatCallbackService;
@ -62,7 +64,11 @@ public class WechatCallbackServiceImpl implements WechatCallbackService {
private void viaFriendRequest(WeChatResponse weChatResponse) { private void viaFriendRequest(WeChatResponse weChatResponse) {
WeChatFriendDTO weChatFriendDTO = WeChatFriendDTO weChatFriendDTO =
JSONUtil.toBean(JSONUtil.toJsonStr(weChatResponse.getData()), WeChatFriendDTO.class); 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) { 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.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; 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.service.impl.ExtendServiceImpl;
import com.baiye.extend.mybatis.plus.toolkit.WrappersX; import com.baiye.extend.mybatis.plus.toolkit.WrappersX;
import com.baiye.modules.distribute.dto.WeChatFriendDTO; import com.baiye.modules.distribute.dto.WeChatFriendDTO;
import com.baiye.modules.distribute.entity.WeChatFriedRecord; import com.baiye.modules.distribute.entity.WeChatFriedRecord;
import com.baiye.modules.distribute.mapper.WeChatFriendMapper; import com.baiye.modules.distribute.mapper.WeChatFriendMapper;
import com.baiye.modules.distribute.service.WechatFriendService; 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.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -21,18 +28,33 @@ import java.util.List;
@Slf4j @Slf4j
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class WechatFriendServiceImpl extends ExtendServiceImpl<WeChatFriendMapper, WeChatFriedRecord> implements WechatFriendService { public class WechatFriendServiceImpl extends ExtendServiceImpl
<WeChatFriendMapper, WeChatFriedRecord> implements WechatFriendService {
@Override @Override
public void addFriendByResponse(WeChatFriendDTO weChatFriendDTO) { public void addFriendByResponse(WeChatFriendDTO weChatFriendDTO, Long userId) {
List<WeChatFriedRecord> weChatFriedRecords = List<WeChatFriedRecord> weChatFriedRecords =
this.baseMapper.selectList(WrappersX.lambdaQueryX(WeChatFriedRecord.class).eq this.baseMapper.selectList(WrappersX.lambdaQueryX(WeChatFriedRecord.class).eq
(WeChatFriedRecord::getRobotWxId, weChatFriendDTO.getRobotWxId()).eq(WeChatFriedRecord::getAlias, weChatFriendDTO.getAlias())); (WeChatFriedRecord::getRobotWxId, weChatFriendDTO.getRobotWxId()).eq(WeChatFriedRecord::getAlias, weChatFriendDTO.getAlias()));
if (CollUtil.isEmpty(weChatFriedRecords)) { if (CollUtil.isEmpty(weChatFriedRecords)) {
WeChatFriedRecord weChatFriedRecord = new WeChatFriedRecord(); WeChatFriedRecord weChatFriedRecord = new WeChatFriedRecord();
BeanUtil.copyProperties(weChatFriendDTO,weChatFriedRecord); BeanUtil.copyProperties(weChatFriendDTO, weChatFriedRecord);
weChatFriedRecord.setUserId(userId);
this.baseMapper.insert(weChatFriedRecord); 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; package com.baiye.modules.distribute.vo;
import cn.hutool.core.date.DatePattern; 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 com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; 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>
<select id="queryByDate" resultType="com.baiye.modules.distribute.vo.WeChatAddFriendVo"> <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 , count(1) as num
, add_friend_type , add_friend_type
FROM tb_wechat_friend 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