puzhibing
2026-04-28 c8bd790078b64343fc9dce0e36b5cc8c03e50e80
新增加活动接口
2个文件已添加
14个文件已修改
306 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/XpAppUserCouponMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpAppUserCouponService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCouponServiceImpl.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/vo/CouponReceiptRecordDto.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/vo/CouponReceiptRecordVo.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpAppUserCouponMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/operation/XpWhiteListClientFallbackFactory.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/operation/XpWhiteListClient.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/order/XpOrder.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpOrderPageQuery.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/vo/XpOrderPageVO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java
@@ -4,6 +4,7 @@
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiaopeng.account.model.dto.ReceiveCouponDto;
import com.xiaopeng.account.model.dto.SendCouponDto;
import com.xiaopeng.account.model.query.XpUserCouponListQuery;
@@ -11,6 +12,8 @@
import com.xiaopeng.account.model.vo.XpAppUserCouponTotalVo;
import com.xiaopeng.account.model.vo.XpAppUserCouponVo;
import com.xiaopeng.account.service.IXpAppUserCouponService;
import com.xiaopeng.account.vo.CouponReceiptRecordDto;
import com.xiaopeng.account.vo.CouponReceiptRecordVo;
import com.xiaopeng.account.vo.UserCouponListVo;
import com.xiaopeng.api.dto.account.GetUserCouponDto;
import com.xiaopeng.api.dto.account.NavigationCouponPickerRequest;
@@ -372,4 +375,20 @@
                .eq("activity_id", activityId).eq("is_deleted", 0));
        return R.ok(list);
    }
    @GetMapping("/api/v1/activity/getCouponReceiptRecord")
    @ApiOperation(value = "获取活动领取记录", tags = {"管理后台-活动管理"})
    public R<PageInfo<CouponReceiptRecordDto>> getCouponReceiptRecord(@RequestBody CouponReceiptRecordVo vo){
        PageInfo<CouponReceiptRecordDto> pageInfo = new PageInfo<CouponReceiptRecordDto>(vo.getPageNum(), vo.getPageSize());
        List<CouponReceiptRecordDto> couponReceiptRecord = xpAppUserCouponService.getCouponReceiptRecord(pageInfo, vo);
        pageInfo.setRecords(couponReceiptRecord);
        return R.ok(pageInfo);
    }
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/XpAppUserCouponMapper.java
@@ -4,6 +4,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xiaopeng.account.model.query.XpUserCouponListQuery;
import com.xiaopeng.account.model.vo.XpAppUserCouponListVo;
import com.xiaopeng.account.vo.CouponReceiptRecordDto;
import com.xiaopeng.account.vo.CouponReceiptRecordVo;
import com.xiaopeng.api.model.account.XpAppUserCoupon;
import com.xiaopeng.api.query.account.XpAppUserCouponPageListQuery;
import com.xiaopeng.common.core.web.page.PageInfo;
@@ -26,4 +28,8 @@
    List<XpAppUserCouponListVo> pageList(@Param("pageInfo") PageInfo<XpAppUserCouponListVo> pageInfo, @Param("query") XpAppUserCouponPageListQuery query);
    List<XpAppUserCoupon> getCouponReceiptRecord(@Param("pageInfo") PageInfo<CouponReceiptRecordDto> pageInfo,
                                                        @Param("query") CouponReceiptRecordVo vo);
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpAppUserCouponService.java
@@ -7,6 +7,8 @@
import com.xiaopeng.account.model.vo.XpAppUserCouponListVo;
import com.xiaopeng.account.model.vo.XpAppUserCouponTotalVo;
import com.xiaopeng.account.model.vo.XpAppUserCouponVo;
import com.xiaopeng.account.vo.CouponReceiptRecordDto;
import com.xiaopeng.account.vo.CouponReceiptRecordVo;
import com.xiaopeng.account.vo.UserCouponListVo;
import com.xiaopeng.api.dto.account.NavigationCouponPickerRequest;
import com.xiaopeng.api.dto.account.UseUserCouponDto;
@@ -101,4 +103,12 @@
     * @return
     */
    UserCouponListVo getUserCouponList(BigDecimal orderMoney, String uid);
    /**
     * 获取管理后台活动领取记录列表
     * @param vo
     * @return
     */
    List<CouponReceiptRecordDto> getCouponReceiptRecord(PageInfo<CouponReceiptRecordDto> pageInfo, CouponReceiptRecordVo vo);
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCouponServiceImpl.java
@@ -16,6 +16,9 @@
import com.xiaopeng.account.model.vo.XpAppUserCouponVo;
import com.xiaopeng.account.service.IXpAppUserCouponService;
import com.xiaopeng.account.util.holiday.HolidayUtil;
import com.xiaopeng.account.vo.CouponReceiptRecordDto;
import com.xiaopeng.account.vo.CouponReceiptRecordVo;
import com.xiaopeng.api.model.operation.XpWhitelist;
import com.xiaopeng.api.vo.account.CouponVo;
import com.xiaopeng.account.vo.UserCouponListVo;
import com.xiaopeng.api.dto.account.NavigationCouponPickerRequest;
@@ -37,6 +40,7 @@
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.enums.MessageTemplateEnum;
import com.xiaopeng.common.core.utils.DateUtils;
import com.xiaopeng.common.core.utils.StringUtils;
import com.xiaopeng.common.core.web.page.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
@@ -46,10 +50,7 @@
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -589,4 +590,44 @@
        userCouponListVo.setNotUsableCouponList(notUsableCouponList);
        return userCouponListVo;
    }
    /**
     * 获取管理后台活动领取人员记录
     * @param vo
     * @return
     */
    public List<CouponReceiptRecordDto> getCouponReceiptRecord(PageInfo<CouponReceiptRecordDto> pageInfo, CouponReceiptRecordVo vo) {
        List<Long> appUserIds = new ArrayList<Long>();
        if(StringUtils.isNotEmpty(vo.getName())){
            List<XpWhitelist> data = xpWhiteListClient.getXpWhitelistByName(vo.getName()).getData();
            if(!data.isEmpty()){
                appUserIds.addAll(data.stream().map(XpWhitelist::getAppUserId).collect(Collectors.toList()));
            }
        }
        if(StringUtils.isNotEmpty(vo.getPhone())){
            List<XpWhitelist> data = xpWhiteListClient.getXpWhitelistByPhone(vo.getPhone()).getData();
            if(!data.isEmpty()){
                appUserIds.addAll(data.stream().map(XpWhitelist::getAppUserId).collect(Collectors.toList()));
            }
        }
        List<XpAppUserCoupon> couponReceiptRecord = this.baseMapper.getCouponReceiptRecord(pageInfo, vo);
        List<CouponReceiptRecordDto> list = new ArrayList<CouponReceiptRecordDto>();
        for (XpAppUserCoupon xpAppUserCoupon : couponReceiptRecord) {
            CouponReceiptRecordDto dto = new CouponReceiptRecordDto();
            dto.setId(xpAppUserCoupon.getId());
            dto.setCreateTime(xpAppUserCoupon.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            XpWhitelist data = xpWhiteListClient.getXpWhitelistByUid(xpAppUserCoupon.getAppUserId()).getData();
            if(null != data){
                dto.setName(data.getNickName());
                dto.setPhone(data.getAccount());
            }
            dto.setNum(1);
            dto.setExpireTime(xpAppUserCoupon.getExpirationTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
            dto.setStatus(xpAppUserCoupon.getStatus());
            list.add(dto);
        }
        return list;
    }
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/vo/CouponReceiptRecordDto.java
New file
@@ -0,0 +1,24 @@
package com.xiaopeng.account.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel
public class CouponReceiptRecordDto {
    @ApiModelProperty("领取记录id")
    private Long id;
    @ApiModelProperty("领取时间")
    private String createTime;
    @ApiModelProperty("领取人")
    private String name;
    @ApiModelProperty("领取人电话")
    private String phone;
    @ApiModelProperty("领取数量")
    private Integer num;
    @ApiModelProperty("到期时间")
    private String expireTime;
    @ApiModelProperty("状态(1=未使用,2=已使用,3=已过期  0=待领取)")
    private Integer status;
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/vo/CouponReceiptRecordVo.java
New file
@@ -0,0 +1,28 @@
package com.xiaopeng.account.vo;
import com.xiaopeng.common.core.web.page.BasePage;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel
public class CouponReceiptRecordVo extends BasePage {
    @ApiModelProperty("活动id")
    private Integer activityId;
    @ApiModelProperty("领取开始时间yyyy-MM-dd HH:mm:ss")
    private String startTime;
    @ApiModelProperty("领取结束时间yyyy-MM-dd HH:mm:ss")
    private String endTime;
    @ApiModelProperty("领取人")
    private String name;
    @ApiModelProperty("领取电话")
    private String phone;
    @ApiModelProperty("状态(1=未使用,2=已使用,3=已过期  0=待领取)")
    private Integer status;
    private List<Long> appUserIds;
}
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpAppUserCouponMapper.xml
@@ -66,4 +66,22 @@
    </select>
    <select id="getCouponReceiptRecord" resultType="com.xiaopeng.api.model.account.XpAppUserCoupon">
        select * from xp_app_user_coupon
        where activity_id = #{query.activityId}
        <if test="null != query.startTime and '' != query.startTime and null != query.endTime and '' != query.endTime">
            and create_time between #{query.startTime} and #{query.endTime}
        </if>
        <if test="null != query.appUserIds and query.appUserIds.size() > 0">
            and app_user_id in
            <foreach collection="query.appUserIds" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </if>
        <if test="null != query.status">
            and status = #{query.status}
        </if>
        order by create_time desc
    </select>
</mapper>
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/operation/XpWhiteListClientFallbackFactory.java
@@ -3,6 +3,7 @@
import com.xiaopeng.api.feignClient.operation.XpCouponClient;
import com.xiaopeng.api.feignClient.operation.XpWhiteListClient;
import com.xiaopeng.api.model.operation.XpCoupon;
import com.xiaopeng.api.model.operation.XpWhitelist;
import com.xiaopeng.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
@@ -21,6 +22,18 @@
            public R<List<String>> getAllWhiteList() {
                return null;
            }
            public R<List<XpWhitelist>> getXpWhitelistByName(String name) {
                return R.fail("获取白名单失败");
            }
            public R<List<XpWhitelist>> getXpWhitelistByPhone(String phone) {
                return R.fail();
            }
            public R<XpWhitelist> getXpWhitelistByUid(Long uid) {
                return R.fail("根据用户id查询白名单失败");
            }
        };
    }
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/operation/XpWhiteListClient.java
@@ -5,6 +5,7 @@
import com.xiaopeng.api.factory.operation.XpPricingClientFallbackFactory;
import com.xiaopeng.api.factory.operation.XpWhiteListClientFallbackFactory;
import com.xiaopeng.api.model.operation.XpPricing;
import com.xiaopeng.api.model.operation.XpWhitelist;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.dto.ServiceNameConstantsEnum;
import org.springframework.cloud.openfeign.FeignClient;
@@ -26,4 +27,29 @@
    @PostMapping("/logan/api/v1/whitelist/inner/getAllWhiteList")
    R<List<String>> getAllWhiteList();
    /**
     * 根据名称模糊搜索
     * @param name
     * @return
     */
    @PostMapping("/logan/api/v1/whitelist/inner/getXpWhitelistByName")
    R<List<XpWhitelist>> getXpWhitelistByName(@RequestParam String name);
    /**
     * 根据手机号查询
     * @param phone
     * @return
     */
    @PostMapping("/logan/api/v1/whitelist/inner/getXpWhitelistByPhone")
    R<List<XpWhitelist>> getXpWhitelistByPhone(@RequestParam String phone);
    /**
     * 根据账号查询
     * @return
     */
    @PostMapping("/logan/api/v1/whitelist/inner/getXpWhitelistByUid")
    R<XpWhitelist> getXpWhitelistByUid(@RequestParam Long uid);
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/order/XpOrder.java
@@ -174,6 +174,9 @@
    @ApiModelProperty(value = "优惠券id")
    private Long couponId;
    @ApiModelProperty(value = "活动id")
    private Integer activityId;
    /**
     * {@link OrderStatusEnum }
     */
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpActicityController.java
@@ -69,15 +69,15 @@
    private XpAppUserCouponClient appUserCouponClient;
    /**
     * 获取所有白名单手机号
     *
     * @return
     */
    @PostMapping("/logan/inner/acticity/findListToIds")
    @ApiOperation(value = "获取活动信息ids", tags = {"管理后台-获取活动信息ids"})
    public R<List<String>> findListToIds(@RequestParam String acticityName){
        if(acticityName == null){
    public R<List<String>> findListToIds(@RequestParam String acticityName) {
        if (acticityName == null) {
            return R.ok();
        }
        return R.ok(service.findListToIds(acticityName));
@@ -90,19 +90,20 @@
    /**
     * 是否第一次进入某活动
     *
     * @return 活动信息,id 和 img
     */
    @GetMapping("/api/v1/mini-program/acticity/firstEnter")
    @ApiOperation(value = "获取是否第一次推送活动", tags = {"小程序-首页活动"})
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R<XpActivity> firstEnter(HttpServletRequest request){
    public R<XpActivity> firstEnter(HttpServletRequest request) {
        String uid = request.getHeader("XP-Uid");
        ValueOperations<String, String> ops = redisTemplate.opsForValue();
        XpActivity activity = service.activiting(Long.valueOf(uid));
        if (activity !=null) {
        if (activity != null) {
            List<XpAppUserCoupon> couponList = appUserCouponClient.getXpAppUserCoupon(activity.getId()).getData();
            Set<Long> longSet = couponList.stream().map(XpAppUserCoupon::getCouponId).collect(Collectors.toSet());
            if(longSet.isEmpty()){
            if (longSet.isEmpty()) {
                return R.ok();
            }
            List<XpCoupon> xpCoupons1 = xpCouponService.listByIds(longSet);
@@ -122,7 +123,7 @@
                couponVos.add(vo);
            }
            Duration duration = Duration.between(LocalDateTime.now(), activity.getEndTime());
            Boolean isFirst = ops.setIfAbsent(CacheConstants.firstEnterActivity(String.valueOf(activity.getId()), uid),"1", duration);
            Boolean isFirst = ops.setIfAbsent(CacheConstants.firstEnterActivity(String.valueOf(activity.getId()), uid), "1", duration);
            activity.setIsFirst(isFirst);
            activity.setCoupons(couponVos);
        }
@@ -132,17 +133,17 @@
    /**
     * 是否第一次进入某活动
     *
     * @return 活动信息,id 和 img
     */
    @GetMapping("/api/v1/mini-program/acticity/getFloatActicity")
    @ApiOperation(value = "获取首页活动悬浮图标数据", tags = {"小程序-首页活动"})
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R<XpActivity> getFloatActicity(HttpServletRequest request){
    public R<XpActivity> getFloatActicity(HttpServletRequest request) {
        String uid = request.getHeader("XP-Uid");
        XpActivity activity = service.getFloatActicity(Long.valueOf(uid));
        return R.ok(activity);
    }
    @Resource
@@ -153,7 +154,7 @@
    IXpActivityNoticeService noticeService;
    @PostMapping("/v1/api/appUserCoupon/pageList")
    @ApiOperation(value = "活动列表",tags = {"管理后台-活动管理"},response = XpActivity.class)
    @ApiOperation(value = "活动列表", tags = {"管理后台-活动管理"}, response = XpActivity.class)
    public R<PageInfo<XpActivityDto>> pageList(@RequestBody XpActivityPageListQuery query) {
        PageInfo<XpActivityDto> pageList = service.pageList(query);
        for (XpActivityDto dto : pageList.getRecords()) {
@@ -167,19 +168,19 @@
    @PostMapping("/v1/api/appUserCoupon/add")
    @ApiOperation(value = "添加活动",tags = {"管理后台-活动管理"},response = XpCoupon.class)
    public R<?> add(@RequestBody XpActivityDto dto){
    @ApiOperation(value = "添加活动", tags = {"管理后台-活动管理"}, response = XpCoupon.class)
    public R<?> add(@RequestBody XpActivityDto dto) {
        service.save(dto);
        return R.ok();
    }
    @PostMapping("/v1/api/appUserCoupon/{op}")
    @ApiOperation(value = "修改活动状态,release,pause,resume,stop,del",tags = {"管理后台-活动管理"},response = XpCoupon.class)
    public R<XpActivity> updateById(@PathVariable String op,@RequestParam Long id){
    @ApiOperation(value = "修改活动状态,release,pause,resume,stop,del", tags = {"管理后台-活动管理"}, response = XpCoupon.class)
    public R<XpActivity> updateById(@PathVariable String op, @RequestParam Long id) {
        XpActivity activity = service.getById(id);
        switch (op){
        switch (op) {
            case "release":
                activity.setStatus(2);
                break;
@@ -199,28 +200,30 @@
                throw new UnsupportedOperationException("Unsupported" + op);
        }
        service.updateById(activity);
        log.info("修改活动状态:{}",activity);
        log.info("修改活动状态:{}", activity);
        return R.ok();
    }
    @GetMapping("/v1/api/appUserCoupon/detail")
    @ApiOperation(value = "活动详情",tags = {"管理后台-活动管理"},response = XpCoupon.class)
    public R<XpActivityDto> queryById(@RequestParam Long id){
    @ApiOperation(value = "活动详情", tags = {"管理后台-活动管理"}, response = XpCoupon.class)
    public R<XpActivityDto> queryById(@RequestParam Long id) {
        return R.ok(service.detail(id));
    }
    /**
     * 根据活动id和优惠券id获取活动策略
     *
     * @param activityId
     * @param couponId
     * @return
     */
    @PostMapping("/logan/inner/acticity/getXpActicityStrategy")
    public R<XpActicityStrategy> getXpActicityStrategy(@RequestParam("activityId") Long activityId, @RequestParam("couponId") Long couponId){
    public R<XpActicityStrategy> getXpActicityStrategy(@RequestParam("activityId") Long activityId, @RequestParam("couponId") Long couponId) {
        XpActicityCoupon one = xpActicityCouponService.lambdaQuery().eq(XpActicityCoupon::getActivityId, activityId).eq(XpActicityCoupon::getCouponId, couponId).one();
        if(one == null){
        if (one == null) {
            return R.ok();
        }
        return R.ok(xpActicityStrategyService.getById(one.getActicityStrategyId()));
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java
@@ -6,6 +6,7 @@
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.hutool.core.util.PhoneUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.xiaopeng.api.model.account.SysUser;
import com.xiaopeng.api.model.operation.XpWhitelist;
import com.xiaopeng.api.model.operation.XpWhitelistOperlog;
@@ -464,6 +465,41 @@
    /**
     * 根据名称模糊搜索
     * @param name
     * @return
     */
    @PostMapping("/logan/api/v1/whitelist/inner/getXpWhitelistByName")
    public R<List<XpWhitelist>> getXpWhitelistByName(@RequestParam String name){
        List<XpWhitelist> list = xpWhitelistService.list(new QueryWrapper<XpWhitelist>().like("nick_name", name)
                .eq("status", 1).eq("is_deleted", 0));
        return R.ok(list);
    }
    /**
     * 根据手机号查询
     * @param phone
     * @return
     */
    @PostMapping("/logan/api/v1/whitelist/inner/getXpWhitelistByPhone")
    public R<List<XpWhitelist>> getXpWhitelistByPhone(@RequestParam String phone){
        List<XpWhitelist> list = xpWhitelistService.list(new QueryWrapper<XpWhitelist>().eq("account", phone)
                .eq("status", 1).eq("is_deleted", 0));
        return R.ok(list);
    }
    /**
     * 根据账号查询
     * @return
     */
    @PostMapping("/logan/api/v1/whitelist/inner/getXpWhitelistByUid")
    public R<XpWhitelist> getXpWhitelistByUid(@RequestParam Long uid){
        XpWhitelist one = xpWhitelistService.getOne(new QueryWrapper<XpWhitelist>().eq("app_user_id", uid).eq("is_deleted", 0));
        return R.ok(one);
    }
}
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -221,7 +221,7 @@
     * @param query 分页查询参数
     * @return 分页结果
     */
    @ApiOperation(value = "订单分页列表", tags = {"管理后台-交易管理-订单管理"})
    @ApiOperation(value = "订单分页列表", tags = {"管理后台-交易管理-订单管理", "管理后台-活动管理"})
    @PostMapping("/api/v1/order/pageList")
    public R<PageInfo<XpOrderPageVO>> pageList( @RequestBody XpOrderPageQuery query) {
        PageInfo<XpOrderPageVO> pageInfo = xpOrderService.pageList(query);
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/query/XpOrderPageQuery.java
@@ -50,4 +50,7 @@
    @ApiModelProperty(value = "用户ID")
    private Long uid;
    @ApiModelProperty("活动id")
    private Integer activityId;
}
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/model/vo/XpOrderPageVO.java
@@ -66,4 +66,13 @@
    @ApiModelProperty(value = "下单终点站点名称")
    private String endPointName;
    @ApiModelProperty("优惠金额")
    private BigDecimal discountAmount;
    @ApiModelProperty("订单金额合计")
    private BigDecimal orderTotalAmount;
    @ApiModelProperty("优惠金额合计")
    private BigDecimal discountTotalAmount;
}
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -261,6 +261,13 @@
        }
        wrapper.eq(Objects.nonNull(query.getUid()), XpOrder::getAppUserId, query.getUid());
        wrapper.orderByDesc(XpOrder::getCreateTime);
        if(null != query.getActivityId()){
            wrapper.eq(XpOrder::getActivityId, query.getActivityId());
        }
        List<XpOrder> list = this.list(wrapper);
        BigDecimal orderMoney = list.stream().map(XpOrder::getOrderMoney).collect(Collectors.toList()).stream().reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
        BigDecimal couponMoney = list.stream().map(XpOrder::getCouponMoney).collect(Collectors.toList()).stream().reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
        // 2. 分页查询
        Page<XpOrder> page = new Page<>(query.getPageNum(), query.getPageSize());
@@ -293,7 +300,7 @@
        // 5. 组装 VO
        List<XpOrderPageVO> voList = pageResult.getRecords().stream()
                .map(order -> convertToPageVO(order, userInfoMap, vehicleMap, fleetMap))
                .map(order -> convertToPageVO(order, userInfoMap, vehicleMap, fleetMap, orderMoney, couponMoney))
                .collect(Collectors.toList());
        // 6. 返回分页结果
@@ -612,7 +619,9 @@
    private XpOrderPageVO convertToPageVO(XpOrder order,
                                          Map<String, UcUserInfo> userInfoMap,
                                          Map<Long, XpVehicle> vehicleMap,
                                          Map<Long, XpFleet> fleetMap) {
                                          Map<Long, XpFleet> fleetMap,
                                          BigDecimal orderMoney,
                                          BigDecimal couponMoney) {
        XpOrderPageVO vo = new XpOrderPageVO();
        vo.setId(order.getId());
        vo.setOrderNumber(order.getOrderNumber());
@@ -625,6 +634,8 @@
        vo.setStatus(order.getStatus());
        vo.setStartPointName(order.getStartPointName());
        vo.setEndPointName(order.getEndPointName());
        vo.setOrderTotalAmount(orderMoney);
        vo.setDiscountTotalAmount(couponMoney);
        // 用户信息
        if (Objects.nonNull(order.getAppUserId()) && userInfoMap != null && userInfoMap.containsKey(order.getAppUserId().toString())) {