Compare commits

...

2 Commits

Author SHA1 Message Date
Vinjor
9deca7721a Merge branch 'master' of http://122.51.230.86:3000/dianliang/dl_admin 2025-03-18 16:55:06 +08:00
Vinjor
a1b8ce6ff3 1 2025-03-18 16:54:59 +08:00
9 changed files with 163 additions and 32 deletions

View File

@ -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<CardRightsVO> 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<String> list = new ArrayList<>(Arrays.asList(ids));
return toAjax(baseCardRightsService.removeByIds(list));
}
}

View File

@ -38,6 +38,6 @@ public class BaseCardRights extends DlBaseEntity
/** 权益值 */
@Excel(name = "权益值")
private Long rightsValue;
private Integer rightsValue;
}

View File

@ -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<BaseCardRights>
{
IPage<BaseCardRights> queryListPage(@Param("entity") BaseCardRights entity, Page<BaseCardRights> page);
/**
* 查询会员卡权益
* @author vinjor-M
* @date 15:24 2025/3/18
* @param cardId 会员卡id
* @param userType 用户类型
* @return java.util.List<com.ruoyi.base.domain.BaseCardRights>
**/
List<CardRightsVO> getByIdAndType(@Param("cardId") String cardId, @Param("userType") String userType);
int removeByCardId(@Param("cardId") String cardId);
}

View File

@ -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<BaseCardRights>
{
IPage<BaseCardRights> queryListPage(BaseCardRights pageReqVO, Page<BaseCardRights> page);
/**
* 查询会员卡权益
* @author vinjor-M
* @date 15:23 2025/3/18
* @param id 会员卡id
* @param userType 用户类型
* @return java.util.List<com.ruoyi.base.domain.BaseCardRights>
**/
List<CardRightsVO> getByIdAndType(String id, String userType);
/**
* 保存会员卡权益
* @author vinjor-M
* @date 16:09 2025/3/18
* @param cardRightsVOS TODO
**/
void saveAndUpdate(List<CardRightsVO> cardRightsVOS);
}

View File

@ -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<BaseCardRightsMapper,
public IPage<BaseCardRights> queryListPage(BaseCardRights pageReqVO, Page<BaseCardRights> page) {
return baseCardRightsMapper.queryListPage(pageReqVO, page);
}
/**
* 查询会员卡权益
*
* @param id 会员卡id
* @param userType 用户类型
* @return java.util.List<com.ruoyi.base.domain.BaseCardRights>
* @author vinjor-M
* @date 15:23 2025/3/18
**/
@Override
public List<CardRightsVO> getByIdAndType(String id, String userType) {
List<CardRightsVO> 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<CardRightsVO> cardRightsVOS) {
//先删除原会员权益
baseCardRightsMapper.removeByCardId(cardRightsVOS.get(0).getCardId());
//保存新权益
List<BaseCardRights> 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);
}
}

View File

@ -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;
}

View File

@ -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";
}

View File

@ -31,9 +31,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryListPage" parameterType="BaseCard" resultMap="BaseCardResult">
<include refid="selectBaseCardVo"/>
<where>
del_flag=0
<if test="entity.cardName != null and entity.cardName != ''"> and card_name like concat('%', #{entity.cardName}, '%')</if>
<if test="entity.userType != null and entity.userType != ''"> and user_type = #{entity.userType}</if>
<if test="entity.isSystem != null "> and is_system = #{entity.isSystem}</if>
</where>
order by user_type,sort asc,create_time desc
</select>
</mapper>

View File

@ -19,6 +19,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<sql id="selectBaseCardRightsVo">
select id, card_id, rights_id, rights_value, creator, create_time, updater, update_time, del_flag from dl_base_card_rights
</sql>
<update id="removeByCardId">
UPDATE dl_base_card_rights
SET del_flag = 1
WHERE
card_id = #{cardId}
</update>
<select id="queryListPage" parameterType="BaseCardRights" resultMap="BaseCardRightsResult">
<include refid="selectBaseCardRightsVo"/>
@ -26,4 +32,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="entity.rightsId != null and entity.rightsId != ''"> and rights_id = #{entity.rightsId}</if>
</where>
</select>
<select id="getByIdAndType" resultType="com.ruoyi.base.vo.CardRightsVO">
SELECT
dbr.*,
dbcr.card_id,
dbcr.rights_value
FROM
dl_base_rights dbr
LEFT JOIN dl_base_card_rights dbcr ON dbr.id = dbcr.rights_id
AND dbcr.del_flag = 0
AND dbcr.card_id = #{cardId}
WHERE
dbr.del_flag = 0
AND dbr.user_type = #{userType}
AND dbr.id IS NOT NULL
ORDER BY dbr.sort,dbr.create_time
</select>
</mapper>