202506031422

This commit is contained in:
张潘 2025-06-03 14:22:43 +08:00
parent f89c824f95
commit cf60fc57a5
12 changed files with 198 additions and 79 deletions

View File

@ -1,3 +1,4 @@
{
"java.compile.nullAnalysis.mode": "automatic"
"java.compile.nullAnalysis.mode": "automatic",
"java.configuration.updateBuildConfiguration": "interactive"
}

14
pom.xml
View File

@ -218,6 +218,20 @@
<version>${ruoyi.version}</version>
</dependency>
<!-- HttpClient依赖 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.13</version>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
</dependencies>
</dependencyManagement>

View File

@ -6,9 +6,9 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:mysql://yun.snxuchao.com:3307/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
url: jdbc:mysql://localhost:3306/hfrj_db?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 2025@snxuchao
password: 123456
# 从库数据源
slave:
# 从数据源开关/默认关闭

View File

@ -13,6 +13,15 @@ ruoyi:
# 验证码类型 math 数字计算 char 字符验证
captchaType: math
# 高德地图配置
amap:
# 高德Web服务API类型Key
key: 308ad08f306d74daddffba44f5537767
# 高德Web服务API密钥
secret: 8c58e51cb91b527f0fb863b3c97ef3c7
# API地址
apiUrl: https://restapi.amap.com/v3
# 开发环境配置
server:
# 服务器的HTTP端口默认为8080

View File

@ -119,6 +119,18 @@
<artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- HttpClient依赖 -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -3,6 +3,7 @@ package com.ruoyi.system.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.system.controllerUtil.orderUtil;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.service.*;
import org.springframework.security.access.prepost.PreAuthorize;
@ -118,7 +119,14 @@ public class OrderController extends BaseController
@PostMapping
public AjaxResult add(@RequestBody Order order)
{
return toAjax(orderService.insertOrder(order));
orderUtil orderUtil=new orderUtil();
//1,根据用户手机号判断用户不存在
int fig=orderUtil.isUser(order.getPhone());
if (fig==0){
System.out.println("用户XINZE");
}
return toAjax(orderService.insertOrder(order)
);
}
/**

View File

@ -0,0 +1,40 @@
package com.ruoyi.system.controllerUtil;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.Users;
import com.ruoyi.system.service.IUsersService;
import com.ruoyi.system.service.impl.UsersServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
/**
* 服务订单Controller工具类
*
*/
@Controller
public class orderUtil {
//1,根据用户手机号判断用户不存在,4如果不存在就要新增一个用户数据
public int isUser(String phone) {
if (SpringUtils.getBean(IUsersService.class).selectUsersByPhone(phone) == null){
Users users = new Users();
users.setName("微信用户");
users.setType("1");
users.setStatus(1);
users.setPhone(phone);
SpringUtils.getBean(IUsersService.class).insertUsers(users);
return 0;
}
return 1;
}
}

View File

