xiaoyong931011
2021-09-24 aff7d90dba9d9697f20b171ab7555acdb65efa52
Merge branch 'master' of http://120.27.238.55:7000/r/xc-mall
3 files added
16 files modified
345 ■■■■■ changed files
sql/xc_mall.sql 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java 38 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/MoneyFlowDto.java 26 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/TeamListDto.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/entity/MallMoneyFlow.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java 67 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java 40 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/vo/TeamListVo.java 5 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallGoodsMapper.xml 8 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMemberMapper.xml 39 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallMoneyFlowMapper.xml 18 ●●●●● patch | view | raw | blame | history
sql/xc_mall.sql
@@ -298,5 +298,8 @@
alter table mall_order_refund add phone varchar(32) null comment '联系电话';
alter table mall_order_refund add address text null comment '地址';
alter table mall_money_flow add rt_member_id bigint null comment '返利用户ID';
alter table mall_money_flow add status int null comment '提现状态 1-提现中2-成功3-拒绝';
src/main/java/cc/mrbird/febs/common/enumerates/MoneyFlowTypeEnum.java
New file
@@ -0,0 +1,38 @@
package cc.mrbird.febs.common.enumerates;
import lombok.Getter;
/**
 * @author wzy
 * @date 2021-09-24
 * 1-分红收入 2-业绩奖励 3-订单支付 4-退款 5-转账
 **/
@Getter
public enum MoneyFlowTypeEnum {
    /**
     * 分红
     */
    BONUS(1),
    /**
     * 业绩
     */
    ACHIEVE(2),
    /**
     * 支付
     */
    PAY(3),
    /**
     * 退款
     */
    REFUND(4),
    /**
     * 转账
     */
    TRANSFER(5);
    private final int value;
    MoneyFlowTypeEnum(int value) {
        this.value = value;
    }
}
src/main/java/cc/mrbird/febs/mall/controller/ApiMallMemberController.java
@@ -3,9 +3,11 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.ForgetPwdDto;
import cc.mrbird.febs.mall.dto.ModifyMemberInfoDto;
import cc.mrbird.febs.mall.dto.MoneyFlowDto;
import cc.mrbird.febs.mall.dto.TeamListDto;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.vo.MallMemberVo;
import cc.mrbird.febs.mall.vo.MoneyFlowVo;
import cc.mrbird.febs.mall.vo.TeamListVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -67,6 +69,15 @@
    })
    @PostMapping(value = "/teamList")
    public FebsResponse teamList(@RequestBody TeamListDto teamListDto) {
        return memberService.teamList(teamListDto);
    }
    @ApiOperation(value = "资金流水列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = MoneyFlowVo.class)
    })
    @PostMapping(value = "/moneyFlow")
    public FebsResponse moneyFlow(@RequestBody MoneyFlowDto moneyFlowDto) {
        return null;
    }
}
src/main/java/cc/mrbird/febs/mall/dto/MoneyFlowDto.java
New file
@@ -0,0 +1,26 @@
package cc.mrbird.febs.mall.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author wzy
 * @date 2021-09-24
 **/
