Ver Fonte

洗车站点、订单、设备

skyline há 1 ano atrás
pai
commit
961075b93f
22 ficheiros alterados com 730 adições e 37 exclusões
  1. 35 0
      car-wash-entity/src/main/java/com/kym/entity/miniapp/WashDevice.java
  2. 182 0
      car-wash-entity/src/main/java/com/kym/entity/miniapp/WashOrder.java
  3. 98 0
      car-wash-entity/src/main/java/com/kym/entity/miniapp/WashStation.java
  4. 9 0
      car-wash-entity/src/main/java/com/kym/entity/miniapp/queryParams/DeviceParams.java
  5. 16 0
      car-wash-mapper/src/main/java/com/kym/mapper/miniapp/WashDeviceMapper.java
  6. 16 0
      car-wash-mapper/src/main/java/com/kym/mapper/miniapp/WashOrderMapper.java
  7. 16 0
      car-wash-mapper/src/main/java/com/kym/mapper/miniapp/WashStationMapper.java
  8. 17 0
      car-wash-mapper/src/main/resources/mappers/miniapp/WashDeviceMapper.xml
  9. 47 0
      car-wash-mapper/src/main/resources/mappers/miniapp/WashOrderMapper.xml
  10. 29 0
      car-wash-mapper/src/main/resources/mappers/miniapp/WashStationMapper.xml
  11. 18 0
      car-wash-miniapp/src/main/java/com/kym/miniapp/controller/WashDeviceController.java
  12. 34 0
      car-wash-miniapp/src/main/java/com/kym/miniapp/controller/WashOrderController.java
  13. 18 0
      car-wash-miniapp/src/main/java/com/kym/miniapp/controller/WashStationController.java
  14. 1 1
      car-wash-miniapp/src/main/java/com/kym/miniapp/jobs/EquipmentChargeStatusJob.java
  15. 29 24
      car-wash-miniapp/src/main/java/com/kym/miniapp/mq/AwoaraServiceImpl.java
  16. 12 12
      car-wash-service/src/main/java/com/kym/service/awoara/AwoaraService.java
  17. 16 0
      car-wash-service/src/main/java/com/kym/service/miniapp/WashDeviceService.java
  18. 19 0
      car-wash-service/src/main/java/com/kym/service/miniapp/WashOrderService.java
  19. 16 0
      car-wash-service/src/main/java/com/kym/service/miniapp/WashStationService.java
  20. 20 0
      car-wash-service/src/main/java/com/kym/service/miniapp/impl/WashDeviceServiceImpl.java
  21. 62 0
      car-wash-service/src/main/java/com/kym/service/miniapp/impl/WashOrderServiceImpl.java
  22. 20 0
      car-wash-service/src/main/java/com/kym/service/miniapp/impl/WashStationServiceImpl.java

+ 35 - 0
car-wash-entity/src/main/java/com/kym/entity/miniapp/WashDevice.java

@@ -0,0 +1,35 @@
+package com.kym.entity.miniapp;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.kym.entity.BaseEntity;
+import java.io.Serializable;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 洗车设备表
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+@Getter
+@Setter
+@TableName("t_wash_device")
+public class WashDevice extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    private String stationId;
+
+    /**
+     * 产品key
+     */
+    private String productKey;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+}

+ 182 - 0
car-wash-entity/src/main/java/com/kym/entity/miniapp/WashOrder.java

