package com.ks.daylucky.controller.admin;
|
|
import com.google.gson.Gson;
|
import com.google.gson.reflect.TypeToken;
|
import com.ks.daylucky.pojo.DO.ActivityExtraInfo;
|
import com.ks.daylucky.pojo.DO.ActivityTag;
|
import com.ks.daylucky.pojo.VO.admin.ActivityAdminVo;
|
import com.ks.daylucky.pojo.VO.admin.AdminAcceptData;
|
import com.ks.daylucky.service.ActivityExtraInfoService;
|
import com.ks.daylucky.service.ActivityTagService;
|
import com.ks.daylucky.util.factory.vo.ActivityAdminVoFactory;
|
import com.ks.daylucky.util.factory.vo.LuckyActivityFactory;
|
import com.ks.lib.common.exception.ParamsException;
|
import com.ks.lucky.exception.*;
|
import com.ks.lucky.pojo.DO.LuckyActivity;
|
import com.ks.lucky.remote.service.LuckyActivityService;
|
import net.sf.json.JSONObject;
|
import org.apache.dubbo.config.annotation.Reference;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.yeshi.utils.JsonUtil;
|
import org.yeshi.utils.StringUtil;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.lang.reflect.Type;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
@Controller
|
@RequestMapping("/admin/activity")
|
public class AdminActivityController {
|
|
@Reference(version = "1.0.0")
|
private LuckyActivityService luckyActivityService;
|
|
@Resource
|
private ActivityExtraInfoService activityExtraInfoService;
|
|
@Resource
|
private ActivityTagService activityTagService;
|
|
/**
|
* 添加活动
|
*
|
* @param data
|
* @return
|
*/
|
@ResponseBody
|
@RequestMapping("addActivity")
|
public String addActivity(AdminAcceptData acceptData, String data, String type) {
|
ActivityAdminVo vo = new Gson().fromJson(data, ActivityAdminVo.class);
|
Long sponsorId = acceptData.getSponsors().getId();
|
Long appId = 5L;
|
LuckyActivity activity = LuckyActivityFactory.create(sponsorId, vo);
|
activity.setAppId(appId);
|
try {
|
Long activityId = luckyActivityService.addActivity(activity);
|
ActivityExtraInfo extraInfo = LuckyActivityFactory.getActivityExtra(vo.getOpenInfo());
|
extraInfo.setActivityId(activityId);
|
activityExtraInfoService.add(extraInfo);
|
//提取Tags
|
if (vo.getActivity().getTags() != null && vo.getActivity().getTags().size() > 0) {
|
activityTagService.setTags(activityId, (vo.getActivity().getTags()));
|
}
|
|
switch (type) {
|
//保存
|
case "save":
|
//提交审核
|
luckyActivityService.submitVerify(activityId);
|
//通过审核
|
luckyActivityService.verifyActivity(activityId, true, "系统自动通过审核");
|
break;
|
//发布
|
case "publish":
|
//提交审核
|
luckyActivityService.submitVerify(activityId);
|
//通过审核
|
luckyActivityService.verifyActivity(activityId, true, "系统自动通过审核");
|
//1分钟后开始
|
Date startTime = new Date(System.currentTimeMillis() + 1000 * 60L);
|
Date finishTime = new Date(startTime.getTime() + 1000 * 60 * 60 * 24L * extraInfo.getValidDay());
|
luckyActivityService.publishActivity(activityId, startTime, finishTime);
|
break;
|
default:
|
break;
|
}
|
|
JSONObject result = new JSONObject();
|
result.put("id", activityId);
|
return JsonUtil.loadTrueResult(result);
|
} catch (ParamsException e) {
|
e.printStackTrace();
|
return JsonUtil.loadFalseResult("参数不完整");
|
} catch (LuckyActivityException e) {
|
e.printStackTrace();
|
} catch (LuckyActivitySponsorInfoException e) {
|
e.printStackTrace();
|
} catch (LuckyActivityAwardException e) {
|
e.printStackTrace();
|
} catch (LuckyActivityOpenInfoException e) {
|
e.printStackTrace();
|
} catch (LuckySponsorAdException e) {
|
e.printStackTrace();
|
} catch (LuckyActivityAwardMaterialException e) {
|
e.printStackTrace();
|
}
|
|
return JsonUtil.loadFalseResult("添加出错");
|
}
|
|
@ResponseBody
|
@RequestMapping("getActivityDetail")
|
public String getActivityDetail(AdminAcceptData acceptData, Long id) {
|
LuckyActivity activity = luckyActivityService.getActivityDetail(id);
|
List<ActivityTag> tagList = activityTagService.getTagList(id);
|
ActivityExtraInfo info = activityExtraInfoService.getDetail(activity.getId());
|
ActivityAdminVo bean = ActivityAdminVoFactory.create(activity, tagList, info.getValidDay());
|
return JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(bean));
|
}
|
|
@ResponseBody
|
@RequestMapping("listActivity")
|
public String listActivity(AdminAcceptData acceptData, String states, int page, int limit) {
|
List<Integer> stateList = null;
|
if (!StringUtil.isNullOrEmpty(states)) {
|
Type type = new TypeToken<List<Integer>>() {
|
}.getType();
|
stateList = new Gson().fromJson(states, type);
|
}
|
List<LuckyActivity> activityList = luckyActivityService.getActivityList(acceptData.getAppId(), acceptData.getSponsors().getId(), stateList, null, page, limit);
|
//获取详情
|
List<ActivityAdminVo.ActivityBean> voList = new ArrayList<>();
|
for (LuckyActivity activity : activityList) {
|
activity = luckyActivityService.getActivityDetail(activity.getId());
|
ActivityExtraInfo info = activityExtraInfoService.getDetail(activity.getId());
|
List<ActivityTag> tagList = activityTagService.getTagList(activity.getId());
|
voList.add(ActivityAdminVoFactory.createActivityBean(activity, tagList));
|
}
|
|
|
long count = luckyActivityService.countActivity(acceptData.getAppId(), acceptData.getSponsors().getId(), stateList, null);
|
JSONObject data = new JSONObject();
|
data.put("list", voList);
|
data.put("count", count);
|
return JsonUtil.loadTrueResult(JsonUtil.getSimpleGson().toJson(data));
|
}
|
|
|
}
|