From 675ccd51874f9c005285eab3e4829e451848b4b6 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 07 六月 2023 11:11:29 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-user/src/main/java/com/java110/user/cmd/user/UserSendSmsCmd.java |  102 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 101 insertions(+), 1 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/cmd/user/UserSendSmsCmd.java b/service-user/src/main/java/com/java110/user/cmd/user/UserSendSmsCmd.java
index 4e563fa..5d43373 100644
--- a/service-user/src/main/java/com/java110/user/cmd/user/UserSendSmsCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/user/UserSendSmsCmd.java
@@ -1,4 +1,104 @@
 package com.java110.user.cmd.user;
 
-public class UserSendSmsCmd {
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.SendSmsFactory;
+import com.java110.dto.msg.SmsDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.intf.common.ISmsInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
+import com.java110.utils.cache.CommonCache;
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.MappingConstant;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
+import com.java110.utils.util.ValidatorUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.Date;
+import java.util.List;
+
+@Java110Cmd(serviceCode = "user.userSendSms")
+public class UserSendSmsCmd extends Cmd {
+
+    //鍩�
+    public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
+
+    public static final String ID_CARD_SWITCH = "ID_CARD_SWITCH";
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+    @Autowired
+    private ISmsInnerServiceSMO smsInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+//super.validatePageInfo(reqJson);
+        Assert.hasKeyAndValue(reqJson, "tel", "蹇呭~锛岃濉啓鎵嬫満鍙�");
+
+        if (!ValidatorUtil.isMobile(reqJson.getString("tel"))) {
+            throw new IllegalArgumentException("鎵嬫満鍙锋牸寮忛敊璇�");
+        }
+
+        //鏍¢獙鏄惁鏈夋湁鏁堢殑楠岃瘉鐮�
+        String smsCode = CommonCache.getValue(reqJson.getString("tel") + SendSmsFactory.VALIDATE_CODE);
+
+        if (!StringUtil.isEmpty(smsCode) && smsCode.contains("-")) {
+            long oldTime = Long.parseLong(smsCode.substring(smsCode.indexOf("-"), smsCode.length()));
+            long nowTime = new Date().getTime();
+            if (nowTime - oldTime < 1000 * 60 * 2) {
+                throw new IllegalArgumentException("璇蜂笉瑕侀噸澶嶅彂閫侀獙璇佺爜");
+            }
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        String tel = reqJson.getString("tel");
+        String captchaType = reqJson.getString("captchaType");
+        if(!StringUtil.isEmpty(captchaType) && "ownerBinding".equals(captchaType)){
+            OwnerDto ownerDto = new OwnerDto();
+            ownerDto.setCommunityId(reqJson.getString("communityId"));
+            ownerDto.setName(reqJson.getString("appUserName"));
+            ownerDto.setLink(reqJson.getString("tel"));
+
+            //鍙栧嚭寮�鍏虫槧灏勭殑鍊�
+            String val = MappingCache.getValue(DOMAIN_COMMON, ID_CARD_SWITCH);
+            //鍙栧嚭韬唤璇�
+            String idCardErrorMsg ="";
+            String idCard = reqJson.getString("idCard");
+            if ("1".equals(val) && !StringUtil.isEmpty(idCard)) {
+                ownerDto.setIdCard(idCard);
+                idCardErrorMsg="鎴栬�呰韩浠借瘉鍙�";
+            }
+            List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+            Assert.listOnlyOne(ownerDtos, "濉啓涓氫富淇℃伅閿欒锛岃纭锛岄鐣欎笟涓诲鍚嶃�佹墜鏈哄彿"+idCardErrorMsg+"淇℃伅鏄惁姝g‘锛�");
+        }
+        //鏍¢獙鏄惁浼犱簡 鍒嗛〉淇℃伅
+        String msgCode = SendSmsFactory.generateMessageCode(6);
+        SmsDto smsDto = new SmsDto();
+        smsDto.setTel(tel);
+        smsDto.setCode(msgCode);
+        if ("ON".equals(MappingCache.getValue(MappingConstant.SMS_DOMAIN,SendSmsFactory.SMS_SEND_SWITCH))) {
+            smsDto = smsInnerServiceSMOImpl.send(smsDto);
+        } else {
+            CommonCache.setValue(smsDto.getTel() + SendSmsFactory.VALIDATE_CODE, smsDto.getCode().toLowerCase() + "-" + new Date().getTime(), CommonCache.defaultExpireTime);
+            smsDto.setSuccess(true);
+            smsDto.setMsg("鎮ㄧ殑楠岃瘉鐮佷负" + msgCode);
+        }
+        ResponseEntity<String> sendMessageResult = new ResponseEntity<String>(smsDto.getMsg(), smsDto.isSuccess() ? HttpStatus.OK : HttpStatus.BAD_REQUEST);
+        context.setResponseEntity(sendMessageResult);
+
+    }
 }

--
Gitblit v1.8.0