liujie
2026-02-26 58cd3733911c4a9970a5daf219950582100f3db2
优惠券处理
5个文件已添加
11个文件已修改
319 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/XpAppUserCouponMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/model/dto/SendCouponDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpAppUserCouponService.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCouponServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpAppUserCouponMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/operation/XpCouponClientFallbackFactory.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/operation/XpWhiteListClientFallbackFactory.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/operation/XpCouponClient.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/operation/XpWhiteListClient.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/account/XpAppUserCoupon.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpCouponController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpWhitelistService.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpWhitelistServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/XpAppUserCouponController.java
@@ -1,9 +1,11 @@
package com.xiaopeng.account.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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;
import com.xiaopeng.account.model.vo.XpAppUserCouponListVo;
import com.xiaopeng.account.model.vo.XpAppUserCouponTotalVo;
@@ -11,6 +13,9 @@
import com.xiaopeng.account.service.IXpAppUserCouponService;
import com.xiaopeng.api.dto.account.GetUserCouponDto;
import com.xiaopeng.api.dto.account.UseUserCouponDto;
import com.xiaopeng.api.dto.account.UserResourcesDto;
import com.xiaopeng.api.feignClient.account.UserResourcesClient;
import com.xiaopeng.api.feignClient.account.XpAppUserClient;
import com.xiaopeng.api.feignClient.operation.XpOpenCityClient;
import com.xiaopeng.api.model.account.XpAppUserCoupon;
import com.xiaopeng.api.vo.account.UserCouponVo;
@@ -42,18 +47,31 @@
    private final IXpAppUserCouponService xpAppUserCouponService;
    private final XpOpenCityClient xpOpenCityClient;
    private final UserResourcesClient userResourcesClient;
    public XpAppUserCouponController(IXpAppUserCouponService xpAppUserCouponService, XpOpenCityClient xpOpenCityClient) {
    public XpAppUserCouponController(IXpAppUserCouponService xpAppUserCouponService, XpOpenCityClient xpOpenCityClient, UserResourcesClient userResourcesClient) {
        this.xpAppUserCouponService = xpAppUserCouponService;
        this.xpOpenCityClient = xpOpenCityClient;
        this.userResourcesClient = userResourcesClient;
    }
    @PostMapping("/inner/appUserCoupon/getUserCoupon")
    public R<UserCouponVo> getUserCoupon(@RequestBody GetUserCouponDto dto) {
        String phone ="18888888888";
        if(dto.getUserId()>1){
            UserResourcesDto baseUserByUid = userResourcesClient.getBaseUserByUid(dto.getUserId().toString());
            if(baseUserByUid!=null){
                Object data = baseUserByUid.getData();
                phone = JSONObject.parseObject(data.toString()).getString("mobile");
            }
        }
        UserCouponVo userCouponVo = new UserCouponVo();
        // 获取用户所有优惠券
        List<XpAppUserCoupon> couponList = xpAppUserCouponService.list(new LambdaQueryWrapper<XpAppUserCoupon>().eq(XpAppUserCoupon::getStatus, 1).eq(XpAppUserCoupon::getAppUserId, dto.getUserId()).apply("FIND_IN_SET({0}, open_city_id)", dto.getOpenCityId()) );
        List<XpAppUserCoupon> couponList = xpAppUserCouponService.list(new LambdaQueryWrapper<XpAppUserCoupon>().eq(XpAppUserCoupon::getStatus, 1).eq(XpAppUserCoupon::getPhone,phone).apply("FIND_IN_SET({0}, open_city_id)", dto.getOpenCityId()) );
        if(couponList.isEmpty()){
            return R.ok(userCouponVo);
        }
@@ -98,7 +116,14 @@
    public R<XpAppUserCouponVo> list(@RequestBody XpUserCouponListQuery query, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        XpAppUserCouponVo vo = xpAppUserCouponService.userCouponList(query, uid);
        String phone ="18888888888";
        UserResourcesDto baseUserByUid = userResourcesClient.getBaseUserByUid(uid);
        if(baseUserByUid!=null){
            Object data = baseUserByUid.getData();
            phone = JSONObject.parseObject(data.toString()).getString("mobile");
        }
        XpAppUserCouponVo vo = xpAppUserCouponService.userCouponList(query, phone);
        return R.ok(vo);
    }
@@ -129,8 +154,14 @@
    public R<XpAppUserCouponListVo> detail(@PathVariable("couponId") Long couponId, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        String phone ="18888888888";
        UserResourcesDto baseUserByUid = userResourcesClient.getBaseUserByUid(uid);
        if(baseUserByUid!=null){
            Object data = baseUserByUid.getData();
            phone = JSONObject.parseObject(data.toString()).getString("mobile");
        }
        XpAppUserCoupon coupon = xpAppUserCouponService.getById(couponId);
        if(uid.equals(coupon.getAppUserId().toString())){
        if(phone.equals(coupon.getPhone())){
            XpAppUserCouponListVo vo = new XpAppUserCouponListVo();
            vo.setCouponId(coupon.getId().toString());
            vo.setTitle(coupon.getCouponName());
@@ -158,9 +189,25 @@
    public R<XpAppUserCouponTotalVo> total(HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        XpAppUserCouponTotalVo vo = xpAppUserCouponService.userCouponTotal(uid);
        String phone ="18888888888";
        UserResourcesDto baseUserByUid = userResourcesClient.getBaseUserByUid(uid);
        if(baseUserByUid!=null){
            Object data = baseUserByUid.getData();
            phone = JSONObject.parseObject(data.toString()).getString("mobile");
        }
        XpAppUserCouponTotalVo vo = xpAppUserCouponService.userCouponTotal(phone);
        return R.ok(vo);
    }
    /**
     * 发放优惠券
     */
    @PostMapping("/api/v1/appUserCoupon/send")
    @ApiOperation(value = "发放优惠券", tags = {"管理后台-发放优惠券"})
    public R<String> send(@RequestBody SendCouponDto dto) {
        return xpAppUserCouponService.send(dto);
    }
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/mapper/XpAppUserCouponMapper.java
@@ -17,6 +17,6 @@
 */
public interface XpAppUserCouponMapper extends BaseMapper<XpAppUserCoupon> {
    Page<XpAppUserCouponListVo> userCouponList(@Param("page") Page<XpAppUserCouponListVo> page, @Param("query") XpUserCouponListQuery query, @Param("uid") Long uid);
    Page<XpAppUserCouponListVo> userCouponList(@Param("page") Page<XpAppUserCouponListVo> page, @Param("query") XpUserCouponListQuery query, @Param("phone") String phone);
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/model/dto/SendCouponDto.java
New file
@@ -0,0 +1,18 @@
package com.xiaopeng.account.model.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel("发放优惠券Dto")
public class SendCouponDto {
    @ApiModelProperty("手机号集合  不传为全部")
    private List<String> phone;
    @ApiModelProperty("优惠券id")
    private Long couponId;
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/IXpAppUserCouponService.java
@@ -3,11 +3,13 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xiaopeng.account.model.dto.ReceiveCouponDto;
import com.xiaopeng.account.model.dto.SendCouponDto;
import com.xiaopeng.account.model.query.XpUserCouponListQuery;
import com.xiaopeng.account.model.vo.XpAppUserCouponListVo;
import com.xiaopeng.account.model.vo.XpAppUserCouponTotalVo;
import com.xiaopeng.account.model.vo.XpAppUserCouponVo;
import com.xiaopeng.api.model.account.XpAppUserCoupon;
import com.xiaopeng.common.core.domain.R;
import java.util.List;
@@ -24,17 +26,17 @@
    /**
     * 获取用户优惠券列表
     * @param query
     * @param uid
     * @param phone
     * @return
     */
    XpAppUserCouponVo userCouponList(XpUserCouponListQuery query, String uid);
    XpAppUserCouponVo userCouponList(XpUserCouponListQuery query, String phone);
    /**+
     * 获取用户优惠券数量total
     * @param uid
     * @param phone
     * @return
     */
    XpAppUserCouponTotalVo userCouponTotal(String uid);
    XpAppUserCouponTotalVo userCouponTotal(String phone);
    /**
     * 领取优惠券
@@ -52,4 +54,11 @@
    List<XpAppUserCoupon> timeRule(List<XpAppUserCoupon> couponList);
    /**
     * 发送优惠券
     * @param dto
     * @return
     */
    R<String> send(SendCouponDto dto);
}
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCouponServiceImpl.java
@@ -7,17 +7,24 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xiaopeng.account.mapper.XpAppUserCouponMapper;
import com.xiaopeng.account.model.dto.ReceiveCouponDto;
import com.xiaopeng.account.model.dto.SendCouponDto;
import com.xiaopeng.account.model.query.XpUserCouponListQuery;
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.service.IXpAppUserCouponService;
import com.xiaopeng.account.util.holiday.HolidayUtil;
import com.xiaopeng.api.feignClient.operation.XpCouponClient;
import com.xiaopeng.api.feignClient.operation.XpWhiteListClient;
import com.xiaopeng.api.model.account.XpAppUserCoupon;
import com.xiaopeng.api.model.operation.XpCoupon;
import com.xiaopeng.api.model.operation.XpWhitelist;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -36,16 +43,22 @@
    @Autowired
    private HolidayUtil holidayUtil;
    @Autowired
    private XpCouponClient xpCouponClient;
    @Autowired
    private XpWhiteListClient xpWhiteListClient;
    /**
     * 获取用户优惠券列表
     * @param query
     * @param uid
     * @param phone
     * @return
     */
    @Override
    public XpAppUserCouponVo userCouponList(XpUserCouponListQuery query, String uid) {
    public XpAppUserCouponVo userCouponList(XpUserCouponListQuery query, String phone) {
        Page<XpAppUserCouponListVo> page = new Page<>(query.getPageNum(), query.getPageSize());
        Page<XpAppUserCouponListVo> list = baseMapper.userCouponList(page, query, Long.valueOf(uid));
        Page<XpAppUserCouponListVo> list = baseMapper.userCouponList(page, query, phone);
        XpAppUserCouponVo vo = new XpAppUserCouponVo();
        vo.setTotal((int) page.getTotal());
        vo.setList(list.getRecords());
@@ -54,12 +67,12 @@
    /**
     * 获取用户优惠券数量total
     * @param uid
     * @param phone
     * @return
     */
    @Override
    public XpAppUserCouponTotalVo userCouponTotal(String uid) {
        List<XpAppUserCoupon> couponList = baseMapper.selectList(new LambdaQueryWrapper<XpAppUserCoupon>().eq(XpAppUserCoupon::getAppUserId, uid));
    public XpAppUserCouponTotalVo userCouponTotal(String phone) {
        List<XpAppUserCoupon> couponList = baseMapper.selectList(new LambdaQueryWrapper<XpAppUserCoupon>().eq(XpAppUserCoupon::getPhone, phone));
        XpAppUserCouponTotalVo vo = new XpAppUserCouponTotalVo();
        vo.setAvailableNum((int) couponList.stream().filter(e -> e.getStatus() == 1).count());
        vo.setUsedNum((int) couponList.stream().filter(e -> e.getStatus() == 2).count());
@@ -104,6 +117,46 @@
        return xpAppUserCoupons;
    }
    /**
     * 发送优惠券
     * @param dto
     * @return
     */
    @Override
    public R<String> send(SendCouponDto dto) {
        R<XpCoupon> coupon = xpCouponClient.getCouponById(dto.getCouponId());
        if(coupon!=null){
            XpCoupon xpCoupon = coupon.getData();
            if(dto.getPhone()==null){
                // 全部发放
                R<List<String>> allWhiteList = xpWhiteListClient.getAllWhiteList();
                if(allWhiteList!=null){
                    List<String> phoneList = allWhiteList.getData();
                    dto.setPhone(phoneList);
                }
            }
            for (String phone : dto.getPhone()) {
                XpAppUserCoupon xpAppUserCoupon = new XpAppUserCoupon();
                xpAppUserCoupon.setFullMoney(xpCoupon.getConditionalAmount());
                xpAppUserCoupon.setMoney(xpCoupon.getAmount());
                xpAppUserCoupon.setCouponId(dto.getCouponId());
                xpAppUserCoupon.setExpirationTime(LocalDateTime.now().plusDays(100));
                xpAppUserCoupon.setStatus(0);
                xpAppUserCoupon.setCouponType(xpCoupon.getCouponType());
                xpAppUserCoupon.setPhone( phone);
                xpAppUserCoupon.setCouponName(xpCoupon.getCouponName());
                xpAppUserCoupon.setOpenCityId("0");
                xpAppUserCoupon.setTimeJson("[{\"time\": [\"00:00-23:59\"], \"type\": 3, \"typeStr\": 0}]");
                baseMapper.insert(xpAppUserCoupon);
            }
        }
        return null;
    }
    /**
     * 是否在运营内
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpAppUserCouponMapper.xml
@@ -23,7 +23,7 @@
        else status
        end as `status`
        FROM xp_app_user_coupon
        WHERE app_user_id = #{uid}
        WHERE phone = #{phone}
        ) as t
        where 1=1
        <if test="query.status != null">
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/operation/XpCouponClientFallbackFactory.java
New file
@@ -0,0 +1,27 @@
package com.xiaopeng.api.factory.operation;
import com.xiaopeng.api.dto.operation.LonLatDto;
import com.xiaopeng.api.feignClient.operation.XpCouponClient;
import com.xiaopeng.api.feignClient.operation.XpPricingClient;
import com.xiaopeng.api.model.operation.XpCoupon;
import com.xiaopeng.api.model.operation.XpPricing;
import com.xiaopeng.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class XpCouponClientFallbackFactory implements FallbackFactory<XpCouponClient> {
    @Override
    public XpCouponClient create(Throwable cause) {
        return new XpCouponClient() {
            @Override
            public R<XpCoupon> getCouponById(Long couponId) {
                log.error("XpCouponClientFallbackFactory getCouponById error:{}", cause.getMessage());
                return null;
            }
        };
    }
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/operation/XpWhiteListClientFallbackFactory.java
New file
@@ -0,0 +1,26 @@
package com.xiaopeng.api.factory.operation;
import com.xiaopeng.api.feignClient.operation.XpCouponClient;
import com.xiaopeng.api.feignClient.operation.XpWhiteListClient;
import com.xiaopeng.api.model.operation.XpCoupon;
import com.xiaopeng.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import java.util.List;
@Slf4j
@Component
public class XpWhiteListClientFallbackFactory implements FallbackFactory<XpWhiteListClient> {
    @Override
    public XpWhiteListClient create(Throwable cause) {
        return new XpWhiteListClient() {
            @Override
            public R<List<String>> getAllWhiteList() {
                return null;
            }
        };
    }
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/operation/XpCouponClient.java
New file
@@ -0,0 +1,24 @@
package com.xiaopeng.api.feignClient.operation;
import com.xiaopeng.api.factory.operation.XpCouponClientFallbackFactory;
import com.xiaopeng.api.model.operation.XpCoupon;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.dto.ServiceNameConstantsEnum;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
@FeignClient(contextId = "XpCouponClient", value = ServiceNameConstantsEnum.XP_OPERATION_SERVICE, fallbackFactory = XpCouponClientFallbackFactory.class)
public interface XpCouponClient {
    /**
     * 根据优惠券id获取优惠券信息
     * @param couponId
     * @return
     */
    @PostMapping("/inner/xp-coupon/getCouponById")
    R<XpCoupon> getCouponById(@RequestParam Long couponId);
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/operation/XpWhiteListClient.java
New file
@@ -0,0 +1,29 @@
package com.xiaopeng.api.feignClient.operation;
import com.xiaopeng.api.dto.operation.LonLatDto;
import com.xiaopeng.api.factory.operation.XpPricingClientFallbackFactory;
import com.xiaopeng.api.factory.operation.XpWhiteListClientFallbackFactory;
import com.xiaopeng.api.model.operation.XpPricing;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.dto.ServiceNameConstantsEnum;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(contextId = "XpWhiteListClient", value = ServiceNameConstantsEnum.XP_OPERATION_SERVICE, fallbackFactory = XpWhiteListClientFallbackFactory.class)
public interface XpWhiteListClient {
    /**
     * 获取所有白名单手机号
     * @return
     */
    @PostMapping("/inner/getAllWhiteList")
    R<List<String>> getAllWhiteList();
}
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/account/XpAppUserCoupon.java
@@ -52,6 +52,10 @@
    @ApiModelProperty(value = "用户id")
    private Long appUserId;
    @ApiModelProperty(value = "手机号")
    private String phone;
    @ApiModelProperty(value = "优惠券发放id")
    private Long couponId;
xp-robotaxi-api/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -17,6 +17,8 @@
com.xiaopeng.api.factory.account.XpOperationUserClientFallbackFactory
com.xiaopeng.api.factory.operation.XpElectronicClientFallbackFactory
com.xiaopeng.api.factory.operation.XpOpenCityClientFallbackFactory
com.xiaopeng.api.factory.operation.XpCouponClientFallbackFactory
com.xiaopeng.api.factory.operation.XpWhiteListClientFallbackFactory
com.xiaopeng.api.factory.operation.ReassignOrderClientFallbackFactory
com.xiaopeng.api.factory.vehicleConvoy.UserVehicleClientFallbackFactory
com.xiaopeng.api.factory.vehicleConvoy.XpFleetOperationsClientFallbackFactory
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpCouponController.java
@@ -1,9 +1,14 @@
package com.xiaopeng.operation.controller;
import com.xiaopeng.api.model.operation.XpCoupon;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.operation.service.IXpCouponService;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestParam;
/**
 * <p>
@@ -14,7 +19,20 @@
 * @since 2026-02-03
 */
@Controller
@RequestMapping("/xp-coupon")
@RequestMapping("")
public class XpCouponController {
    private final IXpCouponService xpCouponService;
    public XpCouponController(IXpCouponService xpCouponService) {
        this.xpCouponService = xpCouponService;
    }
    @PostMapping("/inner/xp-coupon/getCouponById")
    public R<XpCoupon> getCouponById(@RequestParam Long couponId){
        XpCoupon xpCoupon = xpCouponService.getById(couponId);
        return R.ok(xpCoupon);
    }
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpWhitelistController.java
@@ -72,6 +72,17 @@
    @Resource
    private TokenService tokenService;
    /**
     * 获取所有白名单手机号
     * @return
     */
    @PostMapping("/inner/getAllWhiteList")
    public R<List<String>> getAllWhiteList(){
        return R.ok(xpWhitelistService.getAllWhiteList());
    }
    @ApiOperation(value = "白名单管理分页列表", response = XpWhitelist.class)
    @PostMapping("/pageList")
    public R<PageInfo<XpWhitelist>> pageList(@RequestBody WhitelistPageListQuery query) {
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/IXpWhitelistService.java
@@ -34,4 +34,8 @@
    R deleteByIds(List<Long> ids, SysUser sysUser);
    R freezeByIds(List<Long> ids, SysUser sysUser);
    List<String> getAllWhiteList();
}
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpWhitelistServiceImpl.java
@@ -19,6 +19,7 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -182,4 +183,14 @@
        xpWhitelistOperlogMapper.insert(xpWhitelistOperlog);
        return R.ok();
    }
    /**
     * 获取所有白名单
     * @return
     */
    @Override
    public List<String> getAllWhiteList() {
        return lambdaQuery().select(XpWhitelist::getAccount).list()
                .stream().map(XpWhitelist::getAccount).collect(Collectors.toList());
    }
}