bug修复

This commit is contained in:
13405411873 2025-06-16 15:12:58 +08:00
parent 6273d05022
commit c0a93a7ae1
5 changed files with 112 additions and 68 deletions

View File

@ -1,6 +1,8 @@
package com.ruoyi.busi.service.impl; package com.ruoyi.busi.service.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.*; import java.util.*;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
@ -106,6 +108,28 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
return busiNoticeMapper.queryListPage(query, page); return busiNoticeMapper.queryListPage(query, page);
} }
// 方法用于提取URL中的eid参数值
public static String getEidFromUrl(String url) throws URISyntaxException {
URI uri = new URI(url);
String query = uri.getQuery();
Map<String, String> params = new HashMap<>();
for (String param : query.split("&")) {
String[] pair = param.split("=");
params.put(pair[0], pair.length > 1 ? pair[1] : null);
}
return params.get("eid");
}
// 判断两个URL中的eid是否相等
public static boolean isEidEqual(String url1, String url2) throws URISyntaxException {
try {
String eid1 = getEidFromUrl(url1);
String eid2 = getEidFromUrl(url2);
return eid1 != null && eid1.equals(eid2);
}catch (Exception e){
return false;
}
}
/** /**
* 新增通告 * 新增通告
* @param data 通告对象 * @param data 通告对象
@ -137,11 +161,26 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
for (BusiNotice busiNotice : list) { for (BusiNotice busiNotice : list) {
if (StringUtils.isNotEmpty(data.getThirdUrl())&&StringUtils.isNotEmpty(busiNotice.getThirdUrl())){ if (StringUtils.isNotEmpty(data.getThirdUrl())&&StringUtils.isNotEmpty(busiNotice.getThirdUrl())){
if (data.getThirdUrl().equals(busiNotice.getThirdUrl())){ if (data.getThirdUrl().equals(busiNotice.getThirdUrl())){
//title detail 相似度大于70% 待审核 //两条thirdurl相等
data.setApprovalStatus("8"); data.setApprovalStatus("8");
data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+","); data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+",");
result.put("code",500); result.put("code",500);
result.put("msg","通告查重,下次早点上传哦!"); result.put("msg","通告查重,下次早点上传哦!");
}else if (busiNotice.getThirdUrl().contains(data.getThirdUrl())||data.getThirdUrl().contains(busiNotice.getThirdUrl())){
//两条thirdurl存在包含情况
data.setApprovalStatus("8");
data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+",");
result.put("code",500);
result.put("msg","通告查重,下次早点上传哦!");
}else if (isEidEqual(data.getThirdUrl(),busiNotice.getThirdUrl())){
//两条thirdurl都存在eid且eid相等
data.setApprovalStatus("8");
data.setSimilarityIds(Optional.ofNullable(data.getSimilarityIds()).orElse("")+busiNotice.getId()+",");
result.put("code",500);
result.put("msg","通告查重,下次早点上传哦!");
}
if (data.getApprovalStatus().equals("8")){
break;
} }
} }
} }
@ -234,11 +273,28 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
//删除结尾的最后一个逗号 //删除结尾的最后一个逗号
data.setSimilarityIds(data.getSimilarityIds().substring(0, data.getSimilarityIds().length() - 1)); data.setSimilarityIds(data.getSimilarityIds().substring(0, data.getSimilarityIds().length() - 1));
} }
//若是急招扣除对应急招券
if (data.getApprovalStatus().equals("1")&&(StringUtils.isEmpty(oldData.getIsUrgent())||oldData.getIsUrgent().equals("0"))&&StringUtils.isNotEmpty(data.getIsUrgent())&&data.getIsUrgent().equals("1")){
memberCouponService.saveCoupon( data.getUserId(), "2", data.getId(), 1);
}
this.updateById(data); this.updateById(data);
MemberUserVO memberUserVO = memberUserService.queryByUserId(SecurityUtils.getUserId(), "01");
if(data.getApprovalStatus().equals("1")&&!oldData.getApprovalStatus().equals("1") ){
if (StringUtils.isNotEmpty(memberUserVO.getIdentityType()) && memberUserVO.getIdentityType().equals("05")){
//如果审核通过
//从配置表中获取积分
MemberPoints memberPoints = new MemberPoints();
memberPoints.setUserId(SecurityUtils.getUserId());
memberPoints.setType("1");
memberPoints.setFromCode("fbgg");
memberPointsService.savePoints(memberPoints);
}
//若是急招扣除对应急招券
if (StringUtils.isNotEmpty(data.getIsUrgent())&&data.getIsUrgent().equals("1")){
memberCouponService.saveCoupon( data.getUserId(), "2", data.getId(), 1);
}
cardService.dealMemberRights2(data.getUserId(),null,"add_notice",1);
if (CollectionUtil.isNotEmpty(data.getCustomForm())) {
cardService.dealMemberRights2(data.getUserId(),null,"report_info_collect",1);
}
}
} }
//先删除表单数据 //先删除表单数据
busiNoticeFormService.remove(new LambdaQueryWrapper<BusiNoticeForm>().eq(BusiNoticeForm::getNoticeId,data.getId())); busiNoticeFormService.remove(new LambdaQueryWrapper<BusiNoticeForm>().eq(BusiNoticeForm::getNoticeId,data.getId()));
@ -405,16 +461,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
//打乱records的排列顺序 //打乱records的排列顺序
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<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->{ pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换 //报名数量浏览量相关字典转换
if(null==item.getViewNum()){ if(null==item.getViewNum()){
item.setViewNum(0); item.setViewNum(0);
} }
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]);
} }
@ -439,17 +490,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
List<BusiNoticeVo> pageList = busiNoticeMapper.appFootprintList(query,num); List<BusiNoticeVo> pageList = busiNoticeMapper.appFootprintList(query,num);
List<String> idList = pageList.stream().map(BusiNotice::getId).collect(Collectors.toList()); List<String> idList = pageList.stream().map(BusiNotice::getId).collect(Collectors.toList());
if(!idList.isEmpty()){ 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.forEach(item->{ pageList.forEach(item->{
//报名数量浏览量相关字典转换 //报名数量浏览量相关字典转换
if(null==item.getViewNum()){ if(null==item.getViewNum()){
item.setViewNum(0); item.setViewNum(0);
} }
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]);
} }
@ -575,16 +620,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
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<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->{ pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换 //报名数量浏览量相关字典转换
if(null==item.getViewNum()){ if(null==item.getViewNum()){
item.setViewNum(0); item.setViewNum(0);
} }
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]);
} }
@ -612,16 +652,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
IPage<BusiNoticeVo> pageList = baseMapper.loveList(query, page); IPage<BusiNoticeVo> pageList = baseMapper.loveList(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<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->{ pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换 //报名数量浏览量相关字典转换
if(null==item.getViewNum()){ if(null==item.getViewNum()){
item.setViewNum(0); item.setViewNum(0);
} }
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]);
} }
@ -644,16 +679,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
IPage<BusiNoticeVo> pageList = baseMapper.myNoticeList(query, page); IPage<BusiNoticeVo> pageList = baseMapper.myNoticeList(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<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->{ pageList.getRecords().forEach(item->{
//报名数量浏览量相关字典转换 //报名数量浏览量相关字典转换
if(null==item.getViewNum()){ if(null==item.getViewNum()){
item.setViewNum(0); item.setViewNum(0);
} }
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]);
} }
@ -672,16 +702,11 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
IPage<BusiNoticeVo> pageList = baseMapper.myPublishNoticeList(query, page); IPage<BusiNoticeVo> pageList = baseMapper.myPublishNoticeList(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()){
//查博主类型字典 pageList.getRecords().forEach(item->{
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()){ if(null==item.getViewNum()){
item.setViewNum(0); item.setViewNum(0);
} }
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]);
} }

View File

@ -63,6 +63,7 @@ public class MemberApplyController extends BaseController {
try{ try{
memberApplyService.toApply(memberApply); memberApplyService.toApply(memberApply);
}catch (Exception e){ }catch (Exception e){
logger.error(e.getMessage());
return error(e.getMessage()); return error(e.getMessage());
} }
return success(); return success();

View File

@ -69,12 +69,12 @@ order by dbns.create_time desc
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 -- 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 -- left join dl_busi_notice_sign sign on sign.notice_id = dbn.id and sign.del_flag = 0
<if test="entity.userId!=null and entity.userId!=''"> <if test="entity.userId!=null and entity.userId!=''">
left join dl_member_blacklist blacklist on blacklist.black_user_id = dbn.user_id and blacklist.del_flag = 0 and blacklist.user_id = #{entity.userId} left join dl_member_blacklist blacklist on blacklist.black_user_id = dbn.user_id and blacklist.del_flag = 0 and blacklist.user_id = #{entity.userId}
</if> </if>
@ -85,7 +85,7 @@ order by dbns.create_time desc
and blacklist.id is null and blacklist.id is null
</if> </if>
<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.fee_down is null or dbn.fee_down = 0 ) and dbn.fee_up = 0)
</if> </if>
<if test="entity.cityName!=null and entity.cityName!=''"> <if test="entity.cityName!=null and entity.cityName!=''">
AND dbn.city =#{entity.cityName} AND dbn.city =#{entity.cityName}
@ -108,18 +108,46 @@ order by dbns.create_time desc
<if test="entity.rewardType=='gift'"> <if test="entity.rewardType=='gift'">
AND ( dbn.have_gift = '1' ) AND ( dbn.have_gift = '1' )
</if> </if>
<if test="entity.fansUp!=null"> <choose>
AND ( dbn.fans_up &lt;= #{entity.fansUp} ) <!-- 情况一:同时填写了下限和上限 -->
</if> <when test="entity.fansDown != null and entity.fansUp != null">
<if test="entity.fansDown!=null"> AND (
AND ( dbn.fans_down &lt;= #{entity.fansDown} ) dbn.fans_down <![CDATA[ <= ]]> #{entity.fansUp}
</if> AND (dbn.fans_up IS NULL OR dbn.fans_up >= #{entity.fansDown})
<if test="entity.feeUp!=null"> )
AND ( dbn.fee_up &lt;= #{entity.feeUp} ) </when>
</if>
<if test="entity.feeDown!=null"> <!-- 情况二:只填写了下限 -->
AND ( dbn.fee_down &lt;=#{entity.feeDown} ) <when test="entity.fansDown != null">
</if> AND (dbn.fans_up IS NULL OR dbn.fans_up >= #{entity.fansDown})
</when>
<!-- 情况三:只填写了上限 -->
<when test="entity.fansUp != null">
AND dbn.fans_down <![CDATA[ <= ]]> #{entity.fansUp}
</when>
</choose>
<choose>
<!-- 情况一:同时填写了下限和上限 -->
<when test="entity.feeDown != null and entity.feeUp != null">
AND (
dbn.fee_down <![CDATA[ <= ]]> #{entity.feeUp}
AND (dbn.fee_up IS NULL OR dbn.fee_up >= #{entity.feeDown})
)
</when>
<!-- 情况二:只填写了下限 -->
<when test="entity.feeDown != null">
AND (dbn.fee_up IS NULL OR dbn.fee_up >= #{entity.feeDown})
</when>
<!-- 情况三:只填写了上限 -->
<when test="entity.feeUp != null">
AND dbn.fee_down <![CDATA[ <= ]]> #{entity.feeUp}
</when>
</choose>
group by dbn.id group by dbn.id
ORDER BY ORDER BY
<choose> <choose>
@ -201,20 +229,10 @@ order by dbns.create_time desc
</if> </if>
group by dbn.id group by dbn.id
ORDER BY ORDER BY
<choose>
<when test="entity.sortBy=='new'"> -- 默认正序排列 --
-- 查最新的 -- footprint.create_time desc
dbn.create_time DESC
</when>
<when test="entity.sortBy=='money'">
-- 查高奖励 --
dbn.fee_up DESC
</when>
<otherwise>
-- 默认正序排列 --
dbn.create_time ASC
</otherwise>
</choose>
limit #{num} limit #{num}
</select> </select>
<select id="subscribeList" resultType="com.ruoyi.busi.vo.BusiNoticeVo"> <select id="subscribeList" resultType="com.ruoyi.busi.vo.BusiNoticeVo">

View File

@ -81,7 +81,7 @@
<if test="entity.identityType != null and entity.identityType != ''">and main.identity_type = <if test="entity.identityType != null and entity.identityType != ''">and main.identity_type =
#{entity.identityType} #{entity.identityType}
</if> </if>
<if test="entity.nickName != null and entity.nickName != '' ">and su.nack_name = #{entity.nickName}</if> <if test="entity.nickName != null and entity.nickName != '' ">and su.nick_name like concat('%',#{entity.nickName},'%') </if>
<if test="entity.userId != null "> and su.invite_id = #{entity.userId}</if> <if test="entity.userId != null "> and su.invite_id = #{entity.userId}</if>
<if test="entity.tel != null and entity.tel !='' "> and main.tel like CONCAT('%',#{entity.tel},'%') </if> <if test="entity.tel != null and entity.tel !='' "> and main.tel like CONCAT('%',#{entity.tel},'%') </if>
</where> </where>

View File

@ -68,7 +68,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND u.user_id = #{userId} AND u.user_id = #{userId}
</if> </if>
<if test="userName != null and userName != ''"> <if test="userName != null and userName != ''">
AND u.user_name like concat('%', #{userName}, '%') AND u.nick_name like concat('%', #{userName}, '%')
</if> </if>
<if test="status != null and status != ''"> <if test="status != null and status != ''">
AND u.status = #{status} AND u.status = #{status}