|  |  | 
 |  |  | import com.dy.pipIrrGlobal.pojoSe.SeCodeVerify; | 
 |  |  | import com.dy.pipIrrGlobal.pojoSe.SeOpenId; | 
 |  |  | import com.dy.pipIrrGlobal.voSe.VoClientWechat; | 
 |  |  | import com.dy.pipIrrSell.wechatpay.PayInfo; | 
 |  |  | import com.dy.pipIrrWechat.client.dto.CodeLoginDTO; | 
 |  |  | import com.dy.pipIrrWechat.client.dto.CodeVerifyDTO; | 
 |  |  | import com.dy.pipIrrWechat.result.WechatResultCode; | 
 |  |  | import com.dy.pipIrrWechat.sms.AliyunSmsSv; | 
 |  |  | import com.dy.pipIrrWechat.sms.RandomCode; | 
 |  |  | import com.dy.pipIrrWechat.util.RestTemplateUtil; | 
 |  |  | import com.dy.pipIrrWechat.wechatpay.PayInfo; | 
 |  |  | import io.swagger.v3.oas.annotations.tags.Tag; | 
 |  |  | import jakarta.validation.Valid; | 
 |  |  | import lombok.RequiredArgsConstructor; | 
 |  |  | 
 |  |  |     private final ClientSv clientSv; | 
 |  |  |     private final AliyunSmsSv aliyunSmsSv; | 
 |  |  |     private final RestTemplateUtil restTemplateUtil; | 
 |  |  |     private final String privateCertFileName = PayInfo.privateCertFileName; | 
 |  |  |     private final String appid = PayInfo.appid; | 
 |  |  |     private final String secret = PayInfo.secret; | 
 |  |  |     //private final String appid = PayInfo.appid; | 
 |  |  |     //private final String secret = PayInfo.secret; | 
 |  |  |     private final String mchid = PayInfo.mchid; | 
 |  |  |     private final String schema = PayInfo.schema; | 
 |  |  |     private final String signType = PayInfo.signType; | 
 |  |  | 
 |  |  |  | 
 |  |  |         // 登录凭证校验 | 
 |  |  |         Map<String, Object> queryParams = new HashMap<>(); | 
 |  |  |         queryParams.put("appid", appid); | 
 |  |  |         queryParams.put("secret", secret); | 
 |  |  |         queryParams.put("appid", PayInfo.appid); | 
 |  |  |         queryParams.put("secret", PayInfo.secret); | 
 |  |  |         queryParams.put("js_code", code); | 
 |  |  |         queryParams.put("grant_type", grantType); | 
 |  |  |         Map<String, String> headerParams = new HashMap<>(); | 
 |  |  | 
 |  |  |         if(phoneNumber == null || phoneNumber.length() <= 0) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.PHONE_NUMBER_CANNOT_BE_NULL.getMessage()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Long clientId = clientSv.getClientIdByPhone(phoneNumber); | 
 |  |  |         if(clientId == null) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg("该手机号对应的农户不存在"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         // 生成6位验证码并转为Json格式 | 
 |  |  |         String securityCode = String.valueOf(RandomCode.genCode()); | 
 |  |  | 
 |  |  |  | 
 |  |  |         // 校验通过,进行登录凭证校验 | 
 |  |  |         Map<String, Object> queryParams = new HashMap<>(); | 
 |  |  |         queryParams.put("appid", appid); | 
 |  |  |         queryParams.put("secret", secret); | 
 |  |  |         queryParams.put("appid", PayInfo.appid); | 
 |  |  |         queryParams.put("secret", PayInfo.secret); | 
 |  |  |         queryParams.put("js_code", code); | 
 |  |  |         queryParams.put("grant_type", grantType); | 
 |  |  |         Map<String, String> headerParams = new HashMap<>(); | 
 |  |  | 
 |  |  |         String sessionKey = job.getString("session_key"); | 
 |  |  |  | 
 |  |  |         Long clientId = clientSv.getClientIdByPhone(phoneNumber); | 
 |  |  |         String SessionId = ""; | 
 |  |  |         String sessionId = ""; | 
 |  |  |         if(clientId != null) { | 
 |  |  |             // 添加微信用户账户记录 | 
 |  |  |             SeOpenId seOpenId = new SeOpenId(); | 
 |  |  | 
 |  |  |             //Long SessionId = clientSv.addOpenId(seOpenId); | 
 |  |  |             Long rec = clientSv.addOpenId(seOpenId); | 
 |  |  |             if(rec != null) { | 
 |  |  |                 SessionId = String.valueOf(rec); | 
 |  |  |                 sessionId = String.valueOf(rec); | 
 |  |  |             } | 
 |  |  |             return BaseResponseUtils.buildSuccess(SessionId); | 
 |  |  |  | 
 |  |  |             JSONObject job_result = new JSONObject(); | 
 |  |  |             job_result.put("clientId", String.valueOf(clientId)); | 
 |  |  |             job_result.put("sessionId", sessionId); | 
 |  |  |             return BaseResponseUtils.buildSuccess(job_result); | 
 |  |  |  | 
 |  |  |         } else { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg(WechatResultCode.PHONE_NUMBER_IS_ERROR.getMessage()); | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 解绑农户与微信的绑定,根据sessionId删除绑定记录 | 
 |  |  |      * @param sessionId | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PostMapping(path = "unbind") | 
 |  |  |     @Transactional(rollbackFor = Exception.class) | 
 |  |  |     public BaseResponse<Boolean> unbindWechat(@RequestParam("sessionId")Long sessionId) { | 
 |  |  |         if(sessionId == null || sessionId <=0) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg("sessionId无效"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Integer rec = clientSv.unbindWechat(sessionId); | 
 |  |  |         if(rec == null || rec == 0) { | 
 |  |  |             return BaseResponseUtils.buildErrorMsg("sessionId错误"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return BaseResponseUtils.buildSuccess(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 获取农户基本信息,小程序首页使用 | 
 |  |  |      * @param sessionId | 
 |  |  |      * @return |