个人中心会员相关
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.vo.MemberDetailVO;
|
||||
import com.czg.market.vo.MemberListVO;
|
||||
import com.czg.market.vo.UMemberConfigVO;
|
||||
import com.czg.resp.CzgResult;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.czg.utils.ServletUtil;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -23,6 +22,14 @@ public class UMemberController {
|
|||
@Resource
|
||||
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 列表
|
||||
|
|
|
|||
|
|
@ -4,12 +4,7 @@ import com.czg.constant.TableValueConstant;
|
|||
import com.czg.exception.ApiNotPrintException;
|
||||
import com.czg.market.dto.MemberConfigDTO;
|
||||
import com.czg.market.dto.MemberLevelDTO;
|
||||
import com.czg.market.dto.MemberOrderDTO;
|
||||
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.czg.market.vo.*;
|
||||
import com.mybatisflex.core.service.IService;
|
||||
import com.czg.market.entity.TbMemberConfig;
|
||||
|
||||
|
|
@ -26,6 +21,7 @@ import java.util.List;
|
|||
public interface TbMemberConfigService extends IService<TbMemberConfig> {
|
||||
|
||||
MemberConfigVO detail(Long shopId);
|
||||
UMemberConfigVO detail(Long shopId, Long userId);
|
||||
|
||||
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.market.entity.*;
|
||||
import com.czg.market.service.*;
|
||||
import com.czg.market.vo.MemberConfigVO;
|
||||
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.market.vo.*;
|
||||
import com.czg.order.entity.OrderInfo;
|
||||
import com.czg.order.entity.OrderPayment;
|
||||
import com.czg.order.service.OrderInfoService;
|
||||
import com.czg.order.service.OrderPaymentService;
|
||||
import com.czg.sa.StpKit;
|
||||
import com.czg.service.market.enums.OrderStatusEnums;
|
||||
import com.czg.service.market.mapper.TbMemberConfigMapper;
|
||||
import com.czg.utils.AssertUtil;
|
||||
|
|
@ -99,6 +94,48 @@ public class TbMemberConfigServiceImpl extends ServiceImpl<TbMemberConfigMapper,
|
|||
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
|
||||
public Boolean edit(Long shopId, MemberConfigDTO memberDTO) {
|
||||
TbMemberConfig memberConfig = getOne(new QueryWrapper().eq(TbMemberConfig::getShopId, shopId));
|
||||
|
|
|
|||
Loading…
Reference in New Issue