This commit is contained in:
PQZ 2025-04-18 17:54:06 +08:00
parent 9a6b8574ac
commit 35a13a527b
11 changed files with 152 additions and 70 deletions

View File

@ -137,7 +137,11 @@ public class BusiNoticeController extends BaseController
public AjaxResult saveOrUpdate(@RequestBody BusiNotice busiNotice) public AjaxResult saveOrUpdate(@RequestBody BusiNotice busiNotice)
{ {
JSONObject res = new JSONObject(); JSONObject res = new JSONObject();
res.put("noticeId", busiNoticeService.saveOrUpdateVo(busiNotice)); try{
res.put("noticeId", busiNoticeService.saveOrUpdateVo(busiNotice));
} catch (Exception e){
return error(e.getMessage());
}
return success(res); return success(res);
} }

View File

@ -47,7 +47,7 @@ public interface IBusiNoticeService extends IService<BusiNotice>
* @param data 保存参数 * @param data 保存参数
*/ */
void updateByIdVo(BusiNotice data); void updateByIdVo(BusiNotice data);
String saveOrUpdateVo(BusiNotice data); String saveOrUpdateVo(BusiNotice data) throws Exception;
void removeByIdsVo(List<String> ids); void removeByIdsVo(List<String> ids);
/** /**

View File

@ -35,6 +35,7 @@ import com.ruoyi.constant.DictConstants;
import com.ruoyi.member.domain.MemberApply; import com.ruoyi.member.domain.MemberApply;
import com.ruoyi.member.domain.MemberUser; import com.ruoyi.member.domain.MemberUser;
import com.ruoyi.member.service.IMemberApplyService; import com.ruoyi.member.service.IMemberApplyService;
import com.ruoyi.member.service.IMemberCardService;
import com.ruoyi.member.service.IMemberUserService; import com.ruoyi.member.service.IMemberUserService;
import com.ruoyi.system.service.ISysDictDataService; import com.ruoyi.system.service.ISysDictDataService;
import com.ruoyi.system.service.ISysDictTypeService; import com.ruoyi.system.service.ISysDictTypeService;
@ -46,6 +47,8 @@ import com.ruoyi.busi.mapper.BusiNoticeMapper;
import com.ruoyi.busi.service.IBusiNoticeService; import com.ruoyi.busi.service.IBusiNoticeService;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
/** /**
* 通告Service业务层处理 * 通告Service业务层处理
* *
@ -77,6 +80,8 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
private IBusiNoticeFormService busiNoticeFormService; private IBusiNoticeFormService busiNoticeFormService;
@Autowired @Autowired
private IBaseCityService cityService; private IBaseCityService cityService;
@Resource
private IMemberCardService cardService;
@Override @Override
@ -191,7 +196,9 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
@Override @Override
@Transactional @Transactional
public String saveOrUpdateVo(BusiNotice data) { public String saveOrUpdateVo(BusiNotice data) throws Exception {
//获取当前登录用户id
Long userId = SecurityUtils.getUserId();
if(ObjectUtil.isNotEmpty(data.getCityId())){ if(ObjectUtil.isNotEmpty(data.getCityId())){
//转换城市名称 //转换城市名称
LambdaQueryWrapper<BaseCity> queryWrapper =new LambdaQueryWrapper<>(); LambdaQueryWrapper<BaseCity> queryWrapper =new LambdaQueryWrapper<>();
@ -209,6 +216,10 @@ public class BusiNoticeServiceImpl extends ServiceImpl<BusiNoticeMapper,BusiNoti
}else { }else {
this.saveVo(data); this.saveVo(data);
} }
cardService.dealMemberRights(userId,null,"add_notice",1);
if (CollectionUtil.isNotEmpty(data.getCustomForm())) {
cardService.dealMemberRights(userId,null,"report_info_collect",1);
}
return data.getId(); return data.getId();
} }

View File

@ -12,6 +12,7 @@ import com.ruoyi.common.utils.DateUtils;
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.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.member.service.IMemberCardService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -20,6 +21,8 @@ import com.ruoyi.busi.mapper.BusiNoticeSignMapper;
import com.ruoyi.busi.domain.BusiNoticeSign; import com.ruoyi.busi.domain.BusiNoticeSign;
import com.ruoyi.busi.service.IBusiNoticeSignService; import com.ruoyi.busi.service.IBusiNoticeSignService;
import javax.annotation.Resource;
/** /**
* 通告报名Service业务层处理 * 通告报名Service业务层处理
* *
@ -33,6 +36,8 @@ public class BusiNoticeSignServiceImpl extends ServiceImpl<BusiNoticeSignMapper,
private BusiNoticeSignMapper busiNoticeSignMapper; private BusiNoticeSignMapper busiNoticeSignMapper;
@Autowired @Autowired
private ISysUserService userService; private ISysUserService userService;
@Resource
private IMemberCardService cardService;
@Override @Override
public IPage<BusiNoticeSign> queryListPage(BusiNoticeSign pageReqVO, Page<BusiNoticeSign> page) { public IPage<BusiNoticeSign> queryListPage(BusiNoticeSign pageReqVO, Page<BusiNoticeSign> page) {
@ -51,8 +56,8 @@ public class BusiNoticeSignServiceImpl extends ServiceImpl<BusiNoticeSignMapper,
throw new Exception("请勿重复报名!"); throw new Exception("请勿重复报名!");
} }
SysUser sysUser = userService.selectUserById(loginUser.getUserId()); SysUser sysUser = userService.selectUserById(loginUser.getUserId());
int i = 0;
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());
@ -67,7 +72,9 @@ public class BusiNoticeSignServiceImpl extends ServiceImpl<BusiNoticeSignMapper,
busiNoticeSign.setIsSuper(appNoticeSign.getIsSuper()); busiNoticeSign.setIsSuper(appNoticeSign.getIsSuper());
busiNoticeSign.setAddrId(appNoticeSign.getAddressId()); busiNoticeSign.setAddrId(appNoticeSign.getAddressId());
busiNoticeSignMapper.insert(busiNoticeSign); busiNoticeSignMapper.insert(busiNoticeSign);
i++;
} }
cardService.dealMemberRights(loginUser.getUserId(),null,"report",i);
} }
/** /**

View File

@ -8,14 +8,7 @@ import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log; import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
@ -33,8 +26,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
*/ */
@RestController @RestController
@RequestMapping("/member/card") @RequestMapping("/member/card")
public class MemberCardController extends BaseController public class MemberCardController extends BaseController {
{
@Autowired @Autowired
private IMemberCardService memberCardService; private IMemberCardService memberCardService;
@ -43,21 +35,43 @@ public class MemberCardController extends BaseController
*/ */
@PreAuthorize("@ss.hasPermi('member:card:list')") @PreAuthorize("@ss.hasPermi('member:card:list')")
@GetMapping("/list") @GetMapping("/list")
public AjaxResult list(MemberCard memberCard) public AjaxResult list(MemberCard memberCard) {
{
List<MemberCard> list = memberCardService.list(); List<MemberCard> list = memberCardService.list();
return success(list); return success(list);
} }
/**
* 通用权益值扣除接口
*
* @param userId 用户id
* @param rightsCode 权益code
* @param deplete 消耗值
* @return com.ruoyi.common.core.domain.AjaxResult
* @author PQZ
* @date 15:10 2025/4/18
**/
@GetMapping("/dealMemberRights")
public AjaxResult list(@RequestParam("userId") Long userId,
@RequestParam("rightsCode") String rightsCode,
@RequestParam("deplete") Integer deplete,
@RequestParam(value = "noticeId", required = false) String noticeId) {
try {
memberCardService.dealMemberRights(userId, noticeId, rightsCode, deplete);
} catch (Exception e) {
e.printStackTrace();
return error(e.getMessage());
}
return success();
}
/** /**
* 导出会员开卡记录列表 * 导出会员开卡记录列表
*/ */
@PreAuthorize("@ss.hasPermi('member:card:export')") @PreAuthorize("@ss.hasPermi('member:card:export')")
@Log(title = "会员开卡记录", businessType = BusinessType.EXPORT) @Log(title = "会员开卡记录", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, MemberCard memberCard) public void export(HttpServletResponse response, MemberCard memberCard) {
{
List<MemberCard> list = memberCardService.list(); List<MemberCard> list = memberCardService.list();
ExcelUtil<MemberCard> util = new ExcelUtil<MemberCard>(MemberCard.class); ExcelUtil<MemberCard> util = new ExcelUtil<MemberCard>(MemberCard.class);
util.exportExcel(response, list, "会员开卡记录数据"); util.exportExcel(response, list, "会员开卡记录数据");
@ -68,8 +82,7 @@ public class MemberCardController extends BaseController
*/ */
@PreAuthorize("@ss.hasPermi('member:card:query')") @PreAuthorize("@ss.hasPermi('member:card:query')")
@GetMapping(value = "/{id}") @GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") String id) public AjaxResult getInfo(@PathVariable("id") String id) {
{
return success(memberCardService.getById(id)); return success(memberCardService.getById(id));
} }
@ -79,8 +92,7 @@ public class MemberCardController extends BaseController
@PreAuthorize("@ss.hasPermi('member:card:add')") @PreAuthorize("@ss.hasPermi('member:card:add')")
@Log(title = "会员开卡记录", businessType = BusinessType.INSERT) @Log(title = "会员开卡记录", businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@RequestBody MemberCard memberCard) public AjaxResult add(@RequestBody MemberCard memberCard) {
{
return toAjax(memberCardService.save(memberCard)); return toAjax(memberCardService.save(memberCard));
} }
@ -90,8 +102,7 @@ public class MemberCardController extends BaseController
@PreAuthorize("@ss.hasPermi('member:card:edit')") @PreAuthorize("@ss.hasPermi('member:card:edit')")
@Log(title = "会员开卡记录", businessType = BusinessType.UPDATE) @Log(title = "会员开卡记录", businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@RequestBody MemberCard memberCard) public AjaxResult edit(@RequestBody MemberCard memberCard) {
{
return toAjax(memberCardService.updateById(memberCard)); return toAjax(memberCardService.updateById(memberCard));
} }
@ -100,9 +111,8 @@ public class MemberCardController extends BaseController
*/ */
@PreAuthorize("@ss.hasPermi('member:card:remove')") @PreAuthorize("@ss.hasPermi('member:card:remove')")
@Log(title = "会员开卡记录", businessType = BusinessType.DELETE) @Log(title = "会员开卡记录", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}") @DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable String[] ids) public AjaxResult remove(@PathVariable String[] ids) {
{
List<String> list = new ArrayList<>(Arrays.asList(ids)); List<String> list = new ArrayList<>(Arrays.asList(ids));
return toAjax(memberCardService.removeByIds(list)); return toAjax(memberCardService.removeByIds(list));
} }
@ -112,9 +122,8 @@ public class MemberCardController extends BaseController
*/ */
@GetMapping("/selectMemberRights") @GetMapping("/selectMemberRights")
public AjaxResult selectMemberRights() public AjaxResult selectMemberRights() {
{ return success(memberCardService.selectMemberRights(SecurityUtils.getUserId(), null));
return success( memberCardService.selectMemberRights(SecurityUtils.getUserId(),null));
} }
} }