@Data
@ApiModel(value = "MoneyFlowDto", description = "资金流水接收参数类")
public class MoneyFlowDto {
    @ApiModelProperty(value = "一页多少个", example = "10")
    private Integer pageSize;
    @ApiModelProperty(value = "页码", example = "1")
    private Integer pageNum;
    @ApiModelProperty(value = "类型 1-全部 2-支出 3-收入")
    private Integer type;
    @ApiModelProperty(hidden = true)
    private Long memberId;
}
src/main/java/cc/mrbird/febs/mall/dto/TeamListDto.java
@@ -12,6 +12,6 @@
@ApiModel(value = "TeamListDto", description = "我的团队接收参数类")
public class TeamListDto {
    @ApiModelProperty(value = "用户ID", example = "1")
    @ApiModelProperty(value = "用户ID, 若查询本账号则不传", example = "1")
    private Long id;
}
src/main/java/cc/mrbird/febs/mall/entity/MallMoneyFlow.java
@@ -18,7 +18,21 @@
    private BigDecimal amount;
    /**
     * 流水类型 1-分红收入 2-业绩奖励 3-订单支付 4-退款 5-转账
     */
    private Integer type;
    private String orderNo;
    private String description;
    private String remark;
    private Long rtMemberId;
    /**
     * 提现状态 1-提现中2-成功 3-拒绝
     */
    private Integer status;
}
src/main/java/cc/mrbird/febs/mall/mapper/MallGoodsMapper.java
@@ -10,6 +10,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Map;
public interface MallGoodsMapper extends BaseMapper<MallGoods> {
    IPage<MallGoodsListVo> selectMallGoodsListQueryInPage(@Param("record") MallGoodsQueryDto queryDto, Page<MallGoodsListVo> page);
@@ -23,4 +26,6 @@
    Integer selectMallGoodsCountByGoodsNo(@Param("goodsNo")String goodsNo);
    AdminMailGoodsDetailVo selectMallGoodsInfoById(@Param("id")long id);
    Map<String, BigDecimal> selectGoodsStockAndVolume(@Param("id") Long id);
}
src/main/java/cc/mrbird/febs/mall/mapper/MallMemberMapper.java
@@ -2,10 +2,14 @@
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.vo.MallMemberVo;
import cc.mrbird.febs.mall.vo.TeamListVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
/**
 * @author wzy
@@ -22,4 +26,12 @@
    MallMember selectInfoByAccountAndPwd(@Param("account") String account, @Param("password") String password);
    MallMemberVo getMallMemberInfoById(@Param("id")long id);
    List<TeamListVo> selectTeamListByInviteId(@Param("inviteId") String inviteId);
    BigDecimal selectOwnOrderAmountByInviteId(@Param("inviteId") String inviteId);
    Integer selectOwnCntByInviteId(@Param("inviteId") String inviteId);
    Integer selectOwnOrderCntByInviteId(@Param("inviteId") String inviteId);
}
src/main/java/cc/mrbird/febs/mall/mapper/MallMoneyFlowMapper.java
@@ -1,8 +1,10 @@
package cc.mrbird.febs.mall.mapper;
import cc.mrbird.febs.mall.dto.MoneyFlowDto;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallMoneyFlow;
import cc.mrbird.febs.mall.vo.AdminMallMoneyFlowVo;
import cc.mrbird.febs.mall.vo.MoneyFlowVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,4 +14,5 @@
    IPage<AdminMallMoneyFlowVo> selectMoneyFlowInPage(Page<AdminMallMoneyFlowVo> page, @Param("record")MallMember mallMember);
    IPage<MoneyFlowVo> selectApiMoneyFlowInPage(IPage<MoneyFlowVo> page, @Param("record") MoneyFlowDto moneyFlowDto);
}
src/main/java/cc/mrbird/febs/mall/service/IApiMallMemberService.java
@@ -1,12 +1,11 @@
package cc.mrbird.febs.mall.service;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.mall.dto.ForgetPwdDto;
import cc.mrbird.febs.mall.dto.LoginDto;
import cc.mrbird.febs.mall.dto.ModifyMemberInfoDto;
import cc.mrbird.febs.mall.dto.RegisterDto;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.MallMember;
import com.baomidou.mybatisplus.extension.service.IService;
import java.math.BigDecimal;
public interface IApiMallMemberService extends IService<MallMember> {
    FebsResponse register(RegisterDto registerDto);
@@ -24,4 +23,10 @@
    FebsResponse setTradePwd(ForgetPwdDto forgetPwdDto);
    FebsResponse modifyMemberInfo(ModifyMemberInfoDto modifyMemberInfoDto);
    FebsResponse teamList(TeamListDto teamListDto);
    FebsResponse moneyFlows(MoneyFlowDto moneyFlowDto);
    void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, String description, String remark, Long rtMemberId, Integer status);
}
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallGoodsServiceImpl.java
@@ -17,7 +17,9 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
import java.util.Map;
/**
 * @author wzy
@@ -44,6 +46,10 @@
        }
        List<String> images = goodsImagesMapper.selectGoodsImagesByGoodsId(mallGoods.getId());
        MallGoodsDetailsVo mallGoodsDetailsVo = MallGoodsConversion.INSTANCE.entityToDetailsVo(mallGoods);
        Map<String, BigDecimal> stockAndVolume = this.baseMapper.selectGoodsStockAndVolume(id);
        mallGoodsDetailsVo.setStock(stockAndVolume.get("stock").intValue());
        mallGoodsDetailsVo.setVolume(stockAndVolume.get("volume").intValue());
        mallGoodsDetailsVo.setImages(images);
        return mallGoodsDetailsVo;
    }
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -7,20 +7,17 @@
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.common.utils.ShareCodeUtil;
import cc.mrbird.febs.mall.conversion.MallMemberConversion;
import cc.mrbird.febs.mall.dto.ForgetPwdDto;
import cc.mrbird.febs.mall.dto.LoginDto;
import cc.mrbird.febs.mall.dto.ModifyMemberInfoDto;
import cc.mrbird.febs.mall.dto.RegisterDto;
import cc.mrbird.febs.mall.dto.*;
import cc.mrbird.febs.mall.entity.MallMember;
import cc.mrbird.febs.mall.entity.MallMemberWallet;
import cc.mrbird.febs.mall.entity.MallMoneyFlow;
import cc.mrbird.febs.mall.entity.MallShoppingCart;
import cc.mrbird.febs.mall.mapper.MallMemberMapper;
import cc.mrbird.febs.mall.mapper.MallMemberWalletMapper;
import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
import cc.mrbird.febs.mall.mapper.MallShoppingCartMapper;
import cc.mrbird.febs.mall.mapper.*;
import cc.mrbird.febs.mall.service.IApiMallMemberService;
import cc.mrbird.febs.mall.service.ICommonService;
import cc.mrbird.febs.mall.vo.MallMemberVo;
import cc.mrbird.febs.mall.vo.MoneyFlowVo;
import cc.mrbird.febs.mall.vo.TeamListVo;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -29,6 +26,8 @@
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
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 lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -55,6 +54,7 @@
    private final RedisUtils redisUtils;
    private final MallOrderInfoMapper mallOrderInfoMapper;
    private final MallShoppingCartMapper mallShoppingCartMapper;
    private final MallMoneyFlowMapper mallMoneyFlowMapper;
    @Value("${spring.profiles.active}")
    private String active;
@@ -264,4 +264,55 @@
        this.baseMapper.updateById(mallMember);
        return new FebsResponse().success().message("修改成功");
    }
    @Override
    public FebsResponse teamList(TeamListDto teamListDto) {
        Long memberId = null;
        if (teamListDto.getId() == null) {
            memberId = LoginUserUtil.getLoginUser().getId();
        } else {
            memberId = teamListDto.getId();
        }
        MallMember mallMember = this.baseMapper.selectById(memberId);
        List<TeamListVo> list = this.baseMapper.selectTeamListByInviteId(mallMember.getInviteId());
        BigDecimal ownAmount = this.baseMapper.selectOwnOrderAmountByInviteId(mallMember.getInviteId());
        TeamListVo own = new TeamListVo();
        own.setCreatedTime(mallMember.getCreatedTime());
        own.setAmount(ownAmount);
        own.setName(mallMember.getName());
        own.setPhone(mallMember.getPhone());
        own.setInviteId(mallMember.getInviteId());
        own.setIsCurrent(1);
        own.setCnt(this.baseMapper.selectOwnCntByInviteId(mallMember.getInviteId()));
        own.setOrderCnt(this.baseMapper.selectOwnOrderCntByInviteId(mallMember.getInviteId()));
        own.setId(mallMember.getId());
        list.add(0, own);
        return new FebsResponse().success().data(list);
    }
    @Override
    public FebsResponse moneyFlows(MoneyFlowDto moneyFlowDto) {
        IPage<MoneyFlowVo> page = new Page<>(moneyFlowDto.getPageNum(), moneyFlowDto.getPageSize());
        Long id = LoginUserUtil.getLoginUser().getId();
        moneyFlowDto.setMemberId(id);
        IPage<MoneyFlowVo> pages = mallMoneyFlowMapper.selectApiMoneyFlowInPage(page, moneyFlowDto);
        return new FebsResponse().success().data(pages);
    }
    @Override
    public void addMoneyFlow(Long memberId, BigDecimal amount, Integer type, String orderNo, String description, String remark, Long rtMemberId, Integer status) {
        MallMoneyFlow flow = new MallMoneyFlow();
        flow.setMemberId(memberId);
        flow.setAmount(amount);
        flow.setType(type);
        flow.setOrderNo(orderNo);
        flow.setDescription(description);
        flow.setRemark(remark);
        flow.setRtMemberId(rtMemberId);
        flow.setStatus(status);
        mallMoneyFlowMapper.insert(flow);
    }
}
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.mall.service.impl;
import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum;
import cc.mrbird.febs.common.enumerates.OrderRefundStatusEnum;
import cc.mrbird.febs.common.enumerates.OrderStatusEnum;
import cc.mrbird.febs.common.exception.FebsException;
@@ -12,8 +13,10 @@
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.IApiMallOrderInfoService;
import cc.mrbird.febs.mall.service.MallMemberService;
import cc.mrbird.febs.mall.vo.OrderDetailVo;
import cc.mrbird.febs.mall.vo.OrderListVo;
import cc.mrbird.febs.mall.vo.OrderRefundVo;
@@ -55,6 +58,7 @@
    private final MallOrderRefundMapper mallOrderRefundMapper;
    private final MallOrderRefundOperationMapper mallOrderRefundOperationMapper;
    private final MallShoppingCartMapper mallShoppingCartMapper;
    private final IApiMallMemberService memberService;
    private final RedisUtils redisUtils;
    @Override
@@ -113,6 +117,7 @@
            mallOrderItemMapper.insert(orderItem);
            sku.setStock(sku.getStock() - item.getCnt());
            sku.setSkuVolume(sku.getSkuVolume() + item.getCnt());
            mallGoodsSkuMapper.updateById(sku);
            if (addOrderDto.getType() == 1) {
@@ -160,19 +165,32 @@
            throw new FebsException("订单状态不能支付");
        }
        String orderNo = "";
        switch (payOrderDto.getType()) {
            case "1":
                // TODO 微信支付
                orderInfo.setPayMethod("微信支付");
                break;
            case "2":
                // TODO 支付宝支付
                orderInfo.setPayMethod("支付宝支付");
                break;
            case "3":
                return balancePay(orderInfo, payOrderDto.getTradePwd());
                orderNo = balancePay(orderInfo, payOrderDto.getTradePwd());
                orderInfo.setPayMethod("积分支付");
            default:
        }
        return "";
        orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
        orderInfo.setPayTime(new Date());
        orderInfo.setPayOrderNo(orderInfo.getOrderNo());
        orderInfo.setPayResult("1");
        this.baseMapper.updateById(orderInfo);
        memberService.addMoneyFlow(member.getId(), orderInfo.getAmount().negate(), MoneyFlowTypeEnum.PAY.getValue(), orderInfo.getOrderNo(), null, null, null, null);
        return orderNo;
    }
    private String balancePay(MallOrderInfo orderInfo, String tradePwd) {
@@ -192,12 +210,6 @@
        memberWalletService.reduceBalance(orderInfo.getAmount(), mallMember.getId());
        orderInfo.setStatus(OrderStatusEnum.WAIT_SHIPPING.getValue());
        orderInfo.setPayTime(new Date());
        orderInfo.setPayMethod("积分支付");
        orderInfo.setPayOrderNo(orderInfo.getOrderNo());
        orderInfo.setPayResult("1");
        this.baseMapper.updateById(orderInfo);
        return orderInfo.getOrderNo();
    }
@@ -288,6 +300,7 @@
            throw new FebsException("该订单不能退款");
        }
        Integer beforeStatus = orderInfo.getStatus();
        MallMember member = LoginUserUtil.getLoginUser();
        orderInfo.setStatus(OrderStatusEnum.REFUNDING.getValue());
        this.baseMapper.updateById(orderInfo);
@@ -301,7 +314,7 @@
            orderRefund.setReason(addRefundDto.getReason());
            orderRefund.setType(addRefundDto.getType());
            orderRefund.setRefundTime(new Date());
            orderRefund.setBeforeStatus(orderInfo.getStatus());
            orderRefund.setBeforeStatus(beforeStatus);
            orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
            mallOrderRefundMapper.insert(orderRefund);
        } else {
@@ -309,7 +322,7 @@
            orderRefund.setReason(addRefundDto.getReason());
            orderRefund.setType(addRefundDto.getType());
            orderRefund.setRefundTime(new Date());
            orderRefund.setBeforeStatus(orderInfo.getStatus());
            orderRefund.setBeforeStatus(beforeStatus);
            orderRefund.setStatus(OrderRefundStatusEnum.REFUND_APPLY.getValue());
            mallOrderRefundMapper.updateById(orderRefund);
        }
src/main/java/cc/mrbird/febs/mall/vo/MoneyFlowVo.java
New file
@@ -0,0 +1,40 @@
package cc.mrbird.febs.mall.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @author wzy
 * @date 2021-09-24
 **/
