This commit is contained in:
PQZ 2025-04-07 16:59:03 +08:00
commit f838aace1e
11 changed files with 196 additions and 16 deletions

View File

@ -231,4 +231,25 @@ public class BusiNoticeController extends BaseController
IPage<BusiNoticeVo> list = busiNoticeService.subscribeList(query,page);
return success(list);
}
/**
* 小程序端查询关注通告列表
* @author zcy
* @date 15:39 2025/3/29
* @param query 查询条件
* @param pageNum 1
* @param pageSize 10
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@GetMapping("/loveList")
public AjaxResult loveList(AppNoticeQuery query,
@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize)
{
Page<BusiNotice> page = new Page<>(pageNum, pageSize);
IPage<BusiNoticeVo> list = busiNoticeService.loveList(query,page);
return success(list);
}
}

View File

@ -60,6 +60,14 @@ public interface BusiNoticeMapper extends BaseMapper<BusiNotice> {
**/
IPage<BusiNoticeVo> subscribeList(@Param("entity") SubscribeDataObj subscribeDataObj, Page<BusiNotice> page);
/**
* 小程序端查询关注通告列表
* @author zcy
* @date 15:39 2025/3/29
* @param query 查询条件
* @return com.ruoyi.common.core.domain.AjaxResult
**/
IPage<BusiNoticeVo> loveList(@Param("entity") AppNoticeQuery query, Page<BusiNotice> page);
/**
* 小程序端查询通告详细信息

View File

@ -84,4 +84,8 @@ public interface IBusiNoticeService extends IService<BusiNotice>
IPage<BusiNoticeVo> subscribeList(AppNoticeQuery query, Page<BusiNotice> page);
IPage<BusiNoticeVo> loveList(AppNoticeQuery query, Page<BusiNotice> page);
}

View File

@ -344,6 +344,23 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
if(null!=subscribe){
//如果使用订阅 则获取 订阅规则进行查询
SubscribeDataObj subscribeDataObj = JSONObject.parseObject(subscribe.getJsonObj(), SubscribeDataObj.class);
if (subscribeDataObj.getPlatformCode().contains("-1")){
subscribeDataObj.setPlatformCode(null);
}
if (subscribeDataObj.getBloggerTypeCode().contains("-1")){
subscribeDataObj.setBloggerTypeCode(null);
}
if (subscribeDataObj.getSettleTypeCode().contains("-1")){
subscribeDataObj.setSettleTypeCode(null);
}
if(!subscribeDataObj.getFansLimit()){
subscribeDataObj.setFansDown(null);
subscribeDataObj.setFansUp(null);
}
if(!subscribeDataObj.getFeeLimit()){
subscribeDataObj.setFeeDown(null);
subscribeDataObj.setFeeUp(null);
}
return baseMapper.subscribeList(subscribeDataObj,page);
}else {
//未设置订阅则使用常规查询
@ -351,6 +368,20 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
}
}
/**
* 小程序端关注订阅通告列表
* @author zcy
* @date 15:39 2025/3/29
* @param query 查询条件
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@Override
public IPage<BusiNoticeVo> loveList(AppNoticeQuery query, Page<BusiNotice> page) {
//获取当前登录用户
Long userId = SecurityUtils.getUserId();
query.setUserId(userId);
return baseMapper.loveList(query,page);
}
}

View File

@ -10,8 +10,8 @@ public class SubscribeDataObj {
private List<String> bloggerTypeCode;
//平台
private List<String> platformCode;
//通告类型
private List<String> noticeTypeCode;
//结算方式类型
private String settleTypeCode;
//关键词
private List<String> keywordsList;
//奖励类型

View File

@ -1,5 +1,6 @@
package com.ruoyi.member.controller;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.Log;
@ -8,7 +9,9 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.member.domain.MemberBusiCard;
import com.ruoyi.member.query.MemberBusiCardQuery;
import com.ruoyi.member.service.IMemberBusiCardService;
import com.ruoyi.member.vo.MemberBusiCardVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -118,4 +121,16 @@ public class MemberBusiCardController extends BaseController {
memberBusiCardService.removeById(id);
return success();
}
/**
* 查询博主名片符合信息
* @author zcy
* &#064;date 21:47 2025/3/21
**/
@GetMapping("/getSignCard")
public AjaxResult getSignCard(MemberBusiCardQuery query) {
JSONObject res = memberBusiCardService.getSignCard(query);
return success(res);
}
}

