|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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.*; | 
|---|
|  |  |  | import cc.mrbird.febs.common.exception.FebsException; | 
|---|
|  |  |  | import cc.mrbird.febs.common.utils.LoginUserUtil; | 
|---|
|  |  |  | import cc.mrbird.febs.common.utils.MallUtils; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.dto.*; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.entity.*; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.entity.MallNewsInfo; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.mapper.*; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.service.IAdminMallMemberService; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.service.IApiMallMemberWalletService; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.service.IMallMoneyFlowService; | 
|---|
|  |  |  | import cc.mrbird.febs.mall.vo.*; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.model.SinglePayDto; | 
|---|
|  |  |  | import cc.mrbird.febs.pay.service.UnipayService; | 
|---|
|  |  |  | import cn.hutool.core.collection.CollUtil; | 
|---|
|  |  |  | 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.QueryWrapper; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.metadata.IPage; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
|---|
|  |  |  | import lombok.RequiredArgsConstructor; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.apache.xmlbeans.impl.store.Query; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallMemberMapper mallMemberMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallMemberWalletMapper mallMemberWalletMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallMoneyFlowMapper mallMoneyFlowMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallMemberPaymentMapper mallMemberPaymentMapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | private final IApiMallMemberWalletService iApiMallMemberWalletService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final AppVersionMapper appVersionMapper; | 
|---|
|  |  |  | private final MallMemberWithdrawMapper mallMemberWithdrawMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final MallNewsInfoMapper mallNewsInfoMapper; | 
|---|
|  |  |  | private final MallShopApplyMapper mallShopApplyMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final IMallMoneyFlowService mallMoneyFlowService; | 
|---|
|  |  |  | private final UnipayService unipayService; | 
|---|
|  |  |  | private final MallMemberBankMapper mallMemberBankMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void changeIdentity(Integer type, Long id, Integer value) { | 
|---|
|  |  |  | MallMember mallMember = mallMemberMapper.selectById(id); | 
|---|
|  |  |  | if(mallMember == null) { | 
|---|
|  |  |  | throw new FebsException("参数错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (type == 1) { | 
|---|
|  |  |  | mallMember.setDirector(value); | 
|---|
|  |  |  | } else if (type == 2){ | 
|---|
|  |  |  | mallMember.setStoreMaster(value); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new FebsException("参数错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | this.baseMapper.updateById(mallMember); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public MallMemberVo getMallMemberInfoById(long id) { | 
|---|
|  |  |  | MallMemberVo mallMemberVo = mallMemberMapper.getMallMemberInfoById(id); | 
|---|
|  |  |  | return mallMemberVo; | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse chargeAgree(Long id) { | 
|---|
|  |  |  | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMoneyFlow)){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMemberWithdraw)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("系统繁忙,请刷新后重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(1 != mallMoneyFlow.getStatus()){ | 
|---|
|  |  |  | if(1 != mallMemberWithdraw.getStatus()){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("当前状态不是提现中"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMoneyFlow.setStatus(2); | 
|---|
|  |  |  | mallMoneyFlowMapper.updateById(mallMoneyFlow); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); | 
|---|
|  |  |  | //        MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); | 
|---|
|  |  |  | //        if(ObjectUtil.isEmpty(mallMemberBank)){ | 
|---|
|  |  |  | //            return new FebsResponse().fail().message("提现地址不存在"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //更新提现记录状态为成功 | 
|---|
|  |  |  | mallMemberWithdrawMapper.updateStatusById(2,mallMemberWithdraw.getId()); | 
|---|
|  |  |  | //更新提现流水记录为成功 | 
|---|
|  |  |  | String withdrawNo = mallMemberWithdraw.getWithdrawNo(); | 
|---|
|  |  |  | MallMoneyFlow withdrawMoneyFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn( | 
|---|
|  |  |  | mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | withdrawNo, | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.WITHDRAW.getCode(), | 
|---|
|  |  |  | MallMoneyFlow.STATUS_ING, | 
|---|
|  |  |  | MallMoneyFlow.IS_RETURN_Y | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | withdrawMoneyFlow.setStatus(MallMoneyFlow.STATUS_SUCCESS); | 
|---|
|  |  |  | mallMoneyFlowMapper.updateById(withdrawMoneyFlow); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse chargeDisagree(Long id) { | 
|---|
|  |  |  | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMoneyFlow)){ | 
|---|
|  |  |  | MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMemberWithdraw)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("系统繁忙,请刷新后重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(1 != mallMoneyFlow.getStatus()){ | 
|---|
|  |  |  | if(1 != mallMemberWithdraw.getStatus()){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("当前状态不是提现中"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMoneyFlow.setStatus(3); | 
|---|
|  |  |  | mallMoneyFlowMapper.updateById(mallMoneyFlow); | 
|---|
|  |  |  | //更新提现记录状态为失败 | 
|---|
|  |  |  | mallMemberWithdrawMapper.updateStatusById(3,mallMemberWithdraw.getId()); | 
|---|
|  |  |  | //更新提现流水记录为成功 | 
|---|
|  |  |  | String withdrawNo = mallMemberWithdraw.getWithdrawNo(); | 
|---|
|  |  |  | MallMoneyFlow withdrawMoneyFlow = mallMoneyFlowMapper.selectOneByMemberIdAndOrderNoAndTypeAndStatusAndIsReturn( | 
|---|
|  |  |  | mallMemberWithdraw.getMemberId(), | 
|---|
|  |  |  | withdrawNo, | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.WITHDRAW.getCode(), | 
|---|
|  |  |  | MallMoneyFlow.STATUS_ING, | 
|---|
|  |  |  | MallMoneyFlow.IS_RETURN_Y | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | withdrawMoneyFlow.setStatus(MallMoneyFlow.STATUS_FAIL); | 
|---|
|  |  |  | mallMoneyFlowMapper.updateById(withdrawMoneyFlow); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //用户钱包增加对应的余额 | 
|---|
|  |  |  | iApiMallMemberWalletService.addBalance(mallMoneyFlow.getAmount().negate(),mallMoneyFlow.getMemberId()); | 
|---|
|  |  |  | //用户余额增加对应的余额 | 
|---|
|  |  |  | iApiMallMemberWalletService.addBalance(mallMemberWithdraw.getAmount(),mallMemberWithdraw.getMemberId()); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public AdminMallMemberPaymentVo getMallMemberPaymentInfoByFlowId(long id) { | 
|---|
|  |  |  | AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo(); | 
|---|
|  |  |  | MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectById(id); | 
|---|
|  |  |  | AdminMallMemberPaymentVo adminMallMemberPaymentVoa = mallMemberPaymentMapper.getMallMemberPaymentInfoByMemberId(mallMoneyFlow.getMemberId()); | 
|---|
|  |  |  | MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id); | 
|---|
|  |  |  | AdminMallMemberPaymentVo adminMallMemberPaymentVoa = mallMemberPaymentMapper.getMallMemberPaymentInfoByMemberId(mallMemberWithdraw.getMemberId()); | 
|---|
|  |  |  | if(ObjectUtil.isNotEmpty(adminMallMemberPaymentVoa)){ | 
|---|
|  |  |  | adminMallMemberPaymentVo = adminMallMemberPaymentVoa; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(records)){ | 
|---|
|  |  |  | for(AdminAgentVo adminAgentVo : records){ | 
|---|
|  |  |  | String inviteId = adminAgentVo.getInviteId(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //直接下级 | 
|---|
|  |  |  | List<MallMember> mallMembers = mallMemberMapper.selectChildAgentListByInviteId(inviteId); | 
|---|
|  |  |  | adminAgentVo.setMemberNum(CollUtil.isEmpty(mallMembers) ? 0 : mallMembers.size()); | 
|---|
|  |  |  | 
|---|
|  |  |  | //获取总数 | 
|---|
|  |  |  | List<MallMember> allMallMembers =mallMemberMapper.selectAllChildAgentListByInviteId(inviteId); | 
|---|
|  |  |  | adminAgentVo.setAllMemberNum(CollUtil.isEmpty(allMallMembers) ? 0 : allMallMembers.size()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //团队业绩 | 
|---|
|  |  |  | BigDecimal amount = BigDecimal.ZERO; | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(allMallMembers)){ | 
|---|
|  |  |  | for(MallMember teamMember : allMallMembers){ | 
|---|
|  |  |  | Long memberId = teamMember.getId(); | 
|---|
|  |  |  | BigDecimal sumAmount = mallMemberMapper.getSumAmountByMemberId(memberId); | 
|---|
|  |  |  | amount = amount.add(sumAmount); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | adminAgentVo.setAmount(amount); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return adminAgentVos; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public AdminAgentLevelUpdateInfoVo getAgentLevelUpdateInfoById(long id) { | 
|---|
|  |  |  | AdminAgentLevelUpdateInfoVo adminAgentLevelUpdateInfoVo = new AdminAgentLevelUpdateInfoVo(); | 
|---|
|  |  |  | DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(id); | 
|---|
|  |  |  | String value = dataDictionaryCustom.getValue(); | 
|---|
|  |  |  | //{"directIncome":36,"lastCnt":3,"orderCnt":500,"orderType":2,"teamIncome":6,"teamIncomeType":2} | 
|---|
|  |  |  | JSONObject jsonObject = JSONObject.parseObject(value); | 
|---|
|  |  |  | adminAgentLevelUpdateInfoVo.setDirectIncome(new BigDecimal((jsonObject.get("directIncome")==null?0:jsonObject.get("directIncome")).toString())); | 
|---|
|  |  |  | adminAgentLevelUpdateInfoVo.setLastCnt(Integer.parseInt((jsonObject.get("lastCnt")==null?0:jsonObject.get("lastCnt")).toString())); | 
|---|
|  |  |  | adminAgentLevelUpdateInfoVo.setOrderCnt(Integer.parseInt((jsonObject.get("orderCnt")==null?0:jsonObject.get("orderCnt")).toString())); | 
|---|
|  |  |  | adminAgentLevelUpdateInfoVo.setOrderType(Integer.parseInt(jsonObject.get("orderType").toString())); | 
|---|
|  |  |  | adminAgentLevelUpdateInfoVo.setTeamIncome(new BigDecimal((jsonObject.get("teamIncome")==null?0:jsonObject.get("teamIncome")).toString())); | 
|---|
|  |  |  | adminAgentLevelUpdateInfoVo.setTeamIncomeType(Integer.parseInt(jsonObject.get("orderType").toString())); | 
|---|
|  |  |  | AdminAgentLevelUpdateInfoVo adminAgentLevelUpdateInfoVo = JSONObject.parseObject(value, AdminAgentLevelUpdateInfoVo.class); | 
|---|
|  |  |  | adminAgentLevelUpdateInfoVo.setId(id); | 
|---|
|  |  |  | return adminAgentLevelUpdateInfoVo; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse agentLevelUpdate(AgentLevelUpdateDto agentLevelUpdateDto) { | 
|---|
|  |  |  | DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(agentLevelUpdateDto.getId()); | 
|---|
|  |  |  | AgentLevelUpdateDto agentLevelUpdateDtoJson = new AgentLevelUpdateDto(); | 
|---|
|  |  |  | agentLevelUpdateDtoJson.setDirectIncome(agentLevelUpdateDto.getDirectIncome()); | 
|---|
|  |  |  | agentLevelUpdateDtoJson.setLastCnt(agentLevelUpdateDto.getLastCnt()); | 
|---|
|  |  |  | agentLevelUpdateDtoJson.setOrderCnt(agentLevelUpdateDto.getOrderCnt()); | 
|---|
|  |  |  | agentLevelUpdateDtoJson.setTeamIncome(agentLevelUpdateDto.getTeamIncome()); | 
|---|
|  |  |  | agentLevelUpdateDtoJson.setOrderType(agentLevelUpdateDto.getOrderType()); | 
|---|
|  |  |  | agentLevelUpdateDtoJson.setTeamIncomeType(agentLevelUpdateDto.getTeamIncomeType()); | 
|---|
|  |  |  | JSONObject jsonObject = (JSONObject)JSONObject.toJSON(agentLevelUpdateDtoJson); | 
|---|
|  |  |  | dataDictionaryCustom.setValue(jsonObject.toString()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | agentLevelUpdateDto.setId(null); | 
|---|
|  |  |  | dataDictionaryCustom.setValue(JSONObject.toJSONString(agentLevelUpdateDto)); | 
|---|
|  |  |  | dataDictionaryCustomMapper.updateById(dataDictionaryCustom); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | List<AdminAgentMemberVo> records = adminAgentMemberVos.getRecords(); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(records)){ | 
|---|
|  |  |  | for(AdminAgentMemberVo agentMemberVo : records){ | 
|---|
|  |  |  | String inviteId = agentMemberVo.getInviteId(); | 
|---|
|  |  |  | BigDecimal amount = mallMemberMapper.getAgentTeamAmountByInviteId(inviteId); | 
|---|
|  |  |  | Long agentMemberVoId = agentMemberVo.getId(); | 
|---|
|  |  |  | BigDecimal amount = mallMemberMapper.getSumAmountByMemberId(agentMemberVoId); | 
|---|
|  |  |  | agentMemberVo.setAmount(amount); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public MallNewsInfo getNewsInfoById(long id) { | 
|---|
|  |  |  | return mallNewsInfoMapper.selectById(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<AdminMallNewsInfoVo> getNewInfoList(MallNewsInfo mallNewsInfo, QueryRequest request) { | 
|---|
|  |  |  | Page<AdminMallNewsInfoVo> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | IPage<AdminMallNewsInfoVo> adminMallNewsInfoVos = mallNewsInfoMapper.getNewInfoListInPage(page, mallNewsInfo); | 
|---|
|  |  |  | return adminMallNewsInfoVos; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse addNewsInfo(MallNewsInfoDto mallNewsInfoDto) { | 
|---|
|  |  |  | Integer type = mallNewsInfoDto.getType(); | 
|---|
|  |  |  | if(type == 2){ | 
|---|
|  |  |  | Long goodsId = mallNewsInfoDto.getGoodsId()==null?0L:mallNewsInfoDto.getGoodsId(); | 
|---|
|  |  |  | if(goodsId == 0L){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("请选择跳转的产品"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | MallNewsInfo mallNewsInfo = new MallNewsInfo(); | 
|---|
|  |  |  | mallNewsInfo.setTitle(mallNewsInfoDto.getTitle()); | 
|---|
|  |  |  | mallNewsInfo.setContent(mallNewsInfoDto.getContent()); | 
|---|
|  |  |  | mallNewsInfo.setType(mallNewsInfoDto.getType()); | 
|---|
|  |  |  | if(mallNewsInfoDto.getType() == 2){ | 
|---|
|  |  |  | mallNewsInfo.setTargetId(mallNewsInfoDto.getGoodsId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallNewsInfoMapper.insert(mallNewsInfo); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse delNewsInfo(Long id) { | 
|---|
|  |  |  | MallNewsInfo mallNewsInfo = mallNewsInfoMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallNewsInfo)){ | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse updateSystemPay(MallSystemPayDto mallSystemPayDto) { | 
|---|
|  |  |  | Long memberId = mallSystemPayDto.getId(); | 
|---|
|  |  |  | MallMember mallMember = mallMemberMapper.selectById(memberId); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMember)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallNewsInfoMapper.deleteById(id); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BigDecimal bigDecimal = mallSystemPayDto.getAddBalance(); | 
|---|
|  |  |  | boolean isReduce = false; | 
|---|
|  |  |  | if(bigDecimal.compareTo(BigDecimal.ZERO) <= 0){ | 
|---|
|  |  |  | isReduce = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer type = mallSystemPayDto.getType(); | 
|---|
|  |  |  | String filedType = ""; | 
|---|
|  |  |  | if (type == 1) { | 
|---|
|  |  |  | filedType = "balance"; | 
|---|
|  |  |  | } else if (type == 2) { | 
|---|
|  |  |  | filedType = "score"; | 
|---|
|  |  |  | } else if (type == 3) { | 
|---|
|  |  |  | filedType = "prizeScore"; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | throw new FebsException("参数错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (isReduce) { | 
|---|
|  |  |  | int i = iApiMallMemberWalletService.reduce(mallSystemPayDto.getAddBalance().negate(), mallSystemPayDto.getId(), filedType); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (i == 2) { | 
|---|
|  |  |  | throw new FebsException("剩余数量不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | iApiMallMemberWalletService.add(mallSystemPayDto.getAddBalance(), mallSystemPayDto.getId(), filedType); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mallMoneyFlowService.addMoneyFlow( | 
|---|
|  |  |  | memberId, | 
|---|
|  |  |  | null, | 
|---|
|  |  |  | bigDecimal, | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.SYSTEM_CHARGE.getCode(), | 
|---|
|  |  |  | MallMoneyFlow.STATUS_SUCCESS, | 
|---|
|  |  |  | MallMoneyFlow.IS_RETURN_Y, | 
|---|
|  |  |  | memberId, | 
|---|
|  |  |  | FlowTypeEnum.BALANCE.getValue(), | 
|---|
|  |  |  | MallMoneyFlowTypeEnum.SYSTEM_CHARGE.getName() | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse updateNewsInfo(MallNewsInfoDto mallNewsInfoDto) { | 
|---|
|  |  |  | MallNewsInfo mallNewsInfoBefore = mallNewsInfoMapper.selectById(mallNewsInfoDto.getId()); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallNewsInfoBefore)){ | 
|---|
|  |  |  | public AdminAgentLevelSetInfoVo getAgentLevelSetInfoByMemberId(long id) { | 
|---|
|  |  |  | AdminAgentLevelSetInfoVo adminAgentLevelSetInfoVo = new AdminAgentLevelSetInfoVo(); | 
|---|
|  |  |  | AdminAgentLevelSetInfoVo adminAgentLevelSetInfo = mallMemberMapper.getAgentLevelSetInfoByMemberId(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(adminAgentLevelSetInfo)){ | 
|---|
|  |  |  | adminAgentLevelSetInfoVo.setId(id); | 
|---|
|  |  |  | adminAgentLevelSetInfoVo.setLevelCode(MemberAgentLevelEnum.AGENT.getCodeByName(MemberAgentLevelEnum.AGENT.getName())); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | adminAgentLevelSetInfoVo.setId(id); | 
|---|
|  |  |  | adminAgentLevelSetInfoVo.setLevelCode(MemberAgentLevelEnum.AGENT.getCodeByName(adminAgentLevelSetInfo.getLevelCode())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return adminAgentLevelSetInfoVo; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse agentLevelSetUpdate(AgentLevelSetUpdateDto agentLevelSetUpdateDto) { | 
|---|
|  |  |  | Long memberId = agentLevelSetUpdateDto.getId(); | 
|---|
|  |  |  | MallMember mallMember = mallMemberMapper.selectById(memberId); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMember)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer type = mallNewsInfoDto.getType(); | 
|---|
|  |  |  | if(type == 2){ | 
|---|
|  |  |  | Long goodsId = mallNewsInfoDto.getGoodsId()==null?0L:mallNewsInfoDto.getGoodsId(); | 
|---|
|  |  |  | if(goodsId == 0L){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("请选择跳转的产品"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | MallNewsInfo mallNewsInfo = new MallNewsInfo(); | 
|---|
|  |  |  | mallNewsInfo.setTitle(mallNewsInfoDto.getTitle()); | 
|---|
|  |  |  | mallNewsInfo.setContent(mallNewsInfoDto.getContent()); | 
|---|
|  |  |  | mallNewsInfo.setType(mallNewsInfoDto.getType()); | 
|---|
|  |  |  | if(mallNewsInfoDto.getType() == 2){ | 
|---|
|  |  |  | mallNewsInfo.setTargetId(mallNewsInfoDto.getGoodsId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallNewsInfoMapper.insert(mallNewsInfo); | 
|---|
|  |  |  | mallNewsInfoMapper.deleteById(mallNewsInfoDto.getId()); | 
|---|
|  |  |  | String levelCode = agentLevelSetUpdateDto.getLevelCode(); | 
|---|
|  |  |  | String nameByCode = MemberAgentLevelEnum.AGENT.getNameByCode(levelCode); | 
|---|
|  |  |  | mallMemberMapper.updateLevelStatusById(1,memberId); | 
|---|
|  |  |  | mallMemberMapper.updateLevelById(nameByCode,memberId); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse resetPwd(Long id) { | 
|---|
|  |  |  | MallMember mallMember = this.baseMapper.selectById(id); | 
|---|
|  |  |  | if (mallMember == null) { | 
|---|
|  |  |  | throw new FebsException("用户不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String pwd = SecureUtil.md5("a123456"); | 
|---|
|  |  |  | mallMember.setPassword(pwd); | 
|---|
|  |  |  | this.baseMapper.updateById(mallMember); | 
|---|
|  |  |  | return new FebsResponse().success().message("重置成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void resetPwd(String ids, Integer type) { | 
|---|
|  |  |  | if (StrUtil.isEmpty(ids)) { | 
|---|
|  |  |  | throw new FebsException("参数错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<String> idList = StrUtil.split(ids, ','); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (String s : idList) { | 
|---|
|  |  |  | Long id = Long.parseLong(s); | 
|---|
|  |  |  | MallMember member = new MallMember(); | 
|---|
|  |  |  | member.setId(id); | 
|---|
|  |  |  | member.setCreatedTime(null); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 重置交易密码 | 
|---|
|  |  |  | if (type == 1) { | 
|---|
|  |  |  | String payPwd = SecureUtil.md5("654321"); | 
|---|
|  |  |  | member.setTradePassword(payPwd); | 
|---|
|  |  |  | // 重置登录密码 | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | String pwd = SecureUtil.md5("a123456"); | 
|---|
|  |  |  | member.setPassword(pwd); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.baseMapper.updateById(member); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MallDataVo> getMallDataList(MallMember mallMember, QueryRequest request) { | 
|---|
|  |  |  | Page<MallDataVo> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | IPage<MallDataVo> mallDataVos = this.baseMapper.getMallDataListInPage(page, mallMember); | 
|---|
|  |  |  | return mallDataVos; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MallShopApply> findShopApplyListInPage(MallShopApply mallShopApply, QueryRequest request) { | 
|---|
|  |  |  | Page<MallShopApply> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return mallShopApplyMapper.selectShopApplyInPage(mallShopApply, page); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public MallShopApply findShopApplyById(Long id) { | 
|---|
|  |  |  | return mallShopApplyMapper.selectById(id); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void applyCheckAgree(Long id) { | 
|---|
|  |  |  | MallShopApply apply = mallShopApplyMapper.selectById(id); | 
|---|
|  |  |  | if (!MallShopApply.APPLY_ING.equals(apply.getStatus())) { | 
|---|
|  |  |  | throw new FebsException("申请已审核, 请勿重复操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MallMember member = mallMemberMapper.selectById(apply.getMemberId()); | 
|---|
|  |  |  | member.setStoreMaster(1); | 
|---|
|  |  |  | mallMemberMapper.updateById(member); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | apply.setStatus(MallShopApply.APPLY_AGREE); | 
|---|
|  |  |  | mallShopApplyMapper.updateById(apply); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void applyCheckDisAgree(Long id) { | 
|---|
|  |  |  | MallShopApply apply = mallShopApplyMapper.selectById(id); | 
|---|
|  |  |  | if (!MallShopApply.APPLY_ING.equals(apply.getStatus())) { | 
|---|
|  |  |  | throw new FebsException("申请已审核, 请勿重复操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | apply.setStatus(MallShopApply.APPLY_DISAGREE); | 
|---|
|  |  |  | mallShopApplyMapper.updateById(apply); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse updateMemberInfo(MallUpdateMemberInfoDto mallUpdateMemberInfoDto) { | 
|---|
|  |  |  | Long memberId = mallUpdateMemberInfoDto.getId(); | 
|---|
|  |  |  | MallMember mallMember = mallMemberMapper.selectById(memberId); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMember)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String phone = mallUpdateMemberInfoDto.getPhone(); | 
|---|
|  |  |  | if(StrUtil.isEmpty(phone)){ | 
|---|
|  |  |  | throw new FebsException("请输入手机号码"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!phone.equals(mallMember.getPhone())){ | 
|---|
|  |  |  | QueryWrapper<MallMember> objectQueryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | objectQueryWrapper.eq("phone",phone); | 
|---|
|  |  |  | List<MallMember> mallMembers = this.baseMapper.selectList(objectQueryWrapper); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallMembers)){ | 
|---|
|  |  |  | throw new FebsException("手机号码已绑定过账号"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallMember.setPhone(phone); | 
|---|
|  |  |  | mallMember.setBindPhone(phone); | 
|---|
|  |  |  | mallMember.setLevel(mallUpdateMemberInfoDto.getLevelCode()); | 
|---|
|  |  |  | mallMemberMapper.updateById(mallMember); | 
|---|
|  |  |  | if(mallUpdateMemberInfoDto.getBalance() == null){ | 
|---|
|  |  |  | throw new FebsException("请输入正确的余额"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(mallUpdateMemberInfoDto.getScore() == null){ | 
|---|
|  |  |  | throw new FebsException("请输入正确的赠送积分"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(mallUpdateMemberInfoDto.getPrizeScore() == null){ | 
|---|
|  |  |  | throw new FebsException("请输入正确的竞猜积分"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BigDecimal balance = mallUpdateMemberInfoDto.getBalance(); | 
|---|
|  |  |  | if(BigDecimal.ZERO.compareTo(balance) > 0){ | 
|---|
|  |  |  | throw new FebsException("请输入正确的余额"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BigDecimal score = mallUpdateMemberInfoDto.getScore(); | 
|---|
|  |  |  | if(BigDecimal.ZERO.compareTo(score) > 0){ | 
|---|
|  |  |  | throw new FebsException("请输入正确的赠送积分"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | BigDecimal prizeScore = mallUpdateMemberInfoDto.getPrizeScore(); | 
|---|
|  |  |  | if(BigDecimal.ZERO.compareTo(prizeScore) > 0){ | 
|---|
|  |  |  | throw new FebsException("请输入正确的竞猜积分"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); | 
|---|
|  |  |  | mallMemberWallet.setBalance(balance); | 
|---|
|  |  |  | mallMemberWallet.setScore(score); | 
|---|
|  |  |  | mallMemberWallet.setPrizeScore(prizeScore); | 
|---|
|  |  |  | mallMemberWalletMapper.updateById(mallMemberWallet); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public MallMember findByInviteId(String inviteId) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return this.baseMapper.selectInfoByInviteId(inviteId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional(rollbackFor = Exception.class) | 
|---|
|  |  |  | public void modifyReferer(MallMember member) { | 
|---|
|  |  |  | MallMember referer = this.baseMapper.selectInfoByInviteId(member.getReferrerId()); | 
|---|
|  |  |  | if (referer == null) { | 
|---|
|  |  |  | throw new FebsException("推荐人不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String refererId = member.getReferrerId(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | member = this.baseMapper.selectById(member.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String beforeReferer = member.getReferrerId(); | 
|---|
|  |  |  | member.setReferrerId(refererId); | 
|---|
|  |  |  | String refererIds = refererIds(refererId); | 
|---|
|  |  |  | member.setReferrerIds(refererIds); | 
|---|
|  |  |  | this.baseMapper.updateById(member); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<MallMember> childs = this.baseMapper.selectByRefererId(member.getInviteId()); | 
|---|
|  |  |  | if (CollUtil.isEmpty(childs)) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (MallMember child : childs) { | 
|---|
|  |  |  | child.setReferrerIds(member.getInviteId() + "," + refererIds); | 
|---|
|  |  |  | this.baseMapper.updateById(child); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void updateShopApply(MallShopApply apply) { | 
|---|
|  |  |  | MallShopApply mallShopApply = mallShopApplyMapper.selectById(apply.getId()); | 
|---|
|  |  |  | mallShopApply.setName(apply.getName()); | 
|---|
|  |  |  | mallShopApply.setPhone(apply.getPhone()); | 
|---|
|  |  |  | mallShopApply.setIdcard(apply.getIdcard()); | 
|---|
|  |  |  | mallShopApply.setBusinessLicense(apply.getBusinessLicense()); | 
|---|
|  |  |  | mallShopApply.setSaleArea(apply.getSaleArea()); | 
|---|
|  |  |  | mallShopApply.setShopName(apply.getShopName()); | 
|---|
|  |  |  | mallShopApplyMapper.updateById(mallShopApply); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public AdminMallMemberPaymentVo getMallBankInfoById(long id) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MallMemberWithdraw mallMemberWithdraw = mallMemberWithdrawMapper.selectById(id); | 
|---|
|  |  |  | Long wtihdrawTypeId = mallMemberWithdraw.getWtihdrawTypeId(); | 
|---|
|  |  |  | MallMemberBank mallMemberBank = mallMemberBankMapper.selectById(wtihdrawTypeId); | 
|---|
|  |  |  | AdminMallMemberPaymentVo adminMallMemberPaymentVo = new AdminMallMemberPaymentVo(); | 
|---|
|  |  |  | if(ObjectUtil.isNotEmpty(mallMemberBank)){ | 
|---|
|  |  |  | adminMallMemberPaymentVo.setBankNo(mallMemberBank.getBankNo()); | 
|---|
|  |  |  | adminMallMemberPaymentVo.setBankName(mallMemberBank.getName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return adminMallMemberPaymentVo; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<MemberCoinChargeEntity> getChargeList(MemberCoinChargeEntity memberCoinChargeEntity, QueryRequest request) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Page<MemberCoinChargeEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); | 
|---|
|  |  |  | IPage<MemberCoinChargeEntity> memberCoinChargeEntityIPage = this.baseMapper.selectMemberChargeListInPage(page, memberCoinChargeEntity); | 
|---|
|  |  |  | return memberCoinChargeEntityIPage; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private String refererIds(String parentId) { | 
|---|
|  |  |  | boolean flag = false; | 
|---|
|  |  |  | if (StrUtil.isBlank(parentId)) { | 
|---|
|  |  |  | flag = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String ids = ""; | 
|---|
|  |  |  | while (!flag) { | 
|---|
|  |  |  | if (StrUtil.isBlank(ids)) { | 
|---|
|  |  |  | ids += parentId; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | ids += ("," + parentId); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | MallMember parentMember = this.baseMapper.selectInfoByInviteId(parentId); | 
|---|
|  |  |  | if (parentMember == null) { | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | parentId = parentMember.getReferrerId(); | 
|---|
|  |  |  | if (StrUtil.isBlank(parentMember.getReferrerId())) { | 
|---|
|  |  |  | flag = true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return ids; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|