xiaoyong931011
2023-03-13 96054b44d4f7a45717700c0e663f28442200b9b1
签到设置
12 files modified
201 ■■■■ changed files
src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/ApiMallScoreSignRecordDto.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/HlmScoreSetDto.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/mapper/MallScoreSignRecordMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java 20 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/MallScoreSignRecordMapper.xml 14 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/order/orderList.html 22 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/order/refundList.html 7 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/system/hlmScoreSet.html 30 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/system/indexData.html 64 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -31,6 +31,14 @@
     */
    SHARE_PERK("PERK_SET","SHARE_PERK"),
    /**
     * 签到设置-签到积分后续获得积分数量
     */
    SIGN_SCORE_CNT("SIGN_SET","SIGN_SCORE_CNT"),
    /**
     * 签到设置-签到积分开始天数
     */
    SIGN_SCORE_DAYS("SIGN_SET","SIGN_SCORE_DAYS"),
    /**
     * 签到设置-签到积分
     */
    SIGN_SCORE("SIGN_SET","SIGN_SCORE"),
src/main/java/cc/mrbird/febs/mall/controller/AdminSystemController.java
@@ -56,6 +56,14 @@
                DataDictionaryEnum.SIGN_SCORE.getCode(),
                hlmScoreSetDto.getSignScore());
        commonService.updateDataDic(
                DataDictionaryEnum.SIGN_SCORE_DAYS.getType(),
                DataDictionaryEnum.SIGN_SCORE_DAYS.getCode(),
                hlmScoreSetDto.getSignScoreDays());
        commonService.updateDataDic(
                DataDictionaryEnum.SIGN_SCORE_CNT.getType(),
                DataDictionaryEnum.SIGN_SCORE_CNT.getCode(),
                hlmScoreSetDto.getSignScoreCnt());
        commonService.updateDataDic(
                DataDictionaryEnum.SCORE_PERCENT.getType(),
                DataDictionaryEnum.SCORE_PERCENT.getCode(),
                hlmScoreSetDto.getScorePercent());
src/main/java/cc/mrbird/febs/mall/controller/ViewSystemController.java
@@ -62,6 +62,20 @@
            String signScore = ObjectUtil.isEmpty(signScoreDic.getValue()) ? "0" : signScoreDic.getValue();
            hlmScoreSetDto.setSignScore(signScore);
        }
        DataDictionaryCustom signScoreDaysDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.SIGN_SCORE_DAYS.getType(),
                DataDictionaryEnum.SIGN_SCORE_DAYS.getCode());
        if (signScoreDaysDic != null) {
            String signScoreDays = ObjectUtil.isEmpty(signScoreDaysDic.getValue()) ? "0" : signScoreDaysDic.getValue();
            hlmScoreSetDto.setSignScoreDays(signScoreDays);
        }
        DataDictionaryCustom signScoreCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.SIGN_SCORE_CNT.getType(),
                DataDictionaryEnum.SIGN_SCORE_CNT.getCode());
        if (signScoreCntDic != null) {
            String signScoreCnt = ObjectUtil.isEmpty(signScoreCntDic.getValue()) ? "0" : signScoreCntDic.getValue();
            hlmScoreSetDto.setSignScoreCnt(signScoreCnt);
        }
        DataDictionaryCustom scorePercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.SCORE_PERCENT.getType(),
                DataDictionaryEnum.SCORE_PERCENT.getCode());
src/main/java/cc/mrbird/febs/mall/dto/ApiMallScoreSignRecordDto.java
@@ -7,6 +7,10 @@
@Data
@ApiModel(value = "ApiMallScoreSignRecordDto", description = "签到记录请求类")
public class ApiMallScoreSignRecordDto {
    @ApiModelProperty(value = "日期", example = "2020-06")
    private String dateTime;
    @ApiModelProperty(value = "一页数量", example = "10")
    private Integer pageSize;
src/main/java/cc/mrbird/febs/mall/dto/HlmScoreSetDto.java
@@ -14,6 +14,14 @@
     */
    private String signScore;
    /**
     * 签到设置-签到积分开始天数
     */
    private String signScoreDays;
    /**
     * 签到设置-签到积分后续获得积分数量
     */
    private String signScoreCnt;
    /**
     * 积分设置-积分抵扣现金比例,%
     *      设置50,即商品价格1000,积分可抵扣的最大金额为500
     */
src/main/java/cc/mrbird/febs/mall/mapper/MallScoreSignRecordMapper.java
@@ -12,4 +12,6 @@
    MallScoreSignRecord selectRecentSignRecord(@Param("memberId") Long memberId);
    IPage<ApiMallScoreSignRecordVo> selectApiOrderListInPage(IPage<ApiMallScoreSignRecordVo> page, @Param("record") ApiMallScoreSignRecordDto apiMallScoreSignRecordDto);
    Integer selectCountByMemberId(@Param("memberId")Long id);
}
src/main/java/cc/mrbird/febs/mall/service/impl/ScoreServiceImpl.java
@@ -22,6 +22,7 @@
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
@@ -100,6 +101,7 @@
        if (signScoreDic == null) {
            throw new FebsException("签到活动未开启");
        }
        Integer signScore = Integer.parseInt(signScoreDic.getValue());
        MallScoreSignRecord mallScoreSignRecord = mallScoreSignRecordMapper.selectRecentSignRecord(member.getId());
        if (mallScoreSignRecord == null) {
@@ -109,8 +111,22 @@
        if (mallScoreSignRecord.getSignTime() != null && DateUtil.betweenDay(mallScoreSignRecord.getSignTime(), new Date(), true) == 0) {
            throw new FebsException("今日已签到");
        }
        Integer signScore = Integer.parseInt(signScoreDic.getValue());
        /**
         * 获取签到次数
         * 判断签到次数是否大于规定的时长signScoreDays,超出则获得的积分数为signScoreCnt
         */
        Integer count = mallScoreSignRecordMapper.selectCountByMemberId(member.getId());
        DataDictionaryCustom signScoreDaysDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.SIGN_SCORE_DAYS.getType(),
                DataDictionaryEnum.SIGN_SCORE_DAYS.getCode());
        Integer signScoreDays = Integer.parseInt(signScoreDaysDic.getValue());
        if(count >= signScoreDays){
            DataDictionaryCustom signScoreCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.SIGN_SCORE_CNT.getType(),
                    DataDictionaryEnum.SIGN_SCORE_CNT.getCode());
            Integer signScoreCnt = Integer.parseInt(signScoreCntDic.getValue());
            signScore = signScoreCnt;
        }
        mallScoreSignRecord.setMemberId(member.getId());
        mallScoreSignRecord.setTotalCnt(signScore);
        mallScoreSignRecord.setSignTime(new Date());
src/main/resources/mapper/modules/MallScoreSignRecordMapper.xml
@@ -9,9 +9,21 @@
        select * from mall_score_sign_record
        where member_id=#{memberId} order by id desc limit 1
    </select>
    <select id="selectCountByMemberId" resultType="java.lang.Integer">
        select count(id) from mall_score_sign_record
        where member_id=#{memberId}
    </select>
    <select id="selectApiOrderListInPage" resultType="cc.mrbird.febs.mall.vo.ApiMallScoreSignRecordVo">
        select score,sign_time from mall_score_sign_record where member_id = #{record.memberId}
        select
               score,sign_time
        from mall_score_sign_record
        <where>
            member_id = #{record.memberId}
            <if test="record.dateTime!=null and record.dateTime!=''">
                and date_format(sign_time, '%Y-%m') = #{record.dateTime}
            </if>
        </where>
    </select>
</mapper>
src/main/resources/templates/febs/views/modules/order/orderList.html
@@ -7,22 +7,25 @@
                        <div class="layui-form-item">
                            <div class="layui-col-md10">
                                <div class="layui-inline">
                                    <label class="layui-form-label">购买人:</label>
                                    <div class="layui-input-inline">
                                        <input type="text" placeholder="用户名" name="name" autocomplete="off" class="layui-input">
                                        <input type="text" placeholder="购买人" name="name" 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="goodsName" autocomplete="off" class="layui-input">
                                        <input type="text" placeholder="商品信息" name="goodsName" 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="orderNo" autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label layui-form-label-sm">订单状态</label>
                                    <label class="layui-form-label">订单状态:</label>
                                    <div class="layui-input-inline">
                                        <select name="status">
                                            <option value="">请选择</option>
