From d2afc448642234c02293143a8d5e0efdee21f747 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Wed, 14 Aug 2024 10:19:59 +0800 Subject: [PATCH] 'commit' --- .../ZhuQue/Ylt/Controller/YltController.java | 65 +++++++++++++++++- .../dsideal/ZhuQue/Ylt/Model/YltModel.java | 26 +++++++ ...$特收到的需求、分析与现状.docx | Bin 0 -> 162 bytes ...特收到的需求、分析与现状.docx | Bin 619424 -> 619116 bytes 4 files changed, 89 insertions(+), 2 deletions(-) create mode 100644 业务梳理/~$特收到的需求、分析与现状.docx diff --git a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Controller/YltController.java b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Controller/YltController.java index de24687..ebca96f 100644 --- a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Controller/YltController.java +++ b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Controller/YltController.java @@ -2,6 +2,7 @@ package com.dsideal.ZhuQue.Ylt.Controller; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; +import com.cybermkd.mongo.kit.MongoQuery; import com.dsideal.ZhuQue.Interceptor.EmptyInterface; import com.dsideal.ZhuQue.Interceptor.IsLoginInterface; import com.dsideal.ZhuQue.Util.CommonUtil; @@ -11,6 +12,7 @@ import com.jfinal.aop.Before; import com.jfinal.core.Controller; import com.jfinal.ext.interceptor.GET; import com.jfinal.ext.interceptor.POST; +import com.jfinal.kit.Kv; import com.jfinal.plugin.activerecord.Record; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -22,6 +24,7 @@ import java.util.UUID; public class YltController extends Controller { Logger log = LoggerFactory.getLogger(YltController.class); YltModel ym = new YltModel(); + MongoQuery query = new MongoQuery(); /** * 功能:获取当前订单是不是在有合作的道闸车场内,这样的车场停车有减免 @@ -152,7 +155,7 @@ public class YltController extends Controller { .execute().body(); // 发送请求并获取响应体 //记录到数据库中闸机的流水记录 ym.recordDzLog(order_no, charge_plate_no, jo.toString(), result); - renderJson(CommonUtil.getRet(JSONObject.parseObject(result),true, "已经向科拓闸机平台发送了减免消息!" )); + renderJson(CommonUtil.getRet(JSONObject.parseObject(result), true, "已经向科拓闸机平台发送了减免消息!")); return; } else if ("智门科技".equals(name)) { JSONObject jo = new JSONObject(); @@ -176,10 +179,68 @@ public class YltController extends Controller { .execute().body(); // 发送请求并获取响应体 //记录到数据库中闸机的流水记录 ym.recordDzLog(order_no, charge_plate_no, jo.toString(), result); - renderJson(CommonUtil.getRet(JSONObject.parseObject(result),true, "已经向智门科技闸机平台发送了减免消息!")); + renderJson(CommonUtil.getRet(JSONObject.parseObject(result), true, "已经向智门科技闸机平台发送了减免消息!")); return; } } renderJson(CommonUtil.getRet(false, "发现了一个未知的闸机厂商,请联系开发人员!")); } + + /** + * 功能:根据手机号查询用户信息 + * 因为一个手机号可能有多个用户,所以返回的是一个list,由管理员手动挑选是哪条,然后转化为userId进行下一步处理 + * + * @param phone + */ + @Before({GET.class}) + @IsLoginInterface({}) + public void queryUserByPhone(String phone) { + List list = ym.queryUserByPhone(phone); + renderJson(CommonUtil.getRet(list, true, "获取数据成功!")); + } + + /** + * 功能:根据用户id查询挂起订单 + * state: 订单状态 0 创建中 1准备充电中 2 充电中 3完成 4 取消 5挂起 6需要手动补单 7结算中 + * order_type: 订单类型 1普通用户订单 3 企业用户订单 4第三方平台订单 + * order_type =1 or 3 的使用正向方式处理 【直连】 + * order_type =4 使用反向方式处理 【互联互通】 + * + * @param user_id + */ + @Before({GET.class}) + @IsLoginInterface({}) + public void getHungUpOrderByUserId(int user_id) { + Record record = ym.getHungUpOrderByUserId(user_id); + if (record == null) { + renderJson(CommonUtil.getRet(false, "没有挂起订单!")); + return; + } + JSONObject res = new JSONObject(); + res.put("data", record); + + //订单号 + String order_no = record.getStr("order_no"); + //订单类型 + int order_type = record.getInt("order_type"); + + //订单状态 0 创建中 1准备充电中 2 充电中 3完成 4 取消 5挂起 6需要手动补单 7结算中 + int state = record.getInt("state"); + //互联互通 + if (order_type == 4) { + //显示对接平台发过来的金额,并且需要显示我方的金额,两者对比,差额等,让管理员决策判断是否可以补单 + + } else {//直连 + //最后一次通讯记录 + JSONObject jo = query.use("equipmentOrder").eq("_id", order_no).findOne(); + res.put("extInfo", jo); + //chargeBeginTime 开始充电时间 + //chargeEndTime 结束充电时间 + //charge_degree 充电度数 + //chargeBeginSoc 充电开始soc + //chargeEndSoc 充电结束soc + //chargeDuration 充电时长 单位:秒 + } + renderJson(CommonUtil.getRet(res, true, "获取数据成功!")); + } } \ No newline at end of file diff --git a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Model/YltModel.java b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Model/YltModel.java index d20fda0..b3aba77 100644 --- a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Model/YltModel.java +++ b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Model/YltModel.java @@ -122,4 +122,30 @@ public class YltModel { record.set("result", result); Db.save("t_ext_dz_log", "order_no", record); } + + /** + * 功能:根据手机号查询用户信息 + * + * @param phone + * @return + */ + public List queryUserByPhone(String phone) { + String sql = "select * from t_user where relation_phone=? or phone=?"; + List list = Db.find(sql, phone, phone); + return list; + } + + /** + * 功能:根据用户id查询挂起订单 + * + * state: 订单状态 0 创建中 1准备充电中 2 充电中 3完成 4 取消 5挂起 6需要手动补单 7结算中 + * order_type: 订单类型 1普通用户订单 3 企业用户订单 4第三方平台订单 + * order_type =1 or 3 的使用正向方式处理 + * order_type =4 使用反向方式处理 + * @param user_id + */ + public Record getHungUpOrderByUserId(int user_id) { + String sql = "select order_no,state,order_type from t_equipment_charge_order where user_id=? order by id desc limit 1"; + return Db.findFirst(sql, user_id); + } } diff --git a/业务梳理/~$特收到的需求、分析与现状.docx b/业务梳理/~$特收到的需求、分析与现状.docx new file mode 100644 index 0000000000000000000000000000000000000000..721717c100a3fa053b11a9429a82752698f610b2 GIT binary patch literal 162 zcmd;eOv%m6%PcM_N-W7QVjvRmGB`4%Fyu01GUNeqF+&MM5kn%7%m>oQfC@vTpIsW8 literal 0 HcmV?d00001 diff --git a/业务梳理/驿来特收到的需求、分析与现状.docx b/业务梳理/驿来特收到的需求、分析与现状.docx index 60a36789ddbc4b08885d0b7021264a086eaeda02..f137bda2c79669cbf59ecb8c24ac25c7a79affc2 100644 GIT binary patch delta 12324 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 delta 12743 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 er=Z_zjK9^u_)qxlO4Jr28f