fix
Hentua
2023-08-23 25828996cb8f2b971de722ce9a527c26bbc68cb2
fix
6 files modified
101 ■■■■■ changed files
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 58 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/TeamListVo.java 10 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMemberMapper.xml 9 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallOrderInfoMapper.xml 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallOrderInfoMapper.java
@@ -81,4 +81,6 @@
    @SqlParser(filter = true)
    IPage<AdminGoodsStatisticsVo> getGoodsStatisticsInPage(Page<AdminGoodsStatisticsVo> page, @Param("record") MallOrderItem mallOrderItem);
    BigDecimal selectAmountOrTeamAmount(@Param("inviteId") String inviteId, @Param("type") Integer type);
}
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -13,10 +13,7 @@
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.*;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
import cc.mrbird.febs.mall.service.ICommonService;
import cc.mrbird.febs.mall.service.IMallMoneyFlowService;
import cc.mrbird.febs.mall.service.*;
import cc.mrbird.febs.mall.vo.*;
import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
import cc.mrbird.febs.pay.service.IXcxPayService;
@@ -30,6 +27,7 @@
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -69,6 +67,8 @@
    private final SpringContextHolder springContextHolder;
    private final MallAgentRecordMapper mallAgentRecordMapper;
    private final IMallMoneyFlowService mallMoneyFlowService;
    private final IMallMemberCollectionService mallMemberCollectionService;
    private final IMallMemberFootprintService mallMemberFootprintService;
    @Value("${spring.profiles.active}")
@@ -253,38 +253,24 @@
            mallMemberVo.setHasPayment(1);
        }
        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
        mallMemberVo.setBalance(wallet.getBalance());
        mallMemberVo.setScore(wallet.getScore());
        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
        LambdaQueryWrapper<MallMemberCollection> collectionQuery = new LambdaQueryWrapper<>();
        collectionQuery.eq(MallMemberCollection::getMemberId, id);
        List<MallMemberCollection> collectionList = mallMemberCollectionService.list(collectionQuery);
        mallMemberVo.setCollectionCnt(CollUtil.isNotEmpty(collectionList) ? collectionList.size() : 0);
        //代理状态
        MallAgentRecord mallAgentRecordIng = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_ING);
        MallAgentRecord mallAgentRecordAgree = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_AGREE);
        MallAgentRecord mallAgentRecordDisagree = mallAgentRecordMapper.selectByMemberIdAndState(id, MallAgentRecord.APPLY_DISAGREE);
        if(ObjectUtil.isNotEmpty(mallAgentRecordIng)){
            mallMemberVo.setIsAgent(1);
        }else if(ObjectUtil.isNotEmpty(mallAgentRecordAgree)){
            mallMemberVo.setIsAgent(2);
            if(StrUtil.isNotEmpty(mallAgentRecordAgree.getAgentLevel())){
                DataDictionaryCustom dataDictionaryCustom = dataDictionaryCustomMapper.selectDicDataByTypeAndCode("AGENT_LEVEL_APPLY", mallAgentRecordAgree.getAgentLevel());
                mallMemberVo.setAgentLevelName(dataDictionaryCustom.getDescription());
            }
            if(AgentLevelEnum.LEVEL_ONE.name().equals(mallAgentRecordAgree.getAgentLevel())){
                mallMemberVo.setAgentLevel(1);
            }
            if(AgentLevelEnum.LEVEL_TWO.name().equals(mallAgentRecordAgree.getAgentLevel())){
                mallMemberVo.setAgentLevel(2);
            }
            if(AgentLevelEnum.LEVEL_THREE.name().equals(mallAgentRecordAgree.getAgentLevel())){
                mallMemberVo.setAgentLevel(3);
            }
        }else if(ObjectUtil.isNotEmpty(mallAgentRecordDisagree)){
            mallMemberVo.setIsAgent(3);
        }
//        log.info(mallMemberVo.getName()+"---"+mallMemberVo.getAgentLevel());
        LambdaQueryWrapper<MallMemberCollection> footprintQuery = new LambdaQueryWrapper<>();
        footprintQuery.eq(MallMemberCollection::getMemberId, id);
        List<MallMemberCollection> footprintList = mallMemberCollectionService.list(footprintQuery);
        mallMemberVo.setCollectionCnt(CollUtil.isNotEmpty(footprintList) ? footprintList.size() : 0);
        List<MallMember> mallMembers = this.baseMapper.selectByRefererId(mallMember.getInviteId());
        mallMemberVo.setChildCnt(CollUtil.isNotEmpty(mallMembers) ? mallMembers.size() : 0);