View File

@ -68,10 +68,10 @@ public interface IMemberCardService extends IService<MemberCard> {
* @author PQZ * @author PQZ
* @date 14:23 2025/4/17 * @date 14:23 2025/4/17
* @param userId 用户id * @param userId 用户id
* @param noticeId 通告id
* @param rightsCode 权益编码 * @param rightsCode 权益编码
* @param deplete 扣的值 * @param deplete 扣的值
* @return void
**/ **/
void dealMemberRights(Long userId,String rightsCode,Integer deplete) throws Exception; void dealMemberRights(Long userId,String noticeId,String rightsCode,Integer deplete) throws Exception;
} }

View File

@ -1,16 +1,25 @@
package com.ruoyi.member.service; package com.ruoyi.member.service;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.member.domain.MemberFootprint; import com.ruoyi.member.domain.MemberFootprint;
/** /**
* 浏览足迹Service接口 * 浏览足迹Service接口
* *
* @author vinjor-m * @author vinjor-m
* @date 2025-03-17 * @date 2025-03-17
*/ */
public interface IMemberFootprintService extends IService<MemberFootprint> public interface IMemberFootprintService extends IService<MemberFootprint> {
{
/**
* 校验用户是否解锁过当前通告
*
* @param noticeId 通告id
* @param userId 用户id
* @return java.lang.Boolean
* @author PQZ
* @date 15:21 2025/4/18
**/
Boolean checkFoot(String noticeId, Long userId);
} }

