diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java index 657976e2a..2dd8d0bea 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/mem/WxCreditHistoryController.java @@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Map; import java.util.Objects; @RestController @@ -57,7 +58,15 @@ public class WxCreditHistoryController extends BaseController { if(Objects.isNull(merchantId)|| StringUtils.isEmpty(spendStr)||Objects.isNull(userId)) { return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL) ; } - return new ResultData(wxCreditHistoryService.findByMerchantIdAndSpend(merchantId, spendStr, userId,getTenantId())); + + try { + Map result = wxCreditHistoryService.findByMerchantIdAndSpend(merchantId, spendStr, userId,getTenantId()) ; + return new ResultData(result); + } catch (MallinkException e) { + return new ResultData(e.getErrorCode(),e.getMessage()); + } catch (Exception e) { + return new ResultData(ErrorCode.SYS_PARAMETER_ERROR,e.getMessage()); + } } @ApiOperation("新增接口") diff --git a/mallinkAdmin/src/main/resources/db/migration/V201909161634__POS_CHANGED.sql b/mallinkAdmin/src/main/resources/db/migration/V201909161634__POS_CHANGED.sql new file mode 100644 index 000000000..672a579c9 --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201909161634__POS_CHANGED.sql @@ -0,0 +1,3 @@ + +alter table wx_refund_order +change column `pos_refund_desc` `pos_refund_des` varchar(100) NULL COMMENT 'POS退款描述'; diff --git a/mallinkAdmin/src/main/resources/db/migration/V201909161731__L_FLOW.sql b/mallinkAdmin/src/main/resources/db/migration/V201909161731__L_FLOW.sql new file mode 100644 index 000000000..76d08455a --- /dev/null +++ b/mallinkAdmin/src/main/resources/db/migration/V201909161731__L_FLOW.sql @@ -0,0 +1,4 @@ +update wx_flow_config set name='商铺租金+物业合同签约' where name ='商铺租赁合同签约'; +update wx_flow_config set name='商铺租金+物业合同终止' where name ='商铺租赁合同终止'; +update wx_flow_config set name='多经点位租金+物业合同签约' where name ='多经点位商铺租赁合同签约'; +update wx_flow_config set name='多经点位租金+物业合同终止' where name ='多经点位商铺租赁合同终止'; \ No newline at end of file diff --git a/mallinkAdmin/src/test/java/com/iformall/service/test/Test.java b/mallinkAdmin/src/test/java/com/iformall/service/test/Test.java index aba63e9f2..396ebac38 100644 --- a/mallinkAdmin/src/test/java/com/iformall/service/test/Test.java +++ b/mallinkAdmin/src/test/java/com/iformall/service/test/Test.java @@ -66,11 +66,9 @@ public class Test { private MockMvc mockMvc; - @Autowired MqBaseProducer mqBaseProducer; - @Autowired private WxBillSettleService wxBillSettleService; @Autowired @@ -148,10 +146,7 @@ public class Test { @org.junit.Test public void testmq2(){ - WxBillAll wxBillAll = new WxBillAll(); - wxBillAll.setTenantId("456"); - wxBillAll.setMerchantId(324754110547066880l); - System.out.println("--------"+JsonUtil.obj2Json(wxBillAllService.listBill(wxBillAll))); + } @org.junit.Test diff --git a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java index d9a0b3ff3..253a2a270 100644 --- a/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java +++ b/mallinkMQConsumer/src/main/java/com/iformall/mq/MqBaseConsumer.java @@ -5,7 +5,6 @@ import com.iformall.enums.*; import com.iformall.mapper.WxMsgRecordMapper; import com.iformall.service.msg.impl.*; import com.iformall.utils.JsonUtil; -import org.checkerframework.checker.units.qual.A; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/MsgReSendSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgReSendSchedule.java new file mode 100644 index 000000000..d9f968677 --- /dev/null +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/MsgReSendSchedule.java @@ -0,0 +1,79 @@ +package com.iformall.schedule; + +import com.iformall.domain.po.msg.*; +import com.iformall.enums.*; +import com.iformall.mq.MqBaseProducer; +import com.iformall.service.WxMsgRecordService; +import com.iformall.utils.JsonUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import java.util.List; + +/** + * 消息重发 + */ +@Component +public class MsgReSendSchedule { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private WxMsgRecordService wxMsgRecordService; + @Autowired + private MqBaseProducer mqBaseProducer; + + //@Scheduled(cron = "0 */1 * * * *?") // 每5分钟检查一次 + @Scheduled(cron = "*/10 * * * * ?") // 测试10秒中一次 + public void msgReSend() { + logger.info("消息重发开始..."); + //消息重发 + WxMsgRecord msgRecord = new WxMsgRecord(); + msgRecord.setMsgStatus(EnumMsgRecordStatus.SEND_FAIL.getCode()); + List recordList = wxMsgRecordService.findList(msgRecord); + for (WxMsgRecord wxMsgRecord:recordList) { + logger.info("消息重发:{}",wxMsgRecord.getMsgJson()); + try { + if(EnumMsgRecordType.INSIDE_ORDER_SUCCESS.getCode().equals(wxMsgRecord.getMsgType())){ + //内部消息 - 下订单成功 + FmInsideOrderSuccessMsg msg = (FmInsideOrderSuccessMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),FmInsideOrderSuccessMsg.class); + msg.setMsgType(wxMsgRecord.getMsgType()); + msg.setReceiver(wxMsgRecord.getReceiver()); + msg.setTenantId(wxMsgRecord.getTenantId()); + mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + }else if(EnumMsgRecordType.INSIDE_COUPON_VERIFY.getCode().equals(wxMsgRecord.getMsgType())){ + FmInsideCouponVerifyMsg msg = (FmInsideCouponVerifyMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),FmInsideCouponVerifyMsg.class); + msg.setMsgType(wxMsgRecord.getMsgType()); + msg.setReceiver(wxMsgRecord.getReceiver()); + msg.setTenantId(wxMsgRecord.getTenantId()); + mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + }else if(EnumMsgRecordType.INSIDE_C_LOGIN.getCode().equals(wxMsgRecord.getMsgType())){ + FmInsideCLoginMsg msg = (FmInsideCLoginMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),FmInsideCLoginMsg.class); + msg.setMsgType(wxMsgRecord.getMsgType()); + msg.setReceiver(wxMsgRecord.getReceiver()); + msg.setTenantId(wxMsgRecord.getTenantId()); + mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + }else if(EnumMsgRecordType.INSIDE_NOTIFY_PAY_SUCCESS.getCode().equals(wxMsgRecord.getMsgType())){ + FmInsideNotifyPaySuccessMsg msg = (FmInsideNotifyPaySuccessMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),FmInsideNotifyPaySuccessMsg.class); + msg.setMsgType(wxMsgRecord.getMsgType()); + msg.setReceiver(wxMsgRecord.getReceiver()); + msg.setTenantId(wxMsgRecord.getTenantId()); + mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + }else if(EnumMsgRecordType.INSIDE_NOTIFY_REFUND_SUCCESS.getCode().equals(wxMsgRecord.getMsgType())){ + FmInsideNotifyRefundSuccessMsg msg = (FmInsideNotifyRefundSuccessMsg) JsonUtil.readValue(wxMsgRecord.getMsgJson(),FmInsideNotifyRefundSuccessMsg.class); + msg.setMsgType(wxMsgRecord.getMsgType()); + msg.setReceiver(wxMsgRecord.getReceiver()); + msg.setTenantId(wxMsgRecord.getTenantId()); + mqBaseProducer.sendMessage(msg, EnumMsgMqTopic.DEFAULT.getCode(), EnumMsgMqTag.DEFAULT.getCode(), EnumMsgMqKey.DEFAULT.getCode()); + } + } catch (Exception e) { + e.printStackTrace(); + logger.error("消息重发错误:" + e.getMessage()); + } + } + logger.info("消息重发结束..."); + } + + +} \ No newline at end of file diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java index b362e5a7d..6af580675 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/OrderExpiringSchedule.java @@ -2,14 +2,13 @@ package com.iformall.schedule; import com.iformall.domain.po.WxAppinfo; import com.iformall.domain.po.WxOrder; -import com.iformall.enums.EnumAppType; -import com.iformall.enums.EnumOrderStatus; -import com.iformall.enums.EnumOrderType; -import com.iformall.enums.EnumRefundStatus; +import com.iformall.enums.*; import com.iformall.mapper.WxAppinfoMapper; import com.iformall.mapper.WxCouponMapper; import com.iformall.mapper.WxOrderGroupMapper; import com.iformall.mapper.WxOrderMapper; +import com.iformall.mq.MqBaseProducer; +import com.iformall.service.WxMsgRecordService; import com.iformall.service.WxOrderGroupService; import com.iformall.service.WxOrderService; import com.iformall.service.WxRefundOrderService; @@ -20,7 +19,6 @@ import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; - import java.util.Date; import java.util.HashMap; import java.util.List; @@ -42,9 +40,6 @@ public class OrderExpiringSchedule { @Autowired WxOrderGroupMapper wxOrderGroupMapper; - @Autowired - WxOrderGroupService wxOrderGroupService; - @Autowired WxAppinfoMapper wxAppinfoMapper; @@ -143,7 +138,6 @@ public class OrderExpiringSchedule { } }); - } @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) diff --git a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java index 5013b693f..53b2703dc 100644 --- a/mallinkService/src/main/java/com/iformall/common/ErrorCode.java +++ b/mallinkService/src/main/java/com/iformall/common/ErrorCode.java @@ -236,7 +236,7 @@ public enum ErrorCode{ MP_TEMPLATE_SEND_FAILED(11009, "公众号模板消息发送失败"), UNIFORM_SEND_FAILED(11010, "小程序统一消息发送失败"), USER_LOGIN_FAILED(11011, "微信用户未登录或登录有问题"), - USER_NOT_AUTH_PHONE(11011, "用户小程序未授权手机号码"), + USER_NOT_AUTH_PHONE(11012, "用户小程序未授权手机号码"), /** * POS diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java b/mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java index f679a6f7a..28d473235 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMsgModel.java @@ -32,8 +32,8 @@ public enum EnumMsgModel { FLOW_C_REJECT_NODIFY(22, "驳回通知"), //会员生日券 - COUPON_BIRTHDAY_OPENED(28, "会员生日券开启"), - COUPON_BIRTHDAY_OPENED_NO(29, "会员生日券未开启"), + COUPON_BIRTHDAY_OPENED(28, "会员生日券倍率开启"), + COUPON_BIRTHDAY_OPENED_NO(29, "会员生日券倍率未开启"), ; public static EnumMsgModel getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordStatus.java index 70898af84..677c00e08 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumMsgRecordStatus.java @@ -1,5 +1,6 @@ package com.iformall.enums; + /** * Created by luozukai */ diff --git a/mallinkService/src/main/java/com/iformall/mq/impl/RabbitMqMessageProducer.java b/mallinkService/src/main/java/com/iformall/mq/impl/RabbitMqMessageProducer.java index f248ec48c..70db1c762 100644 --- a/mallinkService/src/main/java/com/iformall/mq/impl/RabbitMqMessageProducer.java +++ b/mallinkService/src/main/java/com/iformall/mq/impl/RabbitMqMessageProducer.java @@ -46,17 +46,19 @@ public class RabbitMqMessageProducer implements MqBaseProducer , RabbitTemplate. @Override public void confirm(CorrelationData correlationData, boolean ack, String cause) { log.info("confirm:: correlationData {},ack {}, cause {}", correlationData,ack,cause); - System.out.println(); - if(ack){ - System.out.println(); - }else{ - BaseMsg data = new BaseMsg(); - data.setMsgStatus(EnumMsgRecordStatus.SEND_FAIL.getCode()); - wxMsgRecordMapper.update(data); + if(!ack){ + try { + BaseMsg data = new BaseMsg(); + data.setUuid(correlationData.getId()); + data.setMsgStatus(EnumMsgRecordStatus.SEND_FAIL.getCode()); + data.setStatusMessage(cause); + wxMsgRecordMapper.update(data); + } catch (Exception e) { + log.error(" RabbitMqMessageProducer.confirm.updateDb Error", e); + } } } - @Override public void returnedMessage(Message message, int replyCode, String replyText, String exchange, String routingKey) { log.info("returnedMessage::message {} 消息发送失败,应答码:{}, 应答描述:{} ,exchange: {} ,routingKey :{}", new String(message.getBody()), replyCode, replyText, exchange, routingKey); @@ -64,18 +66,18 @@ public class RabbitMqMessageProducer implements MqBaseProducer , RabbitTemplate. @Override public void sendMessage(BaseMsg data, String topic, String tags, String keys) { - String tag = UUID.randomUUID().toString(); + String uuid = UUID.randomUUID().toString(); try { - data.setUuid(tag); + data.setUuid(uuid); wxMsgRecordService.save(data); - CorrelationData correlationData = new CorrelationData(tag); + CorrelationData correlationData = new CorrelationData(uuid); rabbitTemplate.convertAndSend(topic, (Object) JsonUtil.obj2Json(data),correlationData); // data.setMsgStatus(EnumMsgRecordStatus.SEND_SUCC.getCode()); // wxMsgRecordMapper.update(data); log.info(data.getUuid()+"发送mq成功。"); } catch (Exception e) { - log.error(tag + " RabbitMqMessageProducer: Send Message Error", e); + log.error(uuid + " RabbitMqMessageProducer: Send Message Error", e); } } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java index 78c924715..8af5bdc45 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleRecordServiceImpl.java @@ -54,7 +54,12 @@ public class WxBillSettleRecordServiceImpl implements WxBillSettleRecordService record.setSettleMoney(-record.getSettleMoney()); } - String str = EnumSettleRecordWay.getEnum(record.getSettleWay()).getMessage()+"收款"+new BigDecimal(record.getSettleMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)+"元"; + String str; + if(EnumSettleRecordWay.OTHER.getCode().equals(record.getSettleWay())){ + str = record.getRemark()+"-收款"+new BigDecimal(record.getSettleMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)+"元"; + }else{ + str = EnumSettleRecordWay.getEnum(record.getSettleWay()).getMessage()+"收款"+new BigDecimal(record.getSettleMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP)+"元"; + } record.setDetail(str); if(mallUserInfo != null) { record.setUserid(mallUserInfo.getId()); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java index 46f5b1792..e458926d0 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillSettleServiceImpl.java @@ -192,7 +192,11 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { if(dbBill.getReceivePay() == null) dbBill.setReceivePay(0l); wxBillRent.setPay(dbBill.getPay()+dbBill.getReceivePay() ); //押金是ReceivePay wxBillRent.setPayDate(new Date()); - wxBillRent.setStatus(EnumBillRentStatus.RETURN.getCode()); + if(EnumSettleBillType.R.getCode().equals(bill.getType())){ + wxBillRent.setStatus(EnumBillRentStatus.PAID.getCode()); + }else{ + wxBillRent.setStatus(EnumBillRentStatus.RETURN.getCode()); + } addBillAction(bill.getBillId(), dbBill.getOwe()); } } @@ -212,7 +216,11 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { if(dbBill.getReceivePay() == null) dbBill.setReceivePay(0l); wxBillOtherDeposit.setPay(dbBill.getPay()+ dbBill.getReceivePay()); wxBillOtherDeposit.setPayDate(new Date()); - wxBillOtherDeposit.setStatus(EnumBillRentStatus.RETURN.getCode()); + if(EnumSettleBillType.R.getCode().equals(bill.getType())){ + wxBillOtherDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); + }else{ + wxBillOtherDeposit.setStatus(EnumBillRentStatus.RETURN.getCode()); + } addBillAction(bill.getBillId(), dbBill.getOwe()); } } @@ -232,7 +240,11 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { if(dbBill.getReceivePay() == null) dbBill.setReceivePay(0l); propertyDeposit.setPay(dbBill.getPay()+ dbBill.getReceivePay()); propertyDeposit.setPayDate(new Date()); - propertyDeposit.setStatus(EnumBillRentStatus.RETURN.getCode()); + if(EnumSettleBillType.R.getCode().equals(bill.getType())){ + propertyDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); + }else{ + propertyDeposit.setStatus(EnumBillRentStatus.RETURN.getCode()); + } addBillAction(bill.getBillId(), dbBill.getOwe()); } } @@ -272,7 +284,11 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { if(dbBill.getReceivePay() == null) dbBill.setReceivePay(0l); propertyDeposit.setPay(dbBill.getPay()+dbBill.getReceivePay()); propertyDeposit.setPayDate(new Date()); - propertyDeposit.setStatus(EnumBillRentStatus.RETURN.getCode()); + if(EnumSettleBillType.R.getCode().equals(bill.getType())){ + propertyDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); + }else{ + propertyDeposit.setStatus(EnumBillRentStatus.RETURN.getCode()); + } addBillAction(bill.getBillId(), dbBill.getOwe()); } } @@ -311,7 +327,11 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { if(dbBill.getReceivePay() == null) dbBill.setReceivePay(0l); wxBillRent.setPay(dbBill.getPay()+dbBill.getReceivePay()); wxBillRent.setPayDate(new Date()); - wxBillRent.setStatus(EnumBillRentStatus.RETURN.getCode()); + if(EnumSettleBillType.R.getCode().equals(bill.getType())){ + wxBillRent.setStatus(EnumBillRentStatus.PAID.getCode()); + }else{ + wxBillRent.setStatus(EnumBillRentStatus.RETURN.getCode()); + } addBillAction(bill.getBillId(), dbBill.getOwe()); } } @@ -339,7 +359,11 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { if(dbBill.getReceivePay() == null) dbBill.setReceivePay(0l); wxBillRent.setPay(dbBill.getPay()+dbBill.getReceivePay()); wxBillRent.setPayDate(new Date()); - wxBillRent.setStatus(EnumBillRentStatus.RETURN.getCode()); + if(EnumSettleBillType.R.getCode().equals(bill.getType())){ + wxBillRent.setStatus(EnumBillRentStatus.PAID.getCode()); + }else{ + wxBillRent.setStatus(EnumBillRentStatus.RETURN.getCode()); + } addBillAction(bill.getBillId(), dbBill.getOwe()); } } @@ -382,6 +406,28 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { } } wxBillOtherMapper.updateByPrimaryKeySelective(wxBillRent); + + WxBillPropertyDeposit propertyDeposit = new WxBillPropertyDeposit(); + propertyDeposit.setId(bill.getBillId()); + if(freezeStatus != null) propertyDeposit.setFreeze(freezeStatus); + if(status != null){ + propertyDeposit.setStatus(status); + propertyDeposit.setPayDate(new Date()); + } + if(EnumBillRentStatus.PAID.getCode().equals(status)){ + WxBillPropertyDeposit dbBill = wxBillPropertyDepositMapper.selectByPrimaryKey(wxBillRent.getId()); + if(dbBill!=null) { + propertyDeposit.setPay(dbBill.getPay()+dbBill.getReceivePay()); + propertyDeposit.setPayDate(new Date()); + if(EnumSettleBillType.R.getCode().equals(bill.getType())){ + propertyDeposit.setStatus(EnumBillRentStatus.PAID.getCode()); + }else{ + propertyDeposit.setStatus(EnumBillRentStatus.RETURN.getCode()); + } + addBillAction(bill.getBillId(), dbBill.getOwe()); + } + } + wxBillPropertyDepositMapper.updateByPrimaryKeySelective(propertyDeposit); } } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java index 27284bbdc..324631227 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxCreditHistoryServiceImpl.java @@ -198,14 +198,11 @@ public class WxCreditHistoryServiceImpl implements WxCreditHistoryService { @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) public WxCreditHistory saveOrUpdate(WxCreditHistory record) { WxCUser wxCUser = wxCUserMapper.selectByPrimaryKey(record.getCUserId()); - WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectByPrimaryKey(record.getCUserId()); if (wxCUser == null) { //验证此用户是否存在 throw new MallinkException(ErrorCode.USER_IS_EMPTY); } - if(wxCUserBasicInfo == null) { - throw new MallinkException(ErrorCode.USER_NOT_AUTH_PHONE); - } + WxCUserBasicInfo wxCUserBasicInfo = wxCUserBasicInfoMapper.selectByPrimaryKey(record.getCUserId()); if (StringUtils.isNotEmpty(record.getSpendStr())) { record.setSpend(new BigDecimal(record.getSpendStr()).multiply(new BigDecimal(100)).intValue()); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index ffc3f5063..01d05bb16 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -429,6 +429,12 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService logger.info("id:{},启动审批流成功,是否补录:{}", record.getRentContractId().toString(), record.getMerchantId() != null); } } + }else{ + //审批状态重置 + WxPropertyContract updateRentContract = new WxPropertyContract(); + updateRentContract.setId(record.getId()); + updateRentContract.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + wxPropertyContractMapper.updateByPrimaryKeySelective(updateRentContract); } return new ResultData(Result.SUCCESS, message, record); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java index fcb615f4d..09ba62644 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRefundOrderServiceImpl.java @@ -542,7 +542,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { try { signMap = BeanUtils.toStringMap(wxRefundOrderSP); } catch (Exception e) { - logger.error("退款命令生辰: " + e.getMessage()); + logger.error("退款命令生成: " + e.getMessage()); throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), "退款签名异常"); } @@ -580,7 +580,7 @@ public class WxRefundOrderServiceImpl implements WxRefundOrderService { errMsg = errObj.toJSONString(); record.setFailReason(errMsg); } else { - errMsg = returnMap.get("return_msg"); + errMsg = returnMap.get("err_code_des"); record.setFailReason(errMsg); } record.setRefundOrderStatus(EnumRefundStatus.REFUND_REQ_FAIL.getCode()); 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 34f50baca..9e68f65cc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -510,6 +510,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxRentContractMapper.updateStatus(updateRentContract); logger.info("id:{},启动审批流成功, 是否补录:{}", record.getId().toString(), record.getMerchantId() != null); } + }else{ + //审批状态重置 + WxRentContract updateRentContract = new WxRentContract(); + updateRentContract.setId(record.getId()); + updateRentContract.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + updateApplyStatus(updateRentContract); } //生成预览账单(补录第二步,第三步走编辑) @@ -567,6 +573,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxRentContractMapper.updateStatus(updateRentContract); logger.info("id:{},启动审批流成功 ,是否补录:{}", record.getId().toString(), record.getMerchantId() != null); } + }else{ + //审批状态重置 + WxRentContract updateRentContract = new WxRentContract(); + updateRentContract.setId(record.getId()); + updateRentContract.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + updateApplyStatus(updateRentContract); } //保存调整金额(预账单调整) @@ -1642,6 +1654,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxRentContractMapper.updateStatus(updateRentContract); logger.info("id:{},启动审批流成功,是否补录:{}", record.getId().toString(), record.getMerchantId() != null); } + }else{ + //审批状态重置 + WxRentContract updateRentContract = new WxRentContract(); + updateRentContract.setId(record.getId()); + updateRentContract.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + updateApplyStatus(updateRentContract); } return resultData; diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml index ddee59f94..15092fdc6 100644 --- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml @@ -731,7 +731,7 @@ select tt.* from ( select m.tenant_id,m.id,m.name,ws.shop_number shopNumber,ws.type,m.link_person linkPerson,m.link_phone linkPhone, xb.title business,rc.rental_start_date rentalStartDate,rc.rental_end_date rentalEndDate,rc.rent_shop_type, - round( + ifnull(round( (select sum(bill.receive_pay) from ( select merchant_id,receive_pay from wx_bill_rent where is_preview = 0 and status not in(3,6) union all @@ -747,8 +747,8 @@ union all select merchant_id,receive_pay from wx_bill_other_deposit where status not in(3,6) ) bill where bill.merchant_id = m.id - )/100,2) receivePay, - round( + )/100,2),0) receivePay, + ifnull(round( (select sum(ss.money) from ( select ms.subsidy money,mm.id from wx_merchant_subsidy ms @@ -765,9 +765,9 @@ union all select receive_pay money,merchant_id id from wx_bill_other_deposit where status = 3 )ss where ss.id = m.id - )/100,2) payOut, - - (round( + )/100,2),0) payOut, + + (ifnull(round( (select sum(bill.receive_pay) from ( select merchant_id,receive_pay from wx_bill_rent where is_preview = 0 and status not in(3,6) union all @@ -783,8 +783,8 @@ union all select merchant_id,receive_pay from wx_bill_other_deposit where status not in(3,6) ) bill where bill.merchant_id = m.id - )/100,2)- - round( + )/100,2),0)- + ifnull(round( (select sum(ss.money) from ( select ms.subsidy money,mm.id from wx_merchant_subsidy ms @@ -801,7 +801,7 @@ union all select receive_pay money,merchant_id id from wx_bill_other_deposit where status = 3 )ss where ss.id = m.id - )/100,2)) balance + )/100,2),0)) balance from wx_merchant m left join (select ms.merchant_id,s.type,GROUP_CONCAT(s.shop_number) as shop_number diff --git a/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml b/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml index 925ff783e..b68eaa467 100644 --- a/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillSettleBillMapper.xml @@ -1,214 +1,207 @@ - - - + + + - - - - - - + + + + + + - - - - + + + + - + - + `id`,`tenant_id`,`settle_id`,`type`,`bill_id`,`bill_type` ,`createtime`,`updatetime` - - where 1=1 - and `id` = #{id} - and `tenant_id` = #{tenantId} - - - and id in - - #{idItem} - - - order by ${sortColumns} - - - - - - - - - - + + where 1=1 + and `id` = #{id} + and `tenant_id` = #{tenantId} + + + and id in + + #{idItem} + + + order by ${sortColumns} + + + + + + + + delete from wx_bill_settle_bill where settle_id = #{id} - + diff --git a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml index 9de3c6797..8663c25d8 100644 --- a/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxCouponOrderMapper.xml @@ -587,7 +587,7 @@ co.id,co.tenant_id,co.coupon_id,co.coupon_type,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price, - c.title,c.sale_price,c.use_price,c.price,c.unit,c.auto_refund,c.business,c.subsidy_type,c.subsidy_num, + c.title,c.sale_price,c.use_price,c.price,c.unit,c.auto_refund,c.business,c.subsidy_type,ms.subsidy subsidy_num, (case when com.mc=1 then (select m.name from wx_merchant m, wx_coupon_merchant cm where m.id = cm.merchant_id and cm.product_id=co.coupon_id and cm.status = 0) else '[多商户通用]' end) as merchant_name, @@ -598,7 +598,7 @@ co.id,co.tenant_id,co.coupon_id,co.coupon_type,co.c_user_id,co.owner_id,co.b_user_id,co.order_id,co.expired_time,co.coupon_order_status,co.create_date,co.update_date,co.coupon_price, - c.type,c.title,c.sale_price,c.use_price,c.price,c.unit,c.auto_refund,c.business,c.subsidy_type,c.subsidy_num, + c.type,c.title,c.sale_price,c.use_price,c.price,c.unit,c.auto_refund,c.business,c.subsidy_type,ms.subsidy subsidy_num, bu.name, bu.phone as bphone, cu.phone, m.name as merchant_name,m.id as merchant_id @@ -606,8 +606,8 @@ diff --git a/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/DataInitController.java b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/DataInitController.java new file mode 100644 index 000000000..cc1ce4e7e --- /dev/null +++ b/mallinkSysAdmin/src/main/java/com/iformall/controller/sys/DataInitController.java @@ -0,0 +1,95 @@ +package com.iformall.controller.sys; + +import com.iformall.common.ErrorCode; +import com.iformall.common.IdWorker; +import com.iformall.common.ResultData; +import com.iformall.domain.po.WxMall; +import com.iformall.domain.po.WxMsgSignature; +import com.iformall.domain.po.WxMsgValidationcodeModel; +import com.iformall.enums.EnumMsgModel; +import com.iformall.mapper.WxMallMapper; +import com.iformall.mapper.WxMsgSignatureMapper; +import com.iformall.mapper.WxMsgValidationcodeModelMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 数据初始化 + */ +@Slf4j +@RestController +@RequestMapping("sys") +public class DataInitController { + + + @Resource + private WxMallMapper mallMapper; + @Resource + private WxMsgSignatureMapper signatureMapper; + @Resource + private WxMsgValidationcodeModelMapper modelMapper; + + @GetMapping("/init") + public ResultData init() { + try { + addBirthDayMsgModel(); + } catch (Exception e) { + log.error("DataInitController::init error ", e); + return new ResultData(ErrorCode.MSG_METHOD_REQUEST_ERROR, e.getMessage()); + } + + return new ResultData(); + } + + /** + * 增加会员生日短信模板 + */ + @Transactional(rollbackFor = Exception.class) + public void addBirthDayMsgModel() { + List list = signatureMapper.selectAll(); + Map tenantOfSignature = list.stream().collect(Collectors.toMap(WxMsgSignature::getTenantId, WxMsgSignature::getName)); + IdWorker idWorker = IdWorker.get(); + addBirthDayMsgModelToMall(tenantOfSignature, EnumMsgModel.COUPON_BIRTHDAY_OPENED, idWorker, "亲到的{userName},在您的生日到来之际,我们精心的为您准备了一份生日礼物,并在生日当天消费领取{creditScale}倍积分,赶快打开{mallName}微信小程序领取您的专属生日礼物吧!"); + addBirthDayMsgModelToMall(tenantOfSignature, EnumMsgModel.COUPON_BIRTHDAY_OPENED_NO, idWorker, "亲到的{userName},在您的生日到来之际,我们精心的为您准备了一份生日礼物,赶快打开{mallName}微信小程序领取您的专属生日礼物吧!"); + } + + private void addBirthDayMsgModelToMall(Map tenantOfSignature, EnumMsgModel type, IdWorker idWorker, String content) { + //查找已经添加过的接口列表 + WxMsgValidationcodeModel query = new WxMsgValidationcodeModel(); + query.setMsgType(1); + query.setType(type.getCode()); + List dbModelList = modelMapper.select(query); + Map dbModelMap = dbModelList.stream().collect(Collectors.toMap(WxMsgValidationcodeModel::getTenantId, WxMsgValidationcodeModel::getName)); + + List malls = mallMapper.selectAll(); + malls.stream().filter(wxMall -> !dbModelMap.containsKey(wxMall.getTenantId())).forEach(wxMall -> { + addBirthDayMsgModelItem(tenantOfSignature, idWorker, wxMall, type, content); + }); + } + + private void addBirthDayMsgModelItem(Map tenantOfSignature, IdWorker idWorker, WxMall wxMall, EnumMsgModel msgModel, String content) { + WxMsgValidationcodeModel model = new WxMsgValidationcodeModel(); + model.setTenantId(wxMall.getTenantId()); + model.setId(idWorker.nextId()); + model.setType(msgModel.getCode()); + model.setName(msgModel.getMessage()); + model.setSignature(tenantOfSignature.get(wxMall.getTenantId())); + model.setContent(content); + model.setCreatetime(new Date()); + model.setStatus(1); + model.setMinutes(0); + model.setOpen(0); + model.setMsgType(1); + model.setRoleType(3); + modelMapper.insertSelective(model); + } +}