15 files modified
4 files added
| | |
| | | /** |
| | | * 余额 |
| | | */ |
| | | BALANCE(1), |
| | | BALANCE(1, "余额"), |
| | | /** |
| | | * 积分 |
| | | */ |
| | | SCORE(2), |
| | | SCORE(2, "积分"), |
| | | /** |
| | | * 竞猜积分 |
| | | */ |
| | | PRIZE_SCORE(3), |
| | | PRIZE_SCORE(3, "竞猜积分"), |
| | | /** |
| | | * 佣金 |
| | | */ |
| | | COMMISSION(4), |
| | | COMMISSION(4, "佣金"), |
| | | /** |
| | | * 贡献点 |
| | | */ |
| | | STAR(5), |
| | | STAR(5, ""), |
| | | /** |
| | | * 补贴额度 |
| | | */ |
| | | TOTAL_SCORE(6), |
| | | TOTAL_SCORE(6, ""), |
| | | /** |
| | | * 凭证数量 |
| | | */ |
| | | VOUCHER_CNT(7), |
| | | VOUCHER_CNT(7, ""), |
| | | /** |
| | | * 凭证数量 |
| | | */ |
| | | VOUCHER_AMOUNT(8), |
| | | VOUCHER_AMOUNT(8, ""), |
| | | |
| | | /** |
| | | * 微信支付 |
| | | */ |
| | | WECHAT(9); |
| | | WECHAT(9, ""); |
| | | |
| | | private final int value; |
| | | private final String name; |
| | | |
| | | FlowTypeEnum(int value) { |
| | | FlowTypeEnum(int value, String name) { |
| | | this.value = value; |
| | | this.name = name; |
| | | } |
| | | } |
| | |
| | | /** |
| | | * 直推收益 |
| | | */ |
| | | DIRECT_BONUS(1), |
| | | DIRECT_BONUS(1, "直推奖"), |
| | | |
| | | /** |
| | | * 隔代收益 |
| | | */ |
| | | SECOND_BONUS(2), |
| | | SECOND_BONUS(2, "隔代收益"), |
| | | |
| | | /** |
| | | * 全网分红 |
| | | */ |
| | | ALL_INTERNET_BONUS(3), |
| | | ALL_INTERNET_BONUS(3, "全网分红"), |
| | | |
| | | /** |
| | | * 代理分红 |
| | | */ |
| | | AGENT_BONUS(4), |
| | | AGENT_BONUS(4, "代理分红"), |
| | | |
| | | /** |
| | | * 股东分红 |
| | | */ |
| | | PARTNER_BONUS(5), |
| | | PARTNER_BONUS(5, "股东分红"), |
| | | |
| | | /** |
| | | * 获得静态积分 |
| | | */ |
| | | BUY_TC(6), |
| | | BUY_TC(6, "积分兑换"), |
| | | |
| | | /** |
| | | * 推荐奖 |
| | | */ |
| | | RECOMMEND_BONUS(7), |
| | | RECOMMEND_BONUS(7, "推荐奖"), |
| | | |
| | | /** |
| | | * 提现 |
| | | */ |
| | | WITHDRAWAL(8), |
| | | WITHDRAWAL(8, "提现"), |
| | | /** |
| | | * 转账 |
| | | */ |
| | | TRANSFER(9), |
| | | TRANSFER(9, "转账"), |
| | | /** |
| | | * 支付 |
| | | */ |
| | | PAY(10), |
| | | PAY(10, "支付"), |
| | | /** |
| | | * 退款 |
| | | */ |
| | | REFUND(11), |
| | | REFUND(11, "退款"), |
| | | |
| | | /** |
| | | * 佣金转竞猜积分 |
| | | */ |
| | | COMMISSION_TO_PRIZESCORE(12), |
| | | COMMISSION_TO_PRIZESCORE(12, "1"), |
| | | |
| | | /** |
| | | * 佣金转余额 |
| | | */ |
| | | COMMISSION_TO_BALANCE(13), |
| | | COMMISSION_TO_BALANCE(13, "1"), |
| | | |
| | | /** |
| | | * 竞猜积分签到 |
| | | */ |
| | | SCORE_SIGN(14), |
| | | SCORE_SIGN(14, "1"), |
| | | |
| | | /** |
| | | * 感恩奖 |
| | | */ |
| | | THANKFUL(15), |
| | | THANKFUL(15, "感恩奖"), |
| | | |
| | | /** |
| | | * 系统 |
| | | */ |
| | | SYSTEM(16), |
| | | SYSTEM(16, "系统"), |
| | | |
| | | /** |
| | | * 抽奖 |
| | | */ |
| | | PRIZE(17), |
| | | PRIZE(17, "1"), |
| | | |
| | | |
| | | /** |
| | | * 积分池收益 |
| | | */ |
| | | SCORE_POOL(18), |
| | | SCORE_POOL(18, ""), |
| | | |
| | | /** |
| | | * 星级奖励 |
| | | */ |
| | | STAR_PERK_TWO(19), |
| | | STAR_PERK_TWO(19, ""), |
| | | |
| | | /** |
| | | * 星级奖励 |
| | | */ |
| | | STAR_PERK_THREE(20), |
| | | STAR_PERK_THREE(20, ""), |
| | | |
| | | /** |
| | | * 星级奖励 |
| | | */ |
| | | STAR_PERK_FOUR(21), |
| | | STAR_PERK_FOUR(21, ""), |
| | | |
| | | /** |
| | | * 星级奖励 |
| | | */ |
| | | STAR_PERK_FIVE(22), |
| | | STAR_PERK_FIVE(22, ""), |
| | | |
| | | /** |
| | | * 星级奖励 |
| | | */ |
| | | STAR_PERK_SIX(23), |
| | | STAR_PERK_SIX(23, ""), |
| | | |
| | | /** |
| | | * 星级奖励 |
| | | */ |
| | | STAR_PERK_SEVEN(24), |
| | | STAR_PERK_SEVEN(24, ""), |
| | | |
| | | /** |
| | | * 贡献点 |
| | | */ |
| | | STAR(25), |
| | | STAR(25, ""), |
| | | |
| | | /** |
| | | * 补贴额度 |
| | | */ |
| | | TOTAL_SCORE(26), |
| | | TOTAL_SCORE(26, ""), |
| | | |
| | | /** |
| | | * 团队补贴明细 |
| | | */ |
| | | TEAM_PERK(27), |
| | | TEAM_PERK(27, ""), |
| | | |
| | | /** |
| | | * 平级奖励补贴 |
| | | */ |
| | | TEAM_EQUALS_PERK(28), |
| | | TEAM_EQUALS_PERK(28, ""), |
| | | |
| | | /** |
| | | * 线下服务中心补贴 |
| | | */ |
| | | OFFLINE_PERK(29), |
| | | OFFLINE_PERK(29, ""), |
| | | |
| | | /** |
| | | * 代理商补贴 |
| | | */ |
| | | AGENT_PERK(30), |
| | | AGENT_PERK(30, ""), |
| | | |
| | | /** |
| | | * 联创合伙人释放凭证 |
| | | */ |
| | | ROLE_RELEASE_SCORE(31), |
| | | ROLE_RELEASE_SCORE(31, ""), |
| | | |
| | | /** |
| | | * 业绩释放联创凭证 |
| | | */ |
| | | ACHIEVE_RELEASE_SCORE_LC(32), |
| | | ACHIEVE_RELEASE_SCORE_LC(32, ""), |
| | | |
| | | /** |
| | | * 业绩释放合伙人凭证 |
| | | */ |
| | | ACHIEVE_RELEASE_SCORE_HHR(33), |
| | | ACHIEVE_RELEASE_SCORE_HHR(33, ""), |
| | | |
| | | /** |
| | | * 业绩释放贡献点凭证 |
| | | */ |
| | | ACHIEVE_RELEASE_SCORE_GXD(34), |
| | | ACHIEVE_RELEASE_SCORE_GXD(34, ""), |
| | | |
| | | /** |
| | | * 业绩释放星级凭证 |
| | | */ |
| | | ACHIEVE_RELEASE_SCORE_XJ(35), |
| | | ACHIEVE_RELEASE_SCORE_XJ(35, ""), |
| | | |
| | | /** |
| | | * 凭证买入 |
| | | */ |
| | | VOUCHER_BUY(36), |
| | | VOUCHER_BUY(36, ""), |
| | | |
| | | /** |
| | | * 凭证卖出 |
| | | */ |
| | | VOUCHER_SALE(37); |
| | | VOUCHER_SALE(37, ""); |
| | | |
| | | private final int value; |
| | | |
| | | MoneyFlowTypeEnum(int value) { |
| | | private final String name; |
| | | |
| | | MoneyFlowTypeEnum(int value, String name) { |
| | | this.value = value; |
| | | this.name = name; |
| | | } |
| | | } |
| | |
| | | import cc.mrbird.febs.mall.service.IAdminMallMemberService; |
| | | import cc.mrbird.febs.mall.service.IApiMallMemberService; |
| | | import cc.mrbird.febs.mall.vo.AdminAgentLevelOptionTreeVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMoneyFlowListVo; |
| | | import cc.mrbird.febs.mall.vo.ChargeListExportVo; |
| | | import cc.mrbird.febs.system.entity.Dept; |
| | | import com.alibaba.excel.EasyExcel; |
| | |
| | | EasyExcel.write(response.getOutputStream(),ChargeListExportVo.class).sheet("提现列表").doWrite(list); |
| | | } |
| | | |
| | | @GetMapping("teamList") |
| | | public FebsResponse teamList(MallMember mallMember, QueryRequest request) { |
| | | Map<String, Object> data = getDataTable(mallMemberService.findTeamList(mallMember, request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | @GetMapping(value = "/moneyFlow/excel") |
| | | public void exportMoneyFlow(MoneyFlowListDto moneyFlowListDto, HttpServletResponse response) throws IOException { |
| | | QueryRequest request = new QueryRequest(); |
| | | request.setPageNum(1); |
| | | request.setPageSize(999999999); |
| | | |
| | | List<AdminMoneyFlowListVo> list = this.mallMemberService.getMoneyFlowListInPage(moneyFlowListDto, request).getRecords(); |
| | | |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); |
| | | response.setCharacterEncoding("utf-8"); |
| | | String fileName= URLEncoder.encode("资金明细表","UTF-8").replaceAll("\\+","%20"); |
| | | response.setHeader("Content-disposition","attachment;filename*=utf-8''"+fileName+".xlsx"); |
| | | EasyExcel.write(response.getOutputStream(),AdminMoneyFlowListVo.class).sheet("资金明细表").doWrite(list); |
| | | } |
| | | |
| | | } |
| | |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.PathVariable; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RequestParam; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | @Controller("mallMemberView") |
| | | @RequestMapping(FebsConstant.VIEW_PREFIX + "modules/mallMember") |
| | |
| | | */ |
| | | @GetMapping("moneyFlowList") |
| | | @RequiresPermissions("moneyFlowList:view") |
| | | public String moneyFlowList() { |
| | | public String moneyFlowList(String refererId, String inviteId, Model model) { |
| | | model.addAttribute("referrerId", refererId); |
| | | model.addAttribute("inviteId", inviteId); |
| | | return FebsUtil.view("modules/mallMember/moneyFlowList"); |
| | | } |
| | | |
| | |
| | | return FebsUtil.view("modules/mallMember/matrixTree"); |
| | | } |
| | | |
| | | @GetMapping("teamList") |
| | | public String teamList() { |
| | | return FebsUtil.view("modules/mallMember/teamList"); |
| | | } |
| | | |
| | | @GetMapping("teamList/{inviteId}") |
| | | public String teamListByInviteId(@PathVariable String inviteId, Model model) { |
| | | model.addAttribute("refererId", inviteId); |
| | | return FebsUtil.view("modules/mallMember/teamList"); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | private Integer flowType; |
| | | |
| | | private String inviteId; |
| | | |
| | | private String referrerId; |
| | | |
| | | } |
New file |
| | |
| | | package cc.mrbird.febs.mall.excel; |
| | | |
| | | import cc.mrbird.febs.common.enumerates.FlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import com.alibaba.excel.converters.Converter; |
| | | import com.alibaba.excel.metadata.GlobalConfiguration; |
| | | import com.alibaba.excel.metadata.data.ReadCellData; |
| | | import com.alibaba.excel.metadata.data.WriteCellData; |
| | | import com.alibaba.excel.metadata.property.ExcelContentProperty; |
| | | |
| | | public class FlowTypeConverter implements Converter<Integer> { |
| | | |
| | | @Override |
| | | public WriteCellData<?> convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { |
| | | |
| | | for (FlowTypeEnum flowType : FlowTypeEnum.values()) { |
| | | if(flowType.getValue() == value) { |
| | | return new WriteCellData<>(flowType.getName()); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
New file |
| | |
| | | package cc.mrbird.febs.mall.excel; |
| | | |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import com.alibaba.excel.converters.Converter; |
| | | import com.alibaba.excel.metadata.GlobalConfiguration; |
| | | import com.alibaba.excel.metadata.data.ReadCellData; |
| | | import com.alibaba.excel.metadata.data.WriteCellData; |
| | | import com.alibaba.excel.metadata.property.ExcelContentProperty; |
| | | |
| | | public class MoneyFlowTypeConverter implements Converter<Integer> { |
| | | |
| | | |
| | | @Override |
| | | public WriteCellData<?> convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { |
| | | for (MoneyFlowTypeEnum type : MoneyFlowTypeEnum.values()) { |
| | | if(type.getValue() == value) { |
| | | return new WriteCellData<>(type.getName()); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | } |
| | |
| | | Integer selectOwnCntByInviteIdAndAccountLevel(@Param("inviteId") String inviteId, @Param("accountLevel") Integer accountLevel); |
| | | |
| | | List<MallMember> selectMatrixTreeMemberList(); |
| | | |
| | | IPage<AdminTeamListVo> selectTeamListInPage(@Param("record") MallMember mallMember, Page<AdminTeamListVo> page); |
| | | } |
| | |
| | | MallMoneyFlow selectByOrderNoAndMemberId(@Param("orderNo")String orderNo, @Param("memberId")Long memberId, @Param("isReturn")int isReturn); |
| | | |
| | | List<ChargeListExportVo> selectChargeListForExcel(@Param("record") MoneyChargeListDto moneyChargeListDto); |
| | | |
| | | List<MallMoneyFlow> selectMemberProfitByMemberIds(@Param("list") List<Long> memberIds); |
| | | } |
| | |
| | | TreeItemVo findMatrixTree(); |
| | | |
| | | List<ChargeListExportVo> findChargeListForExcel(MoneyChargeListDto moneyChargeListDto); |
| | | |
| | | IPage<AdminTeamListVo> findTeamList(MallMember mallMember, QueryRequest request); |
| | | } |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | public List<ChargeListExportVo> findChargeListForExcel(MoneyChargeListDto moneyChargeListDto) { |
| | | return this.mallMoneyFlowMapper.selectChargeListForExcel(moneyChargeListDto); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminTeamListVo> findTeamList(MallMember mallMember, QueryRequest request) { |
| | | Page<AdminTeamListVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminTeamListVo> teamListInPage = this.mallMemberMapper.selectTeamListInPage(mallMember, page); |
| | | if (CollUtil.isEmpty(teamListInPage.getRecords())) { |
| | | return teamListInPage; |
| | | } |
| | | |
| | | List<Long> memberIds = teamListInPage.getRecords().stream().map(AdminTeamListVo::getId).collect(Collectors.toList()); |
| | | List<MallMoneyFlow> mallMoneyFlows = this.mallMoneyFlowMapper.selectMemberProfitByMemberIds(memberIds); |
| | | if (CollUtil.isNotEmpty(mallMoneyFlows)) { |
| | | Map<Long, MallMoneyFlow> map = new HashMap<>(); |
| | | mallMoneyFlows.forEach(item -> { |
| | | map.put(item.getMemberId(), item); |
| | | }); |
| | | |
| | | teamListInPage.getRecords().forEach(item -> { |
| | | MallMoneyFlow mallMoneyFlow = map.get(item.getId()); |
| | | if (mallMoneyFlow != null) { |
| | | item.setTeamProfitAmount(mallMoneyFlow.getAmount()); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | |
| | | return teamListInPage; |
| | | } |
| | | } |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import cc.mrbird.febs.mall.excel.FlowTypeConverter; |
| | | import cc.mrbird.febs.mall.excel.MoneyFlowTypeConverter; |
| | | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; |
| | | import com.alibaba.excel.annotation.ExcelProperty; |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @ExcelIgnoreUnannotated |
| | | @ApiModel(value = "AdminMoneyFlowListVo", description = "信息返回类") |
| | | public class AdminMoneyFlowListVo { |
| | | |
| | | private Long id; |
| | | |
| | | @ExcelProperty(value = "时间", index = 6) |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createdTime; |
| | | |
| | | @ExcelProperty(value = "金额", index = 3) |
| | | private BigDecimal amount; |
| | | |
| | | @ExcelProperty(value = "流水类型", index = 4, converter = MoneyFlowTypeConverter.class) |
| | | private Integer type; |
| | | |
| | | @ExcelProperty(value = "订单编号", index = 7) |
| | | private String orderNo; |
| | | |
| | | private String description; |
| | | |
| | | private String remark; |
| | | |
| | | @ExcelProperty(value = "名称", index = 1) |
| | | private String name; |
| | | |
| | | @ExcelProperty(value = "账号", index = 2) |
| | | private String phone; |
| | | |
| | | private Integer status; |
| | |
| | | |
| | | private String bindPhone; |
| | | |
| | | @ExcelProperty(value = "资金类型", index = 5, converter = FlowTypeConverter.class) |
| | | private Integer flowType; |
| | | /** |
| | | * 来源 |
New file |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | |
| | | @Data |
| | | public class AdminTeamListVo { |
| | | |
| | | private Long id; |
| | | |
| | | private String name; |
| | | |
| | | private String phone; |
| | | |
| | | private String inviteId; |
| | | |
| | | private Integer directCnt; |
| | | |
| | | private BigDecimal teamOrderAmount; |
| | | |
| | | private BigDecimal teamProfitAmount; |
| | | |
| | | private BigDecimal selfProfitAmount; |
| | | |
| | | public BigDecimal getTeamProfitAmount() { |
| | | return teamProfitAmount == null ? BigDecimal.ZERO : teamProfitAmount; |
| | | } |
| | | |
| | | public BigDecimal getTeamOrderAmount() { |
| | | return teamOrderAmount == null ? BigDecimal.ZERO : teamOrderAmount; |
| | | } |
| | | |
| | | public BigDecimal getSelfProfitAmount() { |
| | | return selfProfitAmount== null ? BigDecimal.ZERO : selfProfitAmount; |
| | | } |
| | | } |
| | |
| | | select memberInfo.* from mall_member memberInfo |
| | | inner join matrix_tree_node nodeInfo on memberInfo.id=nodeInfo.tree_node |
| | | </select> |
| | | |
| | | <select id="selectTeamListInPage" resultType="cc.mrbird.febs.mall.vo.AdminTeamListVo"> |
| | | select |
| | | memberInfo.id |
| | | ,memberInfo.phone |
| | | ,memberInfo.name |
| | | ,memberInfo.invite_id inviteId |
| | | ,(select count(1) from mall_member a where a.referrer_id=memberInfo.invite_id) directCnt |
| | | ,ifnull(sum(orderInfo.amount), 0) teamOrderAmount |
| | | ,ifnull((select sum(b.amount) from mall_money_flow b where memberInfo.id=b.member_id and b.flow_type = 1 and b.type in (1,2,3,4,5,7)),0) selfProfitAmount |
| | | from mall_member memberInfo |
| | | left join mall_member orderMember on find_in_set(memberInfo.invite_id, orderMember.referrer_ids) |
| | | left join mall_order_info orderInfo on orderMember.id=orderInfo.member_id and orderInfo.status in (2, 3, 4) and orderInfo.order_type = 1 |
| | | <where> |
| | | 1=1 |
| | | <if test="record != null"> |
| | | <if test="record.query != null and record.query != ''"> |
| | | and (memberInfo.invite_id=#{record.query} or memberInfo.phone=#{record.query} or instr(memberInfo.name, #{record.query})) |
| | | </if> |
| | | <if test="record.referrerId != null and record.referrerId != ''"> |
| | | and memberInfo.referrer_id = #{record.referrerId} |
| | | </if> |
| | | </if> |
| | | </where> |
| | | group by memberInfo.id |
| | | order by teamOrderAmount desc |
| | | </select> |
| | | </mapper> |
| | |
| | | b.phone, |
| | | d.name fromMemberName |
| | | from mall_money_flow a |
| | | left join mall_member b on a.member_id=b.id |
| | | inner join mall_member b on a.member_id=b.id |
| | | left join mall_order_info c on a.order_no = c.order_no |
| | | left join mall_member d on d.id = a.rt_member_id |
| | | <where> |
| | |
| | | </if> |
| | | <if test="record.flowType!=null and record.flowType!=''"> |
| | | and a.flow_type like concat('%', #{record.flowType},'%') |
| | | </if> |
| | | <if test="record.referrerId!=null and record.referrerId!=''"> |
| | | and b.referrer_id = #{record.referrerId} |
| | | </if> |
| | | <if test="record.inviteId!=null and record.inviteId!=''"> |
| | | and b.invite_id = #{record.inviteId} |
| | | </if> |
| | | </if> |
| | | </where> |
| | |
| | | </where> |
| | | order by a.created_time desc |
| | | </select> |
| | | |
| | | <select id="selectMemberProfitByMemberIds" resultType="cc.mrbird.febs.mall.entity.MallMoneyFlow"> |
| | | select memberInfo.id memberId, ifnull(sum(flowInfo.amount),0) amount from mall_member memberInfo |
| | | inner join mall_member flowMember on find_in_set(memberInfo.invite_id, flowMember.referrer_ids) |
| | | inner join mall_money_flow flowInfo on flowMember.id=flowInfo.member_id and flowInfo.flow_type = 1 and flowInfo.type in (1,2,3,4,5,7) |
| | | <where> |
| | | memberInfo.id in <foreach collection="list" item="item" separator="," open="(" close=")"> |
| | | #{item} |
| | | </foreach> |
| | | </where> |
| | | group by memberInfo.id |
| | | </select> |
| | | </mapper> |
| | |
| | | url = url || conf.entry; |
| | | loadBar.start(); |
| | | var queryIndex = url.indexOf('?'); |
| | | if (queryIndex !== -1) url = url.slice(0, queryIndex); |
| | | var v = '?v='; |
| | | if (queryIndex !== -1) v = '&v='; |
| | | $.ajax({ |
| | | url: |
| | | (url.indexOf(conf.base) === 0 ? '' : conf.views) + |
| | | url + |
| | | conf.engine + |
| | | '?v=' + |
| | | v + |
| | | conf.v, |
| | | type: 'get', |
| | | data: { |
| | |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">会员类型:</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="level"> |
| | | <option value="">请选择</option> |
| | | <option value="ZERO_LEVEL">迷梦素人</option> |
| | | <option value="FIRST_LEVEL">觉醒须眉/觉醒丽人</option> |
| | | <option value="SECOND_LEVEL">先知蓝颜/先知红颜</option> |
| | | <option value="THIRD_LEVEL">追影才子/追影佳人</option> |
| | | <option value="FOUR_LEVEL">赋权玉郎/赋权娇娘</option> |
| | | <option value="FIFTH_LEVEL">位极尊上/位极女卿</option> |
| | | <option value="SIX_LEVEL">权倾圣主/权倾女帝</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | |
| | | <input type="text" placeholder="账号" name="phone" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline febs-hide"> |
| | | <label class="layui-form-label">账号:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="账号" name="inviteId" data-th-value="${inviteId}" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline febs-hide"> |
| | | <label class="layui-form-label">账号:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="账号" name="referrerId" data-th-value="${referrerId}" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">流水类型:</label> |
| | | <div class="layui-input-inline"> |
| | |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> |
| | | <i class="layui-icon"></i> |
| | | </div> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="exportExcel"> |
| | | 导出 |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </form> |
| | |
| | | $query = $view.find('#query'), |
| | | $reset = $view.find('#reset'), |
| | | $searchForm = $view.find('form'), |
| | | $exportExcel = $view.find('#exportExcel'), |
| | | sortObject = {field: 'phone', type: null}, |
| | | tableIns; |
| | | |
| | |
| | | }); |
| | | |
| | | function initTable() { |
| | | var inviteId = $searchForm.find('input[name="inviteId"]').val().trim(); |
| | | var referrerId = $searchForm.find('input[name="referrerId"]').val().trim(); |
| | | tableIns = febs.table.init({ |
| | | elem: $view.find('table'), |
| | | id: 'moneyFlowTable', |
| | | url: ctx + 'admin/mallMember/getMoneyFlowList', |
| | | url: ctx + 'admin/mallMember/getMoneyFlowList?inviteId='+inviteId +"&referrerId=" + referrerId, |
| | | cols: [[ |
| | | {field: 'name', title: '名称', minWidth: 100,align:'left'}, |
| | | {field: 'phone', title: '账号', minWidth: 150,align:'left'}, |
| | |
| | | }; |
| | | } |
| | | |
| | | $exportExcel.on('click', function() { |
| | | febs.download(ctx + 'admin/mallMember/moneyFlow/excel', getQueryParams(), '资金明细表.xlsx'); |
| | | }); |
| | | }) |
| | | </script> |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-team-list" lay-title="团队业绩"> |
| | | <div class="layui-row febs-container"> |
| | | <div class="layui-col-md12"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body febs-table-full"> |
| | | <form class="layui-form layui-table-form" lay-filter="team-list-table-form"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="会员名称/账号/邀请码" name="query" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">上级邀请码:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" placeholder="" name="refererId" autocomplete="off" data-th-value="${refererId}" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query"> |
| | | <i class="layui-icon"></i> |
| | | </div> |
| | | <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset"> |
| | | <i class="layui-icon"></i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </form> |
| | | <table lay-filter="teamListTable" lay-data="{id: 'teamListTable'}"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- 表格操作栏 start --> |
| | | <script type="text/html" id="user-option"> |
| | | <span shiro:lacksPermission="user:view,user:update,user:delete"> |
| | | <span class="layui-badge-dot febs-bg-orange"></span> 无权限 |
| | | </span> |
| | | <a lay-event="edit" shiro:hasPermission="user:update"><i |
| | | class="layui-icon febs-edit-area febs-blue"></i></a> |
| | | </script> |
| | | |
| | | <script type="text/html" id="directCntTemplate"> |
| | | <a lay-href="/modules/mallMember/teamList/{{d.inviteId}}" target="_blank">{{d.directCnt}}</a> |
| | | </script> |
| | | <script type="text/html" id="teamMoneyFlow"> |
| | | <a lay-href="/modules/mallMember/moneyFlowList?refererId={{d.inviteId}}" target="_blank">{{d.teamProfitAmount}}</a> |
| | | </script> |
| | | <script type="text/html" id="selfMoneyFlow"> |
| | | <a lay-href="/modules/mallMember/moneyFlowList?inviteId={{d.inviteId}}" target="_blank">{{d.selfProfitAmount}}</a> |
| | | </script> |
| | | <!-- 表格操作栏 end --> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | // 引入组件并初始化 |
| | | layui.use([ 'jquery', 'form', 'table', 'febs'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | $view = $('#febs-team-list'), |
| | | $query = $view.find('#query'), |
| | | $reset = $view.find('#reset'), |
| | | $searchForm = $view.find('form'), |
| | | refererId = $searchForm.find('input[name="refererId"]').val().trim(), |
| | | sortObject = {field: 'phone', type: null}, |
| | | tableIns; |
| | | |
| | | form.render(); |
| | | |
| | | // 表格初始化 |
| | | initTable(); |
| | | |
| | | // 初始化表格操作栏各个按钮功能 |
| | | table.on('tool(teamListTable)', function (obj) { |
| | | var data = obj.data, |
| | | layEvent = obj.event; |
| | | if (layEvent === 'agentLevelUpdate') { |
| | | febs.modal.open('编辑', 'modules/mallMember/agentLevelUpdate/' + data.id, { |
| | | btn: ['确认', '取消'], |
| | | yes: function (index, layero) { |
| | | $('#agent-level-edit').find('#submit').trigger('click'); |
| | | }, |
| | | btn2: function () { |
| | | layer.closeAll(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | // 查询按钮 |
| | | $query.on('click', function () { |
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type}); |
| | | tableIns.reload({where: params, page: {curr: 1}}); |
| | | }); |
| | | |
| | | // 刷新按钮 |
| | | $reset.on('click', function () { |
| | | $searchForm[0].reset(); |
| | | sortObject.type = 'null'; |
| | | tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); |
| | | }); |
| | | |
| | | function initTable() { |
| | | tableIns = febs.table.init({ |
| | | elem: $view.find('table'), |
| | | id: 'teamListTable', |
| | | url: ctx + 'admin/mallMember/teamList?referrerId=' + refererId, |
| | | where : getQueryParams, |
| | | cols: [[ |
| | | {field: 'name', title: '会员名称', minWidth: 100}, |
| | | {field: 'phone', title: '会员账号', minWidth: 100}, |
| | | {field: 'directCnt', title: '直推数量', templet:"#directCntTemplate", minWidth: 100}, |
| | | {field: 'selfProfitAmount', title: '会员收益', templet:"#selfMoneyFlow", minWidth: 100}, |
| | | {field: 'teamOrderAmount', title: '团队订单金额', minWidth: 100}, |
| | | {field: 'teamProfitAmount', title: '团队收益', templet:"#teamMoneyFlow", minWidth: 100}, |
| | | ]] |
| | | }); |
| | | } |
| | | |
| | | // 获取查询参数 |
| | | function getQueryParams() { |
| | | return { |
| | | query: $searchForm.find('input[name="query"]').val().trim(), |
| | | referrerId: $searchForm.find('input[name="refererId"]').val().trim(), |
| | | }; |
| | | } |
| | | }) |
| | | </script> |
| | | <script> |
| | | </script> |