@ -19,6 +19,17 @@ public interface UsersMapper
*/
public Users selectUsersById(Long id);
/**
* 查询根据电话号码查询用户基本信息
*
* @param phone 请填写功能名称主键
* @return 请填写功能名称
*/
public Users selectUsersByPhone(String phone);
/**
* 查询请填写功能名称列表
*

View File

@ -19,6 +19,14 @@ public interface IUsersService
*/
public Users selectUsersById(Long id);
/**
* 查询根据电弧号码查询用户基本数据
*
* @param phone 请填写功能名称主键
* @return 请填写功能名称
*/
public Users selectUsersByPhone(String phone);
/**
* 查询请填写功能名称列表
*

View File

@ -30,7 +30,17 @@ public class UsersServiceImpl implements IUsersService
{
return usersMapper.selectUsersById(id);
}
/**
* 查询根据电弧号码查询用户基本数据
*
* @param phone 请填写功能名称主键
* @return 请填写功能名称
*/
public Users selectUsersByPhone(String phone) {
return usersMapper.selectUsersByPhone(phone);
}
/**
* 查询请填写功能名称列表
*

View File

@ -100,6 +100,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where id = #{id}
</select>
<select id="selectUsersByPhone" parameterType="String" resultMap="UsersResult">
<include refid="selectUsersVo"/>
where phone = #{phone}
</select>
<insert id="insertUsers" parameterType="Users" useGeneratedKeys="true" keyProperty="id">
insert into users
<trim prefix="(" suffix=")" suffixOverrides=",">

View File

@ -332,6 +332,17 @@
<el-input v-model="form.transactionId" placeholder="请输入微信支付单号" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="下单类型" prop="createType">
<el-radio-group v-model="form.createType">
<el-radio :label="1">自主下单</el-radio>
<el-radio :label="2">后台下单</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<!-- 自主下单表单项 -->
<template v-if="form.createType === 1">
<el-col :span="24">
<el-form-item label="用户" prop="uid">
<el-select v-model="form.uid" placeholder="请选择用户" clearable filterable style="width: 100%">
@ -344,6 +355,40 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="关联地址" prop="addressId">
<el-select v-model="form.addressId" placeholder="请选择地址" clearable filterable style="width: 100%">
<el-option
v-for="item in addressList"
:key="item.id"
:label="item.address"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</template>
<!-- 后台下单表单项 -->
<template v-if="form.createType === 2">
<el-col :span="24">
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入电话" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="地址" prop="address">
<el-input v-model="form.address" type="textarea" placeholder="请输入地址" />
</el-form-item>
</el-col>
</template>
<!-- 共同表单项 -->
<el-col :span="24">
<el-form-item label="商品" prop="productId">
<el-select v-model="form.productId" placeholder="请选择商品" clearable filterable style="width: 100%">
@ -392,24 +437,11 @@
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="关联地址" prop="addressId">
<el-select v-model="form.addressId" placeholder="请选择地址" clearable filterable style="width: 100%">
<el-option
v-for="item in addressList"
:key="item.id"
:label="item.address"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="mark">
<el-input v-model="form.mark" type="textarea" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
<div class="dialog-footer" style="text-align:left;margin-top:20px;">
<el-button @click="reset">重置</el-button>
@ -543,27 +575,31 @@ export default {
form: {},
//
rules: {
type: [
{ required: true, message: "1:服务项目 2商品不能为空", trigger: "change" }
],
orderId: [
{ required: true, message: "订单号不能为空", trigger: "blur" }
],
createType: [
{ required: true, message: "1用户自主下单2后台下单不能为空", trigger: "change" }
{ required: true, message: "请选择下单类型", trigger: "change" }
],
productId: [
{ required: true, message: "商品不能为空", trigger: "blur" }
uid: [
{ required: true, message: "请选择用户", trigger: "change" }
],
addressId: [
{ required: true, message: "请选择地址", trigger: "change" }
],
name: [
{ required: true, message: "姓名不能为空", trigger: "blur" }
],
phone: [
{ required: true, message: "电话不能为空", trigger: "blur" }
{ required: true, message: "电话不能为空", trigger: "blur" },
{ pattern: /^1[3-9]\d{9}$/, message: "请输入正确的手机号码", trigger: "blur" }
],
address: [
{ required: true, message: "地址不能为空", trigger: "blur" }
],
productId: [
{ required: true, message: "请选择商品", trigger: "change" }
],
num: [
{ required: true, message: "数量不能为空", trigger: "blur" }
],
@ -574,17 +610,8 @@ export default {
{ required: true, message: "支付金额不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "订单状态 1:待接单 2待服务3服务中4已结束 5已取消 6:师傅完成服务 7未服务提前结束订单不能为空", trigger: "change" }
],
isPause: [
{ required: true, message: "1开始服务 2暂停服务不能为空", trigger: "blur" }
],
isComment: [
{ required: true, message: "1:已评价 0未评价不能为空", trigger: "blur" }
],
isAccept: [
{ required: true, message: "1已经接单不能为空", trigger: "blur" }
],
{ required: true, message: "请选择订单状态", trigger: "change" }
]
},
commentDialogVisible: false, //
currentOrder: null, //
@ -645,51 +672,23 @@ export default {
reset() {
this.form = {
id: null,
type: null,
mainOrderId: null,
orderId: null,
transactionId: null,
createType: null,
createPhone: null,
createType: 1, //
uid: null,
productId: null,
addressId: null,
name: null,
phone: null,
address: null,
makeTime: null,
makeHour: null,
num: null,
productId: null,
type: 1,
num: 1,
totalPrice: null,
goodPrice: null,
servicePrice: null,
payPrice: null,
couponId: null,
deduction: null,
payTime: null,
status: null,
isPause: null,
mark: null,
addressId: null,
sku: null,
workerId: null,
firstWorkerId: null,
receiveTime: null,
isComment: null,
receiveType: null,
isAccept: null,
middlePhone: null,
userPhone: null,
workerPhone: null,
addressEn: null,
uidAdmin: null,
addressAdmin: null,
logStatus: null,
logJson: null,
jsonStatus: null,
logImages: null,
createdAt: null,
updatedAt: null,
deletedAt: null
status: 1, //
mark: null
}
this.resetForm("form")
},