@@ -0,0 +1,182 @@
+package com.kym.entity.miniapp;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.kym.entity.BaseEntity;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 洗车订单表
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+@Getter
+@Setter
+@TableName("t_wash_order")
+@Accessors(chain = true)
+public class WashOrder extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long userId;
+
+    private String stationId;
+
+    /**
+     * 产品key
+     */
+    private String productKey;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 开机方式:button维护按钮,network网络命令,coin投币,card刷卡
+     */
+    private String openType;
+
+    /**
+     * 关机方式:button维护按钮,network网络命令,no_balance超过预设金额,idle_timeout设备空闲超时,operation_timeout操作超时,card刷卡。注意:为空表示还没有关机,正在使用
+     */
+    private String closeType;
+
+    /**
+     * 订单号,和开机命令的order_id相同,如果使用按钮快速开机,order_id是空字符串
+     */
+    private String orderId;
+
+    /**
+     * 本机订单号
+     */
+    private String orderIdLocal;
+
+    /**
+     * 会员折扣比例(0-100,100表示不享受折扣,95表示9.5折优惠)
+     */
+    private Integer memberDiscount;
+
+    /**
+     * 本次开机的预付金额(单位分,本次开机最大消费金额限制)
+     */
+    private Integer prepayMoney;
+
+    /**
+     * 消费总额,等于各单项费用之和(单位分)
+     */
+    private Integer amount;
+
+    /**
+     * 应收金额,如果大于预付金额,则限制为预付金额并关机,否则等于消费总金额(单位分)
+     */
+    private Integer amountReceivable;
+
+    /**
+     * 实收金额等于应收金额乘会员折扣(单位分)
+     */
+    private Integer amountReceived;
+
+    /**
+     * 优惠金额等于消费总额减去实收金额(单位分)
+     */
+    private Integer discountMoney;
+
+    /**
+     * 投币的累计金额(仅限刷卡订单,单位分)
+     */
+    private Integer coinMoney;
+
+    /**
+     * 投币的次数仅限刷卡订单
+     */
+    private Integer coinNum;
+
+    /**
+     * 卡类型(仅限刷卡订单,1表示普通卡,2表示储值卡)
+     */
+    private Integer cardType;
+
+    /**
+     * 卡内码,卡出厂的时候厂家写入的ID(仅限刷卡订单)
+     */
+    private String cardId;
+
+    /**
+     * 卡串号,印刷在卡的表面,通过电脑上的卡管理工具写入卡内。(仅限刷卡订单)
+     */
+    private String cardSn;
+
+    /**
+     * 卡过期时间,从1970年开始的时间戳(仅限刷储值卡的订单有效,普通卡为总是为0)
+     */
+    private LocalDateTime cardExpired;
+
+    /**
+     * 卡内余额(仅限刷储值卡的订单有效,普通卡为总是为0)
+     */
+    private Integer cardBalance;
+
+    /**
+     * 订单操作剩余操作时间(单位秒),开机后从operation_timeout开始每秒减1,减到0关机,关机原因close_type=operation_timeout
+     */
+    private Integer operationRemainTime;
+
+    /**
+     * 设备空闲关机倒计时剩余时间(单位秒),开机后从idle_timeout开始每秒减1,见到0关机,关机原因close_type=idle_time(递减过程中按任意功能键,重新开始从idle_timeout递减)
+     */
+    private Integer idleRemainTime;
+
+    /**
+     * 费用明细:name 名称 price 单价(单位分) seconds 时长(单位秒) amount 费用(单位分) space⻋位或场地,water清水,foam泡沫,cleaner吸尘,tap水龙头,user_ext用户扩展,消毒或吹干等功能,coat镀膜,blow吹气
+     */
+    private String detail;
+
+    /**
+     * 开始时间
+     */
+    private LocalDateTime startTime;
+
+    /**
+     * 结束时间
+     */
+    private LocalDateTime endTime;
+
+    /**
+     * 优惠方式:RechargeRights-充值权益 Coupon-优惠券
+     */
+    private String discountType;
+
+    /**
+     * 优惠金额(分)
+     */
+    private Integer discountAmount;
+
+    /**
+     * 订单状态:0:未知,1:成功,2:失败,3:取消
+     */
+    private Integer orderStatus;
+
+    /**
+     * 支付状态:0:未支付,1:已支付
+     */
+    private Integer payStatus;
+
+    private Integer stopReason;
+
+    /**
+     * 发票状态:0-待开票 1-已开票 2-已作废(用不上) 3-开票中
+     */
+    private Integer invoiceStatus;
+
+    /**
+     * 发票id
+     */
+    private Long invoiceId;
+}

+ 98 - 0
car-wash-entity/src/main/java/com/kym/entity/miniapp/WashStation.java

