diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java index 0161620..ac88559 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java @@ -93,14 +93,13 @@ public class MemberController { } -// public Result returnFlow(@RequestHeader("token") String token, -// @RequestHeader("loginName") String loginName, -// @RequestHeader("clientType") String clientType, -// @RequestParam("flowId") String flowId, -// @RequestParam("remark") String remark -// ){ -// -// -// -// } + @RequestMapping("returnFlow") + public Result returnFlow(@RequestHeader("token") String token, + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType, + @RequestParam("flowId") String flowId, + @RequestParam("remark") String remark + ){ + return memberService.returnAccount(flowId,remark); + } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUserFlow.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUserFlow.java index 730cd8f..68b8444 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUserFlow.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUserFlow.java @@ -21,6 +21,10 @@ public class TbShopUserFlow implements Serializable { private String type; + private String isReturn; + + private String remark; + private static final long serialVersionUID = 1L; public Integer getId() { @@ -86,4 +90,20 @@ public class TbShopUserFlow implements Serializable { public void setType(String type) { this.type = type == null ? null : type.trim(); } + + public String getIsReturn() { + return isReturn; + } + + public void setIsReturn(String isReturn) { + this.isReturn = isReturn; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } } \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 910d38e..cb5d6fa 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -729,6 +729,74 @@ public class MemberService { } + public Result returnAccount(String flowId,String remark){ + if(ObjectUtil.isEmpty(flowId)||ObjectUtil.isNull(flowId)){ + return Result.fail(CodeEnum.PARAM); + } + TbShopUserFlow flow= tbShopUserFlowMapper.selectByPrimaryKey(Integer.valueOf(flowId)); + if(ObjectUtil.isNull(flow)||ObjectUtil.isEmpty(flow)){ + return Result.fail(CodeEnum.USERSHOPFLOWNOEXIST); + } + + + TbShopUser user=tbShopUserMapper.selectByPrimaryKey(flow.getShopUserId()); + + if(ObjectUtil.isEmpty(user)||ObjectUtil.isNull(user)){ + return Result.fail(CodeEnum.ACCOUNTEIXST); + } + + if(N.gt(flow.getAmount(),user.getAmount())){ + return Result.fail(CodeEnum.ACCOUNTAMOUNT); + } + + TbShopInfo shopInfo=tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(user.getShopId())); + if(ObjectUtil.isEmpty(shopInfo)||ObjectUtil.isNull(shopInfo)){ + return Result.fail(CodeEnum.MERCHANTEIXST); + } + + + TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(shopInfo.getMerchantId())); + if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) { + return Result.fail(CodeEnum.NOCUSTOMER); + } + + + if("scanMemberIn".equals(flow.getBizCode())){ + PublicResp orderstatus = thirdPayService.queryOrder(url, thirdApply.getAppId(),flow.getAmount().toPlainString(), null, thirdApply.getAppToken()); + if (ObjectUtil.isNotNull(orderstatus) && ObjectUtil.isNotEmpty(orderstatus)) { + if ("000000".equals(orderstatus.getCode())) { + if ("TRADE_SUCCESS".equals(orderstatus.getObjData().getState())) { + user.setAmount(user.getAmount().subtract(flow.getAmount())); + user.setUpdatedAt(System.currentTimeMillis()); + tbShopUserMapper.updateByPrimaryKey(user); + + flow.setIsReturn("1"); + flow.setRemark(remark); + tbShopUserFlowMapper.updateByPrimaryKey(flow); + return Result.success(CodeEnum.SUCCESS); + } + } + } + }else if("cashMemberIn".equals(flow.getBizCode())){ + + user.setAmount(user.getAmount().subtract(flow.getAmount())); + user.setUpdatedAt(System.currentTimeMillis()); + tbShopUserMapper.updateByPrimaryKey(user); + + flow.setIsReturn("1"); + flow.setRemark(remark); + tbShopUserFlowMapper.updateByPrimaryKey(flow); + return Result.success(CodeEnum.SUCCESS); + + }else { + return Result.fail(CodeEnum.OPARETIONERROR); + } + return Result.fail(CodeEnum.FAIL); + + + } + + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 092261d..710baf5 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1275,7 +1275,13 @@ public class PayService { // jsonObject.put("data",new ReturnWTZInfo(orderId+"",newOrderInfo.getPayAmount(),details)); producer.putOrderCollect(jsonObject.toJSONString()); - producer.printMechine(String.valueOf(orderId)); + + + producer.printMechine(newOrderInfo.getId().toString()); + + + + //修改耗材数据 JSONObject jsonObject1 = new JSONObject(); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java b/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java index dca35d5..1f33958 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/sign/CodeEnum.java @@ -108,6 +108,14 @@ public enum CodeEnum { STAFFDISCOUNTAMOUNTHIGHT("100040",false,"优惠金额不能大于员工授权额度","fail"), + USERSHOPFLOWNOEXIST("100041",false,"充值记录不存在","fail"), + + + OPARETIONERROR("100042",false,"操作错误","fail"), + + + + ACCOUNTAMOUNT("100043",false,"账户余额不足","fail"),