From 70f1950b837fc67e7404f55c9c30e502ad3d339d Mon Sep 17 00:00:00 2001 From: root Date: Wed, 20 May 2020 01:33:58 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E7=9A=84=E4=B8=9A=E5=8A=A1=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ic/activity/bean/ActivityInstanceVO.java | 35 +++++++++ .../ic/activity/bean/ActivityScheduleVO.java | 32 ++++++++ ...r.java => ActivityInstanceController.java} | 75 +++++++------------ .../ActivityScheduleController.java | 66 ++++++++++++++++ .../activity/entity/PmnActivitySchedule.java | 6 +- .../service/IPmnActivityInstanceService.java | 4 +- .../service/IPmnActivityScheduleService.java | 3 +- .../impl/PmnActivityInstanceServiceImpl.java | 11 +++ .../impl/PmnActivityScheduleServiceImpl.java | 10 +++ 9 files changed, 191 insertions(+), 51 deletions(-) create mode 100644 src/main/java/com/kiisoo/ic/activity/bean/ActivityInstanceVO.java create mode 100644 src/main/java/com/kiisoo/ic/activity/bean/ActivityScheduleVO.java rename src/main/java/com/kiisoo/ic/activity/controller/{ActivityController.java => ActivityInstanceController.java} (72%) create mode 100644 src/main/java/com/kiisoo/ic/activity/controller/ActivityScheduleController.java diff --git a/src/main/java/com/kiisoo/ic/activity/bean/ActivityInstanceVO.java b/src/main/java/com/kiisoo/ic/activity/bean/ActivityInstanceVO.java new file mode 100644 index 0000000..f99cdbb --- /dev/null +++ b/src/main/java/com/kiisoo/ic/activity/bean/ActivityInstanceVO.java @@ -0,0 +1,35 @@ +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 new file mode 100644 index 0000000..0843298 --- /dev/null +++ b/src/main/java/com/kiisoo/ic/activity/bean/ActivityScheduleVO.java @@ -0,0 +1,32 @@ +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/ActivityController.java b/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java similarity index 72% rename from src/main/java/com/kiisoo/ic/activity/controller/ActivityController.java rename to src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java index b0fbee2..d86c7fd 100644 --- a/src/main/java/com/kiisoo/ic/activity/controller/ActivityController.java +++ b/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController.java @@ -1,7 +1,8 @@ package com.kiisoo.ic.activity.controller; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.kiisoo.ic.activity.entity.PmnActivityInstance; +import com.kiisoo.ic.activity.bean.ActivityInstanceVO; +import com.kiisoo.ic.activity.bean.ActivityScheduleVO; import com.kiisoo.ic.activity.entity.PmnActivityPromotionCase; import com.kiisoo.ic.activity.entity.PmnActivitySchedule; import com.kiisoo.ic.activity.entity.PmnActivityStoreRelation; @@ -9,6 +10,7 @@ import com.kiisoo.ic.activity.mapper.PmnActivityInstanceDOMapper; import com.kiisoo.ic.activity.mapper.PmnActivityScheduleDOMapper; import com.kiisoo.ic.activity.mapper.PmnActivityStoreRelationMapper; import com.kiisoo.ic.activity.service.IPmnActivityInstanceService; +import com.kiisoo.ic.activity.service.IPmnActivityScheduleService; import com.kiisoo.ic.activity.service.IPmnActivityStoreRelationService; import com.kiisoo.ic.common.BaseController; import io.swagger.annotations.Api; @@ -19,13 +21,16 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; @RestController -@Api(value = "后台活动接口", tags = {"后台活动接口"}) -@RequestMapping(value = "/activity") +@Api(value = "后台-活动实例管理", tags = {"后台-活动实例管理"}) +@RequestMapping(value = "/activity/instance") @Slf4j -public class ActivityController extends BaseController { +public class ActivityInstanceController extends BaseController { @Resource PmnActivityScheduleDOMapper pmnActivityScheduleDOMapper; @Resource @@ -36,45 +41,38 @@ public class ActivityController extends BaseController { IPmnActivityStoreRelationService pmnActivityStoreRelationService; @Resource IPmnActivityInstanceService pmnActivityInstanceService; + @Resource + IPmnActivityScheduleService pmnActivityScheduleService; - @ApiOperation(value = "所有活动池列表") - @GetMapping(value = "/schedule/list/all") - public Map listAll() { - try { - List list = pmnActivityScheduleDOMapper.selectList(null); - return data(list); - } catch (Exception e) { - log.error("查询出错", e); - return fail(); - } - } - - @ApiOperation(value = "新增或修改活动池") - @PostMapping(value = "/schedule/save") - public Map save() { + @ApiOperation(value = "活动实例分页列表") + @GetMapping(value = "/list") + public Map instanceList() { + // TODO 需要根据当前用户角色分开查询 return data(null); } @ApiOperation(value = "根据活动池新建实例,修改实例详情") - @PostMapping(value = "/instance/save") - public Map saveInstance(@ModelAttribute PmnActivityInstance instance) { - // TODO 第一步先创建活动实例,包括活动时间范围,状态等() - // TODO 第二步拿到活动实例ID,再根据公司创建场景(promotion_case),控制器单独写 - // TODO 第三步拿到场景ID后,再添加店铺关系进去(store_relation),控制器单独写 - // TODO 店铺有店铺的二维码,店铺下的店员都有自己的二维码 - // TODO 异步批量生成店铺二维码,店铺二维码 + @PostMapping(value = "/save") + public Map saveInstance(@ModelAttribute ActivityInstanceVO activityInstanceVO) { + // TODO 实现后移除TODO标签 try { - boolean save = pmnActivityInstanceService.saveOrUpdate(instance); - return save ? data(instance) : fail("操作失败"); + boolean save = pmnActivityInstanceService.saveVO(activityInstanceVO); + return save ? data(activityInstanceVO) : fail("操作失败"); } catch (Exception e) { log.error("查询出错", e); return fail(); } } + @ApiOperation(value = "活动实例详情") + @GetMapping(value = "/detail") + public Map instanceDetail() { + return data(null); + } + @ApiOperation(value = "根据活动实例修改场景") @PostMapping(value = "/promotionCase/save") - public Map savePromotionCase(@ModelAttribute List promotionCase){ + public Map savePromotionCase(@ModelAttribute List promotionCase) { try { return data(null); } catch (Exception e) { @@ -120,25 +118,10 @@ public class ActivityController extends BaseController { } } - @ApiOperation(value = "活动实例分页列表") - @GetMapping(value = "/instance/list") - public Map instanceList() { - // TODO 需要根据当前用户角色分开查询 - return data(null); - } - - @ApiOperation(value = "活动实例详情") - @GetMapping(value = "/instance/detail") - public Map instanceDetail() { - return data(null); - } - @ApiOperation(value = "活动实例终止") - @PostMapping(value = "/instance/terminate") + @PostMapping(value = "/terminate") public Map instanceTerminate() { // TODO 终止后不可恢复 return data(null); } - - } diff --git a/src/main/java/com/kiisoo/ic/activity/controller/ActivityScheduleController.java b/src/main/java/com/kiisoo/ic/activity/controller/ActivityScheduleController.java new file mode 100644 index 0000000..8ab6cf8 --- /dev/null +++ b/src/main/java/com/kiisoo/ic/activity/controller/ActivityScheduleController.java @@ -0,0 +1,66 @@ +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.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; +import com.kiisoo.ic.activity.service.IPmnActivityInstanceService; +import com.kiisoo.ic.activity.service.IPmnActivityScheduleService; +import com.kiisoo.ic.activity.service.IPmnActivityStoreRelationService; +import com.kiisoo.ic.common.BaseController; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.*; + +@RestController +@Api(value = "后台-活动池管理", tags = {"后台-活动池管理"}) +@RequestMapping(value = "/activity/schedule") +@Slf4j +public class ActivityScheduleController extends BaseController { + @Resource + PmnActivityScheduleDOMapper pmnActivityScheduleDOMapper; + @Resource + PmnActivityInstanceDOMapper pmnActivityInstanceDOMapper; + @Resource + PmnActivityStoreRelationMapper pmnActivityStoreRelationMapper; + @Resource + IPmnActivityStoreRelationService pmnActivityStoreRelationService; + @Resource + IPmnActivityInstanceService pmnActivityInstanceService; + @Resource + IPmnActivityScheduleService pmnActivityScheduleService; + + @ApiOperation(value = "所有活动池列表") + @GetMapping(value = "/list/all") + public Map listAll() { + try { + List list = pmnActivityScheduleDOMapper.selectList(null); + return data(list); + } catch (Exception e) { + log.error("查询出错", e); + return fail(); + } + } + + @ApiOperation(value = "新增或修改活动池") + @PostMapping(value = "/save") + public Map save(@ModelAttribute ActivityScheduleVO activityScheduleVO) { + // TODO 实现后移除TODO标签 + boolean state = pmnActivityScheduleService.saveVO(activityScheduleVO); + return data(state); + } + + +} 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 c5b0e2b..af5101d 100644 --- a/src/main/java/com/kiisoo/ic/activity/entity/PmnActivitySchedule.java +++ b/src/main/java/com/kiisoo/ic/activity/entity/PmnActivitySchedule.java @@ -19,11 +19,11 @@ public class PmnActivitySchedule { private String image; - private String description; + private String description = ""; - private Long status; + private Long status = 1L; - private Long category_id; + private Long category_id = 0L; 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 b882f0a..d131ae8 100644 --- a/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityInstanceService.java +++ b/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityInstanceService.java @@ -2,9 +2,9 @@ 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.entity.PmnActivityInstance; import com.baomidou.mybatisplus.extension.service.IService; -import com.kiisoo.ic.activity.vo.ActivityInstanceVO; /** *

@@ -15,4 +15,6 @@ import com.kiisoo.ic.activity.vo.ActivityInstanceVO; * @since 2020-05-19 */ public interface IPmnActivityInstanceService extends IService { + + boolean saveVO(ActivityInstanceVO activityInstanceVO); } 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 4ffba34..19fc3e8 100644 --- a/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityScheduleService.java +++ b/src/main/java/com/kiisoo/ic/activity/service/IPmnActivityScheduleService.java @@ -1,5 +1,6 @@ package com.kiisoo.ic.activity.service; +import com.kiisoo.ic.activity.bean.ActivityScheduleVO; import com.kiisoo.ic.activity.entity.PmnActivitySchedule; import com.baomidou.mybatisplus.extension.service.IService; @@ -12,5 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService; * @since 2020-05-19 */ public interface IPmnActivityScheduleService extends IService { - + boolean saveVO(ActivityScheduleVO activityScheduleVO); } 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 c0d098c..78da37d 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,11 +1,13 @@ package com.kiisoo.ic.activity.service.impl; +import com.kiisoo.ic.activity.bean.ActivityInstanceVO; import com.kiisoo.ic.activity.entity.PmnActivityInstance; import com.kiisoo.ic.activity.mapper.PmnActivityInstanceDOMapper; import com.kiisoo.ic.activity.service.IPmnActivityInstanceService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** *

@@ -19,4 +21,13 @@ import org.springframework.stereotype.Service; public class PmnActivityInstanceServiceImpl extends ServiceImpl implements IPmnActivityInstanceService { @Autowired private PmnActivityInstanceDOMapper pmnActivityInstanceMapper; + + @Transactional + public boolean saveVO(ActivityInstanceVO activityInstanceVO) { + // TODO 创建活动实例的时候,自动关联一个 activity_promotion_case 一对一关系 + // TODO 活动类型就是从活动池的参数中进行多选的结果,从 activity_promotion_params 存储到 activity_instance_config + // TODO 店铺列表存储到 activity_store_relation + // TODO 一对多的存储,都是有ID时修改,无ID时新增 + return true; + } } 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 1a87753..e9281f8 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,10 +1,12 @@ package com.kiisoo.ic.activity.service.impl; +import com.kiisoo.ic.activity.bean.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.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** *

@@ -17,4 +19,12 @@ import org.springframework.stereotype.Service; @Service public class PmnActivityScheduleServiceImpl extends ServiceImpl implements IPmnActivityScheduleService { + @Transactional + public boolean saveVO(ActivityScheduleVO activityScheduleVO) { + // TODO 创建活动池的时候,自动关联一个 activity_promotion 一对一关系 + // TODO 活动类型参数,默认值必须填,在活动实例中作为参数多选 + // TODO 一对多的存储,都是有ID时修改,无ID时新增 + // TODO APPID,URI,活动类型,都存储到 activity_promotion_params 表里面,类型不一样 + return true; + } }