src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefitsRecord.java
@@ -63,4 +63,10 @@ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") @TableField(exist = false) private Date receiveEndTime; @TableField(exist = false) private String levelName; @TableField(exist = false) private String hasReceive; } src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java
@@ -276,6 +276,7 @@ mallMemberCouponMapper.insert(memberCoupon); record.setReceiveName(coupon.getName()); record.setStatus(1); } mallVipBenefitsRecordMapper.insert(record); src/main/resources/mapper/modules/MallVipBenefitsRecordMapper.xml
@@ -3,12 +3,31 @@ <mapper namespace="cc.mrbird.febs.vip.mapper.MallVipBenefitsRecordMapper"> <select id="selectMemberBenefitsRecordInPage" resultType="cc.mrbird.febs.vip.entity.MallVipBenefitsRecord"> select mallMember.name memberName ,mallMember.phone memberPhone ,record.* from mall_vip_benefits_record record inner join mall_member mallMember on record.member_id = mallMember.ID SELECT mallMember.name memberName, mallMember.phone memberPhone, config.name levelName, benefits.name benefitsName, benefitsDetail.link_type, case when benefitsDetail.link_type = 3 then coupon.name when benefitsDetail.link_type = 2 then goods.goods_name else '-' end receiveName, case when record.id is not null then 1 else 2 end hasReceive, record.id, record.receive_cnt, record.receive_time, record.receive_type, record.status FROM mall_member mallMember inner join mall_vip_config config on mallMember.level = config.code inner join mall_vip_config_benefits configBenefits on config.id = configBenefits.config_id inner join mall_vip_benefits benefits on configBenefits.benefits_id = benefits.id and benefits.gain_type = 2 and benefits.type != 1 inner join mall_vip_benefits_details benefitsDetail on benefits.id=benefitsDetail.benefits_id and (benefitsDetail.link_type = 2 or benefitsDetail.link_type = 3) left join mall_goods_coupon coupon on benefitsDetail.content = coupon.id left join mall_goods goods on benefitsDetail.content = goods.ID LEFT JOIN mall_vip_benefits_record record ON record.member_id = mallMember.ID and record.benefits_type = 2 <where> 1=1 <if test="record.memberPhone != null and record.memberPhone != ''"> @@ -17,6 +36,15 @@ <if test="record.status != null"> and record.status = #{record.status} </if> <if test="record.hasReceive != null and record.hasReceive == 1"> and record.id is not null </if> <if test="record.hasReceive != null and record.hasReceive == 2"> and record.id is null </if> <if test="record.birthday != null"> and date_format(mallMember.birthday, '%m-%d') = date_format(#{record.birthday}, '%m-%d') </if> <if test="record.birthdayStart != null"> and date_format(mallMember.birthday, '%Y-%m-%d') >= date_format(#{record.birthdayStart}, '%Y-%m-%d') </if> src/main/resources/templates/febs/views/modules/mallMember/memberBenefitsList.html
@@ -31,28 +31,39 @@ </div> <div class="layui-inline"> <label class="layui-form-label layui-form-label-sm">会员生日</label> <label class="layui-form-label layui-form-label-sm">是否领取</label> <div class="layui-input-inline"> <input type="text" name="birthdayStart" id="febs-member-benefits-list-birthday-start" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"> </div> <div class="layui-input-inline"> <input type="text" name="birthdayEnd" id="febs-member-benefits-list-birthday-end" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"> <select name="hasReceive"> <option value="">请选择</option> <option value="1">已领取</option> <option value="2">未领取</option> </select> </div> </div> <div class="layui-inline"> <label class="layui-form-label layui-form-label-sm">领取时间</label> <label class="layui-form-label layui-form-label-sm">会员生日</label> <div class="layui-input-inline"> <input type="text" name="receiveStartTime" id="febs-member-benefits-list-start" lay-verify="date" <input type="text" name="birthday" id="febs-member-benefits-list-birthday-start" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"> </div> <div class="layui-input-inline"> <input type="text" name="receiveEndTime" id="febs-member-benefits-list-end" lay-verify="date" placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input"> </div> <!-- <div class="layui-input-inline">--> <!-- <input type="text" name="birthdayEnd" id="febs-member-benefits-list-birthday-end" lay-verify="date"--> <!-- placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">--> <!-- </div>--> </div> <!-- <div class="layui-inline">--> <!-- <label class="layui-form-label layui-form-label-sm">领取时间</label>--> <!-- <div class="layui-input-inline">--> <!-- <input type="text" name="receiveStartTime" id="febs-member-benefits-list-start" lay-verify="date"--> <!-- placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">--> <!-- </div>--> <!-- <div class="layui-input-inline">--> <!-- <input type="text" name="receiveEndTime" id="febs-member-benefits-list-end" lay-verify="date"--> <!-- placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">--> <!-- </div>--> <!-- </div>--> </div> </div> @@ -90,17 +101,8 @@ //日期范围 laydate.render({ elem: '#febs-member-benefits-list-start' }); laydate.render({ elem: '#febs-member-benefits-list-end' }); laydate.render({ elem: '#febs-member-benefits-list-birthday-start' }); laydate.render({ elem: '#febs-member-benefits-list-birthday-end' ,value: new Date() }); form.render(); @@ -131,6 +133,12 @@ $reset.on('click', function () { $searchForm[0].reset(); sortObject.type = 'null'; laydate.render({ elem: '#febs-member-benefits-list-birthday-start' ,value: new Date() }); tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject}); }); @@ -144,14 +152,14 @@ {field: 'memberName', title: '会员名称', minWidth: 100,align:'left'}, {field: 'memberPhone', title: '手机号码', minWidth: 150,align:'left'}, {field: 'benefitsName', title: '权益', minWidth: 150,align:'left'}, {field: 'benefitsType', title: '权益类型', {field: 'hasReceive', title: '是否领取', templet: function (d) { if (d.benefitsType === 1) { return '<span>会员日</span>' } else if (d.benefitsType === 2) { return '<span>生日</span>' if (d.hasReceive === 1) { return '<span>已领取</span>' } else if (d.hasReceive === 2) { return '<span>未领取</span>' } else { return '<span>其他</span>' return '<span>-</span>' } }, minWidth: 80,align:'center'}, {field: 'receiveName', title: '领取名称', minWidth: 150,align:'left'}, @@ -193,13 +201,11 @@ // 获取查询参数 function getQueryParams() { return { receiveStartTime: $searchForm.find('input[name="receiveStartTime"]').val().trim(), receiveEndTime: $searchForm.find('input[name="receiveEndTime"]').val().trim(), birthdayStart: $searchForm.find('input[name="birthdayStart"]').val().trim(), birthdayEnd: $searchForm.find('input[name="birthdayEnd"]').val().trim(), birthday: $searchForm.find('input[name="birthday"]').val().trim(), // memberName: $searchForm.find('input[name="memberName"]').val().trim(), memberPhone: $searchForm.find('input[name="memberPhone"]').val().trim(), status: $searchForm.find("select[name='status']").val(), hasReceive: $searchForm.find("select[name='hasReceive']").val(), }; } src/main/resources/templates/febs/views/modules/system/vipCenterSetting.html
@@ -78,6 +78,8 @@ for(var i = 0; i < r.data.length; i++) { uploadFun(i); imgSingleBind(i); } } }); @@ -113,9 +115,9 @@ //预读本地文件示例,不支持ie8 obj.preview(function(index, file, result){ if ($("#thumb-" + classIndex).val()) { $("#upload-"+classIndex).html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">') $("#upload-"+classIndex).html('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image'+ classIndex +'" style="width: 130px">') } else { $("#upload-"+classIndex).append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image" style="width: 130px">') $("#upload-"+classIndex).append('<img src="'+ result +'" alt="'+ file.name +'" class="layui-upload-img single-image'+ classIndex +'" style="width: 130px">') } }); @@ -141,6 +143,7 @@ }); }) } function imgUnBind(className) { $(className).each(function() { $(this).unbind('dblclick');