Compare commits

...

9 Commits

Author SHA1 Message Date
e3d554da42 退款空指针处理 2024-10-17 16:30:07 +08:00
6ffa6d1af4 Merge branch 'master' of http://101.43.112.107:3000/root/allLikeMall into cxw 2024-10-17 15:27:30 +08:00
b9f0591578 Merge pull request '修改积分商城订单记录时间排序' (#51) from sjy-two into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: http://101.43.112.107:3000/root/allLikeMall/pulls/51
2024-10-17 11:24:41 +08:00
2f7ffb4032 Merge pull request '会员权益列表' (#50) from khy1 into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: http://101.43.112.107:3000/root/allLikeMall/pulls/50
2024-10-17 11:24:09 +08:00
138ddc13bb 修改积分商城订单记录时间排序 2024-10-17 11:22:54 +08:00
khy
d2c735ac18 会员权益列表 2024-10-17 11:19:48 +08:00
2c875571ee Merge pull request '会员类型列表' (#49) from khy into master
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: http://101.43.112.107:3000/root/allLikeMall/pulls/49
2024-10-17 09:28:44 +08:00
khy
228fe0cc82 会员类型列表 2024-10-17 09:19:31 +08:00
a6a1ab163d Merge pull request 'cxw' (#48) from cxw into master
All checks were successful
continuous-integration/drone Build is passing
Reviewed-on: http://101.43.112.107:3000/root/allLikeMall/pulls/48
2024-10-16 15:06:54 +08:00
16 changed files with 202 additions and 3 deletions

View File

@ -1,5 +1,5 @@
<template>
<Dialog v-model="dialogVisible" :title="dialogTitle" width="65%">
<Dialog v-model="dialogVisible" :title="dialogTitle" width="95%">
<Form
ref="formRef"
v-loading="formLoading"

View File

@ -11,7 +11,11 @@
<el-input v-model="formData.name" placeholder="请输入会员卡名称" />
</el-form-item>
<el-form-item label="会员有效期(天)" prop="vid">
<el-input v-model="formData.vid" placeholder="请输入会员有效期(天)" />
<el-input
v-model="formData.vid"
placeholder="请输入会员有效期(天)"
:disabled="formData.id !== undefined && formData.name === '永久'"
/>
</el-form-item>
<el-form-item label="会员卡原价" prop="originalPrice">
<el-input v-model="formData.originalPrice" placeholder="请输入会员卡原价" />

View File

@ -136,6 +136,6 @@ public interface TradeOrderMapper extends BaseMapperX<TradeOrderDO> {
" inner join trade_order_item b on a.id = b.order_id " +
" inner join (SELECT sort, label, value, dict_type, css_class FROM system_dict_data WHERE dict_type = 'trade_order_status') d on d.sort = a.status "+
" inner join product_spu c on b.spu_id = c.id " +
" where a.user_id = #{userId} and a.use_point > 0 ")
" where a.user_id = #{userId} and a.use_point > 0 order by a.create_time ASC ")
List<AppPointOrderVO> getPointOrder(Long userId);
}

View File

@ -906,6 +906,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
// 2.1 更新订单的退款金额积分
Integer orderRefundPrice = order.getRefundPrice() + refundPrice;
if (order.getRefundPoint() == null){
order.setRefundPoint(0);
}
Integer orderRefundPoint = order.getRefundPoint() + orderItem.getUsePoint();
Integer refundStatus = isAllOrderItemAfterSaleSuccess(order.getId()) ?
TradeOrderRefundStatusEnum.ALL.getStatus() // 如果都售后成功则需要取消订单

View File

@ -0,0 +1,37 @@
package cn.iocoder.yudao.module.member.controller.app.benefit;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.member.controller.app.benefit.vo.AppMemberBenefitRespVO;
import cn.iocoder.yudao.module.member.convert.benefit.MemberBenefitConvert;
import cn.iocoder.yudao.module.member.dal.dataobject.memberbenefit.PaidMemberBenefitDO;
import cn.iocoder.yudao.module.member.service.memberbenefit.PaidMemberBenefitService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "用户 App - 付费会员权益")
@RestController
@RequestMapping("/member/benefit")
@Validated
public class AppMemberBenefitController {
@Resource
private PaidMemberBenefitService paidMemberBenefitService;
@GetMapping("/list")
@Operation(summary = "获得会员权益列表")
public CommonResult<List<AppMemberBenefitRespVO>> getPaidMemberBenefitPage() {
List<PaidMemberBenefitDO> list = paidMemberBenefitService.getMemberBenefitList(CommonStatusEnum.DISABLE.getStatus());
return success(MemberBenefitConvert.INSTANCE.convertList(list));
}
}

View File

@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.member.controller.app.benefit.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "用户 App - 会员权益 Response VOO")
@Data
public class AppMemberBenefitRespVO {
@Schema(description = "权益名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
private String benName;
@Schema(description = "展示名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
private String showName;
@Schema(description = "图标地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn")
private String iconUrl;
@Schema(description = "描述")
private String intro;
}

View File

@ -0,0 +1,37 @@
package cn.iocoder.yudao.module.member.controller.app.type;
import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.module.member.controller.app.type.vo.AppMemberCardTypeRespVO;
import cn.iocoder.yudao.module.member.convert.type.MemberCardTypeConvert;
import cn.iocoder.yudao.module.member.dal.dataobject.membercardtype.PaidMemberCardTypeDO;
import cn.iocoder.yudao.module.member.service.membercardtype.PaidMemberCardTypeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "用户 App - 会员卡类型")
@RestController
@RequestMapping("/member/card/type")
@Validated
public class AppMemberCardTypeController {
@Resource
private PaidMemberCardTypeService cardService;
@GetMapping("/list")
@Operation(summary = "获得会员卡类型列表")
public CommonResult<List<AppMemberCardTypeRespVO>> list() {
/** 查询状态为启用的会员卡类型列表*/
List<PaidMemberCardTypeDO> list = cardService.getCardTypeList(CommonStatusEnum.DISABLE.getStatus());
return success(MemberCardTypeConvert.INSTANCE.convertList(list));
}
}

View File

@ -0,0 +1,25 @@
package cn.iocoder.yudao.module.member.controller.app.type.vo;
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Schema(description = "用户 App - 会员卡类型 Response VO")
@Data
public class AppMemberCardTypeRespVO {
@Schema(description = "会员卡名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
private String name;
@Schema(description = "会员有效期(天)", requiredMode = Schema.RequiredMode.REQUIRED, example = "13455")
private String vid;
@Schema(description = "会员卡原价", requiredMode = Schema.RequiredMode.REQUIRED, example = "32259")
private BigDecimal originalPrice;
@Schema(description = "会员卡优惠价", example = "12301")
private BigDecimal specialPrice;
}

View File

@ -0,0 +1,19 @@
package cn.iocoder.yudao.module.member.convert.benefit;
import cn.iocoder.yudao.module.member.controller.app.benefit.vo.AppMemberBenefitRespVO;
import cn.iocoder.yudao.module.member.dal.dataobject.memberbenefit.PaidMemberBenefitDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
/**
* 会员权益 Convert
*/
@Mapper
public interface MemberBenefitConvert {
MemberBenefitConvert INSTANCE = Mappers.getMapper(MemberBenefitConvert.class);
List<AppMemberBenefitRespVO> convertList(List<PaidMemberBenefitDO> list);
}

View File

@ -0,0 +1,17 @@
package cn.iocoder.yudao.module.member.convert.type;
import cn.iocoder.yudao.module.member.controller.app.type.vo.AppMemberCardTypeRespVO;
import cn.iocoder.yudao.module.member.dal.dataobject.membercardtype.PaidMemberCardTypeDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import java.util.List;
@Mapper
public interface MemberCardTypeConvert {
MemberCardTypeConvert INSTANCE = Mappers.getMapper(MemberCardTypeConvert.class);
List<AppMemberCardTypeRespVO> convertList(List<PaidMemberCardTypeDO> list);
}

View File

@ -29,4 +29,8 @@ public interface PaidMemberBenefitMapper extends BaseMapperX<PaidMemberBenefitDO
.orderByDesc(PaidMemberBenefitDO::getId));
}
default List<PaidMemberBenefitDO> selectListByStatus(Integer status){
return selectList(PaidMemberBenefitDO::getStatus, status);
}
}

