| | |
| | | import cc.mrbird.febs.pay.service.UnipayService; |
| | | import cc.mrbird.febs.rabbit.producter.AgentProducer; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUnit; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.DecimalFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | /** |
| | |
| | | private final MallMemberBankSignMapper mallMemberBankSignMapper; |
| | | private final MallMemberBankMapper mallMemberBankMapper; |
| | | private final MallShopApplyMapper mallShopApplyMapper; |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public Long createOrder(AddOrderDto addOrderDto) { |
| | | MallMember member = LoginUserUtil.getLoginUser(); |
| | | /** |
| | | * 根据会员星级判断是否可以购买该商品 |
| | | */ |
| | | MallMember mallMember = memberMapper.selectById(member.getId()); |
| | | String accountLevel = mallMember.getAccountLevel(); |
| | | Integer memberLevelCode = MemberAccountLevelEnum.NORMAL.getMemberLevelCode(accountLevel); |
| | | //获取商品星级 |
| | | MallGoods goods = mallGoodsMapper.selectById(addOrderDto.getGoodsId()); |
| | | String starRating = goods.getStarRating(); |
| | | Integer goodsStarCode = StarRatingEnum.NORMAL.getGoodsStarCode(starRating); |
| | | if(memberLevelCode < goodsStarCode){ |
| | | throw new FebsException("会员等级不够"); |
| | | } |
| | | /** |
| | | * 会员一天最多下单次数 |
| | | */ |
| | | DataDictionaryCustom buyTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.BUY_TIMES.getType(), DataDictionaryEnum.BUY_TIMES.getCode()); |
| | | Integer buyTimes = Integer.parseInt(buyTimesDic.getValue()); |
| | | |
| | | DateTime date = DateUtil.date(); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String yyyyMMdd = sdf.format(date); |
| | | Integer times = this.baseMapper.selectCountByCreateTimeAndMemberId(yyyyMMdd,member.getId()); |
| | | if(buyTimes <= times){ |
| | | throw new FebsException("会员今日已无法购买"); |
| | | } |
| | | |
| | | // MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId()); |
| | | // if (address == null) { |