报名功能

This commit is contained in:
13405411873 2025-04-07 15:14:17 +08:00
parent c951d18a2c
commit 93cf789dc7
11 changed files with 189 additions and 19 deletions

View File

@ -231,4 +231,25 @@ public class BusiNoticeController extends BaseController
IPage<BusiNoticeVo> list = busiNoticeService.subscribeList(query,page); IPage<BusiNoticeVo> list = busiNoticeService.subscribeList(query,page);
return success(list); 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); 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> 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){ if(null!=subscribe){
//如果使用订阅 则获取 订阅规则进行查询 //如果使用订阅 则获取 订阅规则进行查询
SubscribeDataObj subscribeDataObj = JSONObject.parseObject(subscribe.getJsonObj(), SubscribeDataObj.class); 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); return baseMapper.subscribeList(subscribeDataObj,page);
}else { }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> bloggerTypeCode;
//平台 //平台
private List<String> platformCode; private List<String> platformCode;
//通告类型 //结算方式类型
private List<String> noticeTypeCode; private String settleTypeCode;
//关键词 //关键词
private List<String> keywordsList; private List<String> keywordsList;
//奖励类型 //奖励类型

View File

@ -1,5 +1,6 @@
package com.ruoyi.member.controller; package com.ruoyi.member.controller;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.annotation.Log; 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.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.member.domain.MemberBusiCard; import com.ruoyi.member.domain.MemberBusiCard;
import com.ruoyi.member.query.MemberBusiCardQuery;
import com.ruoyi.member.service.IMemberBusiCardService; import com.ruoyi.member.service.IMemberBusiCardService;
import com.ruoyi.member.vo.MemberBusiCardVO;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -118,4 +121,16 @@ public class MemberBusiCardController extends BaseController {
memberBusiCardService.removeById(id); memberBusiCardService.removeById(id);
return success(); 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; package com.ruoyi.member.service;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.member.domain.MemberBusiCard; import com.ruoyi.member.domain.MemberBusiCard;
import com.ruoyi.member.query.MemberBusiCardQuery;
import com.ruoyi.member.vo.MemberBusiCardVO; import com.ruoyi.member.vo.MemberBusiCardVO;
import java.util.List; import java.util.List;
@ -64,4 +66,9 @@ public interface IMemberBusiCardService extends IService<MemberBusiCard> {
* @date 13:44 2025/4/3 * @date 13:44 2025/4/3
**/ **/
void saveBusiCard(MemberBusiCard memberBusiCard); void saveBusiCard(MemberBusiCard memberBusiCard);
JSONObject getSignCard(MemberBusiCardQuery req);
} }

View File

@ -1,25 +1,32 @@
package com.ruoyi.member.service.impl; package com.ruoyi.member.service.impl;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.base.domain.BaseCategory; import com.ruoyi.base.domain.BaseCategory;
import com.ruoyi.base.service.IBaseCategoryService; 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.DlBaseEntity;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.member.domain.MemberBusiCard; import com.ruoyi.member.domain.MemberBusiCard;
import com.ruoyi.member.mapper.MemberBusiCardMapper; import com.ruoyi.member.mapper.MemberBusiCardMapper;
import com.ruoyi.member.query.MemberBusiCardQuery;
import com.ruoyi.member.service.IMemberBusiCardService; import com.ruoyi.member.service.IMemberBusiCardService;
import com.ruoyi.member.vo.MemberBusiCardVO; import com.ruoyi.member.vo.MemberBusiCardVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* 博主名片Service业务层处理 * 博主名片Service业务层处理
@ -33,6 +40,8 @@ public class MemberBusiCardServiceImpl extends ServiceImpl<MemberBusiCardMapper,
private MemberBusiCardMapper memberBusiCardMapper; private MemberBusiCardMapper memberBusiCardMapper;
@Resource @Resource
private IBaseCategoryService categoryService; private IBaseCategoryService categoryService;
@Resource
private IBusiNoticeService noticeService;
/** /**
* 分页查询博主名片信息 * 分页查询博主名片信息
@ -123,6 +132,45 @@ public class MemberBusiCardServiceImpl extends ServiceImpl<MemberBusiCardMapper,
memberBusiCard.setApprovalStatus("0"); memberBusiCard.setApprovalStatus("0");
saveOrUpdate(memberBusiCard); 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 =0;
//获取通告的粉丝限制
if (null != req.getNoticeId()) {
//获取通告的粉丝限制
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 { public class MemberBusiCardVO extends MemberBusiCard {
/**地址*/ /**地址*/
String address; String address;
//是否可用 0否1是
String canUse;
} }

View File

@ -150,6 +150,7 @@ order by dbns.create_time desc
WHERE WHERE
dbn.del_flag = 0 dbn.del_flag = 0
AND (dbn.approval_status = '1') AND (dbn.approval_status = '1')
and dbn.end_date &gt;= CURDATE()
<if test="entity.gift!=null and entity.gift!=''"> <if test="entity.gift!=null and entity.gift!=''">
AND ( dbn.gift_detail IS NOT NULL AND dbn.gift_detail != '' ) AND ( dbn.gift_detail IS NOT NULL AND dbn.gift_detail != '' )
</if> </if>
@ -210,9 +211,7 @@ order by dbns.create_time desc
WHERE WHERE
dbn.del_flag = 0 dbn.del_flag = 0
AND (dbn.approval_status = '1') AND (dbn.approval_status = '1')
<if test="entity.gift!=null and entity.gift!=''"> and dbn.end_date &gt;= CURDATE()
AND ( dbn.gift_detail IS NOT NULL AND dbn.gift_detail != '' )
</if>
<if test="entity.platformCode!=null and entity.platformCode!=''"> <if test="entity.platformCode!=null and entity.platformCode!=''">
and dbn.platform_code IN and dbn.platform_code IN
<foreach collection="entity.platformCode" item="it" open="(" close=")" separator=","> <foreach collection="entity.platformCode" item="it" open="(" close=")" separator=",">
@ -226,21 +225,16 @@ order by dbns.create_time desc
dbn.blogger_types like concat('%',#{it},'%') dbn.blogger_types like concat('%',#{it},'%')
</foreach> </foreach>
</if> </if>
<if test="entity.noticeTypeCode!=null and entity.noticeTypeCode!=''"> <if test="entity.settleTypeCode!=null and entity.settleTypeCode!=''">
<foreach collection="entity.noticeTypeCode" item="it" open="(" close=")" separator=","> and dbn.settle_type = #{entity.settleTypeCode}
AND ( dbn.blogger_types IN (#{it}) ) </if>
<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> </foreach>
</if> </if>
<if test="entity.searchValue!=null and entity.searchValue!=''">
AND ( dbn.title LIKE CONCAT('%',#{entity.searchValue},'%') OR
dbn.detail LIKE CONCAT('%',#{entity.searchValue},'%') )
</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>
<if test="entity.fansUp!=null"> <if test="entity.fansUp!=null">
AND ( dbn.fans_up &lt;=#{entity.fansUp} ) AND ( dbn.fans_up &lt;=#{entity.fansUp} )
</if> </if>
@ -265,10 +259,41 @@ order by dbns.create_time desc
</when> </when>
<otherwise> <otherwise>
-- 默认正序排列 -- -- 默认正序排列 --
dbn.create_time ASC dbn.create_time DESC
</otherwise> </otherwise>
</choose> </choose>
</select> </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> </mapper>