@@ -1297,14 +1297,6 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
List<WxCouponOrderBVo> bolist = handleQueryResult(cUserEntry,list,wxCouponOrder);
excelService.exportCsv(bolist, null, filename, WxCouponOrderBVo.class, filename + ".csv", response, false);
}
private WxAppinfo getAppinfo(TenantEntity tenantEntity,Integer payWay) {
WxAppinfo wxAppinfo = wxAppinfoService.getCAppInfo(tenantEntity, EnumPayWay.getEnum(payWay).getPlat());
if (wxAppinfo == null)
throw new MallinkException(ErrorCode.APP_ID_NOT_FOUND);
return wxAppinfo;
}
@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
@@ -1380,7 +1372,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
throw new MallinkException(ErrorCode.VERIFY_COUPON_TYPE_NOT_SUPPORT);
}
WxCouponMerchant wxCouponMerchant = new WxCouponMerchant();
wxCouponMerchant.updateTenantInfo(bUser );
wxCouponMerchant.updateTenantInfo(mallTenantEntity );
wxCouponMerchant.setProductId(wxCoupon.getId());
wxCouponMerchant.setStatus(EnumCouponMerchantStatus.COUPON_MERCHANT_STATUS_VALID.getCode());
List<WxCouponMerchant> couponMerchantList = wxCouponMerchantMapper.findList(wxCouponMerchant);
@@ -1404,20 +1396,21 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
if (null == receiver) {
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL.getCode(),"当前商户没有配置收款账号。");
}
}else if(wxPayOrder != null && EnumPayMchType.DIRECT.getCode().equals(wxPayOrder.getMchType())){
merchantId = wxPayOrder.getChildOrderShare(couponOrder.getOrderId()).getMerchantId();
if (null == merchantId) {
throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL.getCode(),"订单支付信息未包含商户");
}
}
// else if(wxPayOrder != null && EnumPayMchType.DIRECT.getCode().equals(wxPayOrder.getMchType())){
// merchantId = wxPayOrder.getChildOrderShare(couponOrder.getOrderId()).getMerchantId();
// if (null == merchantId) {
// throw new MallinkException(ErrorCode.VERIFY_COUPON_ORDER_MERCHANT_IS_NULL.getCode(),"订单支付信息未包含商户");
// }
// }
}
int num = 0;
try {
couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销
couponOrder.setBUserId(bUser==null?0l:bUser.getId());
couponOrder.setBMerchantId(bUser==null?0l:bUser.getMerchantId() );
couponOrder.setBTenantId(bUser==null?null:bUser .getTenantId());
couponOrder.setBMerchantId(merchantId==null?0l:merchantId );
couponOrder.setBTenantId(mallTenantEntity .getTenantId());
couponOrder.setVerifyType(couponVerifyType.getCode());
if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType)
&& StringUtils.isNotBlank(couponOrder.getVerifyRemark())){
@@ -1454,12 +1447,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
}
}
if(EnumCouponVerifyType.VERIFY_B.equals(couponVerifyType)){
doAfterVerify(couponOrder, bUser, wxCoupon);
}else{
doAfterVerify(couponOrder, wxCoupon, merchantId);
}
couponOrder.setMerchantId(merchantId);
doAfterVerify(couponOrder, bUser, wxCoupon);
return couponOrder;
}
@@ -1543,15 +1531,15 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
throw new MallinkException(ErrorCode.VERIFY_ERROR.getCode(), e.getMessage());
}
if (couponOrder != null && couponOrder.getMerchantId() != null ) {
this.sendInsideCouponVerifyMsg(wxMerchantBUser,couponOrder, couponOrderId, couponOrder.getMerchantId(),couponOrder.getBMerchantId() );
if (couponOrder != null) {
this.sendInsideCouponVerifyMsg(couponOrder.getId(),couponOrder, wxMerchantBUser.getMerchantId(), wxMerchantBUser );
}
return couponOrder;
}
/**
* B端 核销卷 增加成长值,积分
* 核销增加成长值,积分
* @param couponOrder
* @param bUser
* @param wxCoupon
@@ -1567,10 +1555,20 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
// 积分
try {
//-------此处为【现金支付】记录增加积分操作-------
WxCreditHistory creditHistory = new WxCreditHistory();
creditHistory.setOperatorType(EnumUserType.BUSER.getCode());
creditHistory.setOperatorId(bUser.getId());
if(bUser != null){
creditHistory.setOperatorType(EnumUserType.BUSER.getCode());
creditHistory.setOperatorId(bUser.getId());
creditHistory.setMerchantId(bUser.getMerchantId());
creditHistory.setBuserId(bUser.getBuserId());
}else{
creditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode());
creditHistory.setOperatorId(couponOrder.getCUserId());
creditHistory.setMerchantId(couponOrder.getBMerchantId());
}
creditHistory.setCUserId(couponOrder.getcUserId());
creditHistory.setCreateDate(new Date());
// creditHistory.updateTenantInfo(couponOrder);
@@ -1580,11 +1578,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
creditHistory.setCouponId(wxCoupon.getId());
creditHistory.setBusinessId(wxCoupon.getBusiness());
creditHistory.setSpend(couponOrder.getCouponPrice());
//如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户
creditHistory.setMerchantId(bUser.getMerchantId());
creditHistory.setBuserId(bUser.getBuserId());
WxMerchant wxMerchant = wxMerchantMapper.selectById(bUser.getMerchantId());
creditHistory.setChangePurpose("商户核销增加积分:商户名称["+wxMerchant.getName()+"] 券名称["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] ");
creditHistory.setChangePurpose("券["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] 使用成功");
wxCreditHistoryService.saveOrUpdate(creditHistory,couponOrder.getTenantId());
} catch (Exception e) {
logger.error("积分值:" + e.getMessage());
@@ -1628,48 +1622,48 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
}
}
/**
* 自主核销商品加成长值 积分
* @param couponOrder
* @param wxCoupon
*/
private void doAfterVerify(WxCouponOrder couponOrder, WxCoupon wxCoupon,Long merchantId) {
// 成长值
try {
WxOrder order = wxOrderMapper.selectById(couponOrder.getOrderId(),couponOrder.getTenantId());
wxScoreRulesService.addScore2(couponOrder,EnumScoreType.CONSUMPTION, order, wxCoupon.getBusiness());
} catch (Exception e) {
logger.error("成长值:" + e.getMessage());
}
// 积分
try {
//-------此处为【现金支付】记录增加积分操作-------
WxCreditHistory creditHistory = new WxCreditHistory();
creditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode());
creditHistory.setOperatorId(couponOrder.getCUserId());
creditHistory.setCUserId(couponOrder.getCUserId());
creditHistory.setCreateDate(new Date());
// creditHistory.updateTenantInfo(couponOrder);
creditHistory.setTenantId(couponOrder.getFinalTenantId());
creditHistory.setFinalTenantId(couponOrder.getFinalTenantId());
creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode());
creditHistory.setCouponId(wxCoupon.getId());
creditHistory.setBusinessId(wxCoupon.getBusiness());
creditHistory.setSpend(couponOrder.getCouponPrice());
//如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户
creditHistory.setMerchantId(merchantId);
creditHistory.setChangePurpose("增加积分:券名称["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] ");
wxCreditHistoryService.saveOrUpdate(creditHistory,couponOrder.getTenantId());
} catch (Exception e) {
logger.error("积分值:" + e.getMessage());
}
}
// /**
// * 自主核销商品加成长值 积分
// * @param couponOrder
// * @param wxCoupon
// */
// private void doAfterVerify(WxCouponOrder couponOrder, WxCoupon wxCoupon,Long merchantId) {
// // 成长值
// try {
// WxOrder order = wxOrderMapper.selectById(couponOrder.getOrderId(),couponOrder.getTenantId());
// wxScoreRulesService.addScore2(couponOrder,EnumScoreType.CONSUMPTION, order, wxCoupon.getBusiness());
// } catch (Exception e) {
// logger.error("成长值:" + e.getMessage());
// }
//
// // 积分
// try {
// //-------此处为【现金支付】记录增加积分操作-------
// WxCreditHistory creditHistory = new WxCreditHistory();
// creditHistory.setOperatorType(EnumUserType.CUSERBASIC.getCode());
// creditHistory.setOperatorId(couponOrder.getCUserId());
// creditHistory.setCUserId(couponOrder.getCUserId());
// creditHistory.setCreateDate(new Date());
// // creditHistory.updateTenantInfo(couponOrder);
// creditHistory.setTenantId(couponOrder.getFinalTenantId());
// creditHistory.setFinalTenantId(couponOrder.getFinalTenantId());
// creditHistory.setCreditType(EnumScoreType.CONSUMPTION.getCode());
// creditHistory.setCouponId(wxCoupon.getId());
// creditHistory.setBusinessId(wxCoupon.getBusiness());
// creditHistory.setSpend(couponOrder.getCouponPrice());
// //如果券与商户一对一 则直接将消费商户更新为此商户 若一对多 则消费商户显示多商户
// creditHistory.setMerchantId(merchantId);
// creditHistory.setChangePurpose("增加积分:券名称["+wxCoupon.getTitle()+"("+creditHistory.getSpendStr()+"元)] ");
// wxCreditHistoryService.saveOrUpdate(creditHistory,couponOrder.getTenantId());
// } catch (Exception e) {
// logger.error("积分值:" + e.getMessage());
// }
// }
@Override
public void sendInsideCouponVerifyMsg(TenantEntity mallTenantEntity,TenantEntity couponOrderTenantEntity, Long couponOrderId, Long merchantId, Long bmerchantId ) {
if(b merchantId == null || bmerchantId.longValue() == 0 l){
bme rchantId = m ercha ntId ;
public void sendInsideCouponVerifyMsg(Long couponOrderId, TenantEntity couponOrderTenantEntity, Long merchantId, TenantEntity mallTenantEntity ) {
if(merchantId == null){
retu rn;
}
FmInsideCouponVerifyMsg verifyMsg = new FmInsideCouponVerifyMsg();
verifyMsg.setMsgType(EnumMsgRecordType.INSIDE_COUPON_VERIFY.getCode());
@@ -1677,12 +1671,11 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
verifyMsg.setMallTenantEntity(mallTenantEntity);
verifyMsg.setCouponOrderId(couponOrderId);
verifyMsg.setMerchantId(merchantId);
verifyMsg.setBmerchantId(bmerchantId);
mqBaseProducer.sendMessage(verifyMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode());
}
@Override
public void actionAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant, WxMerchant bmerchant ) {
public void actionAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant) {
try {
boolean mulityShare = true;
@@ -1705,7 +1698,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
try {
// 核销补贴
subsidyAfterVerify(couponOrder, b merchant.getId() );
subsidyAfterVerify(couponOrder, merchant);
} catch (Exception e) {
logger.error("核销记账失败"+e.getMessage(),e);
}
@@ -1719,7 +1712,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
}
// 核销发模板消息
try {
sendVerifyMsg(couponOrder, b merchant, bSentCoupon);
sendVerifyMsg(couponOrder, merchant, bSentCoupon);
} catch (Exception e) {
logger.error("核销发送消息发生错误:" + e.getMessage(),e);
}
@@ -1843,12 +1836,12 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
// 补贴
@Override
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void subsidyAfterVerify(WxCouponOrder couponOrder, Long merchantId ) {
public void subsidyAfterVerify(WxCouponOrder couponOrder, WxMerchant merchant ) {
// 检查补贴是否入库
WxMerchantSubsidy subsidy = new WxMerchantSubsidy();
subsidy.setOrderId(couponOrder.getOrderId());
subsidy.setType(EnumMerchantSubsidyType.MANUAL.getCode());
subsidy.updateTenantInfo(couponOrder );
subsidy.updateTenantInfo(merchant );
List<WxMerchantSubsidy> wmsList = wxMerchantSubsidyMapper.selectList(new QueryWrapper(subsidy));
if (wmsList.size() > 0) {
logger.error("补贴已经入库: (orderId,type)-({},1)", couponOrder.getOrderId());
@@ -1859,18 +1852,18 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
WxCouponMerchant couponMerchantQ = new WxCouponMerchant();
couponMerchantQ.setProductId(couponOrder.getCouponId());
couponMerchantQ.setMerchantId(merchantId);
couponMerchantQ.updateTenantInfo(couponOrder );
couponMerchantQ.setMerchantId(merchant.get Id() );
couponMerchantQ.updateTenantInfo(merchant );
WxCouponMerchant couponMerchant;
try {
couponMerchant = wxCouponMerchantMapper.selectOne(new QueryWrapper(couponMerchantQ));
} catch (Exception e) {
logger.error("查找所属卡券商户错误: " + "CouponId:" + couponMerchantQ.getProductId(), " merchantId:" + merchantId);
logger.error("查找所属卡券商户错误: " + "CouponId:" + couponMerchantQ.getProductId(), " merchantId:" + merchant.get Id() );
throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR);
}
if (couponMerchant == null) {
logger.error("未找到所属卡券商户: " + "CouponId:" + couponMerchantQ.getProductId(), " merchantId:" + merchantId);
logger.error("未找到所属卡券商户: " + "CouponId:" + couponMerchantQ.getProductId(), " merchantId:" + merchant.get Id() );
throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR);
}
@@ -1904,7 +1897,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
merchantSubsidyQ.setCouponOrderId(couponOrder.getId());
merchantSubsidyQ.setCouponType(couponOrder.getCouponType());
merchantSubsidyQ.setType(EnumMerchantSubsidyType.MANUAL.getCode());
merchantSubsidyQ.updateTenantInfo(couponOrder );
merchantSubsidyQ.updateTenantInfo(merchant );
List<WxMerchantSubsidy> msList = wxMerchantSubsidyMapper.selectList(new QueryWrapper<WxMerchantSubsidy>(merchantSubsidyQ));
if (msList.size() > 0) {
// 补贴已入库
@@ -1921,10 +1914,10 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
WxMerchantSubsidy merchantSubsidy = new WxMerchantSubsidy();
merchantSubsidy.setId(idWorker.nextId());
merchantSubsidy.updateTenantInfo(couponOrder );
merchantSubsidy.updateTenantInfo(merchant );
merchantSubsidy.setOrderId(couponOrder.getOrderId());
merchantSubsidy.setOrderType(EnumOrderType.COUPON.getCode());
merchantSubsidy.setMerchantId(merchantId);
merchantSubsidy.setMerchantId(merchant.get Id() );
merchantSubsidy.setCouponOrderId(couponOrder.getId());
merchantSubsidy.setCouponType(couponOrder.getCouponType());
merchantSubsidy.setOrderPayment(coupon.getPrice());
@@ -2159,7 +2152,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
private void doVerifyAppUniformMsg(WxCouponOrder couponOrder, WxCoupon coupon, WxMerchant merchant, WxCUser user, SimpleDateFormat dateFormat, String gotopage) {
WxAuthorizerInfo authQ = new WxAuthorizerInfo();
authQ.setAuthorizerAppid(user.getAppId());
authQ.updateTenantInfo(merchant );
authQ.updateTenantInfo(couponOrder );
WxAuthorizerInfo weappInfo = authorizerInfoMapper.findMp(authQ);
if (weappInfo != null) {
AppUniformMsg appUniformMsg = new AppUniformMsg();