diff --git a/admin/src/main/java/com/baiye/modules/distribute/controller/WeChatController.java b/admin/src/main/java/com/baiye/modules/distribute/controller/WeChatController.java index 7ee676a..edd9f5d 100644 --- a/admin/src/main/java/com/baiye/modules/distribute/controller/WeChatController.java +++ b/admin/src/main/java/com/baiye/modules/distribute/controller/WeChatController.java @@ -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> getClueRecordPage(@Validated PageParam pageParam, AccountQo qo) { @@ -64,10 +71,9 @@ public class WeChatController { } - @GetMapping("/create/equipment") @Operation(summary = "创建设备") - public R createEquipment(Integer num,Integer packageType) { + public R createEquipment(Integer num, Integer packageType) { return Boolean.TRUE.equals(weChatService.createEquipment(num, packageType, SecurityUtils.getCurrentUserId())) ? R.ok() : R.failed("创建设备失败"); } @@ -75,9 +81,15 @@ public class WeChatController { @GetMapping("/friend/page") @Operation(summary = "添加好友记录") public R> 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> getDateBy(Integer queryType) { + return R.ok(wechatFriendService.statisticsFriendByType(queryType)); + } + } diff --git a/admin/src/main/java/com/baiye/modules/distribute/entity/WeChatFriedRecord.java b/admin/src/main/java/com/baiye/modules/distribute/entity/WeChatFriedRecord.java index 16cef80..593b39c 100644 --- a/admin/src/main/java/com/baiye/modules/distribute/entity/WeChatFriedRecord.java +++ b/admin/src/main/java/com/baiye/modules/distribute/entity/WeChatFriedRecord.java @@ -49,5 +49,8 @@ public class WeChatFriedRecord implements Serializable { @Schema(title = "头像") private String bigHeadImgUrl; + @Schema(title = "userId") + private Long userId; + } diff --git a/admin/src/main/java/com/baiye/modules/distribute/mapper/WeChatFriendMapper.java b/admin/src/main/java/com/baiye/modules/distribute/mapper/WeChatFriendMapper.java index a40086e..1b64b76 100644 --- a/admin/src/main/java/com/baiye/modules/distribute/mapper/WeChatFriendMapper.java +++ b/admin/src/main/java/com/baiye/modules/distribute/mapper/WeChatFriendMapper.java @@ -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 { - + /** + * 时间类型查询 + * + * @param beginOfDay + * @param now + * @param currentUserId + * @return + */ + List queryByDate(@Param("startTime") DateTime beginOfDay, @Param("endTime") DateTime now, @Param("userId") Long currentUserId); } diff --git a/admin/src/main/java/com/baiye/modules/distribute/service/WeChatService.java b/admin/src/main/java/com/baiye/modules/distribute/service/WeChatService.java index 13707d4..1eb81f9 100644 --- a/admin/src/main/java/com/baiye/modules/distribute/service/WeChatService.java +++ b/admin/src/main/java/com/baiye/modules/distribute/service/WeChatService.java @@ -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 { * @param qo * @return */ - PageResult queryDateData(PageParam pageParam, AccountQo qo); + PageResult queryFirendData(PageParam pageParam, AccountQo qo); /** * @@ -92,4 +93,12 @@ public interface WeChatService extends ExtendService { * @return */ Boolean equipmentRenewal(Integer robotId, Integer payType); + + + /** + * 微信ID查询 + * @param robotWxId + * @return + */ + WeChatAccount findByWxId(String robotWxId); } diff --git a/admin/src/main/java/com/baiye/modules/distribute/service/WechatFriendService.java b/admin/src/main/java/com/baiye/modules/distribute/service/WechatFriendService.java index 7669aef..40d5a28 100644 --- a/admin/src/main/java/com/baiye/modules/distribute/service/WechatFriendService.java +++ b/admin/src/main/java/com/baiye/modules/distribute/service/WechatFriendService.java @@ -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 { /** * 添加好友 + * * @param weChatFriendDTO + * @param userId + */ + void addFriendByResponse(WeChatFriendDTO weChatFriendDTO, Long userId); + + /** + * 根据类型查询数据 + * @param queryType + * @return */ - void addFriendByResponse(WeChatFriendDTO weChatFriendDTO); + List statisticsFriendByType(Integer queryType); } diff --git a/admin/src/main/java/com/baiye/modules/distribute/service/impl/WeChatServiceImpl.java b/admin/src/main/java/com/baiye/modules/distribute/service/impl/WeChatServiceImpl.java index 7899ed9..026d08f 100644 --- a/admin/src/main/java/com/baiye/modules/distribute/service/impl/WeChatServiceImpl.java +++ b/admin/src/main/java/com/baiye/modules/distribute/service/impl/WeChatServiceImpl.java @@ -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 beanToMap = BeanUtil.beanToMap(createCodeDTO); @@ -167,7 +171,7 @@ public class WeChatServiceImpl extends ExtendServiceImpl queryDateData(PageParam pageParam, AccountQo qo) { + public PageResult queryFirendData(PageParam pageParam, AccountQo qo) { qo.setUserId(SecurityUtils.getCurrentUserId()); List addFriendVos = Lists.newArrayList(); PageResult accountVo = baseMapper.queryPage(pageParam, qo); @@ -179,13 +183,13 @@ public class WeChatServiceImpl extends ExtendServiceImpl> map = weChatAddFriendVos.stream().collect - (Collectors.groupingBy(WeChatAddFriendVo::getDayStr)); + (Collectors.groupingBy(WeChatAddFriendVo::getDayStr)); Integer newFriendsInitiativeNum = DefaultNumberConstants.ZERO_NUMBER; Integer newPassiveNum = DefaultNumberConstants.ZERO_NUMBER; List 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 implements WechatFriendService { +public class WechatFriendServiceImpl extends ExtendServiceImpl + implements WechatFriendService { @Override - public void addFriendByResponse(WeChatFriendDTO weChatFriendDTO) { + public void addFriendByResponse(WeChatFriendDTO weChatFriendDTO, Long userId) { List 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); + BeanUtil.copyProperties(weChatFriendDTO, weChatFriedRecord); + weChatFriedRecord.setUserId(userId); + this.baseMapper.insert(weChatFriedRecord); } } + + @Override + public List 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(); + } + } diff --git a/admin/src/main/java/com/baiye/modules/distribute/vo/PayOrderVO.java b/admin/src/main/java/com/baiye/modules/distribute/vo/PayOrderVO.java index 1bf9624..1e3c359 100644 --- a/admin/src/main/java/com/baiye/modules/distribute/vo/PayOrderVO.java +++ b/admin/src/main/java/com/baiye/modules/distribute/vo/PayOrderVO.java @@ -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; diff --git a/admin/src/main/java/com/baiye/modules/distribute/vo/StatisticsFriendVO.java b/admin/src/main/java/com/baiye/modules/distribute/vo/StatisticsFriendVO.java new file mode 100644 index 0000000..9aa058a --- /dev/null +++ b/admin/src/main/java/com/baiye/modules/distribute/vo/StatisticsFriendVO.java @@ -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; +} diff --git a/admin/src/main/resources/mapper/LoginEquipmentMapper.xml b/admin/src/main/resources/mapper/LoginEquipmentMapper.xml index eb795b9..f7082e8 100644 --- a/admin/src/main/resources/mapper/LoginEquipmentMapper.xml +++ b/admin/src/main/resources/mapper/LoginEquipmentMapper.xml @@ -41,7 +41,7 @@ + + SELECT + add_friend_type, + COUNT( 1 ) AS count + FROM + `tb_wechat_friend` + WHERE + `create_time` > #{startTime} AND `create_time` < #{endTime} and user_id = #{userId} + GROUP BY + add_friend_type + + diff --git a/marketing-platform-common/common-core/src/main/java/com/baiye/enums/StatisticsEnum.java b/marketing-platform-common/common-core/src/main/java/com/baiye/enums/StatisticsEnum.java new file mode 100644 index 0000000..fbef78d --- /dev/null +++ b/marketing-platform-common/common-core/src/main/java/com/baiye/enums/StatisticsEnum.java @@ -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; + } + +}