hjl
2024-07-26 f8cc44e926fd22f9d1d864dc684c827f6960270b
feat: 最新代码及配置
1 文件已重命名
67个文件已修改
8个文件已删除
5个文件已添加
1272 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/ChangeDispatch.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/Order.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderCountVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderRequest.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/UserOrderRequest.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/Withdraw.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/request/EvaluatePageRequest.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ObsUploadUtil.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/CityInfoVO.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/GaoDeAddressInfoVO.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/Geocodes.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/EvaluateController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/FranchiseeController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/HomePageController.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/RecoveryServeController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/RecoveryServePriceController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/RegionController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/WorkerProcessController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Agreement.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Franchisee.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/RecoveryServePrice.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/WorkerProcess.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/UserMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/RecoveryServePriceRequest.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/RegionService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/RegionServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/ChangeDispatch.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Withdraw.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/request/EvaluatePageRequest.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/WithdrawServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/EvaluateOrderInfoVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderCountVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/ChangeDispatchMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/EvaluateMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/WithdrawMapper.xml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/EvaluateController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryServeController.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/UserController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/RecoveryServePrice.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/UserRecipient.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/request/OrderRequest.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/RegionServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderDetailVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/ServeDetailVO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-user/src/main/resources/mapper/user/RecoveryServeMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Evaluate.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/EvaluateMapper.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/EvaluateService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/EvaluateServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/OrderListVO.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/ServeCoordinate.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/EvaluateMapper.xml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/nacos_config.zip 补丁 | 查看 | 原始文档 | blame | 历史
sql/nacos_config_export_20240726114948.zip 补丁 | 查看 | 原始文档 | blame | 历史
sql/secondary_recovery.sql 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/secondary_recovery_order.sql 268 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/ChangeDispatch.java
@@ -72,5 +72,8 @@
    @TableField("user_name")
    private String userName;
    @ApiModelProperty("城市编码")
    @TableField("city_code")
    private String cityCode;
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/Order.java
@@ -28,7 +28,7 @@
@ApiModel(value = "Order对象", description = "订单管理")
public class Order extends BaseEntity {
    @TableId(value = "id", type = IdType.AUTO)
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;
    @ApiModelProperty("下单城市")
@@ -150,6 +150,14 @@
    @TableField("top_sort")
    private Integer topSort;
    @ApiModelProperty("是否评价(0:未评价,1:已评价)")
    @TableField("is_evaluate")
    private Integer isEvaluate;
    @ApiModelProperty("城市code")
    @TableField("city_code")
    private String cityCode;
    @ApiModelProperty("回收服务封面图")
    @TableField(exist = false)
    private String cover;
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderCountVO.java
@@ -13,6 +13,9 @@
@ApiModel(value = "OrderCountVO对象", description = "订单统计返回类")
public class OrderCountVO {
    @ApiModelProperty("订单中师傅名称")
    private String workerName;
    @ApiModelProperty("师傅id")
    private Integer workerId;
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/OrderRequest.java
@@ -18,6 +18,9 @@
    @ApiModelProperty("下单城市")
    private String city;
    @ApiModelProperty("城市编码")
    private String cityCode;
    @ApiModelProperty("订单编号")
    private String orderNumber;
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/UserOrderRequest.java
@@ -16,6 +16,9 @@
@ApiModel(value = "OrderRequest对象", description = "用户下单请求参数对象")
public class UserOrderRequest {
    @ApiModelProperty("下单城市")
    private String city;
    @ApiModelProperty("订单编号")
    private String orderNumber;
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/entity/Withdraw.java
@@ -60,5 +60,9 @@
    @TableField("order_id")
    private String orderId;
    @ApiModelProperty("城市code")
    @TableField("city_code")
    private String cityCode;
}
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
@@ -179,6 +179,11 @@
            }
            @Override
            public R<Boolean> orderByUserId(Integer userId) {
                return R.fail(cause.getMessage());
            }
            @Override
            public R<Boolean> supplementAllowance(String orderId, String prizeName) {
                return R.fail(cause.getMessage());
            }
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
@@ -367,6 +367,14 @@
    R<Boolean> placeOrder(@RequestBody UserOrderRequest userOrderRequest);
    /**
     * 判断用户是否下单
     *
     * @param userId 用户id
     */
    @GetMapping(value = "/order/orderByUserId")
    R<Boolean> orderByUserId(@RequestParam("userId") Integer userId);
    /**
     * 站点详情
     *
     * @param orderId   订单id
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/request/EvaluatePageRequest.java
@@ -24,4 +24,6 @@
    private Integer pageSize;
    private List<Integer> userIdList;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/model/LoginUser.java
@@ -68,6 +68,7 @@
    /**
     * 加盟商所管辖城市
     * 城市code列表
     */
    private List<String> cityList;
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java
@@ -148,11 +148,6 @@
    public static final String EXCEL_ORDER_FILE_NAME = "订单记录";
    /**
     * 文件上传常量后缀
     */
    public static final String APK = "apk";
    /**
     * 用户编号生成前缀
     */
    public static final String USER_NO_PRE = "用户%s";
@@ -278,6 +273,21 @@
    public static final String DEFAULT_USER_NUMBER_PRE = "用户";
    /**
     * 师傅端默认用户ID前缀
     */
    public static final String SUBSIDY_MONEY = "¥";
    /**
     * 师傅端默认用户ID前缀
     */
    public static final String PROVINCE = "省";
    /**
     * 师傅端默认用户ID前缀
     */
    public static final String MARKET = "市";
    /**
     * 师傅端默认密码
     */
    public static final String DEFAULT_PASSWORD = "123456";
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/GaoDeMapUtil.java
@@ -6,10 +6,7 @@
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.enums.GaoDeEnum;
import com.ruoyi.common.core.exception.GlobalException;
import com.ruoyi.common.core.vo.GaoDeMap;
import com.ruoyi.common.core.vo.Path;
import com.ruoyi.common.core.vo.PolylineData;
import com.ruoyi.common.core.vo.Steps;
import com.ruoyi.common.core.vo.*;
import java.io.BufferedReader;
import java.io.IOException;
@@ -130,6 +127,25 @@
    }
    /**
     * 功能描述: 根据地址获取城市code
     *
     * @param address d地址
     * @return 两个定位点之间的距离
     */
    public static Result<CityInfoVO> getAddressInfo(String address) {
        // 返回起始地startAddr与目的地endAddr之间的距离,单位:米
        String queryUrl = "https://restapi.amap.com/v3/geocode/geo?address=" + address
                + "&key=" + GAO_DE_KEY;
        String queryResult = getResponse(queryUrl);
        GaoDeAddressInfoVO data = JSONObject.parseObject(queryResult, GaoDeAddressInfoVO.class);
        List<Geocodes> geocodes = data.getGeocodes();
        Geocodes info = geocodes.get(0);
        String adcode = info.getAdcode();
        String city = info.getCity();
        return Result.succeed(new CityInfoVO(city, adcode), "距离计算成功!");
    }
    /**
     * 功能描述: 发送请求
     *
     * @param serverUrl 请求地址
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/ObsUploadUtil.java
File was deleted
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/CityInfoVO.java
New file
@@ -0,0 +1,24 @@
package com.ruoyi.common.core.vo;
import lombok.Data;
/**
 * @author HJL
 * @version 1.0
 * @since 2024-07-25 14:31
 */
@Data
public class CityInfoVO {
    private String city;
    private String code;
    public CityInfoVO() {
    }
    public CityInfoVO(String city, String code) {
        this.city = city;
        this.code = code;
    }
}
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/GaoDeAddressInfoVO.java
New file
@@ -0,0 +1,23 @@
package com.ruoyi.common.core.vo;
import lombok.Data;
import java.util.List;
/**
 * @author HJL
 */
@Data
public class GaoDeAddressInfoVO {
    private String status;
    private String info;
    private String infocode;
    private String count;
    private List<Geocodes> geocodes;
}
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/Geocodes.java
New file
@@ -0,0 +1,27 @@
package com.ruoyi.common.core.vo;
import lombok.Data;
/**
 * @author HJL
 * @version 1.0
 * @since 2024-07-25 14:25
 */
