Helius
2020-12-10 dd934b9c655d085687747b0bb78209d45c1d1d9e
modify goods invalid time function
4 files modified
175 ■■■■■ changed files
zq-erp/src/main/java/com/matrix/system/hive/bean/ShoppingGoods.java 15 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java 34 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml 20 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/products/goods-form.html 106 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/bean/ShoppingGoods.java
@@ -425,10 +425,23 @@
    private Integer useDateNum;
    /**
     * 失效时间
     * 统一失效时间
     */
    private Date invalidTime;
    /**
     * 支付方式 1-充值本金 2-赠送金额 3-积分
     */
    private String payMethods;
    public String getPayMethods() {
        return payMethods;
    }
    public void setPayMethods(String payMethods) {
        this.payMethods = payMethods;
    }
    public Integer getBuyDateNum() {
        return buyDateNum;
    }
zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java
@@ -125,19 +125,31 @@
    private void setShoppingGoodsInvalidTime(ShoppingGoods shoppingGoods) {
        // 若未设置购买有效期和消耗有效期,则默认永久有效
        if (shoppingGoods.getBuyDateNum() == null && shoppingGoods.getUseDateNum() == null) {
            shoppingGoods.setInvalidTime(DateUtil.stringToDate("9999-12-31", DateUtil.DATE_FORMAT_DD));
        } else {
            // 计算失效日期,判断购买有效期和消耗有效期哪个先失效,则为失效日期
            Date buyValidDate = DateUtil.calDate(shoppingGoods.getBuyDateNum(), shoppingGoods.getBuyDateUnit());
            Date useValidDate = DateUtil.calDate(shoppingGoods.getUseDateNum(), shoppingGoods.getUseDateUnit());
            if (buyValidDate.after(useValidDate)) {
                shoppingGoods.setInvalidTime(useValidDate);
            } else {
                shoppingGoods.setInvalidTime(buyValidDate);
            }
//        if (shoppingGoods.getBuyDateNum() == null && shoppingGoods.getUseDateNum() == null) {
//            shoppingGoods.setInvalidTime(DateUtil.stringToDate("9999-12-31", DateUtil.DATE_FORMAT_DD));
//        } else {
//            // 计算失效日期,判断购买有效期和消耗有效期哪个先失效,则为失效日期
//            Date buyValidDate = DateUtil.calDate(shoppingGoods.getBuyDateNum(), shoppingGoods.getBuyDateUnit());
//            Date useValidDate = DateUtil.calDate(shoppingGoods.getUseDateNum(), shoppingGoods.getUseDateUnit());
//            if (buyValidDate.after(useValidDate)) {
//                shoppingGoods.setInvalidTime(useValidDate);
//            } else {
//                shoppingGoods.setInvalidTime(buyValidDate);
//            }
//            shoppingGoods.setBuyValid(shoppingGoods.getBuyDateNum() + shoppingGoods.getBuyDateUnit());
//            shoppingGoods.setUseValid(shoppingGoods.getUseDateNum() + shoppingGoods.getUseDateUnit());
//        }
        if (shoppingGoods.getBuyDateNum() != null && StringUtils.isNotBlank(shoppingGoods.getBuyDateUnit())) {
            shoppingGoods.setBuyValid(shoppingGoods.getBuyDateNum() + shoppingGoods.getBuyDateUnit());
        } else {
            shoppingGoods.setBuyValid(null);
        }
        if (shoppingGoods.getUseDateNum() != null && StringUtils.isNotBlank(shoppingGoods.getUseDateUnit())) {
            shoppingGoods.setUseValid(shoppingGoods.getUseDateNum() + shoppingGoods.getUseDateUnit());
        } else {
            shoppingGoods.setUseValid(null);
        }
    }
zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml
@@ -86,6 +86,11 @@
        <result property="goodsSortName" column="goodsSortName" />
        <result property="payMethods" column="pay_methods" />
        <result property="invalidTime" column="invalid_time" />
        <result property="useValid" column="use_valid" />
        <result property="buyValid" column="buy_valid" />
    </resultMap>
@@ -293,7 +298,8 @@
        zjm,
        buy_valid,
        use_valid,
        invalid_time
        invalid_time,
        pay_methods
        )
        VALUES (
        #{id},
@@ -352,7 +358,8 @@
            #{zjm},
            #{buyValid},
            #{useValid},
            #{invalidTime}
            #{invalidTime},
            #{payMethods}
        )
    </insert>
@@ -525,17 +532,10 @@
            <if test="isDel != null and isDel !='' ">
                is_del = #{isDel},
            </if>
            <if test="invalidTime != null">
                invalid_time = #{invalidTime},
            </if>
            <if test="buyValid != null and buyValid !='' ">
                buy_valid = #{buyValid},
            </if>
            <if test="useValid != null and useValid !='' ">
                use_valid = #{useValid},
            </if>
                pay_methods = #{payMethods},
        </set>
        WHERE id=#{id}
    </update>
