diff --git a/mallinkAdmin/src/main/resources/db/migration/V201906051702__ALTER_CAMPAIGN.sql b/mallinkAdmin/src/main/resources/db/migration/V201906051702__ALTER_CAMPAIGN.sql new file mode 100644 index 000000000..ed9eeabdc --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201906051702__ALTER_CAMPAIGN.sql @@ -0,0 +1,7 @@ +ALTER TABLE `wx_campaign` +ADD COLUMN `produce_type` SMALLINT(2) NULL DEFAULT NULL COMMENT '产品类型,类型3适用(1-券,2-报名)', +ADD COLUMN `produce_id` BIGINT(20) NULL DEFAULT NULL COMMENT '产品ID,类型3适用', +ADD COLUMN `page_path` VARCHAR(50) NULL DEFAULT NULL COMMENT '小程序跳转路径,类型3适用', +ADD COLUMN `page_scene` VARCHAR(50) NULL DEFAULT NULL COMMENT '小程序跳转二维码,类型3适用', +CHANGE COLUMN `type` `type` SMALLINT(11) NULL DEFAULT NULL COMMENT '类型 1-固定格式,2-自由图文,3-小程序路径' ; + diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCampaign.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCampaign.java index bddc6bbe0..e630aaa1a 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCampaign.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCampaign.java @@ -1,6 +1,7 @@ package com.iformall.domain.po; import com.iformall.domain.vo.WxCouponChannelVo; +import com.iformall.enums.EnumCampaignType; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @@ -57,7 +58,7 @@ public class WxCampaign extends BaseEntity { private Date validEndDate; @io.swagger.annotations.ApiModelProperty(value="图文详情",name="imgDetail") private String imgDetail; - @io.swagger.annotations.ApiModelProperty(value="类型:0:促销 1:宣传页",name="type") + @io.swagger.annotations.ApiModelProperty(value="类型:1-固定格式,2-自由图文,3-小程序路径",name="type") private Integer type; @io.swagger.annotations.ApiModelProperty(value="优惠券ids",name="couponIds") private String couponIds; @@ -71,7 +72,7 @@ public class WxCampaign extends BaseEntity { private Date createTime; @io.swagger.annotations.ApiModelProperty(value="更新时间",name="updateTime") private Date updateTime; - @io.swagger.annotations.ApiModelProperty(value="富文本",name="html") + @io.swagger.annotations.ApiModelProperty(value="富文本,类型2适用",name="html") private String html; @io.swagger.annotations.ApiModelProperty(value = "报名人数", name = "personLimit") @@ -91,6 +92,15 @@ public class WxCampaign extends BaseEntity { @io.swagger.annotations.ApiModelProperty(value = "活动类型1直接投放2限时投放", name = "activityType") private Integer activityType; + @io.swagger.annotations.ApiModelProperty(value = "产品类型,类型3适用(1-券,2-报名)", name = "produceType") + private Integer produceType; + @io.swagger.annotations.ApiModelProperty(value = "产品ID,类型3适用", name = "produceId") + private Long produceId; + @io.swagger.annotations.ApiModelProperty(value = "小程序跳转路径,类型3适用", name = "pagePath") + private String pagePath; + @io.swagger.annotations.ApiModelProperty(value = "小程序跳转二维码,类型3适用", name = "pageScene") + private String pageScene; + @Transient @io.swagger.annotations.ApiModelProperty(value = "开始时间", name = "starttime") protected Date starttime; @@ -100,22 +110,28 @@ public class WxCampaign extends BaseEntity { protected Date endtime; @Transient - @io.swagger.annotations.ApiModelProperty(value="小程序路径",name="weappPath") + @io.swagger.annotations.ApiModelProperty(value="营销物料-小程序路径",name="weappPath") protected String weappPath; @Transient - @io.swagger.annotations.ApiModelProperty(value="小程序二维码Scene",name="weappScene") + @io.swagger.annotations.ApiModelProperty(value="营销物料-小程序二维码Scene",name="weappScene") protected String weappScene; public String getWeappPath() { if(type == null) return "pages/index/index"; + if(type.equals(EnumCampaignType.PAGEPATH.getCode())) { + return pagePath; + } return "pages/index/index?type=bd&bt="+type+"&id="+id; } public String getWeappScene() { if(type == null) return ""; + if(type.equals(EnumCampaignType.PAGEPATH.getCode())) { + return pageScene; + } return "t:bd:" + type + ":" +id; } diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCampaignType.java b/mallinkService/src/main/java/com/iformall/enums/EnumCampaignType.java index c2fb035cb..9509194f6 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCampaignType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCampaignType.java @@ -7,6 +7,7 @@ public enum EnumCampaignType { STABLE(1, "固定格式"), FREE(2, "自由图文"), + PAGEPATH(3, "小程序路径"), ; public static EnumCampaignType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/service/WxCampaignService.java b/mallinkService/src/main/java/com/iformall/service/WxCampaignService.java index 691d0138f..bc50f1794 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxCampaignService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxCampaignService.java @@ -10,43 +10,53 @@ public interface WxCampaignService { /** * 根据实体查询分页列表 + * * @param record * @param pageIndex * @param pageSize * @return */ - PageInfo listAsPage(WxCampaign record, Integer pageIndex, Integer pageSize); + PageInfo listAsPage(WxCampaign record, Integer pageIndex, Integer pageSize); /** * 根据实体查询分页列表 + * * @param record * @param pageIndex * @param pageSize * @return */ PageInfo clistAsPage(WxCampaign record, Integer pageIndex, Integer pageSize); - - /** + + /** * 根据Id获得实体 * * @param id * @return */ WxCampaign getById(Long id); - - /** + + /** * 保存或更新实体 * - * @param record - */ + * @param record + */ ResultData saveOrUpdate(WxCampaign record); + /** + * 基于小程序路径发布 + * @param wxCampaign + * @return + */ + ResultData addForPath(WxCampaign wxCampaign); + /** * 根据Id删除实体 * * @param id */ void deleteById(Long id); + int getMaxSortNum(String tenantId); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCampaignServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCampaignServiceImpl.java index ff96353fa..9dd29b408 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCampaignServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCampaignServiceImpl.java @@ -89,7 +89,7 @@ public class WxCampaignServiceImpl implements WxCampaignService { if (StringUtils.isEmpty(wxCampaign.getDetail())) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "活动说明不能为空"); } - } else { + } else if(wxCampaign.getType().equals(EnumCampaignType.FREE.getCode())){ if (StringUtils.isEmpty(wxCampaign.getHtml())) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "图文不能为空"); } @@ -97,6 +97,43 @@ public class WxCampaignServiceImpl implements WxCampaignService { if (length >= 0xFFFFFF) { //Mysql MiddleText length limited return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "图文内容过大无法保存"); } + } else { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); + } + wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); + if (wxCampaign.getId() == null) { + final IdWorker idWorker = IdWorker.get(); + wxCampaign.setId(idWorker.nextId()); + wxCampaignMapper.insertSelective(wxCampaign); + } else { + wxCampaignMapper.updateByPrimaryKeySelective(wxCampaign); + } + //type 为固定格式才会有券的信息 才会有投放的问题 + couponInject(wxCampaign); + return new ResultData(Result.SUCCESS,"操作成功"); + } + + @Transactional(propagation = Propagation.REQUIRED, rollbackFor = {Exception.class}) + @Override + public ResultData addForPath(WxCampaign wxCampaign) { + if(wxCampaign.getType().equals(EnumCampaignType.PAGEPATH.getCode())) { + if (StringUtils.isBlank(wxCampaign.getCoverImg())) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "封面图不能为空"); + } + if (wxCampaign.getProduceType() == null) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "produceType不能为空"); + } + if (wxCampaign.getProduceId() == null) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "produceId不能为空"); + } + if (StringUtils.isBlank(wxCampaign.getPagePath())) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "pagePath不能为空"); + } + if (StringUtils.isBlank(wxCampaign.getPageScene())) { + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "pageScene不能为空"); + } + } else { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR); } wxCampaign.setStatus(EnumCampaignStatus.STATUS_THROW_IN.getCode()); if (wxCampaign.getId() == null) {