@@ -37,7 +40,7 @@
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label layui-form-label-sm">支付状态</label>
                                    <label class="layui-form-label">支付状态:</label>
                                    <div class="layui-input-inline">
                                        <select name="payResult">
                                            <option value="">请选择</option>
@@ -47,14 +50,14 @@
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label layui-form-label-sm">开始时间</label>
                                    <label class="layui-form-label">开始时间:</label>
                                    <div class="layui-input-inline">
                                        <input type="text" name="startTime" id="febs-form-group-date-start" 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>
                                    <label class="layui-form-label">结束时间:</label>
                                    <div class="layui-input-inline">
                                        <input type="text" name="endTime" id="febs-form-group-date-end" lay-verify="date"
                                               placeholder="yyyy-MM-dd" autocomplete="off" class="layui-input">
@@ -103,11 +106,7 @@
        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliver">导出未发货订单</button>
        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" id="importDeliver" lay-event="importDeliver">导入发货</button>
        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="exportDeliverDone">导出已发货订单</button>
<!--        <button type="button" class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" onclick="print('tool(orderTable)')">layui自定义打印表格</button>-->
        <button id="printSelect" type="button" class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain">自定义打印</button>
<!--        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="getCheckData">获取选中行数据</button>-->
<!--        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="getCheckLength">获取选中数目</button>-->
<!--        <button class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain" lay-event="isAll">验证是否全选</button>-->
    </div>
</script>
<!-- 表格操作栏 end -->
@@ -258,7 +257,7 @@
                elem: $view.find('table'),
                id: 'orderTable',
                url: ctx + 'admin/order/orderList?orderType=1',
                defaultToolbar: [],
                // defaultToolbar: [],
                toolbar: '#tableToolBar',
                totalRow: true ,// 开启合计行
                cols: [[
@@ -321,7 +320,6 @@
                                    }else{
                                        return '<button class="layui-btn layui-btn-normal layui-btn-xs " lay-event="seeOrder" shiro:hasPermission="user:update">详情</button>'
                                    }
                                // }
                            },minWidth: 200,align:'center', fixed:'right'}
                ]]
            });
src/main/resources/templates/febs/views/modules/order/refundList.html
@@ -7,22 +7,25 @@
                        <div class="layui-form-item">
                            <div class="layui-col-md10">
                                <div class="layui-inline">
                                    <label class="layui-form-label">用户名:</label>
                                    <div class="layui-input-inline">
                                        <input type="text" placeholder="用户名" name="name" 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="phone" autocomplete="off" class="layui-input">
                                        <input type="text" placeholder="账号" name="phone" 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="orderNo" autocomplete="off" class="layui-input">
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label layui-form-label-sm">订单状态</label>
                                    <label class="layui-form-label">订单状态:</label>
                                    <div class="layui-input-inline">
                                        <select name="status">
                                            <option value="">请选择</option>
src/main/resources/templates/febs/views/modules/system/hlmScoreSet.html
@@ -3,14 +3,36 @@
        <form class="layui-form" action="" lay-filter="hlm-score-set-form">
            <div class="layui-card">
                <div class="layui-card-body">
                    <blockquote class="layui-elem-quote blue-border">签到</blockquote>
                    <div class="layui-form-item">
                        <label class="layui-form-label febs-form-item-require">签到积分:</label>
                        <div class="layui-input-block">
                        <div class="layui-inline">
                            <label class="layui-form-label">签到:开始</label>
                            <div class="layui-input-inline">
                                <input type="text" name="signScoreDays" lay-verify="required|integer" placeholder="请输入数字" autocomplete="off" class="layui-input" >
                        </div>
                        <div class="layui-inline">
                            <label class="layui-form-label">天,每天获取:</label>
                            <div class="layui-input-inline">
                            <input type="text" name="signScore" lay-verify="required|integer" placeholder="请输入数字" autocomplete="off" class="layui-input" >
                            <div class="layui-word-aux">每次签到赠送积分数量,填写整数,如【35】</div>
                        </div>
                    </div>
                        <div class="layui-inline">
                            <label class="layui-form-label">,之后每天获取</label>
                            <div class="layui-input-inline">
                                <input type="text" name="signScoreCnt" lay-verify="required|integer" placeholder="请输入数字" autocomplete="off" class="layui-input" >
                            </div>
                        </div>
                    </div>
