| | |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.enumerates.AgentLevelEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.*; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | import cc.mrbird.febs.common.utils.AppContants; |
| | | import cc.mrbird.febs.common.utils.LoginUserUtil; |
| | | import cc.mrbird.febs.common.utils.MallUtils; |
| | | import cc.mrbird.febs.common.utils.RedisUtils; |
| | | import cc.mrbird.febs.mall.dto.*; |
| | | import cc.mrbird.febs.mall.entity.*; |
| | |
| | | import cc.mrbird.febs.pay.model.MemberWithdrawalDto; |
| | | import cc.mrbird.febs.pay.service.IXcxPayService; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.date.DateUnit; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import cn.hutool.core.util.IdUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.crypto.SecureUtil; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import lombok.RequiredArgsConstructor; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | private final SalemanCouponMapper salemanCouponMapper; |
| | | private final MallMemberCouponMapper mallMemberCouponMapper; |
| | | private final MallGoodsCouponMapper mallGoodsCouponMapper; |
| | | private final HappySaleLevelMapper happySaleLevelMapper; |
| | | private final HappyMemberLevelMapper happyMemberLevelMapper; |
| | | |
| | | |
| | | @Override |
| | | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { |
| | | Page<MallMember> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember); |
| | | // if(CollUtil.isNotEmpty(mallMembers.getRecords())){ |
| | | // for(MallMember mallMemberTeam : mallMembers.getRecords()){ |
| | | // Long salesmansId = mallMemberTeam.getSalesmansId(); |
| | | // MallSalesman mallSalesman = mallSalesmanMapper.selectById(salesmansId); |
| | | // if(ObjectUtil.isNotEmpty(mallSalesman)){ |
| | | // StringBuffer salesmanName = new StringBuffer(); |
| | | // salesmanName.append(mallSalesman.getName()); |
| | | // if(2 == mallSalesman.getState()){ |
| | | // salesmanName.append("(禁用)"); |
| | | // } |
| | | // mallMemberTeam.setSalesmansName(salesmanName.toString()); |
| | | // } |
| | | // } |
| | | // } |
| | | // IPage<MallMember> mallMembers = this.baseMapper.selectMallMemberListInPage(page, mallMember); |
| | | IPage<MallMember> mallMembers = this.baseMapper.selectHappyMemberListInPage(page, mallMember); |
| | | return mallMembers; |
| | | } |
| | | |
| | |
| | | } |
| | | mallMember.setAccountStatus(MallMember.ACCOUNT_STATUS_DISABLED); |
| | | mallMemberMapper.updateById(mallMember); |
| | | |
| | | String redisKey = AppContants.XCX_LOGIN_PREFIX + id; |
| | | String existToken = redisUtils.getString(redisKey); |
| | | if (StrUtil.isNotBlank(existToken)) { |
| | | Object o = redisUtils.get(existToken); |
| | | if (ObjectUtil.isNotEmpty(o)) { |
| | | redisUtils.del(existToken); |
| | | } |
| | | } |
| | | redisUtils.del(AppContants.XCX_LOGIN_PREFIX + id); |
| | | redisUtils.del(AppContants.XCX_LOGIN_PHONE_PREFIX + id); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | |
| | | |
| | | Integer type = mallSystemPayDto.getType(); |
| | | String filedType = ""; |
| | | Integer flowType = 0; |
| | | if (type == 1) { |
| | | filedType = "balance"; |
| | | flowType = FlowTypeEnum.BALANCE.getValue(); |
| | | } else if (type == 2) { |
| | | filedType = "score"; |
| | | } else if (type == 3) { |
| | | filedType = "prizeScore"; |
| | | flowType = FlowTypeEnum.PRIZE_SCORE.getValue(); |
| | | } else if (type == 3) { |
| | | filedType = "commission"; |
| | | flowType = FlowTypeEnum.COMMISSION.getValue(); |
| | | } else { |
| | | throw new FebsException("参数错误"); |
| | | } |
| | |
| | | } else { |
| | | iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType); |
| | | } |
| | | mallMoneyFlowService.addMoneyFlow(memberId, bigDecimal, MoneyFlowTypeEnum.SYSTEM.getValue(), null, type); |
| | | mallMoneyFlowService.addMoneyFlow( |
| | | memberId, |
| | | bigDecimal, |
| | | ScoreFlowTypeEnum.SYSTEM.getValue(), |
| | | MallUtils.getOrderNum(), |
| | | flowType, |
| | | StrUtil.format(ScoreFlowTypeEnum.SYSTEM.getDesc(),bigDecimal), |
| | | 2 |
| | | ); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | |
| | | |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse checkOrder(Long id) { |
| | | |
| | | MallMember mallMember = this.baseMapper.selectById(id); |
| | | |
| | | if(ObjectUtil.isNotEmpty(mallMember)){ |
| | | mallMember.setCheckOrder(StateUpDownEnum.DOWN.getCode() == mallMember.getCheckOrder() ? StateUpDownEnum.UP.getCode() : StateUpDownEnum.DOWN.getCode()); |
| | | this.baseMapper.updateById(mallMember); |
| | | } |
| | | |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse checkLeader(Long id) { |
| | | |
| | | MallMember mallMember = this.baseMapper.selectById(id); |
| | | if(ObjectUtil.isNotEmpty(mallMember)){ |
| | | mallMember.setCheckLeader(StateUpDownEnum.DOWN.getCode() == mallMember.getCheckLeader() ? StateUpDownEnum.UP.getCode() : StateUpDownEnum.DOWN.getCode()); |
| | | this.baseMapper.updateById(mallMember); |
| | | } |
| | | |
| | | return new FebsResponse().success().message("操作成功"); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse dataInfo() { |
| | | AdminDataInfoVo adminDataInfoVo = new AdminDataInfoVo(); |
| | | |
| | | List<MallMember> mallMembers = this.baseMapper.selectList(null); |
| | | if(CollUtil.isNotEmpty(mallMembers)){ |
| | | adminDataInfoVo.setTotalMember(mallMembers.size()); |
| | | |
| | | adminDataInfoVo.setTotalDayMember( |
| | | Math.toIntExact(mallMembers.stream().filter(mallMember -> DateUtil.compare(mallMember.getCreatedTime(), DateUtil.beginOfDay(new Date())) >= 0).count())); |
| | | adminDataInfoVo.setTotalWeekMember( |
| | | Math.toIntExact(mallMembers.stream().filter(mallMember -> DateUtil.compare(mallMember.getCreatedTime(), DateUtil.beginOfWeek(new Date())) >= 0).count())); |
| | | adminDataInfoVo.setTotalMonthMember( |
| | | Math.toIntExact(mallMembers.stream().filter(mallMember -> DateUtil.compare(mallMember.getCreatedTime(), DateUtil.beginOfMonth(new Date())) >= 0).count())); |
| | | } |
| | | |
| | | List<Integer> typeList = Arrays.asList(ScoreFlowTypeEnum.WECHAT_PAY.getValue(), ScoreFlowTypeEnum.PAY_BALANCE.getValue()); |
| | | List<MallMoneyFlow> mallMoneyFlows = mallMoneyFlowMapper.selectList( |
| | | Wrappers.lambdaQuery(MallMoneyFlow.class) |
| | | .in(MallMoneyFlow::getType, typeList) |
| | | ); |
| | | if(CollUtil.isNotEmpty(mallMoneyFlows)){ |
| | | adminDataInfoVo.setTotalAmount(mallMoneyFlows.stream().map(MallMoneyFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).negate()); |
| | | adminDataInfoVo.setTotalDayAmount( |
| | | mallMoneyFlows.stream().filter(mallMoneyFlow -> DateUtil.compare(mallMoneyFlow.getCreatedTime(), DateUtil.beginOfDay(new Date())) >= 0) |
| | | .map(MallMoneyFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).negate()); |
| | | adminDataInfoVo.setTotalWeekAmount( |
| | | mallMoneyFlows.stream().filter(mallMoneyFlow -> DateUtil.compare(mallMoneyFlow.getCreatedTime(), DateUtil.beginOfWeek(new Date())) >= 0) |
| | | .map(MallMoneyFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).negate()); |
| | | adminDataInfoVo.setTotalMonthAmount( |
| | | mallMoneyFlows.stream().filter(mallMoneyFlow -> DateUtil.compare(mallMoneyFlow.getCreatedTime(), DateUtil.beginOfMonth(new Date())) >= 0) |
| | | .map(MallMoneyFlow::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add).negate()); |
| | | |
| | | } |
| | | |
| | | return new FebsResponse().success().data(adminDataInfoVo); |
| | | } |
| | | } |