From 570e07d720be8ba56bbf567d76fc8a3e626765db Mon Sep 17 00:00:00 2001 From: 13405411873 <1994398261@qq.com> Date: Tue, 6 May 2025 13:24:54 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ruoyi/api/WxApi.java | 37 +++++++++++++++++++ .../impl/BusiNoticeSignServiceImpl.java | 21 +++++++++-- .../com/ruoyi/busi/utils/WeChatUtils.java | 7 +++- .../controller/MemberUserController.java | 11 ++++++ .../com/ruoyi/member/domain/MemberUser.java | 6 ++- .../member/service/IMemberUserService.java | 1 + .../service/impl/MemberUserServiceImpl.java | 31 ++++++++++++++-- 7 files changed, 105 insertions(+), 9 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/WxApi.java b/ruoyi-admin/src/main/java/com/ruoyi/api/WxApi.java index 0c1e386..133457f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/WxApi.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/WxApi.java @@ -1,7 +1,11 @@ package com.ruoyi.api; +import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; +import com.ruoyi.base.service.IBaseCategoryService; +import com.ruoyi.busi.domain.BusiNotice; +import com.ruoyi.busi.service.IBusiNoticeService; import com.ruoyi.busi.utils.WeChatUtils; import com.ruoyi.common.annotation.Anonymous; import com.ruoyi.common.constant.Constants; @@ -21,6 +25,10 @@ public class WxApi { private WeChatUtils weChatUtils; @Autowired private IMemberUserService memberUserService; + @Autowired + private IBusiNoticeService busiNoticeService; + @Autowired + private IBaseCategoryService baseCategoryService; @GetMapping("/getCodeUrl") @@ -48,4 +56,33 @@ public class WxApi { return ajax; } + @PostMapping("/getUrlLink") + @Anonymous + public AjaxResult getUrlLink(String path,String query) { + BusiNotice busiNotice = busiNoticeService.getById(query); + String platformName = baseCategoryService.selectByCode(busiNotice.getPlatformCode()).get(0).getTitle(); + String token = weChatUtils.getToken(); + Map map = new HashMap<>(); + map.put("path", path); + map.put("query", "noticeId="+query); + map.put("expire_type", 1); + map.put("expire_interval", 30); + String post = HttpUtil.post("https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + token, com.alibaba.fastjson2.JSONObject.toJSONString(map)); + com.alibaba.fastjson2.JSONObject jsonObject = com.alibaba.fastjson2.JSONObject.parseObject(post); + if (jsonObject.get("errcode").equals(0)) { + String res="通告快接\n" + + "【"+platformName+"】【"+busiNotice.getTitle()+"】\n" + + "招募人数:"+(busiNotice.getNeedNum()==null?"无上限":busiNotice.getNeedNum()+"名\n") + + "通告明细:"+busiNotice.getDetail()+"\n" + + "报名链接:"+jsonObject.get("url_link")+"\n" + + "大量小红书、B站、抖音、快手、微博高质量通告!"; + return AjaxResult.success("ok",res); + }else { + return AjaxResult.error(jsonObject.get("errmsg").toString()); + } + + } + + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignServiceImpl.java index 81ee32f..31d2a46 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/busi/service/impl/BusiNoticeSignServiceImpl.java @@ -15,6 +15,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.member.service.IMemberCardService; +import com.ruoyi.member.service.IMemberUserService; +import com.ruoyi.member.vo.MemberUserVO; import com.ruoyi.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -43,6 +45,8 @@ public class BusiNoticeSignServiceImpl extends ServiceImpl queryListPage(BusiNoticeSign pageReqVO, Page page) { @@ -70,7 +74,19 @@ public class BusiNoticeSignServiceImpl extends ServiceImpl=appNoticeSign.getCardList().size()){ + //直接扣赠送次数即可 + memberUserVO.setSendReportNum(memberUserVO.getSendReportNum()-appNoticeSign.getCardList().size()); + memberUserService.updateById(memberUserVO); + }else{ + //先扣赠送次数 再扣权益次数 + long lastNum = appNoticeSign.getCardList().size() - memberUserVO.getSendReportNum(); + cardService.dealMemberRights(loginUser.getUserId(),null,"report",Integer.valueOf(Long.toString(lastNum))); + memberUserVO.setSendReportNum(0L); + memberUserService.updateById(memberUserVO); + } for (JSONObject cardInfo : appNoticeSign.getCardList()) { BusiNoticeSign busiNoticeSign =new BusiNoticeSign(); busiNoticeSign.setNoticeId(appNoticeSign.getNoticeId()); @@ -86,9 +102,8 @@ public class BusiNoticeSignServiceImpl extends ServiceImpl list = new ArrayList<>(Arrays.asList(ids)); return toAjax(memberUserService.removeByIds(list)); } + + + /** + * 赠送新人好礼 + */ + @Log(title = "赠送新人好礼", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult sendNewGift() { + memberUserService.sendNewGift(); + return success(); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/domain/MemberUser.java b/ruoyi-admin/src/main/java/com/ruoyi/member/domain/MemberUser.java index 21213ed..db1a825 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/domain/MemberUser.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/domain/MemberUser.java @@ -11,7 +11,7 @@ import com.ruoyi.common.core.domain.DlBaseEntity; /** * 会员对象 dl_member_user - * + * * @author pqz * @date 2025-03-17 */ @@ -72,6 +72,10 @@ public class MemberUser extends DlBaseEntity /** 博主-剩余积分 */ @Excel(name = "博主-剩余积分") private Long bpoints; + /** + * 博主剩余报名次数 + */ + private Long sendReportNum; public MemberUser (String userType, SysUser user,Integer addNotice){ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberUserService.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberUserService.java index 41dfc71..3e38a5b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberUserService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/IMemberUserService.java @@ -87,5 +87,6 @@ public interface IMemberUserService extends IService { * @date 15:55 2025/3/26 **/ String gzhLogin(String wxOpenId, JSONObject userInfo); + void sendNewGift(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java index 603cd38..f217c9a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/member/service/impl/MemberUserServiceImpl.java @@ -1,12 +1,15 @@ package com.ruoyi.member.service.impl; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.BaseConfig; import com.ruoyi.base.service.IBaseCityService; +import com.ruoyi.base.service.IBaseConfigService; import com.ruoyi.busi.service.IBusiEvaluateService; import com.ruoyi.busi.service.IBusiNoticeService; import com.ruoyi.common.config.DlRightsConfig; @@ -34,6 +37,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigInteger; +import java.util.List; /** * 会员Service业务层处理 @@ -49,8 +54,7 @@ public class MemberUserServiceImpl extends ServiceImpl sendNewGift = baseConfigService.queryConfigByCode("send_new_gift"); + if(CollectionUtil.isNotEmpty(sendNewGift)){ + JSONObject jsonObject = JSONObject.parseObject(sendNewGift.get(0).getJsonStr()); + Long sendReportNum = jsonObject.getLong("sendReportNum"); + Long userId = SecurityUtils.getUserId(); + //博主,通告主基本信息 + MemberUserVO result = memberUserMapper.queryByUserId(userId, "02"); + result.setSendReportNum(result.getSendReportNum()+sendReportNum); + memberUserMapper.updateById(result); + } + } }