“mitao”
2026-03-01 c1a8895ae66f7be7f966b9e0732c18605948de91
bugfix
1 文件已重命名
2个文件已修改
83 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/TokenController.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/util/EncryptionDecryptionUtil.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/controller/TokenController.java
@@ -1,6 +1,5 @@
package com.xiaopeng.account.controller;
import com.xiaopeng.account.constant.I18nKeyConstant;
import com.xiaopeng.account.service.ISysUserService;
import com.xiaopeng.account.service.IXpOperationsUserService;
import com.xiaopeng.account.service.impl.SysLoginService;
@@ -12,10 +11,8 @@
import com.xiaopeng.api.model.account.XpOperationsUser;
import com.xiaopeng.api.vo.account.LoginOperationUser;
import com.xiaopeng.api.vo.account.LoginUser;
import com.xiaopeng.api.vo.operation.SmsVo;
import com.xiaopeng.common.core.constant.VerificationCodeConstants;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
import com.xiaopeng.common.core.utils.JwtUtils;
import com.xiaopeng.common.core.utils.StringUtils;
import com.xiaopeng.common.redis.service.RedisService;
@@ -26,10 +23,7 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@@ -64,6 +58,8 @@
    @Value("${sms.appid}")
    private String sms_appid;
    // @Autowired
    // private EncryptionDecryptionUtil encryptionDecryptionUtil;
    @ApiOperation(value = "用户登录", tags = "管理后台-用户登录")
    @PostMapping("/base/v1/login")
@@ -81,7 +77,36 @@
        // 修改用户最后登录时间
        return R.ok(map);
    }
   /* @ApiOperation(value = "解密测试", tags = "管理后台-用户登录")
    @PostMapping("/base/v1/decrypted")
    public R<?> decrypted(@RequestBody LoginBody form, HttpServletRequest request) {
        String decrypt = encryptionDecryptionUtil.decrypt(form.getUsername(), request);
        return R.ok(decrypt);
    }
    @ApiOperation(value = "加密测试", tags = "管理后台-用户登录")
    @GetMapping("/base/v1/encrypted")
    public R<String> encrypted(HttpServletRequest request, HttpServletResponse response) {
        String content = "Hello, World!";
        String sessionId = request.getSession(true).getId();
        if(StringUtils.isEmpty(sessionId)){
            throw new ServiceException("请求失败,请稍后重试", I18nKeyConstant.REQUEST_FAILED);
        }
        Object cacheObject = redisService.getCacheObject("session:id:" + sessionId);
        if (null != cacheObject) {
            JSONObject jsonObject = JSONObject.parseObject(cacheObject.toString());
            return R.ok(jsonObject.getString("publicKey"));
        }
        KeyPair keyPair = RSAUtil.generateKeyPair();
        String publicKey = RSAUtil.getPublicKey(keyPair);
        String privateKey = RSAUtil.getPrivateKey(keyPair);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("publicKey", publicKey);
        jsonObject.put("privateKey", privateKey);
        redisService.setCacheObject("session:id:" + sessionId, jsonObject.toJSONString(), 1L, TimeUnit.MINUTES);
        JSONObject encrypt = EncryptionDecryptionUtil.encrypt(content, privateKey);
        response.setHeader("xps", encrypt.getString("aes_key"));
        return R.ok(encrypt.getString("content"));
    }*/
    @ApiOperation(value = "账号密码登录", tags = {"运维APP登录"})
    @PostMapping("base/v1/operationPasswordLogin")
    public R<?> operationPasswordLogin(@RequestBody AppLoginPasswordDTO appLoginPasswordDTO, HttpServletRequest request) {
@@ -142,19 +167,19 @@
                codeType = VerificationCodeConstants.UPDATE_PASSWORD_CODE;
                break;
        }
        SmsVo vo = new SmsVo();
        vo.setAppId(sms_appid);
        vo.setPushType(1);
        vo.setReceivers(appLoginPasswordDTO.getPhoneNumber());
        vo.setTemplateCode("RobotaxiVerifyCodeSmsTpl");
        vo.setAppPushConfigCode("RobotaxiVerifyCodeSms");
        vo.setParams(new HashMap<>());
        vo.getParams().put("code", code);
        SmsDto smsDto = smsClient.pushSms(vo);
        if(null == smsDto || smsDto.getCode() != 200){
            throw new ServiceException("短信发送失败", I18nKeyConstant.SMS_PUSH_FAILED);
        }
        //TODO 短信服务开通后再开启
        // SmsVo vo = new SmsVo();
        // vo.setAppId(sms_appid);
        // vo.setPushType(1);
        // vo.setReceivers(appLoginPasswordDTO.getPhoneNumber());
        // vo.setTemplateCode("RobotaxiVerifyCodeSmsTpl");
        // vo.setAppPushConfigCode("RobotaxiVerifyCodeSms");
        // vo.setParams(new HashMap<>());
        // vo.getParams().put("code", code);
        // SmsDto smsDto = smsClient.pushSms(vo);
        // if(null == smsDto || smsDto.getCode() != 200){
        //     throw new ServiceException("短信发送失败", I18nKeyConstant.SMS_PUSH_FAILED);
        // }
        redisService.setCacheObject(codeType+appLoginPasswordDTO.getPhoneNumber(), code, 60L, TimeUnit.SECONDS);
        return R.ok();
    }
xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/util/EncryptionDecryptionUtil.java
File was renamed from xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/util/encryptionDecryptionUtil.java
@@ -1,18 +1,19 @@
package com.xiaopeng.account.util;
import com.alibaba.fastjson.JSONObject;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.utils.AESUtil;
import com.xiaopeng.common.core.utils.RSAUtil;
import com.xiaopeng.common.redis.service.RedisService;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;import java.util.Map; /**
import javax.servlet.http.HttpServletRequest;
/**
 * 参数加解密工具类
 */
@Component
public class encryptionDecryptionUtil {
public class EncryptionDecryptionUtil {
    @Resource
    private RedisService redisService;
xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/service/impl/XpVehicleServiceImpl.java
@@ -38,10 +38,12 @@
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.data.geo.Point;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -81,6 +83,8 @@
    private RedisService redisService;
    @Autowired
    private MongoTemplate mongoTemplate;
    @Autowired
    private RedisTemplate redisTemplate;
    @Override
    public List<XpVehicle> listByIds(List<Long> ids) {
@@ -149,8 +153,9 @@
        }
        for (XpVehicleVO xpVehicleVO : list) {
            GeoJsonPoint geoJsonPoint = redisService.getCacheObject("vehiclePosition:" + xpVehicleVO.getVehicleVin());
            if (Objects.nonNull(geoJsonPoint)){
            List<Point> positionList = redisTemplate.opsForGeo().position("vehiclePosition:" + xpVehicleVO.getVehicleVin(), xpVehicleVO.getVehicleVin());
            if (CollUtil.isNotEmpty(positionList)){
                Point geoJsonPoint = positionList.get(0);
                // 获取经纬度
                xpVehicleVO.setLongitude(geoJsonPoint.getX());
                xpVehicleVO.setLatitude(geoJsonPoint.getY());