You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bsdgy-server/src/main/java/com/kiisoo/ic/activity/controller/ActivityInstanceController....

128 lines
5.5 KiB
Java

6 years ago
package com.kiisoo.ic.activity.controller;
6 years ago
6 years ago
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.kiisoo.ic.activity.bean.ActivityInstanceVO;
import com.kiisoo.ic.activity.bean.ActivityScheduleVO;
6 years ago
import com.kiisoo.ic.activity.entity.PmnActivityPromotionCase;
import com.kiisoo.ic.activity.entity.PmnActivitySchedule;
6 years ago
import com.kiisoo.ic.activity.entity.PmnActivityStoreRelation;
6 years ago
import com.kiisoo.ic.activity.mapper.PmnActivityInstanceDOMapper;
import com.kiisoo.ic.activity.mapper.PmnActivityScheduleDOMapper;
6 years ago
import com.kiisoo.ic.activity.mapper.PmnActivityStoreRelationMapper;
6 years ago
import com.kiisoo.ic.activity.service.IPmnActivityInstanceService;
import com.kiisoo.ic.activity.service.IPmnActivityScheduleService;
6 years ago
import com.kiisoo.ic.activity.service.IPmnActivityStoreRelationService;
import com.kiisoo.ic.common.BaseController;
6 years ago
import io.swagger.annotations.Api;
6 years ago
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
6 years ago
import org.springframework.web.bind.annotation.*;
6 years ago
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
6 years ago
@RestController
@Api(value = "后台-活动实例管理", tags = {"后台-活动实例管理"})
@RequestMapping(value = "/activity/instance")
@Slf4j
public class ActivityInstanceController extends BaseController {
@Resource
PmnActivityScheduleDOMapper pmnActivityScheduleDOMapper;
6 years ago
@Resource
PmnActivityInstanceDOMapper pmnActivityInstanceDOMapper;
6 years ago
@Resource
PmnActivityStoreRelationMapper pmnActivityStoreRelationMapper;
@Resource
IPmnActivityStoreRelationService pmnActivityStoreRelationService;
6 years ago
@Resource
IPmnActivityInstanceService pmnActivityInstanceService;
@Resource
IPmnActivityScheduleService pmnActivityScheduleService;
@ApiOperation(value = "活动实例分页列表")
@GetMapping(value = "/list")
public Map<String, Object> instanceList() {
// TODO 需要根据当前用户角色分开查询
return data(null);
}
6 years ago
@ApiOperation(value = "根据活动池新建实例,修改实例详情")
@PostMapping(value = "/save")
public Map<String, Object> saveInstance(@ModelAttribute ActivityInstanceVO activityInstanceVO) {
// TODO 实现后移除TODO标签
6 years ago
try {
boolean save = pmnActivityInstanceService.saveVO(activityInstanceVO);
return save ? data(activityInstanceVO) : fail("操作失败");
6 years ago
} catch (Exception e) {
log.error("查询出错", e);
return fail();
}
}
@ApiOperation(value = "活动实例详情")
@GetMapping(value = "/detail")
public Map<String, Object> instanceDetail() {
return data(null);
}
6 years ago
@ApiOperation(value = "根据活动实例修改场景")
6 years ago
@PostMapping(value = "/promotionCase/save")
public Map<String, Object> savePromotionCase(@ModelAttribute List<PmnActivityPromotionCase> promotionCase) {
6 years ago
try {
return data(null);
} catch (Exception e) {
log.error("查询出错", e);
return fail();
}
}
@ApiOperation(value = "根据活动绑定店铺")
6 years ago
@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<String, Object> saveStore(@RequestBody Long[] storeIds, @RequestParam int caseId, @RequestParam Long instanceId){
6 years ago
try {
6 years ago
if(storeIds.length <= 0) {
return fail("请选择店铺");
}
if(instanceId == null) {
return fail("请输入活动实例ID");
}
List<PmnActivityStoreRelation> pmnActivityStoreRelations = new ArrayList<>();
for (Long storeId: storeIds) {
PmnActivityStoreRelation pmnActivityStoreRelation = pmnActivityStoreRelationService.getOne(Wrappers.<PmnActivityStoreRelation>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("操作失败");
6 years ago
} catch (Exception e) {
log.error("查询出错", e);
return fail();
}
6 years ago
}
@ApiOperation(value = "活动实例终止")
@PostMapping(value = "/terminate")
6 years ago
public Map<String, Object> instanceTerminate() {
// TODO 终止后不可恢复
return data(null);
}
6 years ago
}