winter 1 год назад
Родитель
Сommit
74db98615d
8 измененных файлов: 98 добавлений и 208 удалений
  1. +7
    -1
      mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java
  2. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxCoupon.java
  3. +18
    -0
      mallinkService/src/main/java/com/iformall/domain/po/msg/FmInsideCreateCouponPasswordMsg.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordType.java
  5. +9
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponServiceImpl.java
  6. +0
    -206
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  7. +58
    -0
      mallinkService/src/main/java/com/iformall/service/msg/impl/CreateCouponPasswordMsgServiceImpl.java
  8. +2
    -1
      mallinkService/src/main/resources/mapper/WxCouponMapper.xml

+ 7
- 1
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);


+ 2
- 0
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;


+ 18
- 0
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;
}

+ 2
- 0
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核销同步"),
;


+ 9
- 0
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());


+ 0
- 206
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<Long> shopIds = record.shopIdsByRentInfo();
//根据关联的店铺面积来分金额
Map<Long, BigDecimal> shopAreaRateMap = record.getRentShopArea();
if (null == shopAreaRateMap) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"无店铺信息");
}
List<WxAllBill> billList = new ArrayList<WxAllBill>();
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<Long> shopIds = record.shopIdsByRentInfo();
//根据关联的店铺面积来分金额
Map<Long, BigDecimal> shopAreaRateMap = record.getRentShopArea();
if (null == shopAreaRateMap) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"无店铺信息");
}
List<WxAllBill> billList = new ArrayList<WxAllBill>();
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());


+ 58
- 0
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);
}


}

+ 2
- 1
mallinkService/src/main/resources/mapper/WxCouponMapper.xml Просмотреть файл

@@ -72,6 +72,7 @@
<result column="product_attrs" jdbcType="VARCHAR" property="productAttrs"/>
<result column="sku_attrs" jdbcType="VARCHAR" property="skuAttrs"/>
<result column="is_after_set_price" jdbcType="INTEGER" property="isAfterSetPrice"/>
<result column="create_coupon_password_finished" jdbcType="INTEGER" property="createCouponPasswordFinished"/>

<result column="spu_id" jdbcType="VARCHAR" property="spuId"/>
<result column="poi_status" jdbcType="INTEGER" property="poiStatus"/>
@@ -139,7 +140,7 @@

<sql id="allColumns">
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`,


Загрузка…
Отмена
Сохранить