Commit 6b699caa by zhangdongwei-intern

feat-1002382: 时间管理任务新增奖励配置

parent d3f90ff9
......@@ -21,4 +21,8 @@ public class ReplyMessageBaseDto implements Serializable {
private String sendHour;
/**
* 0-不可配置,1-已配置,2-未配置
*/
private Integer configState;
}
package com.pcloud.book.timecontrol.biz;
import com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto;
import com.pcloud.book.timecontrol.vo.CreatePrize4TaskItemVO;
import com.pcloud.book.timecontrol.vo.QueryPrizeVO;
import com.pcloud.book.timecontrol.vo.SaveTaskPrizeVO;
import com.pcloud.book.timecontrol.vo.request.SavePrize4TaskItemVO;
import java.util.List;
public interface TaskPrizeBiz {
Integer saveTaskPrize(SaveTaskPrizeVO saveTaskPrizeVO);
Integer createPrize4TaskItem(CreatePrize4TaskItemVO createPrize4TaskItemVO);
QueryPrizeVO getPrize4Task(Integer taskId);
/**
* 根据taskItem获取单次任务奖励
* @param taskItemId
* @return
*/
QueryPrizeVO getPrize4TaskItem(Integer taskItemId);
List<ReplyMessageBaseDto> listTaskItemPrize(Integer taskId);
/**
* 修改单次任务奖励
* @param vo
*/
void savePrize4TaskItem(SavePrize4TaskItemVO vo);
String downloadCertificate(Integer id, Integer type);
}
package com.pcloud.book.timecontrol.entity;
import lombok.Data;
import java.util.Date;
@Data
public class TimeControlPrizeItem {
private Integer id;
private Integer taskId;
private Integer taskItemId;
private Integer prizeId;
private Integer prizeType;
private String couponUrl;
private String couponTitle;
private String content;
private String picUrl;
private Long serveId;
private String serveType;
private String linkUrl;
private String description;
private String certificateTitle;
private String certificateUser;
private String certificateBaseUrl;
private Date createTime;
}
package com.pcloud.book.timecontrol.entity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class TimeControlTaskPrize {
private Integer id;
private Integer taskId;
private Integer taskItemId;
private Integer type;
private Integer totalPrizeNum;
private Integer hasCoupon;
private Integer hasApp;
private Integer hasCertificate;
private Date createTime;
private Date updateTime;
}
......@@ -34,4 +34,6 @@ public class TimeControlTaskSend implements Serializable {
private Integer completeState;
private String sendHour;
private Integer working;
}
package com.pcloud.book.timecontrol.enums;
public enum TaskPrizeItemTypeEnum {
COUPON(1,"优惠券"),
APP(2,"APP"),
CERTIFICATE(3,"奖状");
public final Integer key;
public final String desc;
TaskPrizeItemTypeEnum(Integer key,String desc){
this.key = key;
this.desc = desc;
}
}
package com.pcloud.book.timecontrol.enums;
public enum TaskPrizeTypeEnum {
GRAND_TOTAL(0,"累计奖励"),
SINGLE(1,"单次奖励");
public final Integer key;
public final String desc;
TaskPrizeTypeEnum(Integer key,String desc){
this.key = key;
this.desc = desc;
}
}
package com.pcloud.book.timecontrol.facade.impl;
import com.pcloud.book.base.exception.BookBizException;
import com.pcloud.book.timecontrol.biz.TaskPrizeBiz;
import com.pcloud.book.timecontrol.vo.SaveTaskPrizeVO;
import com.pcloud.book.timecontrol.vo.request.SavePrize4TaskItemVO;
import com.pcloud.common.dto.ResponseDto;
import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.permission.PermissionException;
import com.pcloud.common.utils.SessionUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
import java.util.Optional;
@RequestMapping("taskPrize")
@RestController("timeControlPrizeFacade")
public class TimeControlPrizeFacadeImpl {
@Autowired
private TaskPrizeBiz taskPrizeBiz;
@ApiOperation(value = "保存累计奖励")
@PostMapping("saveTaskPrize")
ResponseDto<?> saveTaskPrize(@RequestHeader String token, @RequestBody SaveTaskPrizeVO saveTaskPrizeVO) throws PermissionException {
Map<String, Object> token4Redis = SessionUtil.getToken4Redis(token);
return new ResponseDto<>(taskPrizeBiz.saveTaskPrize(saveTaskPrizeVO));
}
@ApiOperation(value = "获取任务累计奖励")
@GetMapping("getPrize4Task")
ResponseDto<?> getPrize4Task(@RequestHeader String token, @RequestParam("taskId") Integer taskId) throws PermissionException {
Map<String, Object> token4Redis = SessionUtil.getToken4Redis(token);
return new ResponseDto<>(taskPrizeBiz.getPrize4Task(taskId));
}
@ApiOperation(value = "保存单次任务奖励")
@PostMapping(value = "savePrize4TaskItem")
ResponseDto<?> savePrize4TaskItem(@RequestHeader String token, @Validated @RequestBody SavePrize4TaskItemVO vo) throws PermissionException, BizException{
Optional.ofNullable(vo).orElseThrow(() -> new BookBizException(BookBizException.ERROR, "参数不能为空"));
SessionUtil.getVlaue(token, SessionUtil.PARTY_ID);
taskPrizeBiz.savePrize4TaskItem(vo);
return new ResponseDto<>();
}
@ApiOperation(value = "获取单次任务奖励")
@GetMapping("getPrize4TaskItem")
ResponseDto<?> getPrize4TaskItem(@RequestHeader String token, @RequestParam Integer taskItemId) throws PermissionException {
return new ResponseDto<>(taskPrizeBiz.getPrize4TaskItem(taskItemId));
}
@ApiOperation(value = "获取奖励配置目录")
@GetMapping("listTaskItemPrize")
ResponseDto<?> listTaskItemPrize(@RequestHeader String token, @RequestParam Integer taskId) throws PermissionException {
return new ResponseDto<>(taskPrizeBiz.listTaskItemPrize(taskId));
}
@ApiOperation(value = "预览奖状")
@GetMapping("downloadCertificate")
ResponseDto<?> downloadCertificate(@RequestHeader String token, @RequestParam Integer id, @RequestParam Integer type) {
String url = taskPrizeBiz.downloadCertificate(id, type);
return new ResponseDto<>(url);
}
}
package com.pcloud.book.timecontrol.mapper;
import com.pcloud.book.timecontrol.entity.TimeControlPrizeItem;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Component("taskPrizeItemMapper")
public interface TaskPrizeItemMapper {
int insert(TimeControlPrizeItem model);
TimeControlPrizeItem selectByPrimaryKey(Integer id);
/**
* 根据prizeId和类型查询奖励详情
* @param prizeId
* @param prizeType
* @return
*/
TimeControlPrizeItem getByPrizeId(@Param("prizeId") Integer prizeId, @Param("prizeType") Integer prizeType);
/**
* 批量新增奖励详情
* @param prizeItemList
*/
void batchInsert(@Param("prizeItemList") List<TimeControlPrizeItem> prizeItemList);
/**
* 根据prizeId删除奖励
* @param prizeId
*/
void deleteByPrizeId(Integer prizeId);
/**
* 根据奖励id获取奖励的item列表
* @param prizeId
* @return
*/
List<TimeControlPrizeItem> listByPrizeId(Integer prizeId);
/**
* 根据taskItemId删除奖励
* @param taskItemId
* @param deleteTypes
*/
void deleteByTaskItemId(@Param("taskItemId") Integer taskItemId, @Param("deleteTypes") List<Integer> deleteTypes);
}
\ No newline at end of file
package com.pcloud.book.timecontrol.mapper;
import com.pcloud.book.timecontrol.entity.TimeControlTaskPrize;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Component("taskPrizeMapper")
public interface TaskPrizeMapper {
/**
* 新增
* @param model
* @return
*/
int insert(TimeControlTaskPrize model);
TimeControlTaskPrize selectByPrimaryKey(Integer id);
/**
* 根据taskId和类型查询奖励
* @param taskId
* @param type
* @return
*/
TimeControlTaskPrize getByTaskId(@Param("taskId") Integer taskId, @Param("type") Integer type);
int updateByPrimaryKeySelective(TimeControlTaskPrize model);
/**
* 根据任务和类型删除
* @param taskId
* @param type
*/
void deleteByTaskId(@Param("taskId") Integer taskId, @Param("type") Integer type);
/**
* 根据taskItemId删除奖励
* @param taskItemId
*/
void deleteByTaskItemId(Integer taskItemId);
/**
* 根据taskItemId获取单次任务奖励
* @param taskItemId
* @return
*/
TimeControlTaskPrize selectByTaskItemId(Integer taskItemId);
/**
*获取配置奖励的单次任务
*/
List<Integer> getConfigItemId(@Param("taskItemIds") List<Integer> taskItemIds);
/**
* 获取所有开关的关闭的单次任务
* @param taskItemIds
* @return
*/
List<Integer> getAllCloseItemId(@Param("taskItemIds") List<Integer> taskItemIds);
TimeControlTaskPrize getByTaskItemId(Integer taskItemId);
TimeControlTaskPrize getByType(@Param("id") Integer id, @Param("type") Integer type);
}
\ No newline at end of file
......@@ -61,4 +61,6 @@ public interface TimeControlTaskSendMapper {
List<SubscribeTaskUserDTO> getTaskNoCompletedCount(@Param("wxIds") List<String> wxIds, @Param("taskId") Integer taskId);
Integer getNoCompletedCount(@Param("subscribeId") Integer subscribeId);
Integer getCompletedCount(Integer subscribeId);
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CouponVO implements Serializable {
private String couponUrl;
private String couponTitle;
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CreateAppVO implements Serializable {
private String content;
private String picUrl;
private Long serveId;
private String serveType;
private String linkUrl;
private String description;
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CreateCertificateVO implements Serializable {
private String certificateTitle;
private String certificateUser;
private String certificateBaseUrl;
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Data
public class CreatePrize4TaskItemVO implements Serializable {
private Integer taskItemId;
@NotNull
private Integer hasCoupon;
private CouponVO couponVO;
@NotNull
private Integer hasApp;
private CreateAppVO createAppVO;
@NotNull
private Integer hasCertificate;
private CreateCertificateVO createCertificateVO;
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class CreatePrize4TaskVO implements Serializable {
private Integer prizeId;
private Integer taskId;
private Integer totalPrizeNum;
private Integer hasCoupon;
private CouponVO couponVO;
private Integer hasApp;
private CreateAppVO createAppVO;
private Integer hasCertificate;
private CreateCertificateVO createCertificateVO;
}
package com.pcloud.book.timecontrol.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class QueryAppVO implements Serializable {
private Integer id;
private String content;
private String picUrl;
private Long serveId;
private String serveType;
private String linkUrl;
private String description;
@ApiModelProperty("应用或作品图片")
private String servePic;
@ApiModelProperty("应用或作品名称")
private String serveName;
@ApiModelProperty("应用或作品类型名称")
private String serveTypeName;
@ApiModelProperty("应用或作品类型编码")
private String serveTypeCode;
}
package com.pcloud.book.timecontrol.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.io.Serializable;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class QueryCertificateVO implements Serializable {
private Integer id;
private String certificateTitle;
private String certificateUser;
private String certificateBaseUrl;
}
package com.pcloud.book.timecontrol.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.io.Serializable;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class QueryCouponVO implements Serializable {
private Integer id;
private String couponUrl;
private String couponTitle;
}
package com.pcloud.book.timecontrol.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;
import java.io.Serializable;
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class QueryPrizeVO implements Serializable {
private Integer id;
private Integer taskId;
private Integer taskItemId;
private Integer totalPrizeNum;
private Integer hasCoupon;
private QueryCouponVO queryCouponVO;
private Integer hasApp;
private QueryAppVO queryAppVO;
private Integer hasCertificate;
private QueryCertificateVO queryCertificateVO;
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class SaveAppVO implements Serializable {
private String content;
private String picUrl;
private Long serveId;
private String serveType;
private String linkUrl;
private String description;
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class SaveCertificateVO implements Serializable {
private String certificateTitle;
private String certificateUser;
private String certificateBaseUrl;
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class SaveCouponVO implements Serializable {
private String couponUrl;
private String couponTitle;
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class SaveTaskPrizeVO implements Serializable {
private Integer id;
private Integer taskId;
private Integer totalPrizeNum;
private Integer hasCoupon;
private SaveCouponVO couponVO;
private Integer hasApp;
private SaveAppVO appVO;
private Integer hasCertificate;
private SaveCertificateVO certificateVO;
}
package com.pcloud.book.timecontrol.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class UpdatePrize4TaskItemVO implements Serializable {
private Integer prizeId;
private Integer hasCoupon;
private Integer hasApp;
private Integer hasCertificate;
}
package com.pcloud.book.timecontrol.vo.request;
import com.pcloud.book.timecontrol.entity.TimeControlPrizeItem;
import com.pcloud.book.timecontrol.enums.TaskPrizeItemTypeEnum;
import com.pcloud.common.utils.bean.BeanUtils;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
public class AppRequestVO {
@NotNull(message = "课程标题不能为空")
private String content;
@NotNull(message = "课程封面图不能为空")
private String picUrl;
@NotNull(message = "课程应用id不能为空")
private Long serveId;
@NotNull(message = "课程类型不能为空")
private String serveType;
/**
* 课程链接
*/
private String linkUrl;
/**
* 课程简介
*/
private String description;
public static TimeControlPrizeItem valueToPrizeItem(SavePrize4TaskItemVO savePrize4TaskItemVO){
TimeControlPrizeItem prizeItem = new TimeControlPrizeItem();
AppRequestVO vo = savePrize4TaskItemVO.getApp();
BeanUtils.copyProperties(vo, prizeItem);
prizeItem.setTaskId(savePrize4TaskItemVO.getTaskId());
prizeItem.setTaskItemId(savePrize4TaskItemVO.getTaskItemId());
prizeItem.setPrizeType(TaskPrizeItemTypeEnum.APP.key);
prizeItem.setCreateTime(new Date());
return prizeItem;
}
}
package com.pcloud.book.timecontrol.vo.request;
import com.pcloud.book.timecontrol.entity.TimeControlPrizeItem;
import com.pcloud.book.timecontrol.enums.TaskPrizeItemTypeEnum;
import com.pcloud.common.utils.BeanUtils;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
public class CertificateRequestVO {
@NotNull(message = "证书文案不能为空")
private String certificateTitle;
@NotNull(message = "证书落款不能为空")
private String certificateUser;
@NotNull(message = "证书图片链接不能为空")
private String certificateBaseUrl;
public static TimeControlPrizeItem valueToPrizeItem(SavePrize4TaskItemVO savePrize4TaskItemVO){
TimeControlPrizeItem prizeItem = new TimeControlPrizeItem();
CertificateRequestVO vo = savePrize4TaskItemVO.getCertificate();
BeanUtils.copyProperties(vo, prizeItem);
prizeItem.setTaskId(savePrize4TaskItemVO.getTaskId());
prizeItem.setTaskItemId(savePrize4TaskItemVO.getTaskItemId());
prizeItem.setPrizeType(TaskPrizeItemTypeEnum.CERTIFICATE.key);
prizeItem.setCreateTime(new Date());
return prizeItem;
}
}
package com.pcloud.book.timecontrol.vo.request;
import com.pcloud.book.timecontrol.entity.TimeControlPrizeItem;
import com.pcloud.book.timecontrol.enums.TaskPrizeItemTypeEnum;
import com.pcloud.common.utils.BeanUtils;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
public class PrizeCouponRequestVO {
@NotNull(message = "优惠券链接不能为空")
private String couponUrl;
@NotNull(message = "优惠券标题不能为空")
private String couponTitle;
public static TimeControlPrizeItem valueToPrizeItem(SavePrize4TaskItemVO savePrize4TaskItemVO){
TimeControlPrizeItem prizeItem = new TimeControlPrizeItem();
PrizeCouponRequestVO vo = savePrize4TaskItemVO.getCoupon();
BeanUtils.copyProperties(vo, prizeItem);
prizeItem.setTaskId(savePrize4TaskItemVO.getTaskId());
prizeItem.setTaskItemId(savePrize4TaskItemVO.getTaskItemId());
prizeItem.setPrizeType(TaskPrizeItemTypeEnum.COUPON.key);
prizeItem.setCreateTime(new Date());
return prizeItem;
}
}
package com.pcloud.book.timecontrol.vo.request;
import com.pcloud.book.timecontrol.entity.TimeControlTaskPrize;
import com.pcloud.book.timecontrol.enums.TaskPrizeTypeEnum;
import com.pcloud.common.utils.BeanUtils;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
public class SavePrize4TaskItemVO{
@NotNull(message = "taskId不能为空")
private Integer taskId;
@NotNull(message = "taskItemId不能为空")
private Integer taskItemId;
@NotNull(message = "未设置是否开启优惠券奖励")
private Integer hasCoupon;
@NotNull(message = "未设置是否开启课程奖励")
private Integer hasApp;
@NotNull(message = "未设置是否开启证书奖励")
private Integer hasCertificate;
@Valid
private PrizeCouponRequestVO coupon;
@Valid
private AppRequestVO app;
@Valid
private CertificateRequestVO certificate;
public static TimeControlTaskPrize valueToTaskPrize(SavePrize4TaskItemVO vo){
TimeControlTaskPrize taskPrize = new TimeControlTaskPrize();
BeanUtils.copyProperties(vo, taskPrize);
taskPrize.setType(TaskPrizeTypeEnum.SINGLE.key);
taskPrize.setCreateTime(new Date());
taskPrize.setUpdateTime(new Date());
return taskPrize;
}
}
<?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.pcloud.book.timecontrol.mapper.TaskPrizeMapper" >
<resultMap id="BaseResultMap" type="com.pcloud.book.timecontrol.entity.TimeControlTaskPrize" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="task_id" property="taskId" jdbcType="INTEGER" />
<result column="task_item_id" property="taskItemId" jdbcType="INTEGER" />
<result column="type" property="type" jdbcType="INTEGER" />
<result column="total_prize_num" property="totalPrizeNum" jdbcType="INTEGER" />
<result column="has_coupon" property="hasCoupon" jdbcType="INTEGER" />
<result column="has_app" property="hasApp" jdbcType="INTEGER" />
<result column="has_certificate" property="hasCertificate" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
</resultMap>
<sql id="Base_Column_List" >
id, task_id, task_item_id, type, total_prize_num, has_coupon, has_app, has_certificate, create_time, update_time
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from time_control_task_prize
where id = #{id,jdbcType=INTEGER}
</select>
<select id="getByTaskId" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from time_control_task_prize
where task_id = #{taskId,jdbcType=INTEGER} AND type = #{type,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from time_control_task_prize
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByTaskId">
delete from time_control_task_prize
where task_id = #{taskId,jdbcType=INTEGER} AND type = #{type,jdbcType=INTEGER}
</delete>
<delete id="deleteByTaskItemId" parameterType="int">
delete from time_control_task_prize
where task_item_id = #{taskItemId}
</delete>
<insert id="insert" parameterType="com.pcloud.book.timecontrol.entity.TimeControlTaskPrize" useGeneratedKeys="true" keyProperty="id" >
insert into time_control_task_prize (task_id, task_item_id,
type, total_prize_num, has_coupon,
has_app, has_certificate, create_time,update_time)
values (#{taskId,jdbcType=INTEGER}, #{taskItemId,jdbcType=INTEGER},
#{type,jdbcType=INTEGER}, #{totalPrizeNum,jdbcType=INTEGER}, #{hasCoupon,jdbcType=INTEGER},
#{hasApp,jdbcType=INTEGER}, #{hasCertificate,jdbcType=INTEGER}, NOW(),NOW())
</insert>
<insert id="insertSelective" parameterType="com.pcloud.book.timecontrol.entity.TimeControlTaskPrize" >
insert into time_control_task_prize
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="taskId != null" >
task_id,
</if>
<if test="taskItemId != null" >
task_item_id,
</if>
<if test="type != null" >
type,
</if>
<if test="totalPrizeNum != null" >
total_prize_num,
</if>
<if test="hasCoupon != null" >
has_coupon,
</if>
<if test="hasApp != null" >
has_app,
</if>
<if test="hasCertificate != null" >
has_certificate,
</if>
<if test="createTime != null" >
create_time,
</if>
<if test="updateTime != null" >
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="taskId != null" >
#{taskId,jdbcType=INTEGER},
</if>
<if test="taskItemId != null" >
#{taskItemId,jdbcType=INTEGER},
</if>
<if test="type != null" >
#{type,jdbcType=INTEGER},
</if>
<if test="totalPrizeNum != null" >
#{totalPrizeNum,jdbcType=INTEGER},
</if>
<if test="hasCoupon != null" >
#{hasCoupon,jdbcType=INTEGER},
</if>
<if test="hasApp != null" >
#{hasApp,jdbcType=INTEGER},
</if>
<if test="hasCertificate != null" >
#{hasCertificate,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.pcloud.book.timecontrol.entity.TimeControlTaskPrize" >
update time_control_task_prize
<set >
<if test="taskId != null" >
task_id = #{taskId,jdbcType=INTEGER},
</if>
<if test="taskItemId != null" >
task_item_id = #{taskItemId,jdbcType=INTEGER},
</if>
<if test="type != null" >
type = #{type,jdbcType=INTEGER},
</if>
<if test="totalPrizeNum != null" >
total_prize_num = #{totalPrizeNum,jdbcType=INTEGER},
</if>
<if test="hasCoupon != null" >
has_coupon = #{hasCoupon,jdbcType=INTEGER},
</if>
<if test="hasApp != null" >
has_app = #{hasApp,jdbcType=INTEGER},
</if>
<if test="hasCertificate != null" >
has_certificate = #{hasCertificate,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null" >
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.pcloud.book.timecontrol.entity.TimeControlTaskPrize" >
update time_control_task_prize
set task_id = #{taskId,jdbcType=INTEGER},
task_item_id = #{taskItemId,jdbcType=INTEGER},
type = #{type,jdbcType=INTEGER},
total_prize_num = #{totalPrizeNum,jdbcType=INTEGER},
has_coupon = #{hasCoupon,jdbcType=INTEGER},
has_app = #{hasApp,jdbcType=INTEGER},
has_certificate = #{hasCertificate,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
<update id="update"></update>
<select id="selectByTaskItemId" parameterType="int" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from time_control_task_prize where task_item_id = #{taskItemId}
</select>
<select id="getConfigItemId" resultType="Integer">
select task_item_id
from time_control_task_prize
where 1=1
<if test="taskItemIds!=null and taskItemIds.size()>0">
and task_item_id in
<foreach collection="taskItemIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
</select>
<select id="getAllCloseItemId" resultType="Integer">
select DISTINCT task_item_id
from time_control_task_prize
where 1=1
<if test="taskItemIds!=null and taskItemIds.size()>0">
and task_item_id in
<foreach collection="taskItemIds" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</if>
and has_coupon=0 and has_app=0 and has_certificate=0
</select>
<select id="getByTaskItemId" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from time_control_task_prize
where task_item_id = #{taskItemId} AND type = 1
</select>
<select id="getByType" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from time_control_task_prize
where type = #{type}
<if test="type == 0">
and task_id = #{id}
</if>
<if test="type == 1">
and task_item_id = #{id}
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -57,7 +57,8 @@
</select>
<select id="listTaskItemDay" resultType="com.pcloud.book.timecontrol.dto.ReplyMessageBaseDto">
select id, task_id taskId, start_day startDay, send_hour sendHour
select id, task_id taskId, start_day startDay, send_hour sendHour,
if(finish_confirm=0,0,2) configState
from time_control_task_item where task_id = #{taskId}
order by startDay asc, send_hour asc
</select>
......
......@@ -11,10 +11,12 @@
<result column="send_state" property="sendState" jdbcType="INTEGER" />
<result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
<result column="send_day" property="sendDay" jdbcType="TIMESTAMP" />
<result column="working" property="working" jdbcType="INTEGER" />
<result column="complete_state" property="completeState" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List">
id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time
id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, create_time, complete_state
</sql>
<insert id="batchInsert" parameterType="com.pcloud.book.timecontrol.entity.TimeControlTaskSend" useGeneratedKeys="true" keyProperty="id">
......@@ -79,7 +81,7 @@
</update>
<select id="getById" resultMap="BaseResultMap">
select id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state
select id, wx_user_id, book_id, task_id, task_item_id, subscribe_id, send_day, send_state, working, complete_state
from time_control_task_send
where id = #{taskSendId}
</select>
......@@ -229,4 +231,11 @@
WHERE subscribe_id =#{subscribeId}
and complete_state !=1 AND send_state !=2
</select>
<select id="getCompletedCount" resultType="java.lang.Integer">
select ifnull(count(1),0)
from time_control_task_send
WHERE subscribe_id =#{subscribeId}
and working =1 and complete_state = 1
</select>
</mapper>
\ No newline at end of file
......@@ -23,12 +23,12 @@
</update>
<update id="unSubscribeTask">
UPDATE time_control_task_subscribe set state = #{state}, update_time = now()
UPDATE time_control_task_subscribe set state = #{state}, update_time = now(), working = 0
where id = #{id}
</update>
<update id="unSubscribeTaskByTaskId">
UPDATE time_control_task_subscribe set state = 0, update_time = now()
UPDATE time_control_task_subscribe set state = 0, update_time = now(), working = 0
where task_id = #{taskId}
</update>
......@@ -50,7 +50,7 @@
</select>
<select id="getById" resultMap="BaseResultMap">
select wx_user_id, book_id, task_id, state, create_time, update_time, robot_wx_id
select wx_user_id, book_id, task_id, state, create_time, update_time, robot_wx_id, id
from time_control_task_subscribe WHERE id = #{subscribeId}
</select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment