From 0e49cf565fb0e7ef559e35e63e0be728b518f0c2 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 09 Apr 2021 11:52:34 +0800 Subject: [PATCH] 20210409 活动领取 --- src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java | 21 ++ src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java | 8 + src/main/resources/templates/febs/views/modules/member/seeReceiveInfo.html | 58 +++++++ src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java | 6 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java | 19 ++ src/main/resources/templates/febs/views/modules/documentary/traderProfit.html | 5 src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java | 24 +++ src/main/java/com/xcong/excoin/modules/member/entity/ActivityReceiveRecord.java | 96 ++++++++++++ src/main/java/com/xcong/excoin/modules/member/vo/MemberActivityReceiveVo.java | 33 ++++ src/main/resources/templates/febs/views/modules/member/memberActivityReceive.html | 126 +++++++++++++++ src/main/resources/mapper/modules/MemberMapper.xml | 45 +++++ 11 files changed, 441 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java index a34c748..b941fbc 100644 --- a/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java +++ b/src/main/java/com/xcong/excoin/modules/member/controller/MemberController.java @@ -5,6 +5,7 @@ import com.xcong.excoin.common.entity.FebsResponse; import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; +import com.xcong.excoin.modules.member.entity.ActivityReceiveRecord; import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity; import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; @@ -41,6 +42,29 @@ private final IMemberService memberService; /** + * 会员列表---会员活动领取---详情 + */ + @GetMapping("/seeReceiveInfo") + public FebsResponse seeReceiveInfo(QueryRequest request, ActivityReceiveRecord activityReceiveRecord,Integer parentId) { + if(parentId==null){ + ViewController.idFromMember=0; + } + activityReceiveRecord.setId(ViewController.idFromMember); + Map<String, Object> dataTable = getDataTable(memberService.seeReceiveInfo(request, activityReceiveRecord)); + return new FebsResponse().success().data(dataTable); + } + + /** + * 会员列表---会员活动领取 + * @return + */ + @GetMapping("memberActivityReceive") + public FebsResponse memberActivityReceive(ActivityReceiveRecord activityReceiveRecord, QueryRequest request) { + Map<String, Object> data = getDataTable(memberService.memberActivityReceive(activityReceiveRecord, request)); + return new FebsResponse().success().data(data); + } + + /** *会员列表---拨币 * @return */ diff --git a/src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java b/src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java index 583d36f..71f6371 100644 --- a/src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java +++ b/src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java @@ -28,6 +28,27 @@ private final IMemberService memberService; + public static long idFromMember; + + /** + *会员列表---会员活动领取---详情 + */ + @GetMapping("seeReceiveInfo/{id}") + public String seeReceiveInfo(@PathVariable long id, Model model) { + idFromMember = id; + return FebsUtil.view("modules/member/seeReceiveInfo"); + } + + /** + * 会员列表---会员活动领取 + * @return + */ + @GetMapping("memberActivityReceive") + @RequiresPermissions("memberActivityReceive:view") + public String memberActivityReceive() { + return FebsUtil.view("modules/member/memberActivityReceive"); + } + /** * 平台全部信息 * @return diff --git a/src/main/java/com/xcong/excoin/modules/member/entity/ActivityReceiveRecord.java b/src/main/java/com/xcong/excoin/modules/member/entity/ActivityReceiveRecord.java new file mode 100644 index 0000000..644f690 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/member/entity/ActivityReceiveRecord.java @@ -0,0 +1,96 @@ +package com.xcong.excoin.modules.member.entity; + +import java.math.BigDecimal; +import java.util.Date; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.xcong.excoin.common.entity.BaseEntity; + +import lombok.Data; +/** + * @description 活动记录表 + * @author yourName + * @date 2021-03-18 17:53 + */ +@Data +@TableName("activity_receive_record") +public class ActivityReceiveRecord extends BaseEntity{ + private static final long serialVersionUID = 1L; + + + /** + * 用户ID + */ + + + private Long memberId; + + /** + * 活动主表ID + */ + + + private Long mainId; + + /** + * 活动子表ID + */ + + + private Long subId; + + /** + * 领取金额 + */ + + + private BigDecimal receiveCoinAmount; + + /** + * 资产变化记录ID(领取时生成流水记录,划转到币币账户) + */ + + + private Long amcId; + + /** + *激活状态1已激活2未激活3已失效 + */ + public static final Integer RECEIVESTATE_ONE = 1; + public static final Integer RECEIVESTATE_TWO = 2; + public static final Integer RECEIVESTATE_THREE = 3; + private Integer receiveState; + + /** + * 激活时间 + */ + + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date receiveTime; + + /** + * 失效时间 + */ + //激活后在当前时间的基础上新增30天 + public static final long DAYS = 30; + private Date invalidTime; + + + @TableField(exist = false) + private String account; + @TableField(exist = false) + private String email; + @TableField(exist = false) + private String phone; + @TableField(exist = false) + private String realName; + @TableField(exist = false) + private String inviteId; + + + + +} \ No newline at end of file diff --git a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java index 4bffe5c..786f977 100644 --- a/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java +++ b/src/main/java/com/xcong/excoin/modules/member/mapper/MemberMapper.java @@ -3,8 +3,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.xcong.excoin.modules.member.entity.ActivityReceiveRecord; import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; +import com.xcong.excoin.modules.member.vo.MemberActivityReceiveVo; import com.xcong.excoin.modules.member.vo.MemberDataInfoVo; import com.xcong.excoin.modules.trademanage.vo.MemberAccountInfoVo; @@ -425,4 +427,10 @@ MemberEntity selectMemberInfoByQueryKey(@Param("queryKey") String queryKey); + + IPage<MemberActivityReceiveVo> memberActivityReceive(Page<ActivityReceiveRecord> page, + @Param("record")ActivityReceiveRecord activityReceiveRecord); + + IPage<ActivityReceiveRecord> seeReceiveInfo(Page<ActivityReceiveRecord> page, + @Param("record")ActivityReceiveRecord activityReceiveRecord); } diff --git a/src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java b/src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java index ac19bf6..7bb9a5c 100644 --- a/src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java +++ b/src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java @@ -10,12 +10,14 @@ import com.xcong.excoin.common.entity.FebsResponse; import com.xcong.excoin.common.entity.QueryRequest; import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; +import com.xcong.excoin.modules.member.entity.ActivityReceiveRecord; import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity; import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity; import com.xcong.excoin.modules.member.entity.MemberCoinWithdrawEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; import com.xcong.excoin.modules.member.entity.MemberQuickBuySaleEntity; +import com.xcong.excoin.modules.member.vo.MemberActivityReceiveVo; import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo; import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo; import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo; @@ -134,4 +136,8 @@ IPage<MemberAccountMoneyChangeEntity> memberBoBiList(MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request); IPage<MemberDataInfoVo> findAllDataInfoListInPage(MemberEntity memberEntity, QueryRequest request); + + IPage<MemberActivityReceiveVo> memberActivityReceive(ActivityReceiveRecord activityReceiveRecord, QueryRequest request); + + IPage<ActivityReceiveRecord> seeReceiveInfo(QueryRequest request, ActivityReceiveRecord activityReceiveRecord); } diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java index 561d738..e70ba1f 100644 --- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java @@ -16,6 +16,7 @@ import com.xcong.excoin.common.exception.GlobalException; import com.xcong.excoin.modules.Sms106Send; import com.xcong.excoin.modules.member.dto.MemberDetailConfirmDto; +import com.xcong.excoin.modules.member.entity.ActivityReceiveRecord; import com.xcong.excoin.modules.member.entity.AgentFriendRelationEntity; import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; import com.xcong.excoin.modules.member.entity.MemberAuthenticationEntity; @@ -35,6 +36,7 @@ import com.xcong.excoin.modules.member.mapper.MemberQuickBuySaleMapper; import com.xcong.excoin.modules.member.mapper.MemberWalletCoinMapper; import com.xcong.excoin.modules.member.service.IMemberService; +import com.xcong.excoin.modules.member.vo.MemberActivityReceiveVo; import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo; import com.xcong.excoin.modules.member.vo.MemberCoinChargeVo; import com.xcong.excoin.modules.member.vo.MemberCoinWithdrawVo; @@ -2306,4 +2308,21 @@ return selectMemberListInPage; } + + @Override + public IPage<MemberActivityReceiveVo> memberActivityReceive(ActivityReceiveRecord activityReceiveRecord, + QueryRequest request) { + + Page<ActivityReceiveRecord> page = new Page<>(request.getPageNum(), request.getPageSize()); + return memberMapper.memberActivityReceive(page, activityReceiveRecord); + } + + + @Override + public IPage<ActivityReceiveRecord> seeReceiveInfo(QueryRequest request, + ActivityReceiveRecord activityReceiveRecord) { + Page<ActivityReceiveRecord> page = new Page<>(request.getPageNum(), request.getPageSize()); + return memberMapper.seeReceiveInfo(page, activityReceiveRecord); + } + } diff --git a/src/main/java/com/xcong/excoin/modules/member/vo/MemberActivityReceiveVo.java b/src/main/java/com/xcong/excoin/modules/member/vo/MemberActivityReceiveVo.java new file mode 100644 index 0000000..d978136 --- /dev/null +++ b/src/main/java/com/xcong/excoin/modules/member/vo/MemberActivityReceiveVo.java @@ -0,0 +1,33 @@ +package com.xcong.excoin.modules.member.vo; + +import java.math.BigDecimal; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.xcong.excoin.common.utils.BigDecimalSerialize; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "MemberActivityReceiveVo", description = "参数返回类") +public class MemberActivityReceiveVo { + private long id; + private long memberId; + //手机号 + private String phone; + //邮箱 + private String email; + //邀请码 + private String inviteId; + //待领取 + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal receiveTotal; + //已领取 + @JsonSerialize(using = BigDecimalSerialize.class) + private BigDecimal receivedTotal; + //姓名 + public String realName; + + private int accountType; + +} diff --git a/src/main/resources/mapper/modules/MemberMapper.xml b/src/main/resources/mapper/modules/MemberMapper.xml index 48cb7b8..dd75952 100644 --- a/src/main/resources/mapper/modules/MemberMapper.xml +++ b/src/main/resources/mapper/modules/MemberMapper.xml @@ -2,6 +2,51 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.xcong.excoin.modules.member.mapper.MemberMapper"> + <select id="seeReceiveInfo" resultType="com.xcong.excoin.modules.member.entity.ActivityReceiveRecord"> + SELECT + a.id id, + a.member_id, + a.receive_time, + a.receive_coin_amount, + b.phone phone, + b.invite_id inviteId, + b.email email, + concat(c.first_name,c.second_name) realName + FROM + activity_receive_record a + LEFT JOIN member b on a.member_id = b.id + left JOIN member_authentication c on a.member_id = c.member_id + where + a.receive_state = 1 + and a.member_id = (select member_id from activity_receive_record where id = #{record.id}) + </select> + + <select id="memberActivityReceive" resultType="com.xcong.excoin.modules.member.vo.MemberActivityReceiveVo"> + SELECT + a.id id, + a.member_id memberId, + SUM(a.receive_coin_amount) receivedTotal, + (100-SUM(a.receive_coin_amount)) receiveTotal, + b.phone phone, + b.account_type accountType, + b.invite_id inviteId, + b.email email, + concat(c.first_name,c.second_name) realName + FROM + activity_receive_record a + LEFT JOIN member b on a.member_id = b.id + left JOIN member_authentication c on a.member_id = c.member_id + <where> + a.receive_state = 1 + <if test="record != null" > + <if test="record.account!=null and record.account!=''"> + and (b.phone = #{record.account} or b.email = #{record.account} or b.invite_id=#{record.account}) + </if> + </if> + </where> + group by a.member_id ORDER BY receivedTotal DESC; + </select> + <select id="selectMemberInfoByQueryKey" resultType="com.xcong.excoin.modules.member.entity.MemberEntity"> select * from member where phone=#{queryKey} or invite_id=#{queryKey} or email=#{queryKey} </select> diff --git a/src/main/resources/templates/febs/views/modules/documentary/traderProfit.html b/src/main/resources/templates/febs/views/modules/documentary/traderProfit.html index 3d1c9b3..aa7f12d 100644 --- a/src/main/resources/templates/febs/views/modules/documentary/traderProfit.html +++ b/src/main/resources/templates/febs/views/modules/documentary/traderProfit.html @@ -81,6 +81,11 @@ offset: '30px', btn2: function () { layer.closeAll(); + }, + cancel: function(){ + var index=parent.layer.getFrameIndex(window.name); //获取当前窗口的name + parent.layer.close(index);//关闭当前窗口 + window.parent.location.reload();//刷新 } }); $query.click(); diff --git a/src/main/resources/templates/febs/views/modules/member/memberActivityReceive.html b/src/main/resources/templates/febs/views/modules/member/memberActivityReceive.html new file mode 100644 index 0000000..e2fd3c6 --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/member/memberActivityReceive.html @@ -0,0 +1,126 @@ +<div class="layui-fluid layui-anim febs-anim" id="febs-receive" 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="user-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="account" autocomplete="off" 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="userTable" lay-data="{id: 'userTable'}"></table> + </div> + </div> + </div> + </div> +</div> +<!-- 表格操作栏 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-receive'), + $query = $view.find('#query'), + $reset = $view.find('#reset'), + $searchForm = $view.find('form'), + sortObject = {field: 'phone', type: null}, + tableIns; + + form.render(); + + // 表格初始化 + initTable(); + + // 初始化表格操作栏各个按钮功能 + table.on('tool(userTable)', function (obj) { + var data = obj.data, + layEvent = obj.event; + + if (layEvent === 'seeReceiveInfo') { + febs.modal.open('领取详情', 'modules/member/seeReceiveInfo/' + data.id, { + area: $(window).width() <= 750 ? '90%' : '80%', + offset: '30px', + btn2: function () { + layer.closeAll(); + }, + cancel: function(){ + var index=parent.layer.getFrameIndex(window.name); //获取当前窗口的name + parent.layer.close(index);//关闭当前窗口 + window.parent.location.reload();//刷新 + } + }); + } + }); + // 查询按钮 + $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(); + tableIns.reload({where: getQueryParams(), page: {curr: 1}}); + }); + + function initTable() { + tableIns = febs.table.init({ + elem: $view.find('table'), + id: 'userTable', + url: ctx + 'member/memberActivityReceive', + totalRow: true, + cols: [[ + {field: 'phone', title: '手机号', minWidth: 100, align: 'left'}, + {field: 'realName', title: '姓名', minWidth: 100, align: 'left'}, + {field: 'inviteId', title: '邀请码UID', minWidth: 80, align: 'center'}, + {field: 'receiveTotal', title: '待领取', minWidth: 80, align: 'center',totalRow: true}, + {field: 'receivedTotal', title: '已领取', minWidth: 80, align: 'center',totalRow: true}, + {title: '领取记录', + templet: function (d) { + return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="seeReceiveInfo" shiro:hasPermission="user:update">查看</button>' + }, minWidth: 100, align: 'center' + }, + {field: 'accountType', title: '账号类型', + templet: function (d) { + if (d.accountType === 2) { + return '<span style="color:green;">测试账号</span>' + } else if (d.accountType === 1) { + return '<span style="color:red;">正常账号</span>' + } else { + return '' + } + }, minWidth: 80, align: 'center' + }, + {field: 'email', title: '邮箱', minWidth: 100, align: 'left'}, + ]] + }); + } + + // 获取查询参数 + function getQueryParams() { + return { + account: $searchForm.find('input[name="account"]').val().trim(), + }; + } + + }) +</script> \ No newline at end of file diff --git a/src/main/resources/templates/febs/views/modules/member/seeReceiveInfo.html b/src/main/resources/templates/febs/views/modules/member/seeReceiveInfo.html new file mode 100644 index 0000000..de911ef --- /dev/null +++ b/src/main/resources/templates/febs/views/modules/member/seeReceiveInfo.html @@ -0,0 +1,58 @@ + +<div class="layui-fluid layui-anim febs-anim" id="febs-user-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="userTableChild" lay-data="{id: 'userTableChild'}"></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-user-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: 'userTable', + url: ctx + 'member/seeReceiveInfo?parentId=1', + cols: [[ + {field: 'phone', title: '手机号', minWidth: 100,align:'left'}, + {field: 'email', title: '邮箱', minWidth: 100,align:'left'}, + {field: 'realName', title: '姓名', minWidth: 100,align:'left'}, + {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'}, + {field: 'receiveCoinAmount', title: '领取金额', minWidth: 150,align:'left'}, + {field: 'receiveTime', title: '领取时间', minWidth: 150,align:'center'}, + ]] + }); + } + + }) +</script> \ No newline at end of file -- Gitblit v1.9.1