wuxw
2024-08-03 1bfa231da18581f9af6cb7953d1488912b2efb67
优化业主端 发送欠费后第一次查不到的问题
2个文件已修改
2个文件已添加
204 ■■■■■ 已修改文件
service-acct/src/main/java/com/java110/acct/cmd/account/QueryOwnerAccountCmd.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/fee/QueryOwnerOweFeeCmd.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-acct/src/main/java/com/java110/acct/cmd/account/QueryOwnerAccountCmd.java
New file
@@ -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);
    }
}
service-fee/src/main/java/com/java110/fee/cmd/fee/QueryOwnerOweFeeCmd.java
New file
@@ -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);
    }
}
service-job/src/main/java/com/java110/job/adapt/fee/OweFeeCallableAdapt.java
@@ -142,7 +142,7 @@
                    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;
service-job/src/main/java/com/java110/job/task/wechat/FeeCollectionPushMessageTemplate.java
@@ -328,9 +328,9 @@
                    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);
                        }
                    }