|
|
@@ -1,7 +1,5 @@
|
|
|
package org.dromara.backstage.business.self;
|
|
|
|
|
|
-import cn.hutool.core.date.DateUtil;
|
|
|
-
|
|
|
import cn.hutool.core.codec.Base64;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
@@ -22,7 +20,9 @@ import org.dromara.backstage.payment.service.IPayOrderService;
|
|
|
import org.dromara.backstage.task.AsyncTaskService;
|
|
|
import org.dromara.common.core.api.ReturnResult;
|
|
|
import org.dromara.common.core.domain.R;
|
|
|
-import org.dromara.common.core.enums.*;
|
|
|
+import org.dromara.common.core.enums.CreditStatusEnum;
|
|
|
+import org.dromara.common.core.enums.CreditTypeEnum;
|
|
|
+import org.dromara.common.core.enums.ResultCodeEnum;
|
|
|
import org.dromara.common.core.exception.ApiException;
|
|
|
import org.dromara.common.redis.utils.RedisUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
@@ -77,14 +77,14 @@ public class SelfBusiness {
|
|
|
|
|
|
String loginUrl = smsApi + "sms/api/v1/login";
|
|
|
HttpRequest req = HttpUtil.createPost(loginUrl);
|
|
|
- try(HttpResponse res = req.body(JSONUtil.toJsonStr(mapAccount)).execute()) {
|
|
|
+ try (HttpResponse res = req.body(JSONUtil.toJsonStr(mapAccount)).execute()) {
|
|
|
ReturnResult result = JSONUtil.toBean(res.body(), ReturnResult.class);
|
|
|
log.info("[短信平台登录]-{}", JSONUtil.toJsonStr(result));
|
|
|
- if(result.isSuccess()){
|
|
|
+ if (result.isSuccess()) {
|
|
|
RedisUtils.deleteObject("yktSmsToken");
|
|
|
RedisUtils.setCacheObject("yktSmsToken", result.getData().toString(), Duration.ofHours(24));
|
|
|
}
|
|
|
- } catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
log.error("登录短信平台失败,{}", e.getMessage());
|
|
|
}
|
|
|
|
|
|
@@ -92,11 +92,12 @@ public class SelfBusiness {
|
|
|
|
|
|
/**
|
|
|
* 发送短信
|
|
|
- * @param phone 电话号码
|
|
|
+ *
|
|
|
+ * @param phone 电话号码
|
|
|
* @param message 发送内容
|
|
|
*/
|
|
|
public void sendSms(String phone, String message) {
|
|
|
- if(!RedisUtils.hasKey("yktSmsToken")){
|
|
|
+ if (!RedisUtils.hasKey("yktSmsToken")) {
|
|
|
loginSms();
|
|
|
}
|
|
|
asyncTaskService.asyncSendSms(phone, message);
|
|
|
@@ -104,92 +105,73 @@ public class SelfBusiness {
|
|
|
|
|
|
/**
|
|
|
* 发送有房间信息的入住信息
|
|
|
- * @param phone 电话
|
|
|
- * @param realName 姓名
|
|
|
+ *
|
|
|
+ * @param phone 电话
|
|
|
+ * @param realName 姓名
|
|
|
* @param className 班级名
|
|
|
- * @param roomCode 房间号
|
|
|
+ * @param roomCode 房间号
|
|
|
*/
|
|
|
- public void sendSmsHasRoom(String phone,String realName,String className,String roomCode){
|
|
|
- sendSms(phone, String.format(messageHasRoom.replace("rn", "\r\n"), realName, className,roomCode));
|
|
|
+ public void sendSmsHasRoom(String phone, String realName, String className, String roomCode) {
|
|
|
+ sendSms(phone, String.format(messageHasRoom.replace("rn", "\r\n"), realName, className, roomCode));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送没有房间的入住信息
|
|
|
- * @param phone 电话
|
|
|
- * @param realName 姓名
|
|
|
+ *
|
|
|
+ * @param phone 电话
|
|
|
+ * @param realName 姓名
|
|
|
* @param className 班级名
|
|
|
*/
|
|
|
- public void sendSmsNoRoom(String phone,String realName,String className){
|
|
|
+ public void sendSmsNoRoom(String phone, String realName, String className) {
|
|
|
sendSms(phone, String.format(messageNoRoom.replace("rn", "\r\n"), realName, className));
|
|
|
}
|
|
|
+
|
|
|
public R<Map<String, String>> getWechatRechargeQrCode(Map<String, String> mapParams) throws Exception {
|
|
|
- int workStationNumb = Integer.parseInt(mapParams.get("workStationNumb"));
|
|
|
- String userId = mapParams.get("userId");
|
|
|
- String userXm = mapParams.get("userXm");
|
|
|
- String deptName = mapParams.get("deptName");
|
|
|
- String deptId = mapParams.get("deptId");
|
|
|
- String mobile = mapParams.get("mobile");
|
|
|
- BigDecimal dealValue = new BigDecimal(mapParams.get("dealValue"));
|
|
|
-
|
|
|
- String callBackUrl = rechargeBackUrl + "/result/";
|
|
|
- PayOrderBo payOrderBo = new PayOrderBo();
|
|
|
- payOrderBo.setCreditTime(DateUtil.date());
|
|
|
- payOrderBo.setCreditType(CreditTypeEnum.WECHAT_RECHARGE.code().toString());
|
|
|
- payOrderBo.setPayStyle(PayStyleEnum.WECHAT.code().toString());
|
|
|
- payOrderBo.setPayStatus(PayStatusEnum.UNPAID.code().toString());
|
|
|
- payOrderBo.setReceiptMoney(dealValue);
|
|
|
- payOrderBo.setCreditStatus(CreditStatusEnum.CREATE.code().toString());
|
|
|
- payOrderBo.setTitle(CreditTypeEnum.WECHAT_RECHARGE.message());
|
|
|
- payOrderBo.setBackUrl(callBackUrl);
|
|
|
- payOrderBo.setRealName(userXm);
|
|
|
- payOrderBo.setUserId(Long.parseLong(userId));
|
|
|
- payOrderBo.setPhone(mobile);
|
|
|
- payOrderBo.setDeptName(deptName);
|
|
|
- payOrderBo.setDeptId(Long.parseLong(deptId));
|
|
|
- payOrderBo.setCreateBy(Long.parseLong(userId));
|
|
|
- payOrderBo.setCreateTime(DateUtil.date());
|
|
|
-
|
|
|
- R<Map<String,String>> getResult = thirdPayBusiness.createCollectQrCode(payOrderBo);
|
|
|
+ R<Map<String, String>> getResult = thirdPayBusiness.createCollectQrCode(mapParams);
|
|
|
if (R.isSuccess(getResult)) {
|
|
|
return getResult;
|
|
|
}
|
|
|
return R.fail(getResult.getMsg());
|
|
|
+
|
|
|
+
|
|
|
//return createQrCode(creditType, userId, userXm, deptId, deptName, mobile, dealValue, callBackUrl);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据人员Id和部门Id查询第三方支付订单的支付情况
|
|
|
+ *
|
|
|
* @param deptId 部门Id
|
|
|
* @param userId 人员Id
|
|
|
* @return 支付结果
|
|
|
*/
|
|
|
- public ReturnResult queryPayResultByUserAndDept(Long deptId,Long userId){
|
|
|
+ public ReturnResult queryPayResultByUserAndDept(Long deptId, Long userId) {
|
|
|
PayOrderBo bo = new PayOrderBo();
|
|
|
bo.setUserId(userId);
|
|
|
bo.setDeptId(deptId);
|
|
|
|
|
|
List<PayOrderVo> vos = wxOrderService.queryList(bo);
|
|
|
- if(CollectionUtil.isEmpty(vos)){
|
|
|
+ if (CollectionUtil.isEmpty(vos)) {
|
|
|
return ReturnResult.failure(ResultCodeEnum.DATA_NOT_FOUND,
|
|
|
- MessageFormat.format("无对应的支付订单,部门Id:{0},人员Id:{1}", deptId, userId));
|
|
|
+ MessageFormat.format("无对应的支付订单,部门Id:{0},人员Id:{1}", deptId, userId));
|
|
|
}
|
|
|
String errMsg = String.format("[支付结果查询]-[deptId:%s,userId:%s]-[订单尚未支付成功]", deptId, userId);
|
|
|
- PayOrderVo vo = vos.stream().filter(p-> ObjectUtil.equals(p.getCreditStatus(),"Y")).findFirst()
|
|
|
- .orElseThrow(() -> new ApiException(errMsg));
|
|
|
+ PayOrderVo vo = vos.stream().filter(p -> ObjectUtil.equals(p.getCreditStatus(), "Y")).findFirst()
|
|
|
+ .orElseThrow(() -> new ApiException(errMsg));
|
|
|
|
|
|
- return ReturnResult.success(YcVoConvert.ycWxOrderConvert(vo));
|
|
|
+ return ReturnResult.success(YcVoConvert.ycWxOrderConvert(vo));
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 根据第三方订单号查询订单入账结果
|
|
|
+ *
|
|
|
* @param orderSn 订单号
|
|
|
* @return 入账结果
|
|
|
*/
|
|
|
- public ReturnResult getCreditBackByOrderSn(String orderSn){
|
|
|
+ public ReturnResult getCreditBackByOrderSn(String orderSn) {
|
|
|
XfCreditAccountBackBo bo = new XfCreditAccountBackBo();
|
|
|
bo.setOriginalId(orderSn);
|
|
|
List<XfCreditAccountBackVo> vos = creditAccountBackService.queryList(bo);
|
|
|
- if(CollectionUtil.isEmpty(vos)){
|
|
|
+ if (CollectionUtil.isEmpty(vos)) {
|
|
|
return ReturnResult.failure(ResultCodeEnum.DATA_NOT_FOUND);
|
|
|
}
|
|
|
if (ObjectUtil.notEqual((vos.get(0).getCreditStatus()), CreditStatusEnum.SUCCESS.code())) {
|
|
|
@@ -197,31 +179,33 @@ public class SelfBusiness {
|
|
|
}
|
|
|
return ReturnResult.success();
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
- * 请求生成微信收款二维码
|
|
|
- * @param creditType 交易类型
|
|
|
- * @param userId 人员Id
|
|
|
- * @param userXm 人员姓名
|
|
|
- * @param deptId 部门Id
|
|
|
- * @param deptName 部门名称
|
|
|
- * @param mobile 手机号
|
|
|
- * @param dealValue 充值金额
|
|
|
+ * 请求生成微信收款二维码
|
|
|
+ *
|
|
|
+ * @param creditType 交易类型
|
|
|
+ * @param userId 人员Id
|
|
|
+ * @param userXm 人员姓名
|
|
|
+ * @param deptId 部门Id
|
|
|
+ * @param deptName 部门名称
|
|
|
+ * @param mobile 手机号
|
|
|
+ * @param dealValue 充值金额
|
|
|
* @param callBackUrl 回调地址
|
|
|
* @return 二维码
|
|
|
*/
|
|
|
- private ReturnResult createQrCode(CreditTypeEnum creditType, String userId, String userXm, String deptId, String deptName, String mobile, BigDecimal dealValue, String callBackUrl){
|
|
|
+ private ReturnResult createQrCode(CreditTypeEnum creditType, String userId, String userXm, String deptId, String deptName, String mobile, BigDecimal dealValue, String callBackUrl) {
|
|
|
String sendUrl = payApi + "?title=" + CreditTypeEnum.WECHAT_RECHARGE.message() + "&userId=" + userId
|
|
|
- + "&name=" + userXm
|
|
|
- + "&deptName=" + deptName
|
|
|
- + "&deptId=" + deptId
|
|
|
- + "&mobile=" + Base64.encode(mobile)
|
|
|
- + "&amount=" + dealValue
|
|
|
- + "&dealType=" + creditType.code()
|
|
|
- + "&callBackUrl=" + callBackUrl;
|
|
|
+ + "&name=" + userXm
|
|
|
+ + "&deptName=" + deptName
|
|
|
+ + "&deptId=" + deptId
|
|
|
+ + "&mobile=" + Base64.encode(mobile)
|
|
|
+ + "&amount=" + dealValue
|
|
|
+ + "&dealType=" + creditType.code()
|
|
|
+ + "&callBackUrl=" + callBackUrl;
|
|
|
HttpRequest req = HttpUtil.createGet(sendUrl);
|
|
|
- try(HttpResponse res = req.execute()){
|
|
|
+ try (HttpResponse res = req.execute()) {
|
|
|
return JSONUtil.toBean(res.body(), ReturnResult.class);
|
|
|
- }catch (Exception e){
|
|
|
+ } catch (Exception e) {
|
|
|
throw new ApiException("生成微信收款码错误", ResultCodeEnum.INTERFACE_OUTER_INVOKE_ERROR.code());
|
|
|
}
|
|
|
}
|