package com.ruoyi.admin.controller;
|
|
import com.ruoyi.admin.entity.MasterWorker;
|
import com.ruoyi.admin.entity.WorkerProcess;
|
import com.ruoyi.admin.service.MasterWorkerService;
|
import com.ruoyi.admin.service.SendSmsService;
|
import com.ruoyi.admin.service.WorkerProcessService;
|
import com.ruoyi.common.core.constant.Constants;
|
import com.ruoyi.common.core.domain.R;
|
import com.ruoyi.order.api.feignClient.OrderClient;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RestController;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @author HJL
|
* @version 1.0
|
* @since 2024-05-30 15:28
|
*/
|
@RestController
|
@RequestMapping("/sendSms")
|
@Api(tags = {"发送短信"})
|
public class SendSmsController {
|
|
@Resource
|
private SendSmsService sendSmsService;
|
@Resource
|
private OrderClient orderClient;
|
@Resource
|
private MasterWorkerService masterWorkerService;
|
@Resource
|
private WorkerProcessService workerProcessService;
|
|
/**
|
* 发送派单短信给用户
|
*
|
* @param orderId 订单记录id
|
*/
|
@ApiOperation(value = "后台-发送派单短信", tags = {"发送短信"})
|
@GetMapping(value = "/dispatchSms")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "订单记录id", name = "orderId", dataType = "Integer", required = true)
|
})
|
public R<Object> dispatchSms(@RequestParam String orderId) {
|
com.ruoyi.order.api.entity.Order order = orderClient.detail(orderId).getData();
|
orderClient.msgCount(orderId);
|
if (null == order) {
|
return R.fail("订单不存在或已删除!");
|
}
|
return R.ok(sendSmsService.dispatchOrder(order));
|
}
|
|
/**
|
* 用户端-发送登录验证码短信
|
*
|
* @param phone 订单记录id
|
*/
|
@ApiOperation(value = "用户端-发送登录验证码短信", tags = {"发送短信"})
|
@GetMapping(value = "/userLoginSms")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "手机号", name = "phone", dataType = "String", required = true)
|
})
|
public R<Object> userLoginSms(@RequestParam String phone) {
|
return R.ok(sendSmsService.userLoginSms(phone));
|
}
|
|
/**
|
* 师傅端-找回密码/验证手机号/验证码登录
|
*
|
* @param phone 订单记录id
|
*/
|
@ApiOperation(value = "师傅端-找回密码/验证手机号/验证码登录短信", tags = {"发送短信"})
|
@GetMapping(value = "/workerLoginSms")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "手机号", name = "phone", dataType = "String", required = true)
|
})
|
public R<String> workerLoginSms(@RequestParam String phone) {
|
MasterWorker masterWorker = masterWorkerService.lambdaQuery()
|
.eq(MasterWorker::getPhone, phone)
|
.eq(MasterWorker::getIsDelete, 0).one();
|
if (null == masterWorker) {
|
return R.fail("当前手机号未注册!");
|
}
|
return R.ok(sendSmsService.workerLoginSms(phone));
|
}
|
|
/**
|
* 师傅端-修改手机号时校验新手机号是否已注册
|
*
|
* @param phone 订单记录id
|
*/
|
@ApiOperation(value = "师傅端-修改手机号时校验新手机号是否已注册", tags = {"发送短信"})
|
@GetMapping(value = "/checkPhone")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "手机号", name = "phone", dataType = "String", required = true)
|
})
|
public R<String> checkPhone(@RequestParam String phone) {
|
MasterWorker masterWorker = masterWorkerService.lambdaQuery()
|
.eq(MasterWorker::getPhone, phone)
|
.eq(MasterWorker::getIsDelete, 0).one();
|
if (null != masterWorker) {
|
return R.fail("新手机号已注册!");
|
}
|
return R.ok(sendSmsService.workerLoginSms(phone));
|
}
|
|
/**
|
* 师傅端-忘记密码
|
*
|
* @param phone 订单记录id
|
*/
|
@ApiOperation(value = "师傅端-忘记密码", tags = {"发送短信"})
|
@GetMapping(value = "/passwordCheckPhone")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "手机号", name = "phone", dataType = "String", required = true)
|
})
|
public R<String> passwordCheckPhone(@RequestParam String phone) {
|
MasterWorker masterWorker = masterWorkerService.lambdaQuery()
|
.eq(MasterWorker::getPhone, phone)
|
.eq(MasterWorker::getIsDelete, 0).one();
|
if (null == masterWorker) {
|
return R.fail("手机号未注册!");
|
}
|
return R.ok();
|
}
|
|
/**
|
* 师傅端-发送登录验证码短信
|
*
|
* @param phone 订单记录id
|
*/
|
@ApiOperation(value = "师傅端-发送入驻验证码短信", tags = {"发送短信"})
|
@GetMapping(value = "/workerSettleSms")
|
@ApiImplicitParams({
|
@ApiImplicitParam(value = "手机号", name = "phone", dataType = "String", required = true)
|
})
|
public R<String> workerSettleSms(@RequestParam String phone) {
|
// 校验该手机号是否已经生成账号
|
MasterWorker masterWorker = masterWorkerService.lambdaQuery()
|
.eq(MasterWorker::getPhone, phone)
|
.eq(MasterWorker::getIsDelete, 0).one();
|
WorkerProcess workerProcess = workerProcessService.lambdaQuery()
|
.eq(WorkerProcess::getPhone, phone)
|
.eq(WorkerProcess::getIsDelete, 0)
|
.orderByDesc(WorkerProcess::getCreateTime).last("limit 1").one();
|
if (masterWorker != null){
|
return R.fail("该手机号入驻申请已通过,请前往登录!");
|
}
|
if (null != workerProcess) {
|
Integer state = workerProcess.getState();
|
if (Constants.ZERO.equals(state)) {
|
return R.fail("该手机号已提交入驻申请,请等待审核!");
|
} else if (Constants.ONE.equals(state) && null != masterWorker) {
|
return R.fail("该手机号入驻申请已通过,请前往登录!");
|
}
|
}
|
return R.ok(sendSmsService.workerSettleSms(phone));
|
}
|
|
}
|