diff --git a/.gitignore b/.gitignore index 887548d..f2178fb 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ /ic.iml target .idea -*.iml \ No newline at end of file +*.iml +*.log diff --git a/src/main/java/com/kiisoo/ic/activity/bean/ActivityInstanceVO.java b/src/main/java/com/kiisoo/ic/activity/bean/ActivityInstanceVO.java deleted file mode 100644 index f99cdbb..0000000 --- a/src/main/java/com/kiisoo/ic/activity/bean/ActivityInstanceVO.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.kiisoo.ic.activity.bean; - -import com.kiisoo.ic.activity.entity.PmnActivityPromotionParam; -import com.kiisoo.ic.generalize.entity.PrivilageOrganizational; -import com.kiisoo.ic.store.entity.PoiStore; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.Date; -import java.util.List; - -@Data -public class ActivityInstanceVO { - - @ApiModelProperty(value = "活动实例ID,有就编辑无则新增") - private Long id; - - @ApiModelProperty(value = "活动名称") - private String name; - - @ApiModelProperty(value = "活动开始日期") - private Date beginTime; - - @ApiModelProperty(value = "活动结束日期") - private Date endTime; - - @ApiModelProperty(value = "活动类型,多选项") - private List params; - - @ApiModelProperty(value = "选择的企业列表") - private List organizations; - - @ApiModelProperty(value = "选择的店铺列表") - private List stores; // 店铺列表 -} diff --git a/src/main/java/com/kiisoo/ic/activity/bean/ActivityScheduleVO.java b/src/main/java/com/kiisoo/ic/activity/bean/ActivityScheduleVO.java deleted file mode 100644 index 0843298..0000000 --- a/src/main/java/com/kiisoo/ic/activity/bean/ActivityScheduleVO.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.kiisoo.ic.activity.bean; - -import com.kiisoo.ic.activity.entity.PmnActivityPromotionParam; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.List; - -@Data -public class ActivityScheduleVO { - - @ApiModelProperty(value = "活动池ID,有就编辑无则新增") - private Long id; - - @ApiModelProperty(value = "活动池名称") - private String name; - - @ApiModelProperty(value = "活动池图片") - private String image; - - @ApiModelProperty(value = "活动池描述") - private String description; - - @ApiModelProperty(value = "APPID") - private String appId; - - @ApiModelProperty(value = "URI") - private String uri; - - @ApiModelProperty(value = "活动类型") - private List params; -} diff --git a/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java b/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java index d86c7fd..192562d 100644 --- a/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java +++ b/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java @@ -1,10 +1,8 @@ package com.kiisoo.ic.activity.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.kiisoo.ic.activity.bean.ActivityInstanceVO; -import com.kiisoo.ic.activity.bean.ActivityScheduleVO; +import com.kiisoo.ic.activity.vo.ActivityInstanceVO; import com.kiisoo.ic.activity.entity.PmnActivityPromotionCase; -import com.kiisoo.ic.activity.entity.PmnActivitySchedule; import com.kiisoo.ic.activity.entity.PmnActivityStoreRelation; import com.kiisoo.ic.activity.mapper.PmnActivityInstanceDOMapper; import com.kiisoo.ic.activity.mapper.PmnActivityScheduleDOMapper; @@ -18,6 +16,7 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -51,9 +50,9 @@ public class ActivityInstanceController extends BaseController { return data(null); } - @ApiOperation(value = "根据活动池新建实例,修改实例详情") + @ApiOperation(value = "根据活动池新建/编辑实例") @PostMapping(value = "/save") - public Map saveInstance(@ModelAttribute ActivityInstanceVO activityInstanceVO) { + public Map saveInstance(@RequestBody @Validated ActivityInstanceVO activityInstanceVO) { // TODO 实现后移除TODO标签 try { boolean save = pmnActivityInstanceService.saveVO(activityInstanceVO); @@ -80,43 +79,43 @@ public class ActivityInstanceController extends BaseController { return fail(); } } - - @ApiOperation(value = "根据活动绑定店铺") - @PostMapping(value = "/promotionStore/save") - @ApiImplicitParams({ - @ApiImplicitParam(name = "storeIds", required = true, value = "店铺ID数组", dataType = "array", paramType = "form"), - @ApiImplicitParam(name = "caseId", value = "场景id", dataType = "int", paramType = "form", defaultValue = "0"), - @ApiImplicitParam(name = "instanceId", required = true, value = "活动实例ID", dataType = "string", paramType = "form"), - }) - public Map saveStore(@RequestBody Long[] storeIds, @RequestParam int caseId, @RequestParam Long instanceId){ - try { - if(storeIds.length <= 0) { - return fail("请选择店铺"); - } - if(instanceId == null) { - return fail("请输入活动实例ID"); - } - List pmnActivityStoreRelations = new ArrayList<>(); - for (Long storeId: storeIds) { - PmnActivityStoreRelation pmnActivityStoreRelation = pmnActivityStoreRelationService.getOne(Wrappers.lambdaQuery().eq(PmnActivityStoreRelation::getStoreId, storeId).eq(PmnActivityStoreRelation::getInstanceId, instanceId)); - if(pmnActivityStoreRelation == null) { - pmnActivityStoreRelation = new PmnActivityStoreRelation(); - } - pmnActivityStoreRelation.setCaseId(Long.valueOf(caseId)); - pmnActivityStoreRelation.setCreateTime(new Date()); - pmnActivityStoreRelation.setStatus(1); - pmnActivityStoreRelation.setInstanceId(instanceId); - pmnActivityStoreRelation.setStoreId(storeId); - pmnActivityStoreRelation.setUpdateTime(new Date()); - pmnActivityStoreRelations.add(pmnActivityStoreRelation); - } - boolean save = pmnActivityStoreRelationService.saveOrUpdateBatch(pmnActivityStoreRelations); - return save ? success() : fail("操作失败"); - } catch (Exception e) { - log.error("查询出错", e); - return fail(); - } - } +// +// @ApiOperation(value = "根据活动绑定店铺") +// @PostMapping(value = "/promotionStore/save") +// @ApiImplicitParams({ +// @ApiImplicitParam(name = "storeIds", required = true, value = "店铺ID数组", dataType = "array", paramType = "form"), +// @ApiImplicitParam(name = "caseId", value = "场景id", dataType = "int", paramType = "form", defaultValue = "0"), +// @ApiImplicitParam(name = "instanceId", required = true, value = "活动实例ID", dataType = "string", paramType = "form"), +// }) +// public Map saveStore(@RequestBody Long[] storeIds, @RequestParam int caseId, @RequestParam Long instanceId){ +// try { +// if(storeIds.length <= 0) { +// return fail("请选择店铺"); +// } +// if(instanceId == null) { +// return fail("请输入活动实例ID"); +// } +// List pmnActivityStoreRelations = new ArrayList<>(); +// for (Long storeId: storeIds) { +// PmnActivityStoreRelation pmnActivityStoreRelation = pmnActivityStoreRelationService.getOne(Wrappers.lambdaQuery().eq(PmnActivityStoreRelation::getStoreId, storeId).eq(PmnActivityStoreRelation::getInstanceId, instanceId)); +// if(pmnActivityStoreRelation == null) { +// pmnActivityStoreRelation = new PmnActivityStoreRelation(); +// } +// pmnActivityStoreRelation.setCaseId(Long.valueOf(caseId)); +// pmnActivityStoreRelation.setCreateTime(new Date()); +// pmnActivityStoreRelation.setStatus(1); +// pmnActivityStoreRelation.setInstanceId(instanceId); +// pmnActivityStoreRelation.setStoreId(storeId); +// pmnActivityStoreRelation.setUpdateTime(new Date()); +// pmnActivityStoreRelations.add(pmnActivityStoreRelation); +// } +// boolean save = pmnActivityStoreRelationService.saveOrUpdateBatch(pmnActivityStoreRelations); +// return save ? success() : fail("操作失败"); +// } catch (Exception e) { +// log.error("查询出错", e); +// return fail(); +// } +// } @ApiOperation(value = "活动实例终止") @PostMapping(value = "/terminate") diff --git a/src/main/java/com/kiisoo/ic/activity/controller/ActivityScheduleController.java b/src/main/java/com/kiisoo/ic/activity/controller/ActivityScheduleController.java index 8ab6cf8..e6f1d73 100644 --- a/src/main/java/com/kiisoo/ic/activity/controller/ActivityScheduleController.java +++ b/src/main/java/com/kiisoo/ic/activity/controller/ActivityScheduleController.java @@ -1,12 +1,7 @@ package com.kiisoo.ic.activity.controller; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.kiisoo.ic.activity.bean.ActivityInstanceVO; -import com.kiisoo.ic.activity.bean.ActivityScheduleVO; -import com.kiisoo.ic.activity.entity.PmnActivityInstance; -import com.kiisoo.ic.activity.entity.PmnActivityPromotionCase; +import com.kiisoo.ic.activity.vo.ActivityScheduleVO; import com.kiisoo.ic.activity.entity.PmnActivitySchedule; -import com.kiisoo.ic.activity.entity.PmnActivityStoreRelation; import com.kiisoo.ic.activity.mapper.PmnActivityInstanceDOMapper; import com.kiisoo.ic.activity.mapper.PmnActivityScheduleDOMapper; import com.kiisoo.ic.activity.mapper.PmnActivityStoreRelationMapper; @@ -19,9 +14,11 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.validation.Valid; import java.util.*; @RestController @@ -56,11 +53,27 @@ public class ActivityScheduleController extends BaseController { @ApiOperation(value = "新增或修改活动池") @PostMapping(value = "/save") - public Map save(@ModelAttribute ActivityScheduleVO activityScheduleVO) { - // TODO 实现后移除TODO标签 - boolean state = pmnActivityScheduleService.saveVO(activityScheduleVO); - return data(state); + public Map save(@RequestBody @Validated ActivityScheduleVO activityScheduleVO) { + try { + boolean state = pmnActivityScheduleService.saveVO(activityScheduleVO); + return data(state); + } catch (Exception e) { + log.error("查询出错", e); + return fail(); + } } - + @ApiOperation("获取活动池详情") + @GetMapping("/detail") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "活动池id", dataType = "int", paramType = "form"), + }) + public Map detail(Long id){ + try { + return data(pmnActivityScheduleService.getVO(id)); + } catch (Exception e) { + log.error("查询出错", e); + return fail(); + } + } } diff --git a/src/main/java/com/kiisoo/ic/activity/entity/PmnActivityPromotion.java b/src/main/java/com/kiisoo/ic/activity/entity/PmnActivityPromotion.java index 925e848..28ade0f 100644 --- a/src/main/java/com/kiisoo/ic/activity/entity/PmnActivityPromotion.java +++ b/src/main/java/com/kiisoo/ic/activity/entity/PmnActivityPromotion.java @@ -3,6 +3,7 @@ package com.kiisoo.ic.activity.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Builder; import lombok.Data; import java.util.Date; @@ -11,6 +12,7 @@ import java.util.Date; */ @Data @TableName ("pmn_activity_promotion") +@Builder public class PmnActivityPromotion { @TableId(type = IdType.AUTO) private Long id; diff --git a/src/main/java/com/kiisoo/ic/activity/entity/PmnActivityPromotionParam.java b/src/main/java/com/kiisoo/ic/activity/entity/PmnActivityPromotionParam.java index e1fa0d7..072383f 100644 --- a/src/main/java/com/kiisoo/ic/activity/entity/PmnActivityPromotionParam.java +++ b/src/main/java/com/kiisoo/ic/activity/entity/PmnActivityPromotionParam.java @@ -1,33 +1,57 @@ package com.kiisoo.ic.activity.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotBlank; import java.util.Date; /** */ @Data @TableName ("pmn_activity_promotion_param") +@ApiModel("活动类型") public class PmnActivityPromotionParam { @TableId(type = IdType.AUTO) + @ApiModelProperty(value = "传入则编辑,不传则新增") private Long id; - + @ApiModelProperty(hidden = true) private Long promotionId; + @ApiModelProperty(hidden = true) + private Integer attr; + @NotBlank(message = "请输入活动类型名称") + @ApiModelProperty(value = "活动类型名称", required = true) private String name; + @NotBlank(message = "请输入参数") + @ApiModelProperty(value = "参数", required = true) + @TableField("`key`") private String key; - private Long isRequired; + @ApiModelProperty(value = "是否必填") + private Integer isRequired; - private Long type; + @NotBlank(message = "请选择值类型: 1、数值 2、字串 3、日期") + @ApiModelProperty(value = "值类型,1、数值 2、字串 3、日期", required = true, notes = "1、数值 2、字串 3、日期") + private Integer type; + @ApiModelProperty(value = "上限") private String limitUpper; + @ApiModelProperty(value = "下限") private String limitLower; + @NotBlank(message = "请输入默认值") + @ApiModelProperty(value = "默认值", required = true) + private String defaultVal; + + @NotBlank(message = "请输入说明") + @ApiModelProperty(value = "说明", required = true) private String description; } diff --git a/src/main/java/com/kiisoo/ic/activity/entity/PmnActivitySchedule.java b/src/main/java/com/kiisoo/ic/activity/entity/PmnActivitySchedule.java index af5101d..28fb32d 100644 --- a/src/main/java/com/kiisoo/ic/activity/entity/PmnActivitySchedule.java +++ b/src/main/java/com/kiisoo/ic/activity/entity/PmnActivitySchedule.java @@ -17,13 +17,13 @@ public class PmnActivitySchedule { private String name; - private String image; + private String logo; private String description = ""; - private Long status = 1L; + private Integer status = 1; - private Long category_id = 0L; + private Integer categoryId = 0; private Date createTime; diff --git a/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityInstanceService.java b/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityInstanceService.java index d131ae8..c8bc01f 100644 --- a/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityInstanceService.java +++ b/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityInstanceService.java @@ -1,8 +1,6 @@ package com.kiisoo.ic.activity.service; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.kiisoo.ic.activity.bean.ActivityInstanceVO; +import com.kiisoo.ic.activity.vo.ActivityInstanceVO; import com.kiisoo.ic.activity.entity.PmnActivityInstance; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityScheduleService.java b/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityScheduleService.java index 19fc3e8..cd30aed 100644 --- a/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityScheduleService.java +++ b/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityScheduleService.java @@ -1,6 +1,6 @@ package com.kiisoo.ic.activity.service; -import com.kiisoo.ic.activity.bean.ActivityScheduleVO; +import com.kiisoo.ic.activity.vo.ActivityScheduleVO; import com.kiisoo.ic.activity.entity.PmnActivitySchedule; import com.baomidou.mybatisplus.extension.service.IService; @@ -14,4 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IPmnActivityScheduleService extends IService { boolean saveVO(ActivityScheduleVO activityScheduleVO); + + ActivityScheduleVO getVO(Long id); } diff --git a/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityInstanceServiceImpl.java b/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityInstanceServiceImpl.java index 78da37d..8ac288d 100644 --- a/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityInstanceServiceImpl.java +++ b/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityInstanceServiceImpl.java @@ -1,6 +1,6 @@ package com.kiisoo.ic.activity.service.impl; -import com.kiisoo.ic.activity.bean.ActivityInstanceVO; +import com.kiisoo.ic.activity.vo.ActivityInstanceVO; import com.kiisoo.ic.activity.entity.PmnActivityInstance; import com.kiisoo.ic.activity.mapper.PmnActivityInstanceDOMapper; import com.kiisoo.ic.activity.service.IPmnActivityInstanceService; diff --git a/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityScheduleServiceImpl.java b/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityScheduleServiceImpl.java index e9281f8..593968d 100644 --- a/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityScheduleServiceImpl.java +++ b/src/main/java/com/kiisoo/ic/activity/service/impl/PmnActivityScheduleServiceImpl.java @@ -1,13 +1,24 @@ package com.kiisoo.ic.activity.service.impl; -import com.kiisoo.ic.activity.bean.ActivityScheduleVO; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.kiisoo.ic.activity.entity.PmnActivityPromotion; +import com.kiisoo.ic.activity.entity.PmnActivityPromotionParam; +import com.kiisoo.ic.activity.service.IPmnActivityPromotionParamService; +import com.kiisoo.ic.activity.service.IPmnActivityPromotionService; +import com.kiisoo.ic.activity.vo.ActivityScheduleVO; import com.kiisoo.ic.activity.entity.PmnActivitySchedule; import com.kiisoo.ic.activity.mapper.PmnActivityScheduleDOMapper; import com.kiisoo.ic.activity.service.IPmnActivityScheduleService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.omg.SendingContext.RunTime; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** *

* 活动规划表 服务实现类 @@ -19,12 +30,106 @@ import org.springframework.transaction.annotation.Transactional; @Service public class PmnActivityScheduleServiceImpl extends ServiceImpl implements IPmnActivityScheduleService { + private IPmnActivityPromotionService activityPromotionService; + + private IPmnActivityPromotionParamService pmnActivityPromotionParamService; + + @Autowired + PmnActivityScheduleServiceImpl(IPmnActivityPromotionService activityPromotionService, IPmnActivityPromotionParamService pmnActivityPromotionParamService) { + this.activityPromotionService = activityPromotionService; + this.pmnActivityPromotionParamService = pmnActivityPromotionParamService; + } + @Transactional public boolean saveVO(ActivityScheduleVO activityScheduleVO) { // TODO 创建活动池的时候,自动关联一个 activity_promotion 一对一关系 // TODO 活动类型参数,默认值必须填,在活动实例中作为参数多选 // TODO 一对多的存储,都是有ID时修改,无ID时新增 // TODO APPID,URI,活动类型,都存储到 activity_promotion_params 表里面,类型不一样 - return true; + if (activityScheduleVO.getParams().size() <= 0) return false; + //新建活动池 + PmnActivitySchedule activitySchedule = new PmnActivitySchedule(); + activitySchedule.setCategoryId(0); + activitySchedule.setCreateTime(new Date()); + activitySchedule.setDescription(activityScheduleVO.getDescription()); + activitySchedule.setId(activityScheduleVO.getId()); + activitySchedule.setName(activityScheduleVO.getName()); + activitySchedule.setLogo(activityScheduleVO.getImage()); + activitySchedule.setStatus(1); + activitySchedule.setUpdateTime(new Date()); + boolean saveActivitySchedule = saveOrUpdate(activitySchedule); + //保存activity_promotion + PmnActivityPromotion pmnActivityPromotion = PmnActivityPromotion + .builder() + .content(activityScheduleVO.getDescription()) + .createTime(new Date()) + .name(activityScheduleVO.getName()) + .status(1) + .scheduleId(activitySchedule.getId()) + .uri(activityScheduleVO.getUri()) + .updateTime(new Date()) + .type(1) + .build(); + PmnActivityPromotion oldPmnActivityPromotion = activityPromotionService.getOne(Wrappers.lambdaQuery().eq(PmnActivityPromotion::getScheduleId, activitySchedule.getId())); + if (pmnActivityPromotion != null) { + pmnActivityPromotion.setId(oldPmnActivityPromotion.getId()); + } + boolean saveActivityPromotion = activityPromotionService.saveOrUpdate(pmnActivityPromotion); + boolean saveAppId = true; + boolean saveUri = true; + if (saveActivitySchedule && saveActivityPromotion) { + //保存appid和uri, attr = 1 + PmnActivityPromotionParam appId = new PmnActivityPromotionParam(); + appId.setName("appId"); + appId.setKey(activityScheduleVO.getAppId()); + appId.setAttr(1); + appId.setDescription(activityScheduleVO.getDescription()); + appId.setIsRequired(1); + appId.setPromotionId(pmnActivityPromotion.getId()); + appId.setType(2); + appId.setDefaultVal(activityScheduleVO.getAppId()); + PmnActivityPromotionParam uri = new PmnActivityPromotionParam(); + uri.setName("uri"); + uri.setKey(activityScheduleVO.getUri()); + uri.setAttr(1); + uri.setDescription(activityScheduleVO.getDescription()); + uri.setIsRequired(1); + uri.setPromotionId(pmnActivityPromotion.getId()); + uri.setType(2); + uri.setDefaultVal(activityScheduleVO.getUri()); + saveAppId = pmnActivityPromotionParamService.saveOrUpdate(appId, Wrappers.lambdaQuery().eq(PmnActivityPromotionParam::getPromotionId, pmnActivityPromotion.getId()).eq(PmnActivityPromotionParam::getAttr, 1).eq(PmnActivityPromotionParam::getName, "appId")); + saveUri = pmnActivityPromotionParamService.saveOrUpdate(uri, Wrappers.lambdaQuery().eq(PmnActivityPromotionParam::getPromotionId, pmnActivityPromotion.getId()).eq(PmnActivityPromotionParam::getAttr, 1).eq(PmnActivityPromotionParam::getName, "uri")); + for (PmnActivityPromotionParam param : activityScheduleVO.getParams()) { + param.setPromotionId(pmnActivityPromotion.getId()); + param.setAttr(2); + boolean saveParam = pmnActivityPromotionParamService.saveOrUpdate(param); + if (!saveParam) throw new RuntimeException("活动类型保存失败"); + } + } + return saveActivitySchedule && saveActivityPromotion && saveAppId && saveUri; + } + + @Override + public ActivityScheduleVO getVO(Long id) { + PmnActivitySchedule activitySchedule = getById(id); + ActivityScheduleVO activityScheduleVO = new ActivityScheduleVO(); + activityScheduleVO.setId(activitySchedule.getId()); + activityScheduleVO.setImage(activitySchedule.getLogo()); + activityScheduleVO.setName(activitySchedule.getName()); + activityScheduleVO.setDescription(activitySchedule.getDescription()); + PmnActivityPromotion activityPromotion = activityPromotionService.getOne(Wrappers.lambdaQuery().eq(PmnActivityPromotion::getScheduleId, activitySchedule.getId())); + List activityPromotionParams = new ArrayList<>(); + List activityPromotionParamsAll = pmnActivityPromotionParamService.list(Wrappers.lambdaQuery().eq(PmnActivityPromotionParam::getPromotionId, activityPromotion.getId())); + for (PmnActivityPromotionParam activityPromotionParam : activityPromotionParamsAll) { + if(activityPromotionParam.getName().equals("appId")) { + activityScheduleVO.setAppId(activityPromotionParam.getKey()); + }else if(activityPromotionParam.getName().equals("uri")) { + activityScheduleVO.setUri(activityPromotionParam.getKey()); + }else { + activityPromotionParams.add(activityPromotionParam); + } + } + activityScheduleVO.setParams(activityPromotionParams); + return activityScheduleVO; } } diff --git a/src/main/java/com/kiisoo/ic/activity/vo/ActivityInstanceVO.java b/src/main/java/com/kiisoo/ic/activity/vo/ActivityInstanceVO.java index 19ec9ef..1499630 100644 --- a/src/main/java/com/kiisoo/ic/activity/vo/ActivityInstanceVO.java +++ b/src/main/java/com/kiisoo/ic/activity/vo/ActivityInstanceVO.java @@ -1,13 +1,49 @@ package com.kiisoo.ic.activity.vo; -import com.kiisoo.ic.activity.entity.PmnActivityInstance; -import com.kiisoo.ic.activity.entity.PmnActivityPromotionCase; +import com.kiisoo.ic.activity.entity.PmnActivityPromotionParam; +import com.kiisoo.ic.generalize.entity.PrivilageOrganizational; import com.kiisoo.ic.store.entity.PoiStore; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; +import java.util.Date; +import java.util.List; + @Data -public class ActivityInstanceVO extends PmnActivityInstance { - private PoiStore store; +@ApiModel("活动实例") +public class ActivityInstanceVO { + + @ApiModelProperty(value = "活动实例ID,有就编辑无则新增") + private Long id; + + @ApiModelProperty(value = "活动名称", required = true) + @NotBlank(message = "请输入活动名称") + private String name; + + @ApiModelProperty(value = "活动开始日期", required = true) + @NotNull(message = "请输入活动开始日期") + private Date beginTime; + + @ApiModelProperty(value = "活动结束日期", required = true) + @NotNull(message = "请输入活动结束日期") + private Date endTime; + + @ApiModelProperty(value = "活动类型,多选项", required = true) + @NotNull(message = "请选择活动类型") + @Size(min = 1, message = "请选择活动类型") + private List params; + + @ApiModelProperty(value = "选择的企业列表", required = true) + @NotNull(message = "请选择企业列表") + @Size(min = 1, message = "请选择企业列表") + private List organizations; - private PmnActivityPromotionCase activityPromotionCase; + @ApiModelProperty(value = "选择的店铺列表", required = true) + @NotNull(message = "请选择店铺列表") + @Size(min = 1, message = "请选择店铺列表") + private List stores; // 店铺列表 } diff --git a/src/main/java/com/kiisoo/ic/activity/vo/ActivityScheduleVO.java b/src/main/java/com/kiisoo/ic/activity/vo/ActivityScheduleVO.java index e714643..f1f11e1 100644 --- a/src/main/java/com/kiisoo/ic/activity/vo/ActivityScheduleVO.java +++ b/src/main/java/com/kiisoo/ic/activity/vo/ActivityScheduleVO.java @@ -1,21 +1,41 @@ package com.kiisoo.ic.activity.vo; -import com.kiisoo.ic.activity.entity.PmnActivityCategory; -import com.kiisoo.ic.activity.entity.PmnActivityPromotionCase; import com.kiisoo.ic.activity.entity.PmnActivityPromotionParam; -import com.kiisoo.ic.activity.entity.PmnActivitySchedule; -import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; import java.util.List; @Data -@ApiModel(value = "活动规划", parent = PmnActivitySchedule.class) -public class ActivityScheduleVO extends PmnActivitySchedule { - @ApiModelProperty("活动参数列表") - List activityPromotionParams; +public class ActivityScheduleVO { - @ApiModelProperty("活动类型列表") - List activityPromotionCases; + @ApiModelProperty(value = "活动池ID,有就编辑无则新增") + private Long id; + + @ApiModelProperty(value = "活动池名称", required = true) + @NotBlank(message = "请输入活动池名称") + private String name; + + @ApiModelProperty(value = "活动池图片", required = true) + @NotBlank(message = "请上传活动池图片") + private String image; + + @ApiModelProperty(value = "活动池描述") + private String description; + + @ApiModelProperty(value = "APPID", required = true) + @NotBlank(message = "请输入APPID") + private String appId; + + @ApiModelProperty(value = "URI", required = true) + @NotBlank(message = "请输入uri") + private String uri; + + @ApiModelProperty(value = "活动类型", required = true) + @NotNull(message = "至少新增一个活动类型") + @Size(min = 1, message = "至少新增一个活动类型") + private List params; }