View File

@ -37,12 +37,12 @@ public interface IMemberRightsService extends IService<MemberRights> {
/** /**
* 根据用户id卡id权益编码更新剩余值 * 根据用户id卡id权益编码更新剩余值
* *
* @param userId 用户id * @param userId 用户id
* @param cardId 卡id * @param memberCards 卡集合
* @param rightsCode 权益编码 * @param rightsCode 权益编码
* @param deplete 消耗值 * @param deplete 消耗值
* @author PQZ * @author PQZ
* @date 14:32 2025/4/17 * @date 14:32 2025/4/17
**/ **/
void dealMemberRights(Long userId, String cardId, String rightsCode, Integer deplete) throws Exception; void dealMemberRights(Long userId, List<MemberCard> memberCards, String rightsCode, Integer deplete) throws Exception;
} }

View File

@ -17,9 +17,11 @@ import com.ruoyi.member.domain.MemberRights;
import com.ruoyi.member.mapper.MemberCardMapper; import com.ruoyi.member.mapper.MemberCardMapper;
import com.ruoyi.member.mapper.MemberRightsMapper; import com.ruoyi.member.mapper.MemberRightsMapper;
import com.ruoyi.member.service.IMemberCardService; import com.ruoyi.member.service.IMemberCardService;
import com.ruoyi.member.service.IMemberFootprintService;
import com.ruoyi.member.service.IMemberRightsService; import com.ruoyi.member.service.IMemberRightsService;
import com.ruoyi.member.vo.MemberRightsVO; import com.ruoyi.member.vo.MemberRightsVO;
import com.ruoyi.member.vo.ViewRightsVO; import com.ruoyi.member.vo.ViewRightsVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; 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;
@ -48,6 +50,8 @@ public class MemberCardServiceImpl extends ServiceImpl<MemberCardMapper, MemberC
private IMemberRightsService rightsService; private IMemberRightsService rightsService;
@Autowired @Autowired
private MemberRightsMapper memberRightsMapper; private MemberRightsMapper memberRightsMapper;
@Resource
private IMemberFootprintService footprintService;
/** /**
@ -244,8 +248,10 @@ public class MemberCardServiceImpl extends ServiceImpl<MemberCardMapper, MemberC
//查询当前用户在当前时间有无正在服役的会员卡 //查询当前用户在当前时间有无正在服役的会员卡
Date time = new Date(); Date time = new Date();
LambdaQueryWrapper<MemberCard> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MemberCard> lambdaQueryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isNotEmpty(userType)) {
lambdaQueryWrapper.eq(MemberCard::getUserType, userType);
}
lambdaQueryWrapper lambdaQueryWrapper
.eq(MemberCard::getUserType, userType)
.eq(MemberCard::getUserId, userId) .eq(MemberCard::getUserId, userId)
.eq(DlBaseEntity::getDelFlag, 0) .eq(DlBaseEntity::getDelFlag, 0)
.lt(MemberCard::getStartDate, time) .lt(MemberCard::getStartDate, time)
@ -257,19 +263,31 @@ public class MemberCardServiceImpl extends ServiceImpl<MemberCardMapper, MemberC
/** /**
* @param userId 用户id * @param userId 用户id
* @param rightsCode 权益编码 * @param rightsCode 权益编码
* @param noticeId 通告id
* @param deplete 扣的值 * @param deplete 扣的值
* @author PQZ * @author PQZ
* @date 14:23 2025/4/17 * @date 14:23 2025/4/17
**/ **/
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void dealMemberRights(Long userId, String rightsCode, Integer deplete) throws Exception { public void dealMemberRights(Long userId,String noticeId, String rightsCode, Integer deplete) throws Exception {
//查询当前用户有无正在服役的通告主卡 //查询当前用户有无正在服役的通告主卡
List<MemberCard> memberCards = getMemberCards(userId, "01"); List<MemberCard> memberCards = getMemberCards(userId,null);
if (memberCards.isEmpty()){ if (memberCards.isEmpty()){
throw new Exception("无正在服役的会员卡"); throw new Exception("无正在服役的会员卡");
} }
rightsService.dealMemberRights(userId,memberCards.get(0).getCardId(),rightsCode,deplete); if ("unlock_notice".equals(rightsCode)) {
if (noticeId == null){
throw new Exception("无法识别当前通告");
}
//true表示有浏览记录false表示没有浏览记录如果当前用户在足迹表中未发现该通告
if (footprintService.checkFoot(noticeId,userId)){
rightsService.dealMemberRights(userId,memberCards,rightsCode,deplete);
}
} else {
rightsService.dealMemberRights(userId,memberCards,rightsCode,deplete);
}
} }
/** /**

View File

@ -1,25 +1,42 @@
package com.ruoyi.member.service.impl; package com.ruoyi.member.service.impl;
import java.util.List; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.utils.DateUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.member.domain.MemberFootprint;
import com.ruoyi.member.mapper.MemberFootprintMapper;
import com.ruoyi.member.service.IMemberFootprintService;
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 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.member.mapper.MemberFootprintMapper; import java.util.List;
import com.ruoyi.member.domain.MemberFootprint;
import com.ruoyi.member.service.IMemberFootprintService;
/** /**
* 浏览足迹Service业务层处理 * 浏览足迹Service业务层处理
* *
* @author vinjor-m * @author vinjor-m
* @date 2025-03-17 * @date 2025-03-17
*/ */
@Service @Service
public class MemberFootprintServiceImpl extends ServiceImpl<MemberFootprintMapper,MemberFootprint> implements IMemberFootprintService public class MemberFootprintServiceImpl extends ServiceImpl<MemberFootprintMapper, MemberFootprint> implements IMemberFootprintService {
{
@Autowired @Autowired
private MemberFootprintMapper memberFootprintMapper; private MemberFootprintMapper memberFootprintMapper;
/**
* 校验用户是否解锁过当前通告
*
* @param noticeId 通告id
* @param userId 用户id
* @return java.lang.Boolean
* @author PQZ
* @date 15:21 2025/4/18
**/
@Override
public Boolean checkFoot(String noticeId, Long userId) {
LambdaQueryWrapper<MemberFootprint> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(MemberFootprint::getNoticeId, noticeId)
.eq(MemberFootprint::getUserId, userId);
List<MemberFootprint> list = list(lambdaQueryWrapper);
return list.isEmpty();
}
} }

