liurunyu
2024-04-02 0eaef592517ced667ed16413f9d22ab677915101
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java
@@ -1,5 +1,8 @@
package com.dy.pipIrrSell.client;
import com.alibaba.fastjson2.JSONObject;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.dy.common.aop.SsoAop;
import com.dy.common.webUtil.BaseResponse;
import com.dy.common.webUtil.BaseResponseUtils;
@@ -8,6 +11,9 @@
import com.dy.pipIrrGlobal.pojoBa.BaClient;
import com.dy.pipIrrGlobal.pojoSe.SeClient;
import com.dy.pipIrrGlobal.voSe.VoClient;
import com.dy.pipIrrSell.result.SellResultCode;
import com.dy.pipIrrSell.sms.AliyunSmsSv;
import com.dy.pipIrrSell.sms.RandomCode;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Content;
import io.swagger.v3.oas.annotations.media.Schema;
@@ -38,6 +44,8 @@
@RequiredArgsConstructor
public class ClientCtrl {
    private final ClientSv clientSv;
    private final AliyunSmsSv aliyunSmsSv;
    //private final RedisUtils redisUtils;
    /**
     * 获取农户列表
@@ -324,4 +332,82 @@
        }
        return BaseResponseUtils.buildSuccess(map_WaterTypes);
    }
    /**
     * 发送验证码
     * @param phoneNumber
     * @return
     */
    @Operation(summary = "发送验证码", description = "发送验证码")
    @ApiResponses(value = {
            @ApiResponse(
                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
                    description = "操作结果:true:成功,false:失败(BaseResponse.content)",
                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
                            schema = @Schema(implementation = Boolean.class))}
            )
    })
    @PostMapping(path = "send_sms")
    @SsoAop()
    public BaseResponse<Boolean> sendSms(@RequestParam(name = "phoneNumber", required = true) String phoneNumber) throws ClientException {
        if(phoneNumber == null || phoneNumber.length() <= 0) {
            return BaseResponseUtils.buildFail(SellResultCode.PHONE_NUMBER_CANNOT_BE_NULL.getMessage());
        }
        // 生成6位验证码并转为Json格式
        String securityCode = String.valueOf(RandomCode.genCode());
        JSONObject param = new JSONObject();
        param.put("code", securityCode);
        String templateParam = param.toJSONString();
        //redisUtils.set(phoneNumber, securityCode, 60);
        SendSmsResponse response = aliyunSmsSv.sendSms(phoneNumber, templateParam);
        if (response.getCode().equals("OK")) {
            // 发送成功处理逻辑
            return BaseResponseUtils.buildSuccess(true) ;
        } else {
            // 发送失败处理逻辑
            return BaseResponseUtils.buildFail(SellResultCode.SECURITY_CODE_SEND_FAIL.getMessage()) ;
        }
    }
    /**
     * 校验验证码
     * @param phoneNumber
     * @param code
     * @return
     * @throws ClientException
     */
    @Operation(summary = "校验验证码", description = "校验验证码")
    @ApiResponses(value = {
            @ApiResponse(
                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
                    description = "操作结果:true:成功,false:失败(BaseResponse.content)",
                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
                            schema = @Schema(implementation = Boolean.class))}
            )
    })
    @PostMapping(path = "verify")
    @SsoAop()
    public BaseResponse<Boolean> verify(@RequestParam("phoneNumber") String phoneNumber, @RequestParam("code") String code) throws ClientException {
        if(phoneNumber == null || phoneNumber.length() <= 0 || code == null || code.length() <=0) {
            return BaseResponseUtils.buildFail(SellResultCode.VERIFY_PARAMS_INCOMPLETE.getMessage());
        }
        // redis中键不存在或键值不存在则提示校验失败
        //if(!redisUtils.hasKey(phoneNumber) || redisUtils.get(phoneNumber) == null)
        //    return BaseResponseUtils.buildFail(SellResultCode.CODE_VERIFY_FAIL.getMessage());
        //
        //String code_redis = redisUtils.get(phoneNumber).toString();
        //System.out.println("--------------------: " + code_redis);
        //
        //if(code_redis != null && code_redis.equals(code)) {
        //    return BaseResponseUtils.buildSuccess(true) ;
        //}else {
        //    return BaseResponseUtils.buildFail(SellResultCode.CODE_VERIFY_FAIL.getMessage());
        //}
        return BaseResponseUtils.buildSuccess(true) ;
    }
}