package com.xiaopeng.operation.controller;
|
|
|
import com.xiaopeng.api.model.operation.XpActivity;
|
import com.xiaopeng.api.query.operation.XpActivityPageListQuery;
|
import com.xiaopeng.api.vo.operation.XpActivityVo;
|
import com.xiaopeng.common.core.constant.CacheConstants;
|
import com.xiaopeng.common.core.domain.R;
|
import com.xiaopeng.common.core.utils.bean.BeanUtils;
|
import com.xiaopeng.common.core.web.page.PageInfo;
|
import com.xiaopeng.operation.service.IXpActicityService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.context.annotation.Lazy;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.data.redis.core.ValueOperations;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.time.Duration;
|
import java.time.LocalDateTime;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 活动管理 前端控制器
|
* </p>
|
*
|
* @author mitao
|
* @since 2026-02-03
|
*/
|
@Api(tags = "活动管理")
|
@RequiredArgsConstructor(onConstructor_ = @Lazy)
|
public class XpActicityController {
|
|
@Resource
|
private IXpActicityService service;
|
|
|
/**
|
* 获取所有白名单手机号
|
* @return
|
*/
|
@PostMapping("/logan/inner/acticity/findListToIds")
|
@ApiOperation(value = "获取活动信息ids", tags = {"管理后台-获取活动信息ids"})
|
public R<List<String>> findListToIds(@RequestParam String acticityName){
|
if(acticityName == null){
|
return R.ok();
|
}
|
return R.ok(service.findListToIds(acticityName));
|
}
|
|
|
@Resource
|
RedisTemplate<String, String> redisTemplate;
|
|
|
/**
|
* 是否第一次进入某活动
|
* @return 活动信息,id 和 img
|
*/
|
@PostMapping("/logan/inner/acticity/findListToIds")
|
@ApiOperation(value = "获取活动信息ids", tags = {"管理后台-活动首次进入情况"})
|
public R<XpActivity> firstEnter(HttpServletRequest request){
|
|
String uid = request.getHeader("XP-Uid");
|
ValueOperations<String, String> ops = redisTemplate.opsForValue();
|
XpActivity activity = service.activiting();
|
XpActivityVo ret = new XpActivityVo();
|
if (activity !=null) {
|
BeanUtils.copyBeanProp(ret, activity);
|
Duration duration = Duration.between(LocalDateTime.now(), activity.getEndTime());
|
Boolean isFirst = ops.setIfAbsent(CacheConstants.firstEnterActivity(String.valueOf(activity.getId()), uid),"1", duration);
|
ret.setIsFirst(isFirst);
|
}
|
return R.ok(activity);
|
|
}
|
|
|
@PostMapping("/v1/api/appUserCoupon/pageList")
|
@ApiOperation(value = "活动列表",tags = {"管理后台-活动列表"},response = XpActivity.class)
|
public R<PageInfo<XpActivity>> pageList(@RequestBody XpActivityPageListQuery query) {
|
PageInfo<XpActivity> pageList = service.pageList(query);
|
return R.ok(pageList);
|
}
|
|
}
|