Просмотр исходного кода

优化业主端 发送欠费后第一次查不到的问题

wuxw 1 год назад
Родитель
Сommit
1bfa231da1

+ 98 - 0
service-acct/src/main/java/com/java110/acct/cmd/account/QueryOwnerAccountCmd.java

@@ -0,0 +1,98 @@
+package com.java110.acct.cmd.account;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.acct.bmo.account.IGetAccountBMO;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.CmdContextUtils;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.account.AccountDto;
+import com.java110.dto.contract.ContractDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerAppUserDto;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerAppUserV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerV1InnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.ListUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * 查询业主账户
+ */
+@Java110Cmd(serviceCode = "account.queryOwnerAccount")
+public class QueryOwnerAccountCmd extends Cmd {
+
+    @Autowired
+    private IOwnerAppUserV1InnerServiceSMO ownerAppUserV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
+
+    @Autowired
+    private IGetAccountBMO getAccountBMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
+        super.validatePageInfo(reqJson);
+
+
+
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        String userId = CmdContextUtils.getUserId(context);
+        OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
+        ownerAppUserDto.setUserId(userId);
+        ownerAppUserDto.setCommunityId(reqJson.getString("communityId"));
+        List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserV1InnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
+        if (ListUtil.isNull(ownerAppUserDtos)
+                || OwnerAppUserDto.STATE_AUDIT_ERROR.equals(ownerAppUserDtos.get(0).getState())) {
+            throw new CmdException("用户未认证,请先认证");
+        }
+
+        if (OwnerAppUserDto.STATE_AUDITING.equals(ownerAppUserDtos.get(0).getState())) {
+            ResultVo resultVo = new ResultVo(-101, "认证审核中");
+            context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
+            return;
+        }
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setMemberId(ownerAppUserDtos.get(0).getMemberId());
+        ownerDto.setCommunityId(ownerAppUserDtos.get(0).getCommunityId());
+        List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
+        if (ListUtil.isNull(ownerDtos)) {
+            throw new CmdException("业主不存在");
+        }
+
+        ownerDto = ownerDtos.get(0);
+
+        //reqJson.put("ownerId", ownerDto.getOwnerId());
+        reqJson.put("link", ownerDto.getLink());
+        reqJson.put("ownerId", ownerDto.getOwnerId());
+
+
+        AccountDto accountDto = BeanConvertUtil.covertBean(reqJson, AccountDto.class);
+
+        ResponseEntity<String> responseEntity = getAccountBMOImpl.queryOwnerAccount(accountDto, ownerDto);
+
+        context.setResponseEntity(responseEntity);
+    }
+}

+ 100 - 0
service-fee/src/main/java/com/java110/fee/cmd/fee/QueryOwnerOweFeeCmd.java