//        MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId());
//        mallMemberVo.setBalance(wallet.getBalance());
//        mallMemberVo.setScore(wallet.getScore());
//        mallMemberVo.setPrizeScore(wallet.getPrizeScore());
//        mallMemberVo.setTotalCost(mallOrderInfoMapper.selectTotalAmount(id));
        return new FebsResponse().success().data(mallMemberVo);
    }
@@ -356,8 +342,8 @@
        MyTeamVo myTeamVo = new MyTeamVo();
        myTeamVo.setTeam(list);
        myTeamVo.setMyAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 1));
        myTeamVo.setMyTeamAchieve(this.baseMapper.selectAchieveByMemberId(mallMember.getInviteId(), 2));
        myTeamVo.setMyAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 1));
        myTeamVo.setMyTeamAchieve(this.mallOrderInfoMapper.selectAmountOrTeamAmount(mallMember.getInviteId(), 2));
        myTeamVo.setMyTeamCnt(this.baseMapper.selectAllChildAgentListByInviteId(mallMember.getInviteId()).size());
        return new FebsResponse().success().data(myTeamVo);
    }
src/main/java/cc/mrbird/febs/mall/vo/MallMemberVo.java
@@ -84,4 +84,12 @@
    @ApiModelProperty(value = "代理等级数字  1:一级 2:二级 3:三级")
    private Integer agentLevel;
    @ApiModelProperty(value = "收藏数量")
    private Integer collectionCnt;
    @ApiModelProperty(value = "足迹数量")
    private Integer footprintCnt;
    @ApiModelProperty(value = "足迹数量")
    private Integer childCnt;
}
src/main/java/cc/mrbird/febs/mall/vo/TeamListVo.java
@@ -25,6 +25,13 @@
    @ApiModelProperty(value = "昵称")
    private String name;
    @ApiModelProperty(value = "头像")
    private String avatar;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "注册时间")
    private Date createTime;
    @ApiModelProperty(value = "手机号")
    private String phone;
@@ -50,4 +57,7 @@
    @ApiModelProperty(value = "用户等级")
    private String levelName;
    @ApiModelProperty(value = "自己下单数量")
    private Integer selfOrderCnt;
}
src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -79,20 +79,19 @@
            a.invite_id,
            2 isCurrent,
            a.created_time,
            p.prize_score,
            u.description levelName,
            a.avatar,
            (select count(1) from mall_order_info orderInfo
             where orderInfo.status in (2, 3, 4) and orderInfo.member_id=a.id) selfOrderCnt,
            (select sum(e.amount)
             from mall_order_info e
                      inner join mall_member b on e.member_id=b.ID
                      inner join mall_order_item c on e.id = c.order_id -- and c.is_normal=2
                      inner join mall_order_item c on e.id = c.order_id
             where e.status in (2, 3, 4) and e.order_type=1 and (b.invite_id=a.invite_id or b.referrer_id=a.invite_id)) amount,
            (select count(1) from mall_member e
                      inner join mall_order_info b on e.id=b.member_id and b.status in (2, 3, 4)
             where find_in_set(a.invite_id, e.referrer_ids)) orderCnt,
            (select count(1) from mall_member x where find_in_set(a.invite_id, x.referrer_ids)) cnt
        from mall_member a
        inner join mall_member_wallet p on a.id=p.member_id
        left join data_dictionary_custom u on a.level=u.code and u.type='AGENT_LEVEL'
        where a.referrer_id=#{inviteId}
    </select>
src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -439,4 +439,18 @@
        GROUP BY goods_id
        ORDER BY goods_id desc
</select>
    <select id="selectAmountOrTeamAmount" resultType="java.math.BigDecimal">
        select IFNULL(sum(IFNULL(a.amount,0)),0) from mall_order_info a
        inner join mall_member b on a.member_id=b.ID
        <where>
            a.status in (2,3,4)
            <if test="type == 1">
                and b.invite_id=#{inviteId}
            </if>
            <if test="type == 2">
                and find_in_set(#{inviteId}, b.referrer_ids)
            </if>
        </where>
    </select>
</mapper>