java110
2023-06-28 7cd9cc73b6bbae05e8fa734e29f6cd435e2599ba
Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity
1个文件已添加
5个文件已修改
299 ■■■■■ 已修改文件
service-api/src/main/java/com/java110/api/smo/GetCommunityStoreInfoSMOImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-fee/src/main/java/com/java110/fee/cmd/fee/ListFeePayerObjCmd.java 276 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-store/src/main/java/com/java110/store/cmd/store/QueryStoreByUserCmd.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot/src/main/java/com/java110/boot/smo/GetCommunityStoreInfoSMOImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot/src/main/java/com/java110/boot/smo/api/impl/ApiSMOImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-api/src/main/java/com/java110/api/smo/GetCommunityStoreInfoSMOImpl.java
@@ -36,7 +36,8 @@
        }
        if(!StringUtil.isJsonObject(responseEntity.getBody())){
            return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody());
           // return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody());
            throw new IllegalArgumentException(responseEntity.getBody());
        }
        JSONObject paramJson = JSONObject.parseObject(responseEntity.getBody());
service-fee/src/main/java/com/java110/fee/bmo/impl/ImportRoomFeeImpl.java
@@ -327,7 +327,7 @@
        }
        FeeConfigDto feeConfigDto = new FeeConfigDto();
        feeConfigDto.setFeeTypeCd(feeTypeCd);
        feeConfigDto.setFeeName(feeName);
        feeConfigDto.setFeeNameEq(feeName);
        feeConfigDto.setComputingFormula(FeeConfigDto.COMPUTING_FORMULA_DYNAMIC);
        feeConfigDto.setCommunityId(communityId);
        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
@@ -506,7 +506,7 @@
        }
        FeeConfigDto feeConfigDto = new FeeConfigDto();
        feeConfigDto.setFeeTypeCd(feeTypeCd);
        feeConfigDto.setFeeName(feeName);
        feeConfigDto.setFeeNameEq(feeName);
        feeConfigDto.setComputingFormula(FeeConfigDto.COMPUTING_FORMULA_DYNAMIC);
        feeConfigDto.setCommunityId(communityId);
        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
@@ -670,7 +670,7 @@
        payFeeConfigPo.setFeeFlag("2006012");
        payFeeConfigPo.setIsDefault("F");
        payFeeConfigPo.setPaymentCd("2100");
        payFeeConfigPo.setFeeName(feeConfigDto.getFeeName());
        payFeeConfigPo.setFeeName(feeConfigDto.getFeeNameEq());
        payFeeConfigPo.setSquarePrice("0");
        payFeeConfigPo.setPaymentCycle("1");
        payFeeConfigPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
service-fee/src/main/java/com/java110/fee/cmd/fee/ListFeePayerObjCmd.java
New file
@@ -0,0 +1,276 @@
package com.java110.fee.cmd.fee;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.doc.annotation.*;
import com.java110.dto.contract.ContractDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.fee.PayFeeDto;
import com.java110.dto.owner.OwnerCarDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.dto.owner.OwnerRoomRelDto;
import com.java110.dto.room.RoomDto;
import com.java110.intf.community.IRoomV1InnerServiceSMO;
import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
import com.java110.intf.store.IContractInnerServiceSMO;
import com.java110.intf.user.IBuildingOwnerV1InnerServiceSMO;
import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
import com.java110.intf.user.IOwnerRoomRelV1InnerServiceSMO;
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.StringUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import java.text.ParseException;
import java.util.List;
/**
 * 查询费用 对象信息
 */