@Data
public class Geocodes {
    private String formatted_address;
    private String country;
    private String province;
    private String citycode;
    private String city;
    private String district;
    private String adcode;
}
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/handler/GlobalExceptionHandler.java
@@ -143,7 +143,7 @@
     */
    @ExceptionHandler(GlobalException.class)
    public R<String> handleDemoModeException(GlobalException g) {
        return R.fail(null, g.getCode(), g.getMessage());
        return R.fail(null, g.getCode() == null ? 500 : g.getCode(), g.getMessage());
    }
    /**
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/EvaluateController.java
@@ -2,7 +2,10 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.entity.User;
import com.ruoyi.admin.service.UserService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.security.service.TokenService;
@@ -23,6 +26,7 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -41,6 +45,8 @@
    private EvaluateClient evaluateClient;
    @Resource
    private TokenService tokenService;
    @Resource
    private UserService userService;
    /**
     * 订单评价分页列表
@@ -69,6 +75,13 @@
        if (loginUser.getIsFranchisee()) {
            cityList = loginUser.getCityList();
        }
        List<User> userList;
        if (StringUtils.isNotBlank(userNo)) {
            userList = userService.lambdaQuery().like(User::getNickname, userNo).list();
        } else {
            userList = new ArrayList<>();
        }
        List<Integer> userIdList = userList.stream().map(User::getId).collect(Collectors.toList());
        EvaluatePageRequest evaluatePageRequest = new EvaluatePageRequest();
        evaluatePageRequest.setUserNo(userNo);
        evaluatePageRequest.setOrderNumber(orderNumber);
@@ -76,7 +89,16 @@
        evaluatePageRequest.setCityList(cityList);
        evaluatePageRequest.setPageNum(pageNum);
        evaluatePageRequest.setPageSize(pageSize);
        return evaluateClient.queryPageList(evaluatePageRequest);
        evaluatePageRequest.setUserIdList(userIdList);
        R<Page<EvaluatePageVO>> r = evaluateClient.queryPageList(evaluatePageRequest);
        for (EvaluatePageVO record : r.getData().getRecords()) {
            Integer userId = record.getUserId();
            User user = userService.getById(userId);
            if (null != user) {
                record.setUserNo(user.getNickname());
            }
        }
        return r;
    }
    /**
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/FranchiseeController.java
@@ -5,9 +5,11 @@
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.admin.entity.Franchisee;
import com.ruoyi.admin.entity.Region;
import com.ruoyi.admin.entity.SysUser;
import com.ruoyi.admin.entity.UserRole;
import com.ruoyi.admin.service.FranchiseeService;
import com.ruoyi.admin.service.RegionService;
import com.ruoyi.admin.service.SysUserService;
import com.ruoyi.admin.service.UserRoleService;
import com.ruoyi.common.core.constant.Constants;
@@ -47,6 +49,8 @@
    private SysUserService sysUserService;
    @Resource
    private UserRoleService userRoleService;
    @Resource
    private RegionService regionService;
    /**
     * 加盟商信息分页列表
@@ -104,7 +108,7 @@
    public R<List<String>> cityDetail(@RequestParam("id") Integer id) {
        Franchisee franchisee = franchiseeService.lambdaQuery()
                .eq(Franchisee::getId, id).eq(Franchisee::getIsDelete, 0).one();
        return R.ok(Arrays.stream(franchisee.getCity().split(",")).collect(Collectors.toList()));
        return R.ok(Arrays.stream(franchisee.getCityCode().split(",")).collect(Collectors.toList()));
    }
    /**
@@ -120,6 +124,18 @@
            throw new GlobalException("请输入管理员初始密码!");
        }
        String md5Password = checkFranchisee(franchisee);
        String cityCode = franchisee.getCityCode();
        List<String> list = Arrays.stream(cityCode.split(",")).collect(Collectors.toList());
        StringBuilder str = new StringBuilder();
        for (String code : list) {
            Region region = regionService.lambdaQuery()
                    .eq(Region::getCode, code).one();
            if (null != region) {
                str.append(region.getName()).append(",");
            }
        }
        String city = str.substring(Constants.ZERO, str.length() - 1);
        franchisee.setCity(city);
        boolean save = franchiseeService.save(franchisee);
        // 生成sysUser账号
        SysUser sysUser = new SysUser();
@@ -217,7 +233,7 @@
                .eq(SysUser::getIsDelete, Constants.ZERO)
                .eq(SysUser::getFranchiseeId, null).one();
        if (null != only || null != user) {
            throw new GlobalException("该账号已存在!");
            throw new GlobalException("该账号已存在!", 500);
        }
//        String city = franchisee.getCity();
//        List<String> cityList = Arrays.stream(city.split(",")).collect(Collectors.toList());
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/HomePageController.java
@@ -1,7 +1,5 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.netty.NettyChannelMap;
import com.ruoyi.admin.netty.NettyWebSocketController;
import com.ruoyi.admin.request.UserDataCountRequest;
import com.ruoyi.admin.service.MasterWorkerService;
import com.ruoyi.admin.service.UserService;
@@ -15,10 +13,12 @@
import com.ruoyi.order.api.entity.OrderResultVO;
import com.ruoyi.order.api.feignClient.OrderClient;
import com.ruoyi.system.api.model.LoginUser;
import io.netty.channel.ChannelHandlerContext;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
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;
import javax.annotation.Resource;
import java.util.List;
@@ -41,21 +41,6 @@
    private OrderClient orderClient;
    @Resource
    private TokenService tokenService;
    /**
     * netty测试
     *
     * @param workerId 请求参数
     */
    @ApiOperation(value = "netty测试", tags = {"后台-首页"})
    @GetMapping(value = "/nettySend")
    public R<?> nettySend(@RequestParam Integer workerId) {
        ChannelHandlerContext context = NettyChannelMap.getData(String.valueOf(workerId));
        if (null != context) {
            NettyWebSocketController.sendMsgToClient(context, "您有一条新的订单,请注意查收!");
        }
        return R.ok();
    }
    /**
     * 用户数据统计
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
@@ -87,9 +87,9 @@
            // 最后一跳城市不匹配or条件
            String s = cityList.get(i);
            if (cityList.size() - 1 == i) {
                wrapper.like(MasterWorker::getCity, s);
                wrapper.like(MasterWorker::getCityCode, s);
            } else {
                wrapper.like(MasterWorker::getCity, s).or();
                wrapper.like(MasterWorker::getCityCode, s).or();
            }
        }
        return R.ok(wrapper.eq(MasterWorker::getIsDelete, Constants.ZERO)
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
@@ -14,7 +14,10 @@
import com.ruoyi.admin.vo.OrderDetailVO;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.utils.GaoDeMapUtil;
import com.ruoyi.common.core.utils.SnowflakeIdWorker;
import com.ruoyi.common.core.vo.CityInfoVO;
import com.ruoyi.common.security.annotation.Logical;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.common.security.service.TokenService;
@@ -117,7 +120,11 @@
            return R.loginExpire("登录失效!");
        }
        if (loginUser.getIsFranchisee()) {
            orderQueryRequest.setCityList(loginUser.getCityList());
            if (null == orderQueryRequest.getCityList() || orderQueryRequest.getCityList().isEmpty()) {
                orderQueryRequest.setCityList(loginUser.getCityList());
            } else {
                orderQueryRequest.getCityList().addAll(loginUser.getCityList());
            }
        }
        Page<Order> data = orderClient.queryPage(orderQueryRequest).getData();
        if (null != data) {
@@ -131,6 +138,7 @@
                    record.setServerName(masterWorker.getRealName());
                    record.setServerPhone(masterWorker.getPhone());
                }
                record.setReservationAddress(record.getReservationAddress() + record.getAddress());
            }
        }
        return R.ok(data);
@@ -143,6 +151,17 @@
    @ApiOperation(value = "订单列表-各订单数量统计", tags = {"后台-订单管理"})
    @PostMapping(value = "/orderPageCount")
    public R<OrderPageCountVO> orderPageCount(@RequestBody OrderQueryRequest orderQueryRequest) {
        LoginUser loginUser = tokenService.getLoginUser();
        if (null == loginUser) {
            return R.loginExpire("登录失效!");
        }
        if (loginUser.getIsFranchisee()) {
            if (null == orderQueryRequest.getCityList() || orderQueryRequest.getCityList().isEmpty()) {
                orderQueryRequest.setCityList(loginUser.getCityList());
            } else {
                orderQueryRequest.getCityList().addAll(loginUser.getCityList());
            }
        }
        return R.ok(orderClient.orderPageCount(orderQueryRequest).getData());
    }
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/RecoveryServeController.java
@@ -141,6 +141,7 @@
                price.setRecoveryServeId(serve.getId());
                price.setRecoveryPrice(recoveryPrice);
                price.setCity(city);
                price.setCityCode(data.getCityCode());
                save = save && recoveryServePriceService.save(price);
            }
        }
@@ -179,6 +180,7 @@
                price.setRecoveryServeId(serve.getId());
                price.setRecoveryPrice(recoveryPrice);
                price.setCity(city);
                price.setCityCode(data.getCityCode());
                update = update && recoveryServePriceService.save(price);
            }
        }
@@ -200,6 +202,9 @@
        List<String> idList = Arrays.stream(ids.split(",")).collect(Collectors.toList());
        List<RecoveryServe> list = recoveryServeService.lambdaQuery().in(RecoveryServe::getId, idList).list();
        list.forEach(data -> data.setIsDelete(1));
        recoveryServePriceService.lambdaUpdate()
                .set(RecoveryServePrice::getIsDelete, Constants.ONE)
                .in(RecoveryServePrice::getRecoveryServeId, idList).update();
        return recoveryServeService.updateBatchById(list) ? R.ok() : R.fail();
    }
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/RecoveryServePriceController.java
File was deleted
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/RegionController.java
@@ -4,6 +4,8 @@
import com.ruoyi.admin.entity.Region;
import com.ruoyi.admin.service.RegionService;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.system.api.model.LoginUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
@@ -11,6 +13,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
@@ -28,6 +31,8 @@
    @Resource
    private RegionService regionService;
    @Resource
    private TokenService tokenService;
    /**
     * 收货地址省市二级联动
@@ -35,7 +40,17 @@
    @GetMapping("/addressTree")
    @ApiOperation(value = "选择城市:省市二级联动", tags = {"后台-首页"})
    public R<List<Region>> addressTree() {
        return R.ok(regionService.addressTree());
        LoginUser loginUser = tokenService.getLoginUser();
        if (null == loginUser) {
            return R.loginExpire("登录失效!");
        }
        List<String> cityCodeList;
        if (loginUser.getIsFranchisee()) {
            cityCodeList = loginUser.getCityList();
        } else {
            cityCodeList = new ArrayList<>();
        }
        return R.ok(regionService.addressTree(cityCodeList));
    }
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/WorkerProcessController.java
@@ -81,9 +81,9 @@
            // 最后一跳城市不匹配or条件
            String s = cityList.get(i);
            if (cityList.size() - 1 == i) {
                wrapper.like(WorkerProcess::getCity, s);
                wrapper.like(WorkerProcess::getCityCode, s);
            } else {
                wrapper.like(WorkerProcess::getCity, s).or();
                wrapper.like(WorkerProcess::getCityCode, s).or();
            }
        }
        return R.ok(wrapper.eq(WorkerProcess::getIsDelete, 0)
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Agreement.java
@@ -10,6 +10,8 @@
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
/**
 * <p>
 * 协议政策、司机操作指导
@@ -29,6 +31,7 @@
    @ApiModelProperty("内容")
    @TableField("content")
    @NotBlank
    private String content;
    @ApiModelProperty("0注册协议;1:隐私政策;2:司机操作指导")
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Franchisee.java
@@ -62,7 +62,6 @@
    @ApiModelProperty("管辖城市( ',' 隔开)")
    @TableField("city")
    @NotBlank(message = "请选择:管辖城市")
    private String city;
    @ApiModelProperty("身份证正反面照片 ,隔开")
@@ -82,4 +81,9 @@
    @TableField("city_str")
    private String cityStr;
    @ApiModelProperty("对应城市code")
    @NotBlank(message = "请选择:管辖城市")
    @TableField("city_code")
    private String cityCode;
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/MasterWorker.java
@@ -89,4 +89,8 @@
    @TableField("city_str")
    private String cityStr;
    @ApiModelProperty("对应城市code")
    @TableField("city_code")
    private String cityCode;
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/RecoveryServePrice.java
@@ -41,4 +41,8 @@
    @TableField("city")
    private String city;
    @ApiModelProperty("对应城市code")
    @TableField("city_code")
    private String cityCode;
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/WorkerProcess.java
@@ -85,4 +85,8 @@
    @TableField("city_str")
    private String cityStr;
    @ApiModelProperty("对应城市code")
    @TableField("city_code")
    private String cityCode;
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/UserMapper.java
@@ -42,4 +42,5 @@
     * @return 注册用户数量
     */
    Long increaseNumberByMonth(@Param("cityList") List<String> cityList);
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/request/RecoveryServePriceRequest.java
@@ -26,4 +26,7 @@
    @ApiModelProperty("对应城市")
    private String city;
    @ApiModelProperty("对应城市code")
    private String cityCode;
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/RegionService.java
@@ -18,7 +18,8 @@
    /**
     * 收货地址省市区二级联动
     *
     * @param cityCodeList 城市编码列表
     * @return 无限级树
     */
    List<Region> addressTree();
    List<Region> addressTree(List<String> cityCodeList);
}
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java
@@ -34,7 +34,7 @@
        if (null == cityList || cityList.isEmpty()) {
            masterWorkerList = lambdaQuery().eq(MasterWorker::getIsDelete, 0).list();
        } else {
            masterWorkerList = lambdaQuery().in(MasterWorker::getCity, cityList)
            masterWorkerList = lambdaQuery().in(MasterWorker::getCityCode, cityList)
                    .eq(MasterWorker::getIsDelete, 0).list();
        }
        if (null == masterWorkerList || masterWorkerList.isEmpty()) {
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
@@ -225,7 +225,7 @@
        }
        orderByUserInfo.setReservationName(order.getReservationName());
        orderByUserInfo.setReservationPhone(order.getReservationPhone());
        orderByUserInfo.setReservationAddress(order.getReservationAddress());
        orderByUserInfo.setReservationAddress(order.getReservationAddress() + order.getAddress());
        orderByUserInfo.setTime(order.getTime());
        result.setUserInfo(orderByUserInfo);
    }
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/RegionServiceImpl.java
@@ -10,7 +10,6 @@
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@@ -31,11 +30,9 @@
    private RedisTemplate<Object, Object> redisTemplate;
    @Override
    public List<Region> addressTree() {
        // redis缓存
        Map<Object, Object> regionList = redisTemplate.opsForHash().entries(RedisConstants.ADDRESS_TREE);
    public List<Region> addressTree(List<String> cityCodeList) {
        // 获取所有地区信息 省市区三级
        List<Region> regions = getReginList(regionList);
        List<Region> regions = getReginList(cityCodeList);
        // 所有地区
        Map<String, Region> courseTypeMap = regions.stream().
                collect(Collectors.toMap(region -> region.getId().toString()
@@ -67,15 +64,13 @@
    /**
     * 获取redis数据进行封装
     */
    private List<Region> getReginList(Map<Object, Object> regionMap) {
        List<Region> regions = new ArrayList<>();
        if (!regionMap.isEmpty()) {
            Collection<Object> values = regionMap.values();
            for (Object value : values) {
                regions.add((Region) value);
            }
        } else {
    private List<Region> getReginList(List<String> cityCodeList) {
        List<Region> regions;
        if (cityCodeList.isEmpty()) {
            regions = this.list();
        } else {
            regions = this.lambdaQuery()
                    .in(Region::getCode, cityCodeList).list();
        }
        return regions;
    }
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserServiceImpl.java
@@ -9,6 +9,7 @@
import com.ruoyi.admin.vo.UserDataCountVO;
import com.ruoyi.admin.vo.UserTrendsVO;
import com.ruoyi.common.core.constant.OrderConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.order.api.entity.MoneyQueryRequest;
import com.ruoyi.order.api.feignClient.OrderClient;
import com.ruoyi.order.api.feignClient.WithdrawClient;
@@ -49,9 +50,21 @@
    public UserDataCountVO userDataCount(UserDataCountRequest userDataCountRequest) {
        List<String> cityList = userDataCountRequest.getCityList();
        String type = userDataCountRequest.getCountType();
        List<User> userList = lambdaQuery().eq(User::getIsDelete, 0).list();
        LambdaQueryChainWrapper<User> userWrapper = lambdaQuery().eq(User::getIsDelete, 0);
        if (null != cityList && !cityList.isEmpty()) {
            userWrapper.in(User::getCityCode, cityList);
        }
        List<User> userList = userWrapper.list();
        // 判断用户是否在管辖城市内下过订单
        for (User user : userList) {
            Integer userId = user.getId();
            R<Boolean> r = orderClient.orderByUserId(userId);
            if (!r.getData()) {
                userList.remove(user);
            }
        }
        Integer userNumber = userList.size();
        // 用户总量
        Integer userNumber = null == userList ? 0 : userList.size();
        // 计算当前季度时间所包含时间
        int currentYear = Year.now().getValue();
        // 获取当前月份
@@ -71,8 +84,8 @@
            // 用户增长数
            LambdaQueryChainWrapper<User> wrapper = lambdaQuery().ge(User::getCreateTime, startDateStr)
                    .le(User::getCreateTime, endDateStr);
            if (!cityList.isEmpty()) {
                wrapper.in(User::getCity, cityList);
            if (null != cityList && !cityList.isEmpty()) {
                wrapper.in(User::getCityCode, cityList);
            }
            increaseNumber = wrapper.eq(User::getIsDelete, 0).count();
        } else if (OrderConstants.YEAR.equals(type)) {
ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserMapper.xml
@@ -21,7 +21,7 @@
        FROM t_user
        <where>
            <if test="city != null and city.size() != 0">
                city in
                city_code in
                <foreach collection="city" item="city" open="(" separator="," close=")">
                #{city}
                </foreach>
@@ -39,7 +39,7 @@
        WHERE YEAR(createTime) = YEAR(NOW())
          and is_delete = 0
        <if test="cityList != null and cityList.size() != 0">
            and city in
            and city_code in
            <foreach collection="cityList" item="city" open="(" separator="," close=")">
                #{city}
            </foreach>
@@ -52,10 +52,11 @@
        WHERE MONTH(createTime) = MONTH(NOW())
          AND YEAR(createTime) = YEAR(NOW())
        <if test="cityList != null and cityList.size() != 0">
            and city in
            and city_code in
            <foreach collection="cityList" item="city" open="(" separator="," close=")">
                #{city}
            </foreach>
        </if>
    </select>
</mapper>
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java
@@ -159,8 +159,16 @@
        } catch (Exception e) {
            bigDecimal = BigDecimal.ZERO;
        }
        return R.ok(orderService.lambdaUpdate()
                .eq(Order::getId, orderId).set(Order::getSubsidy, bigDecimal).update());
        Order order = orderService.lambdaQuery()
                .eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
        BigDecimal subsidy = order.getSubsidy();
        if (null == subsidy) {
            order.setSubsidy(bigDecimal);
        } else {
            BigDecimal add = order.getSubsidy().add(bigDecimal);
            order.setSubsidy(add);
        }
        return R.ok(orderService.updateById(order));
    }
    /**
@@ -319,8 +327,21 @@
            @ApiImplicitParam(value = "每页条数", name = "pageSize", dataType = "Integer", required = true)
    })
    public R<Page<OrderCountVO>> orderCount(@RequestBody OrderCountDataRequest request) {
        return R.ok(orderService.orderCount(request.getWorkerName(), request.getWorkerPhone(),
        return R.ok(orderService.orderCount(request.getWorkerName(), request.getWorkerPhone(), request.getCityList(),
                Page.of(request.getPageNum(), request.getPageSize())));
    }
    /**
     * 判断用户是否下单
     *
     * @param userId 用户id
     */
    @GetMapping(value = "/orderByUserId")
    public R<Boolean> orderByUserId(@RequestParam("userId") Integer userId) {
        List<Order> list = orderService.lambdaQuery()
                .eq(Order::getUserId, userId)
                .eq(Order::getIsDelete, Constants.ZERO).list();
        return R.ok(!list.isEmpty());
    }
    /**
@@ -451,6 +472,7 @@
    public R<OrderDetailVO> orderDetail(@RequestParam("orderId") String orderId) {
        // 订单信息
        Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
        order.setReservationAddress(order.getReservationAddress() + order.getAddress());
        // 服务信息(服务备注、上门时间、完成时间、完成所拍现场照片)
        ServeRecord serveRecord = serveRecordService.lambdaQuery().eq(ServeRecord::getOrderId, orderId)
                .eq(ServeRecord::getIsDelete, 0).one();
@@ -556,7 +578,9 @@
                                          @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
        LambdaQueryChainWrapper<Order> wrapper = orderService.lambdaQuery()
                .eq(Order::getIsDelete, 0).eq(Order::getUserId, userId);
        if (state != -1) {
        if (state == 1 || state == 2) {
            wrapper.in(Order::getState, Constants.ONE, Constants.TWO);
        } else if (state != -1) {
            wrapper.eq(Order::getState, state);
        }
        return R.ok(wrapper.orderByDesc(Order::getCreateTime).page(Page.of(pageNum, pageSize)));
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/ChangeDispatch.java
@@ -72,5 +72,9 @@
    @TableField("user_name")
    private String userName;
    @ApiModelProperty("城市编码")
    @TableField("city_code")
    private String cityCode;
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Order.java
@@ -150,6 +150,10 @@
    @TableField("top_sort")
    private Integer topSort;
    @ApiModelProperty("城市code")
    @TableField("city_code")
    private String cityCode;
    @ApiModelProperty("是否评价(0:未评价,1:已评价)")
    @TableField("is_evaluate")
    private Integer isEvaluate;
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/entity/Withdraw.java
@@ -68,4 +68,8 @@
    @TableField("order_id")
    private String orderId;
    @ApiModelProperty("城市code")
    @TableField("city_code")
    private String cityCode;
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java
@@ -85,12 +85,14 @@
    /**
     * 订单管理-订单统计
     *
     * @param name  师傅姓名
     * @param phone 师傅电话
     * @param page  分页
     * @param name     师傅姓名
     * @param phone    师傅电话
     * @param cityList 城市列表
     * @param page     分页
     * @return 分页统计
     */
    Page<OrderCountVO> orderCount(@Param("name") String name, @Param("phone") String phone, Page<OrderCountVO> page);
    Page<OrderCountVO> orderCount(@Param("name") String name, @Param("phone") String phone,
                                  @Param("cityList") List<String> cityList, Page<OrderCountVO> page);
    /**
     * 订单列表
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/request/EvaluatePageRequest.java
@@ -24,4 +24,6 @@
    private Integer pageSize;
    private List<Integer> userIdList;
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java
@@ -47,12 +47,13 @@
    /**
     * 订单管理-订单统计
     *
     * @param name  师傅姓名
     * @param phone 师傅电话
     * @param page  分页
     * @param name     师傅姓名
     * @param phone    师傅电话
     * @param cityList 城市列表
     * @param page     分页
     * @return 分页统计
     */
    Page<OrderCountVO> orderCount(String name, String phone, Page<OrderCountVO> page);
    Page<OrderCountVO> orderCount(String name, String phone, List<String> cityList, Page<OrderCountVO> page);
    /**
     * 订单管理分页模块,订单数量统计
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -71,11 +71,11 @@
                long diffInMillis = date2.getTime() - date1.getTime();
                long diffInDays = diffInMillis / (24 * 60 * 60 * 1000);
                if (diffInDays > Constants.YEAR_DAY) {
                    list = baseMapper.orderCountByTimeRangeYear(cityList, startTime, endTime,orderState);
                    list = baseMapper.orderCountByTimeRangeYear(cityList, startTime, endTime, orderState);
                } else if (diffInDays > Constants.THIRTY) {
                    list = baseMapper.orderCountByTimeRangeMonth(cityList, startTime, endTime,orderState);
                    list = baseMapper.orderCountByTimeRangeMonth(cityList, startTime, endTime, orderState);
                } else {
                    list = baseMapper.orderCountByTimeRange(cityList, startTime, endTime,orderState);
                    list = baseMapper.orderCountByTimeRange(cityList, startTime, endTime, orderState);
                }
            } catch (ParseException e) {
                list = new ArrayList<>();
@@ -131,8 +131,8 @@
    @Override
    public Page<OrderCountVO> orderCount(String name, String phone, Page<OrderCountVO> page) {
        return baseMapper.orderCount(name, phone, page);
    public Page<OrderCountVO> orderCount(String name, String phone, List<String> cityList, Page<OrderCountVO> page) {
        return baseMapper.orderCount(name, phone, cityList, page);
    }
    @Override
@@ -307,6 +307,7 @@
        order.setServeName(serveName);
        order.setServePrice(defaultPrice);
        order.setUserId(userId);
        order.setIsEvaluate(Constants.ZERO);
        order.setReservationName(reservationName);
        order.setReservationPhone(reservationPhone);
        if (null == userOrderRequest.getAddressId()) {
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/WithdrawServiceImpl.java
@@ -203,6 +203,7 @@
        withdraw.setApplyForTime(new Date());
        withdraw.setApplyForMoney(order.getOrderMoney());
        withdraw.setOrderId(orderId);
        withdraw.setCityCode(order.getCityCode());
        return this.save(withdraw);
    }
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/EvaluateOrderInfoVO.java
@@ -42,4 +42,7 @@
    @ApiModelProperty("回收服务id")
    private Integer serveId;
    @ApiModelProperty("是否评价(0:未评价;1:已评价)")
    private Integer isEvaluate;
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderCountVO.java
@@ -13,6 +13,9 @@
@ApiModel(value = "OrderCountVO对象", description = "订单统计返回类")
public class OrderCountVO {
    @ApiModelProperty("订单中师傅名称")
    private String workerName;
    @ApiModelProperty("师傅id")
    private Integer workerId;
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/ChangeDispatchMapper.xml
@@ -37,7 +37,7 @@
                and c.user_name like concat('%', #{data.userName}, '%')
            </if>
            <if test="data.cityList != null and data.cityList.size() != 0">
                and o.city in
                and o.city_code in
                <foreach collection="data.cityList" item="city" open="(" separator="," close=")">
                    #{city}
                </foreach>
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/EvaluateMapper.xml
@@ -21,7 +21,6 @@
    <resultMap id="evaluatePageVO" type="com.ruoyi.order.vo.EvaluatePageVO">
        <result column="id" property="id"/>
        <result column="user_id" property="userId"/>
        <result column="userNo" property="userNo"/>
        <result column="user_phone" property="userPhone"/>
        <result column="order_id" property="orderId"/>
        <result column="order_number" property="orderNumber"/>
@@ -45,17 +44,19 @@
               e.serve_no,
               e.star_rating,
               e.is_delete,
               o.reservation_name as userNo,
               o.order_number,
               o.server_name      as workerName,
               o.server_phone     as workerPhone
               o.server_name  as workerName,
               o.server_phone as workerPhone
        from t_evaluate e
                 left join t_order o on e.order_id = o.id
        <where>
            e.is_delete = 0
              and o.is_delete = 0
            <if test="data.userNo != null and data.userNo != ''">
                and o.reservation_name like concat('%', #{data.userNo}, '%')
            <if test="data.cityList != null and data.cityList.size() != 0">
                and o.user_id in
                <foreach collection="data.userIdList" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
            </if>
            <if test="data.orderNumber != null and data.orderNumber != ''">
                and o.order_number like concat('%', #{data.orderNumber}, '%')
@@ -64,7 +65,7 @@
                and o.server_name like concat('%', #{data.workerName}, '%')
            </if>
            <if test="data.cityList != null and data.cityList.size() != 0">
                and o.city in
                and o.city_code in
                <foreach collection="data.cityList" item="city" open="(" separator="," close=")">
                    #{city}
                </foreach>
@@ -111,6 +112,7 @@
            <result column="server_name" property="serverName"/>
            <result column="server_phone" property="serverPhone"/>
            <result column="serve_id" property="serveId"/>
            <result column="is_evaluate" property="isEvaluate"/>
        </association>
        <association property="evaluateInfo" javaType="com.ruoyi.order.vo.EvaluateInfoVO">
            <result column="content" property="content"/>
@@ -125,6 +127,7 @@
               o.complete_time,
               o.server_name,
               o.server_phone,
               o.is_evaluate,
               e.content,
               e.star_rating,
               e.createTime,
@@ -132,7 +135,10 @@
        FROM t_order o
                 LEFT JOIN t_evaluate e on o.id = e.order_id
        <where>
            o.user_id = #{userId}
            o.user_id = #{userId} and e.user_id = #{userId}
            <!--订单评价列表只展示已完成订单-->
            and o.state = 3
            and o.is_delete = 0 and e.is_delete = 0
            <if test="state != -1">
                and o.is_evaluate = #{state}
            </if>
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -30,13 +30,15 @@
    <select id="orderCountByYear" resultType="com.ruoyi.order.vo.OrderQueryVO">
        SELECT DATE_FORMAT(createTime, '%Y-%m') AS dateTime, COUNT(*) AS number, sum(IFNULL(serve_price, 0)) as totalPrice
        SELECT DATE_FORMAT(createTime, '%Y-%m') AS dateTime,
               COUNT(*)                         AS number,
               sum(IFNULL(serve_price, 0))      as totalPrice
        FROM t_order
        <where>
            is_delete = 0
              and YEAR(createTime) = YEAR(NOW())
            <if test="cityList != null and cityList.size() != 0">
                and city in
                and city_code in
                <foreach collection="cityList" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
@@ -50,13 +52,15 @@
    </select>
    <select id="orderCountByWeek" resultType="com.ruoyi.order.vo.OrderQueryVO">
        SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime, COUNT(*) AS number, sum(IFNULL(serve_price, 0)) as totalPrice
        SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime,
               COUNT(*)                            AS number,
               sum(IFNULL(serve_price, 0))         as totalPrice
        FROM t_order
        <where>
            is_delete = 0
              and YEARWEEK(DATE_FORMAT(createTime, '%Y-%m-%d'), 1) = YEARWEEK(NOW(), 1)
            <if test="cityList != null and cityList.size() != 0">
                and city in
                and city_code in
                <foreach collection="cityList" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
@@ -70,14 +74,16 @@
    </select>
    <select id="orderCountByMonth" resultType="com.ruoyi.order.vo.OrderQueryVO">
        SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime, COUNT(*) AS number, sum(IFNULL(serve_price, 0)) as totalPrice
        SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime,
               COUNT(*)                            AS number,
               sum(IFNULL(serve_price, 0))         as totalPrice
        FROM t_order
        <where>
            is_delete = 0
              and MONTH(createTime) = MONTH(NOW())
              AND YEAR(createTime) = YEAR(NOW())
            <if test="cityList != null and cityList.size() != 0">
                and city in
                and city_code in
                <foreach collection="cityList" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
@@ -91,13 +97,15 @@
    </select>
    <select id="orderCountByToday" resultType="com.ruoyi.order.vo.OrderQueryVO">
        SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime, COUNT(*) AS number, sum(IFNULL(serve_price, 0)) as totalPrice
        SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime,
               COUNT(*)                            AS number,
               sum(IFNULL(serve_price, 0))         as totalPrice
        FROM t_order
        <where>
            is_delete = 0
              and DATE(createTime) = CURDATE()
            <if test="cityList != null and cityList.size() != 0">
                and city in
                and city_code in
                <foreach collection="cityList" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
@@ -117,9 +125,9 @@
            is_delete = 0
              and state = 4
            <if test="cityList != null and cityList.size() != 0">
                and city in
                and city_code in
                <foreach collection="cityList" item="id" open="(" separator="," close=")">
                    #{id}
        #{id}
                </foreach>
            </if>
            <if test="start != null and start != ''">
@@ -138,7 +146,7 @@
          and is_delete = 0
          and state = 4
        <if test="cityList != null and cityList.size() != 0">
            and city in
            and city_code in
            <foreach collection="cityList" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
@@ -153,7 +161,7 @@
          and is_delete = 0
          and state = 4
        <if test="cityList != null and cityList.size() != 0">
            and city in
            and city_code in
            <foreach collection="cityList" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
@@ -168,6 +176,12 @@
        FROM t_order o
        WHERE o.is_delete = 0
          and o.server_id is not null
        <if test="cityList != null and cityList.size() != 0">
            and o.city in
            <foreach collection="cityList" item="city" open="(" separator="," close=")">
                #{city}
            </foreach>
        </if>
        <if test="phone != null and phone != ''">
            and o.server_phone like concat('%', #{phone}, '%')
        </if>
@@ -233,6 +247,12 @@
        from t_order o
        <where>
            o.is_delete = 0
            <if test="data.cityList != null and data.cityList.size() != 0">
                and o.city in
                <foreach collection="data.cityList" item="city" open="(" separator="," close=")">
                    #{city}
                </foreach>
            </if>
            <if test="data.orderNumber != null and data.orderNumber != ''">
                and o.order_number like concat('%', #{data.orderNumber}, '%')
            </if>
@@ -378,12 +398,14 @@
    </select>
    <select id="orderCountByTimeRange" resultType="com.ruoyi.order.vo.OrderQueryVO">
        SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime, COUNT(*) AS number, sum(IFNULL(serve_price, 0)) as totalPrice
        SELECT DATE_FORMAT(createTime, '%Y-%m-%d') AS dateTime,
               COUNT(*)                            AS number,
               sum(IFNULL(serve_price, 0))         as totalPrice
        FROM t_order
        <where>
            is_delete = 0
            <if test="cityList != null and cityList.size() != 0">
                and city in
                and city_code in
                <foreach collection="cityList" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
@@ -408,7 +430,7 @@
        <where>
            is_delete = 0
            <if test="cityList != null and cityList.size() != 0">
                and city in
                and city_code in
                <foreach collection="cityList" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
@@ -428,12 +450,14 @@
    </select>
    <select id="orderCountByTimeRangeMonth" resultType="com.ruoyi.order.vo.OrderQueryVO">
        SELECT DATE_FORMAT(createTime, '%Y-%m') AS dateTime, COUNT(*) AS number, sum(IFNULL(serve_price, 0)) as totalPrice
        SELECT DATE_FORMAT(createTime, '%Y-%m') AS dateTime,
               COUNT(*)                         AS number,
               sum(IFNULL(serve_price, 0))      as totalPrice
        FROM t_order
        <where>
            is_delete = 0
            <if test="cityList != null and cityList.size() != 0">
                and city in
                and city_code in
                <foreach collection="cityList" item="id" open="(" separator="," close=")">
                    #{id}
                </foreach>
ruoyi-service/ruoyi-order/src/main/resources/mapper/order/WithdrawMapper.xml
@@ -98,12 +98,12 @@
            <if test="end != null and end != ''">
                and w.createTime <![CDATA[ <= ]]> #{end}
            </if>
            <!--<if test="cityList != null and cityList.size() != 0">
                and u.city in
            <if test="cityList != null and cityList.size() != 0">
                and city_code in
                <foreach collection="cityList" item="id" open="(" separator="," close=")">
                    #{id}
                #{id}
                </foreach>
            </if>-->
            </if>
        </where>
    </select>
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/EvaluateController.java
@@ -54,7 +54,7 @@
        Page<OrderEvaluateVO> list = evaluateClient.evaluateListByUser(loginUser.getUserid(), state, pageNum, pageSize).getData();
        if (null != list) {
            // 数据封装,减少循环io
            List<Integer> ids = list.getRecords().stream().map(OrderEvaluateVO::getServeId).collect(Collectors.toList());
            List<Integer> ids = list.getRecords().stream().map(data -> data.getOrderInfo().getServeId()).collect(Collectors.toList());
            if (!ids.isEmpty()) {
                List<RecoveryServe> serveList = recoveryServeService.lambdaQuery()
                        .in(RecoveryServe::getId, ids)
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java
@@ -7,7 +7,9 @@
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.GlobalException;
import com.ruoyi.common.core.utils.GaoDeMapUtil;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.vo.CityInfoVO;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.api.entity.Order;
import com.ruoyi.order.api.entity.ServeRecord;
@@ -95,7 +97,7 @@
    @ApiOperation(value = "在线评估", tags = {"用户端-订单"})
    @ApiImplicitParams({
            @ApiImplicitParam(value = "回收服务id", name = "orderId", dataType = "Integer", required = true),
            @ApiImplicitParam(value = "所在城市", name = "city", dataType = "String")
            @ApiImplicitParam(value = "所在城市code", name = "city", dataType = "String")
    })
    public R<BigDecimal> estimate(@RequestParam String orderId, String city) {
        Order order = orderClient.detail(orderId).getData();
@@ -104,9 +106,11 @@
                .eq(RecoveryServe::getIsDelete, 0).one();
        BigDecimal money = recoveryServe.getDefaultPrice();
        if (StringUtils.isNotBlank(city)) {
            CityInfoVO info = GaoDeMapUtil.getAddressInfo(city).getDatas();
            RecoveryServePrice price = recoveryServePriceService.lambdaQuery()
                    .eq(RecoveryServePrice::getRecoveryServeId, recoveryServe.getId())
                    .eq(RecoveryServePrice::getCity, city).one();
                    .eq(RecoveryServePrice::getCityCode, info.getCode())
                    .eq(RecoveryServePrice::getIsDelete, Constants.ZERO).one();
            if (null != price) {
                money = price.getRecoveryPrice();
            }
@@ -166,9 +170,15 @@
    public R<Object> allowanceMoney(@RequestParam("orderId") String orderId, @RequestParam("prizeId") String prizeId) {
        Prize data = adminClient.prizeDetail(prizeId).getData();
        if (null == data) {
            return R.fail("奖品信息获取失败!");
            return R.fail(adminClient.prizeDetail(prizeId).getMsg());
        }
        return R.ok(orderClient.supplementAllowance(orderId, data.getPrizeName()).getData());
        String prizeMoney;
        if (data.getPrizeName().contains(Constants.SUBSIDY_MONEY)) {
            prizeMoney = data.getPrizeName().substring(Constants.ONE);
        } else {
            prizeMoney = "0";
        }
        return R.ok(orderClient.supplementAllowance(orderId, prizeMoney).getData());
    }
    @PostMapping("/orderEstimate")
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryServeController.java
@@ -10,9 +10,12 @@
import com.ruoyi.user.entity.RecoveryClassify;
import com.ruoyi.user.entity.RecoveryServe;
import com.ruoyi.user.entity.UserCollect;
import com.ruoyi.user.entity.UserRecipient;
import com.ruoyi.user.service.RecoveryClassifyService;
import com.ruoyi.user.service.RecoveryServeService;
import com.ruoyi.user.service.UserCollectService;
import com.ruoyi.user.service.UserRecipientService;
import com.ruoyi.user.vo.ServeDetailVO;
import com.ruoyi.user.vo.ServeListVO;
import com.ruoyi.user.vo.UserServeTypeVO;
import io.swagger.annotations.Api;
@@ -49,6 +52,8 @@
    private UserCollectService collectService;
    @Resource
    private TokenService tokenService;
    @Resource
    private UserRecipientService userRecipientService;
    /**
     * 获取服务列表
@@ -68,7 +73,7 @@
        List<RecoveryClassify> serveList = recoveryClassifyService.lambdaQuery()
                .eq(RecoveryClassify::getIsDelete, 0)
                .eq(RecoveryClassify::getSupClassify, serveType)
                .orderByAsc(RecoveryClassify::getSort)
                .orderByDesc(RecoveryClassify::getSort)
                .orderByDesc(RecoveryClassify::getCreateTime).list();
        List<UserServeTypeVO> list = new ArrayList<>();
        for (RecoveryClassify classify : serveList) {
@@ -89,7 +94,7 @@
        Page<RecoveryServe> page = recoveryServeService.lambdaQuery()
                .eq(RecoveryServe::getClassifyId, id)
                .eq(RecoveryServe::getIsDelete, 0)
                .orderByAsc(RecoveryServe::getSort)
                .orderByDesc(RecoveryServe::getSort)
                .orderByDesc(RecoveryServe::getCreateTime).page(Page.of(pageNum, pageSize));
        return R.ok(page);
    }
@@ -111,12 +116,17 @@
    @ApiImplicitParams({
            @ApiImplicitParam(value = "服务id", name = "serveId", dataType = "String", required = true)
    })
    public R<RecoveryServe> serveDetail(@RequestParam String serveId) {
    public R<ServeDetailVO> serveDetail(@RequestParam String serveId) {
        LoginUserInfo loginUser = tokenService.getLoginUserByUser();
        if (null == loginUser) {
            return R.loginExpire("登录失效!");
        }
        RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
                .eq(RecoveryServe::getIsDelete, 0).orderByAsc(RecoveryServe::getSort).one();
                .eq(RecoveryServe::getIsDelete, 0).one();
        // 用户是否收藏
        UserCollect one = collectService.lambdaQuery()
                .eq(UserCollect::getServeId, serveId)
                .eq(UserCollect::getUserId, loginUser.getUserid())
                .eq(UserCollect::getIsDelete, 0).one();
        if (null != one) {
            recoveryServe.setIsCollect(Boolean.TRUE);
@@ -126,14 +136,18 @@
        // 获取服务分类
        Integer classifyId = recoveryServe.getClassifyId();
        RecoveryClassify classify = recoveryClassifyService.lambdaQuery()
                .eq(RecoveryClassify::getId, classifyId)
                .eq(RecoveryClassify::getIsDelete, 0).one();
                .eq(RecoveryClassify::getId, classifyId).one();
        if (classify.getSupClassify().equals(Constants.TRADE_IN)) {
            recoveryServe.setType(Constants.ZERO);
        } else {
            recoveryServe.setType(Constants.ONE);
        }
        return R.ok(recoveryServe);
        // 获取用户默认收货地址
        UserRecipient userRecipient = userRecipientService.lambdaQuery()
                .eq(UserRecipient::getIsDefault, Constants.ONE)
                .eq(UserRecipient::getUserId, loginUser.getUserid())
                .eq(UserRecipient::getIsDelete, Constants.ZERO).one();
        return R.ok(new ServeDetailVO(recoveryServe, userRecipient));
    }
    /**
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/UserController.java
@@ -24,6 +24,7 @@
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -58,6 +59,12 @@
    private RecoveryClassifyService recoveryClassifyService;
    @Resource
    private RecoveryServeService recoveryServeService;
    /**
     * 用户端默认头像
     */
    @Value("${default.profilePicture}")
    private String profilePicture;
    /**
     * 解密用户敏感数据
@@ -128,6 +135,7 @@
            // 随机编号
            user.setUserNo(String.format(Constants.USER_NO_PRE, RandomUtil.randomNumbers(Constants.EIGHT)));
            user.setState(Constants.ONE);
            user.setProfilePicture(profilePicture);
            user.setNickname(String.format(Constants.USER_NO_PRE, StringUtils.getCharAndNum(Constants.SIX)));
            user.setPhone(phone);
            user.setCity(loginPhoneRequest.getCity());
@@ -239,7 +247,8 @@
    @ApiOperation(value = "首页回收分类推荐", tags = {"用户端-首页"})
    public R<List<RecoveryClassify>> recommend() {
        return R.ok(recoveryClassifyService.lambdaQuery().eq(RecoveryClassify::getIsRecommend, Constants.ONE)
                .eq(RecoveryClassify::getIsDelete, 0).orderByAsc(RecoveryClassify::getSort).list());
                .eq(RecoveryClassify::getIsDelete, 0).orderByDesc(RecoveryClassify::getSort)
                .orderByDesc(RecoveryClassify::getCreateTime).list());
    }
    /**
@@ -253,10 +262,10 @@
    public R<List<RecoveryServe>> recoverySearch(@RequestParam String keyword) {
        LambdaQueryChainWrapper<RecoveryServe> wrapper = recoveryServeService.lambdaQuery()
                .eq(RecoveryServe::getIsDelete, 0)
                .orderByAsc(RecoveryServe::getSort);
                .orderByDesc(RecoveryServe::getSort);
        wrapper = null != keyword && !"".equals(keyword.trim()) ?
                wrapper.like(RecoveryServe::getServeName, keyword) : wrapper;
        List<RecoveryServe> serveList = wrapper.list();
        List<RecoveryServe> serveList = wrapper.orderByDesc(RecoveryServe::getCreateTime).list();
        for (RecoveryServe recoveryServe : serveList) {
            RecoveryClassify classify = recoveryClassifyService.lambdaQuery()
                    .eq(RecoveryClassify::getId, recoveryServe.getClassifyId()).one();
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/RecoveryServePrice.java
@@ -41,4 +41,8 @@
    @TableField("city")
    private String city;
    @ApiModelProperty("对应城市code")
    @TableField("city_code")
    private String cityCode;
}
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/UserRecipient.java
@@ -55,6 +55,14 @@
    @TableField("isDefault")
    private Integer isDefault;
    @ApiModelProperty("城市")
    @TableField("city")
    private String city;
    @ApiModelProperty("城市code")
    @TableField("city_code")
    private String cityCode;
    @ApiModelProperty("经度")
    @TableField("longitude")
    private Double longitude;
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/request/OrderRequest.java
@@ -16,6 +16,12 @@
@ApiModel(value = "OrderRequest对象", description = "用户下单请求参数对象")
public class OrderRequest {
    @ApiModelProperty("下单城市")
    private String city;
    @ApiModelProperty("下单城市code")
    private String cityCode;
    @ApiModelProperty("订单编号")
    private String orderNumber;
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java
@@ -2,16 +2,19 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.admin.api.entity.Prize;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.exception.GlobalException;
import com.ruoyi.common.core.utils.SnowflakeIdWorker;
import com.ruoyi.order.api.entity.UserOrderRequest;
import com.ruoyi.order.api.feignClient.OrderClient;
import com.ruoyi.user.entity.Order;
import com.ruoyi.user.entity.RecoveryServe;
import com.ruoyi.user.entity.RecoveryServePrice;
import com.ruoyi.user.entity.UserRecipient;
import com.ruoyi.user.mapper.OrderMapper;
import com.ruoyi.user.request.OrderRequest;
import com.ruoyi.user.service.OrderService;
import com.ruoyi.user.service.RecoveryServePriceService;
import com.ruoyi.user.service.RecoveryServeService;
import com.ruoyi.user.service.UserRecipientService;
import org.springframework.stereotype.Service;
@@ -38,6 +41,8 @@
    private RecoveryServeService recoveryServeService;
    @Resource
    private OrderClient orderClient;
    @Resource
    private RecoveryServePriceService servePriceService;
    /**
     * 雪花算法类
@@ -84,6 +89,10 @@
        if (null == recoveryServe || null == userRecipient) {
            throw new GlobalException("下单失败,预约服务信息或收货地址信息异常!");
        }
        String address = userRecipient.getAddress();
        if (address.contains(Constants.PROVINCE) && address.contains(Constants.MARKET)) {
        }
        UserOrderRequest userOrderRequest = new UserOrderRequest();
        userOrderRequest.setOrderNumber(orderRequest.getOrderNumber());
        userOrderRequest.setServeId(orderRequest.getServeId());
@@ -112,7 +121,10 @@
        // 下单相关信息
        RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
                .eq(RecoveryServe::getIsDelete, 0).one();
        RecoveryServePrice price = servePriceService.lambdaQuery()
                .eq(RecoveryServePrice::getRecoveryServeId, serveId)
                .eq(RecoveryServePrice::getCity, orderRequest.getCity())
                .eq(RecoveryServePrice::getIsDelete, 0).one();
        if (null == recoveryServe) {
            throw new GlobalException("下单失败,预约服务信息或收货地址信息异常!");
        }
@@ -135,7 +147,12 @@
        userOrderRequest.setLongitude(orderRequest.getLongitude());
        userOrderRequest.setLatitude(orderRequest.getLatitude());
        userOrderRequest.setSubsidy(orderRequest.getSubsidy());
        userOrderRequest.setDefaultPrice(recoveryServe.getDefaultPrice());
        // 城市回收价
        if (null == price) {
            userOrderRequest.setDefaultPrice(recoveryServe.getDefaultPrice());
        } else {
            userOrderRequest.setDefaultPrice(price.getRecoveryPrice());
        }
        userOrderRequest.setServeName(recoveryServe.getServeName());
        userOrderRequest.setUserId(userid);
        return orderClient.orderEstimate(userOrderRequest).getData();
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/RegionServiceImpl.java
@@ -80,7 +80,7 @@
            for (Region region : reginList) {
                String firstLetter = getFullSpell(region.getName()).substring(0, 1);
                if (letter.equals(firstLetter)) {
                    RegionVo regionVo = new RegionVo(region.getName(), region.getCityCode());
                    RegionVo regionVo = new RegionVo(region.getName(), region.getCode());
                    regionVos.add(regionVo);
                }
                map.put(letter, regionVos);
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java
@@ -1,7 +1,6 @@
package com.ruoyi.user.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.WxMaUserService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
import cn.hutool.core.util.RandomUtil;
@@ -37,8 +36,6 @@
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
    @Resource
    private WxMaUserService wxMaUserService;
    @Resource
    private TokenService tokenService;
    @Resource
    private WxMaService wxMaService;
@@ -49,7 +46,8 @@
    @Value("${wx.appSecret}")
    private String appSecret;
    private final String BASE_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code";
    @Value("${default.profilePicture}")
    private String profilePicture;
    @Override
    public R<String> decodeOpenid(HttpServletResponse response, String code) {
@@ -109,6 +107,7 @@
                    user = new User();
                    user.setUserNo(String.format(Constants.USER_NO_PRE, RandomUtil.randomNumbers(Constants.EIGHT)));
                    user.setState(Constants.ONE);
                    user.setProfilePicture(profilePicture);
                    user.setNickname(String.format(Constants.USER_NO_PRE, StringUtils.getCharAndNum(Constants.SIX)));
                    user.setState(Constants.ONE);
                    user.setOpenId(openid);
@@ -134,27 +133,5 @@
        return null;
    }
    public JSONObject getPhone(String code) {
        // 授权(必填)
        String grantType = "client_credential";
        // 向微信服务器 使用登录凭证 code 获取 session_key 和 openid
        // 请求参数
        String params2 = "appid=" + appId + "&secret=" + appSecret + "&grant_type=" + grantType;
        // 发送请求
        String sr2 = com.ruoyi.user.vx.utils.HttpRequest.sendGet("https://api.weixin.qq.com/cgi-bin/token", params2);
        // 解析相应内容(转换成json对象)
        JSONObject json2 = JSONObject.parseObject(sr2);
        String accessToken = json2.getString("access_token");
        //使用获取到的token和接受到的code像微信获取手机号
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("code", code);
        String url = ("https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + accessToken);
        String sr3 = com.ruoyi.user.vx.utils.HttpRequest.sendPostNew(url, jsonObject);
        JSONObject json = JSONObject.parseObject(sr3);
        JSONObject phoneInfo = json.getJSONObject("phone_info");
//        return phoneInfo.getString("phoneNumber");
        return phoneInfo;
    }
}
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderDetailVO.java
@@ -73,6 +73,9 @@
    @ApiModelProperty("家电照片")
    private String photo;
    @ApiModelProperty("是否评价(0:未评价,1:已评价)")
    private Integer isEvaluate;
    public OrderDetailVO(Order order) {
        this.orderId = order.getId();
        this.orderNumber = order.getOrderNumber();
@@ -91,5 +94,6 @@
        this.completeTime = order.getCompleteTime();
        this.subsidy = order.getSubsidy();
        this.address = order.getAddress();
        this.isEvaluate = order.getIsEvaluate();
    }
}
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/ServeDetailVO.java
New file
@@ -0,0 +1,29 @@
package com.ruoyi.user.vo;
import com.ruoyi.user.entity.RecoveryServe;
import com.ruoyi.user.entity.UserRecipient;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author HJL
 * @version 1.0
 * @since 2024-07-24 11:49
 */
@Data
public class ServeDetailVO {
    @ApiModelProperty("服务详情")
    private RecoveryServe serve;
    @ApiModelProperty("默认收货地址")
    private UserRecipient recipient;
    public ServeDetailVO() {
    }
    public ServeDetailVO(RecoveryServe serve, UserRecipient recipient) {
        this.serve = serve;
        this.recipient = recipient;
    }
}
ruoyi-service/ruoyi-user/src/main/resources/mapper/user/RecoveryServeMapper.xml
@@ -39,6 +39,6 @@
                 left join sys_recovery_classify c on s.classify_id = c.id
        where s.is_delete = 0
          and c.is_delete = 0
        order by c.sort
        order by c.sort desc, c.createTime desc
    </select>
</mapper>
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
@@ -89,7 +89,6 @@
                if (Constants.ZERO.equals(process.getState())) {
                    return R.fail("入驻申请暂未审核通过,请耐心等待!");
                } else if (Constants.TWO.equals(process.getState())) {
//                    return R.fail("入驻申请已驳回,请重新提交入驻申请!");
                    return R.fail("当前手机号未注册!");
                } else {
                    return R.registered("当前账号未提交入驻申请,无法登录!");
@@ -185,7 +184,6 @@
                if (Constants.ZERO.equals(process.getState())) {
                    return R.fail("入驻申请暂未审核通过,请耐心等待!");
                } else if (Constants.TWO.equals(process.getState())) {
//                    return R.fail("入驻申请已驳回,请重新提交入驻申请!");
                    return R.fail("当前手机号未注册!");
                } else {
                    return R.registered("当前账号未提交入驻申请,无法登录!");
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java
@@ -18,7 +18,7 @@
import com.ruoyi.system.api.model.LoginUserInfo;
import com.ruoyi.worker.entity.MasterWorker;
import com.ruoyi.worker.entity.RecoveryServe;
import com.ruoyi.worker.entity.ServeCoordinate;
import com.ruoyi.worker.vo.ServeCoordinate;
import com.ruoyi.worker.service.MasterWorkerService;
import com.ruoyi.worker.service.RecoveryServeService;
import io.swagger.annotations.Api;
@@ -97,6 +97,7 @@
                    mw -> Optional.ofNullable(mw.getCover()).orElse("")));
            for (Order order : orderList) {
                order.setCover(map.get(order.getServeId()));
                order.setReservationAddress(order.getReservationAddress() + order.getAddress());
            }
        }
        return R.ok(dataList);
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Evaluate.java
File was deleted
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/EvaluateMapper.java
File was deleted
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/EvaluateService.java
File was deleted
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/EvaluateServiceImpl.java
File was deleted
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java
@@ -75,7 +75,7 @@
            orderListVO.setUserId(userid);
            orderListVO.setReservationName(order.getReservationName());
            orderListVO.setReservationPhone(order.getReservationPhone());
            orderListVO.setReservationAddress(order.getReservationAddress());
            orderListVO.setReservationAddress(order.getReservationAddress() + order.getAddress());
            orderListVO.setTime(order.getTime());
            orderListVO.setServerId(order.getServerId());
            orderListVO.setServerName(order.getServerName());
@@ -152,7 +152,7 @@
            orderListVO.setUserId(userid);
            orderListVO.setReservationName(order.getReservationName());
            orderListVO.setReservationPhone(order.getReservationPhone());
            orderListVO.setReservationAddress(order.getReservationAddress());
            orderListVO.setReservationAddress(order.getReservationAddress() + order.getAddress());
            orderListVO.setTime(order.getTime());
            orderListVO.setServerId(order.getServerId());
            orderListVO.setServerName(order.getServerName());
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/OrderListVO.java
@@ -100,4 +100,5 @@
    public String getOrderIdStr() {
        return String.valueOf(getOrderId());
    }
}
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/ServeCoordinate.java
File was renamed from ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/ServeCoordinate.java
@@ -1,4 +1,4 @@
package com.ruoyi.worker.entity;
package com.ruoyi.worker.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -16,7 +16,7 @@
@Getter
@Setter
@ApiModel(value = "ServeCoordinate对象", description = "师傅路线经纬度信息")
public class ServeCoordinate{
public class ServeCoordinate {
    @ApiModelProperty("师傅id")
    private Integer workerId;
ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/EvaluateMapper.xml
File was deleted
sql/nacos_config.zip
Binary files differ
sql/nacos_config_export_20240726114948.zip
Binary files differ
sql/secondary_recovery.sql
@@ -11,7 +11,7 @@
 Target Server Version : 80037 (8.0.37)
 File Encoding         : 65001
 Date: 16/07/2024 09:28:34
 Date: 26/07/2024 11:50:32
*/
SET NAMES utf8mb4;
@@ -40,7 +40,7 @@
  `c_schema` text CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL,
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_configinfo_datagrouptenant`(`data_id` ASC, `group_id` ASC, `tenant_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'config_info' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'config_info' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for config_info_aggr
@@ -57,7 +57,7 @@
  `tenant_id` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_configinfoaggr_datagrouptenantdatum`(`data_id` ASC, `group_id` ASC, `tenant_id` ASC, `datum_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = '增加租户字段' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = '增加租户字段' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for config_info_beta
@@ -78,7 +78,7 @@
  `tenant_id` varchar(128) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '' COMMENT '租户字段',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_configinfobeta_datagrouptenant`(`data_id` ASC, `group_id` ASC, `tenant_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'config_info_beta' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'config_info_beta' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for config_info_tag
@@ -99,7 +99,7 @@
  `src_ip` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL COMMENT 'source ip',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_configinfotag_datagrouptenanttag`(`data_id` ASC, `group_id` ASC, `tenant_id` ASC, `tag_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'config_info_tag' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'config_info_tag' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for config_tags_relation
@@ -116,7 +116,7 @@
  PRIMARY KEY (`nid`) USING BTREE,
  UNIQUE INDEX `uk_configtagrelation_configidtag`(`id` ASC, `tag_name` ASC, `tag_type` ASC) USING BTREE,
  INDEX `idx_tenant_id`(`tenant_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'config_tag_relation' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'config_tag_relation' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_address
@@ -368,7 +368,7 @@
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_group_id`(`group_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = '集群、各Group容量信息表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = '集群、各Group容量信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for his_config_info
@@ -392,7 +392,7 @@
  INDEX `idx_gmt_create`(`gmt_create` ASC) USING BTREE,
  INDEX `idx_gmt_modified`(`gmt_modified` ASC) USING BTREE,
  INDEX `idx_did`(`data_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = '多租户改造' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = '多租户改造' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for permissions
@@ -512,8 +512,9 @@
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  `city_str` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '城市数组字符串',
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市code',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '加盟商信息表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB AUTO_INCREMENT = 16 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '加盟商信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_logininfor
@@ -529,7 +530,7 @@
  PRIMARY KEY (`info_id`) USING BTREE,
  INDEX `idx_sys_logininfor_s`(`status` ASC) USING BTREE,
  INDEX `idx_sys_logininfor_lt`(`access_time` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 194 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 218 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '系统访问记录' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_master_worker
@@ -557,8 +558,9 @@
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  `city_str` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '城市数组字符串',
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市code',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 600563730 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '师傅信息表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB AUTO_INCREMENT = 600563739 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '师傅信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_menu
@@ -658,7 +660,7 @@
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '回收分类表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB AUTO_INCREMENT = 42 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '回收分类表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_recovery_serve
@@ -673,14 +675,14 @@
  `default_price` decimal(10, 2) NULL DEFAULT NULL COMMENT '默认回收价',
  `sort` int NULL DEFAULT NULL COMMENT '排序权重',
  `cover` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '封面图片',
  `rotate` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '轮播图片',
  `rotate` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '轮播图片',
  `createBy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `updateBy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `createTime` datetime NULL DEFAULT NULL,
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '回收服务列表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB AUTO_INCREMENT = 38 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '回收服务列表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_recovery_serve_price
@@ -696,8 +698,9 @@
  `createTime` datetime NULL DEFAULT NULL,
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市code',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '回收服务对应回收价格及所在城市' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB AUTO_INCREMENT = 20 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '回收服务对应回收价格及所在城市' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_role
@@ -848,6 +851,7 @@
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  `opinion` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '审批意见',
  `city_str` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市数组',
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市code',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7512401 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '师傅入驻审核表' ROW_FORMAT = DYNAMIC;
@@ -877,6 +881,7 @@
  `profile_picture` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '头像',
  `state` int NULL DEFAULT NULL COMMENT '账号状态 0未启用;1已启用',
  `city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '注册城市',
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市编码',
  `open_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '微信openId',
  `createBy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `updateBy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
@@ -884,7 +889,7 @@
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户列表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB AUTO_INCREMENT = 28 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户列表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for t_user_collect
@@ -900,7 +905,7 @@
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户收藏表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 17 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户收藏表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for t_user_recipient
@@ -921,9 +926,11 @@
  `createTime` datetime NULL DEFAULT NULL,
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT 0 COMMENT '是否删除 0否1是',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地图搜索地址名称',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地图搜索名称',
  `city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '所属城市',
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市code',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户收货地址' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户收货地址' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tenant_capacity
@@ -942,7 +949,7 @@
  `gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_tenant_id`(`tenant_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = '租户容量信息表' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = '租户容量信息表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for tenant_info
@@ -960,7 +967,7 @@
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `uk_tenant_info_kptenantid`(`kp` ASC, `tenant_id` ASC) USING BTREE,
  INDEX `idx_tenant_id`(`tenant_id` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'tenant_info' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin COMMENT = 'tenant_info' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for users
sql/secondary_recovery_order.sql
@@ -11,11 +11,244 @@
 Target Server Version : 80037 (8.0.37)
 File Encoding         : 65001
 Date: 16/07/2024 09:28:41
 Date: 26/07/2024 11:50:39
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for data_address
-- ----------------------------
DROP TABLE IF EXISTS `data_address`;
CREATE TABLE `data_address`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `uid` bigint NULL DEFAULT 0 COMMENT '用户UID',
  `type` tinyint(1) NULL DEFAULT 0 COMMENT '地址类型(0普通,1默认)',
  `username` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '收货姓名',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '收货手机',
  `address` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '地址',
  `latitude` decimal(20, 6) NULL DEFAULT NULL COMMENT '维度',
  `longitude` decimal(20, 6) NULL DEFAULT NULL COMMENT '经度',
  `xxdz` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '详细地址',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_data_user_address_type`(`type` ASC) USING BTREE,
  INDEX `idx_data_user_address_uuid`(`uid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 42 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户地址' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_advantage
-- ----------------------------
DROP TABLE IF EXISTS `data_advantage`;
CREATE TABLE `data_advantage`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '消息名称',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容',
  `sort` bigint NULL DEFAULT 0 COMMENT '排序权重',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 882 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '服务优势' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_cate
-- ----------------------------
DROP TABLE IF EXISTS `data_cate`;
CREATE TABLE `data_cate`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `pid` bigint NULL DEFAULT 0 COMMENT '上级分类',
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '分类名称',
  `index_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '首页分类名称',
  `cover` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '分类图标',
  `remark` varchar(999) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '分类描述',
  `remark_jj` varchar(999) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '分类简介',
  `sort` bigint NULL DEFAULT 0 COMMENT '排序权重',
  `index_status` tinyint NULL DEFAULT 0 COMMENT '是否首页推荐',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_shop_goods_cate_sort`(`sort` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 26 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '回收分类' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_collect
-- ----------------------------
DROP TABLE IF EXISTS `data_collect`;
CREATE TABLE `data_collect`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `uid` bigint NULL DEFAULT 0 COMMENT '用户ID',
  `pid` bigint NULL DEFAULT 0 COMMENT '产品ID',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '收藏' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_draw
-- ----------------------------
DROP TABLE IF EXISTS `data_draw`;
CREATE TABLE `data_draw`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '奖品名称',
  `image` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '奖品图片',
  `odds` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '中间几率',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 19 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '奖品管理' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_goods
-- ----------------------------
DROP TABLE IF EXISTS `data_goods`;
CREATE TABLE `data_goods`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '服务名称',
  `remark` varchar(999) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '服务描述',
  `price` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '预估价格',
  `pg_price` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '评估价格',
  `pid` int NULL DEFAULT 0 COMMENT '上级分类',
  `cateids` varchar(999) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '分类编号',
  `cover` varchar(999) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '服务封面',
  `slider` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '轮播图片',
  `sort` bigint NULL DEFAULT 0 COMMENT '列表排序权重',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '服务内容' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_message
-- ----------------------------
DROP TABLE IF EXISTS `data_message`;
CREATE TABLE `data_message`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '消息名称',
  `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '消息内容',
  `sort` bigint NULL DEFAULT 0 COMMENT '排序权重',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 30 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_order
-- ----------------------------
DROP TABLE IF EXISTS `data_order`;
CREATE TABLE `data_order`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `order_type` tinyint(1) NULL DEFAULT 0 COMMENT '0用户订单1指定订单',
  `order_no` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '商品订单单号',
  `product_id` bigint NULL DEFAULT 0 COMMENT '产品ID',
  `uid` bigint NULL DEFAULT 0 COMMENT '用户ID',
  `server_uid` bigint NULL DEFAULT 0 COMMENT '服务用户ID',
  `price` decimal(20, 2) NULL DEFAULT 0.00 COMMENT '实际金额',
  `bt_price` decimal(20, 2) NULL DEFAULT 0.00 COMMENT '分享补贴金额',
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '用户姓名',
  `phone` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户手机',
  `province` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '地址-省份',
  `city` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '地址-城市',
  `area` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '地址-区域',
  `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '收货地址',
  `xx_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '详细地址',
  `latitude` decimal(20, 6) NULL DEFAULT NULL COMMENT '维度',
  `longitude` decimal(20, 6) NULL DEFAULT NULL COMMENT '经度',
  `sm_time` timestamp NULL DEFAULT NULL COMMENT '上门时间',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '服务备注',
  `cancel_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '取消订单描述',
  `pj_level` int NULL DEFAULT 0 COMMENT '评价等级',
  `pj_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '评价描述',
  `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '修改时间原因',
  `completeTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '完工时间',
  `yhqrtp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '用户确认图片',
  `jjmptp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '旧机铭牌图片',
  `njtp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内机图片',
  `wjhqttp` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '外机和其他图片',
  `drawnum` int NOT NULL DEFAULT 0 COMMENT '抽奖次数',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '订单流程状态(1待派单,2已派单,3已接单,4已完成,5已取消)',
  `jd_status` tinyint(1) NULL DEFAULT 0 COMMENT '订单流程状态(0未接单1确定接单2取消接单)',
  `zt_server_uid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '再投师傅ID',
  `pj_status` tinyint(1) NULL DEFAULT 0 COMMENT '评价状态0未评价1已评价',
  `time_status` tinyint(1) NULL DEFAULT 0 COMMENT '时间状态',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '订单创建时间',
  `server_sendnum` int NOT NULL DEFAULT 0,
  `user_sendnum` int NOT NULL DEFAULT 0,
  `print` int NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_shop_order_status`(`status` ASC) USING BTREE,
  INDEX `idx_shop_order_orderno`(`order_no` ASC) USING BTREE,
  INDEX `idx_shop_order_cancel_status`(`username` ASC) USING BTREE,
  INDEX `idx_shop_order_deleted`(`remark` ASC) USING BTREE,
  INDEX `idx_shop_order_mid`(`uid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10973 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_question
-- ----------------------------
DROP TABLE IF EXISTS `data_question`;
CREATE TABLE `data_question`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '消息名称',
  `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容',
  `sort` bigint NULL DEFAULT 0 COMMENT '排序权重',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '常见问题' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_technician
-- ----------------------------
DROP TABLE IF EXISTS `data_technician`;
CREATE TABLE `data_technician`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `uid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户ID',
  `city` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '城市',
  `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户姓名',
  `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户手机',
  `car_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '车辆类型',
  `car_number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '车牌号码',
  `idcard` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '身份证号码',
  `idcard_z` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '身份证正面',
  `idcard_f` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '身份证反面',
  `xsz` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '行驶证',
  `work_status` tinyint(1) NULL DEFAULT 1 COMMENT '工作状态(1正常,0休息)',
  `status` tinyint(1) NULL DEFAULT 0 COMMENT '用户状态(0审核中,1同意,2驳回)',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_data_user_status`(`work_status` ASC) USING BTREE,
  INDEX `idx_data_user_openid1`(`uid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 104 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '技师' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_transfer
-- ----------------------------
DROP TABLE IF EXISTS `data_transfer`;
CREATE TABLE `data_transfer`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `uid` bigint NULL DEFAULT 0 COMMENT '用户UID',
  `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '提现单号',
  `charge_amount` decimal(20, 2) NULL DEFAULT 0.00 COMMENT '提现手续费金额',
  `amount` decimal(20, 2) NULL DEFAULT 0.00 COMMENT '提现转账金额',
  `trade_no` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '交易单号',
  `trade_time` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '打款时间',
  `status` tinyint(1) NULL DEFAULT 0 COMMENT '提现状态(0待审核,1同意,2驳回,3打款中,4已打款,5已收款)',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_data_user_transfer_code`(`code` ASC) USING BTREE,
  INDEX `idx_data_user_transfer_status`(`status` ASC) USING BTREE,
  INDEX `idx_data_user_transfer_uuid`(`uid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 21 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '提现' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for data_user
-- ----------------------------
DROP TABLE IF EXISTS `data_user`;
CREATE TABLE `data_user`  (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `openid` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '小程序OPENID',
  `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户头像',
  `nickname` varchar(99) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '用户昵称',
  `price` decimal(20, 2) NULL DEFAULT 0.00 COMMENT '用户金额',
  `status` tinyint(1) NULL DEFAULT 0 COMMENT '是否技师(1是0否)',
  `sh_status` tinyint(1) NULL DEFAULT 0 COMMENT '是否提交审核(1是0否)',
  `create_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `idx_data_user_openid1`(`openid` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1851 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_change_dispatch
@@ -27,7 +260,7 @@
  `worker_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '申请师傅姓名',
  `apply_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '申请原因',
  `apply_time` datetime NULL DEFAULT NULL COMMENT '申请改派时间',
  `state` int NULL DEFAULT NULL COMMENT '改派状态 (0:未改派 ;1:已改派 ;2:拒绝)',
  `state` int NULL DEFAULT NULL COMMENT '改派状态 (0:未改派 ;1:已改派)',
  `createBy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `updateBy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `createTime` datetime NULL DEFAULT NULL,
@@ -37,8 +270,8 @@
  `order_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '订单编号',
  `user_id` int NULL DEFAULT NULL COMMENT '下单用户id',
  `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '下单用户名称',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 69 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '改派管理' ROW_FORMAT = Dynamic;
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市code'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_serve_coordinate
@@ -74,17 +307,7 @@
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 9 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '师傅服务记录' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for sys_withdrawal_setting
-- ----------------------------
DROP TABLE IF EXISTS `sys_withdrawal_setting`;
CREATE TABLE `sys_withdrawal_setting`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `enable_process` int NOT NULL COMMENT '是否开启审核(0:未开启,1:已开启)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '审核管理全局设置' ROW_FORMAT = Dynamic;
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '师傅服务记录' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for t_evaluate
@@ -104,8 +327,8 @@
  `createTime` datetime NULL DEFAULT NULL,
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户评价表' ROW_FORMAT = DYNAMIC;
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市code'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for t_order
@@ -130,7 +353,7 @@
  `server_phone` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '服务人员手机号',
  `reservation_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '预约备注(服务备注)',
  `order_money` decimal(10, 6) NULL DEFAULT NULL COMMENT '订单成交价(服务回收价 + 津贴)',
  `state` int NULL DEFAULT NULL COMMENT '订单状态(0:待派单;1:待上门;2:待完工;3:已完结;4:已取消;5:已改派,6:待改派)',
  `state` int NULL DEFAULT NULL COMMENT '订单状态(0:待派单;1:待上门;2:待完工;3:已完结;4:已取消;5:已改派)',
  `createBy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `updateBy` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `createTime` datetime NULL DEFAULT NULL,
@@ -147,10 +370,10 @@
  `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '详细地址',
  `top_sort` int NULL DEFAULT NULL COMMENT '置顶顺序',
  `cancel_reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '订单取消原因',
  `is_evaluate` int NULL DEFAULT NULL COMMENT '是否评价(0:未评价,1:已评价)',
  `is_reinvest` int NULL DEFAULT NULL COMMENT '是否为再投单 1:再投',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '订单管理' ROW_FORMAT = DYNAMIC;
  `is_evaluate` int NULL DEFAULT NULL COMMENT '是否评价(0:未评价,1:已评价)',
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市code码'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for t_withdraw
@@ -172,7 +395,8 @@
  `updateTime` datetime NULL DEFAULT NULL,
  `is_delete` int NULL DEFAULT NULL COMMENT '是否删除 0未删除;1已删除',
  `order_id` bigint NULL DEFAULT NULL COMMENT '订单id',
  `city_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '城市code',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户提现申请记录表' ROW_FORMAT = DYNAMIC;
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci COMMENT = '用户提现申请记录表' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;