View File

@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.member.controller.admin.membercardtype.vo.PaidMem
import cn.iocoder.yudao.module.member.dal.dataobject.membercardtype.PaidMemberCardTypeDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 会员卡类型 Mapper
*
@ -26,4 +28,7 @@ public interface PaidMemberCardTypeMapper extends BaseMapperX<PaidMemberCardType
.orderByDesc(PaidMemberCardTypeDO::getId));
}
default List<PaidMemberCardTypeDO> selectListByStatus(Integer status){
return selectList(PaidMemberCardTypeDO::getStatus, status);
}
}

View File

@ -59,4 +59,11 @@ public interface PaidMemberBenefitService {
* @return void
*/
void updatePaidMemberBenefitStatus(PaidMemberBenefitStatusReqVO req);
/**
* 查询付费会员列表
* @param status
* @return
*/
List<PaidMemberBenefitDO> getMemberBenefitList(Integer status);
}

View File

@ -82,4 +82,10 @@ public class PaidMemberBenefitServiceImpl implements PaidMemberBenefitService {
paidMemberBenefitMapper.updateById(new PaidMemberBenefitDO().setId(req.getId()).setStatus(req.getStatus()));
}
@Override
public List<PaidMemberBenefitDO> getMemberBenefitList(Integer status) {
List<PaidMemberBenefitDO> list = paidMemberBenefitMapper.selectListByStatus(status);
return list;
}
}

View File

@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.member.controller.admin.membercardtype.vo.PaidMem
import cn.iocoder.yudao.module.member.dal.dataobject.membercardtype.PaidMemberCardTypeDO;
import javax.validation.Valid;
import java.util.List;
/**
* 会员卡类型 Service 接口
@ -52,4 +53,6 @@ public interface PaidMemberCardTypeService {
*/
PageResult<PaidMemberCardTypeDO> getcardPage(PaidMemberCardTypePageReqVO pageReqVO);
List<PaidMemberCardTypeDO> getCardTypeList (Integer status);
}

View File

@ -11,6 +11,8 @@ import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.List;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.CARD_NOT_EXISTS;
@ -68,4 +70,11 @@ public class PaidMemberCardTypeServiceImpl implements PaidMemberCardTypeService
return cardMapper.selectPage(pageReqVO);
}
@Override
public List<PaidMemberCardTypeDO> getCardTypeList(Integer status) {
List<PaidMemberCardTypeDO> list = cardMapper.selectListByStatus(status);
return list;
}
}