This commit is contained in:
PQZ 2025-04-14 17:02:01 +08:00
commit e5aa823cab
12 changed files with 243 additions and 61 deletions

View File

@ -131,6 +131,15 @@ public class BusiNoticeController extends BaseController
return success(); return success();
} }
@Log(title = "通告", businessType = BusinessType.INSERT)
@PostMapping("saveOrUpdate")
public AjaxResult saveOrUpdate(@RequestBody BusiNotice busiNotice)
{
JSONObject res = new JSONObject();
res.put("noticeId", busiNoticeService.saveOrUpdateVo(busiNotice));
return success(res);
}
@Log(title = "通告", businessType = BusinessType.DELETE) @Log(title = "通告", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
@ -258,4 +267,25 @@ public class BusiNoticeController extends BaseController
IPage<BusiNoticeVo> list = busiNoticeService.loveList(query,page); IPage<BusiNoticeVo> list = busiNoticeService.loveList(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("/myNoticeList")
public AjaxResult myNoticeList(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.myNoticeList(query,page);
return success(list);
}
} }

View File

@ -117,8 +117,7 @@ public class BusiNoticeSignController extends BaseController
* 用户通告报名 * 用户通告报名
*/ */
@PostMapping("/userSign") @PostMapping("/userSign")
public AjaxResult userSign(@RequestBody AppNoticeSign appNoticeSign) public AjaxResult userSign(@RequestBody AppNoticeSign appNoticeSign) throws Exception {
{
busiNoticeSignService.userSign(appNoticeSign); busiNoticeSignService.userSign(appNoticeSign);
return success(); return success();
} }

View File

@ -4,6 +4,7 @@ import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
@ -51,7 +52,8 @@ public class BusiNotice extends DlBaseEntity
private String province; private String province;
/** 城市 */ /** 城市 */
private String city; private String city;
//是否平台结算
private Integer isPlatformFree;
/** 稿费下限 */ /** 稿费下限 */
@Excel(name = "稿费下限") @Excel(name = "稿费下限")
private BigDecimal feeDown; private BigDecimal feeDown;
@ -63,6 +65,8 @@ public class BusiNotice extends DlBaseEntity
/** 是否需自报价 */ /** 是否需自报价 */
@Excel(name = "是否需自报价") @Excel(name = "是否需自报价")
private Integer isSelfPrice; private Integer isSelfPrice;
//是否有赠品 0 1
private String haveGift;
/** 赠品明细 */ /** 赠品明细 */
@Excel(name = "赠品明细") @Excel(name = "赠品明细")
@ -167,4 +171,7 @@ public class BusiNotice extends DlBaseEntity
@TableField(exist = false) @TableField(exist = false)
private List<String> customForm; private List<String> customForm;
} }

View File