@Java110CmdDoc(title = "查询费用作用对象",
        description = "供三方系统查询的费用对象 比如 房屋 车辆 合同等",
        httpMethod = "get",
        url = "http://{ip}:{port}/app/fee.listFeePayerObj",
        resource = "feeDoc",
        author = "吴学文",
        serviceCode = "fee.listFeePayerObj",
        seq = 1
)
@Java110ParamsDoc(params = {
        @Java110ParamDoc(name = "communityId", length = 30, remark = "小区ID"),
        @Java110ParamDoc(name = "payerObjId", length = 30, remark = "对象ID"),
        @Java110ParamDoc(name = "payerObjType", length = 12, remark = "对象类型"),
})
@Java110ResponseDoc(
        params = {
                @Java110ParamDoc(name = "code", type = "int", length = 11, defaultValue = "0", remark = "返回编号,0 成功 其他失败"),
                @Java110ParamDoc(name = "msg", type = "String", length = 250, defaultValue = "成功", remark = "描述"),
                @Java110ParamDoc(name = "data", type = "Object", length = -1, defaultValue = "成功", remark = "数据"),
                @Java110ParamDoc(parentNodeName = "data", name = "payerObjId", length = 30, remark = "费用对象ID"),
                @Java110ParamDoc(parentNodeName = "data", name = "payerObjName", length = 64, remark = "费用对象名称"),
                @Java110ParamDoc(parentNodeName = "data", name = "paNum", length = 11, remark = "停车场"),
                @Java110ParamDoc(parentNodeName = "data", name = "psNum", length = 30, remark = "车位"),
                @Java110ParamDoc(parentNodeName = "data", name = "ownerId", length = 30, remark = "业主Id"),
                @Java110ParamDoc(parentNodeName = "data", name = "ownerName", length = 64, remark = "业主名称"),
                @Java110ParamDoc(parentNodeName = "data", name = "tel", length = 11, remark = "手机号"),
        }
)
@Java110ExampleDoc(
        reqBody = "http://ip:port/app/fee.listFeePayerObj?payerObjId=1001&payerObjType=3333&communityId=2022121921870161",
        resBody = "{\n" +
                "\t\"data\": {\n" +
                "\t\t\"payerObjId\": \"张三\",\n" +
                "\t\t\"payerObjName\": \"\",\n" +
                "\t\t\"paNum\": \"18909718888\",\n" +
                "\t\t\"psNum\": \"772023012589770046\",\n" +
                "\t\t\"ownerId\": \"王王\",\n" +
                "\t\t\"ownerName\": \"1001\",\n" +
                "\t\t\"tel\": \"\",\n" +
                "\t},\n" +
                "\t\"page\": 0,\n" +
                "\t\"records\": 1,\n" +
                "\t\"rows\": 0,\n" +
                "\t\"total\": 1\n" +
                "}"
)
@Java110Cmd(serviceCode = "fee.listFeePayerObj")
public class ListFeePayerObjCmd extends Cmd {
    @Autowired
    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
    @Autowired
    private IOwnerV1InnerServiceSMO ownerV1InnerServiceSMOImpl;
    @Autowired
    private IRoomV1InnerServiceSMO roomV1InnerServiceSMOImpl;
    @Autowired
    private IOwnerRoomRelV1InnerServiceSMO ownerRoomRelV1InnerServiceSMOImpl;
    @Autowired
    private IOwnerCarV1InnerServiceSMO ownerCarV1InnerServiceSMOImpl;
    @Autowired
    private IContractInnerServiceSMO contractInnerServiceSMOImpl;
    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
        //todo 如果包含feeId 则根据feeId 刷入 payerObjId 和payerObjType
        ifContainFeeId(reqJson);
        Assert.hasKeyAndValue(reqJson, "payerObjId", "未包含payerObjId");
        Assert.hasKeyAndValue(reqJson, "payerObjType", "未包含payerObjType");
    }
    @Override
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
        JSONObject data = new JSONObject();
        String payerObjType = reqJson.getString("payerObjType");
        String payerObjId = reqJson.getString("payerObjId");
        // todo 如果是房屋
        ifRoom(payerObjId, payerObjType, reqJson, data);
        // todo 如果是车辆
        ifCar(payerObjId, payerObjType, reqJson, data);
        // todo 如果是合同
        ifContract(payerObjId, payerObjType, reqJson, data);
        context.setResponseEntity(ResultVo.createResponseEntity(data));
    }
    /**
     * 如果是房屋
     *
     * @param reqJson
     * @param data
     */
    private void ifRoom(String payerObjId, String payerObjType, JSONObject reqJson, JSONObject data) {
        //todo 如果不是房屋 直接返回
        if (!FeeDto.PAYER_OBJ_TYPE_ROOM.equals(payerObjType)) {
            return;
        }
        RoomDto roomDto = new RoomDto();
        roomDto.setRoomId(payerObjId);
        roomDto.setCommunityId(reqJson.getString("communityId"));
        List<RoomDto> roomDtos = roomV1InnerServiceSMOImpl.queryRooms(roomDto);
        Assert.listOnlyOne(roomDtos, "房屋不存在");
        data.putAll(BeanConvertUtil.beanCovertJson(roomDtos.get(0)));
        data.put("payerObjName", roomDtos.get(0).getFloorNum() + "-" + roomDtos.get(0).getUnitNum() + "-" + roomDtos.get(0).getRoomNum());
        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
        ownerRoomRelDto.setRoomId(roomDtos.get(0).getRoomId());
        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelV1InnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
        if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
            return;
        }
        OwnerDto ownerDto = new OwnerDto();
        ownerDto.setMemberId(ownerRoomRelDtos.get(0).getOwnerId());
        ownerDto.setCommunityId(reqJson.getString("communityId"));
        List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
        if (ownerDtos == null || ownerDtos.size() < 1) {
            return;
        }
        data.putAll(BeanConvertUtil.beanCovertJson(ownerDtos.get(0)));
    }
    /**
     * 如果是车辆
     *
     * @param reqJson
     * @param data
     */
    private void ifCar(String payerObjId, String payerObjType, JSONObject reqJson, JSONObject data) {
        //todo 如果不是车辆 直接返回
        if (!FeeDto.PAYER_OBJ_TYPE_CAR.equals(payerObjType)) {
            return;
        }
        OwnerCarDto ownerCarDto = new OwnerCarDto();
        ownerCarDto.setMemberId(payerObjId);
        ownerCarDto.setCommunityId(reqJson.getString("communityId"));
        List<OwnerCarDto> ownerCarDtos = ownerCarV1InnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
        Assert.listOnlyOne(ownerCarDtos, "车辆不存在");
        data.putAll(BeanConvertUtil.beanCovertJson(ownerCarDtos.get(0)));
        data.put("payerObjName", ownerCarDtos.get(0).getCarNum());
        OwnerDto ownerDto = new OwnerDto();
        ownerDto.setMemberId(ownerCarDtos.get(0).getOwnerId());
        ownerDto.setCommunityId(reqJson.getString("communityId"));
        List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
        if (ownerDtos == null || ownerDtos.size() < 1) {
            return;
        }
        data.putAll(BeanConvertUtil.beanCovertJson(ownerDtos.get(0)));
    }
    /**
     * 如果 合同
     *
     * @param reqJson
     * @param data
     */
    private void ifContract(String payerObjId, String payerObjType, JSONObject reqJson, JSONObject data) {
        //todo 如果不是合同 直接返回
        if (!FeeDto.PAYER_OBJ_TYPE_CONTRACT.equals(payerObjType)) {
            return;
        }
        ContractDto contractDto = new ContractDto();
        contractDto.setContractId(payerObjId);
        List<ContractDto> contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
        Assert.listOnlyOne(contractDtos, "合同不存在");
        data.putAll(BeanConvertUtil.beanCovertJson(contractDtos.get(0)));
        data.put("payerObjName", contractDtos.get(0).getContractName());
        OwnerDto ownerDto = new OwnerDto();
        ownerDto.setLink(contractDtos.get(0).getbLink());
        ownerDto.setCommunityId(reqJson.getString("communityId"));
        List<OwnerDto> ownerDtos = ownerV1InnerServiceSMOImpl.queryOwners(ownerDto);
        if (ownerDtos == null || ownerDtos.size() < 1) {
            return;
        }
        data.putAll(BeanConvertUtil.beanCovertJson(ownerDtos.get(0)));
    }
    /**
     * 如果包含了feeId 则查询 费用作用对象信息
     *
     * @param reqJson
     */
    private void ifContainFeeId(JSONObject reqJson) {
        if (!reqJson.containsKey("feeId")) {
            return;
        }
        String feeId = reqJson.getString("feeId");
        if (StringUtil.isEmpty(feeId)) {
            return;
        }
        PayFeeDto feeDto = new PayFeeDto();
        feeDto.setFeeId(feeId);
        feeDto.setCommunityId(reqJson.getString("communityId"));
        List<PayFeeDto> payFeeDtos = payFeeV1InnerServiceSMOImpl.queryPayFees(feeDto);
        Assert.listOnlyOne(payFeeDtos, "费用不存在");
        reqJson.put("payerObjId", payFeeDtos.get(0).getPayerObjId());
        reqJson.put("payerObjType", payFeeDtos.get(0).getPayerObjType());
    }
}
service-store/src/main/java/com/java110/store/cmd/store/QueryStoreByUserCmd.java
@@ -43,16 +43,20 @@
        dataQuery.setRequestParams(param);
        queryServiceSMOImpl.commonQueryService(dataQuery);
        ResponseEntity<String> responseEntity = dataQuery.getResponseEntity();
        //todo 直接查询失败,所以直接返回异常
        if (responseEntity.getStatusCode() != HttpStatus.OK) {
            context.setResponseEntity(new ResponseEntity<>("初始化商户", HttpStatus.FORBIDDEN));
            return;
        }
        //todo 说明是员工 返回查询信息
        String storeInfo = responseEntity.getBody();
        if (Assert.isJsonObject(storeInfo) && JSONObject.parseObject(storeInfo).containsKey("storeId")) {
            context.setResponseEntity(responseEntity);
            return;
        }
        context.setResponseEntity(new ResponseEntity<>("初始化商户", HttpStatus.FORBIDDEN));
        //todo 说明是业主 返回空即可
        context.setResponseEntity(ResultVo.success());
    }
}
springboot/src/main/java/com/java110/boot/smo/GetCommunityStoreInfoSMOImpl.java
@@ -35,7 +35,8 @@
        }
        if(!StringUtil.isJsonObject(responseEntity.getBody())){
            return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody());
            //return new ResultVo(responseEntity.getStatusCode() == HttpStatus.OK ? ResultVo.CODE_OK : ResultVo.CODE_ERROR, responseEntity.getBody());
            throw new IllegalArgumentException(responseEntity.getBody());
        }
        JSONObject paramJson = JSONObject.parseObject(responseEntity.getBody());