View File

@ -0,0 +1,9 @@
package com.ruoyi.member.query;
import lombok.Data;
@Data
public class MemberBusiCardQuery {
//通告id
private String noticeId;
}

View File

@ -1,9 +1,11 @@
package com.ruoyi.member.service;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.member.domain.MemberBusiCard;
import com.ruoyi.member.query.MemberBusiCardQuery;
import com.ruoyi.member.vo.MemberBusiCardVO;
import java.util.List;
@ -64,4 +66,9 @@ public interface IMemberBusiCardService extends IService<MemberBusiCard> {
* @date 13:44 2025/4/3
**/
void saveBusiCard(MemberBusiCard memberBusiCard);
JSONObject getSignCard(MemberBusiCardQuery req);
}

View File

@ -1,25 +1,32 @@
package com.ruoyi.member.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.base.domain.BaseCategory;
import com.ruoyi.base.service.IBaseCategoryService;
import com.ruoyi.busi.domain.BusiNotice;
import com.ruoyi.busi.service.IBusiNoticeService;
import com.ruoyi.common.core.domain.DlBaseEntity;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.member.domain.MemberBusiCard;
import com.ruoyi.member.mapper.MemberBusiCardMapper;
import com.ruoyi.member.query.MemberBusiCardQuery;
import com.ruoyi.member.service.IMemberBusiCardService;
import com.ruoyi.member.vo.MemberBusiCardVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* 博主名片Service业务层处理
@ -33,6 +40,8 @@ public class MemberBusiCardServiceImpl extends ServiceImpl<MemberBusiCardMapper,
private MemberBusiCardMapper memberBusiCardMapper;
@Resource
private IBaseCategoryService categoryService;
@Resource
private IBusiNoticeService noticeService;
/**
* 分页查询博主名片信息
@ -123,6 +132,43 @@ public class MemberBusiCardServiceImpl extends ServiceImpl<MemberBusiCardMapper,
memberBusiCard.setApprovalStatus("0");
saveOrUpdate(memberBusiCard);
}
/**
* 查询博主名片符合信息
* @author zcy
* &#064;date 21:47 2025/3/21
**/
@Override
public JSONObject getSignCard(MemberBusiCardQuery req) {
JSONObject res = new JSONObject();
List<MemberBusiCardVO> resList =new ArrayList<>();
BusiNotice busiNotice = noticeService.getById(req.getNoticeId());
//先获取博主全部审核通过的该平台的名片
Long userId = SecurityUtils.getUserId();
LambdaQueryWrapper<MemberBusiCard> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(MemberBusiCard::getUserId, userId).eq(MemberBusiCard::getPlatformCode, busiNotice.getPlatformCode())
.eq(MemberBusiCard::getApprovalStatus, "1");
List<MemberBusiCard> list = list(lambdaQueryWrapper);
for (MemberBusiCard memberBusiCard : list) {
MemberBusiCardVO memberBusiCardVO = new MemberBusiCardVO();
BeanUtils.copyProperties(memberBusiCard, memberBusiCardVO);
memberBusiCardVO.setCanUse("1");
resList.add(memberBusiCardVO);
}
int canUseNum =resList.size();
//获取通告的粉丝限制
//获取通告的粉丝限制
for (MemberBusiCardVO re : resList) {
if ((null != busiNotice.getFansUp() &&re.getFansNum() > busiNotice.getFansUp())||(null !=busiNotice.getFansDown() && re.getFansNum() < busiNotice.getFansDown()) ) {
re.setCanUse("0");
canUseNum--;
}
}
res.put("list", resList);
res.put("canUserNum", canUseNum);
return res;
}
}

