From e55fe61ee5c645f885e11d09255c63e5f0c17153 Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期六, 26 七月 2025 14:58:59 +0800 Subject: [PATCH] 上下班操作的绑定车 --- /dev/null | 27 --------- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml | 7 + DriverQYTTravel/guns-admin/src/main/resources/application.yml | 4 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java | 15 +++++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java | 25 ++++++++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java | 11 +++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java | 11 +++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java | 41 +++++++++++++ DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java | 3 + DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 21 +++++- DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java | 7 ++ 11 files changed, 134 insertions(+), 38 deletions(-) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java index a0e7847..fe52aee 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSONObject; import com.alipay.api.internal.util.file.IOUtils; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; import com.stylefeng.guns.config.properties.GunsProperties; import com.stylefeng.guns.core.util.DateUtil; @@ -1619,9 +1620,10 @@ @ApiOperation(value = "通过区code获取服务商", tags = {"司机端-注册"}, notes = "") @ApiImplicitParams({ @ApiImplicitParam(value = "区code", name = "areaCode", required = true, dataType = "String"), + @ApiImplicitParam(value = "name", name = "name", required = false, dataType = "String"), }) - public ResultUtil<List<CompanyVo>> getCompany(String areaCode){ + public ResultUtil<List<CompanyVo>> getCompany(String areaCode,String name){ try { ArrayList<CompanyVo> companyVos = new ArrayList<>(); @@ -1629,7 +1631,12 @@ if(companyCities.isEmpty()){ return ResultUtil.success(companyVos); } - List<Company> companies = companyService.selectList(new EntityWrapper<Company>().ne("type", 1).ne("flag", 3).in("id", companyCities.stream().map(CompanyCity::getCompanyId).collect(Collectors.toList()))); + Wrapper<Company> in = new EntityWrapper<Company>().ne("type", 1).ne("flag", 3).in("id", companyCities.stream().map(CompanyCity::getCompanyId).collect(Collectors.toList())); + + if(ToolUtil.isNotEmpty( name)){ + in.like("name", name); + } + List<Company> companies = companyService.selectList(in); for (Company company : companies) { CompanyVo companyVo = new CompanyVo(company.getId(), company.getName()); companyVos.add(companyVo); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 4ed52c8..db54af7 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -4,15 +4,13 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.stylefeng.guns.core.util.DateUtil; import com.stylefeng.guns.core.util.ToolUtil; +import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService; import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityInfoWrapper; import com.stylefeng.guns.modular.crossCity.warpper.OrderWarpper; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService; import com.stylefeng.guns.modular.system.dao.DriverWorkMapper; -import com.stylefeng.guns.modular.system.model.DriverWork; -import com.stylefeng.guns.modular.system.model.Reassign; -import com.stylefeng.guns.modular.system.model.SysTimeoutMoney; -import com.stylefeng.guns.modular.system.model.TimeOutAppeal; +import com.stylefeng.guns.modular.system.model.*; import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.ChinaMobileUtil; import com.stylefeng.guns.modular.system.util.PushUtil; @@ -62,6 +60,9 @@ @Resource private DriverWorkMapper driverWorkMapper; + + @Autowired + private ICarService carService; @@ -257,6 +258,18 @@ if(null == driverWork1){ return ResultUtil.error("您已下班,无法接单"); } + + Driver driver = driverService.selectById(uid); + + //判断车辆是否正在使用中 + Car car = carService.selectById(driver.getCarId()); + if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){ + return ResultUtil.error("当前绑定车辆正在使用中,请更换车辆"); + }else if(car.getUseDriverId()==null){ + car.setUseDriverId(uid); + carService.updateById(car); + } + return orderService.grabOrder(orderId, orderType, uid); }catch (Exception e){ e.printStackTrace(); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java index f5ac198..caf0dc1 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/CarMapper.java @@ -29,4 +29,7 @@ List<Map<String, Object>> queryIdleDataFromId(@Param("id") Integer id); + void updateUseState(@Param("uid") Integer uid); + + } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml index e235a6c..f5f2db9 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/CarMapper.xml @@ -23,7 +23,9 @@ <result column="addType" property="addType"/> <result column="addObjectId" property="addObjectId"/> </resultMap> - + <update id="updateUseState"> + update t_car set useDriverId = null where useDriverId = #{uid} + </update> <select id="queryIdleData" resultType="map"> @@ -71,7 +73,8 @@ <select id="queryIdleDataFromId" resultType="java.util.Map"> select a.id as id, - CONCAT(a.carLicensePlate, '-',c.`name`, b.`name`, ' ', a.carColor) as name + CONCAT(a.carLicensePlate, '-',c.`name`, b.`name`, ' ', a.carColor) as name, + a.useDriverId as useDriverId from t_car a left join t_car_model b on (a.carModelId = b.id) left join t_car_brand c on (b.brandId = c.id) diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java index bdc49e1..19a1f7b 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Car.java @@ -104,6 +104,21 @@ @TableField("addObjectId") private Integer addObjectId; + + /** + * 使用司机id + */ + @TableField("useDriverId") + private Integer useDriverId; + + public Integer getUseDriverId() { + return useDriverId; + } + + public void setUseDriverId(Integer useDriverId) { + this.useDriverId = useDriverId; + } + public Integer getId() { return id; } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java index 3606175..a8f0711 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ICarService.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.service.IService; import com.stylefeng.guns.modular.system.model.Car; import com.stylefeng.guns.modular.system.util.ResultUtil; +import org.apache.ibatis.annotations.Param; import javax.servlet.http.HttpServletRequest; import java.util.Date; @@ -62,4 +63,10 @@ */ ResultUtil addCar(Integer modelId, String color, String licensePlate, Date time, String drivingLicensePhoto, String carPhoto, String insurancePhoto, Integer uid) throws Exception; + + boolean useState(@Param("carId") Integer carId, @Param("uid") Integer uid); + + void updateUseState(Integer carId, Integer uid); + void updateUseState(Integer uid); + } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java index 9cede93..576d920 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/CarServiceImpl.java @@ -66,7 +66,7 @@ // driver.getCompanyId() != null && driver.getCompanyId() != 0 ? driver.getCompanyId() : 1)); for (Map<String, Object> stringObjectMap : list) { // 1使用中 2空闲中 - if(stringObjectMap.get("id").toString().equals(carId.toString())){ + if(stringObjectMap.get("useDriverId").toString().equals(uid.toString())){ map.put("useState", 1); }else { map.put("useState", 0); @@ -159,4 +159,27 @@ this.insert(car); return ResultUtil.success(); } + + @Override + public boolean useState(Integer carId, Integer uid) { + Car car = carMapper.selectById(carId); + if(car.getUseDriverId()!=null || !car.getUseDriverId().equals(uid)){ + return false; + } + return true; + + + } + + @Override + public void updateUseState(Integer carId, Integer uid) { + carMapper.updateUseState(uid); + Car car = carMapper.selectById(carId); + car.setUseDriverId(uid); + this.baseMapper.updateById(car); + } + @Override + public void updateUseState(Integer uid) { + carMapper.updateUseState(uid); + } } diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java index 7c0e5cc..736466e 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java @@ -410,6 +410,7 @@ driver.setCityCode(registeredWarpper.getCityCode()); driver.setProvince(registeredWarpper.getProvince()); driver.setProvinceCode(registeredWarpper.getProvinceCode()); + driver.setCompanyId(registeredWarpper.getCompanyId()); String code = registeredWarpper.getAreaCode(); Company query = companyCityService.query(code); @@ -640,6 +641,10 @@ driverWorkMapper.updateById(driverWork); driver.setState(1); + // 更新车辆使用状态 + carService.updateUseState(uid); + + new Thread(new Runnable() { @Override public void run() { @@ -656,6 +661,18 @@ return ResultUtil.error("车辆正在使用中"); } } + + //判断车辆是否正在使用中 + Car car = carService.selectById(driver.getCarId()); + if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){ + return ResultUtil.error("当前绑定车辆正在使用中,请更换车辆"); + }else if(car.getUseDriverId()==null){ + car.setUseDriverId(uid); + carService.updateById(car); + } + + + driverWork = new DriverWork(); driverWork.setState(1); driverWork.setDriverId(uid); @@ -703,6 +720,9 @@ driverWorkMapper.updateById(driverWork); driver.setState(1); + // 更新车辆使用状态 + carService.updateUseState(uid); + new Thread(new Runnable() { @Override public void run() { @@ -712,6 +732,18 @@ } }).start(); }else{ + + //判断车辆是否正在使用中 + Car car = carService.selectById(driver.getCarId()); + if(car.getUseDriverId() != null && !car.getUseDriverId().equals(uid)){ + return ResultUtil.error("当前绑定车辆正在使用中,请更换车辆"); + }else if(car.getUseDriverId()==null){ + car.setUseDriverId(uid); + carService.updateById(car); + } + + + driverWork = new DriverWork(); driverWork.setState(1); driverWork.setDriverId(uid); @@ -903,10 +935,17 @@ if(driver.getState() == 3){ return ResultUtil.error("还在服务中,不能更换"); } - boolean idle = carService.idle(carId); +// boolean idle = carService.idle(carId); + // 修改是否别司机在使用 + boolean idle = carService.useState(carId,uid); if(!idle){ return ResultUtil.error("当前车辆已经有其他司机在使用,请更换车辆"); } + // 将所有绑定他的车 =null + carService.updateUseState(carId,uid); + Car car = carService.selectById(carId); + car.setUseDriverId(uid); + carService.updateById( car); driver.setCarId(carId); this.updateById(driver); return ResultUtil.success(); diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/rongyun/RongYunUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/rongyun/RongYunUtil.java deleted file mode 100644 index 5093123..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/rongyun/RongYunUtil.java +++ /dev/null @@ -1,269 +0,0 @@ -package com.stylefeng.guns.modular.system.util.rongyun; - -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.stylefeng.guns.core.util.ToolUtil; -import com.stylefeng.guns.modular.system.util.rongyun.model.CloudRecordingCallback; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import javax.servlet.http.HttpServletRequest; -import java.io.*; -import java.net.*; -import java.security.MessageDigest; - -/** - * 融云及时通讯工具类 - */ -@Component -public class RongYunUtil { - - public static String app_key = "bmdehs6pbnozs"; - public static String app_secret = "RovVwtABN1"; - - - /** - * 注册获取token - * @param userId - * @param name - * @param headUrl - * @return - * @throws Exception - */ - public String getToken(String userId, String name, String headUrl) throws Exception { - String url = "http://api-cn.ronghub.com/user/getToken.json"; - String data = "userId=" + userId + "&name=" + name + "&portraitUri=" + headUrl; - String s = this.pushHttp(url, data); - return s; - } - - - /** - * 刷新用户信息 - * @param userId - * @param name - * @param headUrl - * @throws Exception - */ - public void refresh(String userId, String name, String headUrl) throws Exception { - String url = "http://api-cn.ronghub.com/user/refresh.json"; - String data = "userId=" + userId + "&name=" + name + "&portraitUri=" + headUrl; - String s = this.pushHttp(url, data); - } - - - /** - * 检查用户在线状态 - * @param userId - * @return 1:在线,0:离线 - * @throws Exception - */ - public Integer checkOnline(String userId) throws Exception { - String url = "http://api-cn.ronghub.com/user/checkOnline.json"; - String data = "userId=" + userId; - String s = this.pushHttp(url, data); - JSONObject jsonObject = JSON.parseObject(s); - if(jsonObject.getIntValue("code") == 200){ - return jsonObject.getIntValue("status"); - } - return null; - } - - - /** - * 发送普通消息 - * @param fromUserId - * @param toUserId - * @param objectName - * @param content - * @return - */ - public String sendSms(String fromUserId, String toUserId, String objectName, String content){ - try { - String url = "https://api-cn.ronghub.com/message/private/publish.json"; - String data = "fromUserId=" + URLEncoder.encode(fromUserId, "UTF-8") + "&toUserId=" + URLEncoder.encode(toUserId, "UTF-8") + "&objectName=" + - URLEncoder.encode(objectName, "UTF-8") + "&content=" + URLEncoder.encode(content, "UTF-8") + "&disablePush=0&isIncludeSender=1"; - String s = this.pushHttp(url, data); - return s; - }catch (Exception e){ - e.printStackTrace(); - } - return null; - } - - - - /** - * 创建 IM 聊天室 - * @param id 房间id长度不超过 64 字节 - * @param name 聊天室名称 - * @return - */ - public Integer ChatRoomCreate(String id, String name){ - String url = "https://api-cn.ronghub.com/chatroom/create.json"; - String data = "chatroom[" + id + "]=" + name; - String s = this.pushHttp(url, data); - JSONObject jsonObject = JSON.parseObject(s); - if(jsonObject.getIntValue("code") == 200){ - return jsonObject.getIntValue("status"); - } - return null; - } - - - /** - * 销毁聊天室 - * @param chatroomId 聊天室id - * @return - */ - public Integer ChatRoomDestroy(String chatroomId){ - String url = "https://api-cn.ronghub.com/chatroom/destroy.json"; - String data = "chatroomId=" + chatroomId; - String s = this.pushHttp(url, data); - JSONObject jsonObject = JSON.parseObject(s); - if(jsonObject.getIntValue("code") == 200){ - return jsonObject.getIntValue("status"); - } - return null; - } - - - - /** - * 聊天室发送文本消息 - * @param userId 发送用户id - * @param chatroomId 聊天室id - * @param content 消息文本内容 - * @return - */ - public Integer ChatRoomPushTxtMessage(String userId, String chatroomId, String content){ - String url = "https://api-cn.ronghub.com/chatroom/destroy.json"; - String data = "fromUserId=" + userId + "&toChatroomId=" + chatroomId + "&objectName=RC:TxtMsg&content=" + content; - String s = this.pushHttp(url, data); - JSONObject jsonObject = JSON.parseObject(s); - if(jsonObject.getIntValue("code") == 200){ - return jsonObject.getIntValue("status"); - } - return null; - } - - - - /** - * 请求接口 - * @param path - * @param json - * @return - */ - public String pushHttp(String path, String json){ - String nonce = String.valueOf(Double.valueOf(Math.random() * 1000000.0D).intValue()); - String timeMillis = String.valueOf(System.currentTimeMillis() / 1000); - String signature = getSha1(app_secret + nonce + timeMillis); - - URL url = null; - try { - url = new URL(path); - HttpURLConnection connection = (HttpURLConnection)url.openConnection(); - connection.setRequestMethod("POST"); - connection.setConnectTimeout(1000 * 30); - connection.setRequestProperty("Host", "api-cn.ronghub.com"); - connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - connection.setRequestProperty("App-Key", app_key); - connection.setRequestProperty("Nonce", nonce); - connection.setRequestProperty("Timestamp", timeMillis); - connection.setRequestProperty("Signature", signature); - connection.setDoOutput(true); - connection.setDoInput(true); - connection.setUseCaches(false); - connection.setInstanceFollowRedirects(true); - connection.connect(); - DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream()); - outputStream.write(json.getBytes("UTF-8")); - outputStream.flush(); - outputStream.close(); - - int responseCode = connection.getResponseCode(); - InputStream inputStream = null; - if(responseCode == 403){ - inputStream = connection.getErrorStream(); - } - if(responseCode == 200){ - inputStream = connection.getInputStream(); - } - DataInputStream dataInputStream = new DataInputStream(inputStream); - ByteArrayOutputStream stream = new ByteArrayOutputStream(); - int len; - byte[] bytes = new byte[1024]; - while ((len = dataInputStream.read(bytes)) != -1){ - stream.write(bytes, 0, len); - } - return stream.toString(); - } catch (MalformedURLException e) { - e.printStackTrace(); - } catch (ProtocolException e) { - e.printStackTrace(); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - - - public static String getSha1(String str) { - char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'a', 'b', 'c', 'd', 'e', 'f' }; - try { - MessageDigest mdTemp = MessageDigest.getInstance("SHA1"); - mdTemp.update(str.getBytes("UTF-8")); - byte[] md = mdTemp.digest(); - int j = md.length; - char buf[] = new char[j * 2]; - int k = 0; - for (int i = 0; i < j; i++) { - byte byte0 = md[i]; - buf[k++] = hexDigits[byte0 >>> 4 & 0xf]; - buf[k++] = hexDigits[byte0 & 0xf]; - } - return new String(buf); - } catch (Exception e) { - return null; - } - } - - - /** - * 云端录制状态回调 - * @param request - * @return - */ - public static CloudRecordingCallback cloudRecordingCallback(HttpServletRequest request){ - String param = null; - try { - param = getParam(request); - } catch (IOException e) { - e.printStackTrace(); - } - if(ToolUtil.isNotEmpty(param)){ - CloudRecordingCallback cloudRecordingCallback = JSON.parseObject(param, CloudRecordingCallback.class); - return cloudRecordingCallback; - } - return null; - } - - - private static String getParam(HttpServletRequest request) throws IOException { - // 读取参数 - InputStream inputStream; - StringBuilder sb = new StringBuilder(); - 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(); - return sb.toString(); - } -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/rongyun/model/Config.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/rongyun/model/Config.java deleted file mode 100644 index 330f27f..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/rongyun/model/Config.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.stylefeng.guns.modular.system.util.rongyun.model; - -import lombok.Data; - -/** - * @author zhibing.pu - * @date 2023/4/6 10:48 - */ -@Data -public class Config { - /** - * 录制启动模式: 1 自动启动录制任务 - */ - private Integer trigger; - /** - * Mix模式下布局:2 悬浮布局(默认) 3 自适应布局 - */ - private Integer mixLayout; - /** - * 文件切片时间(分钟) - */ - private Integer slicesMin; - /** - * 设置的音频文件格式 - */ - private String audioFormat; - /** - * 设置的视频文件格式 - */ - private String videoFormat; -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/rongyun/model/Output.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/rongyun/model/Output.java deleted file mode 100644 index 73e66e4..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/rongyun/model/Output.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.stylefeng.guns.modular.system.util.rongyun.model; - -import lombok.Data; - -/** - * @author zhibing.pu - * @date 2023/4/6 10:50 - */ -@Data -public class Output { - /** - * 缓存的文件名。具体请参考「配置云端录制服务」中的切片文件命名规则。 - */ - private String fileName; - /** - * 音频采样率,如 48000。如果当前录制任务没有录制音频,该字段为空。 - */ - private Integer audioSample; - /** - * 视频分辨率,如 640x480。如果当前录制任务没有录制视频,该字段为空。 - */ - private String videoResoulation; - /** - * 切片生成的录制文件大小。 - */ - private Integer fileSize; - /** - * 已上传到的第三方存储的 URL。 - */ - private String fileUrl; -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/SM4Util.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/SM4Util.java deleted file mode 100644 index 5f2e18b..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/SM4Util.java +++ /dev/null @@ -1,95 +0,0 @@ -package com.stylefeng.guns.modular.system.util.zhenglian; - -import org.bouncycastle.jce.provider.BouncyCastleProvider; - -import javax.crypto.Cipher; -import javax.crypto.KeyGenerator; -import javax.crypto.SecretKey; -import javax.crypto.spec.SecretKeySpec; -import java.nio.charset.StandardCharsets; -import java.security.Security; -import java.util.Base64; - -/** - * SM4国密工具类 - * @author zhibing.pu - * @Date 2025/7/24 15:29 - */ -public class SM4Util { - private static final String ALGORITHM_NAME = "SM4"; - - private static final String ALGORITHM_MODE = "SM4/ECB/PKCS5Padding"; - - - static { - Security.addProvider(new BouncyCastleProvider()); - } - - /** - * 生成 SM4 密钥 - * @return 密钥的 Base64 编码字符串 - * @throws Exception 异常 - */ - public static String generateKey() throws Exception { - KeyGenerator kg = KeyGenerator.getInstance(ALGORITHM_NAME, "BC"); - kg.init(128); - SecretKey secretKey = kg.generateKey(); - return Base64.getEncoder().encodeToString(secretKey.getEncoded()); - } - - /** - * SM4 加密 - * @param plainText 明文 - * @param key 密钥的 Base64 编码字符串 - * @return 密文的 Base64 编码字符串 - * @throws Exception 异常 - */ - public static String encrypt(String plainText, String key) throws Exception { - byte[] keyBytes = Base64.getDecoder().decode(key); - SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, ALGORITHM_NAME); - Cipher cipher = Cipher.getInstance(ALGORITHM_MODE, "BC"); - cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec); - byte[] encryptedBytes = cipher.doFinal(plainText.getBytes(StandardCharsets.UTF_8)); - return Base64.getEncoder().encodeToString(encryptedBytes); - } - - /** - * SM4 解密 - * @param cipherText 密文的 Base64 编码字符串 - * @param key 密钥的 Base64 编码字符串 - * @return 明文 - * @throws Exception 异常 - */ - public static String decrypt(String cipherText, String key) throws Exception { - byte[] keyBytes = Base64.getDecoder().decode(key); - SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, ALGORITHM_NAME); - Cipher cipher = Cipher.getInstance(ALGORITHM_MODE, "BC"); - cipher.init(Cipher.DECRYPT_MODE, secretKeySpec); - byte[] cipherBytes = Base64.getDecoder().decode(cipherText); - byte[] decryptedBytes = cipher.doFinal(cipherBytes); - return new String(decryptedBytes, StandardCharsets.UTF_8); - } - - public static void main(String[] args) { - try { - // 生成密钥 - String key = generateKey(); - System.out.println("生成的密钥: " + key); - - // 明文 - String plainText = "Hello, SM4!"; - System.out.println("明文: " + plainText); - - // 加密 - String cipherText = encrypt(plainText, key); - System.out.println("密文: " + cipherText); - - // 解密 - String decryptedText = decrypt(cipherText, key); - System.out.println("解密后的明文: " + decryptedText); - } catch (Exception e) { - e.printStackTrace(); - } - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java deleted file mode 100644 index d0d4130..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.stylefeng.guns.modular.system.util.zhenglian; - -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpUtil; -import com.stylefeng.guns.modular.system.util.SpringContextsUtil; -import com.stylefeng.guns.modular.system.util.UUIDUtil; -import com.stylefeng.guns.modular.system.util.zhenglian.model.TokenRequest; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; - -/** - * @author zhibing.pu - * @Date 2025/7/24 14:06 - */ -public class TokenUtil { - - private static ZhengLianConfig zhengLianConfig = SpringContextsUtil.getBean(ZhengLianConfig.class).getZhengLianConfig(); - - - - public static void getToken(TokenRequest request){ - request.setAppid(zhengLianConfig.getAppid()); - HttpRequest post = HttpUtil.createPost(zhengLianConfig.getUrl()); - String timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); - post.header("msgId", UUIDUtil.getRandomCode()); - post.header("merchNo", zhengLianConfig.getMerchNo()); - post.header("txCode","ZLPAY.ACC.T0001"); - post.header("version","1.0.1"); - post.header("encrp","1"); - post.header("signa","1"); - post.header("encrpNo","123456"); - post.header("signNo","123456"); - post.header("timestamp", timestamp); - post.header("Content-Length", ""); - post.header("Content-Type", "application/json;charset=utf-8"); - - - - post.body("{}"); - - - } -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java deleted file mode 100644 index d5273b2..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianConfig.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.stylefeng.guns.modular.system.util.zhenglian; - -import lombok.Data; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -/** - * @author zhibing.pu - * @Date 2025/7/8 11:31 - */ -@Data -@Component -public class ZhengLianConfig { - - @Value("${spring.profiles.active}") - private String activeProfile; - /** - * 接口地址 - */ - private String url; - /** - * appid - */ - private String appid; - /** - * 商户号 - */ - private String merchNo; - /** - * 加密证书序列号 - */ - private String encrpNo; - /** - * 签名证书序列号 - */ - private String signNo; - - /** - * 获取不同环境的配置 - * @return - */ - public ZhengLianConfig getZhengLianConfig() { - if("dev".equals(activeProfile)){ - this.url = "https://gatewaytest.zqpay.com"; - this.appid = "F9BFEEA567196A92E053376010ACF004"; - this.merchNo = "B00000871"; - this.encrpNo = "123456"; - this.signNo = "123456"; - } - if("test".equals(activeProfile)){ - this.url = "https://gatewaytest.zqpay.com"; - this.appid = "F9BFEEA567196A92E053376010ACF004"; - this.merchNo = "B00000871"; - this.encrpNo = "123456"; - this.signNo = "123456"; - } - if("prod".equals(activeProfile)){ - this.url = "https://gateway.zqpay.com"; - this.appid = ""; - this.merchNo = ""; - this.encrpNo = ""; - this.signNo = ""; - } - return this; - } - -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/TokenRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/TokenRequest.java deleted file mode 100644 index 96364c1..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/TokenRequest.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.stylefeng.guns.modular.system.util.zhenglian.model; - -import lombok.Data; - -/** - * @author zhibing.pu - * @Date 2025/7/24 15:06 - */ -@Data -public class TokenRequest { - /** - * 应用appid - */ - private String appid; - /** - * APP 端用户唯一标识 - */ - private String appUserId; - /** - * 姓名 - */ - private String userName; - /** - * 证件号码 - */ - private String certNo; - /** - * 手机号码 - */ - private String phone; - /** - * 访问类型 - * 01 证联收银台支付 - * 04 HOME 页 - * 06 申请免密签约 - * 07 商户收银台支付 - * 08 开户(绑卡) - * 09 开通支付账户 - * 10 打开付款码 - */ - private String type; - /** - * 终端信息域 - */ - private TradeTerminalInfo tradeTerminalInfo; -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/TradeTerminalInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/TradeTerminalInfo.java deleted file mode 100644 index 6403ebe..0000000 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/model/TradeTerminalInfo.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.stylefeng.guns.modular.system.util.zhenglian.model; - -import lombok.Data; - -/** - * @author zhibing.pu - * @Date 2025/7/24 15:10 - */ -@Data -public class TradeTerminalInfo { - /** - * 用于标识交易设 备 公 网 IP地 址 - */ - private String ip; - /** - * 终端类型: - * 0:web - * 1:ANDROID - * 2:IOS - * 3:其它 - */ - private String terminal; - /** - * 用于标识交易设备 MAC 地址 - */ - private String mac; -} diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java index 6123071..05feb90 100644 --- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java +++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/RegisteredWarpper.java @@ -60,6 +60,17 @@ @ApiModelProperty("区代码") private String areaCode; + @ApiModelProperty("公司id") + private Integer companyId; + + public Integer getCompanyId() { + return companyId; + } + + public void setCompanyId(Integer companyId) { + this.companyId = companyId; + } + public String getProvince() { return province; } diff --git a/DriverQYTTravel/guns-admin/src/main/resources/application.yml b/DriverQYTTravel/guns-admin/src/main/resources/application.yml index 1d70277..3f3f91a 100644 --- a/DriverQYTTravel/guns-admin/src/main/resources/application.yml +++ b/DriverQYTTravel/guns-admin/src/main/resources/application.yml @@ -81,7 +81,9 @@ mchId: 111 #微信支付分配的商户号 key: 111 #key为商户平台设置的密钥key: url: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1} - +rongyun: + app_key: bmdehs6pbnozs + app_secret: RovVwtABN1 --- alipay: -- Gitblit v1.7.1