| | |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.mall.dto.MoneyChargeListDto; |
| | | import cc.mrbird.febs.mall.dto.MoneyFlowListDto; |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | | import cc.mrbird.febs.mall.entity.MallMoneyFlow; |
| | | import cc.mrbird.febs.mall.mapper.MallMemberMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallMemberPaymentMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper; |
| | | import cc.mrbird.febs.common.enumerates.AgentLevelEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | | 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.vo.*; |
| | | 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.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author wzy |
| | | * @date 2021-09-16 |
| | |
| | | @Slf4j |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | @Transactional |
| | | public class AdminMallMemberServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements IAdminMallMemberService { |
| | | |
| | | private final MallMemberMapper mallMemberMapper; |
| | | |
| | | private final MallMemberWalletMapper mallMemberWalletMapper; |
| | | |
| | | private final MallMoneyFlowMapper mallMoneyFlowMapper; |
| | | |
| | | private final MallMemberPaymentMapper mallMemberPaymentMapper; |
| | | |
| | | private final DataDictionaryCustomMapper dataDictionaryCustomMapper; |
| | | |
| | | private final IApiMallMemberWalletService iApiMallMemberWalletService; |
| | | |
| | | private final AppVersionMapper appVersionMapper; |
| | | |
| | | private final MallNewsInfoMapper mallNewsInfoMapper; |
| | | |
| | | @Override |
| | | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { |
| | |
| | | return adminMallMemberPaymentVo; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminAgentVo> getAgentList(AgentDto agentDto, QueryRequest request) { |
| | | Page<AdminAgentVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminAgentVo> adminAgentVos = this.baseMapper.getAgentListInPage(page, agentDto); |
| | | List<AdminAgentVo> records = adminAgentVos.getRecords(); |
| | | 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()); |
| | | } |
| | | } |
| | | return adminAgentVos; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminAgentLevelVo> getAgentLevelList(AgentLevelDto agentLevelDto, QueryRequest request) { |
| | | Page<AdminAgentLevelVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminAgentLevelVo> adminAgentVos = this.baseMapper.getAgentLevelListInPage(page, agentLevelDto); |
| | | 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.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()); |
| | | dataDictionaryCustomMapper.updateById(dataDictionaryCustom); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public List<AdminAgentLevelOptionTreeVo> getAgentLevelOption() { |
| | | return dataDictionaryCustomMapper.getAgentLevelOption(); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminAgentMemberVo> agentChild(QueryRequest request, MallMember mallMember) { |
| | | Long memberId = mallMember.getId(); |
| | | mallMember = mallMemberMapper.selectById(memberId); |
| | | Page<AdminAgentMemberVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminAgentMemberVo> adminAgentMemberVos = this.baseMapper.getAgentChildInPage(page, mallMember); |
| | | List<AdminAgentMemberVo> records = adminAgentMemberVos.getRecords(); |
| | | if(CollUtil.isNotEmpty(records)){ |
| | | for(AdminAgentMemberVo agentMemberVo : records){ |
| | | String inviteId = agentMemberVo.getInviteId(); |
| | | BigDecimal amount = mallMemberMapper.getAgentTeamAmountByInviteId(inviteId); |
| | | agentMemberVo.setAmount(amount); |
| | | } |
| | | } |
| | | return adminAgentMemberVos; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminRankAwardVo> getRankAwardList(RankAwardDto rankAwardDto, QueryRequest request) { |
| | | Page<AdminRankAwardVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminRankAwardVo> adminRankAwardVos = this.baseMapper.getRankAwardListInPage(page, rankAwardDto); |
| | | return adminRankAwardVos; |
| | | } |
| | | |
| | | @Override |
| | | public AdminRankAwardUpdateInfoVo getRankAwardUpdateInfoById(long id) { |
| | | AdminRankAwardUpdateInfoVo adminRankAwardUpdateInfoVo = dataDictionaryCustomMapper.getRankAwardUpdateInfoById(id); |
| | | return adminRankAwardUpdateInfoVo; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse rankAwardUpdate(RankAwardUpdateDto rankAwardUpdateDto) { |
| | | DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectById(rankAwardUpdateDto.getId()); |
| | | dataDictionaryCustom.setValue(rankAwardUpdateDto.getValue()); |
| | | dataDictionaryCustom.setDescription(rankAwardUpdateDto.getDescription()); |
| | | dataDictionaryCustomMapper.updateById(dataDictionaryCustom); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AppVersion> getAppVersionList(AppVersion appVersion, QueryRequest request) { |
| | | Page<AppVersion> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AppVersion> appVersions = this.baseMapper.getAppVersionListInPage(page, appVersion); |
| | | return appVersions; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse delCategary(Long id) { |
| | | AppVersion appVersion = appVersionMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(appVersion)){ |
| | | return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); |
| | | } |
| | | appVersionMapper.deleteById(id); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse addAppVersion(AppVersion appVersion) { |
| | | appVersion.setCreatetime(new Date()); |
| | | appVersionMapper.insert(appVersion); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public AppVersion getAppVersionInfoById(long id) { |
| | | return appVersionMapper.selectById(id); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse updateAppVersion(AppVersion appVersion) { |
| | | AppVersion appVersionBefore = appVersionMapper.selectById(appVersion.getId()); |
| | | if(ObjectUtil.isEmpty(appVersionBefore)){ |
| | | return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); |
| | | } |
| | | appVersion.setCreatetime(new Date()); |
| | | appVersionMapper.updateById(appVersion); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse activateAccount(Long id) { |
| | | MallMember mallMember = mallMemberMapper.selectById(id); |
| | | if(ObjectUtil.isEmpty(mallMember)){ |
| | | return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); |
| | | } |
| | | String level = mallMember.getLevel(); |
| | | if(StrUtil.isEmpty(level) || !AgentLevelEnum.ZERO_LEVEL.name().equals(mallMember.getLevel())){ |
| | | return new FebsResponse().fail().message("该用户无法激活"); |
| | | } |
| | | mallMember.setLevel(AgentLevelEnum.FIRST_LEVEL.name()); |
| | | mallMemberMapper.updateById(mallMember); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @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)){ |
| | | return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); |
| | | } |
| | | mallNewsInfoMapper.deleteById(id); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse updateNewsInfo(MallNewsInfoDto mallNewsInfoDto) { |
| | | MallNewsInfo mallNewsInfoBefore = mallNewsInfoMapper.selectById(mallNewsInfoDto.getId()); |
| | | if(ObjectUtil.isEmpty(mallNewsInfoBefore)){ |
| | | 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()); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public FebsResponse updateSystemPay(MallSystemPayDto mallSystemPayDto) { |
| | | Long memberId = mallSystemPayDto.getId(); |
| | | MallMember mallMember = mallMemberMapper.selectById(memberId); |
| | | if(ObjectUtil.isEmpty(mallMember)){ |
| | | return new FebsResponse().fail().message("系统繁忙,请刷新页面重试"); |
| | | } |
| | | |
| | | BigDecimal bigDecimal = mallSystemPayDto.getAddBalance(); |
| | | if(bigDecimal.compareTo(BigDecimal.ZERO) <= 0){ |
| | | return new FebsResponse().fail().message("拨付数目需要大于0"); |
| | | } |
| | | |
| | | MallMemberWallet mallMemberWallet = mallMemberWalletMapper.selectWalletByMemberId(memberId); |
| | | mallMemberWallet.setBalance(mallMemberWallet.getBalance().add(bigDecimal)); |
| | | mallMemberWalletMapper.updateBalanceWithId(mallMemberWallet); |
| | | |
| | | MallMoneyFlow flow = new MallMoneyFlow(); |
| | | flow.setMemberId(memberId); |
| | | flow.setAmount(bigDecimal); |
| | | flow.setType(MoneyFlowTypeEnum.SYSTEM_PAY.getValue()); |
| | | flow.setOrderNo("SYS"+MallUtils.getOrderNum()); |
| | | flow.setStatus(2); |
| | | mallMoneyFlowMapper.insert(flow); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public AdminAgentLevelSetInfoVo getAgentLevelSetInfoByMemberId(long id) { |
| | | AdminAgentLevelSetInfoVo adminAgentLevelSetInfoVo = mallMemberMapper.getAgentLevelSetInfoByMemberId(id); |
| | | 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("系统繁忙,请刷新页面重试"); |
| | | } |
| | | mallMember.setLevel(agentLevelSetUpdateDto.getLevelCode()); |
| | | mallMemberMapper.updateById(mallMember); |
| | | 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("重置成功"); |
| | | } |
| | | } |