xiaoyong931011
2021-04-21 1c818cf3788678695426e4002865604ceb50bdc0
20210421 签到
5 files modified
264 ■■■■ changed files
zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java 6 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java 209 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/config/db/increment/签到活动.sql 6 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html 41 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -114,6 +114,8 @@
                Integer logisticsId = activitySignWriteoffLogistics.getLogisticsId();
                ShopDeliveryInfo shopDeliveryInfo = shopDeliveryInfoDao.selectById(logisticsId);
                if(ObjectUtil.isNotEmpty(shopDeliveryInfo)){
                    signWriteoffVo.setLogisticsNum(shopDeliveryInfo.getWaybillNo());
                    signWriteoffVo.setLogisticsCompany(shopDeliveryInfo.getLogisticsCompany());
                    //查看物流信息
                    wxShopLogisticsQueryService.selectLogisticsInfo(shopDeliveryInfo);
                    List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId());
@@ -143,11 +145,15 @@
        String writeOffCode = writeoffCodeSubmitDto.getWriteOffCode();
        /**
         * 验证核销码是不是匹配
         * 只能核销一次
         * 更新核销记录
         * 更新领取记录
         */
        //验证核销码是不是匹配
        ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectById(writeoffId);
        if(ActivitySignWriteoff.STATE_ONE != activitySignWriteoff.getState()){
            return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码已失效");
        }
        if(ObjectUtil.isNotEmpty(activitySignWriteoff)) {
            String writeoffCodeReal = activitySignWriteoff.getWriteoffCode();
            if(!writeoffCodeReal.equals(writeOffCode)) {
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
@@ -1,5 +1,6 @@
package com.matrix.system.shopXcx.api.action;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
@@ -186,7 +187,7 @@
            ActivitySignRecordVo activitySignRecordVoNull = new ActivitySignRecordVo();
            activitySignRecordVos.add(activitySignRecordVoNull);
        }
        List<String> monthFullDays = getMonthFullDay(DateUtil.year(DateUtil.date()), DateUtil.month(DateUtil.date()) + 1);
        List<String> monthFullDays = getMonthFullDay(DateUtil.year(dateTime), DateUtil.month(dateTime) + 1);
        for(String monthFullDay : monthFullDays){
            ActivitySignRecordVo activitySignRecordVo = new ActivitySignRecordVo();
            activitySignRecordVo.setSignTime(monthFullDay);
@@ -344,106 +345,110 @@
        queryWrapperCumulativeDay.eq("cumulative_day",cumulativeDay);
        queryWrapperCumulativeDay.eq("company_id",companyId);
        queryWrapperCumulativeDay.eq("activity_id",actId);
        ActivitySignAwardSet activitySignAwardSetCumulativeDay = activitySignAwardSetDao.selectOne(queryWrapperCumulativeDay);
        if(ObjectUtil.isNotEmpty(activitySignAwardSetCumulativeDay)) {
            //是否已领取
            Long id = activitySignAwardSetCumulativeDay.getId();
            QueryWrapper<ActivitySignReceiveRecord> queryWrapperActivitySignReceiveRecord = new QueryWrapper<>();
            queryWrapperActivitySignReceiveRecord.eq("award_id", id);
            queryWrapperActivitySignReceiveRecord.eq("company_id", companyId);
            queryWrapperActivitySignReceiveRecord.eq("activity_id", actId);
            queryWrapperActivitySignReceiveRecord.eq("user_id", userId);
            ActivitySignReceiveRecord activitySignReceiveRecordDone = activitySignReceiveRecordDao.selectOne(queryWrapperActivitySignReceiveRecord);
            if (ObjectUtil.isNotEmpty(activitySignReceiveRecordDone)) {
                String awardNameCumulativeDay = activitySignAwardSetCumulativeDay.getAwardName();
                AjaxResult ajaxResult = AjaxResult.buildSuccessInstance(awardNameCumulativeDay+"已经领取过了");
                ajaxResult.setData(signSuccessVo);
                return ajaxResult;
//        ActivitySignAwardSet activitySignAwardSetCumulativeDay = activitySignAwardSetDao.selectOne(queryWrapperCumulativeDay);
        List<ActivitySignAwardSet> activitySignAwardSetCumulativeDays = activitySignAwardSetDao.selectList(queryWrapperCumulativeDay);
        if(CollUtil.isNotEmpty(activitySignAwardSetCumulativeDays)){
            for(ActivitySignAwardSet activitySignAwardSetCumulativeDay : activitySignAwardSetCumulativeDays){
                if(ObjectUtil.isNotEmpty(activitySignAwardSetCumulativeDay)) {
                    //是否已领取
                    Long id = activitySignAwardSetCumulativeDay.getId();
                    QueryWrapper<ActivitySignReceiveRecord> queryWrapperActivitySignReceiveRecord = new QueryWrapper<>();
                    queryWrapperActivitySignReceiveRecord.eq("award_id", id);
                    queryWrapperActivitySignReceiveRecord.eq("company_id", companyId);
                    queryWrapperActivitySignReceiveRecord.eq("activity_id", actId);
                    queryWrapperActivitySignReceiveRecord.eq("user_id", userId);
                    ActivitySignReceiveRecord activitySignReceiveRecordDone = activitySignReceiveRecordDao.selectOne(queryWrapperActivitySignReceiveRecord);
                    if (ObjectUtil.isNotEmpty(activitySignReceiveRecordDone)) {
                        String awardNameCumulativeDay = activitySignAwardSetCumulativeDay.getAwardName();
                        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance(awardNameCumulativeDay+"已经领取过了");
                        ajaxResult.setData(signSuccessVo);
                        return ajaxResult;
                    }
                    //新增奖品领取记录
                    ActivitySignReceiveRecord activitySignReceiveRecord = new ActivitySignReceiveRecord();
                    activitySignReceiveRecord.setUserId(userId);
                    activitySignReceiveRecord.setReceiveTime(date);
                    activitySignReceiveRecord.setAwardId(activitySignAwardSetCumulativeDay.getId());
                    activitySignReceiveRecord.setActivityId(actId);
                    activitySignReceiveRecord.setCompanyId(companyId);
                    activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
                    activitySignReceiveRecord.setCreateBy(user.getVipName());
                    activitySignReceiveRecord.setCreateTime(new Date());
                    activitySignReceiveRecord.setUpdateBy(user.getVipName());
                    activitySignReceiveRecord.setUpdateTime(new Date());
                    /**
                     * 奖项类型(1:自定义产品2:积分3:优惠券4:店铺商品)
                     *
                     * todo:4:店铺商品
                     */
                    //1:自定义产品
                    if(ActivitySignAwardSet.AWARDTYPE_CUSTOMIZE == activitySignAwardSetCumulativeDay.getAwardType()) {
                        activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_ING);
                        String randomString = StringUtils.getRandomString(8);
                        activitySignReceiveRecord.setWriteOffCode(randomString);
                        /**
                         * 获取对应奖品的领取方式(兑奖方式(1:线下兑换2:物流配送3:客服兑换)
                         */
                        signSuccessVo.setWriteOffCode(randomString);
                        signSuccessVo.setAwardType(activitySignAwardSetCumulativeDay.getAwardType());
                        signSuccessVo.setAwardName(activitySignAwardSetCumulativeDay.getAwardName());
                        signSuccessVo.setAwardImg(activitySignAwardSetCumulativeDay.getIntroduceImg());
                        signSuccessVo.setAwardWay(activitySignAwardSetCumulativeDay.getAwardWay());
                        signSuccessVo.setAwardState(activitySignAwardSetCumulativeDay.getAwardState());
                        //2:物流配送
                        signSuccessVo.setOperationTip(activitySignAwardSetCumulativeDay.getOperationTip());
                        //1:线下兑换
                        if(ActivitySignAwardSet.AWARDWAY_ONE == activitySignAwardSetCumulativeDay.getAwardWay()) {
                            signSuccessVo.setIntroduceTip(activitySignAwardSetCumulativeDay.getIntroduceTip());
                            signSuccessVo.setPrizeAddress(activitySignAwardSetCumulativeDay.getPrizeAddress());
                            signSuccessVo.setPrizeStartTime(activitySignAwardSetCumulativeDay.getPrizeStartTime());
                            signSuccessVo.setPrizeEndTime(activitySignAwardSetCumulativeDay.getPrizeEndTime());
                        }
                        //3:客服兑换
                        if(ActivitySignAwardSet.AWARDWAY_THREE == activitySignAwardSetCumulativeDay.getAwardWay()) {
                            signSuccessVo.setWechatImg(activitySignAwardSetCumulativeDay.getWechatImg());
                            signSuccessVo.setPrizeStartTime(activitySignAwardSetCumulativeDay.getPrizeStartTime());
                            signSuccessVo.setPrizeEndTime(activitySignAwardSetCumulativeDay.getPrizeEndTime());
                        }
                    }
                    //2:积分
                    if(ActivitySignAwardSet.AWARDTYPE_SCORE == activitySignAwardSetCumulativeDay.getAwardType()) {
                        signSuccessVo.setScoreCnt(activitySignAwardSetCumulativeDay.getScoreCnt());
                    }
                    //3:优惠券
                    if(ActivitySignAwardSet.AWARDTYPE_COUPON == activitySignAwardSetCumulativeDay.getAwardType()) {
                        signSuccessVo.setCouponName(activitySignAwardSetCumulativeDay.getCouponName());
                    }
                    activitySignReceiveRecordDao.insert(activitySignReceiveRecord);
                    //生成核销记录
                    if(ActivitySignAwardSet.AWARDTYPE_CUSTOMIZE == activitySignAwardSetCumulativeDay.getAwardType()) {
                        ActivitySignWriteoff activitySignWriteoff = new ActivitySignWriteoff();
                        //线下兑换和客服兑换
                        if(ActivitySignAwardSet.AWARDWAY_ONE == activitySignAwardSetCumulativeDay.getAwardWay()
                                || ActivitySignAwardSet.AWARDWAY_THREE == activitySignAwardSetCumulativeDay.getAwardWay()) {
                            activitySignWriteoff.setWriteoffCode(activitySignReceiveRecord.getWriteOffCode());
                        }
                        activitySignWriteoff.setActId(actId);
                        activitySignWriteoff.setAwardId(activitySignAwardSetCumulativeDay.getId());
                        activitySignWriteoff.setWinTime(date);
                        if(ActivitySignAwardSet.AWARDWAY_TWO == activitySignAwardSetCumulativeDay.getAwardWay()) {
                            activitySignWriteoff.setState(ActivitySignWriteoff.STATE_TWO);
                        }else {
                            activitySignWriteoff.setState(ActivitySignWriteoff.STATE_ONE);
                        }
                        activitySignWriteoff.setUserId(userId);
                        activitySignWriteoff.setCompanyId(companyId);
                        activitySignWriteoff.setReceiveId(activitySignReceiveRecord.getId());
                        activitySignWriteoff.setCreateBy(user.getVipName());
                        activitySignWriteoff.setCreateTime(new Date());
                        activitySignWriteoff.setUpdateBy(user.getVipName());
                        activitySignWriteoff.setUpdateTime(new Date());
                        activitySignWriteoffDao.insert(activitySignWriteoff);
                    }
                }
            }
            //新增奖品领取记录
            ActivitySignReceiveRecord activitySignReceiveRecord = new ActivitySignReceiveRecord();
            activitySignReceiveRecord.setUserId(userId);
            activitySignReceiveRecord.setReceiveTime(date);
            activitySignReceiveRecord.setAwardId(activitySignAwardSetCumulativeDay.getId());
            activitySignReceiveRecord.setActivityId(actId);
            activitySignReceiveRecord.setCompanyId(companyId);
            activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
            activitySignReceiveRecord.setCreateBy(user.getVipName());
            activitySignReceiveRecord.setCreateTime(new Date());
            activitySignReceiveRecord.setUpdateBy(user.getVipName());
            activitySignReceiveRecord.setUpdateTime(new Date());
            /**
             * 奖项类型(1:自定义产品2:积分3:优惠券4:店铺商品)
             *
             * todo:4:店铺商品
             */
            //1:自定义产品
            if(ActivitySignAwardSet.AWARDTYPE_CUSTOMIZE == activitySignAwardSetCumulativeDay.getAwardType()) {
                activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_ING);
                String randomString = StringUtils.getRandomString(8);
                activitySignReceiveRecord.setWriteOffCode(randomString);
                /**
                 * 获取对应奖品的领取方式(兑奖方式(1:线下兑换2:物流配送3:客服兑换)
                 */
                signSuccessVo.setWriteOffCode(randomString);
                signSuccessVo.setAwardType(activitySignAwardSetCumulativeDay.getAwardType());
                signSuccessVo.setAwardName(activitySignAwardSetCumulativeDay.getAwardName());
                signSuccessVo.setAwardImg(activitySignAwardSetCumulativeDay.getIntroduceImg());
                signSuccessVo.setAwardWay(activitySignAwardSetCumulativeDay.getAwardWay());
                signSuccessVo.setAwardState(activitySignAwardSetCumulativeDay.getAwardState());
                //2:物流配送
                signSuccessVo.setOperationTip(activitySignAwardSetCumulativeDay.getOperationTip());
                //1:线下兑换
                if(ActivitySignAwardSet.AWARDWAY_ONE == activitySignAwardSetCumulativeDay.getAwardWay()) {
                    signSuccessVo.setIntroduceTip(activitySignAwardSetCumulativeDay.getIntroduceTip());
                    signSuccessVo.setPrizeAddress(activitySignAwardSetCumulativeDay.getPrizeAddress());
                    signSuccessVo.setPrizeStartTime(activitySignAwardSetCumulativeDay.getPrizeStartTime());
                    signSuccessVo.setPrizeEndTime(activitySignAwardSetCumulativeDay.getPrizeEndTime());
                }
                //3:客服兑换
                if(ActivitySignAwardSet.AWARDWAY_THREE == activitySignAwardSetCumulativeDay.getAwardWay()) {
                    signSuccessVo.setWechatImg(activitySignAwardSetCumulativeDay.getWechatImg());
                    signSuccessVo.setPrizeStartTime(activitySignAwardSetCumulativeDay.getPrizeStartTime());
                    signSuccessVo.setPrizeEndTime(activitySignAwardSetCumulativeDay.getPrizeEndTime());
                }
            }
            //2:积分
            if(ActivitySignAwardSet.AWARDTYPE_SCORE == activitySignAwardSetCumulativeDay.getAwardType()) {
                signSuccessVo.setScoreCnt(activitySignAwardSetCumulativeDay.getScoreCnt());
            }
            //3:优惠券
            if(ActivitySignAwardSet.AWARDTYPE_COUPON == activitySignAwardSetCumulativeDay.getAwardType()) {
                signSuccessVo.setCouponName(activitySignAwardSetCumulativeDay.getCouponName());
            }
            activitySignReceiveRecordDao.insert(activitySignReceiveRecord);
            //生成核销记录
            if(ActivitySignAwardSet.AWARDTYPE_CUSTOMIZE == activitySignAwardSetCumulativeDay.getAwardType()) {
                ActivitySignWriteoff activitySignWriteoff = new ActivitySignWriteoff();
                //线下兑换和客服兑换
                if(ActivitySignAwardSet.AWARDWAY_ONE == activitySignAwardSetCumulativeDay.getAwardWay()
                        || ActivitySignAwardSet.AWARDWAY_THREE == activitySignAwardSetCumulativeDay.getAwardWay()) {
                    activitySignWriteoff.setWriteoffCode(activitySignReceiveRecord.getWriteOffCode());
                }
                activitySignWriteoff.setActId(actId);
                activitySignWriteoff.setAwardId(activitySignAwardSetCumulativeDay.getId());
                activitySignWriteoff.setWinTime(date);
                if(ActivitySignAwardSet.AWARDWAY_TWO == activitySignAwardSetCumulativeDay.getAwardWay()) {
                    activitySignWriteoff.setState(ActivitySignWriteoff.STATE_TWO);
                }else {
                    activitySignWriteoff.setState(ActivitySignWriteoff.STATE_ONE);
                }
                activitySignWriteoff.setUserId(userId);
                activitySignWriteoff.setCompanyId(companyId);
                activitySignWriteoff.setReceiveId(activitySignReceiveRecord.getId());
                activitySignWriteoff.setCreateBy(user.getVipName());
                activitySignWriteoff.setCreateTime(new Date());
                activitySignWriteoff.setUpdateBy(user.getVipName());
                activitySignWriteoff.setUpdateTime(new Date());
                activitySignWriteoffDao.insert(activitySignWriteoff);
            }
        }
        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("签到成功");
        ajaxResult.setData(signSuccessVo);
        return ajaxResult;
@@ -560,8 +565,10 @@
        }
        ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId);
        //该奖品不是待领取状态
        if (ActivitySignReceiveRecord.STATE_ING != activitySignReceiveRecord.getState()) {
            return AjaxResult.buildFailInstance("该奖品不是待领取状态");
        if (ActivitySignReceiveRecord.STATE_DONE == activitySignReceiveRecord.getState()
                || ActivitySignReceiveRecord.STATE_FOUR == activitySignReceiveRecord.getState()
                || ActivitySignReceiveRecord.STATE_FIVE == activitySignReceiveRecord.getState()) {
            return AjaxResult.buildFailInstance("无法修改收货信息");
        }
        activitySignReceiveRecord.setConsigneeAddress(shopReceiveAddress.getAddrRegion()+"-"+shopReceiveAddress.getAddrDetailaddr()+"-"+shopReceiveAddress.getDormitory());
        activitySignReceiveRecord.setConsignee(shopReceiveAddress.getAddrLiaisonman());
zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java
@@ -51,7 +51,7 @@
    @ApiModelProperty(value ="客服电话")
    private String  customerPhone ;
    @ApiModelProperty(value =" 状态(1:待兑换 2:待发货  3:已兑换  )")
    @ApiModelProperty(value =" 是否已领取(1:待领取2:已领取 3:待配送 4:待收货 5:已失效)")
    private Integer  state;
    /**
zq-erp/src/main/resources/config/db/increment/签到活动.sql
@@ -187,6 +187,12 @@
ALTER TABLE `activity_sign_award_set`
    ADD COLUMN `customer_phone`  varchar(100) NULL COMMENT '客服电话' AFTER `company_id`;
ALTER TABLE `shop_delivery_info`
    MODIFY COLUMN `order_id`  int(11) NULL AFTER `logistics_company`;
ALTER TABLE `shop_delivery_info`
    MODIFY COLUMN `order_no`  varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL AFTER `user_id`;
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html
@@ -105,22 +105,22 @@
            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px">
                <el-row style="padding: 10px">
                    <el-col class="col-sm-10" >
                        <el-form-item label="收货人:" prop="shr">
                            <el-input v-model="ruleForm.shr" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
                        <el-form-item label="收货人:" prop="consignee">
                            <el-input v-model="ruleForm.consignee" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row style="padding: 10px">
                    <el-col class="col-sm-10" >
                        <el-form-item label="联系电话:" prop="lxdh">
                            <el-input v-model="ruleForm.lxdh" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
                        <el-form-item label="联系电话:" prop="consigneePhone">
                            <el-input v-model="ruleForm.consigneePhone" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
                <el-row style="padding: 10px">
                    <el-col class="col-sm-10" >
                        <el-form-item label="收货地址:" prop="shdz">
                            <el-input v-model="ruleForm.shdz" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
                        <el-form-item label="收货地址:" prop="consigneeAddress">
                            <el-input v-model="ruleForm.consigneeAddress" :disabled="(formSelect.state == 3 ? true:false)"></el-input>
                        </el-form-item>
                    </el-col>
                </el-row>
@@ -217,16 +217,13 @@
                djfs: '',
                state: '',
                djsj: '',
                consignee: '',
                consigneePhone: '',
                consigneeAddress: '',
            },
            //物流信息
            logisticsList:[],
            ruleForm : {
                shr:'',
                lxdh:'',
                shdz:'',
                consignee:'',
                consigneePhone:'',
                consigneeAddress:'',
                kdgs:'',
                kddh:'',
            },
@@ -235,13 +232,13 @@
            activities: [],
            rules : {
                shr : [
                consignee : [
                    { required: true, message: '请输入收货人', trigger: 'blur' }
                ],
                lxdh : [
                consigneePhone : [
                    { required: true, message: '请输入联系电话', trigger: 'blur' }
                ],
                shdz : [
                consigneeAddress : [
                    { required: true, message: '请输入收货地址', trigger: 'blur' }
                ],
                kdgs : [
@@ -269,6 +266,11 @@
                    url: basePath + '/admin/activitySignWriteoff/findSignWriteoff',
                    callback: function (data) {
                        _this.formSelect = data.mapInfo.signWriteoffVo;
                        _this.ruleForm.consignee = data.mapInfo.signWriteoffVo.consignee;
                        _this.ruleForm.consigneePhone = data.mapInfo.signWriteoffVo.consigneePhone;
                        _this.ruleForm.consigneeAddress = data.mapInfo.signWriteoffVo.consigneeAddress;
                        _this.ruleForm.kdgs = data.mapInfo.signWriteoffVo.logisticsCompany;
                        _this.ruleForm.kddh = data.mapInfo.signWriteoffVo.logisticsNum;
                        _this.activities = data.mapInfo.signWriteoffVo.activities;
                    }
                });
@@ -303,9 +305,9 @@
                }
                let resultData = {
                    writeoffId : writeoffId,
                    shr : _this.ruleForm.shr,
                    lxdh : _this.ruleForm.lxdh,
                    shdz : _this.ruleForm.shdz,
                    shr : _this.ruleForm.consignee,
                    lxdh : _this.ruleForm.consigneePhone,
                    shdz : _this.ruleForm.consigneeAddress,
                    kdgs : _this.ruleForm.kdgs,
                    kddh : _this.ruleForm.kddh,
                }
@@ -318,6 +320,8 @@
                            message: data.info,
                            type: 'success',
                        });
                        parent.layer.close(parent.layer.getFrameIndex(window.name));
                        parent.location.reload();
                    }
                });
            },
@@ -327,6 +331,7 @@
            },
            closeFrame() {
                parent.layer.close(parent.layer.getFrameIndex(window.name));
                parent.location.reload();
            },
        }
    })