zq-erp/src/main/resources/templates/views/admin/hive/products/goods-form.html
@@ -892,34 +892,17 @@
                            </el-date-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :offset="2" :span="5">
                        <el-form-item label="购买有效期">
                            <el-col  :span="6">
                                <el-form-item label="">
                                    <el-input v-model="form.buyDateNum"></el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="12">
                                <el-form-item lable="">
                                    <el-select v-model="form.buyDateUnit" placeholder="请选择">
                                        <el-option
                                                v-for="item in dateList"
                                                :key="item.value"
                                                :label="item.label"
                                                :value="item.value">
                                        </el-option>
                                    </el-select>
                                </el-form-item>
                            </el-col>
                        </el-form-item>
                    </el-col>
                    <el-col :offset="1" :span="5">
                        <el-form-item label="消耗有效期">
                            <el-col  :span="6">
                                <el-input v-model="form.useDateNum"></el-input>
                            </el-col>
                            <el-col  :span="12">
                                <el-select v-model="form.useDateUnit" placeholder="请选择">
                </el-row>
                <el-row>
                    <el-form-item label="购买有效期">
                        <el-col  :span="4">
                            <el-form-item label="" prop="isNum">
                                <el-input v-model.number="form.buyDateNum"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="2">
                            <el-form-item lable="">
                                <el-select v-model="form.buyDateUnit" placeholder="请选择">
                                    <el-option
                                            v-for="item in dateList"
                                            :key="item.value"
@@ -927,8 +910,57 @@
                                            :value="item.value">
                                    </el-option>
                                </el-select>
                            </el-col>
                        </el-form-item>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6" style="margin-left: 10px; color: #C0C4CC;">
                            <span>用户从购买日开始计算多长时间自动失效</span>
                        </el-col>
                    </el-form-item>
                </el-row>
                <el-row>
                    <el-form-item label="消耗有效期">
                        <el-col  :span="4">
                            <el-form-item label="" prop="isNum">
                                <el-input v-model.number="form.useDateNum"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col  :span="2">
                            <el-select v-model="form.useDateUnit" placeholder="请选择">
                                <el-option
                                        v-for="item in dateList"
                                        :key="item.value"
                                        :label="item.label"
                                        :value="item.value">
                                </el-option>
                            </el-select>
                        </el-col>
                        <el-col :span="6" style="margin-left: 10px; color: #C0C4CC;">
                            <span>用户从第一次使用后开始计算多长时间自动生效</span>
                        </el-col>
                    </el-form-item>
                </el-row>
                <el-row>
                    <el-form-item label="统一到期时间">
                        <el-col :span="6">
                            <el-date-picker
                                    v-model="form.invalidTime"
                                    type="date"
                                    placeholder="选择日期">
                            </el-date-picker>
                        </el-col>
                        <el-col :span="10" style="margin-left: 10px; color: #C0C4CC;">
                            <span>在指定日期所有购买过本商品的统一失效,且在统一失效时间之后产品会自动下架</span>
                        </el-col>
                    </el-form-item>
                </el-row>
                <p class="el-big-title">支付方式</p>
                <el-row>
                    <el-col :offset="1">
                        <el-checkbox-group v-model="payMethodList">
                            <el-checkbox label="1">充值本金</el-checkbox>
                            <el-checkbox label="2">赠送金额</el-checkbox>
                            <el-checkbox label="3">积分</el-checkbox>
                        </el-checkbox-group>
                    </el-col>
                </el-row>
                <el-row v-if="shopInfo.shopType==1">
@@ -982,6 +1014,7 @@
    var app = new Vue({
        el: '#app',
        data: {
            payMethodList : ['1', '2', '3'],
            dateList : [{value : 'Y', label : '年'}, {value : 'M', label : '月'}, { value : 'D' , label : '日' }],
            selectTreeParam: {
                holder: '请选择商品类型',
@@ -1100,6 +1133,9 @@
                //充值卡绑定产品分类
                isCourse: 'N',
                carIsAll: '否',
                useDateNum : '',
                buyDateNum : '',
                payMethods : '',
            },
            submitUrl: '/admin/shoppinggoods/addShoppingGoods',
            modifySubmitUrl: '/admin/shoppinggoods/modifyShoppingGoods',
@@ -1115,6 +1151,7 @@
                isCourse: [{required: true, message: '请选择套餐类型', trigger: 'change'}],
                sealPice: [{required: true, message: '请填写售价', trigger: 'blur'}],
                timeLength: [{required: true, message: '请填写服务时长', trigger: 'blur'}],
                isNum : [{ type : 'number', message: '请输入数字', trigger: 'blur' }],
            },
        },
@@ -1509,6 +1546,11 @@
                    _this.form.useShop=_this.form.useShop.join(",");
                }
                if (_this.payMethodList.length != 0) {
                    _this.form.payMethods = this.payMethodList.join(",");
                } else {
                    _this.form.payMethods = '';
                }
                if (this.validFormData()) {
@@ -1602,7 +1644,7 @@
                            ue.setContent(_this.form.description, true);
                        }
                        _this.form.useShop=MTools.strToArray(_this.form.useShop,",",true);
                        _this.payMethodList = MTools.strToArray(_this.form.payMethods,",",false);
                        _this.fileList[0].url = _this.form.img;
                        _this.defaultCates = data.mapInfo.cates;
                        _this.userAdbleEdit();
@@ -1610,8 +1652,6 @@
                        //如果是总产品加载总部分类信息
                        _this.getShoppinggoodscategory(1);
                        _this.getGoodstype(1);
                    }
                });
            },