This commit is contained in:
PQZ 2025-04-15 10:31:14 +08:00
commit 79a2286006
8 changed files with 133 additions and 16 deletions

View File

@ -288,4 +288,25 @@ public class BusiNoticeController extends BaseController
IPage<BusiNoticeVo> list = busiNoticeService.myNoticeList(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("/myPublishNoticeList")
public AjaxResult myPublishNoticeList(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.myPublishNoticeList(query,page);
return success(list);
}
}

View File

@ -66,7 +66,7 @@ public class BusiNotice extends DlBaseEntity
@Excel(name = "是否需自报价")
private Integer isSelfPrice;
//是否有赠品 0 1
private String haveGift;
private Integer haveGift;
/** 赠品明细 */
@Excel(name = "赠品明细")
@ -171,6 +171,9 @@ public class BusiNotice extends DlBaseEntity
@TableField(exist = false)
private List<String> customForm;
@TableField(exist = false)
private Long cityId;

View File

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

View File

@ -34,4 +34,7 @@ public class AppNoticeQuery {
//'全部', '审核中', '已通过', '未合作'
private String reportStatus;
//'进行中', '已关闭'
private String status;
}

View File

@ -96,6 +96,10 @@ public interface IBusiNoticeService extends IService<BusiNotice>
IPage<BusiNoticeVo> myNoticeList(AppNoticeQuery query, Page<BusiNotice> page);
IPage<BusiNoticeVo> myPublishNoticeList(AppNoticeQuery query, Page<BusiNotice> page);

View File

@ -3,6 +3,7 @@ package com.ruoyi.busi.service.impl;
import java.util.*;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -191,10 +192,10 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
@Override
@Transactional
public String saveOrUpdateVo(BusiNotice data) {
if(StringUtils.isNotEmpty(data.getCity())){
if(ObjectUtil.isNotEmpty(data.getCityId())){
//转换城市名称
LambdaQueryWrapper<BaseCity> queryWrapper =new LambdaQueryWrapper<>();
queryWrapper.eq(BaseCity::getCityId,data.getCity());
queryWrapper.eq(BaseCity::getCityId,data.getCityId());
BaseCity city = cityService.getOne(queryWrapper);
String cityName = city.getName();
queryWrapper =new LambdaQueryWrapper<>();
@ -374,6 +375,19 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
List<BusiNoticeForm> customForm = busiNoticeFormService.list(new LambdaQueryWrapper<BusiNoticeForm>()
.eq(BusiNoticeForm::getNoticeId,noticeId).orderByAsc(BusiNoticeForm::getSort));
detail.setCustomForm(customForm.stream().map(BusiNoticeForm::getLabelTitle).collect(Collectors.toList()));
//获取城市id
LambdaQueryWrapper<BaseCity> queryWrapperCity = new LambdaQueryWrapper<>();
queryWrapperCity.eq(BaseCity::getName,detail.getCity());
List<BaseCity> list = cityService.list(queryWrapperCity);
for (BaseCity baseCity : list) {
queryWrapperCity = new LambdaQueryWrapper<>();
queryWrapperCity.eq(BaseCity::getCityId,baseCity.getParentId());
BaseCity byId = cityService.getOne(queryWrapperCity);
if (byId.getName().equals(detail.getProvince())) {
detail.setCityId(baseCity.getCityId());
}
}
res.put("noticeDetail",detail);
//通告主信息
SysUser userDetail = userService.selectUserById(detail.getUserId());
@ -549,5 +563,31 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
return pageList;
}
@Override
public IPage<BusiNoticeVo> myPublishNoticeList(AppNoticeQuery query, Page<BusiNotice> page) {
//获取当前登录用户
Long userId = SecurityUtils.getUserId();
query.setUserId(userId);
IPage<BusiNoticeVo> pageList = baseMapper.myPublishNoticeList(query, page);
List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){
//查博主类型字典
List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null);
//转map
Map<String,String> categoryMap = categoryList.stream().collect(Collectors.toMap(BaseCategory::getCode,BaseCategory::getTitle));
pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换
if(null==item.getViewNum()){
item.setViewNum(0);
}
item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap));
if(StringUtils.isNotEmpty(item.getImages())){
item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]);
}
});
}
return pageList;
}
}

View File

@ -35,6 +35,8 @@ public class BusiNoticeVo extends BusiNotice {
//报名时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private Date signTime;
//状态
private String reportStatusText;
}