@@ -0,0 +1,100 @@
+package com.java110.fee.cmd.fee;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.CmdContextUtils;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.owner.OwnerAppUserDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.fee.bmo.IQueryOweFee;
+import com.java110.intf.user.IOwnerAppUserInnerServiceSMO;
+import com.java110.intf.user.IOwnerAppUserV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerV1InnerServiceSMO;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.ListUtil;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * 查询业主综合缴费(欠费)
+ */
+@Java110Cmd(serviceCode = "fee.queryOwnerOweFee")
+public class QueryOwnerOweFeeCmd extends Cmd {
+
+    @Autowired
+    private IOwnerAppUserV1InnerServiceSMO ownerAppUserV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IQueryOweFee queryOweFeeImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区");
+        super.validatePageInfo(reqJson);
+
+
+        String userId = CmdContextUtils.getUserId(context);
+        OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
+        ownerAppUserDto.setUserId(userId);
+        ownerAppUserDto.setCommunityId(reqJson.getString("communityId"));
+        List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserV1InnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
+        if (ListUtil.isNull(ownerAppUserDtos)
+                || OwnerAppUserDto.STATE_AUDIT_ERROR.equals(ownerAppUserDtos.get(0).getState())) {
+            throw new CmdException("用户未认证,请先认证");
+        }
+
+        if (OwnerAppUserDto.STATE_AUDITING.equals(ownerAppUserDtos.get(0).getState())) {
+            ResultVo resultVo = new ResultVo(-101, "认证审核中");
+            context.setResponseEntity(ResultVo.createResponseEntity(resultVo));
+            return;
+        }
+
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setMemberId(ownerAppUserDtos.get(0).getMemberId());
+        ownerDto.setCommunityId(ownerAppUserDtos.get(0).getCommunityId());
+        List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
+        if (ListUtil.isNull(ownerDtos)) {
+            throw new CmdException("业主不存在");
+        }
+
+        ownerDto = ownerDtos.get(0);
+
+        reqJson.put("ownerId", ownerDto.getOwnerId());
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+
+        FeeDto feeDto = BeanConvertUtil.covertBean(reqJson, FeeDto.class);
+
+        String payObjId = reqJson.getString("payObjId");
+        if (!StringUtil.isEmpty(payObjId)) {
+            feeDto.setPayerObjId("");
+            if (payObjId.contains(",")) {
+                feeDto.setPayerObjIds(payObjId.split(","));
+            } else {
+                feeDto.setPayerObjId(payObjId);
+            }
+        }
+        String targetEndTime = reqJson.getString("targetEndTime");
+        if (!StringUtil.isEmpty(targetEndTime)) {
+            targetEndTime = targetEndTime + " 23:59:59";
+            feeDto.setTargetEndTime(targetEndTime);
+        }
+        ResponseEntity<String> responseEntity = queryOweFeeImpl.query(feeDto);
+        context.setResponseEntity(responseEntity);
+    }
+}

+ 1 - 1
service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java

