zhibing.pu
2024-09-02 71a68f675e319967c3078f3f2b86ee971b47b50b
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -13,8 +13,12 @@
import com.stylefeng.guns.modular.system.model.UserInfo;
import com.stylefeng.guns.modular.system.service.*;
import com.stylefeng.guns.modular.system.util.*;
import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil;
import com.stylefeng.guns.modular.system.util.itextpdf.HtmlToPdfUtils;
import com.stylefeng.guns.modular.system.warpper.*;
import com.stylefeng.guns.modular.taxi.model.TransactionDetails;
import com.stylefeng.guns.modular.taxi.service.IPaymentRecordService;
import com.stylefeng.guns.modular.taxi.service.ITransactionDetailsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -22,6 +26,8 @@
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -47,6 +53,8 @@
@RestController
@RequestMapping("")
public class UserInfoController {
    Logger log = LoggerFactory.getLogger(UserInfoController.class);
    @Autowired
    private IUserInfoService userInfoService;
@@ -74,6 +82,13 @@
    @Autowired
    private TEmailService emailService;
    @Autowired
    private ITransactionDetailsService transactionDetailsService;
    @Autowired
    private IPaymentRecordService paymentRecordService;
    @Autowired
    private FleetEngineUtil fleetEngineUtil;
@@ -186,7 +201,32 @@
            return ResultUtil.paranErr();
        }
    }
    /**
     * 短信回调通知
     * @param request
     */
    @ResponseBody
    @PostMapping("/base/sendCellulantMessageCallback")
    public void sendCellulantMessageCallback(HttpServletRequest request){
        try {
            StringBuilder sb = new StringBuilder();
            InputStream inputStream = request.getInputStream();
            String s;
            BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
            while ((s = in.readLine()) != null) {
                sb.append(s);
            }
            in.close();
            inputStream.close();
            log.info("短信通知回调:" + sb.toString());
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    @ResponseBody
    @PostMapping("/base/sedEmail")
    @ApiOperation(value = "获取邮箱验证码【1.0】", tags = {"用户端-登录"}, notes = "")
@@ -257,12 +297,12 @@
                EmailUtil.send(email, language == 1 ? "邮箱验证" : language == 2 ? "Verification code" : "Code de validation",  document.html());
                //开始生成pdf收据和html收据
                File file = new File("/usr/local/nginx/html/files/html/");
                File file = new File("/home/igotechgh/nginx/html/files/html/");
                if(!file.exists()){
                    file.mkdirs();
                }
                String randomString = ToolUtil.getRandomString(10);
                file = new File("/usr/local/nginx/html/files/html/mainbox_" + randomString + ".html");
                file = new File("/home/igotechgh/nginx/html/files/html/mainbox_" + randomString + ".html");
                if(!file.exists()){
                    file.createNewFile();
                }
@@ -271,7 +311,7 @@
                fileWriter.flush();
                fileWriter.close();
                String link ="http://182.160.16.251:81/files/html/mainbox_" + randomString + ".html";
                String link ="https://igo.i-go.group/files/html/mainbox_" + randomString + ".html";
                TEmail tEmail = new TEmail();
                tEmail.setLink(link);
                tEmail.setUserId(uid);
@@ -706,8 +746,9 @@
            Map<String, Object> map = userInfoService.queryUser(language, phone);
            if(null != map){
                return ResultUtil.success(UserInfoWarpper.getUserInfoWarpper(map));
            }else{
                return ResultUtil.error(language == 1 ? "此账号不存在" : language == 2 ? "The account does not exist" : "Ce compte n’existe pas");
            }
            return ResultUtil.success(new JSONObject());
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
@@ -1142,9 +1183,9 @@
    @RequestMapping("/base/user/image")
    public String image(@RequestPart("file") MultipartFile file) {
        try {
            String pictureName = OBSUploadUtil.inputStreamUpload(file);
            String pictureName = GoogleCloudStorageUtil.upload(file);
            return pictureName;
        } catch (IOException e1) {
        } catch (Exception e1) {
            return null;
        }
    }
@@ -1237,6 +1278,48 @@
    }
    /**
     * 用户查询充值记录
     * @param request
     * @return
     */
    @ResponseBody
    @PostMapping("/api/user/queryRechargeRecord")
    @ApiOperation(value = "用户查询充值记录", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "页码,首页1", name = "pageNum", required = true, dataType = "int"),
            @ApiImplicitParam(value = "页条数", name = "size", required = true, dataType = "int"),
            @ApiImplicitParam(value = "语言", name = "language", required = true, dataType = "int"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil queryRechargeRecord(Integer pageNum, Integer size,Integer language,HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            RechargeRecordWarpper rechargeRecordWarpper = new RechargeRecordWarpper();
            List<Map<String,Object>> paymentRecord = paymentRecordService.queryRechargeRecord(uid, pageNum, size);
            for (Map<String, Object> map : paymentRecord) {
                if(null != map.get("insertTime")){
                    String time = map.get("insertTime").toString();
                    map.put("insertTime", DateUtil.conversionFormat(language, time));
                }
            }
            // 分装返回充值记录实体
            List<TransactionDetailsWarpper> transactionDetailsWarpper = TransactionDetailsWarpper.getTransactionDetailsWarpper(paymentRecord);
            // 查询充值金额总和
            double sum = paymentRecordService.queryRechargeMoneySum(uid);
            rechargeRecordWarpper.setSum(sum);
            rechargeRecordWarpper.setTransactionDetailsWarpper(transactionDetailsWarpper);
            return ResultUtil.success(rechargeRecordWarpper);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    /**
     * 下载pdf
     * @param orderId
     * @param orderType
@@ -1249,10 +1332,10 @@
        ServletOutputStream outputStream = null;
        try {
            if(orderType == 1){
                fileInputStream = new FileInputStream(new File("/usr/local/nginx/html/files/pdf/ride_receipt_" + orderId + ".pdf"));
                fileInputStream = new FileInputStream(new File("/home/igotechgh/nginx/html/files/pdf/ride_receipt_" + orderId + ".pdf"));
            }
            if(orderType == 4){
                fileInputStream = new FileInputStream(new File("/usr/local/nginx/html/files/pdf/parcel_receipt_" + orderId + ".pdf"));
                fileInputStream = new FileInputStream(new File("/home/igotechgh/nginx/html/files/pdf/parcel_receipt_" + orderId + ".pdf"));
            }
            BufferedInputStream bf = new BufferedInputStream(fileInputStream);
            outputStream = response.getOutputStream();
@@ -1281,4 +1364,54 @@
            }
        }
    }
    @ResponseBody
    @PostMapping("/api/user/getFleetEngineAuth")
    @ApiOperation(value = "获取google地图授权token", tags = {"用户端-个人中心"}, notes = "")
    @ApiImplicitParams({
            @ApiImplicitParam(value = "行程id", name = "tripId", required = true, dataType = "string"),
            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
    })
    public ResultUtil<Map<String, Object>> getFleetEngineAuth(String tripId, HttpServletRequest request){
        try {
            Integer uid = userInfoService.getUserIdFormRedis(request);
            if(null == uid){
                return ResultUtil.tokenErr();
            }
            Map<String, Object> s = fleetEngineUtil.fleetEngineAuth(1, tripId);
            return ResultUtil.success(s);
        }catch (Exception e){
            e.printStackTrace();
            return ResultUtil.runErr();
        }
    }
    @ResponseBody
    @PostMapping("/base/user/textToSpeech")
    public String textToSpeech(String languageCode, String text, String fileName){
        try {
            String s = TextToSpeechUtil.create(languageCode, text, fileName + ".mp3");
            //定时任务删除语音文件
            new Timer().schedule(new TimerTask() {
                @Override
                public void run() {
                    Process process = null;
                    try {
                        process = Runtime.getRuntime().exec("sudo rm -rf /home/igotechgh/nginx/html/files/audio/" + fileName + ".mp3");
                    } catch (IOException e) {
                        throw new RuntimeException(e);
                    }
                    if (process != null) {
                        process.destroy();
                    }
                }
            }, 30000);
            return s;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
}