zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java
@@ -26,5 +26,5 @@ ShopDeliveryInfo selectShopDeliveryInfoByLogisticsId(@Param("logisticsId")Integer logisticsId); ActivitySignWriteoff selectActivitySignWriteoffByUserIDAndReceiveId(@Param("logisticsId")Long id, @Param("logisticsId")long receiveId); ActivitySignWriteoff selectActivitySignWriteoffByUserIDAndReceiveId(@Param("userId")Long userId, @Param("receiveId")long receiveId); } zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignAwardSet.java
@@ -146,6 +146,8 @@ @ApiModelProperty(value ="客服微信") private String wechatImg; @ApiModelProperty(value ="客服电话") private String customerPhone; /** * 积分数量 zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignReceiveRecord.java
@@ -51,7 +51,7 @@ private Long awardId; /** * 是否已领取(1:待领取2:已领取 3:待配送 4:待收货) * 是否已领取(1:待领取2:已领取 3:待配送 4:待收货 5:已失效) */ @@ -61,6 +61,7 @@ public static final int STATE_DONE = 2; public static final int STATE_THREE = 3; public static final int STATE_FOUR = 4; public static final int STATE_FIVE = 5; /** * 核销码 zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java
@@ -66,13 +66,14 @@ private Date winTime; /** * 状态(1:待兑换 2:待发货 3:已兑换 ) * 状态(1:待兑换 2:待发货 3:已兑换 4:已失效 ) */ private Integer state; public static final int STATE_ONE = 1; public static final int STATE_TWO = 2; public static final int STATE_THREE = 3; public static final int STATE_FOUR = 4; /** * 中奖者ID */ zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -1,6 +1,7 @@ package com.matrix.system.activity.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -153,7 +154,29 @@ return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码无效"); } } //更新核销记录 //线下兑换失效 Long awardId = activitySignWriteoff.getAwardId(); ActivitySignAwardSet activitySignAwardSet = activitySignAwardSetDao.selectById(awardId); if(ActivitySignAwardSet.AWARDWAY_ONE == activitySignAwardSet.getAwardWay()){ Date prizeStartTime = activitySignAwardSet.getPrizeStartTime(); if(DateUtil.date().getTime() < prizeStartTime.getTime()){ return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖还没开始呢!"); } Date prizeEndTime = activitySignAwardSet.getPrizeEndTime(); if(DateUtil.date().getTime() > prizeEndTime.getTime()){ Long receiveId = activitySignWriteoff.getReceiveId(); ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); if(ObjectUtil.isNotEmpty(activitySignReceiveRecord)){ activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_FIVE); } activitySignReceiveRecordDao.updateById(activitySignReceiveRecord); activitySignWriteoff.setState(ActivitySignWriteoff.STATE_FOUR); activitySignWriteoffDao.updateById(activitySignWriteoff); return new AjaxResult(AjaxResult.STATUS_FAIL, "已超出兑奖结束时间!"); } } //更新核销记录 activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE); activitySignWriteoff.setWriteoffTime(new Date()); activitySignWriteoff.setWriteoffUser(sysUsers.getSuName()); @@ -208,7 +231,7 @@ activitySignWriteoffDao.updateById(activitySignWriteoff); //更新领取记录 ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_THREE); activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_FOUR); activitySignReceiveRecord.setConsignee(logisticsSubmitDto.getShr()); activitySignReceiveRecord.setConsigneeAddress(logisticsSubmitDto.getShdz()); activitySignReceiveRecord.setConsigneePhone(logisticsSubmitDto.getLxdh()); zq-erp/src/main/java/com/matrix/system/activity/vo/ActivitiesListVo.java
@@ -66,7 +66,7 @@ * 开始时间 */ @ApiModelProperty(value = "开始时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date actBeginTime; @@ -74,7 +74,7 @@ * 结束时间 */ @ApiModelProperty(value = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date actEndTime; /** * 活动状态 zq-erp/src/main/java/com/matrix/system/activity/vo/AddSignAwardSetVo.java
@@ -1,13 +1,12 @@ package com.matrix.system.activity.vo; import java.util.Date; import java.util.List; import com.fasterxml.jackson.annotation.JsonFormat; import com.matrix.system.activity.entity.ActivitySignAwardSet; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; import java.util.List; @Data public class AddSignAwardSetVo { @@ -21,8 +20,10 @@ @ApiModelProperty(value ="活动编码") private String actCode; @ApiModelProperty(value ="活动开始时间") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date beginTime; @ApiModelProperty(value ="活动结束时间") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date endTime; private SignSetBasicJsonVo signSetBasicJsonDto; zq-erp/src/main/java/com/matrix/system/activity/vo/CouponVo.java
@@ -1,9 +1,10 @@ package com.matrix.system.activity.vo; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @Data public class CouponVo { @@ -23,7 +24,7 @@ * 结束时间 */ @ApiModelProperty(value = "结束时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date endTime; } zq-erp/src/main/java/com/matrix/system/activity/vo/SignReceiveListVo.java
@@ -17,7 +17,7 @@ private String nickName; @ApiModelProperty(value = "签到时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date reciveTime; @ApiModelProperty(value = "连续签到天数") zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffListVo.java
@@ -16,7 +16,7 @@ * 核销时间 */ @ApiModelProperty(value ="核销时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date writeoffTime; /** @@ -47,7 +47,7 @@ * 中奖时间 */ @ApiModelProperty(value ="中奖时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date winTime; /** zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java
@@ -39,7 +39,7 @@ private int state; @ApiModelProperty(value ="兑奖时间") @JsonFormat(pattern = "yyyy-MM-dd hh:mm", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date djsj; @ApiModelProperty(value ="收货人") zq-erp/src/main/java/com/matrix/system/activity/vo/ZjrVo.java
@@ -1,11 +1,10 @@ package com.matrix.system.activity.vo; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; @Data public class ZjrVo { @@ -13,7 +12,7 @@ private String zjr; @ApiModelProperty(value ="中奖时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8") @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8") private Date zjsj; } zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
@@ -9,7 +9,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.matrix.component.redis.RedisUserLoginUtils; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.StringUtils; import com.matrix.system.activity.dao.ActivitySignAwardSetDao; @@ -28,9 +27,11 @@ import com.matrix.system.shopXcx.bean.ShopActivities; import com.matrix.system.shopXcx.bean.ShopDeliveryInfo; import com.matrix.system.shopXcx.bean.ShopLogisticsInfo; import com.matrix.system.shopXcx.bean.ShopReceiveAddress; import com.matrix.system.shopXcx.dao.ShopActivitiesDao; import com.matrix.system.shopXcx.dao.ShopDeliveryInfoDao; import com.matrix.system.shopXcx.dao.ShopLogisticsInfoDao; import com.matrix.system.shopXcx.dao.ShopReceiveAddressDao; import com.matrix.system.shopXcx.vo.SalesOrderVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -75,6 +76,8 @@ @Autowired private ShopLogisticsInfoDao shopLogisticsInfoDao; @Autowired private ShopReceiveAddressDao shopReceiveAddressDao; @Autowired private WxShopLogisticsQueryService wxShopLogisticsQueryService; @@ -482,7 +485,7 @@ signAwardDto.setUserId(loginUser.getId()); signAwardDto.setCompanyId(loginUser.getCompanyId()); IPage<SignAwardListVo> signAwardListVos = activitySignReceiveRecordDao.selectSignAwardList(page,signAwardDto); AjaxResult result=AjaxResult.buildSuccessInstance(signAwardListVos.getRecords()); AjaxResult result=AjaxResult.buildSuccessInstance(signAwardListVos); return result; } @@ -506,7 +509,7 @@ } /** * 物流配送确认 * 物流配送信息查看 * * @return */ @@ -520,19 +523,52 @@ seeAwardTextDto.setUserId(loginUser.getId()); seeAwardTextDto.setCompanyId(loginUser.getCompanyId()); SeeAwardTextVo seeAwardTextVO = activitySignReceiveRecordDao.selectSeeAwardTextVOById(seeAwardTextDto); if(ObjectUtil.isEmpty(seeAwardTextVO)){ return AjaxResult.buildFailInstance("奖品无法查看物流配送信息"); } long receiveId = seeAwardTextVO.getId(); //获取核销记录的ID ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectActivitySignWriteoffByUserIDAndReceiveId(loginUser.getId(),receiveId); Integer logisticsId = activitySignWriteoff.getLogisticsId(); ShopDeliveryInfo shopDeliveryInfo = shopDeliveryInfoDao.selectById(logisticsId); if(ObjectUtil.isNotEmpty(shopDeliveryInfo)){ //查看物流信息 wxShopLogisticsQueryService.selectLogisticsInfo(shopDeliveryInfo); List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId()); seeAwardTextVO.setShopLogisticsInfos(shopLogisticsInfos); if(ObjectUtil.isNotEmpty(activitySignWriteoff)){ Integer logisticsId = activitySignWriteoff.getLogisticsId(); ShopDeliveryInfo shopDeliveryInfo = shopDeliveryInfoDao.selectById(logisticsId); if(ObjectUtil.isNotEmpty(shopDeliveryInfo)){ //查看物流信息 wxShopLogisticsQueryService.selectLogisticsInfo(shopDeliveryInfo); List<ShopLogisticsInfo> shopLogisticsInfos = shopLogisticsInfoDao.selectByDelieryId(shopDeliveryInfo.getId()); seeAwardTextVO.setShopLogisticsInfos(shopLogisticsInfos); } } AjaxResult result=AjaxResult.buildSuccessInstance(seeAwardTextVO); return result; } /** * 物流配送收货地址保存 * * @param * @return */ @ApiOperation(value = "物流配送收货地址保存", notes = "") @GetMapping(value = "logisticsInsureAddress/{addressId}/{receiveId}") @ResponseBody public AjaxResult logisticsInsureAddress(@PathVariable("addressId") int addressId,@PathVariable("receiveId") long receiveId) { ShopReceiveAddress shopReceiveAddress = shopReceiveAddressDao.selectById(addressId); if(ObjectUtil.isEmpty(shopReceiveAddress)){ return AjaxResult.buildFailInstance("收货地址无效"); } ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); //该奖品不是待领取状态 if (ActivitySignReceiveRecord.STATE_ING != activitySignReceiveRecord.getState()) { return AjaxResult.buildFailInstance("该奖品不是待领取状态"); } activitySignReceiveRecord.setConsigneeAddress(shopReceiveAddress.getAddrRegion()+"-"+shopReceiveAddress.getAddrDetailaddr()+"-"+shopReceiveAddress.getDormitory()); activitySignReceiveRecord.setConsignee(shopReceiveAddress.getAddrLiaisonman()); activitySignReceiveRecord.setConsigneePhone(shopReceiveAddress.getAddrTelephone()); activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_THREE); activitySignReceiveRecordDao.updateById(activitySignReceiveRecord); return new AjaxResult(AjaxResult.STATUS_SUCCESS, "设置成功!"); } /** @@ -542,13 +578,13 @@ * @return */ @ApiOperation(value = "物流配送确认收货", notes = "") @GetMapping(value = "logisticsInsureById/{awardId}") @GetMapping(value = "logisticsInsureById/{receiveId}") @ResponseBody public AjaxResult logisticsInsureById(@PathVariable("awardId") long awardId) { ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(awardId); public AjaxResult logisticsInsureById(@PathVariable("receiveId") long receiveId) { ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(receiveId); //如果不是待收货状态 if (ActivitySignReceiveRecord.STATE_FOUR != activitySignReceiveRecord.getState()) { throw new GlobleException("该奖品不是待收货状态!"); return AjaxResult.buildFailInstance("该奖品不是待收货状态"); } activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE); activitySignReceiveRecordDao.updateById(activitySignReceiveRecord); zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SeeAwardTextDto.java
@@ -1,18 +1,18 @@ package com.matrix.system.shopXcx.api.dto; import javax.validation.constraints.NotNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; @Data @ApiModel(value = "SeeAwardTextDto", description = "查询参数接收类") public class SeeAwardTextDto { @NotNull(message = "奖品ID不能为空") @ApiModelProperty(value = "奖品ID", example = "1") @NotNull(message = "奖品记录ID不能为空") @ApiModelProperty(value = "奖品记录ID", example = "1") private Long awardId; @ApiModelProperty(hidden = true) zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SeeAwardTextVo.java
@@ -48,9 +48,28 @@ @ApiModelProperty(value ="客服微信") private String wechatImg; @ApiModelProperty(value =" 是否已领取(1:待领取2:已领取)") @ApiModelProperty(value ="客服电话") private String customerPhone ; @ApiModelProperty(value =" 状态(1:待兑换 2:待发货 3:已兑换 )") private Integer state; /** * 收货人 */ @ApiModelProperty(value ="收货人") private String consignee; /** * 联系电话 */ @ApiModelProperty(value ="联系电话") private String consigneePhone; /** * 收货地址 */ @ApiModelProperty(value =" 收货地址") private String consigneeAddress; @ApiModelProperty(value ="物流信息记录") private List<ShopLogisticsInfo> shopLogisticsInfos; zq-erp/src/main/java/com/matrix/system/shopXcx/api/vo/SignAwardListVo.java
@@ -27,7 +27,7 @@ @ApiModelProperty(value ="数量") private int total; @ApiModelProperty(value ="是否已领取(1:待领取2:已领取 3:待配送 4:待收货)") @ApiModelProperty(value ="是否已领取(1:待领取2:已领取 3:待配送 4:待收货 5:已失效)") private Integer state; @ApiModelProperty(value ="领取时间") zq-erp/src/main/resources/config/db/increment/签到活动.sql
@@ -184,6 +184,11 @@ ALTER TABLE `shop_delivery_info` ADD COLUMN `receive_id` bigint(20) NULL COMMENT '奖品领取ID' AFTER `company_id`; ALTER TABLE `activity_sign_award_set` ADD COLUMN `customer_phone` varchar(100) NULL COMMENT '客服电话' AFTER `company_id`; zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml
@@ -17,7 +17,7 @@ c.award_rule awardRule FROM activity_sign_receive_record a LEFT JOIN biz_user b ON a.user_id = b.user_id LEFT JOIN sys_vip_info b ON a.user_id = b.id LEFT JOIN activity_sign_award_set c ON a.award_id = c.id <where> a.company_id = #{record.companyId} @@ -118,6 +118,9 @@ SELECT a.id id, a.state state, a.consignee_phone consigneePhone, a.consignee_address consigneeAddress, a.consignee, a.receive_time receiveTime, a.write_off_code writeOffCode, 1 total, @@ -128,6 +131,7 @@ b.prize_start_time prizeStartTime, b.award_way awardWay, b.introduce_img introduceImg, b.customer_phone customerPhone, b.award_name awardName FROM activity_sign_receive_record a zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml
@@ -63,7 +63,7 @@ f.receive_address receiveAddress FROM activity_sign_writeoff a left join biz_user b on a.user_id= b.user_id left join sys_vip_info b on a.user_id= b.id left join shop_activities c on a.act_id= c.id left join activity_sign_award_set d on a.award_id= d.id left join activity_sign_receive_record e on a.receive_id= e.id @@ -89,7 +89,7 @@ b.nick_name zjr FROM activity_sign_receive_record a left join biz_user b on a.user_id= b.user_id left join sys_vip_info b on a.user_id= b.id where a.user_id = #{userId} and a.award_id = #{receiveId} </select> @@ -105,8 +105,9 @@ SELECT * FROM shop_delivery_info a where a.id = #{logisticsId} activity_sign_writeoff a where a.receive_id = #{receiveId} and a.user_id = #{userId} </select> </mapper> zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-receive.html
@@ -87,6 +87,9 @@ <template slot-scope="scope"> <span v-if="scope.row.state == 1">待领取</span> <span v-if="scope.row.state == 2">已领取</span> <span v-if="scope.row.state == 3">待配送</span> <span v-if="scope.row.state == 4">待收货</span> <span v-if="scope.row.state == 5">已失效</span> </template> </el-table-column> <el-table-column zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-update.html
@@ -267,6 +267,15 @@ </el-col> </el-row> </div> <div v-show="item.content.awardWay === 3"> <el-row > <el-col> <el-form-item label="客服电话"> <el-input v-model="item.content.customerPhone"></el-input> </el-form-item> </el-col> </el-row> </div> <div v-show="item.content.awardWay !== 2"> <el-row > <el-col> @@ -569,6 +578,7 @@ wechatImg:'', scoreCnt:'', couponId:'', customerPhone:'', goodsId:'', couponName:'', goodsName:'', @@ -829,6 +839,7 @@ awardType: parseInt(prizeVo.awardType), awardName: prizeVo.awardName, introduceImg: prizeVo.introduceImg, customerPhone: prizeVo.customerPhone, introduceTip: prizeVo.introduceTip, awardInventoryCnt: prizeVo.awardInventoryCnt, awardDistributeCnt: prizeVo.awardDistributeCnt, @@ -914,6 +925,7 @@ awardDistributeCnt: prize.awardDistributeCnt, awardWay: prize.awardWay, operationTip: prize.operationTip, customerPhone: prize.customerPhone, prizeAddress: prize.prizeAddress, wechatImg: prize.wechatImg, scoreCnt: prize.scoreCnt, zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html
@@ -97,6 +97,7 @@ <span v-if="scope.row.state == 1">待兑换</span> <span v-if="scope.row.state == 2">待发货</span> <span v-if="scope.row.state == 3">已兑换</span> <span v-if="scope.row.state == 4">已失效</span> </template> </el-table-column> <el-table-column zq-erp/src/main/resources/templates/views/admin/activity/activity-sign.html
@@ -274,6 +274,15 @@ </el-col> </el-row> </div> <div v-show="item.content.awardWay === '3'"> <el-row > <el-col> <el-form-item label="客服电话"> <el-input v-model="item.content.customerPhone"></el-input> </el-form-item> </el-col> </el-row> </div> <div v-show="item.content.awardWay !== '2'"> <el-row > <el-col> @@ -576,6 +585,7 @@ couponId:'', goodsId:'', couponName:'', customerPhone:'', goodsName:'', } var app = new Vue({ @@ -845,6 +855,7 @@ operationTip: prize.operationTip, prizeAddress: prize.prizeAddress, wechatImg: prize.wechatImg, customerPhone: prize.customerPhone, scoreCnt: prize.scoreCnt, couponId: prize.couponId, goodsId: prize.goodsId,