This commit is contained in:
牛叉闪闪
2024-08-29 16:37:14 +08:00
parent 8c18cb1347
commit 40b8198c7e

View File

@@ -3,8 +3,6 @@ package com.chaozhanggui.system.cashierservice.service;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.chaozhanggui.system.cashierservice.bean.TableStateEnum;
import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.dao.*;
import com.chaozhanggui.system.cashierservice.entity.*; import com.chaozhanggui.system.cashierservice.entity.*;
import com.chaozhanggui.system.cashierservice.exception.MsgException; import com.chaozhanggui.system.cashierservice.exception.MsgException;
@@ -20,8 +18,6 @@ import com.chaozhanggui.system.cashierservice.thirdpay.resp.OrderStatusQueryResp
import com.chaozhanggui.system.cashierservice.thirdpay.resp.PublicResp; import com.chaozhanggui.system.cashierservice.thirdpay.resp.PublicResp;
import com.chaozhanggui.system.cashierservice.thirdpay.service.ThirdPayService; import com.chaozhanggui.system.cashierservice.thirdpay.service.ThirdPayService;
import com.chaozhanggui.system.cashierservice.util.*; import com.chaozhanggui.system.cashierservice.util.*;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -87,6 +83,7 @@ public class MemberService {
@Qualifier("tbOrderInfoMapper") @Qualifier("tbOrderInfoMapper")
@Autowired @Autowired
private TbOrderInfoMapper tbOrderInfoMapper; private TbOrderInfoMapper tbOrderInfoMapper;
private MpShopTableMapper mpShopTableMapper;
public Result queryMember(String shopId, String phone, int page, int pageSize) { public Result queryMember(String shopId, String phone, int page, int pageSize) {
@@ -316,7 +313,6 @@ public class MemberService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
return Result.success(CodeEnum.SUCCESS, memberIn); return Result.success(CodeEnum.SUCCESS, memberIn);
} else { } else {
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;
@@ -362,7 +358,7 @@ public class MemberService {
flow.setIsReturn("0"); flow.setIsReturn("0");
tbShopUserFlowMapper.insert(flow); tbShopUserFlowMapper.insert(flow);
BigDecimal fl=null; BigDecimal fl = null;
TbActivate activate = tbActivateMapper.selectByAmount(shopInfo.getId().toString(), memberIn.getAmount()); TbActivate activate = tbActivateMapper.selectByAmount(shopInfo.getId().toString(), memberIn.getAmount());
if (ObjectUtil.isNotEmpty(activate) && ObjectUtil.isNotNull(activate)) { if (ObjectUtil.isNotEmpty(activate) && ObjectUtil.isNotNull(activate)) {
BigDecimal awardAmount = BigDecimal.ZERO; BigDecimal awardAmount = BigDecimal.ZERO;
@@ -389,7 +385,7 @@ public class MemberService {
flow.setCreateTime(new Date()); flow.setCreateTime(new Date());
flow.setIsReturn("0"); flow.setIsReturn("0");
tbShopUserFlowMapper.insert(flow); tbShopUserFlowMapper.insert(flow);
fl=awardAmount; fl = awardAmount;
} }
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
@@ -399,19 +395,16 @@ public class MemberService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
JSONObject baObj = new JSONObject();
JSONObject baObj=new JSONObject(); baObj.put("userId", shopUser.getUserId());
baObj.put("userId",shopUser.getUserId()); baObj.put("shopId", shopInfo.getId());
baObj.put("shopId",shopInfo.getId()); baObj.put("amount", ObjectUtil.isNull(fl) ? amount : amount.add(fl));
baObj.put("amount",ObjectUtil.isNull(fl)?amount:amount.add(fl)); baObj.put("balance", shopUser.getAmount());
baObj.put("balance",shopUser.getAmount()); baObj.put("type", "扫码充值");
baObj.put("type","扫码充值"); baObj.put("time", flow.getCreateTime());
baObj.put("time",flow.getCreateTime());
producer.balance(baObj.toString()); producer.balance(baObj.toString());
return Result.success(CodeEnum.SUCCESS, memberIn); return Result.success(CodeEnum.SUCCESS, memberIn);
} else if ("TRADE_AWAIT".equals(mainScanResp.getState())) { } else if ("TRADE_AWAIT".equals(mainScanResp.getState())) {
@@ -432,7 +425,6 @@ public class MemberService {
} }
public Result queryScanPay(String flowId, String token) { public Result queryScanPay(String flowId, String token) {
if (ObjectUtil.isEmpty(flowId)) { if (ObjectUtil.isEmpty(flowId)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
@@ -556,13 +548,13 @@ public class MemberService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
JSONObject baObj=new JSONObject(); JSONObject baObj = new JSONObject();
baObj.put("userId",shopUser.getUserId()); baObj.put("userId", shopUser.getUserId());
baObj.put("shopId",shopUser.getShopId()); baObj.put("shopId", shopUser.getShopId());
baObj.put("amount",memberIn.getAmount().add(awardAmount)); baObj.put("amount", memberIn.getAmount().add(awardAmount));
baObj.put("balance",shopUser.getAmount()); baObj.put("balance", shopUser.getAmount());
baObj.put("type","充值"); baObj.put("type", "充值");
baObj.put("time",flow.getCreateTime()); baObj.put("time", flow.getCreateTime());
producer.balance(baObj.toString()); producer.balance(baObj.toString());
tbShopUserFlowMapper.insert(flow); tbShopUserFlowMapper.insert(flow);
@@ -579,7 +571,6 @@ public class MemberService {
return Result.success(CodeEnum.SUCCESS, memberIn); return Result.success(CodeEnum.SUCCESS, memberIn);
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result memberAccountPay(Map<String, Object> map, String token) throws Exception { public Result memberAccountPay(Map<String, Object> map, String token) throws Exception {
if (ObjectUtil.isEmpty(map) || map.size() <= 0 if (ObjectUtil.isEmpty(map) || map.size() <= 0
@@ -592,7 +583,6 @@ public class MemberService {
} }
String memberId = String.valueOf(map.get("memberId")); String memberId = String.valueOf(map.get("memberId"));
String shopId = String.valueOf(map.get("shopId")); String shopId = String.valueOf(map.get("shopId"));
@@ -604,7 +594,7 @@ public class MemberService {
} }
if("1".equals(shopInfo.getIsMemberIn())){ if ("1".equals(shopInfo.getIsMemberIn())) {
String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); String accountId = TokenUtil.parseParamFromToken(token).getString("accountId");
TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId));
@@ -667,7 +657,7 @@ public class MemberService {
flow.setCreateTime(new Date()); flow.setCreateTime(new Date());
flow.setIsReturn("0"); flow.setIsReturn("0");
tbShopUserFlowMapper.insert(flow); tbShopUserFlowMapper.insert(flow);
BigDecimal fl=null; BigDecimal fl = null;
TbActivate activate = tbActivateMapper.selectByAmount(shopInfo.getId().toString(), memberIn.getAmount()); TbActivate activate = tbActivateMapper.selectByAmount(shopInfo.getId().toString(), memberIn.getAmount());
if (ObjectUtil.isNotEmpty(activate) && ObjectUtil.isNotNull(activate)) { if (ObjectUtil.isNotEmpty(activate) && ObjectUtil.isNotNull(activate)) {
@@ -696,7 +686,7 @@ public class MemberService {
flow.setIsReturn("0"); flow.setIsReturn("0");
tbShopUserFlowMapper.insert(flow); tbShopUserFlowMapper.insert(flow);
fl=awardAmount; fl = awardAmount;
} }
@@ -709,25 +699,19 @@ public class MemberService {
producer.putOrderCollect(jsonObject.toJSONString()); producer.putOrderCollect(jsonObject.toJSONString());
JSONObject baObj = new JSONObject();
JSONObject baObj=new JSONObject(); baObj.put("userId", shopUser.getUserId());
baObj.put("userId",shopUser.getUserId()); baObj.put("shopId", shopInfo.getId());
baObj.put("shopId",shopInfo.getId()); baObj.put("amount", ObjectUtil.isNull(fl) ? amount : amount.add(fl));
baObj.put("amount",ObjectUtil.isNull(fl)?amount:amount.add(fl)); baObj.put("balance", shopUser.getAmount());
baObj.put("balance",shopUser.getAmount()); baObj.put("type", "充值");
baObj.put("type","充值"); baObj.put("time", flow.getCreateTime());
baObj.put("time",flow.getCreateTime());
producer.balance(baObj.toString()); producer.balance(baObj.toString());
return Result.success(CodeEnum.SUCCESS); return Result.success(CodeEnum.SUCCESS);
} }
private MpShopTableMapper mpShopTableMapper;
public Result queryMemberAccount(String memberId, int page, int pageSize) { public Result queryMemberAccount(String memberId, int page, int pageSize) {
if (ObjectUtil.isEmpty(memberId)) { if (ObjectUtil.isEmpty(memberId)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
@@ -740,47 +724,59 @@ public class MemberService {
} }
public Result returnAccount(String flowId,String remark){ public Result returnAccount(String flowId, String remark) {
if(ObjectUtil.isEmpty(flowId)||ObjectUtil.isNull(flowId)){ if (ObjectUtil.isEmpty(flowId) || ObjectUtil.isNull(flowId)) {
return Result.fail(CodeEnum.PARAM); return Result.fail(CodeEnum.PARAM);
} }
TbShopUserFlow flow= tbShopUserFlowMapper.selectByPrimaryKey(Integer.valueOf(flowId)); TbShopUserFlow flow = tbShopUserFlowMapper.selectByPrimaryKey(Integer.valueOf(flowId));
if(ObjectUtil.isNull(flow)||ObjectUtil.isEmpty(flow)){ if (ObjectUtil.isNull(flow) || ObjectUtil.isEmpty(flow)) {
return Result.fail(CodeEnum.USERSHOPFLOWNOEXIST); return Result.fail(CodeEnum.USERSHOPFLOWNOEXIST);
} }
if(!"0".equals(flow.getIsReturn())){ if (!"0".equals(flow.getIsReturn())) {
return Result.fail(CodeEnum.ORDERRETURN); return Result.fail(CodeEnum.ORDERRETURN);
} }
TbShopUser user=tbShopUserMapper.selectByPrimaryKey(flow.getShopUserId()); TbShopUser user = tbShopUserMapper.selectByPrimaryKey(flow.getShopUserId());
if(ObjectUtil.isEmpty(user)||ObjectUtil.isNull(user)){ if (ObjectUtil.isEmpty(user) || ObjectUtil.isNull(user)) {
return Result.fail(CodeEnum.ACCOUNTEIXST); return Result.fail(CodeEnum.ACCOUNTEIXST);
} }
BigDecimal amount=BigDecimal.ZERO;
/**
*
*/
if(N.gt(flow.getAmount(),user.getAmount())){ if(N.gt(flow.getAmount(),user.getAmount())){
return Result.fail(CodeEnum.ACCOUNTAMOUNT); amount=user.getAmount();
}else {
amount=flow.getAmount();
} }
TbShopInfo shopInfo=tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(user.getShopId()));
if(ObjectUtil.isEmpty(shopInfo)||ObjectUtil.isNull(shopInfo)){
TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(user.getShopId()));
if (ObjectUtil.isEmpty(shopInfo) || ObjectUtil.isNull(shopInfo)) {
return Result.fail(CodeEnum.MERCHANTEIXST); 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())) {
String no=DateUtils.getSsdfTimes(); if ("scanMemberIn".equals(flow.getBizCode())) {
TbMerchantThirdApply thirdApply = tbMerchantThirdApplyMapper.selectByPrimaryKey(Integer.valueOf(shopInfo.getMerchantId()));
if (ObjectUtil.isEmpty(thirdApply) || ObjectUtil.isNull(thirdApply)) {
return Result.fail(CodeEnum.NOCUSTOMER);
}
PublicResp<OrderReturnResp> publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(),no , null, flow.getRemark(), "充值退款", flow.getAmount().setScale(2, RoundingMode.DOWN).multiply(new BigDecimal(100)).longValue(), callBack, null, thirdApply.getAppToken()); String no = DateUtils.getSsdfTimes();
PublicResp<OrderReturnResp> publicResp = thirdPayService.returnOrder(url, thirdApply.getAppId(), no, null, flow.getRemark(), "充值退款",amount.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")) {
@@ -794,44 +790,30 @@ public class MemberService {
} else if ("cashMemberIn".equals(flow.getBizCode())) { } else if ("cashMemberIn".equals(flow.getBizCode())) {
} else { } else {
return Result.fail(CodeEnum.OPARETIONERROR); return Result.fail(CodeEnum.OPARETIONERROR);
} }
user.setAmount(user.getAmount().subtract(flow.getAmount())); user.setAmount(user.getAmount().subtract(amount));
user.setUpdatedAt(System.currentTimeMillis()); user.setUpdatedAt(System.currentTimeMillis());
tbShopUserMapper.updateByPrimaryKey(user); tbShopUserMapper.updateByPrimaryKey(user);
flow.setIsReturn("1"); flow.setIsReturn("1");
flow.setRemark(remark); flow.setRemark(remark);
tbShopUserFlowMapper.updateByPrimaryKey(flow); tbShopUserFlowMapper.updateByPrimaryKey(flow);
JSONObject baObj = new JSONObject();
JSONObject baObj=new JSONObject(); baObj.put("userId", user.getUserId());
baObj.put("userId",user.getUserId()); baObj.put("shopId", user.getId());
baObj.put("shopId",user.getId()); baObj.put("amount", amount);
baObj.put("amount",flow.getAmount()); baObj.put("balance", user.getAmount());
baObj.put("balance",user.getAmount()); baObj.put("type", "退款");
baObj.put("type","退款"); baObj.put("time", new Date());
baObj.put("time",new Date()); producer.balance(baObj.toString());
producer.balance(baObj.toString()); return Result.success(CodeEnum.SUCCESS);
return Result.success(CodeEnum.SUCCESS);
} }
} }