@@ -0,0 +1,98 @@
+package com.kym.entity.miniapp;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.kym.entity.BaseEntity;
+import java.io.Serializable;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 洗车站点表
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+@Getter
+@Setter
+@TableName("t_wash_station")
+public class WashStation extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 站点id
+     */
+    private String stationId;
+
+    /**
+     * 站点名称
+     */
+    private String stationName;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 站点电话
+     */
+    private String stationTel;
+
+    /**
+     * 服务电话
+     */
+    private String serviceTel;
+
+    /**
+     * 站点类型:1:公共站 2:内部站(不对外开放)
+     */
+    private Integer stationType;
+
+    /**
+     * 站点状态:0:未知 1:建设中 2:关闭下线 3:维护中 4:维护中
+     */
+    private Integer stationStatus;
+
+    /**
+     * 工位数量
+     */
+    private Integer parkingNum;
+
+    /**
+     * 停车费描述:eg:洗车费用满10元减免1小时停车费
+     */
+    private String parkingFee;
+
+    /**
+     * 站点坐标
+     */
+    private String location;
+
+    /**
+     * 站点引导
+     */
+    private String siteGuide;
+
+    /**
+     * 建设场所:1:居民区 2:公共机构 3:企事业单位 4:写字楼 5:工业园区 6:交通枢纽 7:大型文体设施 8:城市绿地 9:大型建筑配建停车场 10:路边停车位 11:城际高速服务区 255:其他
+     */
+    private Integer construction;
+
+    /**
+     * 站点照片
+     */
+    private String pictures;
+
+    /**
+     * 营业时间描述
+     */
+    private String businessHours;
+
+    /**
+     * 备注
+     */
+    private String remark;
+}

+ 9 - 0
car-wash-entity/src/main/java/com/kym/entity/miniapp/queryParams/DeviceParams.java

@@ -0,0 +1,9 @@
+package com.kym.entity.miniapp.queryParams;
+
+import lombok.Data;
+
+@Data
+public class DeviceParams {
+    private String productKey;
+    private String deviceName;
+}

+ 16 - 0
car-wash-mapper/src/main/java/com/kym/mapper/miniapp/WashDeviceMapper.java

