个人中心会员相关
This commit is contained in:
parent
f4b6e68eff
commit
6bcf58aafc
|
|
@ -3,11 +3,10 @@ package com.czg.controller.user;
|
||||||
import com.czg.market.service.TbMemberConfigService;
|
import com.czg.market.service.TbMemberConfigService;
|
||||||
import com.czg.market.vo.MemberDetailVO;
|
import com.czg.market.vo.MemberDetailVO;
|
||||||
import com.czg.market.vo.MemberListVO;
|
import com.czg.market.vo.MemberListVO;
|
||||||
|
import com.czg.market.vo.UMemberConfigVO;
|
||||||
import com.czg.resp.CzgResult;
|
import com.czg.resp.CzgResult;
|
||||||
import com.czg.sa.StpKit;
|
import com.czg.sa.StpKit;
|
||||||
import com.czg.utils.ServletUtil;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import org.springframework.validation.annotation.Validated;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -23,6 +22,14 @@ public class UMemberController {
|
||||||
@Resource
|
@Resource
|
||||||
private TbMemberConfigService memberConfigService;
|
private TbMemberConfigService memberConfigService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取当前店铺会员开通配置信息
|
||||||
|
* @param shopId 店铺id
|
||||||
|
*/
|
||||||
|
@GetMapping("/config")
|
||||||
|
public CzgResult<UMemberConfigVO> getConfig(@RequestParam Long shopId) {
|
||||||
|
return CzgResult.success(memberConfigService.detail(shopId, StpKit.USER.getLoginIdAsLong()));
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 获取所有已开通的会员
|
* 获取所有已开通的会员
|
||||||
* @return 列表
|
* @return 列表
|
||||||
|
|
|
||||||
|
|
@ -4,12 +4,7 @@ import com.czg.constant.TableValueConstant;
|
||||||
import com.czg.exception.ApiNotPrintException;
|
import com.czg.exception.ApiNotPrintException;
|
||||||
import com.czg.market.dto.MemberConfigDTO;
|
import com.czg.market.dto.MemberConfigDTO;
|
||||||
import com.czg.market.dto.MemberLevelDTO;
|
import com.czg.market.dto.MemberLevelDTO;
|
||||||
import com.czg.market.dto.MemberOrderDTO;
|
import com.czg.market.vo.*;
|
||||||
import com.czg.market.entity.MemberOrder;
|
|
||||||
import com.czg.market.vo.MemberConfigVO;
|
|
||||||
import com.czg.market.vo.MemberDetailVO;
|
|
||||||
import com.czg.market.vo.MemberLevelVO;
|
|
||||||
import com.czg.market.vo.MemberListVO;
|
|
||||||
import com.mybatisflex.core.service.IService;
|
import com.mybatisflex.core.service.IService;
|
||||||
import com.czg.market.entity.TbMemberConfig;
|
import com.czg.market.entity.TbMemberConfig;
|
||||||
|
|
||||||
|
|
@ -26,6 +21,7 @@ import java.util.List;
|
||||||
public interface TbMemberConfigService extends IService<TbMemberConfig> {
|
public interface TbMemberConfigService extends IService<TbMemberConfig> {
|
||||||
|
|
||||||
MemberConfigVO detail(Long shopId);
|
MemberConfigVO detail(Long shopId);
|
||||||
|
UMemberConfigVO detail(Long shopId, Long userId);
|
||||||
|
|
||||||
Boolean edit(Long shopId, MemberConfigDTO memberDTO);
|
Boolean edit(Long shopId, MemberConfigDTO memberDTO);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.czg.market.vo;
|
||||||
|
|
||||||
|
import com.czg.market.dto.MemberConfigDTO;
|
||||||
|
import jakarta.validation.Valid;
|
||||||
|
import jakarta.validation.constraints.DecimalMin;
|
||||||
|
import jakarta.validation.constraints.Min;
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class UMemberConfigVO implements Serializable {
|
||||||
|
/**
|
||||||
|
* 店铺会员配置信息
|
||||||
|
*/
|
||||||
|
private MemberConfigVO memberConfig;
|
||||||
|
/**
|
||||||
|
* kv形式,BIND_PHONE绑定手机号 ORDER订单数 COST_AMOUNT消费金额 RECHARGE_AMOUNT充值金额, true满足 false不满足
|
||||||
|
*/
|
||||||
|
private Map<String, Object> conditionMap;
|
||||||
|
}
|
||||||
|
|
@ -14,16 +14,11 @@ import com.czg.account.entity.*;
|
||||||
import com.czg.account.service.*;
|
import com.czg.account.service.*;
|
||||||
import com.czg.market.entity.*;
|
import com.czg.market.entity.*;
|
||||||
import com.czg.market.service.*;
|
import com.czg.market.service.*;
|
||||||
import com.czg.market.vo.MemberConfigVO;
|
import com.czg.market.vo.*;
|
||||||
import com.czg.market.vo.MemberDetailVO;
|
|
||||||
import com.czg.market.vo.MemberLevelVO;
|
|
||||||
import com.czg.exception.ApiNotPrintException;
|
|
||||||
import com.czg.market.vo.MemberListVO;
|
|
||||||
import com.czg.order.entity.OrderInfo;
|
import com.czg.order.entity.OrderInfo;
|
||||||
import com.czg.order.entity.OrderPayment;
|
import com.czg.order.entity.OrderPayment;
|
||||||
import com.czg.order.service.OrderInfoService;
|
import com.czg.order.service.OrderInfoService;
|
||||||
import com.czg.order.service.OrderPaymentService;
|
import com.czg.order.service.OrderPaymentService;
|
||||||
import com.czg.sa.StpKit;
|
|
||||||
import com.czg.service.market.enums.OrderStatusEnums;
|
import com.czg.service.market.enums.OrderStatusEnums;
|
||||||
import com.czg.service.market.mapper.TbMemberConfigMapper;
|
import com.czg.service.market.mapper.TbMemberConfigMapper;
|
||||||
import com.czg.utils.AssertUtil;
|
import com.czg.utils.AssertUtil;
|
||||||
|
|
@ -99,6 +94,48 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
||||||
return memberConfigVO;
|
return memberConfigVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UMemberConfigVO detail(Long shopId, Long userId) {
|
||||||
|
MemberConfigVO memberConfigVO = detail(shopId);
|
||||||
|
ShopUser shopUserInfo = shopUserService.getShopUserInfo(shopId, userId);
|
||||||
|
HashMap<String, Object> conditionMap = new HashMap<>();
|
||||||
|
UMemberConfigVO configVO = new UMemberConfigVO();
|
||||||
|
configVO.setMemberConfig(memberConfigVO);
|
||||||
|
configVO.setConditionMap(conditionMap);
|
||||||
|
if (memberConfigVO.getConditionList() != null) {
|
||||||
|
for (MemberConfigDTO.condition item : memberConfigVO.getConditionList()) {
|
||||||
|
switch (item.getCode()) {
|
||||||
|
case "BIND_PHONE":
|
||||||
|
conditionMap.put("BIND_PHONE", StrUtil.isNotBlank(shopUserInfo.getPhone()));
|
||||||
|
break;
|
||||||
|
case "ORDER":
|
||||||
|
conditionMap.put("ORDER", orderInfoService.count(new QueryWrapper().eq(OrderInfo::getShopId, shopUserInfo.getSourceShopId()).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
|
||||||
|
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode())) >= Integer.parseInt(item.getValue()));
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "COST_AMOUNT":
|
||||||
|
conditionMap.put("BIND_PHONE", orderInfoService.list(new QueryWrapper().eq(OrderInfo::getShopId, shopUserInfo.getSourceShopId()).eq(OrderInfo::getUserId, shopUserInfo.getUserId())
|
||||||
|
.notIn(OrderInfo::getStatus, OrderStatusEnums.UNPAID.getCode(), OrderStatusEnums.CANCELLED.getCode()))
|
||||||
|
.stream().map(OrderInfo::getPayAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) >= 0);
|
||||||
|
|
||||||
|
break;
|
||||||
|
case "RECHARGE_AMOUNT":
|
||||||
|
conditionMap.put("BIND_PHONE", paymentService.list(new QueryWrapper().eq(OrderPayment::getShopId, shopUserInfo.getSourceShopId())
|
||||||
|
.eq(OrderPayment::getSourceId, shopUserInfo.getId()).isNotNull(OrderPayment::getTradeNumber))
|
||||||
|
.stream().map(OrderPayment::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).compareTo(new BigDecimal(item.getValue())) >= 0);
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new CzgException("会员开通条件类型错误");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return configVO;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean edit(Long shopId, MemberConfigDTO memberDTO) {
|
public Boolean edit(Long shopId, MemberConfigDTO memberDTO) {
|
||||||
TbMemberConfig memberConfig = getOne(new QueryWrapper().eq(TbMemberConfig::getShopId, shopId));
|
TbMemberConfig memberConfig = getOne(new QueryWrapper().eq(TbMemberConfig::getShopId, shopId));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue