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 dispatchSms(@RequestParam String orderId) { com.ruoyi.order.api.entity.Order order = orderClient.detail(orderId).getData(); 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 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 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 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 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 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)); } }