10-12更新:
1.设备充值debug 2.新增登录手机号配置
This commit is contained in:
parent
a1204272be
commit
c1aa9ac39d
|
@ -17,6 +17,8 @@ import com.ruoyi.ss.store.service.StoreService;
|
||||||
import com.ruoyi.ss.user.service.ISmUserService;
|
import com.ruoyi.ss.user.service.ISmUserService;
|
||||||
import com.ruoyi.ss.account.service.AccountService;
|
import com.ruoyi.ss.account.service.AccountService;
|
||||||
import com.ruoyi.ss.account.domain.enums.AccountType;
|
import com.ruoyi.ss.account.domain.enums.AccountType;
|
||||||
|
import com.ruoyi.system.domain.SysConfig;
|
||||||
|
import com.ruoyi.system.domain.enums.config.ConfigKey;
|
||||||
import com.ruoyi.system.service.*;
|
import com.ruoyi.system.service.*;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
@ -85,6 +87,9 @@ public class SysLoginService
|
||||||
@Autowired
|
@Autowired
|
||||||
private WxAuthService wxAuthService;
|
private WxAuthService wxAuthService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISysConfigService sysConfigService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录验证
|
* 登录验证
|
||||||
*
|
*
|
||||||
|
@ -261,19 +266,26 @@ public class SysLoginService
|
||||||
WxMaJscode2SessionResult wxMaJscode2SessionResult = wxAuthService.wxJsCode2Session(body.getLoginCode());
|
WxMaJscode2SessionResult wxMaJscode2SessionResult = wxAuthService.wxJsCode2Session(body.getLoginCode());
|
||||||
ServiceUtil.assertion(wxMaJscode2SessionResult == null, "获取微信openId失败");
|
ServiceUtil.assertion(wxMaJscode2SessionResult == null, "获取微信openId失败");
|
||||||
|
|
||||||
// 通过openId查询用户,判断是否微信用户
|
// 通过openId查询用户
|
||||||
String openId = wxMaJscode2SessionResult.getOpenid();
|
String openId = wxMaJscode2SessionResult.getOpenid();
|
||||||
SmUser user = smUserService.selectSmUserByWxOpenId(openId);
|
SmUser user = smUserService.selectSmUserByWxOpenId(openId);
|
||||||
|
|
||||||
// 不是微信用户,则使用openId进行注册
|
// 若用户不存在,则使用openId进行注册
|
||||||
if (user == null || Objects.equals(user.getDelFlag(), UserStatus.DELETED.getCode())) {
|
if (user == null || Objects.equals(user.getDelFlag(), UserStatus.DELETED.getCode())) {
|
||||||
user = registerWx(openId);
|
// 获取手机号
|
||||||
|
boolean loginWithPhone = sysConfigService.getBoolean(ConfigKey.ARRIVAL_DELAY);
|
||||||
|
String mobile = null;
|
||||||
|
if (loginWithPhone && StringUtils.hasText(body.getMobileCode())) {
|
||||||
|
mobile = this.getWxPhoneNumber(body.getMobileCode());
|
||||||
|
}
|
||||||
|
// 用户注册
|
||||||
|
user = registerWx(openId, mobile);
|
||||||
}
|
}
|
||||||
ServiceUtil.assertion(user == null, "用户不存在");
|
ServiceUtil.assertion(user == null, "用户不存在");
|
||||||
|
|
||||||
Authentication authentication = null;
|
Authentication authentication = null;
|
||||||
try {
|
try {
|
||||||
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(openId, Constants.CUSTOM_LOGIN_WX);
|
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUserId(), Constants.CUSTOM_LOGIN_WX);
|
||||||
// 用户名和密码等信息保存在一个上下文中,只要是同一线程等会就能拿到用户名和密码,也就是能在loadUserByUsername(String username)方法中进行密码验证等
|
// 用户名和密码等信息保存在一个上下文中,只要是同一线程等会就能拿到用户名和密码,也就是能在loadUserByUsername(String username)方法中进行密码验证等
|
||||||
AuthenticationContextHolder.setContext(authenticationToken);
|
AuthenticationContextHolder.setContext(authenticationToken);
|
||||||
// 把用户登录类型放在上下文中的details属性中,在UserDetailsServiceImpl.loadUserByUsername中获取
|
// 把用户登录类型放在上下文中的details属性中,在UserDetailsServiceImpl.loadUserByUsername中获取
|
||||||
|
@ -298,7 +310,7 @@ public class SysLoginService
|
||||||
* 注册微信用户
|
* 注册微信用户
|
||||||
* @param openId 微信OpenId
|
* @param openId 微信OpenId
|
||||||
*/
|
*/
|
||||||
private SmUser registerWx(String openId) {
|
private SmUser registerWx(String openId, String mobile) {
|
||||||
if (StringUtils.isBlank(openId)) {
|
if (StringUtils.isBlank(openId)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -309,6 +321,7 @@ public class SysLoginService
|
||||||
SmUser newUser = new SmUser();
|
SmUser newUser = new SmUser();
|
||||||
newUser.setUserName(name);
|
newUser.setUserName(name);
|
||||||
newUser.setWxOpenId(openId);
|
newUser.setWxOpenId(openId);
|
||||||
|
newUser.setPhonenumber(mobile);
|
||||||
smUserService.insertSmUser(newUser);
|
smUserService.insertSmUser(newUser);
|
||||||
|
|
||||||
// 添加微信账户
|
// 添加微信账户
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class UserDetailsServiceImpl implements UserDetailsService
|
||||||
return createLoginUser(user);
|
return createLoginUser(user);
|
||||||
} else if(Constants.USER_TYPE_WX.equals(userType)) {
|
} else if(Constants.USER_TYPE_WX.equals(userType)) {
|
||||||
// app 用户微信登录
|
// app 用户微信登录
|
||||||
SmUser user = smUserService.selectSmUserByWxOpenId(username);
|
SmUser user = smUserService.selectSmUserByUserId(Long.parseLong(username));
|
||||||
this.checkUser(user, username);
|
this.checkUser(user, username);
|
||||||
return createLoginUser(user);
|
return createLoginUser(user);
|
||||||
} else if(Constants.USER_TYPE_APP.equals(userType)) {
|
} else if(Constants.USER_TYPE_APP.equals(userType)) {
|
||||||
|
|
|
@ -25,7 +25,8 @@ public enum ConfigKey {
|
||||||
ORDER_AUTO_CLOSE_CD("order.auto.close.cd", "订单自动关闭冷却时间(分)"),
|
ORDER_AUTO_CLOSE_CD("order.auto.close.cd", "订单自动关闭冷却时间(分)"),
|
||||||
RISK_WITHDRAW_TIME("risk.withdraw.time", "风控订单和提现相隔时长(分钟)"),
|
RISK_WITHDRAW_TIME("risk.withdraw.time", "风控订单和提现相隔时长(分钟)"),
|
||||||
RISK_WITHDRAW_COUNT("risk.withdraw.count", "累计风险次数"),
|
RISK_WITHDRAW_COUNT("risk.withdraw.count", "累计风险次数"),
|
||||||
RISK_WITHDRAW_ENABLED("risk.withdraw.enabled", "是否开启提现风控");
|
RISK_WITHDRAW_ENABLED("risk.withdraw.enabled", "是否开启提现风控"),
|
||||||
|
LOGIN_WITH_PHONE("login.with.phone", "登录是否需要手机号");
|
||||||
|
|
||||||
private final String key;
|
private final String key;
|
||||||
private final String msg;
|
private final String msg;
|
||||||
|
|
|
@ -12,6 +12,7 @@ import com.ruoyi.ss.device.domain.enums.DeviceServiceMode;
|
||||||
import com.ruoyi.ss.device.domain.vo.DeviceVO;
|
import com.ruoyi.ss.device.domain.vo.DeviceVO;
|
||||||
import com.ruoyi.ss.device.service.DeviceService;
|
import com.ruoyi.ss.device.service.DeviceService;
|
||||||
import com.ruoyi.ss.device.service.DeviceValidator;
|
import com.ruoyi.ss.device.service.DeviceValidator;
|
||||||
|
import com.ruoyi.ss.model.domain.enums.ModelTag;
|
||||||
import com.ruoyi.ss.store.service.StoreValidator;
|
import com.ruoyi.ss.store.service.StoreValidator;
|
||||||
import com.ruoyi.ss.suit.service.SuitValidator;
|
import com.ruoyi.ss.suit.service.SuitValidator;
|
||||||
import org.eclipse.jetty.util.StringUtil;
|
import org.eclipse.jetty.util.StringUtil;
|
||||||
|
|
|
@ -310,6 +310,10 @@ public class TransactionBill extends BaseEntity implements Payable
|
||||||
@ApiModelProperty("套餐押金")
|
@ApiModelProperty("套餐押金")
|
||||||
private BigDecimal suitDeposit;
|
private BigDecimal suitDeposit;
|
||||||
|
|
||||||
|
@Excel(name = "设备开启状态描述")
|
||||||
|
@ApiModelProperty("设备开启状态描述")
|
||||||
|
private String openMsg;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取价格(分)
|
* 获取价格(分)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -134,7 +134,7 @@ public interface TransactionBillMapper
|
||||||
*/
|
*/
|
||||||
int paying(Long billId);
|
int paying(Long billId);
|
||||||
|
|
||||||
int updateDeviceRechargeStatus(@Param("billId") Long billId, @Param("status") String status);
|
int updateDeviceRechargeStatus(@Param("billId") Long billId, @Param("status") String status, @Param("openMsg") String openMsg);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改设备充值状态
|
* 修改设备充值状态
|
||||||
|
|
|
@ -77,6 +77,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
stb.suit_void_result,
|
stb.suit_void_result,
|
||||||
stb.suit_void_msg,
|
stb.suit_void_msg,
|
||||||
stb.suit_deposit,
|
stb.suit_deposit,
|
||||||
|
stb.open_msg,
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<sql id="selectSmTransactionBillVo">
|
<sql id="selectSmTransactionBillVo">
|
||||||
|
@ -199,6 +200,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="query.agentMobile != null and query.agentMobile != ''"> and stb.agent_mobile like concat('%', #{query.agentMobile}, '%')</if>
|
<if test="query.agentMobile != null and query.agentMobile != ''"> and stb.agent_mobile like concat('%', #{query.agentMobile}, '%')</if>
|
||||||
<if test="query.suitEnabledVoid != null "> and stb.suit_enabled_void = #{query.suitEnabledVoid}</if>
|
<if test="query.suitEnabledVoid != null "> and stb.suit_enabled_void = #{query.suitEnabledVoid}</if>
|
||||||
<if test="query.suitVoidResult != null and query.suitVoidResult != ''"> and stb.suit_void_result = #{query.suitVoidResult}</if>
|
<if test="query.suitVoidResult != null and query.suitVoidResult != ''"> and stb.suit_void_result = #{query.suitVoidResult}</if>
|
||||||
|
<if test="query.openMsg != null and query.openMsg != ''"> and stb.open_msg like concat('%', #{query.openMsg}, '%')</if>
|
||||||
<if test="query.isUsing != null">
|
<if test="query.isUsing != null">
|
||||||
<if test="query.isUsing">
|
<if test="query.isUsing">
|
||||||
and <include refid="isUsing"/>
|
and <include refid="isUsing"/>
|
||||||
|
@ -482,6 +484,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="suitVoidResult != null">suit_void_result,</if>
|
<if test="suitVoidResult != null">suit_void_result,</if>
|
||||||
<if test="suitVoidMsg != null">suit_void_msg,</if>
|
<if test="suitVoidMsg != null">suit_void_msg,</if>
|
||||||
<if test="suitDeposit != null">suit_deposit,</if>
|
<if test="suitDeposit != null">suit_deposit,</if>
|
||||||
|
<if test="openMsg != null">open_msg,</if>
|
||||||
</trim>
|
</trim>
|
||||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||||
<if test="billNo != null">#{billNo},</if>
|
<if test="billNo != null">#{billNo},</if>
|
||||||
|
@ -547,6 +550,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="suitVoidResult != null">#{suitVoidResult},</if>
|
<if test="suitVoidResult != null">#{suitVoidResult},</if>
|
||||||
<if test="suitVoidMsg != null">#{suitVoidMsg},</if>
|
<if test="suitVoidMsg != null">#{suitVoidMsg},</if>
|
||||||
<if test="suitDeposit != null">#{suitDeposit},</if>
|
<if test="suitDeposit != null">#{suitDeposit},</if>
|
||||||
|
<if test="openMsg != null">#{openMsg},</if>
|
||||||
</trim>
|
</trim>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
@ -629,7 +633,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="data.suitVoidMinute != null">stb.suit_void_minute = #{data.suitVoidMinute},</if>
|
<if test="data.suitVoidMinute != null">stb.suit_void_minute = #{data.suitVoidMinute},</if>
|
||||||
<if test="data.suitVoidResult != null">stb.suit_void_result = #{data.suitVoidResult},</if>
|
<if test="data.suitVoidResult != null">stb.suit_void_result = #{data.suitVoidResult},</if>
|
||||||
<if test="data.suitVoidMsg != null">stb.suit_void_msg = #{data.suitVoidMsg},</if>
|
<if test="data.suitVoidMsg != null">stb.suit_void_msg = #{data.suitVoidMsg},</if>
|
||||||
<if test="data.suitDeposit != null">suit_deposit = #{data.suitDeposit},</if>
|
<if test="data.suitDeposit != null">stb.suit_deposit = #{data.suitDeposit},</if>
|
||||||
|
<if test="data.openMsg != null">stb.open_msg = #{data.openMsg},</if>
|
||||||
</sql>
|
</sql>
|
||||||
|
|
||||||
<update id="updateByQuery">
|
<update id="updateByQuery">
|
||||||
|
@ -724,8 +729,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
<update id="updateDeviceRechargeStatus">
|
<update id="updateDeviceRechargeStatus">
|
||||||
update sm_transaction_bill
|
update sm_transaction_bill
|
||||||
set device_recharge_status = #{status}
|
set device_recharge_status = #{status},
|
||||||
where bill_id = #{billId} and `type` = '1' and device_recharge_status not in('1', '3')
|
open_msg = #{openMsg}
|
||||||
|
where bill_id = #{billId}
|
||||||
|
and `type` = '1'
|
||||||
|
and device_recharge_status not in('1', '3')
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="updateDeviceRechargeStatusByIds">
|
<update id="updateDeviceRechargeStatusByIds">
|
||||||
|
|
|
@ -9,6 +9,7 @@ import com.ruoyi.ss.payBill.domain.PayBillVO;
|
||||||
import com.ruoyi.ss.payBill.interfaces.AfterPay;
|
import com.ruoyi.ss.payBill.interfaces.AfterPay;
|
||||||
import com.ruoyi.ss.transactionBill.domain.TransactionBill;
|
import com.ruoyi.ss.transactionBill.domain.TransactionBill;
|
||||||
import com.ruoyi.ss.transactionBill.domain.TransactionBillQuery;
|
import com.ruoyi.ss.transactionBill.domain.TransactionBillQuery;
|
||||||
|
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillDeviceRechargeStatus;
|
||||||
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillStatus;
|
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillStatus;
|
||||||
import com.ruoyi.ss.transactionBill.domain.vo.TransactionBillVO;
|
import com.ruoyi.ss.transactionBill.domain.vo.TransactionBillVO;
|
||||||
import com.ruoyi.ss.transactionBill.service.TransactionBillService;
|
import com.ruoyi.ss.transactionBill.service.TransactionBillService;
|
||||||
|
@ -58,21 +59,36 @@ public class RechargeDepositAfterPay implements AfterPay {
|
||||||
data.setStatus(TransactionBillStatus.SUCCESS_DEPOSIT.getStatus());
|
data.setStatus(TransactionBillStatus.SUCCESS_DEPOSIT.getStatus());
|
||||||
data.setDepositPayId(payBill.getPayId());
|
data.setDepositPayId(payBill.getPayId());
|
||||||
data.setPayTime(DateUtils.toDate(payBill.getPayTime()));
|
data.setPayTime(DateUtils.toDate(payBill.getPayTime()));
|
||||||
|
data.setDeviceRechargeStatus(TransactionBillDeviceRechargeStatus.SUCCESS.getStatus());
|
||||||
|
data.setOpenMsg("成功");
|
||||||
TransactionBillQuery query = new TransactionBillQuery();
|
TransactionBillQuery query = new TransactionBillQuery();
|
||||||
query.setBillId(bill.getBillId());
|
query.setBillId(bill.getBillId());
|
||||||
query.setStatus(TransactionBillStatus.UNPAID_DEPOSIT.getStatus());
|
query.setStatus(TransactionBillStatus.UNPAID_DEPOSIT.getStatus());
|
||||||
int update = transactionBillService.updateByQuery(data, query);
|
int update = transactionBillService.updateByQuery(data, query);
|
||||||
ServiceUtil.assertion(update != 1, "修改订单信息失败,状态已经发生改变:%s", bill.getBillNo());
|
ServiceUtil.assertion(update != 1, "修改订单信息失败,状态已经发生改变:%s", bill.getBillNo());
|
||||||
|
|
||||||
try {
|
this.openDevice(bill.getBillId(), device);
|
||||||
iotService.open(device);
|
|
||||||
} catch (Exception e) {
|
|
||||||
log.error(e.getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
return update;
|
return update;
|
||||||
});
|
});
|
||||||
|
|
||||||
return result == null ? 0 : result;
|
return result == null ? 0 : result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开启设备
|
||||||
|
*/
|
||||||
|
private int openDevice(Long billId, DeviceVO device) {
|
||||||
|
try {
|
||||||
|
iotService.open(device);
|
||||||
|
return 1;
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
TransactionBill data = new TransactionBill();
|
||||||
|
data.setDeviceRechargeStatus(TransactionBillDeviceRechargeStatus.FAIL.getStatus());
|
||||||
|
data.setOpenMsg(e.getMessage());
|
||||||
|
data.setBillId(billId);
|
||||||
|
return transactionBillService.updateSmTransactionBill(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@ import com.ruoyi.ss.suit.domain.enums.SuitFeeType;
|
||||||
import com.ruoyi.ss.transactionBill.domain.TransactionBill;
|
import com.ruoyi.ss.transactionBill.domain.TransactionBill;
|
||||||
import com.ruoyi.ss.transactionBill.domain.TransactionBillQuery;
|
import com.ruoyi.ss.transactionBill.domain.TransactionBillQuery;
|
||||||
import com.ruoyi.ss.transactionBill.domain.bo.PaySuccessBO;
|
import com.ruoyi.ss.transactionBill.domain.bo.PaySuccessBO;
|
||||||
|
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillDeviceRechargeStatus;
|
||||||
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillStatus;
|
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillStatus;
|
||||||
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillType;
|
import com.ruoyi.ss.transactionBill.domain.enums.TransactionBillType;
|
||||||
import com.ruoyi.ss.transactionBill.domain.vo.TransactionBillVO;
|
import com.ruoyi.ss.transactionBill.domain.vo.TransactionBillVO;
|
||||||
|
|
|
@ -74,6 +74,7 @@ import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ScheduledExecutorService;
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -846,23 +847,25 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
||||||
|
|
||||||
ServiceUtil.assertion(TransactionBillDeviceRechargeStatus.BLUETOOTH.getStatus().equals(bill.getDeviceRechargeStatus()), "设备已选择蓝牙充值,请使用蓝牙进行充值");
|
ServiceUtil.assertion(TransactionBillDeviceRechargeStatus.BLUETOOTH.getStatus().equals(bill.getDeviceRechargeStatus()), "设备已选择蓝牙充值,请使用蓝牙进行充值");
|
||||||
|
|
||||||
|
// 设备开启状态描述
|
||||||
|
AtomicReference<String> openMsg = new AtomicReference<>("成功");
|
||||||
|
|
||||||
Boolean result = transactionTemplate.execute(status -> {
|
Boolean result = transactionTemplate.execute(status -> {
|
||||||
// 刷新设备数据
|
// 刷新设备数据
|
||||||
deviceService.pullDeviceInfo(bill.getDeviceId());
|
deviceService.pullDeviceInfo(bill.getDeviceId());
|
||||||
|
|
||||||
DeviceVO device = deviceService.selectById(bill.getDeviceId());
|
DeviceVO device = deviceService.selectById(bill.getDeviceId());
|
||||||
|
|
||||||
// 如果设备离线,则直接返回失败
|
|
||||||
if (DeviceOnlineStatus.OFFLINE.getStatus().equals(device.getOnlineStatus())) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新套餐使用信息
|
// 更新套餐使用信息
|
||||||
int updateInfo = this.updateSuitInfoBeforeDevice(bill, device);
|
int updateInfo = this.updateSuitInfoBeforeDevice(bill, device);
|
||||||
ServiceUtil.assertion(updateInfo != 1, "更新套餐使用信息失败");
|
ServiceUtil.assertion(updateInfo != 1, "更新套餐使用信息失败");
|
||||||
|
|
||||||
// 修改设备充值状态:成功
|
// 修改设备充值状态:成功
|
||||||
int updateRecharge = transactionBillMapper.updateDeviceRechargeStatus(bill.getBillId(), TransactionBillDeviceRechargeStatus.SUCCESS.getStatus());
|
int updateRecharge = transactionBillMapper.updateDeviceRechargeStatus(
|
||||||
|
bill.getBillId(),
|
||||||
|
TransactionBillDeviceRechargeStatus.SUCCESS.getStatus(),
|
||||||
|
openMsg.get()
|
||||||
|
);
|
||||||
ServiceUtil.assertion(updateRecharge != 1, "设备充值状态发生变化,请稍后重试");
|
ServiceUtil.assertion(updateRecharge != 1, "设备充值状态发生变化,请稍后重试");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -886,6 +889,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// 失败,回滚
|
// 失败,回滚
|
||||||
status.setRollbackOnly();
|
status.setRollbackOnly();
|
||||||
|
openMsg.set(e.getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -898,7 +902,11 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
||||||
this.recordTime(bill, "用户充值订单:" + bill.getBillNo());
|
this.recordTime(bill, "用户充值订单:" + bill.getBillNo());
|
||||||
} else {
|
} else {
|
||||||
// 修改设备充值状态为失败
|
// 修改设备充值状态为失败
|
||||||
transactionBillMapper.updateDeviceRechargeStatus(billId, TransactionBillDeviceRechargeStatus.FAIL.getStatus());
|
transactionBillMapper.updateDeviceRechargeStatus(
|
||||||
|
billId,
|
||||||
|
TransactionBillDeviceRechargeStatus.FAIL.getStatus(),
|
||||||
|
openMsg.get()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return success;
|
return success;
|
||||||
|
@ -1356,6 +1364,9 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
||||||
// 计算智能时长的使用金额
|
// 计算智能时长的使用金额
|
||||||
private BigDecimal calcSmartTimeAmount(TransactionBillVO order, LocalDateTime endTime) {
|
private BigDecimal calcSmartTimeAmount(TransactionBillVO order, LocalDateTime endTime) {
|
||||||
LocalDateTime startTime = order.getSuitStartTime();
|
LocalDateTime startTime = order.getSuitStartTime();
|
||||||
|
if (startTime == null) {
|
||||||
|
startTime = LocalDateTime.now();
|
||||||
|
}
|
||||||
Duration between = Duration.between(startTime, endTime);
|
Duration between = Duration.between(startTime, endTime);
|
||||||
|
|
||||||
SuitTimeUnit unit = SuitTimeUnit.getByValue(order.getSuitTimeUnit());
|
SuitTimeUnit unit = SuitTimeUnit.getByValue(order.getSuitTimeUnit());
|
||||||
|
@ -1614,6 +1625,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
||||||
// 更新设备充值状态
|
// 更新设备充值状态
|
||||||
TransactionBill data = new TransactionBill();
|
TransactionBill data = new TransactionBill();
|
||||||
data.setDeviceRechargeStatus(TransactionBillDeviceRechargeStatus.SUCCESS.getStatus());
|
data.setDeviceRechargeStatus(TransactionBillDeviceRechargeStatus.SUCCESS.getStatus());
|
||||||
|
data.setOpenMsg("蓝牙充值成功");
|
||||||
TransactionBillQuery query = new TransactionBillQuery();
|
TransactionBillQuery query = new TransactionBillQuery();
|
||||||
query.setBillId(bill.getBillId());
|
query.setBillId(bill.getBillId());
|
||||||
query.setType(TransactionBillType.RECHARGE.getType());
|
query.setType(TransactionBillType.RECHARGE.getType());
|
||||||
|
@ -1627,7 +1639,7 @@ public class TransactionBillServiceImpl implements TransactionBillService, After
|
||||||
int updateInfo = this.updateSuitInfoBeforeDevice(bill, device);
|
int updateInfo = this.updateSuitInfoBeforeDevice(bill, device);
|
||||||
ServiceUtil.assertion(updateInfo != 1, "更新套餐使用信息失败");
|
ServiceUtil.assertion(updateInfo != 1, "更新套餐使用信息失败");
|
||||||
|
|
||||||
// 修改剩余时间失败
|
// 修改剩余时间
|
||||||
boolean addTime = deviceService.addTime(bill.getDeviceId(), transactionBillConverter.toRechargeSeconds(bill), false);
|
boolean addTime = deviceService.addTime(bill.getDeviceId(), transactionBillConverter.toRechargeSeconds(bill), false);
|
||||||
ServiceUtil.assertion(!addTime, "修改剩余时间失败");
|
ServiceUtil.assertion(!addTime, "修改剩余时间失败");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user