From f96ad6ec73b3da7df5c08471f0d567d46fc767e8 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Fri, 09 Apr 2021 14:34:18 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/score_shop' into score_shop
---
zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffListVo.java | 77 ++
zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java | 125 ++++
zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java | 26 +
zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java | 3
zq-erp/src/main/resources/config/db/increment/签到活动.sql | 41 +
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html | 291 +++++++++++
zq-erp/src/main/java/com/matrix/system/activity/action/ActivitySignWriteoffAction.java | 74 ++
zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java | 121 ++++
zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffDto.java | 17
zq-erp/src/main/java/com/matrix/system/activity/dto/WriteoffCodeSubmitDto.java | 20
zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffListDto.java | 21
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-receive.html | 24
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff-info.html | 198 +++++++
zq-erp/src/main/java/com/matrix/system/activity/vo/SignReceiveListVo.java | 11
zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml | 6
zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html | 293 +++++++++++
zq-erp/src/main/java/com/matrix/system/activity/vo/ZjrVo.java | 19
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java | 33 +
zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java | 45 +
zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml | 93 +++
20 files changed, 1,530 insertions(+), 8 deletions(-)
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/action/ActivitySignWriteoffAction.java b/zq-erp/src/main/java/com/matrix/system/activity/action/ActivitySignWriteoffAction.java
new file mode 100644
index 0000000..b125fe2
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/action/ActivitySignWriteoffAction.java
@@ -0,0 +1,74 @@
+package com.matrix.system.activity.action;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.StringUtils;
+import com.matrix.system.activity.dto.SignWriteoffDto;
+import com.matrix.system.activity.dto.SignWriteoffListDto;
+import com.matrix.system.activity.dto.WriteoffCodeSubmitDto;
+import com.matrix.system.activity.service.ActivitySignWriteoffService;
+import com.matrix.system.activity.vo.SignWriteoffListVo;
+import com.matrix.system.hive.action.util.QueryUtil;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+/**
+ * @description 核销记录
+ * @author yourName
+ * @date 2021-04-08 14:25
+ */
+@RestController
+@RequestMapping(value = "admin/activitySignWriteoff")
+public class ActivitySignWriteoffAction {
+
+ @Autowired
+ private ActivitySignWriteoffService activitySignWriteoffService;
+
+ /**
+ * 核销记录
+ */
+ @ApiOperation(value = "核销记录")
+ @ApiResponses({
+ @ApiResponse(code = 200, message = "OK", response = SignWriteoffListVo.class)
+ })
+ @PostMapping(value = "/findSignWriteoffList")
+ public @ResponseBody
+ AjaxResult findSignWriteoffList(@RequestBody SignWriteoffListDto signWriteoffListDto) {
+ //设置用户公司ID
+ QueryUtil.setQueryLimitCom(signWriteoffListDto);
+ //排序
+ if(StringUtils.isBlank(signWriteoffListDto.getSort())){
+ signWriteoffListDto.setSort("create_time");
+ signWriteoffListDto.setOrder("desc");
+ }
+ Page<SignWriteoffListVo> page = new Page(signWriteoffListDto.getPageNum(), signWriteoffListDto.getPageSize());
+ IPage<SignWriteoffListVo> rows = activitySignWriteoffService.findSignWriteoffList(page,signWriteoffListDto);
+ AjaxResult result = AjaxResult.buildSuccessInstance(rows.getRecords(),rows.getTotal());
+ return result;
+ }
+
+ /**
+ *进入核销
+ */
+ @ApiOperation(value = "进入核销")
+ @PostMapping(value = "/findSignWriteoff")
+ public @ResponseBody
+ AjaxResult findSignWriteoff(@RequestBody SignWriteoffDto signWriteoffDto) {
+ return activitySignWriteoffService.findSignWriteoff(signWriteoffDto);
+ }
+
+ /**
+ *核销验证
+ */
+ @ApiOperation(value = "核销验证")
+ @PostMapping(value = "/writeoffCodeSubmit")
+ public @ResponseBody
+ AjaxResult writeoffCodeSubmit(@RequestBody WriteoffCodeSubmitDto writeoffCodeSubmitDto) {
+ return activitySignWriteoffService.writeoffCodeSubmit(writeoffCodeSubmitDto);
+ }
+
+
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java b/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java
new file mode 100644
index 0000000..5613f42
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/dao/ActivitySignWriteoffDao.java
@@ -0,0 +1,26 @@
+package com.matrix.system.activity.dao;
+
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.matrix.system.activity.dto.SignWriteoffListDto;
+import com.matrix.system.activity.entity.ActivitySignWriteoff;
+import com.matrix.system.activity.vo.SignWriteoffListVo;
+import com.matrix.system.activity.vo.ZjrVo;
+
+/**
+ * @description 核销记录
+ * @author yourName
+ * @date 2021-04-08 14:25
+ */
+public interface ActivitySignWriteoffDao extends BaseMapper<ActivitySignWriteoff>{
+
+ IPage<SignWriteoffListVo> findSignWriteoffList(Page<SignWriteoffListVo> page,
+ @Param("record")SignWriteoffListDto signWriteoffListDto);
+
+ ZjrVo selectUsernameByUserId(@Param("userId")Long userId, @Param("receiveId")Long receiveId);
+
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffDto.java b/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffDto.java
new file mode 100644
index 0000000..3c7552a
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffDto.java
@@ -0,0 +1,17 @@
+package com.matrix.system.activity.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "SignWriteoffDto", description = "查询参数")
+public class SignWriteoffDto {
+
+ @ApiModelProperty(value ="核销ID")
+ private long writeoffId;
+
+ @ApiModelProperty(hidden = true)
+ private Long companyId;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffListDto.java b/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffListDto.java
new file mode 100644
index 0000000..5acbdc0
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/dto/SignWriteoffListDto.java
@@ -0,0 +1,21 @@
+package com.matrix.system.activity.dto;
+
+import java.util.Date;
+
+import com.matrix.core.pojo.BasePageQueryDto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "SignWriteoffListDto", description = "查询参数")
+public class SignWriteoffListDto extends BasePageQueryDto {
+
+ @ApiModelProperty(value ="中奖者姓名")
+ private String zjzxm;
+
+ @ApiModelProperty(hidden = true)
+ private Long companyId;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/dto/WriteoffCodeSubmitDto.java b/zq-erp/src/main/java/com/matrix/system/activity/dto/WriteoffCodeSubmitDto.java
new file mode 100644
index 0000000..972be8a
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/dto/WriteoffCodeSubmitDto.java
@@ -0,0 +1,20 @@
+package com.matrix.system.activity.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "WriteoffCodeSubmitDto", description = "查询参数")
+public class WriteoffCodeSubmitDto {
+
+ @ApiModelProperty(value ="核销ID")
+ private long writeoffId;
+
+ @ApiModelProperty(value ="兑奖码")
+ private String writeOffCode;
+
+ @ApiModelProperty(hidden = true)
+ private Long companyId;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java b/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java
new file mode 100644
index 0000000..7ab47e4
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/entity/ActivitySignWriteoff.java
@@ -0,0 +1,121 @@
+package com.matrix.system.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.matrix.core.anotations.Extend;
+import com.matrix.system.score.entity.BaseEntity;
+import lombok.Data;
+
+import java.util.Date;
+
+
+/**
+ * @description 核销记录
+ * @author yourName
+ * @date 2021-04-08 14:25
+ */
+@Data
+@TableName("activity_sign_writeoff")
+public class ActivitySignWriteoff extends BaseEntity{
+ @Extend
+ private static final long serialVersionUID = 1L;
+
+
+
+
+
+ /**
+ * 核销时间
+ */
+
+
+ private Date writeoffTime;
+
+ /**
+ * 核销员
+ */
+
+
+ private String writeoffUser;
+
+ /**
+ * 兑奖码
+ */
+
+
+ private String writeoffCode;
+
+ /**
+ * 活动ID
+ */
+
+
+ private Long actId;
+
+ /**
+ * 奖品ID
+ */
+
+
+ private Long awardId;
+
+ /**
+ * 中奖时间
+ */
+
+
+ private Date winTime;
+
+ /**
+ * 状态(1:待兑换 2:待发货 3:已兑换 )
+ */
+ private Integer state;
+ public static final int STATE_ONE = 1;
+ public static final int STATE_TWO = 2;
+ public static final int STATE_THREE = 3;
+
+ /**
+ * 中奖者ID
+ */
+
+
+ private Long userId;
+
+ /**
+ * 物流ID
+ */
+
+
+ private Long logisticsId;
+
+ /**
+ * 中奖记录ID
+ */
+
+
+ private Long receiveId;
+
+ /**
+ * 公司ID
+ */
+
+
+ private Long companyId;
+
+ /**
+ * 店铺ID
+ */
+
+
+ private Long shopId;
+
+ /**
+ * 核销员ID
+ */
+
+
+ private Long writeoffUserid;
+
+
+
+
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java
index 7d34fb6..aed8a95 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignAwardSetService.java
@@ -53,6 +53,9 @@
//获取当前登录人员信息
SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
Long companyId = user.getCompanyId();
+ /**
+ * todo签到活动的唯一性
+ */
//新增活动主表信息
ShopActivities shopActivities = new ShopActivities();
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
new file mode 100644
index 0000000..c8478a8
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/service/ActivitySignWriteoffService.java
@@ -0,0 +1,125 @@
+package com.matrix.system.activity.service;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.matrix.core.constance.MatrixConstance;
+import com.matrix.core.pojo.AjaxResult;
+import com.matrix.core.tools.WebUtil;
+import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
+import com.matrix.system.activity.dao.ActivitySignReceiveRecordDao;
+import com.matrix.system.activity.dao.ActivitySignWriteoffDao;
+import com.matrix.system.activity.dto.SignWriteoffDto;
+import com.matrix.system.activity.dto.SignWriteoffListDto;
+import com.matrix.system.activity.dto.WriteoffCodeSubmitDto;
+import com.matrix.system.activity.entity.ActivitySignAwardSet;
+import com.matrix.system.activity.entity.ActivitySignReceiveRecord;
+import com.matrix.system.activity.entity.ActivitySignWriteoff;
+import com.matrix.system.activity.vo.SignWriteoffListVo;
+import com.matrix.system.activity.vo.SignWriteoffVo;
+import com.matrix.system.activity.vo.ZjrVo;
+import com.matrix.system.common.bean.SysUsers;
+import com.matrix.system.hive.action.util.QueryUtil;
+import com.matrix.system.hive.dao.SysVipInfoDao;
+import com.matrix.system.shopXcx.bean.ShopActivities;
+import com.matrix.system.shopXcx.dao.ShopActivitiesDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+
+/**
+ * @description 核销记录
+ * @author yourName
+ * @date 2021-04-08 14:25
+ */
+@Service
+public class ActivitySignWriteoffService extends ServiceImpl<ActivitySignWriteoffDao, ActivitySignWriteoff>{
+
+ @Autowired
+ ActivitySignWriteoffDao activitySignWriteoffDao;
+ @Autowired
+ ShopActivitiesDao shopActivitiesDao;
+ @Autowired
+ ActivitySignAwardSetDao activitySignAwardSetDao;
+ @Autowired
+ ActivitySignReceiveRecordDao activitySignReceiveRecordDao;
+ @Autowired
+ SysVipInfoDao sysVipInfoDao;
+
+ public IPage<SignWriteoffListVo> findSignWriteoffList(Page<SignWriteoffListVo> page,
+ SignWriteoffListDto signWriteoffListDto) {
+ return activitySignWriteoffDao.findSignWriteoffList(page,signWriteoffListDto);
+ }
+
+ public AjaxResult findSignWriteoff(SignWriteoffDto signWriteoffDto) {
+ //设置用户公司ID
+ QueryUtil.setQueryLimitCom(signWriteoffDto);
+ Long writeoffId = signWriteoffDto.getWriteoffId();
+ AjaxResult result= AjaxResult.buildSuccessInstance("成功");
+ //获取核销信息
+ SignWriteoffVo signWriteoffVo = new SignWriteoffVo();
+ ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectById(writeoffId);
+ if(ObjectUtil.isNotEmpty(activitySignWriteoff)) {
+ //获取奖品信息
+ ActivitySignAwardSet activitySignAwardSet = activitySignAwardSetDao.selectById(activitySignWriteoff.getAwardId());
+ signWriteoffVo.setJpmc(activitySignAwardSet.getAwardName());
+ signWriteoffVo.setJptp(activitySignAwardSet.getIntroduceImg());
+ signWriteoffVo.setSl(1);
+ signWriteoffVo.setDjfs(activitySignAwardSet.getAwardWay());
+ //获取中奖人信息
+ ZjrVo zjrVo = activitySignWriteoffDao.selectUsernameByUserId(activitySignWriteoff.getUserId(),activitySignAwardSet.getId());
+ signWriteoffVo.setZjr(zjrVo.getZjr());
+ signWriteoffVo.setZjsj(zjrVo.getZjsj());
+ signWriteoffVo.setDjsj(activitySignWriteoff.getWriteoffTime());
+ signWriteoffVo.setState(activitySignWriteoff.getState());
+ //获取活动主表信息
+ ShopActivities shopActivities = shopActivitiesDao.selectById(activitySignWriteoff.getActId());
+ signWriteoffVo.setHdmc(shopActivities.getActName());
+ signWriteoffVo.setHdbh(shopActivities.getActCode());
+ }
+ result.putInMap("signWriteoffVo", signWriteoffVo);
+ return result;
+ }
+
+ @Transactional
+ public AjaxResult writeoffCodeSubmit(WriteoffCodeSubmitDto writeoffCodeSubmitDto) {
+ //设置用户公司ID
+ QueryUtil.setQueryLimitCom(writeoffCodeSubmitDto);
+ SysUsers sysUsers = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY);
+ Long writeoffId = writeoffCodeSubmitDto.getWriteoffId();
+ String writeOffCode = writeoffCodeSubmitDto.getWriteOffCode();
+ /**
+ * 验证核销码是不是匹配
+ * 更新核销记录
+ * 更新领取记录
+ */
+ //验证核销码是不是匹配
+ ActivitySignWriteoff activitySignWriteoff = activitySignWriteoffDao.selectById(writeoffId);
+ if(ObjectUtil.isNotEmpty(activitySignWriteoff)) {
+ String writeoffCodeReal = activitySignWriteoff.getWriteoffCode();
+ if(!writeoffCodeReal.equals(writeOffCode)) {
+ return new AjaxResult(AjaxResult.STATUS_FAIL, "兑奖码无效");
+ }
+ }
+ //更新核销记录
+ activitySignWriteoff.setState(ActivitySignWriteoff.STATE_THREE);
+ activitySignWriteoff.setWriteoffTime(new Date());
+ activitySignWriteoff.setWriteoffUser(sysUsers.getSuName());
+ activitySignWriteoff.setWriteoffUserid(sysUsers.getSuId());
+ activitySignWriteoffDao.updateById(activitySignWriteoff);
+ //更新领取记录
+ ActivitySignReceiveRecord activitySignReceiveRecord = activitySignReceiveRecordDao.selectById(activitySignWriteoff.getReceiveId());
+ activitySignReceiveRecord.setState(ActivitySignReceiveRecord.STATE_DONE);
+ activitySignReceiveRecordDao.updateById(activitySignReceiveRecord);
+
+ return new AjaxResult(AjaxResult.STATUS_SUCCESS, "核销成功");
+ }
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/vo/SignReceiveListVo.java b/zq-erp/src/main/java/com/matrix/system/activity/vo/SignReceiveListVo.java
index dfc5c00..d43dbf6 100644
--- a/zq-erp/src/main/java/com/matrix/system/activity/vo/SignReceiveListVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/activity/vo/SignReceiveListVo.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 SignReceiveListVo {
@@ -16,6 +17,7 @@
private String nickName;
@ApiModelProperty(value = "签到时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8")
private Date reciveTime;
@ApiModelProperty(value = "连续签到天数")
@@ -26,5 +28,10 @@
@ApiModelProperty(value = "获得奖励")
private String awardName;
+
+ @ApiModelProperty(value ="奖项规则(1:每日奖励(默认)2:累计签到天数)")
+ private int awardRule;
+ @ApiModelProperty(value ="是否已领取(1:待领取2:已领取)")
+ private int state;
}
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffListVo.java b/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffListVo.java
new file mode 100644
index 0000000..1bf2d2f
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffListVo.java
@@ -0,0 +1,77 @@
+package com.matrix.system.activity.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SignWriteoffListVo {
+
+
+ private Long id;
+
+ /**
+ * 核销时间
+ */
+ @ApiModelProperty(value ="核销时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8")
+ private Date writeoffTime;
+
+ /**
+ * 核销员
+ */
+ @ApiModelProperty(value ="核销员")
+ private String writeoffUser;
+
+ /**
+ * 兑奖码
+ */
+ @ApiModelProperty(value ="兑奖码")
+ private String writeoffCode;
+
+ /**
+ * 活动名称
+ */
+ @ApiModelProperty(value ="活动名称")
+ private String actName;
+
+ /**
+ * 奖品名称
+ */
+ @ApiModelProperty(value ="奖品名称")
+ private String awardName;
+
+ /**
+ * 中奖时间
+ */
+ @ApiModelProperty(value ="中奖时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8")
+ private Date winTime;
+
+ /**
+ * 状态
+ */
+ @ApiModelProperty(value ="状态(1:待兑换 2:待发货 3:已兑换)")
+ private int state;
+
+ /**
+ * 兑奖方式
+ */
+ @ApiModelProperty(value ="兑奖方式(1:线下兑换2:物流配送3:客服兑换)")
+ private int awardWay;
+
+ /**
+ * 中奖者
+ */
+ @ApiModelProperty(value ="中奖者")
+ private String receiveName;
+
+ /**
+ * 收货地址
+ */
+ @ApiModelProperty(value ="收货地址")
+ private String receiveAddress;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java b/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java
new file mode 100644
index 0000000..e915998
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/vo/SignWriteoffVo.java
@@ -0,0 +1,45 @@
+package com.matrix.system.activity.vo;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class SignWriteoffVo {
+
+ @ApiModelProperty(value ="奖品名称")
+ private String jpmc;
+
+ @ApiModelProperty(value ="奖品图片")
+ private String jptp;
+
+ @ApiModelProperty(value ="数量")
+ private int sl;
+
+ @ApiModelProperty(value ="中奖人")
+ private String zjr;
+
+ @ApiModelProperty(value ="中奖时间")
+ @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8")
+ private Date zjsj;
+
+ @ApiModelProperty(value ="活动名称")
+ private String hdmc;
+
+ @ApiModelProperty(value ="活动编号")
+ private String hdbh;
+
+ @ApiModelProperty(value ="兑奖方式")
+ private int djfs;
+
+ @ApiModelProperty(value ="兑奖状态")
+ private int state;
+
+ @ApiModelProperty(value ="兑奖时间")
+ @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone="GMT+8")
+ private Date djsj;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/activity/vo/ZjrVo.java b/zq-erp/src/main/java/com/matrix/system/activity/vo/ZjrVo.java
new file mode 100644
index 0000000..bbef08c
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/activity/vo/ZjrVo.java
@@ -0,0 +1,19 @@
+package com.matrix.system.activity.vo;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+@Data
+public class ZjrVo {
+
+ @ApiModelProperty(value ="中奖人")
+ private String zjr;
+
+ @ApiModelProperty(value ="中奖时间")
+ @JsonFormat(pattern = "yyyy-MM-dd", timezone="GMT+8")
+ private Date zjsj;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
index 5149a5b..8b2e985 100644
--- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopActivitiesSignAction.java
@@ -11,9 +11,11 @@
import com.matrix.system.activity.dao.ActivitySignAwardSetDao;
import com.matrix.system.activity.dao.ActivitySignReceiveRecordDao;
import com.matrix.system.activity.dao.ActivitySignRecordDao;
+import com.matrix.system.activity.dao.ActivitySignWriteoffDao;
import com.matrix.system.activity.entity.ActivitySignAwardSet;
import com.matrix.system.activity.entity.ActivitySignReceiveRecord;
import com.matrix.system.activity.entity.ActivitySignRecord;
+import com.matrix.system.activity.entity.ActivitySignWriteoff;
import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.system.shopXcx.api.dto.ClickSignDTO;
import com.matrix.system.shopXcx.api.vo.ActivitySignAwardSetVo;
@@ -50,6 +52,9 @@
@Autowired
private ActivitySignReceiveRecordDao activitySignReceiveRecordDao;
+
+ @Autowired
+ private ActivitySignWriteoffDao activitySignWriteoffDao;
@Autowired
private ActivitySignRecordDao activitySignRecordDao;
@@ -115,6 +120,7 @@
* 是否已领取
* 查询是否有签到奖品
* 日常奖励和自定义奖品
+ * 生成核销记录
*/
//活动是否存在
ShopActivities shopActivities = shopActivitiesDao.selectById(actId);
@@ -182,7 +188,7 @@
signSuccessVo.setNormalAwardImg(activitySignAwardSetNormal.getIntroduceImg());
}
//获取当前累计天数
- int cumulativeDay = getCumulativeDay(actId, userId, date, 1);
+ int cumulativeDay = getCumulativeDay(actId, userId, date, 0);
//自定义奖励
QueryWrapper<ActivitySignAwardSet> queryWrapperCumulativeDay = new QueryWrapper<>();
queryWrapperCumulativeDay.eq("award_rule",ActivitySignAwardSet.AWARDRULE_CUMULATIVEDAY);
@@ -262,6 +268,31 @@
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.getName());
+ activitySignWriteoff.setCreateTime(new Date());
+ activitySignWriteoff.setUpdateBy(user.getName());
+ activitySignWriteoff.setUpdateTime(new Date());
+ activitySignWriteoffDao.insert(activitySignWriteoff);
+ }
}
AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("签到成功");
diff --git "a/zq-erp/src/main/resources/config/db/increment/\347\255\276\345\210\260\346\264\273\345\212\250.sql" "b/zq-erp/src/main/resources/config/db/increment/\347\255\276\345\210\260\346\264\273\345\212\250.sql"
index 747c41f..6380d46 100644
--- "a/zq-erp/src/main/resources/config/db/increment/\347\255\276\345\210\260\346\264\273\345\212\250.sql"
+++ "b/zq-erp/src/main/resources/config/db/increment/\347\255\276\345\210\260\346\264\273\345\212\250.sql"
@@ -130,6 +130,47 @@
ALTER TABLE `activity_sign_receive_record`
CHANGE COLUMN `open_id` `user_id` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'openID' AFTER `id`;
+
+ /**
+ * 核销记录
+ * @author yourName
+ * @date 2021-04-08 14:25
+ */
+ CREATE TABLE activity_sign_writeoff(
+ create_by varchar(100) NOT NULL COMMENT '创建人',
+ create_time datetime NOT NULL COMMENT '创建时间',
+ update_by varchar(100) NOT NULL COMMENT '更新人',
+ update_time datetime NOT NULL COMMENT '更新时间',
+ id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+
+ writeoff_time datetime COMMENT '核销时间',
+
+ writeoff_user varchar(100) COMMENT '核销员',
+
+ writeoff_code varchar(100) COMMENT '兑奖码',
+
+ act_id bigint(20) COMMENT '活动ID',
+
+ award_id bigint(20) COMMENT '奖品ID',
+
+ win_time datetime COMMENT '中奖时间',
+
+ state int(4) COMMENT '状态',
+
+ user_id bigint(20) COMMENT '中奖者ID',
+
+ logistics_id bigint(20) COMMENT '物流ID',
+
+ receive_id bigint(20) COMMENT '中奖记录ID',
+
+ company_id bigint(20) COMMENT '公司ID',
+
+ shop_id bigint(20) COMMENT '店铺ID',
+
+ writeoff_userid bigint(20) COMMENT '核销员ID',
+
+PRIMARY KEY(id)
+)ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='核销记录';
diff --git a/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml
index c983585..d64c91f 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignReceiveRecordDao.xml
@@ -10,12 +10,14 @@
a.id id,
b.nick_name nickName,
a.receive_time reciveTime,
+ a.state,
c.cumulative_day cumulativeDay,
c.award_type awardType,
- c.award_name awardName
+ c.award_name awardName,
+ c.award_rule awardRule
FROM
activity_sign_receive_record a
- LEFT JOIN biz_user b ON a.open_id = b.open_id
+ LEFT JOIN biz_user b ON a.user_id = b.user_id
LEFT JOIN activity_sign_award_set c ON a.award_id = c.id
<where>
a.company_id = #{record.companyId}
diff --git a/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml
new file mode 100644
index 0000000..30f587b
--- /dev/null
+++ b/zq-erp/src/main/resources/mybatis/mapper/activity/ActivitySignWriteoffDao.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.matrix.system.activity.dao.ActivitySignWriteoffDao">
+ <!-- 定义ActivitySignWriteoff 的复杂关联map -->
+ <resultMap type="com.matrix.system.activity.entity.ActivitySignWriteoff" id="ActivitySignWriteoffMap">
+ <id property="id" column="id" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="writeoffTime" column="writeoff_time" />
+ <result property="writeoffUser" column="writeoff_user" />
+ <result property="writeoffCode" column="writeoff_code" />
+ <result property="actId" column="act_id" />
+ <result property="awardId" column="award_id" />
+ <result property="winTime" column="win_time" />
+ <result property="state" column="state" />
+ <result property="userId" column="user_id" />
+ <result property="logisticsId" column="logistics_id" />
+ <result property="receiveId" column="receive_id" />
+ <result property="companyId" column="company_id" />
+ <result property="shopId" column="shop_id" />
+ <result property="writeoffUserid" column="writeoff_userid" />
+ </resultMap>
+
+
+ <!-- 定义ActivitySignWriteoff 的简单map ,本map不添加其他的关联属性 -->
+ <resultMap type="com.matrix.system.activity.entity.ActivitySignWriteoff" id="ActivitySignWriteoffSimpleMap">
+ <id property="id" column="id" />
+ <result property="createBy" column="create_by" />
+ <result property="createTime" column="create_time" />
+ <result property="updateBy" column="update_by" />
+ <result property="updateTime" column="update_time" />
+ <result property="writeoffTime" column="writeoff_time" />
+ <result property="writeoffUser" column="writeoff_user" />
+ <result property="writeoffCode" column="writeoff_code" />
+ <result property="actId" column="act_id" />
+ <result property="awardId" column="award_id" />
+ <result property="winTime" column="win_time" />
+ <result property="state" column="state" />
+ <result property="userId" column="user_id" />
+ <result property="logisticsId" column="logistics_id" />
+ <result property="receiveId" column="receive_id" />
+ <result property="companyId" column="company_id" />
+ <result property="shopId" column="shop_id" />
+ <result property="writeoffUserid" column="writeoff_userid" />
+ </resultMap>
+
+ <select id="findSignWriteoffList" resultType="com.matrix.system.activity.vo.SignWriteoffListVo">
+ SELECT
+ a.id id,
+ a.writeoff_time writeoffTime,
+ a.writeoff_user writeoffUser,
+ a.writeoff_code writeoffCode,
+ a.state state,
+ b.nick_name receiveName,
+ c.act_name actName,
+ d.award_way awardWay,
+ d.award_name awardName,
+ e.receive_time winTime,
+ f.receive_address receiveAddress
+ FROM
+ activity_sign_writeoff a
+ left join biz_user b on a.user_id= b.user_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
+ left join shop_delivery_info f on a.logistics_id= f.id
+ <where>
+ a.company_id = #{record.companyId}
+ <if test="record.zjzxm != null and record.zjzxm != ''">
+ and b.nick_name like concat('%',#{record.zjzxm},'%')
+ </if>
+ </where>
+ <if test="record.sort !=null">
+ order by
+ a.${record.sort} ${record.order}
+ </if>
+ </select>
+
+ <select id="selectUsernameByUserId" resultType="com.matrix.system.activity.vo.ZjrVo">
+ SELECT
+ a.receive_time zjsj,
+ b.nick_name zjr
+ FROM
+ activity_sign_receive_record a
+ left join biz_user b on a.user_id= b.user_id
+ where a.user_id = #{userId} and a.award_id = #{receiveId}
+ </select>
+
+</mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html
new file mode 100644
index 0000000..f8dd4d3
--- /dev/null
+++ b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-logistics-info.html
@@ -0,0 +1,291 @@
+<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
+<head>
+ <meta charset="utf-8">
+ <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+ <meta name="renderer" content="webkit|ie-comp|ie-stand">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport"
+ content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
+ <meta http-equiv="Cache-Control" content="no-siteapp"/>
+ <!-- 本框架基本脚本和样式 -->
+ <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
+ <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
+ <link rel="stylesheet" th:href="@{/plugin/bootstrap-3.3.5/css/bootstrap.min.css}">
+ <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
+
+ <style>
+
+ .el-aside {
+ background-color: #D3DCE6;
+ color: #333;
+ }
+ .el-main {
+ background-color: #E9EEF3;
+ color: #333;
+ }
+ body > .el-container {
+ margin-bottom: 1000px;
+ }
+
+ </style>
+</head>
+
+<body>
+<div class="ibox-content" id="app" v-cloak>
+
+ <el-container>
+ <el-aside width="50%">
+ <el-row style="padding: 20px">
+ <p class="el-big-title">中奖信息</p>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col>
+ <el-form :model="formSelect">
+ <el-row>
+ <el-form-item label="奖品名称:" :label-width="formLabelWidth">
+ {{formSelect.jpmc}}
+ </el-form-item>
+ </el-row>
+ <el-row style="display:flex;">
+ <el-col>
+ <el-form-item label="奖品图片:" :label-width="formLabelWidth">
+ {{formSelect.jptp}}
+ </el-form-item>
+ </el-col>
+ <el-col>
+ <el-form-item label="数量:" :label-width="formLabelWidth">
+ {{formSelect.sl}}
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row style="display:flex;">
+ <el-col>
+ <el-form-item label="中奖人:" :label-width="formLabelWidth">
+ {{formSelect.zjr}}
+ </el-form-item>
+ </el-col>
+ <el-col>
+ <el-form-item label="中奖时间:" :label-width="formLabelWidth">
+ {{formSelect.zjsj}}
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row style="display:flex;">
+ <el-col>
+ <el-form-item label="活动名称:" :label-width="formLabelWidth">
+ {{formSelect.hdmc}}
+ </el-form-item>
+ </el-col>
+ <el-col>
+ <el-form-item label="活动编号:" :label-width="formLabelWidth">
+ {{formSelect.hdbh}}
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row style="display:flex;">
+ <el-col>
+ <el-form-item label="兑奖方式:" :label-width="formLabelWidth">
+ <span v-if="formSelect.djfs == 1">线下兑换</span>
+ <span v-if="formSelect.djfs == 2">物流配送</span>
+ <span v-if="formSelect.djfs == 3">客服兑换</span>
+ </el-form-item>
+ </el-col>
+ <el-col>
+ <el-form-item label="兑奖时间:" :label-width="formLabelWidth">
+ {{formSelect.djsj}}
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-col>
+ </el-row>
+
+ <el-row style="padding: 20px">
+ <p class="el-big-title">收货地址</p>
+ </el-row>
+ <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"></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"></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"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row style="padding: 20px">
+ <p class="el-big-title">发货信息</p>
+ </el-row>
+ <el-row style="padding: 10px">
+ <el-col class="col-sm-10" >
+ <el-form-item label="配送方式:" >
+ <span>物流配送</span>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row style="padding: 10px">
+ <el-col class="col-sm-10" >
+ <el-form-item label="快递公司:" prop="kdgs">
+ <el-input v-model="ruleForm.kdgs"></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="kddh">
+ <el-input v-model="ruleForm.kddh"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row style="padding: 10px">
+ <el-col class="col-sm-12 text-center">
+ <el-button type="primary" v-if="formSelect.state == 1" @click="dataSubmit('ruleForm')">发货</el-button>
+ <el-button type="danger" @click="cancelSubmit">关闭</el-button>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-aside>
+
+ <el-main width="50%">
+ <el-row>
+ <p class="el-big-title">物流跟踪</p>
+ </el-row>
+
+ <el-row style="padding: 10px">
+ <el-steps :active="active" simple>
+ <el-step :title="item.title" :icon="item.icon" v-for="item in stepData" :key ="item.index"></el-step>
+ </el-steps>
+ </el-row>
+
+ </el-main>
+
+ </el-container>
+</div>
+</body>
+<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/bootstrap-3.3.5/js/bootstrap.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
+
+<script>
+ var writeoffId = $.query.get("writeoffId");
+ var app = new Vue({
+ el: '#app',
+ data: {
+ formLabelWidth: '120px',
+ //基本信息
+ formSelect: {
+ jpmc: '',
+ jptp: '',
+ sl: '',
+ zjr: '',
+ zjsj: '',
+ hdmc: '',
+ hdbh: '',
+ djfs: '',
+ state: '',
+ djsj: ''
+ },
+ //物流信息
+ ruleForm : {
+ shr:'',
+ lxdh:'',
+ shdz:'',
+ kdgs:'',
+ kddh:'',
+ },
+ active: 0, // 控制步骤条及填写条目的显示
+ stepData: [{index: 0, title: '步骤1', icon: 'el-icon-edit'},
+ {index: 1, title: '步骤2', icon: 'el-icon-edit'},
+ {index: 2, title: '步骤3', icon: 'el-icon-edit'}],
+ rules : {
+ shr : [
+ { required: true, message: '请输入收货人', trigger: 'blur' }
+ ],
+ lxdh : [
+ { required: true, message: '请输入联系电话', trigger: 'blur' }
+ ],
+ shdz : [
+ { required: true, message: '请输入收货地址', trigger: 'blur' }
+ ],
+ kdgs : [
+ { required: true, message: '请选择快递公司', trigger: 'blur' }
+ ],
+ kddh : [
+ { required: true, message: '请输入快递单号', trigger: 'blur' }
+ ],
+ },
+ },
+ created: function () {
+ this.loadInfo();
+ },
+ mounted: function () {
+ },
+ methods: {
+ //加载分类
+ loadInfo() {
+ let _this = this;
+ //加载配置
+ AjaxProxy.requst({
+ app: _this,
+ data: {writeoffId},
+ url: basePath + '/admin/activitySignWriteoff/findSignWriteoff',
+ callback: function (data) {
+ _this.formSelect = data.mapInfo.signWriteoffVo;
+ }
+ });
+ },
+ //核销
+ dataSubmit : function(formName) {
+ const _this = this;
+ _this.$refs[formName].validate((valid) => {
+ if (!valid) {
+ return;
+ }
+ });
+ let resultData = {
+ writeoffId : writeoffId,
+ writeOffCode : _this.ruleForm.writeOffCode,
+ }
+ AjaxProxy.requst({
+ app: _this,
+ data: resultData,
+ url: basePath + '/admin/activitySignWriteoff/writeoffCodeSubmit',
+ callback: function (data) {
+ _this.$message({
+ message: data.info,
+ type: 'success',
+ });
+ }
+ });
+ },
+
+ cancelSubmit() {
+ this.closeFrame();
+ },
+ closeFrame() {
+ parent.layer.close(parent.layer.getFrameIndex(window.name));
+ },
+ }
+ })
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-receive.html b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-receive.html
index 31062c8..8c2f2e4 100644
--- a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-receive.html
+++ b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-receive.html
@@ -82,12 +82,30 @@
show-overflow-tooltip>
</el-table-column>
<el-table-column
- prop="cumulativeDay"
- label="连续签到天数"
+ label="状态"
show-overflow-tooltip>
+ <template slot-scope="scope">
+ <span v-if="scope.row.state == 1">待领取</span>
+ <span v-if="scope.row.state == 2">已领取</span>
+ </template>
</el-table-column>
<el-table-column
- label="奖励类型">
+ label="签到类型"
+ show-overflow-tooltip>
+ <template slot-scope="scope">
+ <span v-if="scope.row.awardRule == 1">日常奖励</span>
+ <span v-if="scope.row.awardRule == 2">累计签到奖励</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="连续签到天数"
+ show-overflow-tooltip>
+ <template slot-scope="scope">
+ <span v-if="scope.row.awardRule == 2">{{scope.row.cumulativeDay}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="奖品类型">
<template slot-scope="scope">
<span v-if="scope.row.awardType == 1">自定义礼品</span>
<span v-if="scope.row.awardType == 2">积分</span>
diff --git a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff-info.html b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff-info.html
new file mode 100644
index 0000000..26b52d1
--- /dev/null
+++ b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff-info.html
@@ -0,0 +1,198 @@
+<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
+<head>
+ <meta charset="utf-8">
+ <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+ <meta name="renderer" content="webkit|ie-comp|ie-stand">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport"
+ content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
+ <meta http-equiv="Cache-Control" content="no-siteapp"/>
+ <!-- 本框架基本脚本和样式 -->
+ <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
+ <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
+ <link rel="stylesheet" th:href="@{/plugin/bootstrap-3.3.5/css/bootstrap.min.css}">
+ <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
+</head>
+
+<body>
+<div class="ibox-content" id="app" v-cloak>
+ <el-row>
+ <p class="el-big-title">中奖信息</p>
+ </el-row>
+ <el-row style="margin-top: 20px;">
+ <el-col>
+ <el-form :model="formSelect">
+ <el-row>
+ <el-form-item label="奖品名称:" :label-width="formLabelWidth">
+ {{formSelect.jpmc}}
+ </el-form-item>
+ </el-row>
+ <el-row style="display:flex;">
+ <el-col :span="6">
+ <el-form-item label="奖品图片:" :label-width="formLabelWidth">
+ {{formSelect.jptp}}
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="数量:" :label-width="formLabelWidth">
+ {{formSelect.sl}}
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row style="display:flex;">
+ <el-col :span="6">
+ <el-form-item label="中奖人:" :label-width="formLabelWidth">
+ {{formSelect.zjr}}
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="中奖时间:" :label-width="formLabelWidth">
+ {{formSelect.zjsj}}
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row style="display:flex;">
+ <el-col :span="6">
+ <el-form-item label="活动名称:" :label-width="formLabelWidth">
+ {{formSelect.hdmc}}
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="活动编号:" :label-width="formLabelWidth">
+ {{formSelect.hdbh}}
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row style="display:flex;">
+ <el-col :span="6">
+ <el-form-item label="兑奖方式:" :label-width="formLabelWidth">
+ <span v-if="formSelect.djfs == 1">线下兑换</span>
+ <span v-if="formSelect.djfs == 2">物流配送</span>
+ <span v-if="formSelect.djfs == 3">客服兑换</span>
+ </el-form-item>
+ </el-col>
+ <el-col :span="6">
+ <el-form-item label="兑奖时间:" :label-width="formLabelWidth">
+ {{formSelect.djsj}}
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ </el-col>
+ </el-row>
+
+ <el-row style="margin-top: 20px;">
+ <el-col class="col-sm-2" >
+ <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" v-if="formSelect.state == 1">
+ <el-form-item label="兑奖码" prop="writeOffCode">
+ <el-input v-model="ruleForm.writeOffCode" placeholder="请输入兑奖码"></el-input>
+ </el-form-item>
+ </el-form>
+ </el-col>
+ <el-col class="col-sm-2 text-center">
+ <el-button type="primary" v-if="formSelect.state == 1" @click="dataSubmit('ruleForm')">核销</el-button>
+ <el-button type="danger" @click="cancelSubmit">关闭</el-button>
+ </el-col>
+ </el-row>
+</div>
+</body>
+<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/bootstrap-3.3.5/js/bootstrap.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
+
+<script>
+ var writeoffId = $.query.get("writeoffId");
+ var app = new Vue({
+ el: '#app',
+ data: {
+ formLabelWidth: '120px',
+ formSelect: {
+ jpmc: '',
+ jptp: '',
+ sl: '',
+ zjr: '',
+ zjsj: '',
+ hdmc: '',
+ hdbh: '',
+ djfs: '',
+ state: '',
+ djsj: ''
+ },
+ ruleForm : {
+ writeOffCode:'',
+ },
+ rules : {
+ writeOffCode : [
+ { required: true, message: '请输入兑奖码', trigger: 'blur' }
+ ],
+ },
+ },
+ created: function () {
+ this.loadInfo();
+ },
+ mounted: function () {
+ },
+ methods: {
+ //加载分类
+ loadInfo() {
+ let _this = this;
+ //加载配置
+ AjaxProxy.requst({
+ app: _this,
+ data: {writeoffId},
+ url: basePath + '/admin/activitySignWriteoff/findSignWriteoff',
+ callback: function (data) {
+ _this.formSelect = data.mapInfo.signWriteoffVo;
+ }
+ });
+ },
+ //核销
+ dataSubmit : function(formName) {
+ const _this = this;
+ let flag = false;
+ _this.$refs[formName].validate((valid) => {
+ if (!valid) {
+ flag = true;
+ return;
+ }
+ });
+ if (flag) {
+ return;
+ }
+ let resultData = {
+ writeoffId : writeoffId,
+ writeOffCode : _this.ruleForm.writeOffCode,
+ }
+ AjaxProxy.requst({
+ app: _this,
+ data: resultData,
+ url: basePath + '/admin/activitySignWriteoff/writeoffCodeSubmit',
+ callback: function (data) {
+ _this.$message({
+ message: data.info,
+ type: 'success',
+ });
+ parent.layer.close(parent.layer.getFrameIndex(window.name));
+ parent.location.reload();
+ }
+ });
+ },
+
+ cancelSubmit() {
+ this.closeFrame();
+ },
+ closeFrame() {
+ parent.layer.close(parent.layer.getFrameIndex(window.name));
+ parent.location.reload();
+ },
+ }
+ })
+</script>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html
new file mode 100644
index 0000000..806f771
--- /dev/null
+++ b/zq-erp/src/main/resources/templates/views/admin/activity/activity-sign-writeoff.html
@@ -0,0 +1,293 @@
+<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml">
+<head>
+ <meta charset="utf-8">
+ <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
+ <meta name="renderer" content="webkit|ie-comp|ie-stand">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+ <meta name="viewport"
+ content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
+ <meta http-equiv="Cache-Control" content="no-siteapp"/>
+ <!-- 本框架基本脚本和样式 -->
+ <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script>
+ <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}">
+ <link rel="stylesheet" th:href="@{/plugin/bootstrap-3.3.5/css/bootstrap.min.css}">
+ <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/>
+
+ <!-- 富文本编辑器 -->
+ <script type="text/javascript" charset="utf-8"
+ th:src="@{/plugin/beditor/ueditor.config.js}"></script>
+ <script type="text/javascript" charset="utf-8"
+ th:src="@{/plugin/beditor/ueditor.all.js}">
+ </script>
+ <script type="text/javascript" charset="utf-8"
+ th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script>
+ <style>
+ .panel-body{
+ overflow: hidden;
+ }
+ .paginationStyle{
+ background: #ffffff;
+ padding: 10px 10px;
+ margin: 0px 0px 10px 0px;
+ text-align: right;
+ }
+ </style>
+</head>
+
+<body>
+<div class="panel-body" id="app" v-cloak>
+ <el-row>
+ <el-row style="display:flex;">
+ <el-col>
+ <el-form ref="form" :model="form" inline >
+ <el-form-item label="中奖人名称" prop="yhmc" >
+ <el-input v-model="form.yhmc" placeholder="中奖人名称"></el-input>
+ </el-form-item>
+ <el-button type="primary" @click="searchFormSignReceive" >搜索</el-button>
+ <el-button @click="resetFormSignReceive('form')">重置</el-button>
+ </el-form>
+ </el-col>
+ </el-row>
+
+ <el-row class="table-style" >
+ <el-table ref="multipleTable"
+ :data="signWriteoffList.rows"
+ :height="height"
+ stripe:true
+ @sort-change="sortChange">
+ <el-table-column
+ prop="writeoffTime"
+ label="核销时间"
+ show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column
+ prop="writeoffUser"
+ label="核销员"
+ show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column
+ label="兑奖码"
+ show-overflow-tooltip>
+ <template slot-scope="scope">
+ <span v-if="scope.row.state == 3">{{scope.row.writeoffCode}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="actName"
+ label="活动名称"
+ show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column
+ prop="awardName"
+ label="奖品名称"
+ show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column
+ prop="winTime"
+ label="中奖时间"
+ show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column
+ label="状态">
+ <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>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="兑奖方式">
+ <template slot-scope="scope">
+ <span v-if="scope.row.awardWay == 1">线下兑换</span>
+ <span v-if="scope.row.awardWay == 2">物流配送</span>
+ <span v-if="scope.row.awardWay == 3">客服兑换</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="receiveName"
+ label="中奖者"
+ show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column
+ prop="receiveAddress"
+ label="收货地址"
+ show-overflow-tooltip>
+ </el-table-column>
+ <el-table-column label="操作" width="200">
+ <template slot-scope="scope">
+ <el-button type="primary" v-if="scope.row.awardWay == 2 && scope.row.state == 2" @click="jumpTologistics(scope.row)" size="mini">发货</el-button>
+ <el-button type="primary" v-if="scope.row.awardWay != 2 && scope.row.state == 1" @click="jumpToWriteOff(scope.row)" size="mini">核销</el-button>
+
+ <el-button type="primary" v-if="scope.row.awardWay == 2" @click="jumpTologistics(scope.row)" size="mini">查看</el-button>
+ <el-button type="primary" v-if="scope.row.awardWay != 2" @click="jumpToWriteOff(scope.row)" size="mini">查看</el-button>
+ </template>
+ </el-table-column>
+
+ </el-table>
+ </el-row>
+ <el-row class="paginationStyle" >
+ <el-pagination background
+ @size-change="changePageSignReceive"
+ @current-change="changeCurrentPageSignReceive"
+ :current-page="signWriteoffList.currentPage"
+ :page-sizes="[10, 20, 30, 50]"
+ :page-size="signWriteoffList.pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="signWriteoffList.total">
+ </el-pagination>
+ </el-row>
+ </el-row>
+</div>
+</body>
+<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/bootstrap-3.3.5/js/bootstrap.min.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
+<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script>
+<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/layer/layer.js}"></script>
+<script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script>
+
+<script>
+ //获取传输的活动对象
+ var actId = $.query.get("actId");
+
+ var app = new Vue({
+ el: '#app',
+ data: {
+ height:'calc(100vh - 200px)',
+ //--时间选择
+ pickerOptions: {
+ shortcuts: [{
+ text: '最近一周',
+ onClick(picker) {
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
+ picker.$emit('pick', [start, end]);
+ }
+ }, {
+ text: '最近一个月',
+ onClick(picker) {
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
+ picker.$emit('pick', [start, end]);
+ }
+ }, {
+ text: '最近三个月',
+ onClick(picker) {
+ const end = new Date();
+ const start = new Date();
+ start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
+ picker.$emit('pick', [start, end]);
+ }
+ }]
+ },
+ // 条件查询
+ form:{
+ yhmc:'',
+ order:'',
+ sort:''
+ },
+ //核销列表
+ signWriteoffList:{
+ rows:[],
+ total:0,
+ pageSize:10,
+ currentPage:1,
+ },
+ },
+ created: function () {
+ this.loadInfo();
+ },
+ mounted: function () {
+ },
+ methods: {
+ //加载分类
+ loadInfo() {
+ let _this = this;
+ _this.loadSignWriteoffList();
+ },
+ //跳转到核销
+ jumpToWriteOff(row){
+ layer.full(layer.open({
+ type: 2,
+ title: "核销",
+ maxmin: true,
+ area: [MUI.SIZE_L, '500px'],
+ content : [ basePath + '/admin/redirect/activity/activity-sign-writeoff-info?writeoffId=' + row.id]
+ }));
+ },
+ //跳转到发货
+ jumpTologistics(row){
+ layer.full(layer.open({
+ type: 2,
+ title: "核销",
+ maxmin: true,
+ area: [MUI.SIZE_L, '500px'],
+ content : [ basePath + '/admin/redirect/activity/activity-sign-logistics-info?writeoffId=' + row.id]
+ }));
+ },
+ //--列表
+ loadSignWriteoffList() {
+ let _this = this;
+ let data=_this.getRequestParamSignWriteoff();
+ data.pageSize=_this.signWriteoffList.pageSize;
+ data.pageNum=_this.signWriteoffList.currentPage;
+ AjaxProxy.requst({
+ app: _this,
+ data:data,
+ url: basePath + '/admin/activitySignWriteoff/findSignWriteoffList',
+ callback: function (data) {
+ _this.signWriteoffList.rows = data.rows;
+ _this.signWriteoffList.total = data.total;
+ }
+ });
+ },
+ //查询参数
+ getRequestParamSignWriteoff(){
+ let _this = this;
+ return {
+ zjzxm:_this.form.yhmc,
+ order:_this.form.order,
+ sort:_this.form.sort,
+ }
+ },
+ //查询
+ searchFormSignReceive:function(){
+ this.signWriteoffList.currentPage=1;
+ this.loadSignWriteoffList();
+ },
+ //重置
+ resetFormSignReceive(formName) {
+ this.$refs[formName].resetFields();
+ },
+ changePageSignReceive(val) {
+ this.signWriteoffList.pageSize = val;
+ this.loadSignWriteoffList();
+ },
+ changeCurrentPageSignReceive(val) {
+ this.signWriteoffList.currentPage = val;
+ this.loadSignWriteoffList();
+ },
+ //排序
+ sortChange:function (column){
+ if(column.order){
+ if(column.order.indexOf("desc")){
+ this.form.order="desc";
+ }else{
+ this.form.order="asc";
+ }
+ this.form.sort=column.prop;
+ this.loadInfo();
+ }
+ },
+ }
+ })
+</script>
+
+</body>
+</html>
\ No newline at end of file
--
Gitblit v1.9.1