diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardRightsController.java b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardRightsController.java index 99473b9..9d5be09 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardRightsController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/controller/BaseCardRightsController.java @@ -6,6 +6,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.base.vo.CardRightsVO; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -69,44 +70,21 @@ public class BaseCardRightsController extends BaseController /** * 获取会员卡权益详细信息 */ - @PreAuthorize("@ss.hasPermi('base:cardRights:query')") - @GetMapping(value = "/{id}") - public AjaxResult getInfo(@PathVariable("id") String id) + @GetMapping(value = "/getByCardId") + public AjaxResult getInfo(String id,String userType) { - return success(baseCardRightsService.getById(id)); + return success(baseCardRightsService.getByIdAndType(id,userType)); } /** - * 新增会员卡权益 + * 保存会员卡权益配置 */ - @PreAuthorize("@ss.hasPermi('base:cardRights:add')") @Log(title = "会员卡权益", businessType = BusinessType.INSERT) - @PostMapping - public AjaxResult add(@RequestBody BaseCardRights baseCardRights) + @PostMapping(value = "/saveAndUpdate") + public AjaxResult saveAndUpdate(@RequestBody List cardRightsVOS) { - return toAjax(baseCardRightsService.save(baseCardRights)); + baseCardRightsService.saveAndUpdate(cardRightsVOS); + return success(); } - /** - * 修改会员卡权益 - */ - @PreAuthorize("@ss.hasPermi('base:cardRights:edit')") - @Log(title = "会员卡权益", businessType = BusinessType.UPDATE) - @PutMapping - public AjaxResult edit(@RequestBody BaseCardRights baseCardRights) - { - return toAjax(baseCardRightsService.updateById(baseCardRights)); - } - - /** - * 删除会员卡权益 - */ - @PreAuthorize("@ss.hasPermi('base:cardRights:remove')") - @Log(title = "会员卡权益", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") - public AjaxResult remove(@PathVariable String[] ids) - { - List list = new ArrayList<>(Arrays.asList(ids)); - return toAjax(baseCardRightsService.removeByIds(list)); - } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCardRights.java b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCardRights.java index c2679fc..a23a7a9 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCardRights.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/domain/BaseCardRights.java @@ -38,6 +38,6 @@ public class BaseCardRights extends DlBaseEntity /** 权益值 */ @Excel(name = "权益值") - private Long rightsValue; + private Integer rightsValue; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardRightsMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardRightsMapper.java index b4c054c..4afe7f7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardRightsMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/mapper/BaseCardRightsMapper.java @@ -4,6 +4,7 @@ import java.util.List; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.base.domain.BaseCardRights; +import com.ruoyi.base.vo.CardRightsVO; import org.apache.ibatis.annotations.Param; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -18,4 +19,16 @@ import org.apache.ibatis.annotations.Mapper; public interface BaseCardRightsMapper extends BaseMapper { IPage queryListPage(@Param("entity") BaseCardRights entity, Page page); + + /** + * 查询会员卡权益 + * @author vinjor-M + * @date 15:24 2025/3/18 + * @param cardId 会员卡id + * @param userType 用户类型 + * @return java.util.List + **/ + List getByIdAndType(@Param("cardId") String cardId, @Param("userType") String userType); + + int removeByCardId(@Param("cardId") String cardId); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardRightsService.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardRightsService.java index 4329262..7fcebd8 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardRightsService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/IBaseCardRightsService.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.base.domain.BaseCardRights; +import com.ruoyi.base.vo.CardRightsVO; /** * 会员卡权益Service接口 @@ -15,4 +16,22 @@ import com.ruoyi.base.domain.BaseCardRights; public interface IBaseCardRightsService extends IService { IPage queryListPage(BaseCardRights pageReqVO, Page page); + + /** + * 查询会员卡权益 + * @author vinjor-M + * @date 15:23 2025/3/18 + * @param id 会员卡id + * @param userType 用户类型() + * @return java.util.List + **/ + List getByIdAndType(String id, String userType); + + /** + * 保存会员卡权益 + * @author vinjor-M + * @date 16:09 2025/3/18 + * @param cardRightsVOS TODO + **/ + void saveAndUpdate(List cardRightsVOS); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardRightsServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardRightsServiceImpl.java index 9fe7734..845b43a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardRightsServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/service/impl/BaseCardRightsServiceImpl.java @@ -1,9 +1,14 @@ package com.ruoyi.base.service.impl; +import java.util.ArrayList; import java.util.List; + +import com.ruoyi.base.vo.CardRightsVO; import com.ruoyi.common.utils.DateUtils; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ruoyi.constant.DictConstants; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -27,4 +32,49 @@ public class BaseCardRightsServiceImpl extends ServiceImpl queryListPage(BaseCardRights pageReqVO, Page page) { return baseCardRightsMapper.queryListPage(pageReqVO, page); } + + /** + * 查询会员卡权益 + * + * @param id 会员卡id + * @param userType 用户类型() + * @return java.util.List + * @author vinjor-M + * @date 15:23 2025/3/18 + **/ + @Override + public List getByIdAndType(String id, String userType) { + List list = baseCardRightsMapper.getByIdAndType(id, userType); + list.forEach(item->{ + item.setCardId(id); + if(DictConstants.RIGHTS_TYPE_NUMBER.equals(item.getRightsType()) && null==item.getRightsValue()){ + //数量限制 + item.setRightsValue(0); + } + }); + return list; + } + + /** + * 保存会员卡权益 + * + * @param cardRightsVOS + * @author vinjor-M + * @date 16:09 2025/3/18 + **/ + @Override + public void saveAndUpdate(List cardRightsVOS) { + //先删除原会员权益 + baseCardRightsMapper.removeByCardId(cardRightsVOS.get(0).getCardId()); + //保存新权益 + List insertList = new ArrayList<>(); + cardRightsVOS.forEach(item->{ + BaseCardRights cardRights = new BaseCardRights(); + cardRights.setCardId(item.getCardId()); + cardRights.setRightsId(item.getId()); + cardRights.setRightsValue(item.getRightsValue()); + insertList.add(cardRights); + }); + this.saveBatch(insertList); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/base/vo/CardRightsVO.java b/ruoyi-admin/src/main/java/com/ruoyi/base/vo/CardRightsVO.java new file mode 100644 index 0000000..1c7adda --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/base/vo/CardRightsVO.java @@ -0,0 +1,21 @@ +package com.ruoyi.base.vo; + +import com.ruoyi.base.domain.BaseCardRights; +import com.ruoyi.base.domain.BaseRights; +import com.ruoyi.common.annotation.Excel; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 会员卡权益扩展VO + * @author vinjor-M + * @date 15:29 2025/3/18 +**/ +@EqualsAndHashCode(callSuper = true) +@Data +public class CardRightsVO extends BaseRights { + /** 会员卡id */ + private String cardId; + /** 权益值 */ + private Integer rightsValue; +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/constant/DictConstants.java b/ruoyi-admin/src/main/java/com/ruoyi/constant/DictConstants.java new file mode 100644 index 0000000..e53b92d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/constant/DictConstants.java @@ -0,0 +1,25 @@ +package com.ruoyi.constant; + +import io.jsonwebtoken.Claims; + +import java.util.Locale; + +/** + * 通用常量信息 + * + * @author ruoyi + */ +public class DictConstants +{ + /** + * 权益类型字典--是否支持 + */ + public static final String RIGHTS_TYPE_IF = "01"; + /** + * 权益类型字典--数量限制 + */ + public static final String RIGHTS_TYPE_NUMBER = "02"; + + + +} diff --git a/ruoyi-admin/src/main/resources/mapper/base/BaseCardMapper.xml b/ruoyi-admin/src/main/resources/mapper/base/BaseCardMapper.xml index dcf9875..3329a32 100644 --- a/ruoyi-admin/src/main/resources/mapper/base/BaseCardMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/base/BaseCardMapper.xml @@ -31,9 +31,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/base/BaseCardRightsMapper.xml b/ruoyi-admin/src/main/resources/mapper/base/BaseCardRightsMapper.xml index 8d97073..4569da1 100644 --- a/ruoyi-admin/src/main/resources/mapper/base/BaseCardRightsMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/base/BaseCardRightsMapper.xml @@ -19,6 +19,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select id, card_id, rights_id, rights_value, creator, create_time, updater, update_time, del_flag from dl_base_card_rights + + UPDATE dl_base_card_rights + SET del_flag = 1 + WHERE + card_id = #{cardId} + + + \ No newline at end of file