2 files added
12 files modified
| | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | | import cc.mrbird.febs.mall.entity.MallOrderRefund; |
| | | import cc.mrbird.febs.mall.service.IAdminMallMemberService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | public FebsResponse openAccount(@NotNull(message = "{required}") @PathVariable Long id) { |
| | | return mallMemberService.openAccount(id); |
| | | } |
| | | |
| | | /** |
| | | * 会员列表-资金流水 |
| | | */ |
| | | @GetMapping("/moneyFlow") |
| | | public FebsResponse moneyFlow(QueryRequest request, MallMember mallMember, Integer parentId) { |
| | | if(parentId==null){ |
| | | ViewMallMemberController.idFromMoneyFlow=0; |
| | | } |
| | | mallMember.setId(ViewMallOrderController.idFromRefund); |
| | | Map<String, Object> dataTable = getDataTable(mallMemberService.moneyFlow(request, mallMember)); |
| | | return new FebsResponse().success().data(dataTable); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | private final IAdminMallMemberService mallMemberService; |
| | | |
| | | public static long idFromMoneyFlow; |
| | | |
| | | /** |
| | | * 会员列表 |
| | | * @return |
| | |
| | | return FebsUtil.view("modules/mallMember/detail"); |
| | | } |
| | | |
| | | /** |
| | | * 会员列表-资金流水 |
| | | * @param id |
| | | * @param model |
| | | * @return |
| | | */ |
| | | @GetMapping("moneyFlow/{id}") |
| | | public String moneyFlow(@PathVariable long id, Model model) { |
| | | idFromMoneyFlow = id; |
| | | return FebsUtil.view("modules/mallMember/moneyFlow"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | MallMember selectInfoByInviteId(@Param("inviteId") String inviteId); |
| | | |
| | | MallMember selectInfoByAccountAndPwd(@Param("account") String account, @Param("password") String password); |
| | | |
| | | MallMemberVo getMallMemberInfoById(@Param("id")long id); |
| | | } |
| | |
| | | package cc.mrbird.febs.mall.mapper; |
| | | |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | | import cc.mrbird.febs.mall.entity.MallMoneyFlow; |
| | | import cc.mrbird.febs.mall.vo.AdminMallMoneyFlowVo; |
| | | 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; |
| | | |
| | | public interface MallMoneyFlowMapper extends BaseMapper<MallMoneyFlow> { |
| | | |
| | | IPage<AdminMallMoneyFlowVo> selectMoneyFlowInPage(Page<AdminMallMoneyFlowVo> page, @Param("record")MallMember mallMember); |
| | | |
| | | } |
| | |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.mall.dto.RegisterDto; |
| | | 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.MallMemberVo; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | |
| | | FebsResponse openAccount(@NotNull(message = "{required}") Long id); |
| | | |
| | | MallMemberVo getMallMemberInfoById(@NotNull(message = "{required}") long id); |
| | | |
| | | IPage<AdminMallMoneyFlowVo> moneyFlow(QueryRequest request, MallMember mallMember); |
| | | } |
| | |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.mall.entity.MallMember; |
| | | import cc.mrbird.febs.mall.mapper.MallMemberMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper; |
| | | import cc.mrbird.febs.mall.service.IAdminMallMemberService; |
| | | import cc.mrbird.febs.mall.vo.AdminMallMoneyFlowVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMallOrderRefundOperationVo; |
| | | import cc.mrbird.febs.mall.vo.MallMemberVo; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | |
| | | public class AdminMallMemberServiceImpl extends ServiceImpl<MallMemberMapper, MallMember> implements IAdminMallMemberService { |
| | | |
| | | private final MallMemberMapper mallMemberMapper; |
| | | |
| | | private final MallMoneyFlowMapper mallMoneyFlowMapper; |
| | | |
| | | @Override |
| | | public IPage<MallMember> getMallMemberList(MallMember mallMember, QueryRequest request) { |
| | |
| | | return mallMemberVo; |
| | | } |
| | | |
| | | @Override |
| | | public IPage<AdminMallMoneyFlowVo> moneyFlow(QueryRequest request, MallMember mallMember) { |
| | | Page<AdminMallMoneyFlowVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminMallMoneyFlowVo> adminMallMoneyFlowVos = mallMoneyFlowMapper.selectMoneyFlowInPage(page, mallMember); |
| | | return adminMallMoneyFlowVos; |
| | | } |
| | | |
| | | } |
| | |
| | | return new FebsResponse().fail().message("请输入物流公司"); |
| | | } |
| | | MallExpressInfo mallExpressInfo = new MallExpressInfo(); |
| | | mallExpressInfo.setMemberId(mallExpressInfo.getMemberId()); |
| | | mallExpressInfo.setMemberId(mallOrderInfo.getMemberId()); |
| | | mallExpressInfo.setOrderId(mallOrderInfo.getId()); |
| | | mallExpressInfo.setExpressNo(expressNo); |
| | | mallExpressInfo.setExpressCom(expressCom); |
| | | mallExpressInfoMapper.insert(mallExpressInfo); |
New file |
| | |
| | | package cc.mrbird.febs.mall.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @ApiModel(value = "AdminMallMoneyFlowVo", description = "信息返回类") |
| | | public class AdminMallMoneyFlowVo { |
| | | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createdTime; |
| | | |
| | | private BigDecimal amount; |
| | | |
| | | private Integer type; |
| | | |
| | | private String orderNo; |
| | | |
| | | private String description; |
| | | |
| | | private String remark; |
| | | |
| | | } |
| | |
| | | a.level, |
| | | a.account_status, |
| | | a.CREATED_TIME, |
| | | c.balance, |
| | | b.name |
| | | FROM mall_member a |
| | | LEFT JOIN mall_member b on a.referrer_id = b.invite_id |
| | | LEFT JOIN mall_member_wallet c on c.member_id = a.id |
| | | where a.id = #{id} |
| | | </select> |
| | | |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="cc.mrbird.febs.mall.mapper.MallMoneyFlowMapper"> |
| | | |
| | | <select id="selectMoneyFlowInPage" resultType="cc.mrbird.febs.mall.vo.AdminMallMoneyFlowVo"> |
| | | select * from mall_money_flow a where a.member_id = #{record.id} |
| | | order by a.CREATED_TIME desc |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">余额:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="balance" data-th-id="${member.balance}" |
| | | autocomplete="off" class="layui-input" readonly> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label febs-form-item-require">代理层级:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="level" data-th-id="${member.level}" |
| | |
| | | "phone": member.phone, |
| | | "email": member.email, |
| | | "sex": member.sex, |
| | | "balance": member.balance, |
| | | "inviteId": member.inviteId, |
| | | "referrerName": member.referrerName, |
| | | "level": member.level, |
| | |
| | | maxmin: true, |
| | | }); |
| | | } |
| | | if (layEvent === 'moneyFlow') { |
| | | febs.modal.open( '用户资金流水', 'modules/mallMember/moneyFlow/' + data.id, { |
| | | maxmin: true, |
| | | }); |
| | | } |
| | | }); |
| | | function closeAccount(id) { |
| | | febs.get(ctx + 'admin/mallMember/closeAccount/' + id, null, function () { |
| | |
| | | if (d.accountStatus === 1) { |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="see" shiro:hasPermission="user:update">详情</button>' |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="close" shiro:hasPermission="user:update">禁用</button>' |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="moneyFlow" shiro:hasPermission="user:update">资金流水</button>' |
| | | |
| | | }else{ |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="see" shiro:hasPermission="user:update">详情</button>' |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="open" shiro:hasPermission="user:update">启用</button>' |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="moneyFlow" shiro:hasPermission="user:update">资金流水</button>' |
| | | |
| | | } |
| | | },minWidth: 300,align:'center'} |
New file |
| | |
| | | <div class="layui-fluid layui-anim febs-anim" id="febs-moneyFlow-child" 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"> |
| | | <table lay-filter="moneyFlowChild" lay-data="{id: 'moneyFlowChild'}"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect' ,'eleTree'], function () { |
| | | var $ = layui.jquery, |
| | | laydate = layui.laydate, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | treeSelect = layui.treeSelect, |
| | | dropdown = layui.dropdown, |
| | | $view = $('#febs-moneyFlow-child'), |
| | | $query = $view.find('#queryChild'), |
| | | $searchForm = $view.find('formChild'), |
| | | sortObject = {field: 'createTime', type: null}, |
| | | tableIns, |
| | | createTimeFrom, |
| | | createTimeTo; |
| | | |
| | | form.render(); |
| | | |
| | | initTable(); |
| | | |
| | | laydate.render({ |
| | | elem: '#user-createTime', |
| | | range: true, |
| | | trigger: 'click' |
| | | }); |
| | | |
| | | |
| | | function initTable() { |
| | | tableIns = febs.table.init({ |
| | | elem: $view.find('table'), |
| | | id: 'moneyFlowChild', |
| | | url: ctx + 'admin/mallMember/moneyFlow?parentId=1', |
| | | cols: [[ |
| | | {field: 'orderNo', title: '订单编号', minWidth: 150,align:'center'}, |
| | | {field: 'type', title: '流水类型', |
| | | templet: function (d) { |
| | | if (d.type === 1) { |
| | | return '<span>分红收入</span>' |
| | | } else if (d.type === 2) { |
| | | return '<span>业绩奖励</span>' |
| | | } else if (d.type === 3) { |
| | | return '<span>订单支付</span>' |
| | | } else if (d.type === 4) { |
| | | return '<span>退款</span>' |
| | | }else{ |
| | | return '' |
| | | } |
| | | }, minWidth: 80,align:'center'}, |
| | | {field: 'amount', title: '金额', minWidth: 80,align:'center'}, |
| | | {field: 'createdTime', title: '时间', minWidth: 150,align:'left'}, |
| | | {field: 'description', title: '描述', minWidth: 150,align:'left'}, |
| | | {field: 'remark', title: '备注', minWidth: 150,align:'left'}, |
| | | ]] |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | </script> |
| | |
| | | templet: function (d) { |
| | | if (d.status === 2) { |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="deliverGoods" shiro:hasPermission="user:update">发货</button>' |
| | | +'<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' |
| | | }else{ |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>' |
| | | } |