1.代客下单 结算单打印

This commit is contained in:
SongZhang 2024-08-27 14:53:34 +08:00
parent fbe7b72e4b
commit 6dcd8368a0
1 changed files with 140 additions and 168 deletions

View File

@ -133,13 +133,12 @@ public class PayService {
private MpShopTableMapper mpShopTableMapper; private MpShopTableMapper mpShopTableMapper;
public Result queryPayType(String shopId) { public Result queryPayType(String shopId) {
return Result.success(CodeEnum.SUCCESS, tbShopPayTypeMapper.selectByShopId(shopId)); return Result.success(CodeEnum.SUCCESS, tbShopPayTypeMapper.selectByShopId(shopId));
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result scanPay(String orderId, String authCode, String ip, String token,BigDecimal payAmount,BigDecimal discountAmount) { public Result scanPay(String orderId, String authCode, String ip, String token, BigDecimal payAmount, BigDecimal discountAmount) {
if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(authCode) || ObjectUtil.isEmpty(ip)) { if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(authCode) || ObjectUtil.isEmpty(ip)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
@ -156,19 +155,18 @@ public class PayService {
} }
JSONObject tokeObj = TokenUtil.parseParamFromToken(token);
JSONObject tokeObj= TokenUtil.parseParamFromToken(token); if (Objects.isNull(tokeObj)) {
if(Objects.isNull(tokeObj)){
return Result.fail(CodeEnum.TOKENTERROR); return Result.fail(CodeEnum.TOKENTERROR);
} }
Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); Integer staffId = Integer.valueOf(tokeObj.containsKey("staffId") ? tokeObj.getString("staffId") : "0");
TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); TbPlussShopStaff staff = tbPlussShopStaffMapper.selectByPrimaryKey(staffId);
if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ if (ObjectUtil.isNotNull(staff) && ObjectUtil.isNotNull(payAmount) && ObjectUtil.isNotNull(discountAmount) && ObjectUtil.isNotEmpty(payAmount) && ObjectUtil.isNotEmpty(discountAmount)) {
if("0".equals(staff.getDiscountType())){ if ("0".equals(staff.getDiscountType())) {
if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ if (N.gt(discountAmount, staff.getMaxDiscountAmount())) {
return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT);
} }
} }
@ -202,19 +200,19 @@ public class PayService {
String payTypeCode = authCode.substring(0, 2);// 判断收款码 String payTypeCode = authCode.substring(0, 2);// 判断收款码
if(Integer.valueOf(payTypeCode)>=25&&Integer.valueOf(payTypeCode)<=30){ if (Integer.valueOf(payTypeCode) >= 25 && Integer.valueOf(payTypeCode) <= 30) {
payType = "aliPay"; payType = "aliPay";
payName = "支付宝支付"; payName = "支付宝支付";
qpay = "scanCode"; qpay = "scanCode";
}else if(Integer.valueOf(payTypeCode)>=10&&Integer.valueOf(payTypeCode)<=19){ } else if (Integer.valueOf(payTypeCode) >= 10 && Integer.valueOf(payTypeCode) <= 19) {
payType = "wechatPay"; payType = "wechatPay";
payName = "微信支付"; payName = "微信支付";
qpay = "scanCode"; qpay = "scanCode";
}else if("62".equals(payTypeCode)){ } else if ("62".equals(payTypeCode)) {
return Result.fail(CodeEnum.ERRORQR); return Result.fail(CodeEnum.ERRORQR);
}else if("01".equals(payTypeCode)){ } else if ("01".equals(payTypeCode)) {
return Result.fail(CodeEnum.ERRORQR); return Result.fail(CodeEnum.ERRORQR);
}else { } else {
return Result.fail(CodeEnum.ERRORQR); return Result.fail(CodeEnum.ERRORQR);
} }
@ -227,7 +225,7 @@ public class PayService {
if (ObjectUtil.isEmpty(payment) || payment == null) { if (ObjectUtil.isEmpty(payment) || payment == null) {
payment = new TbOrderPayment(); payment = new TbOrderPayment();
payment.setPayTypeId("ysk"); payment.setPayTypeId("ysk");
payment.setAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); payment.setAmount(ObjectUtil.isEmpty(payAmount) ? orderInfo.getOrderAmount() : payAmount);
payment.setPaidAmount(orderInfo.getPayAmount()); payment.setPaidAmount(orderInfo.getPayAmount());
payment.setHasRefundAmount(BigDecimal.ZERO); payment.setHasRefundAmount(BigDecimal.ZERO);
payment.setPayName(payName); payment.setPayName(payName);
@ -247,12 +245,12 @@ public class PayService {
} }
orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount) ? orderInfo.getOrderAmount() : payAmount);
orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount) ? BigDecimal.ZERO : discountAmount);
orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount) ? payAmount.divide(orderInfo.getOrderAmount(), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_DOWN) : null);
orderInfo.setPayType(qpay); orderInfo.setPayType(qpay);
orderInfo.setUpdatedAt(System.currentTimeMillis()); orderInfo.setUpdatedAt(System.currentTimeMillis());
orderInfo.setStaffId(ObjectUtil.isNotNull(staff)?staff.getId():null); orderInfo.setStaffId(ObjectUtil.isNotNull(staff) ? staff.getId() : null);
tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
if ("ysk".equals(thirdPayType)) { if ("ysk".equals(thirdPayType)) {
@ -295,9 +293,7 @@ public class PayService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(orderId);
producer.printMechine(orderId);
}
// 修改台桌状态 // 修改台桌状态
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>() mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
@ -323,9 +319,7 @@ public class PayService {
.eq(TbShopTable::getQrcode, orderInfo.getTableId()) .eq(TbShopTable::getQrcode, orderInfo.getTableId())
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
// 打印结算单 // 打印结算单
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(orderId);
producer.printMechine(orderId);
}
return Result.success(CodeEnum.PAYING); return Result.success(CodeEnum.PAYING);
} }
@ -374,9 +368,7 @@ public class PayService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(orderId);
producer.printMechine(orderId);
}
// 修改台桌状态 // 修改台桌状态
mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>() mpShopTableMapper.update(null, new LambdaUpdateWrapper<TbShopTable>()
.eq(TbShopTable::getQrcode, orderInfo.getTableId()) .eq(TbShopTable::getQrcode, orderInfo.getTableId())
@ -398,9 +390,7 @@ public class PayService {
.eq(TbShopTable::getQrcode, orderInfo.getTableId()) .eq(TbShopTable::getQrcode, orderInfo.getTableId())
.set(TbShopTable::getStatus, TableStateEnum.IDLE.getState())); .set(TbShopTable::getStatus, TableStateEnum.IDLE.getState()));
// 打印结算单 // 打印结算单
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(orderId);
producer.printMechine(orderId);
}
return Result.success(CodeEnum.PAYING); return Result.success(CodeEnum.PAYING);
} }
@ -501,16 +491,16 @@ public class PayService {
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result accountPay(String orderId, String memberId, String token,String memberAccount,BigDecimal payAmount,BigDecimal discountAmount) { public Result accountPay(String orderId, String memberId, String token, String memberAccount, BigDecimal payAmount, BigDecimal discountAmount) {
if (ObjectUtil.isEmpty(orderId) ) { if (ObjectUtil.isEmpty(orderId)) {
if(ObjectUtil.isEmpty(memberAccount)){ if (ObjectUtil.isEmpty(memberAccount)) {
if(ObjectUtil.isEmpty(memberId)){ if (ObjectUtil.isEmpty(memberId)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
} }
if(ObjectUtil.isEmpty(memberId)){ if (ObjectUtil.isEmpty(memberId)) {
if(ObjectUtil.isEmpty(memberAccount)){ if (ObjectUtil.isEmpty(memberAccount)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
} }
@ -529,26 +519,24 @@ public class PayService {
} }
int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), "deposit"); int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(orderInfo.getShopId(), "deposit");
if (count < 1) { if (count < 1) {
return Result.fail(CodeEnum.PAYTYPENOEXIST); return Result.fail(CodeEnum.PAYTYPENOEXIST);
} }
JSONObject tokeObj = TokenUtil.parseParamFromToken(token);
JSONObject tokeObj= TokenUtil.parseParamFromToken(token); if (Objects.isNull(tokeObj)) {
if(Objects.isNull(tokeObj)){
return Result.fail(CodeEnum.TOKENTERROR); return Result.fail(CodeEnum.TOKENTERROR);
} }
Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); Integer staffId = Integer.valueOf(tokeObj.containsKey("staffId") ? tokeObj.getString("staffId") : "0");
TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); TbPlussShopStaff staff = tbPlussShopStaffMapper.selectByPrimaryKey(staffId);
if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ if (ObjectUtil.isNotNull(staff) && ObjectUtil.isNotNull(payAmount) && ObjectUtil.isNotNull(discountAmount) && ObjectUtil.isNotEmpty(payAmount) && ObjectUtil.isNotEmpty(discountAmount)) {
if("0".equals(staff.getDiscountType())){ if ("0".equals(staff.getDiscountType())) {
if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ if (N.gt(discountAmount, staff.getMaxDiscountAmount())) {
return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT);
} }
} }
@ -556,20 +544,20 @@ public class PayService {
} }
TbShopUser user =null; TbShopUser user = null;
if(ObjectUtil.isNotEmpty(memberId)){ if (ObjectUtil.isNotEmpty(memberId)) {
user =tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(memberId)); user = tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(memberId));
} }
if(ObjectUtil.isNotEmpty(memberAccount)){ if (ObjectUtil.isNotEmpty(memberAccount)) {
if(!memberAccount.substring(0,2).equals("46")){ if (!memberAccount.substring(0, 2).equals("46")) {
return Result.fail(CodeEnum.ERRORQR); return Result.fail(CodeEnum.ERRORQR);
} }
user=tbShopUserMapper.selectByShopIdAndDdynamicCode(orderInfo.getShopId(),memberAccount); user = tbShopUserMapper.selectByShopIdAndDdynamicCode(orderInfo.getShopId(), memberAccount);
} }
@ -582,8 +570,8 @@ public class PayService {
return Result.fail(CodeEnum.MEMBERINSUFFICIENTFUNDS); return Result.fail(CodeEnum.MEMBERINSUFFICIENTFUNDS);
} }
if(ObjectUtil.isEmpty(payAmount)||ObjectUtil.isNull(payAmount)){ if (ObjectUtil.isEmpty(payAmount) || ObjectUtil.isNull(payAmount)) {
payAmount=orderInfo.getOrderAmount(); payAmount = orderInfo.getOrderAmount();
} }
user.setAmount(user.getAmount().subtract(payAmount)); user.setAmount(user.getAmount().subtract(payAmount));
user.setConsumeAmount(user.getConsumeAmount().add(payAmount)); user.setConsumeAmount(user.getConsumeAmount().add(payAmount));
@ -603,10 +591,10 @@ public class PayService {
tbShopUserFlowMapper.insert(flow); tbShopUserFlowMapper.insert(flow);
orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount) ? orderInfo.getOrderAmount() : payAmount);
orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount) ? BigDecimal.ZERO : discountAmount);
orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount) ? payAmount.divide(orderInfo.getOrderAmount(), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_DOWN) : null);
orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setStaffId(ObjectUtil.isEmpty(staff) ? null : staff.getId());
orderInfo.setUserId(user.getUserId()); orderInfo.setUserId(user.getUserId());
orderInfo.setMemberId(user.getId().toString()); orderInfo.setMemberId(user.getId().toString());
orderInfo.setPayType("deposit"); orderInfo.setPayType("deposit");
@ -630,9 +618,7 @@ public class PayService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(orderId);
producer.printMechine(orderId);
}
// 发送库存记录mq消息 // 发送库存记录mq消息
JSONObject mqData = new JSONObject(); JSONObject mqData = new JSONObject();
@ -644,7 +630,7 @@ public class PayService {
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result memberScanPay(String orderId, String memberCode, String token,BigDecimal payAmount,BigDecimal discountAmount) { public Result memberScanPay(String orderId, String memberCode, String token, BigDecimal payAmount, BigDecimal discountAmount) {
if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(memberCode)) { if (ObjectUtil.isEmpty(orderId) || ObjectUtil.isEmpty(memberCode)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
@ -667,18 +653,18 @@ public class PayService {
} }
JSONObject tokeObj= TokenUtil.parseParamFromToken(token); JSONObject tokeObj = TokenUtil.parseParamFromToken(token);
if(Objects.isNull(tokeObj)){ if (Objects.isNull(tokeObj)) {
return Result.fail(CodeEnum.TOKENTERROR); return Result.fail(CodeEnum.TOKENTERROR);
} }
Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); Integer staffId = Integer.valueOf(tokeObj.containsKey("staffId") ? tokeObj.getString("staffId") : "0");
TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); TbPlussShopStaff staff = tbPlussShopStaffMapper.selectByPrimaryKey(staffId);
if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ if (ObjectUtil.isNotNull(staff) && ObjectUtil.isNotNull(payAmount) && ObjectUtil.isNotNull(discountAmount) && ObjectUtil.isNotEmpty(payAmount) && ObjectUtil.isNotEmpty(discountAmount)) {
if("0".equals(staff.getDiscountType())){ if ("0".equals(staff.getDiscountType())) {
if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ if (N.gt(discountAmount, staff.getMaxDiscountAmount())) {
return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT);
} }
} }
@ -686,7 +672,6 @@ public class PayService {
} }
TbUserInfo tbUserInfo = tbUserInfoMapper.selectByCardNo(memberCode); TbUserInfo tbUserInfo = tbUserInfoMapper.selectByCardNo(memberCode);
if (ObjectUtil.isEmpty(tbUserInfo)) { if (ObjectUtil.isEmpty(tbUserInfo)) {
return Result.fail(ACCOUNTEIXST); return Result.fail(ACCOUNTEIXST);
@ -719,10 +704,10 @@ public class PayService {
flow.setCreateTime(new Date()); flow.setCreateTime(new Date());
tbShopUserFlowMapper.insert(flow); tbShopUserFlowMapper.insert(flow);
orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount) ? orderInfo.getOrderAmount() : payAmount);
orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount) ? BigDecimal.ZERO : discountAmount);
orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount) ? payAmount.divide(orderInfo.getOrderAmount(), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_DOWN) : null);
orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setStaffId(ObjectUtil.isEmpty(staff) ? null : staff.getId());
orderInfo.setMemberId(user.getUserId()); orderInfo.setMemberId(user.getUserId());
orderInfo.setPayType("deposit"); orderInfo.setPayType("deposit");
orderInfo.setStatus("closed"); orderInfo.setStatus("closed");
@ -745,9 +730,7 @@ public class PayService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(orderId);
producer.printMechine(orderId);
}
// 发送库存记录mq消息 // 发送库存记录mq消息
JSONObject mqData = new JSONObject(); JSONObject mqData = new JSONObject();
@ -812,8 +795,8 @@ public class PayService {
if (payAmount != null && discountAmount != null) { if (payAmount != null && discountAmount != null) {
orderInfo.setPayAmount(payAmount); orderInfo.setPayAmount(payAmount);
orderInfo.setDiscountAmount(discountAmount); orderInfo.setDiscountAmount(discountAmount);
orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount) ? payAmount.divide(orderInfo.getOrderAmount(), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_DOWN) : null);
}else { } else {
orderInfo.setPayAmount(orderInfo.getOrderAmount()); orderInfo.setPayAmount(orderInfo.getOrderAmount());
} }
@ -834,9 +817,7 @@ public class PayService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(String.valueOf(orderId));
producer.printMechine(String.valueOf(orderId));
}
// 发送库存记录mq消息 // 发送库存记录mq消息
JSONObject mqData = new JSONObject(); JSONObject mqData = new JSONObject();
@ -852,7 +833,7 @@ public class PayService {
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result cashPay(String orderId, String token,BigDecimal payAmount,BigDecimal discountAmount) { public Result cashPay(String orderId, String token, BigDecimal payAmount, BigDecimal discountAmount) {
if (ObjectUtil.isEmpty(orderId)) { if (ObjectUtil.isEmpty(orderId)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
@ -869,18 +850,18 @@ public class PayService {
} }
JSONObject tokeObj= TokenUtil.parseParamFromToken(token); JSONObject tokeObj = TokenUtil.parseParamFromToken(token);
if(Objects.isNull(tokeObj)){ if (Objects.isNull(tokeObj)) {
return Result.fail(CodeEnum.TOKENTERROR); return Result.fail(CodeEnum.TOKENTERROR);
} }
Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); Integer staffId = Integer.valueOf(tokeObj.containsKey("staffId") ? tokeObj.getString("staffId") : "0");
TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); TbPlussShopStaff staff = tbPlussShopStaffMapper.selectByPrimaryKey(staffId);
if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ if (ObjectUtil.isNotNull(staff) && ObjectUtil.isNotNull(payAmount) && ObjectUtil.isNotNull(discountAmount) && ObjectUtil.isNotEmpty(payAmount) && ObjectUtil.isNotEmpty(discountAmount)) {
if("0".equals(staff.getDiscountType())){ if ("0".equals(staff.getDiscountType())) {
if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ if (N.gt(discountAmount, staff.getMaxDiscountAmount())) {
return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT);
} }
} }
@ -893,10 +874,10 @@ public class PayService {
} }
orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount) ? orderInfo.getOrderAmount() : payAmount);
orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount) ? BigDecimal.ZERO : discountAmount);
orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setStaffId(ObjectUtil.isEmpty(staff) ? null : staff.getId());
orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount) ? payAmount.divide(orderInfo.getOrderAmount(), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_DOWN) : null);
orderInfo.setPayType("cash"); orderInfo.setPayType("cash");
orderInfo.setStatus("closed"); orderInfo.setStatus("closed");
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
@ -915,9 +896,7 @@ public class PayService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(orderId);
producer.printMechine(orderId);
}
// 发送库存记录mq消息 // 发送库存记录mq消息
JSONObject mqData = new JSONObject(); JSONObject mqData = new JSONObject();
@ -937,7 +916,7 @@ public class PayService {
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result bankPay(String orderId, String token,BigDecimal payAmount,BigDecimal discountAmount) { public Result bankPay(String orderId, String token, BigDecimal payAmount, BigDecimal discountAmount) {
if (ObjectUtil.isEmpty(orderId)) { if (ObjectUtil.isEmpty(orderId)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
@ -959,18 +938,18 @@ public class PayService {
return Result.fail(CodeEnum.PAYTYPENOEXIST); return Result.fail(CodeEnum.PAYTYPENOEXIST);
} }
JSONObject tokeObj= TokenUtil.parseParamFromToken(token); JSONObject tokeObj = TokenUtil.parseParamFromToken(token);
if(Objects.isNull(tokeObj)){ if (Objects.isNull(tokeObj)) {
return Result.fail(CodeEnum.TOKENTERROR); return Result.fail(CodeEnum.TOKENTERROR);
} }
Integer staffId=Integer.valueOf(tokeObj.containsKey("staffId")?tokeObj.getString("staffId"):"0"); Integer staffId = Integer.valueOf(tokeObj.containsKey("staffId") ? tokeObj.getString("staffId") : "0");
TbPlussShopStaff staff= tbPlussShopStaffMapper.selectByPrimaryKey(staffId); TbPlussShopStaff staff = tbPlussShopStaffMapper.selectByPrimaryKey(staffId);
if(ObjectUtil.isNotNull(staff)&&ObjectUtil.isNotNull(payAmount)&&ObjectUtil.isNotNull(discountAmount)&&ObjectUtil.isNotEmpty(payAmount)&&ObjectUtil.isNotEmpty(discountAmount)){ if (ObjectUtil.isNotNull(staff) && ObjectUtil.isNotNull(payAmount) && ObjectUtil.isNotNull(discountAmount) && ObjectUtil.isNotEmpty(payAmount) && ObjectUtil.isNotEmpty(discountAmount)) {
if("0".equals(staff.getDiscountType())){ if ("0".equals(staff.getDiscountType())) {
if(N.gt(discountAmount,staff.getMaxDiscountAmount())){ if (N.gt(discountAmount, staff.getMaxDiscountAmount())) {
return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT); return Result.fail(CodeEnum.STAFFDISCOUNTAMOUNTHIGHT);
} }
} }
@ -978,10 +957,10 @@ public class PayService {
} }
orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount)?orderInfo.getOrderAmount():payAmount); orderInfo.setPayAmount(ObjectUtil.isEmpty(payAmount) ? orderInfo.getOrderAmount() : payAmount);
orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount)?BigDecimal.ZERO:discountAmount); orderInfo.setDiscountAmount(ObjectUtil.isEmpty(discountAmount) ? BigDecimal.ZERO : discountAmount);
orderInfo.setStaffId(ObjectUtil.isEmpty(staff)?null:staff.getId()); orderInfo.setStaffId(ObjectUtil.isEmpty(staff) ? null : staff.getId());
orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount)?payAmount.divide(orderInfo.getOrderAmount(),2,RoundingMode.HALF_UP).setScale(2,RoundingMode.HALF_DOWN):null); orderInfo.setDiscountRatio(ObjectUtil.isNotEmpty(payAmount) ? payAmount.divide(orderInfo.getOrderAmount(), 2, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_DOWN) : null);
orderInfo.setPayType("cash"); orderInfo.setPayType("cash");
orderInfo.setStatus("closed"); orderInfo.setStatus("closed");
orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo())); orderInfo.setPayOrderNo("cash".concat(SnowFlakeUtil.generateOrderNo()));
@ -999,9 +978,7 @@ public class PayService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(orderId);
producer.printMechine(orderId);
}
// 发送库存记录mq消息 // 发送库存记录mq消息
JSONObject mqData = new JSONObject(); JSONObject mqData = new JSONObject();
@ -1035,12 +1012,11 @@ public class PayService {
} }
TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId()));
TbShopInfo shopInfo=tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId()));
if ("1".equals(shopInfo.getIsReturn())) { if ("1".equals(shopInfo.getIsReturn())) {
if (ObjectUtil.isEmpty(pwd) ) { if (ObjectUtil.isEmpty(pwd)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); String accountId = TokenUtil.parseParamFromToken(token).getString("accountId");
@ -1117,8 +1093,8 @@ public class PayService {
saleAmount = saleAmount.add(it.getPrice()); saleAmount = saleAmount.add(it.getPrice());
payAmount = payAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN) payAmount = payAmount.add(it.getPriceAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN)
.multiply(new BigDecimal(map1.get(it.getId())))); .multiply(new BigDecimal(map1.get(it.getId()))));
if(ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio())&&ObjectUtil.isNotNull(orderInfo.getDiscountRatio())){ if (ObjectUtil.isNotEmpty(orderInfo.getDiscountRatio()) && ObjectUtil.isNotNull(orderInfo.getDiscountRatio())) {
payAmount=payAmount.multiply(orderInfo.getDiscountRatio()).setScale(2,BigDecimal.ROUND_DOWN); payAmount = payAmount.multiply(orderInfo.getDiscountRatio()).setScale(2, BigDecimal.ROUND_DOWN);
} }
// payAmount=payAmount.add(it.getPriceAmount()); // payAmount=payAmount.add(it.getPriceAmount());
packAMount = packAMount.add(it.getPackAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN).multiply(new BigDecimal(map1.get(it.getId())))); packAMount = packAMount.add(it.getPackAmount().divide(new BigDecimal(it.getNum()), 2, RoundingMode.DOWN).multiply(new BigDecimal(map1.get(it.getId()))));
@ -1179,12 +1155,12 @@ public class PayService {
} }
} else { } else {
TbOrderPayment payment= tbOrderPaymentMapper.selectByOrderId(orderId+""); TbOrderPayment payment = tbOrderPaymentMapper.selectByOrderId(orderId + "");
PublicResp<OrderReturnResp> publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(), newOrderInfo.getOrderNo(), payment.getTradeNumber(), null, "订单退款", newOrderInfo.getPayAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); PublicResp<OrderReturnResp> publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(), newOrderInfo.getOrderNo(), payment.getTradeNumber(), null, "订单退款", newOrderInfo.getPayAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken());
if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) {
if ("000000".equals(publicResp.getCode())) { if ("000000".equals(publicResp.getCode())) {
if (!"SUCCESS".equals(publicResp.getObjData().getState())&&!publicResp.getObjData().getState().equals("ING")) { if (!"SUCCESS".equals(publicResp.getObjData().getState()) && !publicResp.getObjData().getState().equals("ING")) {
MsgException.check(true, "退款渠道调用失败"); MsgException.check(true, "退款渠道调用失败");
} }
} else { } else {
@ -1194,18 +1170,18 @@ public class PayService {
} }
}else if("deposit".equals(payType)){ } else if ("deposit".equals(payType)) {
TbShopUser user= tbShopUserMapper.selectByUserIdAndShopId(orderInfo.getUserId(),orderInfo.getShopId()); TbShopUser user = tbShopUserMapper.selectByUserIdAndShopId(orderInfo.getUserId(), orderInfo.getShopId());
if(ObjectUtil.isNull(user)||ObjectUtil.isEmpty(user)){ if (ObjectUtil.isNull(user) || ObjectUtil.isEmpty(user)) {
user=tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getMemberId())); user = tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getMemberId()));
} }
if(ObjectUtil.isNull(user)||ObjectUtil.isEmpty(user)){ if (ObjectUtil.isNull(user) || ObjectUtil.isEmpty(user)) {
return Result.fail(ACCOUNTEIXST); return Result.fail(ACCOUNTEIXST);
} }
if(!user.getShopId().equals(orderInfo.getShopId())){ if (!user.getShopId().equals(orderInfo.getShopId())) {
return Result.fail(ACCOUNTEIXST); return Result.fail(ACCOUNTEIXST);
} }
@ -1213,8 +1189,8 @@ public class PayService {
newOrderInfo.setMemberId(orderInfo.getMemberId()); newOrderInfo.setMemberId(orderInfo.getMemberId());
newOrderInfo.setUserId(orderInfo.getUserId()); newOrderInfo.setUserId(orderInfo.getUserId());
user.setAmount(user.getAmount().add( newOrderInfo.getPayAmount().setScale(2, RoundingMode.DOWN))); user.setAmount(user.getAmount().add(newOrderInfo.getPayAmount().setScale(2, RoundingMode.DOWN)));
user.setConsumeAmount(user.getConsumeAmount().subtract( newOrderInfo.getPayAmount().setScale(2, RoundingMode.DOWN))); user.setConsumeAmount(user.getConsumeAmount().subtract(newOrderInfo.getPayAmount().setScale(2, RoundingMode.DOWN)));
user.setUpdatedAt(System.currentTimeMillis()); user.setUpdatedAt(System.currentTimeMillis());
tbShopUserMapper.updateByPrimaryKeySelective(user); tbShopUserMapper.updateByPrimaryKeySelective(user);
@ -1266,16 +1242,12 @@ public class PayService {
// jsonObject.put("data",new ReturnWTZInfo(orderId+"",newOrderInfo.getPayAmount(),details)); // jsonObject.put("data",new ReturnWTZInfo(orderId+"",newOrderInfo.getPayAmount(),details));
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
if (StrUtil.isNotBlank(orderInfo.getTableId())) { producer.printMechine(String.valueOf(orderId));
producer.printMechine(String.valueOf(orderId));
}
//修改耗材数据 //修改耗材数据
JSONObject jsonObject1=new JSONObject(); JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("orderId",newOrderInfo.getId()); jsonObject1.put("orderId", newOrderInfo.getId());
jsonObject1.put("type","delete"); jsonObject1.put("type", "delete");
producer.cons(jsonObject1.toString()); producer.cons(jsonObject1.toString());
// 更新商品库存 // 更新商品库存
@ -1348,7 +1320,7 @@ public class PayService {
String orderNo = SnowFlakeUtil.generateOrderNo(); String orderNo = SnowFlakeUtil.generateOrderNo();
TbQuickPay tbQuickPay = new TbQuickPay(null,Integer.valueOf(staffId), Integer.valueOf(shopId), orderNo, payType, payAmount, "1", null, new Date(), null); TbQuickPay tbQuickPay = new TbQuickPay(null, Integer.valueOf(staffId), Integer.valueOf(shopId), orderNo, payType, payAmount, "1", null, new Date(), null);
if ("cash".equals(payType)) { if ("cash".equals(payType)) {
tbQuickPay.setStatus("0"); tbQuickPay.setStatus("0");
@ -1359,7 +1331,7 @@ public class PayService {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("token", token); jsonObject.put("token", token);
jsonObject.put("type", "quick"); jsonObject.put("type", "quick");
jsonObject.put("amount",tbQuickPay.getAmount()); jsonObject.put("amount", tbQuickPay.getAmount());
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
return Result.success(CodeEnum.SUCCESS, tbQuickPay); return Result.success(CodeEnum.SUCCESS, tbQuickPay);
@ -1395,7 +1367,7 @@ public class PayService {
String status = ObjectUtil.isNotEmpty(object.getJSONObject("data")) ? object.getJSONObject("data").getString("status") : null; String status = ObjectUtil.isNotEmpty(object.getJSONObject("data")) ? object.getJSONObject("data").getString("status") : null;
if (ObjectUtil.isNotNull(status) && "7".equals(status)) { if (ObjectUtil.isNotNull(status) && "7".equals(status)) {
tbQuickPayMapper.insert(tbQuickPay); tbQuickPayMapper.insert(tbQuickPay);
return Result.success(CodeEnum.PAYING,tbQuickPay); return Result.success(CodeEnum.PAYING, tbQuickPay);
} }
} }
} else { } else {
@ -1412,16 +1384,16 @@ public class PayService {
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put("token", token); jsonObject.put("token", token);
jsonObject.put("type", "quick"); jsonObject.put("type", "quick");
jsonObject.put("amount",tbQuickPay.getAmount()); jsonObject.put("amount", tbQuickPay.getAmount());
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
return Result.success(CodeEnum.SUCCESS, tbQuickPay); return Result.success(CodeEnum.SUCCESS, tbQuickPay);
} }
if ("TRADE_AWAIT".equals(mainScanResp.getState())) { if ("TRADE_AWAIT".equals(mainScanResp.getState())) {
tbQuickPay.setTradeNo(mainScanResp.getPayOrderId()); tbQuickPay.setTradeNo(mainScanResp.getPayOrderId());
log.info("ddddd:{}",tbQuickPay.getTradeNo()); log.info("ddddd:{}", tbQuickPay.getTradeNo());
tbQuickPayMapper.insert(tbQuickPay); tbQuickPayMapper.insert(tbQuickPay);
return Result.success(CodeEnum.PAYING,tbQuickPay); return Result.success(CodeEnum.PAYING, tbQuickPay);
} }
} }
} }
@ -1520,9 +1492,9 @@ public class PayService {
if (param.getNum() > tbGroupOrderCoupons.size()) { if (param.getNum() > tbGroupOrderCoupons.size()) {
return Result.fail("可退数量不足"); return Result.fail("可退数量不足");
} }
if(groupOrderInfo.getPayType().equals("deposit")){ if (groupOrderInfo.getPayType().equals("deposit")) {
TbShopUser user= tbShopUserMapper.selectByUserIdAndShopId(groupOrderInfo.getUserId().toString(),groupOrderInfo.getShopId().toString()); TbShopUser user = tbShopUserMapper.selectByUserIdAndShopId(groupOrderInfo.getUserId().toString(), groupOrderInfo.getShopId().toString());
if(ObjectUtil.isNull(user)||ObjectUtil.isEmpty(user)){ if (ObjectUtil.isNull(user) || ObjectUtil.isEmpty(user)) {
return Result.fail(ACCOUNTEIXST); return Result.fail(ACCOUNTEIXST);
} }
user.setAmount(user.getAmount().add(param.getRefundAmount().setScale(2, RoundingMode.DOWN))); user.setAmount(user.getAmount().add(param.getRefundAmount().setScale(2, RoundingMode.DOWN)));
@ -1539,7 +1511,7 @@ public class PayService {
flow.setBalance(user.getAmount()); flow.setBalance(user.getAmount());
flow.setCreateTime(new Date()); flow.setCreateTime(new Date());
tbShopUserFlowMapper.insert(flow); tbShopUserFlowMapper.insert(flow);
}else { } else {
TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(groupOrderInfo.getMerchantId()); TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(groupOrderInfo.getMerchantId());
MsgException.checkNull(thirdApply, "支付参数配置错误"); MsgException.checkNull(thirdApply, "支付参数配置错误");
@ -1548,7 +1520,7 @@ public class PayService {
url, url,
thirdApply.getAppId(), thirdApply.getAppId(),
// groupOrderInfo.getOrderNo(), // groupOrderInfo.getOrderNo(),
"GPR"+DateUtils.getSsdfTimes(), "GPR" + DateUtils.getSsdfTimes(),
groupOrderInfo.getPayOrderNo(), groupOrderInfo.getPayOrderNo(),
null, null,
"团购卷订单退款", "团购卷订单退款",
@ -1561,10 +1533,10 @@ public class PayService {
if ("000000".equals(publicResp.getCode())) { if ("000000".equals(publicResp.getCode())) {
//TRADE_REFUND //TRADE_REFUND
if (!"SUCCESS".equals(returnInfo.getState()) && !"TRADE_SUCCESS".equals(returnInfo.getState()) && !returnInfo.getState().equals("ING")) { if (!"SUCCESS".equals(returnInfo.getState()) && !"TRADE_SUCCESS".equals(returnInfo.getState()) && !returnInfo.getState().equals("ING")) {
return Result.fail("退款渠道调用失败,"+returnInfo.getNote()); return Result.fail("退款渠道调用失败," + returnInfo.getNote());
} }
} else { } else {
return Result.fail("退款渠道调用失败,"+publicResp.getMsg()); return Result.fail("退款渠道调用失败," + publicResp.getMsg());
} }
} }
} }
@ -1579,7 +1551,7 @@ public class PayService {
groupOrderInfo.setRefundNumber(groupOrderInfo.getRefundNumber() + param.getNum()); groupOrderInfo.setRefundNumber(groupOrderInfo.getRefundNumber() + param.getNum());
if (groupOrderInfo.getRefundAmount() == null) { if (groupOrderInfo.getRefundAmount() == null) {
groupOrderInfo.setRefundAmount(param.getRefundAmount()); groupOrderInfo.setRefundAmount(param.getRefundAmount());
}else { } else {
groupOrderInfo.setRefundAmount(groupOrderInfo.getRefundAmount().add(param.getRefundAmount())); groupOrderInfo.setRefundAmount(groupOrderInfo.getRefundAmount().add(param.getRefundAmount()));
} }
if (groupOrderInfo.getNumber().equals(groupOrderInfo.getRefundNumber())) { if (groupOrderInfo.getNumber().equals(groupOrderInfo.getRefundNumber())) {
@ -1591,50 +1563,50 @@ public class PayService {
} }
public Result getOrderDiscount(String staffId,String orderId,String token ){ public Result getOrderDiscount(String staffId, String orderId, String token) {
if(ObjectUtil.isNull(staffId)||ObjectUtil.isNull(orderId)||ObjectUtil.isEmpty(staffId)||ObjectUtil.isEmpty(orderId)){ if (ObjectUtil.isNull(staffId) || ObjectUtil.isNull(orderId) || ObjectUtil.isEmpty(staffId) || ObjectUtil.isEmpty(orderId)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
JSONObject tokeObj= TokenUtil.parseParamFromToken(token); JSONObject tokeObj = TokenUtil.parseParamFromToken(token);
if(Objects.isNull(tokeObj)){ if (Objects.isNull(tokeObj)) {
return Result.fail(CodeEnum.TOKENTERROR); return Result.fail(CodeEnum.TOKENTERROR);
} }
if(!tokeObj.getString("staffId").equals(staffId)){ if (!tokeObj.getString("staffId").equals(staffId)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
TbOrderInfo tbOrderInfo= tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId)); TbOrderInfo tbOrderInfo = tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId));
if(ObjectUtil.isNull(tokeObj)||ObjectUtil.isEmpty(tbOrderInfo)){ if (ObjectUtil.isNull(tokeObj) || ObjectUtil.isEmpty(tbOrderInfo)) {
return Result.fail(CodeEnum.ORDERNOEXIST); return Result.fail(CodeEnum.ORDERNOEXIST);
} }
TbPlussShopStaff staff=tbPlussShopStaffMapper.selectByPrimaryKey(Integer.valueOf(staffId)); TbPlussShopStaff staff = tbPlussShopStaffMapper.selectByPrimaryKey(Integer.valueOf(staffId));
if(ObjectUtil.isEmpty(staff)||ObjectUtil.isNull(staff)){ if (ObjectUtil.isEmpty(staff) || ObjectUtil.isNull(staff)) {
return Result.fail(CodeEnum.STAFFNOEXISTERROE); return Result.fail(CodeEnum.STAFFNOEXISTERROE);
} }
if("master".equals(staff.getType())){ if ("master".equals(staff.getType())) {
return Result.success(SUCCESS,new BigDecimal(0.1)); return Result.success(SUCCESS, new BigDecimal(0.1));
} }
if(ObjectUtil.isEmpty(staff.getMaxDiscountAmount())||ObjectUtil.isNull(staff.getMaxDiscountAmount())){ if (ObjectUtil.isEmpty(staff.getMaxDiscountAmount()) || ObjectUtil.isNull(staff.getMaxDiscountAmount())) {
return Result.success(SUCCESS,BigDecimal.ZERO); return Result.success(SUCCESS, BigDecimal.ZERO);
} }
if("0".equals(staff.getDiscountType())){ if ("0".equals(staff.getDiscountType())) {
if(staff.getMaxDiscountAmount().compareTo(tbOrderInfo.getOrderAmount())>=0){ if (staff.getMaxDiscountAmount().compareTo(tbOrderInfo.getOrderAmount()) >= 0) {
staff.setMaxDiscountAmount(new BigDecimal(0.1)); staff.setMaxDiscountAmount(new BigDecimal(0.1));
}else { } else {
staff.setMaxDiscountAmount(BigDecimal.ONE.subtract(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount(),2,RoundingMode.HALF_DOWN).setScale(2,RoundingMode.HALF_DOWN))); staff.setMaxDiscountAmount(BigDecimal.ONE.subtract(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount(), 2, RoundingMode.HALF_DOWN).setScale(2, RoundingMode.HALF_DOWN)));
} }
} }
return Result.success(SUCCESS,staff.getMaxDiscountAmount()); return Result.success(SUCCESS, staff.getMaxDiscountAmount());
} }