fix
Helius
2024-04-09 0adc7b8f73cdb45992f868bf1e3a97a070e43a9e
fix
5 files modified
126 ■■■■■ changed files
src/main/java/cc/mrbird/febs/vip/entity/MallVipBenefitsRecord.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/vip/service/impl/MallVipBenefitsServiceImpl.java 1 ●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallVipBenefitsRecordMapper.xml 40 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/mallMember/memberBenefitsList.html 72 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/system/vipCenterSetting.html 7 ●●●● patch | view | raw | blame | history
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 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>
<!--                                    <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');