新的业务流程设计

dev_0531
root 6 years ago
parent c37df1fd29
commit 70f1950b83

@ -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<PmnActivityPromotionParam> params;
@ApiModelProperty(value = "选择的企业列表")
private List<PrivilageOrganizational> organizations;
@ApiModelProperty(value = "选择的店铺列表")
private List<PoiStore> stores; // 店铺列表
}

@ -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<PmnActivityPromotionParam> params;
}

@ -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<String, Object> listAll() {
try {
List<PmnActivitySchedule> list = pmnActivityScheduleDOMapper.selectList(null);
return data(list);
} catch (Exception e) {
log.error("查询出错", e);
return fail();
}
}
@ApiOperation(value = "新增或修改活动池")
@PostMapping(value = "/schedule/save")
public Map<String, Object> save() {
@ApiOperation(value = "活动实例分页列表")
@GetMapping(value = "/list")
public Map<String, Object> instanceList() {
// TODO 需要根据当前用户角色分开查询
return data(null);
}
@ApiOperation(value = "根据活动池新建实例,修改实例详情")
@PostMapping(value = "/instance/save")
public Map<String, Object> saveInstance(@ModelAttribute PmnActivityInstance instance) {
// TODO 第一步先创建活动实例,包括活动时间范围,状态等()
// TODO 第二步拿到活动实例ID再根据公司创建场景(promotion_case),控制器单独写
// TODO 第三步拿到场景ID后再添加店铺关系进去(store_relation),控制器单独写
// TODO 店铺有店铺的二维码,店铺下的店员都有自己的二维码
// TODO 异步批量生成店铺二维码,店铺二维码
@PostMapping(value = "/save")
public Map<String, Object> 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<String, Object> instanceDetail() {
return data(null);
}
@ApiOperation(value = "根据活动实例修改场景")
@PostMapping(value = "/promotionCase/save")
public Map<String, Object> savePromotionCase(@ModelAttribute List<PmnActivityPromotionCase> promotionCase){
public Map<String, Object> savePromotionCase(@ModelAttribute List<PmnActivityPromotionCase> 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<String, Object> instanceList() {
// TODO 需要根据当前用户角色分开查询
return data(null);
}
@ApiOperation(value = "活动实例详情")
@GetMapping(value = "/instance/detail")
public Map<String, Object> instanceDetail() {
return data(null);
}
@ApiOperation(value = "活动实例终止")
@PostMapping(value = "/instance/terminate")
@PostMapping(value = "/terminate")
public Map<String, Object> instanceTerminate() {
// TODO 终止后不可恢复
return data(null);
}
}

@ -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<String, Object> listAll() {
try {
List<PmnActivitySchedule> list = pmnActivityScheduleDOMapper.selectList(null);
return data(list);
} catch (Exception e) {
log.error("查询出错", e);
return fail();
}
}
@ApiOperation(value = "新增或修改活动池")
@PostMapping(value = "/save")
public Map<String, Object> save(@ModelAttribute ActivityScheduleVO activityScheduleVO) {
// TODO 实现后移除TODO标签
boolean state = pmnActivityScheduleService.saveVO(activityScheduleVO);
return data(state);
}
}

@ -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;

@ -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;
/**
* <p>
@ -15,4 +15,6 @@ import com.kiisoo.ic.activity.vo.ActivityInstanceVO;
* @since 2020-05-19
*/
public interface IPmnActivityInstanceService extends IService<PmnActivityInstance> {
boolean saveVO(ActivityInstanceVO activityInstanceVO);
}

@ -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<PmnActivitySchedule> {
boolean saveVO(ActivityScheduleVO activityScheduleVO);
}

@ -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;
/**
* <p>
@ -19,4 +21,13 @@ import org.springframework.stereotype.Service;
public class PmnActivityInstanceServiceImpl extends ServiceImpl<PmnActivityInstanceDOMapper, PmnActivityInstance> 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;
}
}

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

Loading…
Cancel
Save