View File

@ -126,10 +126,7 @@ order by dbns.create_time desc
</select>
<select id="selectByIdVo" resultType="com.ruoyi.busi.vo.BusiNoticeVo">
select main.user_id, main.title, main.platform_code, main.province, main.city, main.fee_down, main.fee_up, main.is_self_price, main.gift_detail,
main.gift_price, main.end_date, main.brand, main.is_show_brand, main.need_num, main.fans_down, main.fans_up, main.is_eligible, main.pic, main.collect, main.detail, main.images,
main.blogger_types, main.is_show_tel, main.wechat, main.tel, main.group_image, main.is_use_coupon, main.approval_status, main.approval_user_id, main.approval_time,
main.approval_remark, main.creator, main.create_time, main.updater, main.update_time, main.del_flag,
select main.*,
uTable.nick_name as userNickName,ifnull(noticeView.view_num,0) as viewNum,
bTable.title as platformName
from dl_busi_notice main
@ -291,32 +288,32 @@ order by dbns.create_time desc
su.avatar,
su.nick_name AS userNickName,
count(sign.id) as reportNum,
sign.create_time as signTime,
mySign.create_time as signTime,
CASE
WHEN sign.status = '0' AND dbn.end_date &gt;= CURDATE() THEN '审核中'
WHEN sign.status = '1' THEN '已通过'
WHEN sign.status = '0' AND dbn.end_date &lt; CURDATE() THEN '未合作'
WHEN mySign.status = '0' AND dbn.end_date &gt;= CURDATE() THEN '审核中'
WHEN mySign.status = '1' THEN '已通过'
WHEN mySign.status = '0' AND dbn.end_date &lt; CURDATE() THEN '未合作'
ELSE '已过期'
END AS signStatus
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}
inner join dl_busi_notice_sign sign on sign.notice_id = dbn.id and sign.del_flag = 0 and sign.user_id = #{entity.userId}
LEFT join dl_busi_notice_sign sign on sign.notice_id = dbn.id and sign.del_flag = 0
inner join dl_busi_notice_sign mySign on sign.notice_id = dbn.id and sign.del_flag = 0 and sign.user_id = #{entity.userId}
WHERE
dbn.del_flag = 0
AND (dbn.approval_status = '1')
<if test="entity.reportStatus!=null and entity.reportStatus!='' ">
<choose>
<when test="entity.reportStatus=='审核中'">
and sign.status ='0' and dbn.end_date &gt;= CURDATE()
and mySign.status ='0' and dbn.end_date &gt;= CURDATE()
</when>
<when test="entity.reportStatus=='已通过'">
and sign.status ='1'
and mySign.status ='1'
</when>
<when test="entity.reportStatus=='未合作'">
and sign.status ='0' and dbn.end_date &lt; CURDATE()
and mySign.status ='0' and dbn.end_date &lt; CURDATE()
</when>
</choose>
@ -325,5 +322,41 @@ order by dbns.create_time desc
ORDER BY
dbn.create_time DESC
</select>
<select id="myPublishNoticeList" resultType="com.ruoyi.busi.vo.BusiNoticeVo">
SELECT
dbn.*,
dbnv.view_num AS viewNum,
su.avatar,
su.nick_name AS userNickName,
count(sign.id) as reportNum,
CASE
WHEN dbn.end_date &lt; CURDATE() THEN '已关闭'
WHEN dbn.approval_status = '0' THEN '审核中'
WHEN dbn.approval_status = '1' THEN '已通过'
WHEN dbn.approval_status = '9' THEN '审核不通过'
WHEN dbn.approval_status = '2' THEN '已关闭'
ELSE '已过期'
END AS reportStatusText
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
LEFT join dl_busi_notice_sign sign on sign.notice_id = dbn.id and sign.del_flag = 0
WHERE
dbn.del_flag = 0 and dbn.approval_status !=8 and dbn.user_id = #{entity.userId}
<if test="entity.status!=null and entity.status!='' ">
<choose>
<when test="entity.status=='进行中'">
and dbn.approval_status !='2' and dbn.end_date &gt;= CURDATE()
</when>
<when test="entity.status=='已关闭'">
and (dbn.approval_status ='2' or dbn.end_date &lt; CURDATE())
</when>
</choose>
</if>
group by dbn.id
ORDER BY
dbn.create_time DESC
</select>
</mapper>