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