@Data
@ApiModel(value = "MoneyFlowVo", description = "资金列表返回参数类")
public class MoneyFlowVo {
    @ApiModelProperty(value = "订单号")
    private String orderNo;
    @ApiModelProperty(value = "金额,有正负")
    private BigDecimal amount;
    @ApiModelProperty(value = "类型 1-分红收入 2-业绩奖励 3-订单支付 4-退款 5-转账")
    private Integer type;
    @ApiModelProperty(value = "对方手机号")
    private String phone;
    @ApiModelProperty(value = "代理等级")
    private String memberLevel;
    @ApiModelProperty(value = "提现状态 1-提现中2-成功 3-拒绝")
    private Integer status;
    @ApiModelProperty(value = "时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createdTime;
}
src/main/java/cc/mrbird/febs/mall/vo/OrderDetailVo.java
@@ -1,5 +1,6 @@
package cc.mrbird.febs.mall.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -23,6 +24,7 @@
    private String orderNo;
    @ApiModelProperty(value = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date orderTime;
    @ApiModelProperty(value = "支付方式")
src/main/java/cc/mrbird/febs/mall/vo/TeamListVo.java
@@ -31,7 +31,10 @@
    @ApiModelProperty(value = "金额")
    private BigDecimal amount;
    @ApiModelProperty(value = "数量")
    @ApiModelProperty(value = "订单数量")
    private Integer orderCnt;
    @ApiModelProperty(value = "团队数量")
    private Integer cnt;
    @ApiModelProperty(value = "注册时间")
src/main/resources/mapper/modules/MallGoodsMapper.xml
@@ -118,4 +118,12 @@
    <select id="selectMallGoodsInfoById" resultType="cc.mrbird.febs.mall.vo.AdminMailGoodsDetailVo">
        select * from mall_goods a where a.id = #{id}
    </select>
    <select id="selectGoodsStockAndVolume" resultType="java.util.HashMap">
        select
            sum(stock) stock,
            sum(sku_volume) volume
        from mall_goods_sku
        where goods_id=#{id}
    </select>
</mapper>
src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -55,4 +55,43 @@
    <select id="selectInfoByAccountAndPwd" resultType="cc.mrbird.febs.mall.entity.MallMember">
        select * from mall_member where (phone=#{account} or email=#{account}) and password=#{password}
    </select>
    <select id="selectTeamListByInviteId" resultType="cc.mrbird.febs.mall.vo.TeamListVo">
        select
            a.id,
            a.name,
            a.phone,
            a.invite_id,
            2 isCurrent,
            a.created_time,
            (select sum(b.amount) from mall_member e
                                           inner join mall_order_info b on e.id=b.member_id and b.status=4
             where e.invite_id=a.invite_id or e.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=4
             where e.invite_id=a.invite_id or e.referrer_id=a.invite_id) orderCnt,
            (select count(1) from mall_member x where x.referrer_id=a.invite_id) cnt
        from mall_member a
        where a.referrer_id=#{inviteId}
    </select>
    <select id="selectOwnOrderAmountByInviteId" resultType="java.math.BigDecimal">
        select
            IFNULL(sum(b.amount),0)
        from mall_member e
          inner join mall_order_info b on e.id=b.member_id and b.status=4
        where e.invite_id=#{inviteId} or e.referrer_id=#{inviteId}
    </select>
    <select id="selectOwnCntByInviteId" resultType="java.lang.Integer">
        select IFNULL(count(1),0) from mall_member x where x.referrer_id=#{inviteId}
    </select>
    <select id="selectOwnOrderCntByInviteId" resultType="java.lang.Integer">
        select
            IFNULL(count(1),0)
        from mall_member e
                 inner join mall_order_info b on e.id=b.member_id and b.status=4
        where e.invite_id=#{inviteId} or e.referrer_id=#{inviteId}
    </select>
</mapper>
src/main/resources/mapper/modules/MallMoneyFlowMapper.xml
@@ -7,4 +7,22 @@
        order by a.CREATED_TIME desc
    </select>
    <select id="selectApiMoneyFlowInPage" resultType="cc.mrbird.febs.mall.vo.MoneyFlowVo">
        select
            a.*,
            b.phone
        from mall_money_flow a
            inner join mall_member on a.rt_member_id=b.member_id
        <where>
            <if test="record.type == 2">
                and a.amount > 0
            </if>
            <if test="record.type == 3">
                and 0 > a.amount
            </if>
            <if test="record.memberId != null">
                and a.member_id=#{record.memberId}
            </if>
        </where>
    </select>
</mapper>