ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/dto/TApplyChargingPileDTO.java
New file @@ -0,0 +1,15 @@ package com.ruoyi.chargingPile.api.dto; import com.ruoyi.chargingPile.api.model.TApplyChargingPile; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "TApplyChargingPileDTO对象",description = "申请建桩") public class TApplyChargingPileDTO extends TApplyChargingPile { @ApiModelProperty(value = "验证码") private String code; } ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/Constants.java
@@ -128,9 +128,13 @@ public static final String DATE_FORMATTER_TIME = "yyyy-MM-dd HH:mm:ss"; public static final String DATE_FORMATTER_DATE = "yyyy-MM-dd"; /** * 后缀 * 修改手机号后缀 */ public static final String APPLET = "_applet"; public static final String UPDATE_PHONE = "_updatePhone"; /** * 申请建桩后缀 */ public static final String APPLY_CHARGING = "_applyCharging"; /** * 定时任务违规的字符 */ ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/constant/MsgConstants.java
@@ -11,6 +11,8 @@ public static final String SEND_URL = "http://112.35.1.155:1992/sms/tmpsubmit"; /** 更换手机号短信验证码 TEMPLATE_ID */ public static final String CODE_TEMPLATE_ID = "5bf3949463e54c03a25c6fce3ad48139"; /** 建桩申请短信验证码 TEMPLATE_ID */ public static final String APPLY_TEMPLATE_ID = "5bf3949463e54c03a25c6fce3ad48139"; /** 停车占位提醒 TEMPLATE_ID */ public static final String STOP_TEMPLATE_ID = "4940ce98a3f94f67aa9f5cd2d4e05cbd"; @@ -22,6 +24,8 @@ public static final String FAULT_TEMPLATE_ID = "37956469a14a47e484a747a1e7e462de"; /** 更换手机号短信验证码 AP_ID */ public static final String CODE_AP_ID = "GH123"; /** 建桩短信验证码 AP_ID */ public static final String APPLY_AP_ID = "JZ123"; /** 停车占位提醒 AP_ID */ public static final String STOP_AP_ID = "TC123"; ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/MsgUtil.java
@@ -49,6 +49,40 @@ return encode; } /** * 更换手机号:【签名】验证码:XXX,用于更换手机号。请勿转发。 * @param phone 手机号 * @param code 验证码 * @return */ public static String applyCodeMsg(String phone,String code){ SubmitTempletReq submitReq = new SubmitTempletReq(); String[] paramss = {code}; submitReq.setApId(MsgConstants.APPLY_AP_ID); submitReq.setEcName(ecName); submitReq.setSecretKey(secretKey); submitReq.setParams(JSON.toJSONString(paramss)); submitReq.setMobiles(phone); submitReq.setAddSerial(""); submitReq.setSign(sign); submitReq.setTemplateId(MsgConstants.APPLY_TEMPLATE_ID); StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append(submitReq.getEcName()); stringBuffer.append(submitReq.getApId()); stringBuffer.append(submitReq.getSecretKey()); stringBuffer.append(submitReq.getTemplateId()); stringBuffer.append(submitReq.getMobiles()); stringBuffer.append(submitReq.getParams()); stringBuffer.append(submitReq.getSign()); stringBuffer.append(submitReq.getAddSerial()); submitReq.setMac(MD5Util.getMD5(stringBuffer.toString())); String reqText = JSON.toJSONString(submitReq); //加密 String encode = Base64.encodeBase64String(reqText.getBytes()); System.err.println(encode); return encode; } /** * 停车占位提醒:车辆已在3小时前完成充电,请及时取车,避免长时间占用充电资源。 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -615,7 +615,7 @@ @ApiOperation(value = "更换手机号", tags = {"小程序-用户管理-更换手机号"}) @PostMapping(value = "/user/updatePhone") public AjaxResult<String> updatePhone(@Validated @RequestBody UpdatePhoneDTO dto) { String code = redisService.getCacheObject(dto.getPhone() + Constants.APPLET); String code = redisService.getCacheObject(dto.getPhone() + Constants.UPDATE_PHONE); if(StringUtils.isEmpty(code)){ return AjaxResult.error("验证码已过期,请重新获取验证码!"); } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/CodeController.java
@@ -42,7 +42,7 @@ return AjaxResult.error("该手机号已绑定账号"); } String code = MsgUtil.createCode(); redisService.setCacheObject(phone+ Constants.APPLET,code,5L, TimeUnit.MINUTES); redisService.setCacheObject(phone+ Constants.UPDATE_PHONE,code,5L, TimeUnit.MINUTES); String reqStr = MsgUtil.codeMsg(phone, code); String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr); // 记录短信发送 @@ -50,4 +50,23 @@ return AjaxResult.success(result); } /** * 获取验证码 * * @param phone 手机号 * @return 结果 */ @ApiOperation(value = "获取验证码",notes = "获取验证码",tags = {"申请建桩"}) @GetMapping("getApplyCode") public AjaxResult getApplyCode(@RequestParam("phone") String phone) { String code = MsgUtil.createCode(); redisService.setCacheObject(phone+ Constants.APPLY_CHARGING,code,5L, TimeUnit.MINUTES); String reqStr = MsgUtil.applyCodeMsg(phone, code); String result = HttpUtils.post(MsgConstants.SEND_URL, reqStr); // 记录短信发送 chargingPileNotificationService.saveData(1,null,null,phone,"验证码:"+code+",用于申请建桩。请勿转发。"); return AjaxResult.success(result); } } ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -11,15 +11,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.chargingPile.api.dto.ApplyChargingQuery; import com.ruoyi.chargingPile.api.dto.ApplyChargingRemarkDto; import com.ruoyi.chargingPile.api.dto.TApplyChargingPileDTO; import com.ruoyi.chargingPile.api.model.TApplyChargingPile; import com.ruoyi.chargingPile.dto.TApplyChargingPileExportDto; import com.ruoyi.chargingPile.service.TApplyChargingPileService; import com.ruoyi.common.core.constant.Constants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.OperatorType; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.common.security.service.TokenService; import io.swagger.annotations.ApiOperation; import org.apache.commons.codec.CharEncoding; @@ -51,11 +54,13 @@ private final TApplyChargingPileService applyChargingPileService; private final TokenService tokenService; private final RedisService redisService; @Autowired public TApplyChargingPileController(TApplyChargingPileService applyChargingPileService, TokenService tokenService) { public TApplyChargingPileController(TApplyChargingPileService applyChargingPileService, TokenService tokenService, RedisService redisService) { this.applyChargingPileService = applyChargingPileService; this.tokenService = tokenService; this.redisService = redisService; } /** @@ -64,7 +69,15 @@ @Log(title = "建桩申请", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE) @ApiOperation(tags = {"小程序-建桩申请"},value = "建桩申请") @PostMapping(value = "/add") public AjaxResult<Boolean> add(@RequestBody TApplyChargingPile dto) { public AjaxResult<Boolean> add(@RequestBody TApplyChargingPileDTO dto) { // 验证验证码 String code = redisService.getCacheObject(dto.getLandlordPhone() + Constants.APPLY_CHARGING); if(StringUtils.isEmpty(code)){ return AjaxResult.error("验证码已过期,请重新获取验证码!"); } if(!code.equals(dto.getCode())){ return AjaxResult.error("验证码错误!"); } // 用户id Long userId = tokenService.getLoginUserApplet().getUserId(); dto.setAppUserId(userId); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingPileController.java
@@ -65,7 +65,7 @@ * 查询充电桩列表 */ @ApiOperation(tags = {"小程序-充电桩"},value = "通过站点id查询充电桩列表") @PostMapping(value = "/list") @GetMapping(value = "/list") @ApiImplicitParams({ @ApiImplicitParam(name = "siteId", value = "站点id") })