View File

@ -7,4 +7,6 @@ import lombok.Data;
public class MemberBusiCardVO extends MemberBusiCard {
/**地址*/
String address;
//是否可用 0否1是
String canUse;
}

View File

@ -150,6 +150,7 @@ order by dbns.create_time desc
WHERE
dbn.del_flag = 0
AND (dbn.approval_status = '1')
and dbn.end_date &gt;= CURDATE()
<if test="entity.gift!=null and entity.gift!=''">
AND ( dbn.gift_detail IS NOT NULL AND dbn.gift_detail != '' )
</if>
@ -210,24 +211,29 @@ order by dbns.create_time desc
WHERE
dbn.del_flag = 0
AND (dbn.approval_status = '1')
<if test="entity.gift!=null and entity.gift!=''">
AND ( dbn.gift_detail IS NOT NULL AND dbn.gift_detail != '' )
</if>
and dbn.end_date &gt;= CURDATE()
<if test="entity.platformCode!=null and entity.platformCode!=''">
AND ( dbn.platform_code =#{entity.platformCode} )
and dbn.platform_code IN
<foreach collection="entity.platformCode" item="it" open="(" close=")" separator=",">
-- platform_code 包含it
#{it}
</foreach>
</if>
<if test="entity.bloggerTypeCode!=null and entity.bloggerTypeCode!=''">
AND ( dbn.blogger_types LIKE CONCAT('%',#{entity.bloggerType},'%') )
and
<foreach collection="entity.bloggerTypeCode" item="it" open="(" close=")" separator="or">
dbn.blogger_types like concat('%',#{it},'%')
</foreach>
</if>
<if test="entity.searchValue!=null and entity.searchValue!=''">
AND ( dbn.title LIKE CONCAT('%',#{entity.searchValue},'%') OR
dbn.detail LIKE CONCAT('%',#{entity.searchValue},'%') )
<if test="entity.settleTypeCode!=null and entity.settleTypeCode!=''">
and dbn.settle_type = #{entity.settleTypeCode}
</if>
<if test="entity.rewardType=='money'">
AND ( dbn.fee_down IS NOT NULL OR dbn.fee_up IS NOT NULL )
</if>
<if test="entity.rewardType=='gift'">
AND ( dbn.gift_detail IS NOT NULL AND dbn.gift_detail!='' )
<if test="entity.keywordsList!=null and entity.keywordsList!=''">
and
<foreach collection="entity.keywordsList" item="it" open="(" close=")" separator="or">
title like concat('%',#{it},'%') or detail like concat('%',#{it},'%') or brand like concat('%',#{it},'%')
</foreach>
</if>
<if test="entity.fansUp!=null">
AND ( dbn.fans_up &lt;=#{entity.fansUp} )
@ -253,10 +259,41 @@ order by dbns.create_time desc
</when>
<otherwise>
-- 默认正序排列 --
dbn.create_time ASC
dbn.create_time DESC
</otherwise>
</choose>
</select>
<select id="loveList" resultType="com.ruoyi.busi.vo.BusiNoticeVo">
SELECT
dbn.*,
dbnv.view_num AS viewNum,
su.avatar,
su.nick_name AS userNickName
FROM
dl_busi_notice dbn
LEFT JOIN dl_busi_notice_view dbnv ON dbn.id = dbnv.id
LEFT JOIN sys_user su ON dbn.user_id = su.user_id
inner join dl_busi_user_love love on dbn.user_id = love.love_user_id and love.user_id = #{entity.userId}
WHERE
dbn.del_flag = 0
AND (dbn.approval_status = '1')
and dbn.end_date &gt;= CURDATE()
ORDER BY
<choose>
<when test="entity.sortBy=='new'">
-- 查最新的 --
dbn.create_time DESC
</when>
<when test="entity.sortBy=='money'">
-- 查高奖励 --
dbn.fee_up DESC
</when>
<otherwise>
-- 默认正序排列 --
dbn.create_time DESC
</otherwise>
</choose>
</select>
</mapper>