@@ -0,0 +1,16 @@
+package com.kym.mapper.miniapp;
+
+import com.kym.entity.miniapp.WashDevice;
+import com.kym.mapper.mybatisplus.MyBaseMapper;
+
+/**
+ * <p>
+ * 洗车设备表 Mapper 接口
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+public interface WashDeviceMapper extends MyBaseMapper<WashDevice> {
+
+}

+ 16 - 0
car-wash-mapper/src/main/java/com/kym/mapper/miniapp/WashOrderMapper.java

@@ -0,0 +1,16 @@
+package com.kym.mapper.miniapp;
+
+import com.kym.entity.miniapp.WashOrder;
+import com.kym.mapper.mybatisplus.MyBaseMapper;
+
+/**
+ * <p>
+ * 洗车订单表 Mapper 接口
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+public interface WashOrderMapper extends MyBaseMapper<WashOrder> {
+
+}

+ 16 - 0
car-wash-mapper/src/main/java/com/kym/mapper/miniapp/WashStationMapper.java

@@ -0,0 +1,16 @@
+package com.kym.mapper.miniapp;
+
+import com.kym.entity.miniapp.WashStation;
+import com.kym.mapper.mybatisplus.MyBaseMapper;
+
+/**
+ * <p>
+ * 洗车站点表 Mapper 接口
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+public interface WashStationMapper extends MyBaseMapper<WashStation> {
+
+}

+ 17 - 0
car-wash-mapper/src/main/resources/mappers/miniapp/WashDeviceMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.kym.mapper.miniapp.WashDeviceMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.kym.entity.miniapp.WashDevice">
+        <result column="station_id" property="stationId" />
+        <result column="product_key" property="productKey" />
+        <result column="device_name" property="deviceName" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        station_id, product_key, device_name
+    </sql>
+
+</mapper>

+ 47 - 0
car-wash-mapper/src/main/resources/mappers/miniapp/WashOrderMapper.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.kym.mapper.miniapp.WashOrderMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.kym.entity.miniapp.WashOrder">
+        <result column="user_id" property="userId" />
+        <result column="station_id" property="stationId" />
+        <result column="product_key" property="productKey" />
+        <result column="device_name" property="deviceName" />
+        <result column="open_type" property="openType" />
+        <result column="close_type" property="closeType" />
+        <result column="order_id" property="orderId" />
+        <result column="order_id_local" property="orderIdLocal" />
+        <result column="member_discount" property="memberDiscount" />
+        <result column="prepay_money" property="prepayMoney" />
+        <result column="amount" property="amount" />
+        <result column="amount_receivable" property="amountReceivable" />
+        <result column="amount_received" property="amountReceived" />
+        <result column="discount_money" property="discountMoney" />
+        <result column="coin_money" property="coinMoney" />
+        <result column="coin_num" property="coinNum" />
+        <result column="card_type" property="cardType" />
+        <result column="card_id" property="cardId" />
+        <result column="card_sn" property="cardSn" />
+        <result column="card_expired" property="cardExpired" />
+        <result column="card_balance" property="cardBalance" />
+        <result column="operation_remain_time" property="operationRemainTime" />
+        <result column="idle_remain_time" property="idleRemainTime" />
+        <result column="detail" property="detail" />
+        <result column="start_time" property="startTime" />
+        <result column="end_time" property="endTime" />
+        <result column="discount_type" property="discountType" />
+        <result column="discount_amount" property="discountAmount" />
+        <result column="order_status" property="orderStatus" />
+        <result column="pay_status" property="payStatus" />
+        <result column="stop_reason" property="stopReason" />
+        <result column="invoice_status" property="invoiceStatus" />
+        <result column="invoice_id" property="invoiceId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        user_id, station_id, product_key, device_name, open_type, close_type, order_id, order_id_local, member_discount, prepay_money, amount, amount_receivable, amount_received, discount_money, coin_money, coin_num, card_type, card_id, card_sn, card_expired, card_balance, operation_remain_time, idle_remain_time, detail, start_time, end_time, discount_type, discount_amount, order_status, pay_status, stop_reason, invoice_status, invoice_id
+    </sql>
+
+</mapper>

+ 29 - 0
car-wash-mapper/src/main/resources/mappers/miniapp/WashStationMapper.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.kym.mapper.miniapp.WashStationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.kym.entity.miniapp.WashStation">
+        <result column="station_id" property="stationId" />
+        <result column="station_name" property="stationName" />
+        <result column="address" property="address" />
+        <result column="station_tel" property="stationTel" />
+        <result column="service_tel" property="serviceTel" />
+        <result column="station_type" property="stationType" />
+        <result column="station_status" property="stationStatus" />
+        <result column="parking_num" property="parkingNum" />
+        <result column="parking_fee" property="parkingFee" />
+        <result column="location" property="location" />
+        <result column="site_guide" property="siteGuide" />
+        <result column="construction" property="construction" />
+        <result column="pictures" property="pictures" />
+        <result column="business_hours" property="businessHours" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        station_id, station_name, address, station_tel, service_tel, station_type, station_status, parking_num, parking_fee, location, site_guide, construction, pictures, business_hours, remark
+    </sql>
+
+</mapper>

+ 18 - 0
car-wash-miniapp/src/main/java/com/kym/miniapp/controller/WashDeviceController.java

@@ -0,0 +1,18 @@
+package com.kym.miniapp.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 洗车设备表 前端控制器
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+@RestController
+@RequestMapping("/wash-device")
+public class WashDeviceController {
+
+}

+ 34 - 0
car-wash-miniapp/src/main/java/com/kym/miniapp/controller/WashOrderController.java

@@ -0,0 +1,34 @@
+package com.kym.miniapp.controller;
+
+import com.kym.common.R;
+import com.kym.entity.miniapp.queryParams.DeviceParams;
+import com.kym.service.miniapp.WashOrderService;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 洗车订单表 前端控制器
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+@RestController
+@RequestMapping("/wash-order")
+public class WashOrderController {
+
+    private final WashOrderService washOrderService;
+
+    public WashOrderController(WashOrderService washOrderService) {
+        this.washOrderService = washOrderService;
+    }
+
+
+    @PostMapping(value = "/createOrder")
+    R<?> createOrder(@RequestBody DeviceParams params){
+        return R.success(washOrderService.createOrder(params));
+    }
+}

+ 18 - 0
car-wash-miniapp/src/main/java/com/kym/miniapp/controller/WashStationController.java

@@ -0,0 +1,18 @@
+package com.kym.miniapp.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 洗车站点表 前端控制器
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+@RestController
+@RequestMapping("/wash-station")
+public class WashStationController {
+
+}

+ 1 - 1
car-wash-miniapp/src/main/java/com/kym/miniapp/jobs/EquipmentChargeStatusJob.java

@@ -31,7 +31,7 @@ public class EquipmentChargeStatusJob {
     }
 
     // 每5分钟执行一次
-    @Scheduled(cron = "0 0/5 * * * ?")
+//    @Scheduled(cron = "0 0/5 * * * ?")
     public void executeMpUserRelationJob() {
         log.info("设备充电状态信息(订单信息)更新定时任务启动...");
         var orders = redisTemplate.opsForHash().values(RedisKeys.CHARGE_ORDER_EQUIP_CHARGE_STATUS);

+ 29 - 24
car-wash-miniapp/src/main/java/com/kym/miniapp/mq/AwoaraServiceImpl.java

@@ -36,16 +36,21 @@ public class AwoaraServiceImpl implements AwoaraService {
      */
     private static Base64.Decoder decoder = Base64.getDecoder();
 
