更改购买套餐包扣款
This commit is contained in:
parent
d8f87d7806
commit
6ca0ab65a6
@ -94,7 +94,7 @@ public class AccountRechargeController extends DefaultBaseController {
|
|||||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||||
@PutMapping("update/{accountRechargeId}/{result}")
|
@PutMapping("update/{accountRechargeId}/{result}")
|
||||||
@CheckRequestBodyAnnotation
|
@CheckRequestBodyAnnotation
|
||||||
public SuccessResult update(@PathVariable("accountRechargeId") String accountRechargeId, @PathVariable("result") String result, @RequestBody AccountRechargeVO accountRechargeVO) {
|
public synchronized SuccessResult update(@PathVariable("accountRechargeId") String accountRechargeId, @PathVariable("result") String result, @RequestBody AccountRechargeVO accountRechargeVO) {
|
||||||
accountRechargeService.updateRecharge(accountRechargeId, result, accountRechargeVO);
|
accountRechargeService.updateRecharge(accountRechargeId, result, accountRechargeVO);
|
||||||
return new SuccessResult();
|
return new SuccessResult();
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,8 @@ public class AccountItemVO {
|
|||||||
|
|
||||||
@ApiModelProperty(name = "accountId", value = "关联账户ID")
|
@ApiModelProperty(name = "accountId", value = "关联账户ID")
|
||||||
private String accountId;
|
private String accountId;
|
||||||
|
@ApiModelProperty(name = "accountItemId", value = "关联账户流水ID")
|
||||||
|
private String accountItemId;
|
||||||
@ApiModelProperty(name = "accountBeforeMoney", value = "动账前余额")
|
@ApiModelProperty(name = "accountBeforeMoney", value = "动账前余额")
|
||||||
@CheckNumberAnnotation(name = "动账前余额")
|
@CheckNumberAnnotation(name = "动账前余额")
|
||||||
private Integer accountBeforeMoney;
|
private Integer accountBeforeMoney;
|
||||||
@ -42,6 +44,13 @@ public class AccountItemVO {
|
|||||||
private String checkStatus;
|
private String checkStatus;
|
||||||
private Integer isPostpaid;
|
private Integer isPostpaid;
|
||||||
|
|
||||||
|
public String getAccountItemId() {
|
||||||
|
return accountItemId == null ? "" : accountItemId.trim();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccountItemId(String accountItemId) {
|
||||||
|
this.accountItemId = accountItemId;
|
||||||
|
}
|
||||||
|
|
||||||
public String getOrderType() {
|
public String getOrderType() {
|
||||||
return orderType == null ? "" : orderType.trim();
|
return orderType == null ? "" : orderType.trim();
|
||||||
|
@ -197,5 +197,7 @@ public interface IPackageOrderService {
|
|||||||
|
|
||||||
void updateOrder(PackageOrderAppVO packageOrderVO);
|
void updateOrder(PackageOrderAppVO packageOrderVO);
|
||||||
|
|
||||||
|
Boolean updateOrder2(PackageOrderAppVO packageOrderVO);
|
||||||
|
|
||||||
void updateClose(String packageNo);
|
void updateClose(String packageNo);
|
||||||
}
|
}
|
@ -191,40 +191,66 @@ public class PackageOrderServiceImpl extends DefaultBaseService implements IPack
|
|||||||
private IAccountItemService iAccountItemService;
|
private IAccountItemService iAccountItemService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateOrder(PackageOrderAppVO packageOrderVO) {
|
public Boolean updateOrder2(PackageOrderAppVO packageOrderVO) {
|
||||||
PackageOrderDTO orderDTO = getByPackageNo(packageOrderVO.getAccountRechargeId());
|
PackageOrderDTO orderDTO = getByPackageNo(packageOrderVO.getAccountRechargeId());
|
||||||
if(orderDTO.getPackagePayStatus().equals("1")) { // 当前状态已经是已支付的不做操作
|
if(orderDTO.getPackagePayStatus().equals("1")) { // 当前状态已经是已支付的不做操作
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
PackageInfoAppDTO infoAppDTO = orderDTO.getPackageInfoAppDTO();
|
PackageInfoAppDTO infoAppDTO = orderDTO.getPackageInfoAppDTO();
|
||||||
// 仅限购买1次的
|
// 仅限购买1次的
|
||||||
if(infoAppDTO.equals("single")) {
|
if(infoAppDTO.getPackageMode().equals("single")) {
|
||||||
List<PackageOrderDTO> list = list(packageOrderVO.getPackageInfoId(), orderDTO.getCreator());
|
List<PackageOrderDTO> list = list(orderDTO.getPackageInfoId(), orderDTO.getCreator());
|
||||||
Boolean exists = false;
|
Boolean exists = false;
|
||||||
for(PackageOrderDTO dto : list) {
|
for(PackageOrderDTO dto : list) {
|
||||||
if(dto.getPackagePayStatus().equals("1")) {
|
if(dto.getPackagePayStatus().equals("1")) {
|
||||||
exists = true;
|
exists = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!exists) {
|
if (exists) {
|
||||||
Map<String, Object> params = super.getHashMap(2);
|
return false;
|
||||||
params.put("packageNo", packageOrderVO.getAccountRechargeId());// 关联支付
|
|
||||||
params.put("packageAccountItem", packageOrderVO.getPackageAccountItem()); // 关联扣款流水
|
|
||||||
params.put("packagePayStatus", "1"); // 已支付
|
|
||||||
params.put("packagePay", DateUtil.getTime()); // 支付时间
|
|
||||||
packageOrderDao.updatePay(params);
|
|
||||||
}
|
}
|
||||||
}else{
|
|
||||||
/**
|
|
||||||
* 1. 更改到账时间 , 状态
|
|
||||||
*/
|
|
||||||
Map<String, Object> params = super.getHashMap(2);
|
|
||||||
params.put("packageNo", packageOrderVO.getAccountRechargeId());// 关联支付
|
|
||||||
params.put("packageAccountItem", packageOrderVO.getPackageAccountItem()); // 关联扣款流水
|
|
||||||
params.put("packagePayStatus", "1"); // 已支付
|
|
||||||
params.put("packagePay", DateUtil.getTime()); // 支付时间
|
|
||||||
packageOrderDao.updatePay(params);
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 1. 更改到账时间 , 状态
|
||||||
|
*/
|
||||||
|
Map<String, Object> params = super.getHashMap(2);
|
||||||
|
params.put("packageNo", packageOrderVO.getAccountRechargeId());// 关联支付
|
||||||
|
params.put("packageAccountItem", packageOrderVO.getPackageAccountItem()); // 关联扣款流水
|
||||||
|
params.put("packagePayStatus", "1"); // 已支付
|
||||||
|
params.put("packagePay", DateUtil.getTime()); // 支付时间
|
||||||
|
packageOrderDao.updatePay(params);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateOrder(PackageOrderAppVO packageOrderVO) {
|
||||||
|
PackageOrderDTO orderDTO = getByPackageNo(packageOrderVO.getAccountRechargeId());
|
||||||
|
if(orderDTO.getPackagePayStatus().equals("1")) { // 当前状态已经是已支付的不做操作
|
||||||
|
throw new SaveException("该套餐订单已购买");
|
||||||
|
}
|
||||||
|
PackageInfoAppDTO infoAppDTO = orderDTO.getPackageInfoAppDTO();
|
||||||
|
// 仅限购买1次的
|
||||||
|
if(infoAppDTO.getPackageMode().equals("single")) {
|
||||||
|
List<PackageOrderDTO> list = list(orderDTO.getPackageInfoId(), orderDTO.getCreator());
|
||||||
|
Boolean exists = false;
|
||||||
|
for(PackageOrderDTO dto : list) {
|
||||||
|
if(dto.getPackagePayStatus().equals("1")) {
|
||||||
|
exists = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (exists) {
|
||||||
|
throw new SaveException("该套餐只允许购买一次");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 1. 更改到账时间 , 状态
|
||||||
|
*/
|
||||||
|
Map<String, Object> params = super.getHashMap(2);
|
||||||
|
params.put("packageNo", packageOrderVO.getAccountRechargeId());// 关联支付
|
||||||
|
params.put("packageAccountItem", packageOrderVO.getPackageAccountItem()); // 关联扣款流水
|
||||||
|
params.put("packagePayStatus", "1"); // 已支付
|
||||||
|
params.put("packagePay", DateUtil.getTime()); // 支付时间
|
||||||
|
packageOrderDao.updatePay(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -56,7 +56,7 @@ public class AccountItemServiceImpl extends DefaultBaseService implements IAccou
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized String saveReturnId(String token, AccountItemVO accountItemVO) {
|
public synchronized String saveReturnId(String token, AccountItemVO accountItemVO) {
|
||||||
String accountItemId = UUIDUtil.getUUID();
|
String accountItemId = StringUtils.isEmpty(accountItemVO.getAccountItemId()) ? UUIDUtil.getUUID() : accountItemVO.getAccountItemId();
|
||||||
/**
|
/**
|
||||||
* 找出账户
|
* 找出账户
|
||||||
*/
|
*/
|
||||||
|
@ -8,6 +8,7 @@ import cn.com.tenlion.operator.enums.RechargeTypeEnum;
|
|||||||
import cn.com.tenlion.operator.enums.ReconciliationStatusEnum;
|
import cn.com.tenlion.operator.enums.ReconciliationStatusEnum;
|
||||||
import cn.com.tenlion.operator.enums.ThirdPartyEnum;
|
import cn.com.tenlion.operator.enums.ThirdPartyEnum;
|
||||||
import cn.com.tenlion.operator.pojo.bos.accountrecharge.AccountRechargeBO;
|
import cn.com.tenlion.operator.pojo.bos.accountrecharge.AccountRechargeBO;
|
||||||
|
import cn.com.tenlion.operator.pojo.dtos.account.AccountDTO;
|
||||||
import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargeDTO;
|
import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargeDTO;
|
||||||
import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargePayDTO;
|
import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargePayDTO;
|
||||||
import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargePayResultDTO;
|
import cn.com.tenlion.operator.pojo.dtos.accountrecharge.AccountRechargePayResultDTO;
|
||||||
@ -21,6 +22,7 @@ import cn.com.tenlion.operator.pojo.vos.packageorder.PackageOrderAppVO;
|
|||||||
import cn.com.tenlion.operator.properties.SystemApiPathProperties;
|
import cn.com.tenlion.operator.properties.SystemApiPathProperties;
|
||||||
import cn.com.tenlion.operator.service.packageinfo.IPackageInfoService;
|
import cn.com.tenlion.operator.service.packageinfo.IPackageInfoService;
|
||||||
import cn.com.tenlion.operator.service.packageorder.IPackageOrderService;
|
import cn.com.tenlion.operator.service.packageorder.IPackageOrderService;
|
||||||
|
import cn.com.tenlion.operator.serviceother.operator.account.IAccountService;
|
||||||
import cn.com.tenlion.operator.serviceother.operator.accountitem.IAccountItemService;
|
import cn.com.tenlion.operator.serviceother.operator.accountitem.IAccountItemService;
|
||||||
import cn.com.tenlion.operator.serviceother.operator.accountrecharge.IAccountRechargeService;
|
import cn.com.tenlion.operator.serviceother.operator.accountrecharge.IAccountRechargeService;
|
||||||
import cn.com.tenlion.operator.service.user.info.IUserInfoService;
|
import cn.com.tenlion.operator.service.user.info.IUserInfoService;
|
||||||
@ -397,6 +399,8 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA
|
|||||||
private IPackageOrderService iPackageOrderService;
|
private IPackageOrderService iPackageOrderService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IPackageInfoService iPackageInfoService;
|
private IPackageInfoService iPackageInfoService;
|
||||||
|
@Autowired
|
||||||
|
private IAccountService iAccountService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void updateCheck(String accountRechargeId, RechargeCheckEnum check, String checkRemark, String accountItemId, String orderId, String successTime) {
|
public synchronized void updateCheck(String accountRechargeId, RechargeCheckEnum check, String checkRemark, String accountItemId, String orderId, String successTime) {
|
||||||
@ -427,24 +431,33 @@ public class AccountRechargeServiceImpl extends DefaultBaseService implements IA
|
|||||||
if(!StringUtils.isEmpty(dto.getPackageInfoId()) && dto.getReconciliationStatus().equals("1") && dto.getRechargeCheck().equals("2")) {
|
if(!StringUtils.isEmpty(dto.getPackageInfoId()) && dto.getReconciliationStatus().equals("1") && dto.getRechargeCheck().equals("2")) {
|
||||||
PackageInfoDTO packageInfoDTO = iPackageInfoService.get(dto.getPackageInfoId());
|
PackageInfoDTO packageInfoDTO = iPackageInfoService.get(dto.getPackageInfoId());
|
||||||
PackageOrderDTO orderDTO = iPackageOrderService.getByPackageNo(accountRechargeId);
|
PackageOrderDTO orderDTO = iPackageOrderService.getByPackageNo(accountRechargeId);
|
||||||
/**
|
// 远程更改套餐包的付款到账状态
|
||||||
* 1. 创建流水
|
String accountItemId1 = UUIDUtil.getUUID();
|
||||||
*/
|
// 获取用户余额 , 如果不够 , 则不购买
|
||||||
AccountItemVO vo = new AccountItemVO();
|
AccountDTO accountDTO = iAccountService.get(dto.getAccountId());
|
||||||
vo.setType(2);
|
if(accountDTO.getAccountMoney() >= packageInfoDTO.getPackageMoney()) {
|
||||||
vo.setMode(2);
|
PackageOrderAppVO appVO = new PackageOrderAppVO();
|
||||||
vo.setAccountId(orderDTO.getCreator());
|
appVO.setAccountRechargeId(dto.getAccountRechargeId());
|
||||||
vo.setOrderId(orderDTO.getPackageOrderId());
|
appVO.setPackageAccountItem(accountItemId1);
|
||||||
vo.setAccountMoney(packageInfoDTO.getPackageMoney());
|
Boolean result = iPackageOrderService.updateOrder2(appVO);
|
||||||
vo.setDescription("购买" + (packageInfoDTO.getPackageType().equals("ALL") ? "全托管" : "写材料" ) + "套餐包 " + packageInfoDTO.getPackageCount() + " 件:" + packageInfoDTO.getPackageName());
|
if(result) {
|
||||||
String accountItemId1 = iAccountItemService.saveReturnId(vo);
|
AccountDTO accountDTO2 = iAccountService.get(dto.getAccountId());
|
||||||
|
if(accountDTO2.getAccountMoney() >= packageInfoDTO.getPackageMoney()) {
|
||||||
PackageOrderAppVO appVO = new PackageOrderAppVO();
|
/**
|
||||||
appVO.setPackageInfoId(dto.getPackageInfoId());
|
* 1. 创建流水
|
||||||
appVO.setUserId(dto.getCreator());
|
*/
|
||||||
appVO.setAccountRechargeId(dto.getAccountRechargeId());
|
AccountItemVO vo = new AccountItemVO();
|
||||||
appVO.setPackageAccountItem(accountItemId1);
|
vo.setAccountItemId(accountItemId1);
|
||||||
iPackageOrderService.updateOrder(appVO);
|
vo.setType(2);
|
||||||
|
vo.setMode(2);
|
||||||
|
vo.setAccountId(orderDTO.getCreator());
|
||||||
|
vo.setOrderId(orderDTO.getPackageOrderId());
|
||||||
|
vo.setAccountMoney(packageInfoDTO.getPackageMoney());
|
||||||
|
vo.setDescription("购买" + (packageInfoDTO.getPackageType().equals("ALL") ? "全托管" : "写材料" ) + "套餐包 " + packageInfoDTO.getPackageCount() + " 件:" + packageInfoDTO.getPackageName());
|
||||||
|
iAccountItemService.saveReturnId(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 绑定了套餐包 & 已对账 & 已关闭
|
// 绑定了套餐包 & 已对账 & 已关闭
|
||||||
if(!StringUtils.isEmpty(dto.getPackageInfoId()) && dto.getReconciliationStatus().equals("1") && dto.getRechargeCheck().equals("-1")) {
|
if(!StringUtils.isEmpty(dto.getPackageInfoId()) && dto.getReconciliationStatus().equals("1") && dto.getRechargeCheck().equals("-1")) {
|
||||||
|
@ -392,12 +392,12 @@
|
|||||||
)
|
)
|
||||||
OR
|
OR
|
||||||
(
|
(
|
||||||
t1.package_mode = 'single' AND t1.package_limit_users != '' AND t1.package_limit_users LIKE CONCAT('%', #{userId} ,'%') AND 1 > (SELECT COUNT(1) FROM operator_package_order t2 WHERE t1.package_info_id = t2.package_info_id AND t2.package_pay_status = '1' AND t2.creator = #{userId})
|
t1.package_mode = 'single' AND t1.package_limit_users != '' AND t1.package_limit_users LIKE CONCAT('%', #{userId} ,'%') AND 1 > (SELECT COUNT(1) FROM operator_package_order t2 WHERE t1.package_info_id = t2.package_info_id AND t2.package_pay_status = '1' AND t2.creator = #{userId})
|
||||||
)
|
)
|
||||||
OR
|
OR
|
||||||
(
|
(
|
||||||
t1.package_mode = 'single' AND t1.package_limit_users = '' AND 1 > (SELECT COUNT(1) FROM operator_package_order t2 WHERE t1.package_info_id = t2.package_info_id AND t2.package_pay_status = '1' AND t2.creator = #{userId})
|
t1.package_mode = 'single' AND t1.package_limit_users = '' AND 1 > (SELECT COUNT(1) FROM operator_package_order t2 WHERE t1.package_info_id = t2.package_info_id AND t2.package_pay_status = '1' AND t2.creator = #{userId})
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
ORDER BY t1.package_order , t1.package_onlien_time DESC
|
ORDER BY t1.package_order , t1.package_onlien_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
Loading…
Reference in New Issue
Block a user