puzhibing
2026-04-20 f6a1c27aff490f53c498776af00863801ff1942b
Merge remote-tracking branch 'origin/1.0' into 1.0
1 文件已复制
1 文件已重命名
4个文件已修改
64 ■■■■■ 已修改文件
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActivity.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/operation/XpActivityVo.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/mapper/XpActicityMapper.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpActicityService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActivity.java
copy from xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActicity.java copy to xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActivity.java
File was copied from xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActicity.java
@@ -10,6 +10,7 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
@@ -25,7 +26,7 @@
@Accessors(chain = true)
@TableName("xp_acticity")
@ApiModel(value="XpActicity对象", description="活动管理")
public class XpActicity {
public class XpActivity implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -60,8 +61,5 @@
    @ApiModelProperty(value = "图片")
    private String img;
    @ApiModelProperty(value = "是否第一次 1=是 0=否")
    private Boolean isFirst;
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/operation/XpActivityVo.java
File was renamed from xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpActicity.java
@@ -1,4 +1,4 @@
package com.xiaopeng.api.model.operation;
package com.xiaopeng.api.vo.operation;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@@ -10,6 +10,7 @@
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
@@ -23,9 +24,8 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("xp_acticity")
@ApiModel(value="XpActicity对象", description="活动管理")
public class XpActicity {
public class XpActivityVo implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -63,5 +63,4 @@
    @ApiModelProperty(value = "是否第一次 1=是 0=否")
    private Boolean isFirst;
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java
@@ -1,7 +1,8 @@
package com.xiaopeng.operation.controller;
import com.xiaopeng.api.model.operation.XpActicity;
import com.xiaopeng.api.model.operation.XpActivity;
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;
@@ -61,19 +62,19 @@
     */
    @PostMapping("/logan/inner/acticity/findListToIds")
    @ApiOperation(value = "获取活动信息ids", tags = {"管理后台-活动首次进入情况"})
    public R<XpActicity> firstEnter(HttpServletRequest request){
    public R<XpActivity> firstEnter(HttpServletRequest request){
        String uid = request.getHeader("XP-Uid");
        ValueOperations<String, String> ops = redisTemplate.opsForValue();
        XpActicity acticity = xpActicityService.activiting();
        XpActicity ret = new XpActicity();
        if (acticity !=null) {
            BeanUtils.copyBeanProp(ret, acticity);
            Duration duration = Duration.between(LocalDateTime.now(), acticity.getEndTime());
            Boolean isFirst = ops.setIfAbsent(CacheConstants.firstEnterActivity(String.valueOf(acticity.getId()), uid),"1", duration);
        XpActivity activity = xpActicityService.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(acticity);
        return R.ok(activity);
    }
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/mapper/XpActicityMapper.java
@@ -1,7 +1,7 @@
package com.xiaopeng.operation.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xiaopeng.api.model.operation.XpActicity;
import com.xiaopeng.api.model.operation.XpActivity;
/**
 * <p>
@@ -11,6 +11,6 @@
 * @author mitao
 * @since 2026-02-03
 */
public interface XpActicityMapper extends BaseMapper<XpActicity> {
public interface XpActicityMapper extends BaseMapper<XpActivity> {
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpActicityService.java
@@ -1,7 +1,7 @@
package com.xiaopeng.operation.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.api.model.operation.XpActicity;
import com.xiaopeng.api.model.operation.XpActivity;
import java.util.List;
@@ -13,10 +13,10 @@
 * @author mitao
 * @since 2026-02-03
 */
public interface IXpActicityService extends IService<XpActicity> {
public interface IXpActicityService extends IService<XpActivity> {
    List<String> findListToIds(String acticityName);
    XpActicity activiting();
    XpActivity activiting();
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpActicityServiceImpl.java
@@ -1,7 +1,7 @@
package com.xiaopeng.operation.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.xiaopeng.api.model.operation.XpActicity;
import com.xiaopeng.api.model.operation.XpActivity;
import com.xiaopeng.operation.mapper.XpActicityMapper;
import com.xiaopeng.operation.service.IXpActicityService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -20,25 +20,25 @@
 * @since 2026-02-03
 */
@Service
public class XpActicityServiceImpl extends ServiceImpl<XpActicityMapper, XpActicity> implements IXpActicityService {
public class XpActicityServiceImpl extends ServiceImpl<XpActicityMapper, XpActivity> implements IXpActicityService {
    @Override
    public List<String> findListToIds(String acticityName){
        LambdaQueryWrapper<XpActicity> query = new LambdaQueryWrapper<>();
        query.select(XpActicity::getId);
        query.eq(XpActicity::getDeleted, 0);
        query.like(XpActicity::getActicityName, acticityName);
        LambdaQueryWrapper<XpActivity> query = new LambdaQueryWrapper<>();
        query.select(XpActivity::getId);
        query.eq(XpActivity::getDeleted, 0);
        query.like(XpActivity::getActicityName, acticityName);
        return listObjs(query, Object::toString);
    }
    @Override
    public XpActicity activiting() {
        LambdaQueryWrapper<XpActicity> query = new LambdaQueryWrapper<>();
    public XpActivity activiting() {
        LambdaQueryWrapper<XpActivity> query = new LambdaQueryWrapper<>();
        LocalDateTime now = LocalDateTime.now();
        query.le(XpActicity::getStartTime, now)
                .ge(XpActicity::getEndTime, now);
        List<XpActicity> list = list(query);
        query.le(XpActivity::getStartTime, now)
                .ge(XpActivity::getEndTime, now);
        List<XpActivity> list = list(query);
        if(!list.isEmpty()){
            return list.get(new Random().nextInt(list.size()));
        }