From ae992697b443d9d64f373b8711b9aa1641b384c3 Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期三, 24 四月 2024 10:34:27 +0800 Subject: [PATCH] 2024-04-24 朱宝民 添加根据村ID获取12位行政区划编码接口 --- pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java | 185 ++++++++++++++++++++++++++++++++-------------- 1 files changed, 129 insertions(+), 56 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java index 1e5e8ed..7dea6ef 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/client/ClientCtrl.java +++ b/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,14 +11,17 @@ 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.Parameter; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; import io.swagger.v3.oas.annotations.responses.ApiResponses; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; @@ -39,6 +45,8 @@ @RequiredArgsConstructor public class ClientCtrl { private final ClientSv clientSv; + private final AliyunSmsSv aliyunSmsSv; + //private final RedisUtils redisUtils; /** * 鑾峰彇鍐滄埛鍒楄〃 @@ -62,58 +70,6 @@ return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鏌ヨ鍐滄埛寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - } - - /** - * 鑾峰彇浜ゆ槗璁板綍 - * @param vo - * @return - */ - @Operation(summary = "鑾峰緱涓�椤典氦鏄撹褰�", description = "杩斿洖涓�椤典氦鏄撹褰�") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = BaClient.class))} - ) - }) - @GetMapping(path = "getOperates") - @SsoAop() - public BaseResponse<Map> getOperates(QueryOperate vo){ - try { - Map res = clientSv.getOperates(vo); - return BaseResponseUtils.buildSuccess(res); - } catch (Exception e) { - log.error("鏌ヨ浜ゆ槗璁板綍寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - } - - /** - * 鑾峰彇浜ゆ槗姹囨�昏褰� - * @param vo - * @return - */ - @Operation(summary = "鑾峰緱涓�椤典氦鏄撴眹鎬昏褰�", description = "杩斿洖涓�椤典氦鏄撴眹鎬昏褰�") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = BaClient.class))} - ) - }) - @GetMapping(path = "getStatistics") - @SsoAop() - public BaseResponse<Map> getStatistics(QueryStatistic vo){ - try { - Map res = clientSv.getStatistics(vo); - return BaseResponseUtils.buildSuccess(res); - } catch (Exception e) { - log.error("鏌ヨ浜ゆ槗姹囨�昏褰曞紓甯�", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } @@ -163,7 +119,7 @@ @PostMapping(path = "add", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) @SsoAop() - public BaseResponse<Boolean> add(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid DtoClient po, @Parameter(hidden = true) BindingResult bindingResult){ + public BaseResponse<Boolean> add(@RequestBody @Valid DtoClient po, BindingResult bindingResult) { if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } @@ -229,7 +185,7 @@ } /** - * 鐢熸垚10涓哄啘鎴风紪鍙� + * 鐢熸垚10浣嶅啘鎴风紪鍙� * 1. 鍒板啘鎴疯〃涓煡璇�6浣嶅尯鍒掍覆寮�澶寸殑鏈�澶х殑鍐滄埛缂栧彿 * 2. 鏄惁鍙栧埌璁板綍 * 2.1 鍙栧埌 @@ -273,7 +229,7 @@ @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) @SsoAop() - public BaseResponse<Boolean> update(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid DtoClient po, @Parameter(hidden = true) BindingResult bindingResult){ + public BaseResponse<Boolean> update(@RequestBody @Valid DtoClient po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } @@ -377,4 +333,121 @@ } return BaseResponseUtils.buildSuccess(map_WaterTypes); } + + /** + * 鍙戦�侀獙璇佺爜 + * @param phoneNumber + * @return + */ + @Operation(summary = "鍙戦�侀獙璇佺爜", description = "鍙戦�侀獙璇佺爜") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝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浣嶉獙璇佺爜骞惰浆涓篔son鏍煎紡 + 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 = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝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) ; + } + + /** + * 鏍规嵁鏉慖D鑾峰彇12浣嶈鏀垮尯鍒� + * @param villageId + * @return + */ + @Operation(summary = "鏍规嵁鏉慖D鑾峰彇12浣嶈鏀垮尯鍒�", description = "鏍规嵁鏉慖D鑾峰彇12浣嶈鏀垮尯鍒�") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + @GetMapping(path = "district") + @SsoAop() + public BaseResponse<Boolean> getDistrictNum(@RequestParam("villageId") @NotNull(message = "鏉戠紪鍙蜂笉鑳戒负绌�") Long villageId){ + /** + * 鑾峰彇5绾ц鏀垮尯鍒掍俊鎭� + */ + Map map_districts = Optional.ofNullable(clientSv.getDistrictsByVillageId(villageId)).orElse(new HashMap()); + if(map_districts.size() <= 0) { + return BaseResponseUtils.buildFail("鍖哄垝淇℃伅鏈夎"); + } + + String provinceNum = map_districts.get("provinceNum").toString(); + String cityNum = map_districts.get("cityNum").toString(); + String countyNum = map_districts.get("countyNum").toString(); + String townNum = map_districts.get("townNum").toString(); + String villageNum = map_districts.get("villageNum").toString(); + + // 鐢熸垚12浣�5绾ц鏀垮尯鍒掔紪鐮佷覆鍙婂悕绉颁覆 + Long districtNum = Long.parseLong(provinceNum + cityNum + countyNum + townNum + villageNum); + + Map map = new HashMap(); + map.put("districtNum", districtNum); + return BaseResponseUtils.buildSuccess(map) ; + } } -- Gitblit v1.8.0