@ -68,6 +68,15 @@ public interface BusiNoticeMapper extends BaseMapper<BusiNotice> {
* @return com.ruoyi.common.core.domain.AjaxResult * @return com.ruoyi.common.core.domain.AjaxResult
**/ **/
IPage<BusiNoticeVo> loveList(@Param("entity") AppNoticeQuery query, Page<BusiNotice> page); IPage<BusiNoticeVo> loveList(@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> myNoticeList(@Param("entity") AppNoticeQuery query, Page<BusiNotice> page);
/** /**
* 小程序端查询通告详细信息 * 小程序端查询通告详细信息

View File

@ -31,5 +31,7 @@ public class AppNoticeQuery {
private Double feeDown; private Double feeDown;
//用户id //用户id
private Long userId; private Long userId;
//'全部', '审核中', '已通过', '未合作'
private String reportStatus;
} }

View File

@ -46,6 +46,7 @@ public interface IBusiNoticeService extends IService<BusiNotice>
* @param data 保存参数 * @param data 保存参数
*/ */
void updateByIdVo(BusiNotice data); void updateByIdVo(BusiNotice data);
String saveOrUpdateVo(BusiNotice data);
void removeByIdsVo(List<String> ids); void removeByIdsVo(List<String> ids);
/** /**
@ -93,6 +94,9 @@ public interface IBusiNoticeService extends IService<BusiNotice>
IPage<BusiNoticeVo> loveList(AppNoticeQuery query, Page<BusiNotice> page); IPage<BusiNoticeVo> loveList(AppNoticeQuery query, Page<BusiNotice> page);
IPage<BusiNoticeVo> myNoticeList(AppNoticeQuery query, Page<BusiNotice> page);
} }

View File

@ -16,5 +16,5 @@ import com.ruoyi.busi.query.AppNoticeSign;
public interface IBusiNoticeSignService extends IService<BusiNoticeSign> public interface IBusiNoticeSignService extends IService<BusiNoticeSign>
{ {
IPage<BusiNoticeSign> queryListPage(BusiNoticeSign pageReqVO, Page<BusiNoticeSign> page); IPage<BusiNoticeSign> queryListPage(BusiNoticeSign pageReqVO, Page<BusiNoticeSign> page);
void userSign(AppNoticeSign appNoticeSign); void userSign(AppNoticeSign appNoticeSign) throws Exception;
} }

View File

@ -7,7 +7,9 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.base.domain.BaseCategory; import com.ruoyi.base.domain.BaseCategory;
import com.ruoyi.base.domain.BaseCity;
import com.ruoyi.base.service.IBaseCategoryService; import com.ruoyi.base.service.IBaseCategoryService;
import com.ruoyi.base.service.IBaseCityService;
import com.ruoyi.busi.domain.*; import com.ruoyi.busi.domain.*;
import com.ruoyi.busi.mapper.BusiNoticeSignMapper; import com.ruoyi.busi.mapper.BusiNoticeSignMapper;
import com.ruoyi.busi.query.AppNoticeQuery; import com.ruoyi.busi.query.AppNoticeQuery;
@ -72,6 +74,8 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
private IBusiSubscribeService subscribeService; private IBusiSubscribeService subscribeService;
@Autowired @Autowired
private IBusiNoticeFormService busiNoticeFormService; private IBusiNoticeFormService busiNoticeFormService;
@Autowired
private IBaseCityService cityService;
@Override @Override
@ -184,6 +188,29 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
} }
@Override
@Transactional
public String saveOrUpdateVo(BusiNotice data) {
if(StringUtils.isNotEmpty(data.getCity())){
//转换城市名称
LambdaQueryWrapper<BaseCity> queryWrapper =new LambdaQueryWrapper<>();
queryWrapper.eq(BaseCity::getCityId,data.getCity());
BaseCity city = cityService.getOne(queryWrapper);
String cityName = city.getName();
queryWrapper =new LambdaQueryWrapper<>();
queryWrapper.eq(BaseCity::getCityId,city.getParentId());
BaseCity parentCity = cityService.getOne(queryWrapper);
data.setCity(cityName);
data.setProvince(parentCity.getName());
}
if (StringUtils.isNotEmpty(data.getId())){
this.updateByIdVo(data);
}else {
this.saveVo(data);
}
return data.getId();
}
@Override @Override
@Transactional @Transactional
public void removeByIdsVo(List<String> ids) { public void removeByIdsVo(List<String> ids) {
@ -279,10 +306,6 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
IPage<BusiNoticeVo> pageList = busiNoticeMapper.queryAppListPage(query,page); IPage<BusiNoticeVo> pageList = busiNoticeMapper.queryAppListPage(query,page);
List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList()); List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){ if(!idList.isEmpty()){
//查报名数量
List<Map<String,Object>> mapList = busiNoticeSignMapper.selectReportNumByIdList(idList);
//转map
Map<String,Object> objectMap = mapList.stream().collect(Collectors.toMap(each-> Objects.toString(each.get("id"),""),each->each.get("reportNum")));
//查博主类型字典 //查博主类型字典
List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null); List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null);
//转map //转map
@ -292,11 +315,6 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
if(null==item.getViewNum()){ if(null==item.getViewNum()){
item.setViewNum(0); item.setViewNum(0);
} }
if(!objectMap.containsKey(item.getId()) || null==objectMap.get(item.getId())){
item.setReportNum(0);
}else{
item.setReportNum((Integer) objectMap.get(item.getId()));
}
item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap)); item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap));
if(StringUtils.isNotEmpty(item.getImages())){ if(StringUtils.isNotEmpty(item.getImages())){
item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]); item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]);
@ -321,10 +339,6 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
IPage<BusiNoticeVo> pageList = busiNoticeMapper.appFootprintList(query,page); IPage<BusiNoticeVo> pageList = busiNoticeMapper.appFootprintList(query,page);
List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList()); List<String> idList = pageList.getRecords().stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){ if(!idList.isEmpty()){
//查报名数量
List<Map<String,Object>> mapList = busiNoticeSignMapper.selectReportNumByIdList(idList);
//转map
Map<String,Object> objectMap = mapList.stream().collect(Collectors.toMap(each-> Objects.toString(each.get("id"),""),each->each.get("reportNum")));
//查博主类型字典 //查博主类型字典
List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null); List<BaseCategory> categoryList = baseCategoryService.listByParentCode(DictConstants.BLOGGER_TYPES_KEY,null);
//转map //转map
@ -334,11 +348,7 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
if(null==item.getViewNum()){ if(null==item.getViewNum()){
item.setViewNum(0); item.setViewNum(0);
} }
if(!objectMap.containsKey(item.getId()) || null==objectMap.get(item.getId())){
item.setReportNum(0);
}else{
item.setReportNum((Integer) objectMap.get(item.getId()));
}
item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap)); item.setBloggerTypesText(noticeUtils.translateBloggerTypes(item.getBloggerTypes(),categoryMap));
if(StringUtils.isNotEmpty(item.getImages())){ if(StringUtils.isNotEmpty(item.getImages())){
item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]); item.setMainImage(item.getImages().split(StrUtil.COMMA)[0]);
@ -394,6 +404,7 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
} }
res.put("isLove",false); res.put("isLove",false);
res.put("isSign",false); res.put("isSign",false);
res.put("passSign",false);
if (null != userId){ if (null != userId){
LambdaQueryWrapper<BusiUserLove> queryWrapper =new LambdaQueryWrapper<>(); LambdaQueryWrapper<BusiUserLove> queryWrapper =new LambdaQueryWrapper<>();
queryWrapper.eq(BusiUserLove::getUserId,userId).eq(BusiUserLove::getLoveUserId,detail.getUserId()); queryWrapper.eq(BusiUserLove::getUserId,userId).eq(BusiUserLove::getLoveUserId,detail.getUserId());
@ -405,6 +416,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
if(busiNoticeSignMapper.selectOne(new LambdaQueryWrapper<BusiNoticeSign>().eq(BusiNoticeSign::getNoticeId, noticeId).eq(BusiNoticeSign::getUserId, userId).last("limit 1"))!=null){ if(busiNoticeSignMapper.selectOne(new LambdaQueryWrapper<BusiNoticeSign>().eq(BusiNoticeSign::getNoticeId, noticeId).eq(BusiNoticeSign::getUserId, userId).last("limit 1"))!=null){
res.put("isSign",true); res.put("isSign",true);
} }
//当前用户是否已通过当前报名
if(busiNoticeSignMapper.selectOne(new LambdaQueryWrapper<BusiNoticeSign>().eq(BusiNoticeSign::getNoticeId, noticeId).eq(BusiNoticeSign::getUserId, userId).eq(BusiNoticeSign::getStatus,"1").last("limit 1"))!=null){
res.put("passSign",true);
}
} }
return res; return res;
} }
@ -442,7 +458,26 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
subscribeDataObj.setFeeDown(null); subscribeDataObj.setFeeDown(null);
subscribeDataObj.setFeeUp(null); subscribeDataObj.setFeeUp(null);
} }
return baseMapper.subscribeList(subscribeDataObj,page); IPage<BusiNoticeVo> pageList = baseMapper.subscribeList(subscribeDataObj, 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;
}else { }else {
//未设置订阅则使用常规查询 //未设置订阅则使用常规查询
return this.queryAppListPage(query,page); return this.queryAppListPage(query,page);
@ -461,7 +496,57 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
//获取当前登录用户 //获取当前登录用户
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
query.setUserId(userId); query.setUserId(userId);
return baseMapper.loveList(query,page); IPage<BusiNoticeVo> pageList = baseMapper.loveList(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;
}
/**
* 小程序端我的通告列表
* @author zcy
* @date 15:39 2025/3/29
* @param query 查询条件
* @return com.ruoyi.common.core.domain.AjaxResult
**/
@Override
public IPage<BusiNoticeVo> myNoticeList(AppNoticeQuery query, Page<BusiNotice> page) {
//获取当前登录用户
Long userId = SecurityUtils.getUserId();
query.setUserId(userId);
IPage<BusiNoticeVo> pageList = baseMapper.myNoticeList(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

@ -4,6 +4,7 @@ import java.util.List;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject; import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.busi.query.AppNoticeSign; import com.ruoyi.busi.query.AppNoticeSign;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
@ -39,9 +40,14 @@ public class BusiNoticeSignServiceImpl extends ServiceImpl<BusiNoticeSignMapper,
* @param appNoticeSign 报名实体 * @param appNoticeSign 报名实体
*/ */
@Override @Override
public void userSign(AppNoticeSign appNoticeSign) { public void userSign(AppNoticeSign appNoticeSign) throws Exception {
LoginUser loginUser = SecurityUtils.getLoginUser(); LoginUser loginUser = SecurityUtils.getLoginUser();
//当前用户是否已报名该通告
if(busiNoticeSignMapper.selectOne(new LambdaQueryWrapper<BusiNoticeSign>().eq(BusiNoticeSign::getNoticeId, appNoticeSign.getNoticeId()).eq(BusiNoticeSign::getUserId, loginUser.getUserId()).last("limit 1"))!=null){
throw new Exception("请勿重复报名!");
}
for (JSONObject cardInfo : appNoticeSign.getCardList()) { for (JSONObject cardInfo : appNoticeSign.getCardList()) {
BusiNoticeSign busiNoticeSign =new BusiNoticeSign(); BusiNoticeSign busiNoticeSign =new BusiNoticeSign();
busiNoticeSign.setNoticeId(appNoticeSign.getNoticeId()); busiNoticeSign.setNoticeId(appNoticeSign.getNoticeId());
busiNoticeSign.setUserId(loginUser.getUserId()); busiNoticeSign.setUserId(loginUser.getUserId());

View File

@ -41,7 +41,9 @@ public class NoticeUtils {
List<String> rtnList = new ArrayList<>(); List<String> rtnList = new ArrayList<>();
List<String> bloggerTypeList = Arrays.asList(bloggerTypes.split(StrUtil.COMMA)); List<String> bloggerTypeList = Arrays.asList(bloggerTypes.split(StrUtil.COMMA));
bloggerTypeList.forEach(item->{ bloggerTypeList.forEach(item->{
rtnList.add(categoryMap.get(item)); if(categoryMap.get(item)!=null){
rtnList.add(categoryMap.get(item));
}
}); });
return String.join(" ",rtnList); return String.join(" ",rtnList);
} }

View File

@ -1,9 +1,12 @@
package com.ruoyi.busi.vo; package com.ruoyi.busi.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.busi.domain.BusiNotice; import com.ruoyi.busi.domain.BusiNotice;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
import lombok.Data; import lombok.Data;
import java.util.Date;
@Data @Data
public class BusiNoticeVo extends BusiNotice { public class BusiNoticeVo extends BusiNotice {
/**发布者名称**/ /**发布者名称**/
@ -29,4 +32,9 @@ public class BusiNoticeVo extends BusiNotice {
* 审核人姓名 * 审核人姓名
*/ */
private String approvalUserName; private String approvalUserName;
//报名时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private Date signTime;
} }

View File

@ -66,11 +66,13 @@ order by dbns.create_time desc
dbn.*, dbn.*,
dbnv.view_num AS viewNum, dbnv.view_num AS viewNum,
su.avatar, su.avatar,
su.nick_name AS userNickName su.nick_name AS userNickName,
count(sign.id) as reportNum
FROM FROM
dl_busi_notice dbn dl_busi_notice dbn
LEFT JOIN dl_busi_notice_view dbnv ON dbn.id = dbnv.id 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 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 WHERE
dbn.del_flag = 0 dbn.del_flag = 0
AND (dbn.approval_status = '1') AND (dbn.approval_status = '1')
@ -105,6 +107,7 @@ order by dbns.create_time desc
<if test="entity.feeDown!=null"> <if test="entity.feeDown!=null">
AND ( dbn.fee_down &gt;=#{entity.feeDown} ) AND ( dbn.fee_down &gt;=#{entity.feeDown} )
</if> </if>
group by dbn.id
ORDER BY ORDER BY
<choose> <choose>
<when test="entity.sortBy=='new'"> <when test="entity.sortBy=='new'">
@ -141,12 +144,14 @@ order by dbns.create_time desc
dbn.*, dbn.*,
dbnv.view_num AS viewNum, dbnv.view_num AS viewNum,
su.avatar, su.avatar,
su.nick_name AS userNickName su.nick_name AS userNickName,
count(sign.id) as reportNum
FROM FROM
dl_busi_notice dbn dl_busi_notice dbn
LEFT JOIN dl_busi_notice_view dbnv ON dbn.id = dbnv.id LEFT JOIN dl_busi_notice_view dbnv ON dbn.id = dbnv.id
inner join dl_member_footprint footprint on footprint.notice_id = dbn.id and footprint.user_id = #{entity.userId} inner join dl_member_footprint footprint on footprint.notice_id = dbn.id and footprint.user_id = #{entity.userId}
LEFT JOIN sys_user su ON dbn.user_id = su.user_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 WHERE
dbn.del_flag = 0 dbn.del_flag = 0
AND (dbn.approval_status = '1') AND (dbn.approval_status = '1')
@ -182,6 +187,7 @@ order by dbns.create_time desc
<if test="entity.feeDown!=null"> <if test="entity.feeDown!=null">
AND ( dbn.fee_down &gt;=#{entity.feeDown} ) AND ( dbn.fee_down &gt;=#{entity.feeDown} )
</if> </if>
group by dbn.id
ORDER BY ORDER BY
<choose> <choose>
<when test="entity.sortBy=='new'"> <when test="entity.sortBy=='new'">
@ -203,23 +209,25 @@ order by dbns.create_time desc
dbn.*, dbn.*,
dbnv.view_num AS viewNum, dbnv.view_num AS viewNum,
su.avatar, su.avatar,
su.nick_name AS userNickName su.nick_name AS userNickName,
count(sign.id) as reportNum
FROM FROM
dl_busi_notice dbn dl_busi_notice dbn
LEFT JOIN dl_busi_notice_view dbnv ON dbn.id = dbnv.id 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 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 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() and dbn.end_date &gt;= CURDATE()
<if test="entity.platformCode!=null and entity.platformCode!=''"> <if test="entity.platformCode!=null and entity.platformCode.size>0">
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=",">
-- platform_code 包含it -- platform_code 包含it
#{it} #{it}
</foreach> </foreach>
</if> </if>
<if test="entity.bloggerTypeCode!=null and entity.bloggerTypeCode!=''"> <if test="entity.bloggerTypeCode!=null and entity.bloggerTypeCode.size>0">
and and
<foreach collection="entity.bloggerTypeCode" item="it" open="(" close=")" separator="or"> <foreach collection="entity.bloggerTypeCode" item="it" open="(" close=")" separator="or">
dbn.blogger_types like concat('%',#{it},'%') dbn.blogger_types like concat('%',#{it},'%')
@ -229,7 +237,7 @@ order by dbns.create_time desc
and dbn.settle_type = #{entity.settleTypeCode} and dbn.settle_type = #{entity.settleTypeCode}
</if> </if>
<if test="entity.keywordsList!=null and entity.keywordsList!=''"> <if test="entity.keywordsList!=null and entity.keywordsList.size>0 ">
and and
<foreach collection="entity.keywordsList" item="it" open="(" close=")" separator="or"> <foreach collection="entity.keywordsList" item="it" open="(" close=")" separator="or">
title like concat('%',#{it},'%') or detail like concat('%',#{it},'%') or brand like concat('%',#{it},'%') title like concat('%',#{it},'%') or detail like concat('%',#{it},'%') or brand like concat('%',#{it},'%')
@ -247,21 +255,12 @@ order by dbns.create_time desc
<if test="entity.feeDown!=null"> <if test="entity.feeDown!=null">
AND ( dbn.fee_down &gt;=#{entity.feeDown} ) AND ( dbn.fee_down &gt;=#{entity.feeDown} )
</if> </if>
group by dbn.id
ORDER BY ORDER BY
<choose>
<when test="entity.sortBy=='new'"> -- 默认正序排列 --
-- 查最新的 -- dbn.create_time DESC
dbn.create_time DESC
</when>
<when test="entity.sortBy=='money'">
-- 查高奖励 --
dbn.fee_up DESC
</when>
<otherwise>
-- 默认正序排列 --
dbn.create_time DESC
</otherwise>
</choose>
</select> </select>
<select id="loveList" resultType="com.ruoyi.busi.vo.BusiNoticeVo"> <select id="loveList" resultType="com.ruoyi.busi.vo.BusiNoticeVo">
@ -269,31 +268,62 @@ order by dbns.create_time desc
dbn.*, dbn.*,
dbnv.view_num AS viewNum, dbnv.view_num AS viewNum,
su.avatar, su.avatar,
su.nick_name AS userNickName su.nick_name AS userNickName,
count(sign.id) as reportNum
FROM FROM
dl_busi_notice dbn dl_busi_notice dbn
LEFT JOIN dl_busi_notice_view dbnv ON dbn.id = dbnv.id 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 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_user_love love on dbn.user_id = love.love_user_id and love.user_id = #{entity.userId}
left join dl_busi_notice_sign sign on sign.notice_id = dbn.id and sign.del_flag = 0
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() and dbn.end_date &gt;= CURDATE()
group by dbn.id
ORDER BY ORDER BY
<choose> dbn.create_time DESC
<when test="entity.sortBy=='new'"> </select>
-- 查最新的 -- <select id="myNoticeList" resultType="com.ruoyi.busi.vo.BusiNoticeVo">
dbn.create_time DESC SELECT
</when> dbn.*,
<when test="entity.sortBy=='money'"> dbnv.view_num AS viewNum,
-- 查高奖励 -- su.avatar,
dbn.fee_up DESC su.nick_name AS userNickName,
</when> count(sign.id) as reportNum,
<otherwise> sign.create_time as signTime,
-- 默认正序排列 -- CASE
dbn.create_time DESC WHEN sign.status = '0' AND dbn.end_date &gt;= CURDATE() THEN '审核中'
</otherwise> WHEN sign.status = '1' THEN '已通过'
</choose> WHEN sign.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}
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()
</when>
<when test="entity.reportStatus=='已通过'">
and sign.status ='1'
</when>
<when test="entity.reportStatus=='未合作'">
and sign.status ='0' and dbn.end_date &lt; CURDATE()
</when>
</choose>
</if>
group by dbn.id
ORDER BY
dbn.create_time DESC
</select> </select>
</mapper> </mapper>