From 74db98615d1842d71aaa1b016d0a10936e2bdd0a Mon Sep 17 00:00:00 2001 From: winter <664946893@qq.com> Date: Mon, 16 Dec 2024 17:15:06 +0800 Subject: [PATCH] fix --- .../java/com/iformall/mq/MqBaseConsumer.java | 8 +- .../java/com/iformall/domain/po/WxCoupon.java | 2 + .../msg/FmInsideCreateCouponPasswordMsg.java | 18 ++ .../com/iformall/enums/EnumMsgRecordType.java | 2 + .../service/impl/WxCouponServiceImpl.java | 9 + .../impl/WxRentContractServiceImpl.java | 206 ------------------ .../CreateCouponPasswordMsgServiceImpl.java | 58 +++++ .../main/resources/mapper/WxCouponMapper.xml | 3 +- 8 files changed, 98 insertions(+), 208 deletions(-) create mode 100644 mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCreateCouponPasswordMsg.java create mode 100644 mallinkService/src/main/java/com/iformall/service/msg/impl/CreateCouponPasswordMsgServiceImpl.java diff --git a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java index 2d1259e3c..e1c929336 100644 --- a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java +++ b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java @@ -86,7 +86,8 @@ public class MqBaseConsumer { @Autowired private FmInsideNotifyBillPaidSuccessMsgServiceImpl fmInsideNotifyBillPaidSuccessMsgServiceImpl; - + @Autowired + private CreateCouponPasswordMsgServiceImpl createCouponPasswordMsgServiceImpl; public void doMessage(String message) { log.info("received message: {}", message); @@ -245,6 +246,11 @@ public class MqBaseConsumer { FmInsideNotifyBillPaidSuccessMsg msg = (FmInsideNotifyBillPaidSuccessMsg) JsonUtil.readValue(message,FmInsideNotifyBillPaidSuccessMsg.class); fmInsideNotifyBillPaidSuccessMsgServiceImpl.send(msg); } + + else if (EnumMsgRecordType.CREATE_COUPASSWORD.getCode().equals(baseMsg.getMsgType())) { + FmInsideCreateCouponPasswordMsg msg = (FmInsideCreateCouponPasswordMsg) JsonUtil.readValue(message,FmInsideCreateCouponPasswordMsg.class); + createCouponPasswordMsgServiceImpl.send(msg); + } }catch (Throwable e){ log.error("consum received error: ", e); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java index c196dd463..86a6dfc28 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java @@ -261,6 +261,8 @@ public class WxCoupon extends TenantEntity { private Integer contentType; @io.swagger.annotations.ApiModelProperty(value="富文本内容",name="html") private String html; + @io.swagger.annotations.ApiModelProperty(value="卡密是否已经生成完成",name="createCouponPasswordFinished") + private Integer createCouponPasswordFinished; @io.swagger.annotations.ApiModelProperty(value="卷包内容",name="giftList") private String giftList; diff --git a/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCreateCouponPasswordMsg.java b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCreateCouponPasswordMsg.java new file mode 100644 index 000000000..366554dbb --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCreateCouponPasswordMsg.java @@ -0,0 +1,18 @@ +package com.iformall.domain.po.msg; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +@Data +@ToString(callSuper = true) +@EqualsAndHashCode(callSuper = true) +public class FmInsideCreateCouponPasswordMsg extends BaseMsg { + + @io.swagger.annotations.ApiModelProperty(value = "MallUserInfo", name = "mallUserId") + private Long mallUserId; + + @io.swagger.annotations.ApiModelProperty(value = "券ID", name = "couponId") + private Long couponId; + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java index 8eeedfb07..6bc978dad 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java @@ -41,6 +41,8 @@ public enum EnumMsgRecordType { INSIDE_C_COMPLETE_INFO(114, "C端会员完善个人信息"),//内部消息,加积分等 BILL_PAID(115,"账单支付回调"), + + CREATE_COUPASSWORD(116,"账单支付回调"), INSIDE_ORDER_PUSH_DELIVERY(200, "2.0核销同步"), ; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java index cd6b13743..231cc55a6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java @@ -14,6 +14,8 @@ import com.iformall.domain.dto.WxCouponMerchantDto; import com.iformall.domain.po.*; import com.iformall.domain.po.base.BaseEntity; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.msg.FmInsideCreateCouponPasswordMsg; +import com.iformall.domain.po.msg.FmInsideNotifyBillPaidSuccessMsg; import com.iformall.domain.po.msg.FmInsideProductPushMsg; import com.iformall.domain.vo.*; import com.iformall.domain.vo.excel.WxCardData; @@ -672,6 +674,13 @@ public class WxCouponServiceImpl implements WxCouponService { if (record.getPasswordSupport() != null && record.getPasswordSupport().equals(EnumCouponPasswordSupport.SUPPORTED.getCode())) { // todo 生成卡密无法修改, 调整 couponPasswordService.mkPasswords(record,user); + FmInsideCreateCouponPasswordMsg createCouponPasswordMsg = new FmInsideCreateCouponPasswordMsg(); + createCouponPasswordMsg.setTenantId(record.getTenantId()); + createCouponPasswordMsg.setParentTenantId(record.getParentTenantId()); + createCouponPasswordMsg.setMsgType(EnumMsgRecordType.CREATE_COUPASSWORD.getCode()); + createCouponPasswordMsg.setMallUserId(user.getId()); + createCouponPasswordMsg.setCouponId(record.getId()); + mqBaseProducer.sendMessage(createCouponPasswordMsg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); } record.setCreateDate(new Date()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 71b10c9e0..c20ff16b2 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -543,15 +543,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { } } - //保存调整金额(预账单调整) - //if (saveBill) { - // savePreviewBill(record,user); - //保存商业管理费账单 - // savePreviewManageFeeBill(record,user,EnumRentContractManageFeeType.RENT_BUSSINESS_MANAGE_FEE); - //保存营业管理费账单 - // savePreviewManageFeeBill(record,user,EnumRentContractManageFeeType.RENT_OPERATING_MANAGE_FEE); - //} - WxRentContract wxRentContract = (WxRentContract)resultData.data; wxRentContract.setPreviewBillRentList(resultList); return new ResultData(wxRentContract); @@ -614,207 +605,10 @@ public class WxRentContractServiceImpl implements WxRentContractService { deletePrewBill(record); resultList = buildRent(user, rentContract, EnumIsPreview.YES.getCode(),true); rentContract.setPreviewBillRentList(resultList); - //savePreviewBill(rentContract,user); - //保存商业管理费账单 - //savePreviewManageFeeBill(rentContract,user,EnumRentContractManageFeeType.RENT_BUSSINESS_MANAGE_FEE); - //保存营业管理费账单 - //savePreviewManageFeeBill(rentContract,user,EnumRentContractManageFeeType.RENT_OPERATING_MANAGE_FEE); - rentContract.setRentalStartDate(oldDate); return new ResultData(rentContract); } - /** - * 重新生成账单(预账单调整) - */ - public void savePreviewBill(WxRentContract record,MallUserInfo user){ - - if(CollectionUtils.isEmpty(record.getPreviewBillRentList())){ - return; - } - if (null == record.getDecimalSize()) { - record.setDecimalSize(Constant.default_short_decimal_size); - } - wxAllBillMapper.deleteBillByContract(record); - final IdWorker idWorker = IdWorker.get(); - List shopIds = record.shopIdsByRentInfo(); - //根据关联的店铺面积来分金额 - Map shopAreaRateMap = record.getRentShopArea(); - if (null == shopAreaRateMap) { - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"无店铺信息"); - } - List billList = new ArrayList(); - for (WxAllBill bill:record.getPreviewBillRentList()) { - bill.setId(idWorker.nextId()); - Date date = new Date(); - bill.setBillType(EnumBillAllType.RENT.getCode()); - bill.setRentContractId(record.getId()); - bill.setCreatetime(date); - bill.setCreateBy(user.getId()); - bill.setCreateByName(user.getName()); - bill.updateTenantInfo(record); - bill.setNeedPay(bill.getNeedPay()); - bill.setReceivePay(bill.getNeedPay()); - bill.setBussinessManageFeeNeedPay(bill.getBussinessManageFeeNeedPay()); - bill.setOperatingManageFeeNeedPay(bill.getOperatingManageFeeNeedPay()); - bill.setUpdatetime(date); bill.setUpdateBy(user.getId()); - bill.setUpdateByName(user.getName()); - //bill.setPeriod(count); - bill.setIsPreview(EnumIsPreview.YES.getCode()); - bill.setShopInfo(getShopInfoStr(record)); - //bill.setRevenue("0"); - //bill.setLatePayRatio(0); - bill.setPay("0"); - //bill.setIsDel(EnumDelStatus.NOT_DEL.getCode()); - if (null != shopIds && shopIds.size() == 1) { - bill.setShopId(shopIds.get(0)); - } - bill.setEnergyFeesId(EnumBillAllType.RENT.getEnergyFeesId()); - //setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); - if (bill.getReceivePay().equals("0")) { - bill.setPayDate(date); - } - //计算手续费 - //BigDecimal servicePay = new BigDecimal(bill.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), record.getDecimalSize(), BigDecimal.ROUND_HALF_UP); - //bill.setServiceChargePay(servicePay.toPlainString()); - //bill.setOwe(bill.getReceivePay() + bill.getServiceChargePay()); - //bill.setOwe(bill.getReceivePay()); - - //根据铺位来实际创建账单 - for (int i = 0 ; i < shopIds.size(); i ++) { - WxAllBill b = new WxAllBill(); - Long sid = shopIds.get(i); - BigDecimal shoprentArea = shopAreaRateMap.get(sid); - BigDecimal shoprate = shoprentArea.divide(new BigDecimal(record.getRentArea()),record.getDecimalSize(),BigDecimal.ROUND_HALF_UP); - - try { - BeanUtils.copyProperties(b, bill); - b.setId(idWorker.nextId()); - b.setShopId(sid); - b.setNeedPay(new BigDecimal(bill.getNeedPay()).multiply(shoprate).toPlainString()); - b.setReceivePay(b.getNeedPay()); - if (StringUtils.isNotBlank(bill.getBussinessManageFeeNeedPay())){ - b.setBussinessManageFeeNeedPay(new BigDecimal(bill.getBussinessManageFeeNeedPay()).multiply(shoprate).toPlainString()); - } - if (StringUtils.isNotBlank(bill.getOperatingManageFeeNeedPay())){ - b.setOperatingManageFeeNeedPay(new BigDecimal(bill.getOperatingManageFeeNeedPay()).multiply(shoprate).toPlainString()); - } - billList.add(b); - } catch (IllegalAccessException e) { - logger.error("savePreviewBill error.",e); - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"创建账单失败"); - } catch (InvocationTargetException e) { - logger.error("savePreviewBill error.",e); - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"创建账单失败"); - } - - - } - - } - if (billList.size() > 0 ){ - wxAllBillMapper.insertBills(record.getTenantId(),billList); - } - } - - /** - * 重新生成其他管理费用账单(预账单调整) - */ - private void savePreviewManageFeeBill(WxRentContract record,MallUserInfo user,EnumRentContractManageFeeType feeType){ - if(CollectionUtils.isEmpty(record.getPreviewBillRentList())){ - return; - } - if (null == record.getDecimalSize()) { - record.setDecimalSize(Constant.default_short_decimal_size); - } - //租金已经把这些账单都删除了 - //WxAllBill wxBillRentManage = new WxAllBill(); - //wxBillRentManage.setRentContractId(record.getId()); - //wxBillRentManage.setBillType(EnumBillAllType.); - //wxBillRentManage.updateTenantInfo(record); - //wxAllBillManageMapper.deletePreviewBill(wxBillRentManage); - //WxPayAccountBill wxPayAccountBill = wxPayAccountBillService.getByTenantInfo(record); - final IdWorker idWorker = IdWorker.get(); - int count = 1; - List shopIds = record.shopIdsByRentInfo(); - //根据关联的店铺面积来分金额 - Map shopAreaRateMap = record.getRentShopArea(); - if (null == shopAreaRateMap) { - throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"无店铺信息"); - } - List billList = new ArrayList(); - for (WxAllBill _bi:record.getPreviewBillRentList()) { - BigDecimal needPay = new BigDecimal("0"); - Integer billType = null; - if (feeType.getCode() == EnumRentContractManageFeeType.RENT_BUSSINESS_MANAGE_FEE.getCode()) { - if (null != _bi.getBussinessManageFeeNeedPay()) { - needPay = new BigDecimal(_bi.getBussinessManageFeeNeedPay()); - } - billType = EnumBillAllType.RENT_BUSSINESS_MANAGE.getCode(); - }else if (feeType.getCode() == EnumRentContractManageFeeType.RENT_OPERATING_MANAGE_FEE.getCode()) { - if (null != _bi.getOperatingManageFeeNeedPay()) { - needPay = new BigDecimal(_bi.getOperatingManageFeeNeedPay()); - } - billType = EnumBillAllType.RENT_OPERATION_MANAGE.getCode(); - } - if (needPay.compareTo(new BigDecimal(0)) <= 0) { - continue; - } - for (int i = 0 ; i < shopIds.size(); i ++) { - Long sid = shopIds.get(i); - BigDecimal shoprentArea = shopAreaRateMap.get(sid); - BigDecimal shoprate = shoprentArea.divide(new BigDecimal(record.getRentArea()),record.getDecimalSize(),BigDecimal.ROUND_HALF_UP); - - WxAllBill bill = new WxAllBill(); - bill.setId(idWorker.nextId()); - Date date = new Date(); - bill.setBillType(billType); - bill.setRentContractId(record.getId()); - bill.setCreatetime(date); - bill.setCreateBy(user.getId()); - bill.setCreateByName(user.getName());; - bill.updateTenantInfo(record); - bill.setStarttime(_bi.getStarttime()); - bill.setEndtime(_bi.getEndtime()); - bill.setIsPreview(_bi.getIsPreview()); - //bill.setManageFeeType(feeType.getCode()); - bill.setNeedPay(needPay.multiply(shoprate).toPlainString()); - bill.setReceivePay(bill.getNeedPay()); - bill.setUpdatetime(date); - bill.setUpdateBy(user.getId()); - bill.setUpdateByName(user.getName()); - //bill.setPeriod(count); - bill.setShopInfo(getShopInfoStr(record)); - //bill.setLatePayRatio(0); - bill.setPay("0"); - //bill.setIsDel(EnumDelStatus.NOT_DEL.getCode()); - bill.setShopId(sid); - //setManageExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod()); - if (bill.getReceivePay().equals("0")) { - bill.setPayDate(date); - } - - if (feeType.getCode() == EnumRentContractManageFeeType.RENT_BUSSINESS_MANAGE_FEE.getCode()) { - bill.setEnergyFeesId(EnumBillAllType.RENT_BUSSINESS_MANAGE.getEnergyFeesId()); - }else if (feeType.getCode() == EnumRentContractManageFeeType.RENT_OPERATING_MANAGE_FEE.getCode()) { - bill.setEnergyFeesId(EnumBillAllType.RENT_OPERATION_MANAGE.getEnergyFeesId()); - } - bill.setCanEdit(EnumYesOrNo.NO.getCode()); - - //计算手续费 - //BigDecimal servicePay = new BigDecimal(bill.getReceivePay()).multiply(new BigDecimal(wxPayAccountBill.getServiceChargeRate())).divide(new BigDecimal(10000), record.getDecimalSize(), BigDecimal.ROUND_HALF_UP); - //bill.setServiceChargePay(servicePay.toPlainString()); - //bill.setOwe(bill.getReceivePay() + bill.getServiceChargePay()); - //bill.setOwe(bill.getReceivePay()); - count++; - billList.add(bill); - } - } - if (billList.size() > 0 ) { - wxAllBillMapper.insertBills(record.getTenantId(),billList); - } - } - public ResultData getResultDataForUpdate(WxRentContract record, MallUserInfo user,int from,Date oldRentStartDate,boolean writeFinal,boolean setRevenJumps) { //更新租赁合同信息 WxRentContract wxRentContract = wxRentContractMapper.selectById(record.getId()); diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/CreateCouponPasswordMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/CreateCouponPasswordMsgServiceImpl.java new file mode 100644 index 000000000..565b398a2 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/CreateCouponPasswordMsgServiceImpl.java @@ -0,0 +1,58 @@ +package com.iformall.service.msg.impl; + +import com.iformall.common.ResultData; +import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; +import com.iformall.domain.po.msg.AfterAddCreditMsg; +import com.iformall.domain.po.msg.BaseMsg; +import com.iformall.domain.po.msg.FmInsideCreateCouponPasswordMsg; +import com.iformall.enums.EnumAppPlat; +import com.iformall.enums.EnumBusinessType; +import com.iformall.enums.EnumMemberCardStatus; +import com.iformall.enums.EnumYesOrNo; +import com.iformall.mapper.WxCUserBasicInfoMapper; +import com.iformall.mapper.WxCUserMapper; +import com.iformall.mapper.WxCreditHistoryMapper; +import com.iformall.mapper.WxMemberCardMapper; +import com.iformall.service.*; +import com.iformall.service.msg.MsgSendService; +import com.iformall.service.payBill.PayBillServiceFactory; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * + */ +@Service +public class CreateCouponPasswordMsgServiceImpl implements MsgSendService { + + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxCouponService wxCouponService; + @Autowired + private WxCouponPasswordService couponPasswordService; + @Autowired + private MallUserInfoService mallUserInfoService; + + @Override + public void send(BaseMsg baseMsg) throws Exception{ + FmInsideCreateCouponPasswordMsg createCouponPasswordMsg = (FmInsideCreateCouponPasswordMsg)baseMsg; + WxCoupon coupon = wxCouponService.getById(createCouponPasswordMsg.getCouponId(), createCouponPasswordMsg.getTenantId()); + MallUserInfo user = mallUserInfoService.getById(createCouponPasswordMsg.getMallUserId()); + couponPasswordService.mkPasswords(coupon,user); + + WxCoupon updateCoupon = new WxCoupon(); + updateCoupon.updateTenantInfo(coupon); + updateCoupon.setId(coupon.getId()); + updateCoupon.setCreateCouponPasswordFinished(EnumYesOrNo.YES.getCode()); + wxCouponService.update(updateCoupon); + } + + +} diff --git a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml index 54f96807c..c7dea130e 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponMapper.xml @@ -72,6 +72,7 @@ + @@ -139,7 +140,7 @@ c.`id`,c.`coupon_id`,c.`version`,c.`tenant_id`,c.`parent_tenant_id`,c.`make_merchant_id`,c.`brand`,c.`type`,c.`cover_img`,c.`cover_picture`,c.`detail_picture`, - c.`title`,c.`sub_title`,c.`item_group`,c.`sale_price`,c.`freight_price`,c.`use_price`,c.`use_limit_rule`,c.`use_limit_quantity`,c.`send_type`, + c.`title`,c.`sub_title`,c.`item_group`,c.`sale_price`,c.`freight_price`,c.`use_price`,c.`use_limit_rule`,c.`use_limit_quantity`,c.`send_type`,c.`create_coupon_password_finished`, c.`sold_start_time`,c.`sold_end_time`,c.`valid_type`,c.`valid_start_date`,c.`valid_end_date`,c.`valid_days`,c.`detail`,c.`price`,c.tail_price,c.orig_price,c.`unit`,c.`remain_inventory`,c.`inventory`, c.`remark`,c.`status`,c.`create_date`,c.`update_date`,c.`business`,c.`sub_business`,c.`support_transfer`,c.`subsidy_num`,c.`subsidy_type`,c.`is_after_set_price`,c.`card_score_rule`, c.`press_limit_num`, c.`press_limit_hours`,c.`press_pay_reduce_stock`,c.`press_support_is_new`, c.`auto_refund`,c.`credit_price`,c.`credit_refund`,c.`put_apply_status`,c.`stock_apply_status`,c.`cancle_apply_status`,