@@ -142,7 +142,7 @@ public class OweFeeCallableAdapt extends DatabusAdaptImpl {
                     content.put("payerObjName", oweFeeCallablePo.getPayerObjName());
                     content.put("billAmountOwed", oweFeeCallablePo.getAmountdOwed());
                     content.put("date", DateUtil.dateTimeToDate(oweFeeCallablePo.getStartTime()) + "~" + DateUtil.dateTimeToDate(oweFeeCallablePo.getEndTime()));
-                    content.put("url", oweUrl + oweFeeCallablePo.getPayerObjId());
+                    content.put("url", oweUrl + oweFeeCallablePo.getPayerObjId()+"&communityId="+oweFeeCallablePo.getCommunityId());
 
                     if (OweFeeCallableDto.CALLABLE_WAY_SMS.equals(oweFeeCallablePo.getCallableWay())) {
                         notifyWay = MsgNotifyFactory.NOTIFY_WAY_ALI;

+ 11 - 11
service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java

@@ -210,7 +210,7 @@ public class FeeCollectionPushMessageTemplate extends TaskSystemQuartz {
                 feeCollectionDetailPo.setCollectionWay(FeeCollectionOrderDto.COLLECTION_WAY_SMS);
                 break;
             case FeeCollectionOrderDto.COLLECTION_WAY_WECHAT:
-                if(StringUtil.isEmpty(reportOweFeeDo.getOwnerId())  || "-1".equals(reportOweFeeDo.getOwnerId())){
+                if (StringUtil.isEmpty(reportOweFeeDo.getOwnerId()) || "-1".equals(reportOweFeeDo.getOwnerId())) {
                     return;
                 }
                 if (!StringUtil.isEmpty(reportOweFeeDo.getOwnerId())) {
@@ -297,7 +297,7 @@ public class FeeCollectionPushMessageTemplate extends TaskSystemQuartz {
             oweUrl = FeeDto.PAYER_OBJ_TYPE_ROOM.equals(reportOweFeeDo.getPayerObjType()) ? oweRoomUrl : oweCarUrl;
             String[] roomName = new String[]{};
             if ("3333".equals(reportOweFeeDo.getPayerObjType())) {
-                roomName = itemDto.getPayerObjName().split("-",3);
+                roomName = itemDto.getPayerObjName().split("-", 3);
             }
             for (OwnerAppUserDto appUserDto : ownerAppUserDtos) {
                 try {
@@ -328,9 +328,9 @@ public class FeeCollectionPushMessageTemplate extends TaskSystemQuartz {
 
                     if (!StringUtil.isEmpty(oweUrl)) {
                         if (miniprogram == null) {
-                            templateMessage.setUrl(oweUrl + itemDto.getPayerObjId() + "&wAppId=" + weChatDto.getAppId());
+                            templateMessage.setUrl(oweUrl + itemDto.getPayerObjId() + "&communityId=" + appUserDto.getCommunityId() + "&wAppId=" + weChatDto.getAppId());
                         } else {
-                            miniprogram.setPagepath(oweUrl.split("@@")[1] + itemDto.getPayerObjId() + "&wAppId=" + weChatDto.getAppId());
+                            miniprogram.setPagepath(oweUrl.split("@@")[1] + itemDto.getPayerObjId() + "&communityId=" + appUserDto.getCommunityId() + "&wAppId=" + weChatDto.getAppId());
                             templateMessage.setMiniprogram(miniprogram);
                         }
                     }
@@ -388,11 +388,11 @@ public class FeeCollectionPushMessageTemplate extends TaskSystemQuartz {
             param.put("date2", DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B));
             param.put("mount", reportOweFeeDo.getAmountOwed());
             paramIn = param;
-        }else if(SendSmsFactory.SMS_COMPANY_YIDONG.equals(smsConfigDto1.getSmsType())){
-            paramIn = "尊敬的业主"+ reportOweFeeDo.getOwnerName()+",您"+reportOweFeeDo.getPayerObjName()+"的"+itemDtos.get(0).getFeeName()
-                    +",账单日期"+DateUtil.getFormatTimeString(itemDtos.get(0).getStartTime(), DateUtil.DATE_FORMATE_STRING_B)
-                    +"至"+DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B)
-                    +",缴费金额:"+reportOweFeeDo.getAmountOwed()+"元,请及时缴费";
+        } else if (SendSmsFactory.SMS_COMPANY_YIDONG.equals(smsConfigDto1.getSmsType())) {
+            paramIn = "尊敬的业主" + reportOweFeeDo.getOwnerName() + ",您" + reportOweFeeDo.getPayerObjName() + "的" + itemDtos.get(0).getFeeName()
+                    + ",账单日期" + DateUtil.getFormatTimeString(itemDtos.get(0).getStartTime(), DateUtil.DATE_FORMATE_STRING_B)
+                    + "至" + DateUtil.getFormatTimeString(endTime, DateUtil.DATE_FORMATE_STRING_B)
+                    + ",缴费金额:" + reportOweFeeDo.getAmountOwed() + "元,请及时缴费";
         } else {
             paramIn = new String[]{
                     reportOweFeeDo.getOwnerName(),
@@ -469,8 +469,8 @@ public class FeeCollectionPushMessageTemplate extends TaskSystemQuartz {
         }
         String url = sendTemplate + accessToken;
 
-        String oweRoomUrl = UrlCache.getOwnerUrl()+MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_FEE_PAGE);
-        String oweCarUrl = UrlCache.getOwnerUrl()+MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_CAR_FEE_PAGE);
+        String oweRoomUrl = UrlCache.getOwnerUrl() + MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_FEE_PAGE);
+        String oweCarUrl = UrlCache.getOwnerUrl() + MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.OWE_CAR_FEE_PAGE);
         Miniprogram miniprogram = null;
         if (oweRoomUrl.contains("@@")) {
             miniprogram = new Miniprogram();