springboot/src/main/java/com/java110/boot/smo/api/impl/ApiSMOImpl.java
@@ -55,6 +55,7 @@
        }
        JSONObject storeInfo = JSONObject.parseObject(responseEntity.getBody().toString());
        //todo 说明是业主直接返回
        if (!storeInfo.containsKey("storeId")) {
            return new ComponentValidateResult("", "", "", pd.getUserId(), pd.getUserName());
        }
@@ -68,7 +69,7 @@
        JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
        //开发者和运营不校验小区
        if(StoreDto.STORE_TYPE_ADMIN.equals(storeTypeCd) || StoreDto.STORE_TYPE_DEV.equals(storeTypeCd)){
        if (StoreDto.STORE_TYPE_ADMIN.equals(storeTypeCd) || StoreDto.STORE_TYPE_DEV.equals(storeTypeCd)) {
            return new ComponentValidateResult(storeId, storeTypeCd, "", pd.getUserId(), pd.getUserName());
        }
@@ -95,7 +96,7 @@
            headers.remove("user_id");
            headers.put("user-id", result.getUserId());
            headers.put("user_id", result.getUserId());
            headers.put("login-user-id",result.getLoginUserId());
            headers.put("login-user-id", result.getLoginUserId());
        }
        // todo 如果 商户不为空则 商户ID写入只头信息中 这里的商户ID 可以是物业ID 或者商家ID
        if (!StringUtil.isEmpty(result.getStoreId())) {