From 428519bd1056dd90cd4589dbf85b380e403ff254 Mon Sep 17 00:00:00 2001
From: hjl <1657978663@qq.com>
Date: 星期五, 05 七月 2024 18:13:08 +0800
Subject: [PATCH] feat: 代码初始化、腾讯云短信SDK
---
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/WithdrawService.java | 22
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Order.java | 13
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/UserRecipientMapper.java | 18
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/Order.java | 6
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderEvaluateVO.java | 6
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java | 4
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java | 11
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/OrderMapper.java | 11
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/OrderListVO.java | 7
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/SysServeCoordinateServiceImpl.java | 20
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/SysServeCoordinateService.java | 16
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/UserRecipientController.java | 20
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java | 70 +-
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/HomePageController.java | 3
ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/OrderMapper.xml | 29 +
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java | 24
ruoyi-service/ruoyi-user/src/main/resources/mapper/user/EvaluateMapper.xml | 3
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserRecipientServiceImpl.java | 20
ruoyi-service/ruoyi-admin/src/main/resources/logback.xml | 74 +++
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/EvaluateOrderInfoVO.java | 3
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/SendSmsUtil.java | 117 ++++
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java | 41 +
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderResultVO.java | 2
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/UserRecipientService.java | 16
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserServiceImpl.java | 16
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/WithdrawMapper.java | 6
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java | 7
ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml | 2
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/request/OrderRequest.java | 3
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java | 20
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java | 3
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java | 18
ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/WithdrawMapper.xml | 9
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java | 34 +
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/WithdrawServiceImpl.java | 14
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeVO.java | 3
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/UserRecipient.java | 10
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java | 109 ++-
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java | 6
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/UserRecipient.java | 81 +++
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/WithdrawOrderVO.java | 3
ruoyi-service/ruoyi-worker/pom.xml | 17
ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java | 4
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java | 5
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java | 3
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderDetailVO.java | 2
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/SysServeCoordinate.java | 52 ++
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Evaluate.java | 2
ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ChangeDispatch.java | 4
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java | 7
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java | 1
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java | 2
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java | 19
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java | 2
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/PolylineData.java | 25 +
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/MasterWorkerService.java | 8
ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserMapper.xml | 2
ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/SysServeCoordinateMapper.xml | 18
ruoyi-service/ruoyi-user/src/main/resources/logback.xml | 74 +++
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/UserService.java | 3
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java | 1
ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java | 14
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java | 13
ruoyi-service/ruoyi-admin/pom.xml | 17
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/SendSmsController.java | 16
ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserRecipientMapper.xml | 23
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java | 53 +
ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/SysServeCoordinateMapper.java | 18
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/SendSmsService.java | 10
/dev/null | 20
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ServeCoordinate.java | 14
ruoyi-service/ruoyi-user/pom.xml | 17
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Withdraw.java | 5
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java | 10
ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml | 42 +
75 files changed, 1,202 insertions(+), 221 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ChangeDispatch.java b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ChangeDispatch.java
index cb988e0..08f5b10 100644
--- a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ChangeDispatch.java
+++ b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/entity/ChangeDispatch.java
@@ -3,11 +3,13 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@@ -42,6 +44,8 @@
@ApiModelProperty("申请改派时间")
@TableField("apply_time")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:ss:mm")
private Date applyTime;
@ApiModelProperty("改派状态 (0:未改派 ;1:已改派)")
diff --git a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java
index ebda7f8..fede35e 100644
--- a/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java
+++ b/ruoyi-api/ruoyi-api-admin/src/main/java/com/ruoyi/admin/api/feignClient/AdminClient.java
@@ -43,7 +43,7 @@
* @param changeDispatch 改派信息
* @return 详细数据
*/
- @PostMapping(value = "/changeDispatch/save")
+ @PostMapping(value = "/changeDispatch/changeDispatchSave")
R<Boolean> changeDispatchSave(@RequestBody ChangeDispatch changeDispatch);
/**
@@ -52,7 +52,7 @@
* @param id 订单id
* @return 改派订单
*/
- @GetMapping(value = "/changeDispatch/one")
+ @GetMapping(value = "/changeDispatch/changeDispatchOne")
R<ChangeDispatch> changeDispatchOne(@RequestParam("id") Integer id);
/**
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/PolylineData.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/PolylineData.java
new file mode 100644
index 0000000..a5f9c71
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/vo/PolylineData.java
@@ -0,0 +1,25 @@
+package com.ruoyi.common.core.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author HJL
+ * @version 1.0
+ * @since 2024-07-02 9:58
+ */
+@Data
+public class PolylineData {
+
+ @ApiModelProperty("经度")
+ private String longitude;
+
+ @ApiModelProperty("纬度")
+ private String latitude;
+
+ public PolylineData(String longitude, String latitude) {
+ this.longitude = longitude;
+ this.latitude = latitude;
+ }
+
+}
diff --git a/ruoyi-service/ruoyi-admin/pom.xml b/ruoyi-service/ruoyi-admin/pom.xml
index b47827e..7d072bb 100644
--- a/ruoyi-service/ruoyi-admin/pom.xml
+++ b/ruoyi-service/ruoyi-admin/pom.xml
@@ -184,4 +184,21 @@
</dependencies>
+ <build>
+ <finalName>${project.artifactId}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java
index be6ad9f..b24c938 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/ChangeDispatchController.java
@@ -10,6 +10,7 @@
import com.ruoyi.admin.service.ChangeDispatchService;
import com.ruoyi.admin.service.MasterWorkerService;
import com.ruoyi.admin.service.OrderService;
+import com.ruoyi.admin.sorcket.WebSocketServer;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.GlobalException;
@@ -23,6 +24,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@@ -86,6 +88,17 @@
}
/**
+ * 订单改派 -远程调用
+ *
+ * @param changeDispatch 订单改派信息
+ */
+ @ApiOperation(value = "新增订单改派", tags = {"后台-系统设置-订单改派管理"})
+ @PostMapping(value = "/changeDispatchSave")
+ public R<Boolean> changeDispatchSave(@RequestBody ChangeDispatch changeDispatch) {
+ return R.ok(changeDispatchService.save(changeDispatch));
+ }
+
+ /**
* 订单改派详情
*
* @param id 订单改派id
@@ -110,6 +123,23 @@
@ApiImplicitParam(value = "订单改派id", name = "id", dataType = "Integer", required = true)
})
public R<ChangeDispatch> one(@RequestParam("id") Integer id) {
+ ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery()
+ .eq(ChangeDispatch::getOrderId, id)
+ .eq(ChangeDispatch::getState, Constants.ZERO)
+ .one();
+ return R.ok(changeDispatch);
+ }
+
+ /**
+ * 订单改派详情 远程调用
+ *
+ * @param id 订单id
+ */
+ @GetMapping(value = "/changeDispatchOne")
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "订单改派id", name = "id", dataType = "Integer", required = true)
+ })
+ public R<ChangeDispatch> changeDispatchOne(@RequestParam("id") Integer id) {
ChangeDispatch changeDispatch = changeDispatchService.lambdaQuery()
.eq(ChangeDispatch::getOrderId, id)
.eq(ChangeDispatch::getState, Constants.ZERO)
@@ -159,10 +189,6 @@
if (null == order) {
throw new GlobalException("订单不存在!");
}
- // 判断订单状态
- if (!Constants.ZERO.equals(order.getState())) {
- throw new GlobalException("订单已有师傅正在处理!");
- }
MasterWorker masterWorker = masterWorkerService.lambdaQuery().eq(MasterWorker::getId, workerId)
.eq(MasterWorker::getIsDelete, 0).one();
// 师傅信息
@@ -185,7 +211,12 @@
// 改派信息
boolean update = changeDispatchService.lambdaUpdate().set(ChangeDispatch::getState, 1)
.eq(ChangeDispatch::getId, changeId).eq(ChangeDispatch::getIsDelete, 0).update();
- return orderUpdate && save && update ? R.ok() : R.fail();
+ try {
+ WebSocketServer.sendInfo("您有一条新的订单,请注意查收!", String.valueOf(workerId));
+ return orderUpdate && save && update ? R.ok() : R.fail();
+ } catch (IOException e) {
+ return R.fail("师傅不在线!");
+ }
}
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/HomePageController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/HomePageController.java
index f5e8800..982e410 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/HomePageController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/HomePageController.java
@@ -7,6 +7,7 @@
import com.ruoyi.admin.service.UserService;
import com.ruoyi.admin.vo.MasterWorkerRankVO;
import com.ruoyi.admin.vo.OrderResultVO;
+import com.ruoyi.admin.vo.UserDataCountVO;
import com.ruoyi.admin.vo.UserTrendsVO;
import com.ruoyi.common.core.domain.R;
import io.swagger.annotations.Api;
@@ -43,7 +44,7 @@
*/
@ApiOperation(value = "后台-用户数据统计", tags = {"后台-首页"})
@PostMapping(value = "/userDataCount")
- public R<Object> userDataCount(@RequestBody UserDataCountRequest userDataCountRequest) {
+ public R<UserDataCountVO> userDataCount(@RequestBody UserDataCountRequest userDataCountRequest) {
return R.ok(userService.userDataCount(userDataCountRequest));
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
index 6792ae0..4820535 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/MasterWorkerController.java
@@ -18,6 +18,7 @@
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@@ -54,18 +55,21 @@
@ApiImplicitParam(value = "师傅姓名", name = "name", dataType = "String"),
@ApiImplicitParam(value = "师傅电话", name = "phone", dataType = "String"),
@ApiImplicitParam(value = "服务城市", name = "city", dataType = "String"),
+ @ApiImplicitParam(value = "账号启用状态", name = "state", dataType = "Integer"),
@ApiImplicitParam(value = "页码", name = "pageNum", dataType = "Integer", required = true),
@ApiImplicitParam(value = "每页显示条数", name = "pageSize", dataType = "Integer", required = true)
})
- public R<IPage<MasterWorker>> selectServe(String name, String phone, String city,
+ public R<IPage<MasterWorker>> selectServe(String name, String phone, String city, Integer state,
@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
LambdaQueryChainWrapper<MasterWorker> wrapper = masterWorkerService.lambdaQuery();
wrapper = StringUtils.isNotBlank(name) ? wrapper.like(MasterWorker::getRealName, name) : wrapper;
wrapper = StringUtils.isNotBlank(phone) ? wrapper.like(MasterWorker::getPhone, phone) : wrapper;
wrapper = StringUtils.isNotBlank(city) ? wrapper.like(MasterWorker::getCity, city) : wrapper;
- return R.ok(wrapper.eq(MasterWorker::getIsDelete, 0)
- .eq(MasterWorker::getIsEnable,1)
+ if (null != state) {
+ wrapper.eq(MasterWorker::getIsEnable, Constants.ONE);
+ }
+ return R.ok(wrapper.eq(MasterWorker::getIsDelete, Constants.ZERO)
.orderByDesc(MasterWorker::getCreateTime).page(Page.of(pageNum, pageSize)));
}
@@ -77,11 +81,16 @@
@ApiOperation(value = "新增师傅信息", tags = {"后台-师傅管理-师傅列表管理"})
@PostMapping(value = "/save")
public R<String> save(@RequestBody MasterWorker masterWorker) {
- // MD5加密登录密码(新)
- BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
- String md5Password = passwordEncoder.encode(Constants.DEFAULT_PASSWORD);
- masterWorker.setPassword(md5Password);
- return masterWorkerService.save(masterWorker) ? R.ok() : R.fail();
+ boolean check = masterWorkerService.checkOnlyPhone(masterWorker.getPhone());
+ if (check) {
+ // MD5加密登录密码(新)
+ BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
+ String md5Password = passwordEncoder.encode(Constants.DEFAULT_PASSWORD);
+ masterWorker.setPassword(md5Password);
+ return masterWorkerService.save(masterWorker) ? R.ok() : R.fail();
+ } else {
+ return R.fail("该手机号已注册账号!");
+ }
}
/**
@@ -108,8 +117,13 @@
*/
@ApiOperation(value = "修改师傅信息", tags = {"后台-师傅管理-师傅列表管理"})
@PostMapping(value = "/update")
- public R<String> update(@RequestBody MasterWorker masterWorker) {
- return masterWorkerService.updateById(masterWorker) ? R.ok() : R.fail();
+ public R<String> update(@RequestBody @Validated MasterWorker masterWorker) {
+ boolean check = masterWorkerService.checkOnlyPhone(masterWorker.getPhone());
+ if (check) {
+ return masterWorkerService.updateById(masterWorker) ? R.ok() : R.fail();
+ } else {
+ return R.fail("该手机号已注册账号!");
+ }
}
/**
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
index 6b09cdf..ebbe530 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/OrderController.java
@@ -118,9 +118,9 @@
* 订单列表
*/
@ApiOperation(value = "订单列表-各订单数量统计", tags = {"后台-订单管理"})
- @GetMapping(value = "/orderPageCount")
- public R<OrderPageCountVO> orderPageCount() {
- return R.ok(orderService.orderPageCount());
+ @PostMapping(value = "/orderPageCount")
+ public R<OrderPageCountVO> orderPageCount(@RequestBody OrderQueryRequest orderQueryRequest) {
+ return R.ok(orderService.orderPageCount(orderQueryRequest));
}
/**
@@ -139,7 +139,7 @@
/**
* 新增订单
- * 后台订单与用户端及师傅端无关联
+ * 后台订单为指定订单,默认为待上门状态
*
* @param order 站点信息
*/
@@ -177,15 +177,14 @@
// 后台订单
order.setType(Constants.ONE);
// 待派单状态
- order.setState(Constants.ZERO);
+ order.setState(Constants.ONE);
order.setSubsidy(BigDecimal.ZERO);
order.setOrderNumber(String.valueOf(SNOW_FLAKE_ID_WORKER.nextId()));
return orderService.save(order) ? R.ok() : R.fail();
}
/**
- * 新增订单
- * 后台订单与用户端及师傅端无关联
+ * 订单派单/改派
*
* @param type 1:订单派单;2:订单改派
*/
@@ -199,7 +198,8 @@
})
public R<String> reassignment(@RequestParam Integer type, @RequestParam Integer orderId,
@RequestParam Integer workerId, String applyReason) {
- Order order = orderService.lambdaQuery().eq(Order::getId, orderId).eq(Order::getIsDelete, 0).one();
+ Order order = orderService.lambdaQuery().eq(Order::getId, orderId)
+ .eq(Order::getIsDelete, 0).one();
MasterWorker masterWorker = masterWorkerService.lambdaQuery()
.eq(MasterWorker::getId, workerId)
.eq(MasterWorker::getIsDelete, 0).one();
@@ -213,7 +213,9 @@
order.setState(Constants.ONE);
result = orderService.updateById(order);
} else if (Constants.TWO.equals(type)) {
- order.setServeId(workerId);
+ order.setServerId(workerId);
+ // 更新接单时间
+ order.setAcceptTime(new Date());
order.setServerName(masterWorker.getRealName());
order.setServerPhone(masterWorker.getPhone());
result = orderService.updateById(order);
@@ -226,7 +228,9 @@
changeDispatch.setState(Constants.ONE);
changeDispatch.setOrderId(String.valueOf(order.getId()));
changeDispatch.setOrderNumber(order.getOrderNumber());
- changeDispatch.setUserId(String.valueOf(order.getUserId()));
+ if (null != order.getUserId()) {
+ changeDispatch.setUserId(String.valueOf(order.getUserId()));
+ }
changeDispatch.setUserName(order.getReservationName());
changeDispatch.setIsDelete(Constants.ZERO);
changeDispatchService.save(changeDispatch);
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/SendSmsController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/SendSmsController.java
index 6e77d3b..1772694 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/SendSmsController.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/SendSmsController.java
@@ -1,5 +1,7 @@
package com.ruoyi.admin.controller;
+import com.ruoyi.admin.entity.Order;
+import com.ruoyi.admin.service.OrderService;
import com.ruoyi.admin.service.SendSmsService;
import com.ruoyi.common.core.domain.R;
import io.swagger.annotations.Api;
@@ -25,6 +27,8 @@
@Resource
private SendSmsService sendSmsService;
+ @Resource
+ private OrderService orderService;
/**
* 发送派单短信给用户
@@ -34,10 +38,16 @@
@ApiOperation(value = "后台-发送派单短信", tags = {"发送短信"})
@GetMapping(value = "/dispatchSms")
@ApiImplicitParams({
- @ApiImplicitParam(value = "订单记录id", name = "orderId", dataType = "String", required = true)
+ @ApiImplicitParam(value = "订单记录id", name = "orderId", dataType = "Integer", required = true)
})
- public R<Object> userDataCount(@RequestParam String orderId) {
- return R.ok();
+ public R<Object> dispatchSms(@RequestParam Integer orderId) {
+ Order order = orderService.lambdaQuery()
+ .eq(Order::getId, orderId)
+ .eq(Order::getIsDelete, 0).one();
+ if (null == order) {
+ return R.fail("订单不存在或已删除!");
+ }
+ return R.ok(sendSmsService.dispatchOrder(order));
}
/**
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/UserRecipientController.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/UserRecipientController.java
new file mode 100644
index 0000000..c4fc5a1
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/UserRecipientController.java
@@ -0,0 +1,20 @@
+package com.ruoyi.admin.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 用户收货地址 前端控制器
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-07-02
+ */
+@RestController
+@RequestMapping("/user-recipient")
+public class UserRecipientController {
+
+}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java
index 569f6a8..29b64f7 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ChangeDispatch.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -43,6 +44,7 @@
@ApiModelProperty("申请改派时间")
@TableField("apply_time")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
private Date applyTime;
@ApiModelProperty("改派状态 (0:未改派 ;1:已改派)")
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java
index 21dec73..01dfef0 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Order.java
@@ -10,7 +10,6 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
-import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
@@ -80,11 +79,9 @@
@TableField("reservation_address")
private String reservationAddress;
- @ApiModelProperty("上门时间")
+ @ApiModelProperty("上门时间段")
@TableField("time")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
- private Date time;
+ private String time;
@ApiModelProperty("接单时间(师傅接单或后台派单,更新该字段时间)")
@TableField("accept_time")
@@ -110,6 +107,11 @@
@TableField("state")
private Integer state;
+ @ApiModelProperty("师傅到达预约地点时间")
+ @TableField("arrive_time")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
+ private Date arriveTime;
+
@ApiModelProperty("订单类型(0:正常订单,1:后台订单(后台订单与用户端、师傅端无联系))")
@TableField("type")
private Integer type;
@@ -134,6 +136,14 @@
@TableField("is_withdrawal")
private Integer isWithdrawal;
+ @ApiModelProperty("详细地址")
+ @TableField("address")
+ private String address;
+
+ @ApiModelProperty("订单取消原因")
+ @TableField("cancel_reason")
+ private String cancelReason;
+
@ApiModelProperty("再投原因")
@TableField(exist = false)
private String applyReason;
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ServeCoordinate.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ServeCoordinate.java
index 794c434..94e7521 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ServeCoordinate.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/ServeCoordinate.java
@@ -10,6 +10,8 @@
import lombok.Getter;
import lombok.Setter;
+import java.math.BigDecimal;
+
/**
* <p>
* 师傅路线经纬度信息
@@ -31,8 +33,20 @@
@TableField("worker_id")
private Integer workerId;
+ @ApiModelProperty("订单id")
+ @TableField("order_id")
+ private Integer orderId;
+
@ApiModelProperty("路线经纬度")
@TableField("coordinate")
private String coordinate;
+ @ApiModelProperty("经度")
+ @TableField("longitude")
+ private BigDecimal longitude;
+
+ @ApiModelProperty("纬度")
+ @TableField("latitude")
+ private BigDecimal latitude;
+
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/UserRecipient.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/UserRecipient.java
new file mode 100644
index 0000000..b0f4535
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/UserRecipient.java
@@ -0,0 +1,81 @@
+package com.ruoyi.admin.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 用户收货地址
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-07-02
+ */
+@Getter
+@Setter
+@TableName("t_user_recipient")
+@ApiModel(value = "UserRecipient对象", description = "用户收货地址")
+public class UserRecipient {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("用户id")
+ @TableField("user_id")
+ private Integer userId;
+
+ @ApiModelProperty("收件人姓名")
+ @TableField("recipient")
+ private String recipient;
+
+ @ApiModelProperty("收件人电话")
+ @TableField("recipientPhone")
+ private String recipientPhone;
+
+ @ApiModelProperty("地址")
+ @TableField("address")
+ private String address;
+
+ @ApiModelProperty("详细地址")
+ @TableField("address_detail")
+ private String addressDetail;
+
+ @ApiModelProperty("是否为默认地址0否1是")
+ @TableField("isDefault")
+ private Integer isDefault;
+
+ @ApiModelProperty("下单用户经度")
+ @TableField("longitude")
+ private BigDecimal longitude;
+
+ @ApiModelProperty("下单用户纬度")
+ @TableField("latitude")
+ private BigDecimal latitude;
+
+ @TableField("createBy")
+ private String createBy;
+
+ @TableField("updateBy")
+ private String updateBy;
+
+ @TableField("createTime")
+ private Date createTime;
+
+ @TableField("updateTime")
+ private Date updateTime;
+
+ @ApiModelProperty("是否删除 0否1是")
+ @TableField("is_delete")
+ private Integer isDelete;
+
+
+}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Withdraw.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Withdraw.java
index a6d1acb..186cb6e 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Withdraw.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/entity/Withdraw.java
@@ -11,6 +11,7 @@
import lombok.Getter;
import lombok.Setter;
+import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@@ -26,7 +27,9 @@
@Setter
@TableName("t_withdraw")
@ApiModel(value = "Withdraw对象", description = "用户提现记录表")
-public class Withdraw extends BaseEntity {
+public class Withdraw extends BaseEntity implements Serializable {
+
+ private static final long serialVersionUID = 1L;
@TableId(value = "id",type = IdType.AUTO)
private Integer id;
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java
index 349cc5b..a95d9f9 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/OrderMapper.java
@@ -119,9 +119,10 @@
/**
* 订单管理分页模块,订单数量统计
*
+ * @param orderQueryRequest 筛选参数
* @return 统计数量
*/
- List<Order> orderPageCount();
+ List<Order> orderPageCount(@Param("data") OrderQueryRequest orderQueryRequest);
/**
* 根据所选id查询
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/UserRecipientMapper.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/UserRecipientMapper.java
new file mode 100644
index 0000000..3e467b5
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/UserRecipientMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.admin.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.admin.entity.UserRecipient;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 用户收货地址 Mapper 接口
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-07-02
+ */
+@Mapper
+public interface UserRecipientMapper extends BaseMapper<UserRecipient> {
+
+}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/WithdrawMapper.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/WithdrawMapper.java
index 26d3bd2..238fa2e 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/WithdrawMapper.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/mapper/WithdrawMapper.java
@@ -23,10 +23,12 @@
/**
* 获取用户提现金额
*
- * @param cityList 城市集合
+ * @param cityList 城市集合
+ * @param startDateStr 季度开始时间
+ * @param endDateStr 季度结束时间
* @return 总金额
*/
- BigDecimal withdrawalTotalMoney(@Param("cityList") List<String> cityList);
+ BigDecimal withdrawalTotalMoney(@Param("cityList") List<String> cityList, @Param("start") String startDateStr, @Param("end") String endDateStr);
/**
* 年度查询
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/MasterWorkerService.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/MasterWorkerService.java
index 0261ace..4925c9c 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/MasterWorkerService.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/MasterWorkerService.java
@@ -23,4 +23,12 @@
* @return 排行榜
*/
List<MasterWorkerRankVO> workerRanking(List<String> cityList);
+
+ /**
+ * 校验师傅手机号是否唯一
+ *
+ * @param phone 注册手机号
+ * @return 是否唯一
+ */
+ boolean checkOnlyPhone(String phone);
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java
index c8ce5e0..d3ce92f 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/OrderService.java
@@ -63,8 +63,8 @@
/**
* excel模板导出
*
- * @param orderQueryRequest 筛选参数
- * @param response 响应体
+ * @param orderQueryRequest 筛选参数
+ * @param response 响应体
* @return 导出结果
*/
R<String> excelExport(OrderQueryRequest orderQueryRequest, HttpServletResponse response);
@@ -98,7 +98,8 @@
/**
* 订单管理分页模块,订单数量统计
*
+ * @param orderQueryRequest 筛选参数
* @return 统计数量
*/
- OrderPageCountVO orderPageCount();
+ OrderPageCountVO orderPageCount(OrderQueryRequest orderQueryRequest);
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/SendSmsService.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/SendSmsService.java
index ad25d0b..1cd1f05 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/SendSmsService.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/SendSmsService.java
@@ -1,5 +1,7 @@
package com.ruoyi.admin.service;
+import com.ruoyi.admin.entity.Order;
+
/**
* @author HJL
* @version 1.0
@@ -30,4 +32,12 @@
* @return 验证码
*/
String userLoginSms(String phone);
+
+ /**
+ * 后台发送派单短信
+ *
+ * @param order 订单信息
+ * @return 短信结果
+ */
+ String dispatchOrder(Order order);
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/UserRecipientService.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/UserRecipientService.java
new file mode 100644
index 0000000..3aa0420
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/UserRecipientService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.admin.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.admin.entity.UserRecipient;
+
+/**
+ * <p>
+ * 用户收货地址 服务类
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-07-02
+ */
+public interface UserRecipientService extends IService<UserRecipient> {
+
+}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/UserService.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/UserService.java
index 84cddc8..2180888 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/UserService.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/UserService.java
@@ -3,6 +3,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.admin.entity.User;
import com.ruoyi.admin.request.UserDataCountRequest;
+import com.ruoyi.admin.vo.UserDataCountVO;
import com.ruoyi.admin.vo.UserTrendsVO;
import java.util.List;
@@ -31,5 +32,5 @@
* @param userDataCountRequest 请求参数
* @return 统计数据信息
*/
- Object userDataCount(UserDataCountRequest userDataCountRequest);
+ UserDataCountVO userDataCount(UserDataCountRequest userDataCountRequest);
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/WithdrawService.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/WithdrawService.java
index 38dbecf..06e1380 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/WithdrawService.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/WithdrawService.java
@@ -28,8 +28,8 @@
/**
* excel模板导出
*
- * @param exportRequest 提现记录
- * @param response 响应体
+ * @param exportRequest 提现记录
+ * @param response 响应体
* @return 导出结果
*/
R<String> excelExport(WithdrawExportRequest exportRequest, HttpServletResponse response);
@@ -37,10 +37,12 @@
/**
* 获取用户提现金额
*
- * @param cityList 城市集合
+ * @param cityList 城市集合
+ * @param startDateStr 季度开始时间
+ * @param endDateStr 季度结束时间
* @return 总金额
*/
- BigDecimal withdrawalTotalMoney(List<String> cityList);
+ BigDecimal withdrawalTotalMoney(List<String> cityList, String startDateStr, String endDateStr);
/**
* 年度查询
@@ -85,11 +87,11 @@
/**
* 用户所关联提现记录分页列表
*
- * @param nickname 用户名称
- * @param userPhone 用户手机号
+ * @param nickname 用户名称
+ * @param userPhone 用户手机号
* @param applyForTime 申请开始时间
- * @param state 审核状态
- * @param page 分页
+ * @param state 审核状态
+ * @param page 分页
* @return 分页列表
*/
IPage<UserWithdrawRecordVO> withdrawPage(String nickname, String userPhone, String applyForTime,
@@ -98,8 +100,8 @@
/**
* 提现审批通过,微信打款
*
- * @param user 下单用户
- * @param order 订单信息
+ * @param user 下单用户
+ * @param order 订单信息
* @return 打款结果
*/
Boolean confirmWithdraw(User user, Order order);
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java
index 723e462..6d6bf62 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/MasterWorkerServiceImpl.java
@@ -37,4 +37,11 @@
List<MasterWorkerRankVO> result = baseMapper.workerRanking(workerIdList);
return null == result ? new ArrayList<>() : result;
}
+
+ @Override
+ public boolean checkOnlyPhone(String phone) {
+ MasterWorker masterWorker = lambdaQuery().eq(MasterWorker::getPhone, phone).one();
+ return masterWorker == null;
+ }
+
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
index 98a4736..f65ae18 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/OrderServiceImpl.java
@@ -113,9 +113,10 @@
public R<String> excelExport(OrderQueryRequest orderQueryRequest, HttpServletResponse response) {
try {
response.setCharacterEncoding(Constants.UTF8);
- response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setContentType("application/vnd.ms-excel");
response.setHeader("Access-Control-Expose-Headers", "Content-disposition");
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(Constants.EXCEL_ORDER_FILE_NAME, CharEncoding.UTF_8) + ".xlsx");
+ response.setHeader("Content-Disposition", "attachment;filename=" +
+ URLEncoder.encode(Constants.EXCEL_ORDER_FILE_NAME, CharEncoding.UTF_8) + ".xlsx");
} catch (UnsupportedEncodingException e) {
return R.fail("excel导出失败!");
}
@@ -196,8 +197,11 @@
ServeRecord serveRecord = serveRecordService.lambdaQuery().eq(ServeRecord::getOrderId, order.getId())
.eq(ServeRecord::getIsDelete, 0).one();
// 师傅路线轨迹
- List<ServeCoordinate> serveCoordinateList = serveCoordinateService.lambdaQuery().eq(ServeCoordinate::getWorkerId, order.getServerId())
- .eq(ServeCoordinate::getIsDelete, 0).orderByDesc(ServeCoordinate::getCreateTime).list();
+ List<ServeCoordinate> serveCoordinateList = serveCoordinateService.lambdaQuery()
+ .eq(ServeCoordinate::getWorkerId, order.getServerId())
+ .eq(ServeCoordinate::getIsDelete, 0)
+ .eq(ServeCoordinate::getOrderId, order.getId())
+ .orderByDesc(ServeCoordinate::getCreateTime).list();
OrderByServeRecordVO orderByServeRecord = new OrderByServeRecordVO();
orderByServeRecord.setAcceptOrderTime(order.getAcceptTime());
orderByServeRecord.setReachTime(order.getTime());
@@ -232,6 +236,7 @@
}
OrderByServeVO orderByServe = new OrderByServeVO();
orderByServe.setServeName(recoveryServe.getServeName());
+ orderByServe.setCover(recoveryServe.getCover());
orderByServe.setSupClassify(recoveryClassify.getSupClassify());
orderByServe.setSubClassify(recoveryClassify.getSubClassify());
orderByServe.setPrice(order.getServePrice());
@@ -245,7 +250,7 @@
// 订单信息
OrderInfoVO orderInfo = new OrderInfoVO();
orderInfo.setOrderNumber(order.getOrderNumber());
- orderInfo.setPlaceOrderTime(order.getTime());
+ orderInfo.setPlaceOrderTime(order.getCreateTime());
orderInfo.setState(order.getState());
result.setOrderInfo(orderInfo);
}
@@ -271,8 +276,8 @@
}
@Override
- public OrderPageCountVO orderPageCount() {
- List<Order> orderList = baseMapper.orderPageCount();
+ public OrderPageCountVO orderPageCount(OrderQueryRequest orderQueryRequest) {
+ List<Order> orderList = baseMapper.orderPageCount(orderQueryRequest);
int total = 0;
int toBeDispatched = 0;
int stayDoorstep = 0;
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java
index e7b95a8..2784b47 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/SendSmsServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.admin.service.impl;
import cn.hutool.core.util.RandomUtil;
+import com.ruoyi.admin.entity.Order;
import com.ruoyi.admin.service.SendSmsService;
import com.ruoyi.admin.utils.SendSmsUtil;
import com.ruoyi.common.core.constant.Constants;
@@ -43,6 +44,15 @@
sendSmsUtil.loginId);
}
+ @Override
+ public String dispatchOrder(Order order) {
+ // 发送验证码
+ String phone = order.getReservationPhone();
+ String[] arr = {order.getOrderNumber()};
+ sendSmsUtil.sendSms(new SendSmsUtil.SendSmsRequest(phone, sendSmsUtil.reservationId, arr));
+ return "发送成功!";
+ }
+
private String sendPhoneCode(String phone, String redisKey, String templateId) {
// 生成随机 6位数字 验证码
String phoneCode = RandomUtil.randomNumbers(6);
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserRecipientServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserRecipientServiceImpl.java
new file mode 100644
index 0000000..d75331f
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserRecipientServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.admin.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.admin.entity.UserRecipient;
+import com.ruoyi.admin.mapper.UserRecipientMapper;
+import com.ruoyi.admin.service.UserRecipientService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户收货地址 服务实现类
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-07-02
+ */
+@Service
+public class UserRecipientServiceImpl extends ServiceImpl<UserRecipientMapper, UserRecipient> implements UserRecipientService {
+
+}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserServiceImpl.java
index 074d63e..20bda70 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/UserServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.admin.service.impl;
+import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.admin.entity.User;
import com.ruoyi.admin.mapper.UserMapper;
@@ -39,15 +40,12 @@
@Override
public List<UserTrendsVO> userTrends(List<String> city) {
- if (null == city || city.isEmpty()) {
- return new ArrayList<>();
- }
List<UserTrendsVO> userTrendsList = baseMapper.userTrends(city);
return null == userTrendsList || userTrendsList.isEmpty() ? new ArrayList<>() : userTrendsList;
}
@Override
- public Object userDataCount(UserDataCountRequest userDataCountRequest) {
+ public UserDataCountVO userDataCount(UserDataCountRequest userDataCountRequest) {
List<String> cityList = userDataCountRequest.getCityList();
List<User> userList = lambdaQuery().eq(User::getIsDelete, 0).list();
// 用户总量
@@ -67,12 +65,16 @@
BigDecimal withdrawalTotalMoney;
if (OrderConstants.QUARTER.equals(userDataCountRequest.getCountType())) {
// 用户增长数
- increaseNumber = lambdaQuery().ge(User::getCreateTime, startDateStr).le(User::getCreateTime, endDateStr)
- .in(User::getCity, cityList).eq(User::getIsDelete, 0).count();
+ LambdaQueryChainWrapper<User> wrapper = lambdaQuery().ge(User::getCreateTime, startDateStr)
+ .le(User::getCreateTime, endDateStr);
+ if (!cityList.isEmpty()) {
+ wrapper.in(User::getCity, cityList);
+ }
+ increaseNumber = wrapper.eq(User::getIsDelete, 0).count();
// 用户总交易额
totalMoney = orderService.totalMoneyByQuarter(startDateStr, endDateStr, cityList);
// 用户提现总额
- withdrawalTotalMoney = withdrawService.withdrawalTotalMoney(cityList);
+ withdrawalTotalMoney = withdrawService.withdrawalTotalMoney(cityList,startDateStr,endDateStr);
} else if (OrderConstants.YEAR.equals(userDataCountRequest.getCountType())) {
// 用户增长数
increaseNumber = baseMapper.increaseNumberByYear(cityList);
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/WithdrawServiceImpl.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/WithdrawServiceImpl.java
index 799c2d5..c88f7b1 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/WithdrawServiceImpl.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/service/impl/WithdrawServiceImpl.java
@@ -88,7 +88,7 @@
public R<String> excelExport(WithdrawExportRequest exportRequest, HttpServletResponse response) {
try {
response.setCharacterEncoding(Constants.UTF8);
- response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ response.setContentType("application/vnd.ms-excel");
response.setHeader("Access-Control-Expose-Headers", "Content-disposition");
response.setHeader("Content-Disposition", "attachment;filename=" +
URLEncoder.encode(Constants.EXCEL_WITHDRAWAL_FILE_NAME, CharEncoding.UTF_8) + ".xlsx");
@@ -126,8 +126,8 @@
}
@Override
- public BigDecimal withdrawalTotalMoney(List<String> cityList) {
- return baseMapper.withdrawalTotalMoney(cityList);
+ public BigDecimal withdrawalTotalMoney(List<String> cityList,String startDateStr, String endDateStr) {
+ return baseMapper.withdrawalTotalMoney(cityList,startDateStr,endDateStr);
}
@Override
@@ -169,12 +169,10 @@
public Boolean confirmWithdraw(User user, Order order) {
// 校验提现
List<Withdraw> list = this.lambdaQuery().eq(Withdraw::getUserId, user.getId())
- .eq(Withdraw::getOrderId, order).list();
+ .eq(Withdraw::getOrderId, order.getId()).list();
List<Integer> stateList = list.stream().map(Withdraw::getState).collect(Collectors.toList());
- if (stateList.contains(Constants.ZERO)) {
- throw new GlobalException("当前订单已提交提现申请,请等待审核!");
- } else if (stateList.contains(Constants.ONE)) {
- throw new GlobalException("当前订单已提现通过!");
+ if (stateList.contains(Constants.ONE)) {
+ throw new GlobalException("当前订单提现申请已通过!");
}
return weChatPay(order.getOrderMoney(), user.getOpenId());
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java
index 22651bb..9381d84 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/sorcket/WebSocketServer.java
@@ -125,7 +125,6 @@
WEB_SOCKET_MAP.get(workerId).getSession().getBasicRemote().sendText(message);
} else {
log.error("用户" + workerId + ",不在线!");
- throw new IOException("用户" + workerId + ",不在线!");
}
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java
index 7d1239b..05947b7 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/GeneratorCodeConfig.java
@@ -36,7 +36,7 @@
public static void main(String[] args) {
// 数据库连接url
- String dbUrl = "jdbc:mysql://localhost:3306/old_data";
+ String dbUrl = "jdbc:mysql://localhost:3306/secondary_recovery";
// 数据库用户名
String dbUsername = "root";
// 数据库密码
@@ -61,7 +61,7 @@
// 包配置
.packageConfig(builder -> builder
// 父包名
- .parent("com.rouyi.user")
+ .parent("com.ruoyi.worker")
// 父包模块名 注释即为无
// .moduleName(scanner("模块名"))
// Entity 包名
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/SendSmsUtil.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/SendSmsUtil.java
new file mode 100644
index 0000000..47247df
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/utils/SendSmsUtil.java
@@ -0,0 +1,117 @@
+package com.ruoyi.admin.utils;
+
+import com.ruoyi.common.core.exception.GlobalException;
+import com.tencentcloudapi.common.Credential;
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
+import com.tencentcloudapi.sms.v20210111.SmsClient;
+import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import lombok.var;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.Objects;
+
+/**
+ * 腾讯云发送验证码
+ *
+ * @author HJL
+ */
+@Slf4j
+@Component
+public class SendSmsUtil {
+
+ /**
+ * 短信签名内容,必须填写已审核通过的签名
+ */
+ @Value("${tencent.signName}")
+ private String singName;
+
+ /**
+ * 短信验证码登录模板id
+ */
+ @Value("${tencent.template.loginId}")
+ public String loginId;
+
+ /**
+ * 入驻申请验证码模板id
+ */
+ @Value("${tencent.template.applyId}")
+ public String applyId;
+
+ /**
+ * 预约成功验证码模板id
+ */
+ @Value("${tencent.template.reservationId}")
+ public String reservationId;
+
+ /**
+ * 应用id
+ */
+ @Value("${tencent.appId}")
+ public String appId;
+
+ /**
+ * 密钥id
+ */
+ @Value("${tencent.secretId}")
+ public String secretId;
+
+ /**
+ * 应用的appKey
+ */
+ @Value("${tencent.secretKey}")
+ public String secretKey;
+
+ public void sendSms(SendSmsRequest request) {
+ Credential cred = new Credential(secretId, secretKey);
+ SmsClient client = new SmsClient(cred, "ap-beijing");
+ final var req = new com.tencentcloudapi.sms.v20210111.models.SendSmsRequest();
+ req.setPhoneNumberSet(new String[]{"+86" + request.getPhone()});
+ req.setSmsSdkAppId(appId);
+ req.setSignName(singName);
+ req.setTemplateId(request.getTemplateId());
+ req.setTemplateParamSet(request.getTemplateParamSet());
+ SendSmsResponse res;
+ try {
+ res = client.SendSms(req);
+ } catch (TencentCloudSDKException e) {
+ log.error("发送短信出错:", e);
+ throw new GlobalException("发送短信验证码错误!");
+ }
+ log.info("发送短信结果:", SendSmsResponse.toJsonString(res));
+ if (!Objects.nonNull(res.getSendStatusSet()) && res.getSendStatusSet().length == 0
+ && !"Ok".equals(res.getSendStatusSet()[0].getCode())) {
+ throw new GlobalException("发送短信验证码失败!");
+ }
+ }
+
+ /**
+ * 参数对象
+ */
+ @Data
+ public static class SendSmsRequest {
+ /**
+ * 电话
+ */
+ private String phone;
+
+ /**
+ * 模板 ID: 必须填写已审核通过的模板 ID
+ */
+ private String templateId;
+
+ /**
+ * 模板参数: 模板参数的个数需要与 TemplateId 对应模板的变量个数保持一致,若无模板参数,则设置为空
+ */
+ private String[] templateParamSet;
+
+ public SendSmsRequest(String phone, String templateId, String[] templateParamSet) {
+ this.phone = phone;
+ this.templateId = templateId;
+ this.templateParamSet = templateParamSet;
+ }
+ }
+
+}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java
index 90cd70e..2b604ec 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeRecordVO.java
@@ -21,9 +21,8 @@
@JsonFormat(pattern = "yyyy-MM-dd")
private Date acceptOrderTime;
- @ApiModelProperty("到达时间")
- @JsonFormat(pattern = "yyyy-MM-dd")
- private Date reachTime;
+ @ApiModelProperty("上门时间")
+ private String reachTime;
@ApiModelProperty("路线经纬度集合")
private List<String> coordinate;
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeVO.java
index 025ebf8..4996bb5 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeVO.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByServeVO.java
@@ -27,4 +27,7 @@
@ApiModelProperty("回收价格")
private BigDecimal price;
+ @ApiModelProperty("封面图片")
+ private String cover;
+
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java
index 6f99708..b4f144b 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderByUserInfoVO.java
@@ -1,11 +1,8 @@
package com.ruoyi.admin.vo;
-import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
-
-import java.util.Date;
/**
* @author HJL
@@ -32,7 +29,6 @@
private String reservationAddress;
@ApiModelProperty("预约上门时间")
- @JsonFormat(pattern = "yyyy-MM-dd")
- private Date time;
+ private String time;
}
diff --git a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderResultVO.java b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderResultVO.java
index 4af8e37..ff7ce78 100644
--- a/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderResultVO.java
+++ b/ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/vo/OrderResultVO.java
@@ -13,7 +13,7 @@
* @since 2024-05-30 16:30
*/
@Data
-@ApiModel(value = "OrderQuery对象", description = "回收订单统计查询类")
+@ApiModel(value = "OrderResultVO对象", description = "回收订单统计查询类")
public class OrderResultVO {
@ApiModelProperty("订单总额")
diff --git a/ruoyi-service/ruoyi-admin/src/main/resources/logback.xml b/ruoyi-service/ruoyi-admin/src/main/resources/logback.xml
new file mode 100644
index 0000000..7c909ff
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+ <!-- 日志存放路径 -->
+ <property name="log.path" value="logs/ruoyi-admin" />
+ <!-- 日志输出格式 -->
+ <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+ <!-- 控制台输出 -->
+ <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- 系统日志输出 -->
+ <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${log.path}/info.log</file>
+ <!-- 循环政策:基于时间创建日志文件 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- 日志文件名格式 -->
+ <fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+ <!-- 日志最大的历史 60天 -->
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <!-- 过滤的级别 -->
+ <level>INFO</level>
+ <!-- 匹配时的操作:接收(记录) -->
+ <onMatch>ACCEPT</onMatch>
+ <!-- 不匹配时的操作:拒绝(不记录) -->
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
+
+ <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${log.path}/error.log</file>
+ <!-- 循环政策:基于时间创建日志文件 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- 日志文件名格式 -->
+ <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+ <!-- 日志最大的历史 60天 -->
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <!-- 过滤的级别 -->
+ <level>ERROR</level>
+ <!-- 匹配时的操作:接收(记录) -->
+ <onMatch>ACCEPT</onMatch>
+ <!-- 不匹配时的操作:拒绝(不记录) -->
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
+
+ <!-- 系统模块日志级别控制 -->
+ <logger name="com.ruoyi" level="info" />
+ <!-- Spring日志级别控制 -->
+ <logger name="org.springframework" level="warn" />
+
+ <root level="info">
+ <appender-ref ref="console" />
+ </root>
+
+ <!--系统操作日志-->
+ <root level="info">
+ <appender-ref ref="file_info" />
+ <appender-ref ref="file_error" />
+ </root>
+</configuration>
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml
index 48ad3d7..ad56b5b 100644
--- a/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml
+++ b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/OrderMapper.xml
@@ -10,6 +10,7 @@
<result column="site_name" property="siteName"/>
<result column="serve_id" property="serveId"/>
<result column="serve_name" property="serveName"/>
+ <result column="serve_price" property="servePrice"/>
<result column="reservation_name" property="reservationName"/>
<result column="reservation_phone" property="reservationPhone"/>
<result column="reservation_address" property="reservationAddress"/>
@@ -240,12 +241,51 @@
and DATE(o.time) <![CDATA[ <= ]]> #{data.endTime}
</if>
</where>
+ order by o.createTime desc
</select>
<select id="orderPageCount" resultMap="BaseResultMap">
select o.*
from t_order o
- where o.is_delete = 0
+ <where>
+ o.is_delete = 0
+ <if test="data.orderNumber != null and data.orderNumber != ''">
+ and o.order_number like concat('%', #{data.orderNumber}, '%')
+ </if>
+ <if test="data.cityName != null and data.cityName != ''">
+ and o.city like concat('%', #{data.cityName}, '%')
+ </if>
+ <if test="data.reservationName != null and data.reservationName != ''">
+ and o.reservation_name like concat('%', #{data.reservationName}, '%')
+ </if>
+ <if test="data.reservationPhone != null and data.reservationPhone != ''">
+ and o.reservation_phone like concat('%', #{data.reservationPhone}, '%')
+ </if>
+ <if test="data.state != null">
+ and o.state = #{data.state}
+ </if>
+ <if test="data.workerName != null and data.workerName != ''">
+ and o.server_name like concat('%', #{data.workerName}, '%')
+ </if>
+ <if test="data.workerPhone != null and data.workerPhone != ''">
+ and o.server_phone like concat('%', #{data.workerPhone}, '%')
+ </if>
+ <if test="data.serveName != null and data.serveName != ''">
+ and o.serve_name like concat('%', #{data.serveName}, '%')
+ </if>
+ <if test="data.orderTimeStart != null and data.orderTimeStart != ''">
+ and DATE(o.createTime) <![CDATA[ >= ]]> #{data.orderTimeStart}
+ </if>
+ <if test="data.orderTimeEnd != null and data.orderTimeEnd != ''">
+ and DATE(o.createTime) <![CDATA[ <= ]]> #{data.orderTimeEnd}
+ </if>
+ <if test="data.startTime != null and data.startTime != ''">
+ and DATE(o.time) <![CDATA[ >= ]]> #{data.startTime}
+ </if>
+ <if test="data.endTime != null and data.endTime != ''">
+ and DATE(o.time) <![CDATA[ <= ]]> #{data.endTime}
+ </if>
+ </where>
</select>
<select id="exportByIdList" resultMap="BaseResultMap">
diff --git a/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserMapper.xml b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserMapper.xml
index c653e8d..81c2dbd 100644
--- a/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserMapper.xml
+++ b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserMapper.xml
@@ -30,7 +30,7 @@
and state = 1
</where>
GROUP BY DATE_FORMAT(createTime, '%Y-%m')
- ORDER BY createTime;
+ ORDER BY date;
</select>
<select id="increaseNumberByYear" resultType="java.lang.Long">
diff --git a/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserRecipientMapper.xml b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserRecipientMapper.xml
new file mode 100644
index 0000000..195be78
--- /dev/null
+++ b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/UserRecipientMapper.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.admin.mapper.UserRecipientMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.admin.entity.UserRecipient">
+ <id column="id" property="id" />
+ <result column="user_id" property="userId" />
+ <result column="recipient" property="recipient" />
+ <result column="recipientPhone" property="recipientPhone" />
+ <result column="address" property="address" />
+ <result column="address_detail" property="addressDetail" />
+ <result column="isDefault" property="isDefault" />
+ <result column="longitude" property="longitude" />
+ <result column="latitude" property="latitude" />
+ <result column="createBy" property="createBy" />
+ <result column="updateBy" property="updateBy" />
+ <result column="createTime" property="createTime" />
+ <result column="updateTime" property="updateTime" />
+ <result column="is_delete" property="isDelete" />
+ </resultMap>
+
+</mapper>
diff --git a/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/WithdrawMapper.xml b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/WithdrawMapper.xml
index afaef11..e0aec8f 100644
--- a/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/WithdrawMapper.xml
+++ b/ruoyi-service/ruoyi-admin/src/main/resources/mapper/admin/WithdrawMapper.xml
@@ -22,8 +22,15 @@
FROM t_withdraw w
LEFT JOIN t_user u on w.user_id = u.id
<where>
+ w.is_delete = 0
+ <if test="start != null and start != ''">
+ and w.createTime <![CDATA[ >= ]]> #{start}
+ </if>
+ <if test="end != null and end != ''">
+ and w.createTime <![CDATA[ <= ]]> #{end}
+ </if>
<if test="cityList != null and cityList.size() != 0">
- u.city in
+ and u.city in
<foreach collection="cityList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
diff --git a/ruoyi-service/ruoyi-user/pom.xml b/ruoyi-service/ruoyi-user/pom.xml
index c4daea5..0788d57 100644
--- a/ruoyi-service/ruoyi-user/pom.xml
+++ b/ruoyi-service/ruoyi-user/pom.xml
@@ -165,4 +165,21 @@
</dependencies>
+ <build>
+ <finalName>${project.artifactId}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java
index 88a2ca4..4053942 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/OrderController.java
@@ -45,6 +45,19 @@
@Resource
private TokenService tokenService;
+ @GetMapping("/orderList")
+ @ApiOperation(value = "订单列表", tags = {"用户端-订单"})
+ public R<List<Order>> orderList() {
+ LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+ if (null == loginUser) {
+ return R.loginExpire("登录失效!");
+ }
+ return R.ok(orderService.lambdaQuery()
+ .eq(Order::getIsDelete, 0)
+ .eq(Order::getUserId, loginUser.getUserid())
+ .orderByDesc(Order::getCreateTime).list());
+ }
+
@GetMapping("/detail")
@ApiOperation(value = "订单详情", tags = {"用户端-订单"})
@ApiImplicitParams({
@@ -99,6 +112,5 @@
Boolean result = orderService.placeOrder(orderRequest, loginUser.getUserid());
return result ? R.ok() : R.fail();
}
-
}
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryClassifyController.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryClassifyController.java
deleted file mode 100644
index e72dd80..0000000
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/RecoveryClassifyController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ruoyi.user.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 回收分类表 前端控制器
- * </p>
- *
- * @author hjl
- * @since 2024-06-06
- */
-@RestController
-@RequestMapping("/recovery-classify")
-public class RecoveryClassifyController {
-
-}
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/ServeRecordController.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/ServeRecordController.java
deleted file mode 100644
index 816b842..0000000
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/ServeRecordController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.ruoyi.user.controller;
-
-
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * <p>
- * 师傅服务记录 前端控制器
- * </p>
- *
- * @author hjl
- * @since 2024-06-11
- */
-@RestController
-@RequestMapping("/serve-record")
-public class ServeRecordController {
-
-}
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java
index 0c89e0f..69e6061 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/controller/WithdrawController.java
@@ -29,7 +29,7 @@
*/
@RestController
@RequestMapping("/withdraw")
-@Api(tags = {"用户端-提现"})
+@Api(tags = {"用户端-个人中心-提现"})
public class WithdrawController {
@Resource
@@ -38,7 +38,7 @@
private TokenService tokenService;
@GetMapping("/withdrawList")
- @ApiOperation(value = "提现列表", tags = {"用户端-个人中心"})
+ @ApiOperation(value = "提现列表", tags = {"用户端-个人中心-提现"})
public R<WithdrawListVO> withdrawList() {
LoginUserInfo loginUser = tokenService.getLoginUserByUser();
if (null == loginUser) {
@@ -47,8 +47,18 @@
return R.ok(withdrawService.withdrawList(loginUser.getUserid()));
}
+ @GetMapping("/withdrawDetail")
+ @ApiOperation(value = "提现详情", tags = {"用户端-个人中心-提现"})
+ public R<WithdrawListVO> withdrawDetail() {
+ LoginUserInfo loginUser = tokenService.getLoginUserByUser();
+ if (null == loginUser) {
+ return R.loginExpire("登录失效!");
+ }
+ return R.ok(withdrawService.withdrawList(loginUser.getUserid()));
+ }
+
@GetMapping("/confirmWithdraw")
- @ApiOperation(value = "确认提现", tags = {"用户端-个人中心"})
+ @ApiOperation(value = "确认提现", tags = {"用户端-个人中心-提现"})
@ApiImplicitParams({
@ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true)
})
@@ -61,7 +71,7 @@
}
@GetMapping("/withdrawRecord")
- @ApiOperation(value = "提现记录", tags = {"用户端-个人中心"})
+ @ApiOperation(value = "提现记录", tags = {"用户端-个人中心-提现"})
public R<List<Withdraw>> withdrawRecord() {
LoginUserInfo loginUser = tokenService.getLoginUserByUser();
if (null == loginUser) {
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/Order.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/Order.java
index 6aa9842..b4c1c56 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/Order.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/Order.java
@@ -76,7 +76,7 @@
@ApiModelProperty("上门时间")
@TableField("time")
- private Date time;
+ private String time;
@ApiModelProperty("服务人员id")
@TableField("server_id")
@@ -138,4 +138,8 @@
@TableField("address")
private String address;
+ @ApiModelProperty("订单取消原因")
+ @TableField("cancel_reason")
+ private String cancelReason;
+
}
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/UserRecipient.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/UserRecipient.java
index 2d9324c..aab5cb4 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/UserRecipient.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/entity/UserRecipient.java
@@ -24,7 +24,7 @@
@ApiModel(value = "UserRecipient对象", description = "用户收货地址")
public class UserRecipient extends BaseEntity {
- @TableId(value = "id",type = IdType.AUTO)
+ @TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty("用户id")
@@ -51,4 +51,12 @@
@TableField("isDefault")
private Integer isDefault;
+ @ApiModelProperty("经度")
+ @TableField("longitude")
+ private Double longitude;
+
+ @ApiModelProperty("纬度")
+ @TableField("latitude")
+ private Double latitude;
+
}
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/request/OrderRequest.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/request/OrderRequest.java
index b9079c4..18fce3f 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/request/OrderRequest.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/request/OrderRequest.java
@@ -5,7 +5,6 @@
import lombok.Data;
import java.math.BigDecimal;
-import java.util.Date;
/**
* 用户下单请求参数对象
@@ -33,7 +32,7 @@
private Integer addressId;
@ApiModelProperty("上门时间")
- private Date time;
+ private String time;
@ApiModelProperty("预约备注(服务备注)")
private String reservationRemark;
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java
index 5adde65..34f1368 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/OrderServiceImpl.java
@@ -16,7 +16,6 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
-import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;
@@ -72,7 +71,7 @@
String reservationName = orderRequest.getReservationName();
String reservationPhone = orderRequest.getReservationPhone();
Integer addressId = orderRequest.getAddressId();
- Date time = orderRequest.getTime();
+ String time = orderRequest.getTime();
String reservationRemark = orderRequest.getReservationRemark();
Double longitude = orderRequest.getLongitude();
Double latitude = orderRequest.getLatitude();
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java
index 7ebd805..765dc51 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/UserServiceImpl.java
@@ -50,7 +50,7 @@
String openid = json.getString("openid");
return R.ok(openid);
} catch (Exception e) {
- return R.fail("openId生成失败");
+ return R.fail("openId生成失败!");
}
}
}
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java
index 511e740..3b8ebaf 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/service/impl/WithdrawServiceImpl.java
@@ -114,6 +114,7 @@
for (Order order : orderList) {
RecoveryServe recoveryServe = serveMap.get(order.getServeId());
WithdrawOrderVO withdrawOrder = new WithdrawOrderVO();
+ withdrawOrder.setOrderId(order.getId());
withdrawOrder.setOrderNumber(order.getOrderNumber());
withdrawOrder.setServeId(order.getServeId());
withdrawOrder.setServeName(recoveryServe.getServeName());
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/EvaluateOrderInfoVO.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/EvaluateOrderInfoVO.java
index 0606ac3..5e1998d 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/EvaluateOrderInfoVO.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/EvaluateOrderInfoVO.java
@@ -13,6 +13,9 @@
@Data
public class EvaluateOrderInfoVO {
+ @ApiModelProperty("订单id")
+ private String orderId;
+
@ApiModelProperty("订单编号")
private String orderNumber;
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderDetailVO.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderDetailVO.java
index cf99e4a..da1246a 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderDetailVO.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderDetailVO.java
@@ -37,7 +37,7 @@
private String reservationAddress;
@ApiModelProperty("上门时间")
- private Date time;
+ private String time;
@ApiModelProperty("服务人员名称")
private String serverName;
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderEvaluateVO.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderEvaluateVO.java
index 39c1af8..9ed5352 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderEvaluateVO.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/OrderEvaluateVO.java
@@ -17,10 +17,10 @@
@ApiModelProperty("评价信息")
private EvaluateInfoVO evaluateInfo;
- @ApiModelProperty("是否已评价")
- private Boolean isEvaluate;
+ @ApiModelProperty("是否还未评价")
+ private Boolean evaluate;
public Boolean getEvaluate() {
- return null != evaluateInfo.getStarRating();
+ return null != evaluateInfo;
}
}
diff --git a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/WithdrawOrderVO.java b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/WithdrawOrderVO.java
index c003f6a..9119789 100644
--- a/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/WithdrawOrderVO.java
+++ b/ruoyi-service/ruoyi-user/src/main/java/com/ruoyi/user/vo/WithdrawOrderVO.java
@@ -13,6 +13,9 @@
@Data
public class WithdrawOrderVO {
+ @ApiModelProperty("订单id")
+ private Integer orderId;
+
@ApiModelProperty("订单编号")
private String orderNumber;
diff --git a/ruoyi-service/ruoyi-user/src/main/resources/logback.xml b/ruoyi-service/ruoyi-user/src/main/resources/logback.xml
new file mode 100644
index 0000000..18d0dd3
--- /dev/null
+++ b/ruoyi-service/ruoyi-user/src/main/resources/logback.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+ <!-- 日志存放路径 -->
+ <property name="log.path" value="logs/ruoyi-user" />
+ <!-- 日志输出格式 -->
+ <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
+
+ <!-- 控制台输出 -->
+ <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ </appender>
+
+ <!-- 系统日志输出 -->
+ <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${log.path}/info.log</file>
+ <!-- 循环政策:基于时间创建日志文件 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- 日志文件名格式 -->
+ <fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
+ <!-- 日志最大的历史 60天 -->
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <!-- 过滤的级别 -->
+ <level>INFO</level>
+ <!-- 匹配时的操作:接收(记录) -->
+ <onMatch>ACCEPT</onMatch>
+ <!-- 不匹配时的操作:拒绝(不记录) -->
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
+
+ <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
+ <file>${log.path}/error.log</file>
+ <!-- 循环政策:基于时间创建日志文件 -->
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+ <!-- 日志文件名格式 -->
+ <fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
+ <!-- 日志最大的历史 60天 -->
+ <maxHistory>60</maxHistory>
+ </rollingPolicy>
+ <encoder>
+ <pattern>${log.pattern}</pattern>
+ </encoder>
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
+ <!-- 过滤的级别 -->
+ <level>ERROR</level>
+ <!-- 匹配时的操作:接收(记录) -->
+ <onMatch>ACCEPT</onMatch>
+ <!-- 不匹配时的操作:拒绝(不记录) -->
+ <onMismatch>DENY</onMismatch>
+ </filter>
+ </appender>
+
+ <!-- 系统模块日志级别控制 -->
+ <logger name="com.ruoyi" level="info" />
+ <!-- Spring日志级别控制 -->
+ <logger name="org.springframework" level="warn" />
+
+ <root level="info">
+ <appender-ref ref="console" />
+ </root>
+
+ <!--系统操作日志-->
+ <root level="info">
+ <appender-ref ref="file_info" />
+ <appender-ref ref="file_error" />
+ </root>
+</configuration>
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-user/src/main/resources/mapper/user/EvaluateMapper.xml b/ruoyi-service/ruoyi-user/src/main/resources/mapper/user/EvaluateMapper.xml
index 8ebe18b..082dc4d 100644
--- a/ruoyi-service/ruoyi-user/src/main/resources/mapper/user/EvaluateMapper.xml
+++ b/ruoyi-service/ruoyi-user/src/main/resources/mapper/user/EvaluateMapper.xml
@@ -18,6 +18,7 @@
<resultMap id="evaluateMap" type="com.ruoyi.user.vo.OrderEvaluateVO">
<association property="orderInfo" javaType="com.ruoyi.user.vo.EvaluateOrderInfoVO">
+ <result column="id" property="orderId"/>
<result column="order_number" property="orderNumber"/>
<result column="complete_time" property="completeTime"/>
<result column="serve_name" property="serveName"/>
@@ -33,7 +34,7 @@
</association>
</resultMap>
<select id="orderEvaluate" resultMap="evaluateMap">
- SELECT o.order_number,
+ SELECT o.id,o.order_number,
o.complete_time,
r.serve_name,
r.serve_describe,
diff --git a/ruoyi-service/ruoyi-worker/pom.xml b/ruoyi-service/ruoyi-worker/pom.xml
index 7d2a393..20c7de5 100644
--- a/ruoyi-service/ruoyi-worker/pom.xml
+++ b/ruoyi-service/ruoyi-worker/pom.xml
@@ -145,4 +145,21 @@
</dependency>
</dependencies>
+ <build>
+ <finalName>${project.artifactId}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
\ No newline at end of file
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
index 3549d99..f346771 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/MasterWorkerController.java
@@ -32,6 +32,7 @@
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.regex.Pattern;
/**
@@ -91,15 +92,16 @@
* @param worker 登录信息
* @return token
*/
- private HashMap<String, Object> generateLoginToken(MasterWorker worker) {
+ private Map<String, Object> generateLoginToken(MasterWorker worker) {
// 校验通过,生成token及过期时间
LoginUserInfo loginUserInfo = new LoginUserInfo();
loginUserInfo.setName(worker.getRealName());
loginUserInfo.setUserid(worker.getId());
loginUserInfo.setPhone(worker.getPhone());
loginUserInfo.setLoginTime(System.currentTimeMillis());
- HashMap<String, Object> map = new HashMap<>(8);
+ Map<String, Object> map = new HashMap<>(8);
map.put("token", tokenService.createTokenByWorker(loginUserInfo));
+ map.put("userId", worker.getId());
return map;
}
@@ -135,7 +137,17 @@
return R.notEnabled("登录失败,当前账号未启用!");
}
} else {
- return R.unregistered("当前手机号通过入驻申请认证!");
+ // 校验师傅是否已提交入驻申请
+ WorkerProcess process = workerProcessService.lambdaQuery()
+ .eq(WorkerProcess::getPhone, phone)
+ .eq(WorkerProcess::getIsDelete, 0).one();
+ if (Constants.ZERO.equals(process.getState())) {
+ return R.fail("入驻申请暂未审核通过,请耐心等待!");
+ } else if (Constants.TWO.equals(process.getState())) {
+ return R.fail("入驻申请已驳回,请重新提交入驻申请!");
+ } else {
+ return R.registered("当前账号未提交入驻申请,无法登录!");
+ }
}
// 校验通过,生成token及过期时间
return R.ok(generateLoginToken(worker));
@@ -148,18 +160,16 @@
*/
@ApiOperation(value = "入驻申请", tags = {"师傅端-登录"})
@PostMapping(value = "/settledApply")
- public R<String> settledApply(@RequestBody WorkerProcess workerProcess) {
+ public R<String> settledApply(@RequestBody @Validated WorkerProcess workerProcess) {
String phone = workerProcess.getPhone();
String phoneCode = workerProcess.getCode();
- if (!Constants.DEFAULT_PHONE_CODE.equals(phoneCode)) {
- Object redisCodeObj = redisService.getCacheObject(RedisConstants.WORKER_SETTLE_KEY + phone);
- if (null == redisCodeObj) {
- return R.errorCode("验证码错误或已过期!");
- }
- String redisCodeStr = String.valueOf(redisCodeObj).split(":")[0];
- if (!String.valueOf(redisCodeStr).equalsIgnoreCase(phoneCode)) {
- return R.errorCode("验证码错误或已过期!");
- }
+ Object redisCodeObj = redisService.getCacheObject(RedisConstants.WORKER_SETTLE_KEY + phone);
+ if (null == redisCodeObj) {
+ return R.errorCode("验证码错误或已过期!");
+ }
+ String redisCodeStr = String.valueOf(redisCodeObj).split(":")[0];
+ if (!String.valueOf(redisCodeStr).equalsIgnoreCase(phoneCode)) {
+ return R.errorCode("验证码错误或已过期!");
}
// 校验手机号是否已注册
MasterWorker masterWorker = masterWorkerService.lambdaQuery().eq(MasterWorker::getPhone, phone)
@@ -168,27 +178,33 @@
return R.registered("当前手机号已注册!");
}
// 校验手机号是否已提交申请
- WorkerProcess dbProcess = workerProcessService.lambdaQuery().eq(WorkerProcess::getPhone, phone)
+ WorkerProcess dbProcess = workerProcessService.lambdaQuery()
+ .eq(WorkerProcess::getPhone, phone)
.eq(WorkerProcess::getIsDelete, 0).one();
if (null != dbProcess) {
- return R.repeatedSubmission("当前手机号已提交申请,请勿重复提交!");
- }
- // 默认状态待审核
- workerProcess.setState(Constants.ZERO);
- // 获取用户性别
- String idNumber = workerProcess.getIdNumber();
- // 判断身份证号码长度是否合法
- if (idNumber.length() == Constants.EIGHTEEN) {
- // 获取身份证号码倒数第二位的数字
- int genderNum = Integer.parseInt(idNumber.substring(16, 17));
- // 判断性别
- if (genderNum % Constants.TWO == 0) {
- workerProcess.setSex("女");
- } else {
- workerProcess.setSex("男");
+ if (Constants.ZERO.equals(dbProcess.getState())) {
+ return R.fail("入驻申请已提交,审核未通过,请耐心等待!");
+ } else if (Constants.ONE.equals(dbProcess.getState())) {
+ return R.fail("该手机号入驻申请已通过,请通过手机号登录!");
}
} else {
- return R.idNumberIllegal("身份证号码不合法!");
+ // 默认状态待审核
+ workerProcess.setState(Constants.ZERO);
+ // 获取用户性别
+ String idNumber = workerProcess.getIdNumber();
+ // 判断身份证号码长度是否合法
+ if (idNumber.length() == Constants.EIGHTEEN) {
+ // 获取身份证号码倒数第二位的数字
+ int genderNum = Integer.parseInt(idNumber.substring(16, 17));
+ // 判断性别
+ if (genderNum % Constants.TWO == 0) {
+ workerProcess.setSex("女");
+ } else {
+ workerProcess.setSex("男");
+ }
+ } else {
+ return R.idNumberIllegal("身份证号码不合法!");
+ }
}
return workerProcessService.save(workerProcess) ? R.ok("申请成功!") : R.fail("申请失败!");
}
@@ -206,16 +222,14 @@
@ApiImplicitParam(value = "手机验证码", name = "phoneCode", dataType = "String", required = true)
})
public R<String> verifyPhone(@RequestParam String phone, @RequestParam String phoneCode) {
- if (!Constants.DEFAULT_PHONE_CODE.equals(phoneCode)) {
- // 验证码是否一致
- Object redisCode = redisService.getCacheObject(RedisConstants.WORKER_APPLY_KEY + phone);
- if (null == redisCode) {
- return R.errorCode("验证码错误或已过期!");
- }
- String redisCodeStr = String.valueOf(redisCode).split(",")[0];
- if (!String.valueOf(redisCodeStr).equalsIgnoreCase(phoneCode)) {
- return R.errorCode("验证码错误或已过期!");
- }
+ // 验证码是否一致
+ Object redisCode = redisService.getCacheObject(RedisConstants.WORKER_APPLY_KEY + phone);
+ if (null == redisCode) {
+ return R.errorCode("验证码错误或已过期!");
+ }
+ String redisCodeStr = String.valueOf(redisCode).split(":")[0];
+ if (!String.valueOf(redisCodeStr).equalsIgnoreCase(phoneCode)) {
+ return R.errorCode("验证码错误或已过期!");
}
// 手机号是否注册
MasterWorker worker = masterWorkerService.lambdaQuery().eq(MasterWorker::getPhone, phone)
@@ -302,6 +316,19 @@
return R.loginExpire("登录已失效!");
}
return R.ok(masterWorkerService.orderNotHandle(loginWorker.getUserid(), longitude, latitude));
+ }
+
+ /**
+ * 师傅端-操作指南
+ */
+ @ApiOperation(value = "操作指南", tags = {"师傅端-首页"})
+ @GetMapping(value = "/guide")
+ public R<Agreement> guide() {
+ LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
+ if (null == loginWorker) {
+ return R.loginExpire("登录已失效!");
+ }
+ return R.ok(adminClient.dataInfo(Constants.TWO).getData());
}
/**
@@ -438,7 +465,7 @@
if (null == redisCode) {
return R.errorCode("验证码错误或已过期!");
}
- String redisCodeStr = String.valueOf(redisCode).split(",")[0];
+ String redisCodeStr = String.valueOf(redisCode).split(":")[0];
if (!String.valueOf(redisCodeStr).equalsIgnoreCase(code)) {
return R.errorCode("验证码错误或已过期!");
}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java
index 2ed177b..db2b943 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OrderController.java
@@ -9,23 +9,19 @@
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.system.api.model.LoginUserInfo;
-import com.ruoyi.worker.entity.Evaluate;
-import com.ruoyi.worker.entity.MasterWorker;
-import com.ruoyi.worker.entity.Order;
-import com.ruoyi.worker.entity.ServeRecord;
+import com.ruoyi.worker.entity.*;
import com.ruoyi.worker.request.OrderSubmitRequest;
-import com.ruoyi.worker.service.EvaluateService;
-import com.ruoyi.worker.service.MasterWorkerService;
-import com.ruoyi.worker.service.OrderService;
-import com.ruoyi.worker.service.ServeRecordService;
+import com.ruoyi.worker.service.*;
import com.ruoyi.worker.vo.OrderDetailVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -54,6 +50,8 @@
private ServeRecordService serveRecordService;
@Resource
private EvaluateService evaluateService;
+ @Resource
+ private SysServeCoordinateService serveCoordinateService;
/**
* 师傅端-获取订单列表
@@ -84,6 +82,7 @@
@ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true),
@ApiImplicitParam(value = "改派原因", name = "reason", dataType = "String", required = true)
})
+ @Transactional(rollbackFor = Exception.class)
public R<String> applyChange(@RequestParam Integer orderId, @RequestParam String reason) {
LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
if (null == loginWorker) {
@@ -157,6 +156,7 @@
@ApiImplicitParams({
@ApiImplicitParam(value = "orderId", name = "orderId", dataType = "Integer", required = true)
})
+ @Transactional(rollbackFor = Exception.class)
public R<Boolean> reachPosition(@RequestParam Integer orderId) {
LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
if (null == loginWorker) {
@@ -167,7 +167,9 @@
if (null == order) {
throw new GlobalException("请确认当前订单所派单师傅是否是您!");
}
- order.setState(Constants.THREE);
+ // 待完工状态
+ order.setState(Constants.TWO);
+ order.setArriveTime(new Date());
return R.ok(orderService.updateById(order));
}
@@ -179,7 +181,7 @@
@ApiOperation(value = "订单详情", tags = {"师傅端-订单列表"})
@GetMapping(value = "/orderDetail")
@ApiImplicitParams({
- @ApiImplicitParam(value = "orderId", name = "orderId", dataType = "Integer", required = true)
+ @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true)
})
public R<OrderDetailVO> orderDetail(@RequestParam Integer orderId) {
// 订单信息
@@ -199,6 +201,7 @@
*/
@ApiOperation(value = "订单完工-提交订单", tags = {"师傅端-订单列表"})
@PostMapping(value = "/orderSubmit")
+ @Transactional(rollbackFor = Exception.class)
public R<Boolean> orderSubmit(@RequestBody OrderSubmitRequest orderSubmitRequest) {
// 订单信息
Order order = orderService.lambdaQuery().eq(Order::getId, orderSubmitRequest.getOrderId())
@@ -218,4 +221,34 @@
return R.ok(update && save);
}
+ /**
+ * 师傅端-定时调度记录师傅所走路线经纬度
+ *
+ * @param orderId 订单id
+ * @param longitude 经度
+ * @param latitude 纬度
+ */
+ @ApiOperation(value = "订单进行-记录路线经纬度", tags = {"师傅端-订单列表"})
+ @GetMapping(value = "/coordinate")
+ @ApiImplicitParams({
+ @ApiImplicitParam(value = "订单id", name = "orderId", dataType = "Integer", required = true),
+ @ApiImplicitParam(value = "经度", name = "longitude", dataType = "Integer", required = true),
+ @ApiImplicitParam(value = "纬度", name = "latitude", dataType = "Integer", required = true)
+ })
+ @Transactional(rollbackFor = Exception.class)
+ public R<Boolean> coordinate(@RequestParam Integer orderId, @RequestParam Double longitude,
+ @RequestParam Double latitude) {
+ LoginUserInfo loginWorker = tokenService.getLoginUserByWorker();
+ if (null == loginWorker) {
+ return R.loginExpire("登录失效!");
+ }
+ SysServeCoordinate sysServeCoordinate = new SysServeCoordinate();
+ sysServeCoordinate.setWorkerId(loginWorker.getUserid());
+ sysServeCoordinate.setOrderId(orderId);
+ sysServeCoordinate.setCoordinate(longitude + "," + latitude);
+ sysServeCoordinate.setLongitude(BigDecimal.valueOf(longitude));
+ sysServeCoordinate.setLatitude(BigDecimal.valueOf(latitude));
+ return R.ok(serveCoordinateService.save(sysServeCoordinate));
+ }
+
}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java
index 1e5bde0..500f7f4 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/controller/OssController.java
@@ -2,7 +2,6 @@
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.ObsUploadUtil;
import com.ruoyi.worker.entity.Order;
@@ -54,10 +53,11 @@
@ApiImplicitParam(value = "师傅所在经度", name = "longitude", dataType = "String", required = true),
@ApiImplicitParam(value = "师傅所在纬度", name = "latitude", dataType = "String", required = true)
})
- public R<String> uploadPhoto(@RequestParam("file") MultipartFile file, @RequestParam String orderId,
- @RequestParam String longitude, @RequestParam String latitude) {
+ public R<Boolean> uploadPhoto(@RequestParam("file") MultipartFile file, @RequestParam String orderId,
+ @RequestParam String longitude, @RequestParam String latitude) {
// 校验经纬度
- Order order = orderService.lambdaQuery().eq(Order::getIsDelete, orderId).eq(Order::getIsDelete, 0).one();
+ Order order = orderService.lambdaQuery().eq(Order::getId, orderId)
+ .eq(Order::getIsDelete, 0).one();
// 用户下单位置经纬度
String orderPosition = order.getLongitude() + "," + order.getLatitude();
// 师傅经纬度
@@ -66,7 +66,8 @@
Long distance = GaoDeMapUtil.getDistance(orderPosition, workerPosition).getDatas();
// 上传时判断是否在下单位置附件,距离大于某个值则 不允许上传
if (distance > Constants.THREE_THOUSAND) {
- throw new GlobalException("您当前手机定位超出当前订单预约地址范围 3km,无法提供回收服务!");
+// throw new GlobalException("您当前手机定位超出当前订单预约地址范围 3km,无法提供回收服务!");
+ return R.fail(Boolean.FALSE, "您当前手机定位超出当前订单预约地址范围 3km,无法提供回收服务!");
}
try {
return R.ok(ObsUploadUtil.obsUpload(file));
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Evaluate.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Evaluate.java
index 50cac5e..582368b 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Evaluate.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Evaluate.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
@@ -60,6 +61,7 @@
private String updateBy;
@TableField("createTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
private Date createTime;
@TableField("updateTime")
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Order.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Order.java
index c93b7ff..dfe6c12 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Order.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/Order.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -76,7 +77,7 @@
@ApiModelProperty("上门时间")
@TableField("time")
- private Date time;
+ private String time;
@ApiModelProperty("服务人员id")
@TableField("server_id")
@@ -108,6 +109,7 @@
@ApiModelProperty("师傅到达预约地点时间")
@TableField("arrive_time")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
private Date arriveTime;
@ApiModelProperty("订单类型(0:正常订单,1:后台订单(后台订单与用户端、师傅端无联系))")
@@ -124,6 +126,7 @@
@ApiModelProperty("订单完成时间")
@TableField("complete_time")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
private Date completeTime;
@ApiModelProperty("是否已提现(0:未提现,1:已提现)")
@@ -138,8 +141,16 @@
@TableField("address")
private String address;
+ @ApiModelProperty("订单取消原因")
+ @TableField("cancel_reason")
+ private String cancelReason;
+
@ApiModelProperty("置顶顺序")
@TableField("top_sort")
private Integer topSort;
+ @ApiModelProperty("回收服务封面图")
+ @TableField(exist = false)
+ private String cover;
+
}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/SysServeCoordinate.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/SysServeCoordinate.java
new file mode 100644
index 0000000..669210a
--- /dev/null
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/entity/SysServeCoordinate.java
@@ -0,0 +1,52 @@
+package com.ruoyi.worker.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 师傅路线经纬度信息
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-07-03
+ */
+@Getter
+@Setter
+@TableName("sys_serve_coordinate")
+@ApiModel(value = "SysServeCoordinate对象", description = "师傅路线经纬度信息")
+public class SysServeCoordinate extends BaseEntity {
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("师傅id")
+ @TableField("worker_id")
+ private Integer workerId;
+
+ @ApiModelProperty("订单id")
+ @TableField("order_id")
+ private Integer orderId;
+
+ @ApiModelProperty("路线经纬度")
+ @TableField("coordinate")
+ private String coordinate;
+
+ @ApiModelProperty("经度")
+ @TableField("longitude")
+ private BigDecimal longitude;
+
+ @ApiModelProperty("纬度")
+ @TableField("latitude")
+ private BigDecimal latitude;
+
+}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/OrderMapper.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/OrderMapper.java
index 3b49dd5..e385488 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/OrderMapper.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/OrderMapper.java
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.worker.entity.Order;
import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* <p>
@@ -15,4 +18,12 @@
@Mapper
public interface OrderMapper extends BaseMapper<Order> {
+ /**
+ * 订单列表
+ *
+ * @param userid 登录id
+ * @param state 区分
+ * @return 订单列表
+ */
+ List<Order> orderList(@Param("userId") Integer userid, @Param("state") Integer state);
}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/SysServeCoordinateMapper.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/SysServeCoordinateMapper.java
new file mode 100644
index 0000000..8e728e0
--- /dev/null
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/mapper/SysServeCoordinateMapper.java
@@ -0,0 +1,18 @@
+package com.ruoyi.worker.mapper;
+
+import com.ruoyi.worker.entity.SysServeCoordinate;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 师傅路线经纬度信息 Mapper 接口
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-07-03
+ */
+@Mapper
+public interface SysServeCoordinateMapper extends BaseMapper<SysServeCoordinate> {
+
+}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/SysServeCoordinateService.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/SysServeCoordinateService.java
new file mode 100644
index 0000000..00daf9a
--- /dev/null
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/SysServeCoordinateService.java
@@ -0,0 +1,16 @@
+package com.ruoyi.worker.service;
+
+import com.ruoyi.worker.entity.SysServeCoordinate;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 师傅路线经纬度信息 服务类
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-07-03
+ */
+public interface SysServeCoordinateService extends IService<SysServeCoordinate> {
+
+}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java
index fe86570..233c475 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/MasterWorkerServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.worker.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.constant.Constants;
import com.ruoyi.common.core.domain.Result;
@@ -45,13 +46,22 @@
@Override
public List<OrderListVO> orderNotHandle(Integer userid, String longitude, String latitude) {
- List<Order> orderList = orderService.lambdaQuery()
- .eq(Order::getServerId, userid)
- .eq(Order::getState, Constants.ONE)
- .eq(Order::getIsDelete, 0)
- .orderByAsc(Order::getTopSort).list();
+ QueryWrapper<Order> wrapper = new QueryWrapper<>();
+ wrapper.eq("server_id", userid)
+ .in("state", 1, 2)
+ .eq("is_delete", Constants.ZERO)
+ .orderByAsc("CASE WHEN topSort IS NULL THEN 1 ELSE 0 END")
+ .orderByAsc("topSort");
+ List<Order> orderList = orderService.list(wrapper);
// 根据经纬度距离封装
List<OrderNotHandleVO> list = new ArrayList<>();
+ boolean item = false;
+ for (Order order : orderList) {
+ if (null != order.getTopSort()) {
+ item = true;
+ break;
+ }
+ }
for (Order order : orderList) {
// 用户下单经纬度
Double orderLongitude = order.getLongitude();
@@ -62,7 +72,8 @@
Result<Long> result = GaoDeMapUtil.getDistance(orderPosition, longitude + "," + latitude);
Long distance = result.getDatas();
// 回收服务信息
- RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, order.getServeId())
+ RecoveryServe recoveryServe = recoveryServeService.lambdaQuery()
+ .eq(RecoveryServe::getId, order.getServeId())
.eq(RecoveryServe::getIsDelete, 0).one();
// vo类信息封装
OrderListVO orderListVO = new OrderListVO(order.getServeId());
@@ -72,8 +83,10 @@
orderListVO.setSiteName(order.getSiteName());
orderListVO.setServeId(order.getServeId());
orderListVO.setServeName(order.getServeName());
- orderListVO.setServePicture(recoveryServe.getCover());
- orderListVO.setServePrice(recoveryServe.getDefaultPrice());
+ if (null != recoveryServe) {
+ orderListVO.setServePicture(recoveryServe.getCover());
+ orderListVO.setServePrice(recoveryServe.getDefaultPrice());
+ }
orderListVO.setUserId(userid);
orderListVO.setReservationName(order.getReservationName());
orderListVO.setReservationPhone(order.getReservationPhone());
@@ -94,37 +107,44 @@
OrderNotHandleVO vo = new OrderNotHandleVO(distance, orderListVO);
list.add(vo);
}
- // 根据距离排序
- list.sort(Comparator.comparing(OrderNotHandleVO::getDistance));
- List<OrderListVO> resultList = list.stream().map(OrderNotHandleVO::getOrderList).collect(Collectors.toList());
- for (OrderListVO orderListVO : resultList) {
- Integer serveId = orderListVO.getServeId();
- // 回收服务信息
- RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
- .eq(RecoveryServe::getIsDelete, 0).one();
- if (null != recoveryServe) {
- orderListVO.setServePicture(recoveryServe.getCover());
+ if (item) {
+ return list.stream().map(OrderNotHandleVO::getOrderList).collect(Collectors.toList());
+ } else {
+ // 根据距离排序
+ list.sort(Comparator.comparing(OrderNotHandleVO::getDistance));
+ List<OrderListVO> resultList = list.stream().map(OrderNotHandleVO::getOrderList).collect(Collectors.toList());
+ for (OrderListVO orderListVO : resultList) {
+ Integer serveId = orderListVO.getServeId();
+ // 回收服务信息
+ RecoveryServe recoveryServe = recoveryServeService.lambdaQuery().eq(RecoveryServe::getId, serveId)
+ .eq(RecoveryServe::getIsDelete, 0).one();
+ if (null != recoveryServe) {
+ orderListVO.setServePicture(recoveryServe.getCover());
+ }
}
+ return resultList;
}
- return resultList;
+
}
@Override
public Boolean orderTop(Integer orderId, Integer userid) {
// 订单代办列表
List<Order> orderList = orderService.lambdaQuery().eq(Order::getServerId, userid)
- .eq(Order::getState, Constants.ONE)
+ .in(Order::getState, Constants.ONE, Constants.TWO)
.eq(Order::getIsDelete, 0)
- .eq(Order::getType, Constants.ZERO)
.orderByAsc(Order::getTopSort).list();
- List<Order> orders = orderList.stream().filter(data -> null != data.getTopSort()).collect(Collectors.toList());
int itemSort = 2;
- for (Order order : orders) {
- order.setTopSort(itemSort);
- itemSort++;
+ for (Order order : orderList) {
+ if (null != order.getTopSort()) {
+ order.setTopSort(itemSort);
+ itemSort++;
+ }
}
+ orderService.updateBatchById(orderList);
return orderService.lambdaUpdate().set(Order::getTopSort, Constants.ONE)
.eq(Order::getServerId, userid)
+ .eq(Order::getId, orderId)
.eq(Order::getIsDelete, 0).update();
}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java
index ee472dd..f4e2dd7 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/OrderServiceImpl.java
@@ -24,18 +24,15 @@
@Override
public List<Order> orderList(Integer userid, Integer state) {
- LambdaQueryChainWrapper<Order> wrapper = lambdaQuery().eq(Order::getIsDelete, 0)
- .eq(Order::getType, 0);
+ LambdaQueryChainWrapper<Order> wrapper = lambdaQuery()
+ .eq(Order::getIsDelete, 0);
// 查询所有订单/待上门/已完结订单
- if (Constants.ZERO.equals(state)) {
- wrapper.in(Order::getState, 1, 2, 3, 4, 5);
- } else if (Constants.ONE.equals(state)) {
- wrapper.eq(Order::getState, 1);
+ if (Constants.ONE.equals(state)) {
+ wrapper.in(Order::getState, 1, 2);
} else if (Constants.TWO.equals(state)) {
wrapper.eq(Order::getState, 3);
- } else {
- wrapper.in(Order::getState, 1, 2, 3, 4, 5);
}
+ List<Order> list = baseMapper.orderList(userid, state);
return wrapper.eq(Order::getServerId, userid).list();
}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/SysServeCoordinateServiceImpl.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/SysServeCoordinateServiceImpl.java
new file mode 100644
index 0000000..0911a6b
--- /dev/null
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/service/impl/SysServeCoordinateServiceImpl.java
@@ -0,0 +1,20 @@
+package com.ruoyi.worker.service.impl;
+
+import com.ruoyi.worker.entity.SysServeCoordinate;
+import com.ruoyi.worker.mapper.SysServeCoordinateMapper;
+import com.ruoyi.worker.service.SysServeCoordinateService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 师傅路线经纬度信息 服务实现类
+ * </p>
+ *
+ * @author hjl
+ * @since 2024-07-03
+ */
+@Service
+public class SysServeCoordinateServiceImpl extends ServiceImpl<SysServeCoordinateMapper, SysServeCoordinate> implements SysServeCoordinateService {
+
+}
diff --git a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/OrderListVO.java b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/OrderListVO.java
index fa0272d..f51284a 100644
--- a/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/OrderListVO.java
+++ b/ruoyi-service/ruoyi-worker/src/main/java/com/ruoyi/worker/vo/OrderListVO.java
@@ -1,6 +1,7 @@
package com.ruoyi.worker.vo;
import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -51,8 +52,8 @@
@ApiModelProperty("预约地址")
private String reservationAddress;
- @ApiModelProperty("预约上门时间")
- private Date time;
+ @ApiModelProperty("预约上门时间段")
+ private String time;
@ApiModelProperty("服务人员id")
private Integer serverId;
@@ -73,9 +74,11 @@
private Integer state;
@ApiModelProperty("接单时间(师傅接单或后台派单,更新该字段时间)")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
private Date acceptTime;
@ApiModelProperty("师傅到达预约地点时间")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:ss:mm")
private Date arriveTime;
@ApiModelProperty("订单类型(0:正常订单,1:后台订单(后台订单与用户端、师傅端无联系))")
diff --git a/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml b/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml
index 306a8c3..6737672 100644
--- a/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml
+++ b/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/MasterWorkerMapper.xml
@@ -27,7 +27,7 @@
<select id="orderCount" resultType="com.ruoyi.worker.vo.OrderCountVO">
SELECT COALESCE(SUM(CASE WHEN o.state IN (1, 2, 3) THEN 1 ELSE 0 END), 0) AS total,
- COALESCE(SUM(CASE WHEN o.state = 1 THEN 1 ELSE 0 END), 0) AS waitVisit,
+ COALESCE(SUM(CASE WHEN o.state in (1, 2)THEN 1 ELSE 0 END), 0) AS waitVisit,
COALESCE(SUM(CASE WHEN o.state = 3 THEN 1 ELSE 0 END), 0) AS completed
FROM t_order o
left join sys_master_worker m on o.server_id = m.id
diff --git a/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/OrderMapper.xml b/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/OrderMapper.xml
index 7e8b784..3c66843 100644
--- a/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/OrderMapper.xml
+++ b/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/OrderMapper.xml
@@ -29,5 +29,34 @@
<result column="type" property="type"/>
<result column="longitude" property="longitude"/>
<result column="latitude" property="latitude"/>
+ <result column="cover" property="cover"/>
</resultMap>
+
+ <select id="orderList" resultMap="BaseResultMap">
+ select o.*, s.cover
+ from t_order o
+ left join sys_recovery_serve s on o.serve_id = s.id
+ <where>
+ o.is_delete = 0
+ and s.is_delete = 0
+ and o.server_id = #{userId}
+ <if test="state == 1">
+ and o.state in (1, 2)
+ </if>
+ <if test="state == 2">
+ and o.state = 3
+ </if>
+ <choose>
+ <when test="state == 1">
+ and o.state in (1, 2)
+ </when>
+ <when test="state == 2">
+ and o.state = 3
+ </when>
+ <otherwise>
+ and o.state in (1, 2, 3)
+ </otherwise>
+ </choose>
+ </where>
+ </select>
</mapper>
diff --git a/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/SysServeCoordinateMapper.xml b/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/SysServeCoordinateMapper.xml
new file mode 100644
index 0000000..21a321b
--- /dev/null
+++ b/ruoyi-service/ruoyi-worker/src/main/resources/mapper/worker/SysServeCoordinateMapper.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.worker.mapper.SysServeCoordinateMapper">
+
+ <!-- 通用查询映射结果 -->
+ <resultMap id="BaseResultMap" type="com.ruoyi.worker.entity.SysServeCoordinate">
+ <id column="id" property="id" />
+ <result column="worker_id" property="workerId" />
+ <result column="order_id" property="orderId" />
+ <result column="coordinate" property="coordinate" />
+ <result column="createBy" property="createBy" />
+ <result column="updateBy" property="updateBy" />
+ <result column="createTime" property="createTime" />
+ <result column="updateTime" property="updateTime" />
+ <result column="is_delete" property="isDelete" />
+ </resultMap>
+
+</mapper>
--
Gitblit v1.7.1