<!--                    <blockquote class="layui-elem-quote blue-border">签到</blockquote>-->
<!--                    <div class="layui-form-item">-->
<!--                        <label class="layui-form-label febs-form-item-require">签到积分:</label>-->
<!--                        <div class="layui-input-block">-->
<!--                            <input type="text" name="signScore" lay-verify="required|integer" placeholder="请输入数字" autocomplete="off" class="layui-input" >-->
<!--                            <div class="layui-word-aux">每次签到赠送积分数量,填写整数,如【35】</div>-->
<!--                        </div>-->
<!--                    </div>-->
                    <blockquote class="layui-elem-quote blue-border">积分与现金</blockquote>
                    <div class="layui-form-item">
                        <label class="layui-form-label febs-form-item-require">抵扣现金(%):</label>
@@ -71,6 +93,8 @@
        function initHlmScoreSetValue() {
            form.val("hlm-score-set-form", {
                "signScore": hlmScoreSet.signScore,
                "signScoreDays": hlmScoreSet.signScoreDays,
                "signScoreCnt": hlmScoreSet.signScoreCnt,
                "scorePercent": hlmScoreSet.scorePercent,
                "scoreChange": hlmScoreSet.scoreChange
            });
src/main/resources/templates/febs/views/modules/system/indexData.html
@@ -157,30 +157,30 @@
                                    </div>
                                </div>
                            </div>
<!--                            <div class="layui-col-md3">-->
<!--                                <div class="layui-panel">-->
<!--                                    <div class="box">-->
<!--                                        <p class="name">总赠送积分</p>-->
<!--                                        <p class="num" ><span id="totalScore"></span></p>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">总赠送积分</p>
                                        <p class="num" ><span id="totalScore"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">总竞猜积分</p>
                                        <p class="name">总现金积分</p>
                                        <p class="num"><span id="totalPrizeScore"></span></p>
                                    </div>
                                </div>
                            </div>
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">总佣金</p>
                                        <p class="num"><span id="totalCommission"></span></p>
                                    </div>
                                </div>
                            </div>
<!--                            <div class="layui-col-md3">-->
<!--                                <div class="layui-panel">-->
<!--                                    <div class="box">-->
<!--                                        <p class="name">总佣金</p>-->
<!--                                        <p class="num"><span id="totalCommission"></span></p>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
                        </div>
                    </div>
                </div>
@@ -288,21 +288,21 @@
                    </div>
                </div>
                <div class="layui-card-body layui-anim layui-anim-fadein">
                    <div class="layui-row">
                        <div class="m-title">积分池</div>
                        <div class="layui-row layui-col-space15">
                            <div class="layui-col-md3">
                                <div class="layui-panel">
                                    <div class="box">
                                        <p class="name">剩余积分</p>
                                        <p class="num"><span id="scorePool"></span></p>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
<!--                <div class="layui-card-body layui-anim layui-anim-fadein">-->
<!--                    <div class="layui-row">-->
<!--                        <div class="m-title">积分池</div>-->
<!--                        <div class="layui-row layui-col-space15">-->
<!--                            <div class="layui-col-md3">-->
<!--                                <div class="layui-panel">-->
<!--                                    <div class="box">-->
<!--                                        <p class="name">剩余积分</p>-->
<!--                                        <p class="num"><span id="scorePool"></span></p>-->
<!--                                    </div>-->
<!--                                </div>-->
<!--                            </div>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>-->
</div>
<script data-th-inline="javascript" type="text/javascript">
    layui.use(['febs', 'jquery'], function () {