-    static <T> AwoaraResponse<T> doRequest(String productKey, String deviceName, String params, TypeReference<AwoaraResponse<T>>... typeReference) {
+    static <T> T doRequest(String productKey, String deviceName, String params, TypeReference<AwoaraResponse<T>>... typeReference) {
         try {
             var response = AliyunLotClient.rRpc(productKey, deviceName, params);
+            AwoaraResponse<T> res;
             if (HTTP_OK == response.getStatusCode()) {
                 if (CommUtil.isNotEmptyAndNull(typeReference)) {
-                    return JSONObject.parseObject(new String(decoder.decode(response.getBody().payloadBase64Byte), StandardCharsets.UTF_8), typeReference[0]);
+                    res = JSONObject.parseObject(new String(decoder.decode(response.getBody().payloadBase64Byte), StandardCharsets.UTF_8), typeReference[0]);
                 } else {
-                    return JSONObject.parseObject(new String(decoder.decode(response.getBody().payloadBase64Byte), StandardCharsets.UTF_8), AwoaraResponse.class);
+                    res = JSONObject.parseObject(new String(decoder.decode(response.getBody().payloadBase64Byte), StandardCharsets.UTF_8), AwoaraResponse.class);
+                }
+                if (HTTP_OK == res.getCode()) {
+                    return res.getData();
+                } else {
+                    throw new BusinessException("AliyunLot响应异常");
                 }
-
             } else {
                 throw new BusinessException("AliyunLot响应异常");
             }
@@ -55,7 +60,7 @@ public class AwoaraServiceImpl implements AwoaraService {
     }
 
     @Override
-    public AwoaraResponse<ApiList> help(String productKey, String deviceName) {
+    public ApiList help(String productKey, String deviceName) {
         var params = """
                 {
                     "version": "2.0",
@@ -68,7 +73,7 @@ public class AwoaraServiceImpl implements AwoaraService {
     }
 
     @Override
-    public AwoaraResponse<MethodHelp> methodHelp(String productKey, String deviceName, String method) {
+    public MethodHelp methodHelp(String productKey, String deviceName, String method) {
         var params = """
                 {
                     "version": "2.0",
@@ -84,7 +89,7 @@ public class AwoaraServiceImpl implements AwoaraService {
     }
 
     @Override
-    public AwoaraResponse<?> showMsgbox(String productKey, String deviceName, String title, String content, int seconds) {
+    public void showMsgbox(String productKey, String deviceName, String title, String content, int seconds) {
         var params = """
                 {
                     "version": "2.0",
@@ -97,11 +102,11 @@ public class AwoaraServiceImpl implements AwoaraService {
                 }
                 """.formatted(title, content, seconds);
 
-        return doRequest(productKey, deviceName, params, null);
+        doRequest(productKey, deviceName, params, null);
     }
 
     @Override
-    public AwoaraResponse<?> hideMsgbox(String productKey, String deviceName) {
+    public void hideMsgbox(String productKey, String deviceName) {
         var params = """
                 {
                     "version": "2.0",
@@ -109,11 +114,11 @@ public class AwoaraServiceImpl implements AwoaraService {
                     "params": []
                 }
                 """;
-        return doRequest(productKey, deviceName, params, null);
+        doRequest(productKey, deviceName, params, null);
     }
 
     @Override
-    public AwoaraResponse<?> reboot(String productKey, String deviceName) {
+    public void reboot(String productKey, String deviceName) {
         var params = """
                 {
                     "version": "2.0",
@@ -121,11 +126,11 @@ public class AwoaraServiceImpl implements AwoaraService {
                     "params": []
                 }
                 """;
-        return doRequest(productKey, deviceName, params, null);
+        doRequest(productKey, deviceName, params, null);
     }
 
     @Override
-    public AwoaraResponse<State> queryState(String productKey, String deviceName) {
+    public State queryState(String productKey, String deviceName) {
         var params = """
                 {
                     "version": "2.0",
@@ -138,7 +143,7 @@ public class AwoaraServiceImpl implements AwoaraService {
     }
 
     @Override
-    public AwoaraResponse<HardwareInfo> queryHardwareInfo(String productKey, String deviceName) {
+    public HardwareInfo queryHardwareInfo(String productKey, String deviceName) {
         var params = """
                 {
                     "version": "2.0",
@@ -151,7 +156,7 @@ public class AwoaraServiceImpl implements AwoaraService {
     }
 
     @Override
-    public AwoaraResponse<CreateOrder> createOrder(String productKey, String deviceName, String orderId, String memberName, int memberBalance, int memberDiscount, int prepayMoney) {
+    public CreateOrder createOrder(String productKey, String deviceName, String orderId, String memberName, int memberBalance, int memberDiscount, int prepayMoney) {
         var params = """
                 {
                     "version": "2.0",
@@ -170,7 +175,7 @@ public class AwoaraServiceImpl implements AwoaraService {
     }
 
     @Override
-    public AwoaraResponse<?> closeOrder(String productKey, String deviceName, String orderId, int forceClose) {
+    public void closeOrder(String productKey, String deviceName, String orderId, int forceClose) {
         var params = """
                 {
                     "version": "2.0",
@@ -181,11 +186,11 @@ public class AwoaraServiceImpl implements AwoaraService {
                      }
                 }
                 """.formatted(orderId, forceClose);
-        return doRequest(productKey, deviceName, params, null);
+        doRequest(productKey, deviceName, params, null);
     }
 
     @Override
-    public AwoaraResponse<OrderInfo> queryOrder(String productKey, String deviceName, String orderId) {
+    public OrderInfo queryOrder(String productKey, String deviceName, String orderId) {
         var params = """
                 {
                     "version": "2.0",
@@ -200,7 +205,7 @@ public class AwoaraServiceImpl implements AwoaraService {
     }
 
     @Override
-    public AwoaraResponse<Config> readConfig(String productKey, String deviceName) {
+    public Config readConfig(String productKey, String deviceName) {
         var params = """
                 {
                     "version": "2.0",
@@ -213,7 +218,7 @@ public class AwoaraServiceImpl implements AwoaraService {
     }
 
     @Override
-    public AwoaraResponse<?> writeConfig(String productKey, String deviceName, Config config) {
+    public void writeConfig(String productKey, String deviceName, Config config) {
         var params = """
                 {
                     "version": "2.0",
@@ -221,7 +226,7 @@ public class AwoaraServiceImpl implements AwoaraService {
                     "params": {
                         "version":2,
                         "maintenance_mode": 0,
-                        "user_message.1": "快与慢自助洗车",
+                        "user_message.1": "超级进化车生活",
                         "user_message.2": "客服电话:13018061579",
                         "sensor_water": 0,
                         "price_space": 10,
@@ -248,11 +253,11 @@ public class AwoaraServiceImpl implements AwoaraService {
                         "notice_throshold_idle": 300,
                         "notice_throshold_operation": 600,
                         "motor_mode": 0,
-                        "tts_open_by_button":"欢迎使用快与慢自助洗车机",
-                        "tts_open_by_network":"欢迎使用快与慢自助洗车机"
+                        "tts_open_by_button":"欢迎使用超级进化自助洗车机",
+                        "tts_open_by_network":"欢迎使用超级进化自助洗车机"
                      }
                 }
                 """;
-        return doRequest(productKey, deviceName, params, null);
+        doRequest(productKey, deviceName, params, null);
     }
 }

+ 12 - 12
car-wash-service/src/main/java/com/kym/service/awoara/AwoaraService.java

@@ -21,7 +21,7 @@ public interface AwoaraService {
      *
      * @return
      */
-    AwoaraResponse<ApiList> help(String productKey, String deviceName);
+    ApiList help(String productKey, String deviceName);
 
 
     /**
@@ -33,7 +33,7 @@ public interface AwoaraService {
      * @return
      * @throws Exception
      */
-    AwoaraResponse<MethodHelp> methodHelp(String productKey, String deviceName, String method);
+    MethodHelp methodHelp(String productKey, String deviceName, String method);
 
 
     /**
@@ -50,7 +50,7 @@ public interface AwoaraService {
      * @param seconds
      * @return
      */
-    AwoaraResponse<?> showMsgbox(String productKey, String deviceName, String title, String content, int seconds);
+    void showMsgbox(String productKey, String deviceName, String title, String content, int seconds);
 
     /**
      * 隐藏消息对话框
@@ -59,7 +59,7 @@ public interface AwoaraService {
      * @param deviceName
      * @return
      */
-    AwoaraResponse<?> hideMsgbox(String productKey, String deviceName);
+    void hideMsgbox(String productKey, String deviceName);
 
 
     /**
@@ -70,7 +70,7 @@ public interface AwoaraService {
      * @param deviceName
      * @return
      */
-    AwoaraResponse<?> reboot(String productKey, String deviceName);
+    void reboot(String productKey, String deviceName);
 
 
     /**
@@ -80,7 +80,7 @@ public interface AwoaraService {
      * @param deviceName
      * @return
      */
-    AwoaraResponse<State> queryState(String productKey, String deviceName);
+    State queryState(String productKey, String deviceName);
 
 
     /**
@@ -90,7 +90,7 @@ public interface AwoaraService {
      * @param deviceName
      * @return
      */
-    AwoaraResponse<HardwareInfo> queryHardwareInfo(String productKey, String deviceName);
+    HardwareInfo queryHardwareInfo(String productKey, String deviceName);
 
     /**
      * 创建订单
@@ -105,7 +105,7 @@ public interface AwoaraService {
      *
      * @return
      */
-    AwoaraResponse<CreateOrder> createOrder(String productKey, String deviceName, String orderId, String memberName, int memberBalance, int memberDiscount, int prepayMoney);
+    CreateOrder createOrder(String productKey, String deviceName, String orderId, String memberName, int memberBalance, int memberDiscount, int prepayMoney);
 
     /**
      * 关闭订单
@@ -116,7 +116,7 @@ public interface AwoaraService {
      * @param forceClose
      * @return
      */
-    AwoaraResponse<?> closeOrder(String productKey, String deviceName, String orderId, int forceClose);
+    void closeOrder(String productKey, String deviceName, String orderId, int forceClose);
 
     /**
      * 查询订单
@@ -127,7 +127,7 @@ public interface AwoaraService {
      * @param orderId
      * @return
      */
-    AwoaraResponse<OrderInfo> queryOrder(String productKey, String deviceName, String orderId);
+    OrderInfo queryOrder(String productKey, String deviceName, String orderId);
 
     /**
      * 读取配置
@@ -136,7 +136,7 @@ public interface AwoaraService {
      * @param deviceName
      * @return
      */
-    AwoaraResponse<Config> readConfig(String productKey, String deviceName);
+    Config readConfig(String productKey, String deviceName);
 
     /**
      * 修改配置
@@ -146,5 +146,5 @@ public interface AwoaraService {
      * @param config
      * @return
      */
-    AwoaraResponse<?> writeConfig(String productKey, String deviceName, Config config);
+    void writeConfig(String productKey, String deviceName, Config config);
 }

+ 16 - 0
car-wash-service/src/main/java/com/kym/service/miniapp/WashDeviceService.java

@@ -0,0 +1,16 @@
+package com.kym.service.miniapp;
+
+import com.kym.entity.miniapp.WashDevice;
+import com.kym.service.mybatisplus.MyBaseService;
+
+/**
+ * <p>
+ * 洗车设备表 服务类
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+public interface WashDeviceService extends MyBaseService<WashDevice> {
+
+}

+ 19 - 0
car-wash-service/src/main/java/com/kym/service/miniapp/WashOrderService.java

@@ -0,0 +1,19 @@
+package com.kym.service.miniapp;
+
+import com.kym.entity.miniapp.WashOrder;
+import com.kym.entity.miniapp.queryParams.DeviceParams;
+import com.kym.service.awoara.entity.response.CreateOrder;
+import com.kym.service.mybatisplus.MyBaseService;
+
+/**
+ * <p>
+ * 洗车订单表 服务类
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+public interface WashOrderService extends MyBaseService<WashOrder> {
+
+    WashOrder createOrder(DeviceParams params);
+}

+ 16 - 0
car-wash-service/src/main/java/com/kym/service/miniapp/WashStationService.java

@@ -0,0 +1,16 @@
+package com.kym.service.miniapp;
+
+import com.kym.entity.miniapp.WashStation;
+import com.kym.service.mybatisplus.MyBaseService;
+
+/**
+ * <p>
+ * 洗车站点表 服务类
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+public interface WashStationService extends MyBaseService<WashStation> {
+
+}

+ 20 - 0
car-wash-service/src/main/java/com/kym/service/miniapp/impl/WashDeviceServiceImpl.java

@@ -0,0 +1,20 @@
+package com.kym.service.miniapp.impl;
+
+import com.kym.entity.miniapp.WashDevice;
+import com.kym.mapper.miniapp.WashDeviceMapper;
+import com.kym.service.miniapp.WashDeviceService;
+import com.kym.service.mybatisplus.MyBaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 洗车设备表 服务实现类
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+@Service
+public class WashDeviceServiceImpl extends MyBaseServiceImpl<WashDeviceMapper, WashDevice> implements WashDeviceService {
+
+}

+ 62 - 0
car-wash-service/src/main/java/com/kym/service/miniapp/impl/WashOrderServiceImpl.java

@@ -0,0 +1,62 @@
+package com.kym.service.miniapp.impl;
+
+import cn.dev33.satoken.stp.StpUtil;
+import com.kym.common.utils.OrderUtils;
+import com.kym.entity.miniapp.WashOrder;
+import com.kym.entity.miniapp.queryParams.DeviceParams;
+import com.kym.mapper.miniapp.WashOrderMapper;
+import com.kym.service.awoara.AwoaraService;
+import com.kym.service.awoara.entity.response.CreateOrder;
+import com.kym.service.miniapp.AccountService;
+import com.kym.service.miniapp.WashOrderService;
+import com.kym.service.mybatisplus.MyBaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 洗车订单表 服务实现类
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+@Service
+public class WashOrderServiceImpl extends MyBaseServiceImpl<WashOrderMapper, WashOrder> implements WashOrderService {
+
+
+    private final AwoaraService awoaraService;
+    private final AccountService accountService;
+
+    public WashOrderServiceImpl(AwoaraService awoaraService, AccountService accountService) {
+        this.awoaraService = awoaraService;
+        this.accountService = accountService;
+    }
+
+    @Override
+    public WashOrder createOrder(DeviceParams params) {
+        var account = accountService.getAccountByUserId(StpUtil.getLoginIdAsLong());
+        var memberName = StpUtil.getSession().getString("mobilePhone");
+        var orderId = OrderUtils.getOrderNo();
+        var stationId = "";
+        var createOrder = awoaraService.createOrder(params.getProductKey(), params.getDeviceName(),
+                orderId, memberName, account.getBalance(),
+                100, 2000);
+        var washOrder = new WashOrder()
+                .setUserId(StpUtil.getLoginIdAsLong())
+                .setStationId(stationId)
+                .setProductKey(params.getProductKey())
+                .setDeviceName(params.getDeviceName())
+                .setOpenType("network")
+                .setOrderId(orderId)
+                .setOrderIdLocal(createOrder.getOrder_id_local())
+                .setMemberDiscount(100)
+                .setPrepayMoney(2000)
+                .setStartTime(LocalDateTime.now())
+                .setOrderStatus(0)
+                .setPayStatus(0);
+        save(washOrder);
+        return washOrder;
+    }
+}

+ 20 - 0
car-wash-service/src/main/java/com/kym/service/miniapp/impl/WashStationServiceImpl.java

@@ -0,0 +1,20 @@
+package com.kym.service.miniapp.impl;
+
+import com.kym.entity.miniapp.WashStation;
+import com.kym.mapper.miniapp.WashStationMapper;
+import com.kym.service.miniapp.WashStationService;
+import com.kym.service.mybatisplus.MyBaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 洗车站点表 服务实现类
+ * </p>
+ *
+ * @author skyline
+ * @since 2024-09-11
+ */
+@Service
+public class WashStationServiceImpl extends MyBaseServiceImpl<WashStationMapper, WashStation> implements WashStationService {
+
+}