View File

@ -69,10 +69,10 @@ public class MemberRightsServiceImpl extends ServiceImpl<MemberRightsMapper, Mem
public Integer getReport(Long userId, String cardId) { public Integer getReport(Long userId, String cardId) {
LambdaQueryWrapper<MemberRights> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MemberRights> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper lambdaQueryWrapper
.eq(MemberRights::getUserId,userId) .eq(MemberRights::getUserId, userId)
.eq(MemberRights::getCardId,cardId); .eq(MemberRights::getCardId, cardId);
List<MemberRights> rights = list(lambdaQueryWrapper); List<MemberRights> rights = list(lambdaQueryWrapper);
if (rights.isEmpty()){ if (rights.isEmpty()) {
return dlRightsConfig.getReport(); return dlRightsConfig.getReport();
} else { } else {
List<MemberRights> filterRights = rights.stream() List<MemberRights> filterRights = rights.stream()
@ -85,25 +85,32 @@ public class MemberRightsServiceImpl extends ServiceImpl<MemberRightsMapper, Mem
/** /**
* 根据用户id卡id权益编码更新剩余值 * 根据用户id卡id权益编码更新剩余值
* *
* @param userId 用户id * @param userId 用户id
* @param cardId 卡id * @param memberCards 卡集合
* @param rightsCode 权益编码 * @param rightsCode 权益编码
* @param deplete 消耗值 * @param deplete 消耗值
* @author PQZ * @author PQZ
* @date 14:32 2025/4/17 * @date 14:32 2025/4/17
**/ **/
@Override @Override
public void dealMemberRights(Long userId, String cardId, String rightsCode, Integer deplete) throws Exception { public void dealMemberRights(Long userId, List<MemberCard> memberCards, String rightsCode, Integer deplete) throws Exception {
List<String> cardIds = memberCards.stream().map(MemberCard::getCardId).collect(Collectors.toList());
LambdaQueryWrapper<MemberRights> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MemberRights> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(MemberRights::getUserId,userId) lambdaQueryWrapper.eq(MemberRights::getUserId, userId)
.eq(MemberRights::getCardId,cardId) .in(MemberRights::getCardId, cardIds)
.eq(MemberRights::getRightsCode,rightsCode); .eq(MemberRights::getRightsCode, rightsCode);
try{ try {
MemberRights rights = getOne(lambdaQueryWrapper); MemberRights rights = getOne(lambdaQueryWrapper);
rights.setRemaining(rights.getRemaining()-deplete); if (!("02".equals(rights.getRightsType()) && rights.getRightsValue() == 0)) {
updateById(rights); int result = rights.getRemaining() - deplete;
}catch (Exception e){ if (result == 0) {
throw new Exception("根据用户id卡id权益编码查询权益出现错误"); throw new Exception("今日次数已达上限");
}
rights.setRemaining(result);
updateById(rights);
}
} catch (Exception e) {
throw new Exception(e.getMessage());
} }
} }