wuxw
2019-12-27 4d86e0dd445342bd3dff534f839319a86668fca1
加入绑定客户 审核功能
2个文件已修改
14个文件已添加
1228 ■■■■■ 已修改文件
Api/src/main/java/com/java110/api/listener/owner/DeleteAppUserBindingOwnerListener.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/owner/ListAuditAppUserBindingOwnersListener.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/owner/UpdateAppUserBindingOwnerListener.java 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/owner/AuditAppUserBindingOwnerManageComponent.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/auditAppUserBindingOwner/IEditAuditAppUserBindingOwnerSMO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/auditAppUserBindingOwner/IListAuditAppUserBindingOwnersSMO.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/auditAppUserBindingOwner/impl/EditAuditAppUserBindingOwnerSMOImpl.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/auditAppUserBindingOwner/impl/ListAuditAppUserBindingOwnersSMOImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/ownerPackage/auditAppUserBindingOwner-manage/auditAppUserBindingOwnerManage.html 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/ownerPackage/auditAppUserBindingOwner-manage/auditAppUserBindingOwnerManage.js 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/views/auditAppUserBindingOwnerFlow.html 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/auditAppUserBindingOwner/ApiAuditAppUserBindingOwnerDataVo.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/auditAppUserBindingOwner/ApiAuditAppUserBindingOwnerVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-code-generator/src/main/resources/web/template_1.json 165 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-code-generator/src/main/resources/web/template_applicationKey.json 138 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/owner/DeleteAppUserBindingOwnerListener.java
New file
@@ -0,0 +1,91 @@
package com.java110.api.listener.owner;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.listener.AbstractServiceApiListener;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ServiceCodeConstant;
import com.java110.utils.util.Assert;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
/**
 * 保存小区侦听
 * add by wuxw 2019-06-30
 */
@Java110Listener("deleteAppUserBindingOwnerListener")
public class DeleteAppUserBindingOwnerListener extends AbstractServiceApiListener {
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
        Assert.hasKeyAndValue(reqJson, "appUserId", "绑定ID不能为空");
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
        HttpHeaders header = new HttpHeaders();
        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
        JSONArray businesses = new JSONArray();
        AppService service = event.getAppService();
        //添加单元信息
        businesses.add(deleteAuditAppUserBindingOwner(reqJson, context));
        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
        //将 rest header 信息传递到下层服务中去
        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
        context.setResponseEntity(responseEntity);
    }
    @Override
    public String getServiceCode() {
        return ServiceCodeConstant.DELETE_APPUSERBINDINGOWNER;
    }
    @Override
    public HttpMethod getHttpMethod() {
        return HttpMethod.POST;
    }
    @Override
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    /**
     * 添加小区信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
     * @return 订单服务能够接受的报文
     */
    private JSONObject deleteAuditAppUserBindingOwner(JSONObject paramInJson, DataFlowContext dataFlowContext) {
        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_OWNER_APP_USER);
        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
        JSONObject businessOwnerAppUser = new JSONObject();
        businessOwnerAppUser.putAll(paramInJson);
        //计算 应收金额
        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwnerAppUser", businessOwnerAppUser);
        return business;
    }
}
Api/src/main/java/com/java110/api/listener/owner/ListAuditAppUserBindingOwnersListener.java
New file
@@ -0,0 +1,88 @@
package com.java110.api.listener.owner;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.listener.AbstractServiceApiListener;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.smo.owner.IOwnerAppUserInnerServiceSMO;
import com.java110.dto.owner.OwnerAppUserDto;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.ServiceCodeConstant;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.vo.api.auditAppUserBindingOwner.ApiAuditAppUserBindingOwnerDataVo;
import com.java110.vo.api.auditAppUserBindingOwner.ApiAuditAppUserBindingOwnerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import java.util.ArrayList;
import java.util.List;
/**
 * 查询小区侦听类
 */
@Java110Listener("listAuditAppUserBindingOwnersListener")
public class ListAuditAppUserBindingOwnersListener extends AbstractServiceApiListener {
    @Autowired
    private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMOImpl;
    @Override
    public String getServiceCode() {
        return ServiceCodeConstant.LIST_APPUSERBINDINGOWNERS;
    }
    @Override
    public HttpMethod getHttpMethod() {
        return HttpMethod.GET;
    }
    @Override
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
        super.validatePageInfo(reqJson);
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
        OwnerAppUserDto ownerAppUserDto = BeanConvertUtil.covertBean(reqJson, OwnerAppUserDto.class);
        int count = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsersCount(ownerAppUserDto);
        List<ApiAuditAppUserBindingOwnerDataVo> auditAppUserBindingOwners = null;
        if (count > 0) {
            auditAppUserBindingOwners = BeanConvertUtil.covertBeanList(ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto), ApiAuditAppUserBindingOwnerDataVo.class);
        } else {
            auditAppUserBindingOwners = new ArrayList<>();
        }
        ApiAuditAppUserBindingOwnerVo apiAuditAppUserBindingOwnerVo = new ApiAuditAppUserBindingOwnerVo();
        apiAuditAppUserBindingOwnerVo.setTotal(count);
        apiAuditAppUserBindingOwnerVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
        apiAuditAppUserBindingOwnerVo.setAuditAppUserBindingOwners(auditAppUserBindingOwners);
        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiAuditAppUserBindingOwnerVo), HttpStatus.OK);
        context.setResponseEntity(responseEntity);
    }
    public IOwnerAppUserInnerServiceSMO getOwnerAppUserInnerServiceSMOImpl() {
        return ownerAppUserInnerServiceSMOImpl;
    }
    public void setOwnerAppUserInnerServiceSMOImpl(IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMOImpl) {
        this.ownerAppUserInnerServiceSMOImpl = ownerAppUserInnerServiceSMOImpl;
    }
}
Api/src/main/java/com/java110/api/listener/owner/UpdateAppUserBindingOwnerListener.java
New file
@@ -0,0 +1,115 @@
package com.java110.api.listener.owner;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.listener.AbstractServiceApiListener;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.smo.owner.IOwnerAppUserInnerServiceSMO;
import com.java110.dto.owner.OwnerAppUserDto;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ServiceCodeConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import java.util.List;
/**
 * 保存审核业主绑定侦听
 * add by wuxw 2019-06-30
 */
@Java110Listener("updateAppUserBindingOwnerListener")
public class UpdateAppUserBindingOwnerListener extends AbstractServiceApiListener {
    @Autowired
    private IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMOImpl;
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
        Assert.hasKeyAndValue(reqJson, "appUserId", "绑定ID不能为空");
        Assert.hasKeyAndValue(reqJson, "state", "必填,请填写状态");
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
        HttpHeaders header = new HttpHeaders();
        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
        JSONArray businesses = new JSONArray();
        AppService service = event.getAppService();
        //添加单元信息
        businesses.add(updateAuditAppUserBindingOwner(reqJson, context));
        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
        //将 rest header 信息传递到下层服务中去
        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
        context.setResponseEntity(responseEntity);
    }
    @Override
    public String getServiceCode() {
        return ServiceCodeConstant.UPDATE_APPUSERBINDINGOWNER;
    }
    @Override
    public HttpMethod getHttpMethod() {
        return HttpMethod.POST;
    }
    @Override
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    /**
     * 添加审核业主绑定信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
     * @return 订单服务能够接受的报文
     */
    private JSONObject updateAuditAppUserBindingOwner(JSONObject paramInJson, DataFlowContext dataFlowContext) {
        OwnerAppUserDto ownerAppUserDto = new OwnerAppUserDto();
        ownerAppUserDto.setAppUserId(paramInJson.getString("appUserId"));
        List<OwnerAppUserDto> ownerAppUserDtos = ownerAppUserInnerServiceSMOImpl.queryOwnerAppUsers(ownerAppUserDto);
        Assert.listOnlyOne(ownerAppUserDtos, "存在多条审核单或未找到审核单");
        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_OWNER_APP_USER);
        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
        JSONObject businessOwnerAppUser = new JSONObject();
        businessOwnerAppUser.putAll(BeanConvertUtil.beanCovertMap(ownerAppUserDtos.get(0)));
        businessOwnerAppUser.put("state", paramInJson.getString("state"));
        businessOwnerAppUser.put("appUserId", paramInJson.getString("appUserId"));
        //计算 应收金额
        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessOwnerAppUser", businessOwnerAppUser);
        return business;
    }
    public IOwnerAppUserInnerServiceSMO getOwnerAppUserInnerServiceSMOImpl() {
        return ownerAppUserInnerServiceSMOImpl;
    }
    public void setOwnerAppUserInnerServiceSMOImpl(IOwnerAppUserInnerServiceSMO ownerAppUserInnerServiceSMOImpl) {
        this.ownerAppUserInnerServiceSMOImpl = ownerAppUserInnerServiceSMOImpl;
    }
}
WebService/src/main/java/com/java110/web/components/owner/AuditAppUserBindingOwnerManageComponent.java
New file
@@ -0,0 +1,64 @@
package com.java110.web.components.owner;
import com.java110.core.context.IPageData;
import com.java110.web.smo.auditAppUserBindingOwner.IEditAuditAppUserBindingOwnerSMO;
import com.java110.web.smo.auditAppUserBindingOwner.IListAuditAppUserBindingOwnersSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
/**
 * 审核业主绑定组件管理类
 * <p>
 * add by wuxw
 * <p>
 * 2019-06-29
 */
@Component("auditAppUserBindingOwnerManage")
public class AuditAppUserBindingOwnerManageComponent {
    @Autowired
    private IListAuditAppUserBindingOwnersSMO listAuditAppUserBindingOwnersSMOImpl;
    @Autowired
    private IEditAuditAppUserBindingOwnerSMO editAuditAppUserBindingOwnerSMOImpl;
    /**
     * 查询审核业主绑定列表
     *
     * @param pd 页面数据封装
     * @return 返回 ResponseEntity 对象
     */
    public ResponseEntity<String> list(IPageData pd) {
        return listAuditAppUserBindingOwnersSMOImpl.listAuditAppUserBindingOwners(pd);
    }
    /**
     * 查询审核业主绑定列表
     *
     * @param pd 页面数据封装
     * @return 返回 ResponseEntity 对象
     */
    public ResponseEntity<String> audit(IPageData pd) {
        return editAuditAppUserBindingOwnerSMOImpl.updateAuditAppUserBindingOwner(pd);
    }
    public IListAuditAppUserBindingOwnersSMO getListAuditAppUserBindingOwnersSMOImpl() {
        return listAuditAppUserBindingOwnersSMOImpl;
    }
    public void setListAuditAppUserBindingOwnersSMOImpl(IListAuditAppUserBindingOwnersSMO listAuditAppUserBindingOwnersSMOImpl) {
        this.listAuditAppUserBindingOwnersSMOImpl = listAuditAppUserBindingOwnersSMOImpl;
    }
    public IEditAuditAppUserBindingOwnerSMO getEditAuditAppUserBindingOwnerSMOImpl() {
        return editAuditAppUserBindingOwnerSMOImpl;
    }
    public void setEditAuditAppUserBindingOwnerSMOImpl(IEditAuditAppUserBindingOwnerSMO editAuditAppUserBindingOwnerSMOImpl) {
        this.editAuditAppUserBindingOwnerSMOImpl = editAuditAppUserBindingOwnerSMOImpl;
    }
}
WebService/src/main/java/com/java110/web/smo/auditAppUserBindingOwner/IEditAuditAppUserBindingOwnerSMO.java
New file
@@ -0,0 +1,19 @@
package com.java110.web.smo.auditAppUserBindingOwner;
import com.java110.core.context.IPageData;
import org.springframework.http.ResponseEntity;
/**
 * 修改审核业主绑定接口
 *
 * add by wuxw 2019-06-30
 */
public interface IEditAuditAppUserBindingOwnerSMO {
    /**
     * 修改小区
     * @param pd 页面数据封装
     * @return ResponseEntity 对象
     */
    ResponseEntity<String> updateAuditAppUserBindingOwner(IPageData pd);
}
WebService/src/main/java/com/java110/web/smo/auditAppUserBindingOwner/IListAuditAppUserBindingOwnersSMO.java
New file
@@ -0,0 +1,21 @@
package com.java110.web.smo.auditAppUserBindingOwner;
import com.java110.utils.exception.SMOException;
import com.java110.core.context.IPageData;
import org.springframework.http.ResponseEntity;
/**
 * 审核业主绑定管理服务接口类
 *
 * add by wuxw 2019-06-29
 */
public interface IListAuditAppUserBindingOwnersSMO {
    /**
     * 查询审核业主绑定信息
     * @param pd 页面数据封装
     * @return ResponseEntity 对象数据
     * @throws SMOException 业务代码层
     */
    ResponseEntity<String> listAuditAppUserBindingOwners(IPageData pd) throws SMOException;
}
WebService/src/main/java/com/java110/web/smo/auditAppUserBindingOwner/impl/EditAuditAppUserBindingOwnerSMOImpl.java
New file
@@ -0,0 +1,71 @@
package com.java110.web.smo.auditAppUserBindingOwner.impl;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.component.AbstractComponentSMO;
import com.java110.core.context.IPageData;
import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.util.Assert;
import com.java110.web.smo.auditAppUserBindingOwner.IEditAuditAppUserBindingOwnerSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
/**
 * 添加审核业主绑定服务实现类
 * add by wuxw 2019-06-30
 */
@Service("eidtAuditAppUserBindingOwnerSMOImpl")
public class EditAuditAppUserBindingOwnerSMOImpl extends AbstractComponentSMO implements IEditAuditAppUserBindingOwnerSMO {
    @Autowired
    private RestTemplate restTemplate;
    @Override
    protected void validate(IPageData pd, JSONObject paramIn) {
        //super.validatePageInfo(pd);
        Assert.hasKeyAndValue(paramIn, "appUserId", "绑定ID不能为空");
        Assert.hasKeyAndValue(paramIn, "state", "必填,请填写状态");
        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST__AUDITAPPUSERBINDINGOWNER);
        if(!"1100".equals(paramIn.getString("state")) && !"1200".equals(paramIn.getString("state"))){
            throw new IllegalArgumentException("审核状态错误");
        }
    }
    @Override
    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
        ResponseEntity<String> responseEntity = null;
        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
        if("1200".equals(paramIn.getString("1100"))){
            paramIn.put("state","12000");
        }else{
            paramIn.put("state","13000");
        }
        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
                ServiceConstant.SERVICE_API_URL + "/api/owner.updateAppUserBindingOwner",
                HttpMethod.POST);
        return responseEntity;
    }
    @Override
    public ResponseEntity<String> updateAuditAppUserBindingOwner(IPageData pd) {
        return super.businessProcess(pd);
    }
    public RestTemplate getRestTemplate() {
        return restTemplate;
    }
    public void setRestTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }
}
WebService/src/main/java/com/java110/web/smo/auditAppUserBindingOwner/impl/ListAuditAppUserBindingOwnersSMOImpl.java
New file
@@ -0,0 +1,65 @@
package com.java110.web.smo.auditAppUserBindingOwner.impl;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.component.AbstractComponentSMO;
import com.java110.core.context.IPageData;
import com.java110.entity.component.ComponentValidateResult;
import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.exception.SMOException;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.web.smo.auditAppUserBindingOwner.IListAuditAppUserBindingOwnersSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
/**
 * 查询auditAppUserBindingOwner服务类
 */
@Service("listAuditAppUserBindingOwnersSMOImpl")
public class ListAuditAppUserBindingOwnersSMOImpl extends AbstractComponentSMO implements IListAuditAppUserBindingOwnersSMO {
    @Autowired
    private RestTemplate restTemplate;
    @Override
    public ResponseEntity<String> listAuditAppUserBindingOwners(IPageData pd) throws SMOException {
        return businessProcess(pd);
    }
    @Override
    protected void validate(IPageData pd, JSONObject paramIn) {
        super.validatePageInfo(pd);
        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_AUDITAPPUSERBINDINGOWNER);
    }
    @Override
    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
        ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate);
        Map paramMap = BeanConvertUtil.beanCovertMap(result);
        paramIn.putAll(paramMap);
        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/owner.listAppUserBindingOwners" + mapToUrlParam(paramIn);
        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, "",
                apiUrl,
                HttpMethod.GET);
        return responseEntity;
    }
    public RestTemplate getRestTemplate() {
        return restTemplate;
    }
    public void setRestTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }
}
WebService/src/main/resources/components/ownerPackage/auditAppUserBindingOwner-manage/auditAppUserBindingOwnerManage.html
New file
@@ -0,0 +1,128 @@
<div id="component" class="wrapper wrapper-content animated fadeInRight ecommerce">
    <div class="row">
        <div class="col-lg-12">
            <div class="ibox ">
                <div class="ibox-title">
                    <h5>查询条件</h5>
                    <div class="ibox-tools" style="top:10px;">
                        <button type="button" class="btn btn-link btn-sm" style="margin-right:10px;"
                                v-on:click="_moreCondition()">{{auditAppUserBindingOwnerManageInfo.moreCondition ==
                            true?'隐藏':'更多'}}
                        </button>
                    </div>
                </div>
                <div class="ibox-content">
                    <div class="row">
                        <div class="col-sm-4">
                            <div class="form-group">
                                <input type="text" placeholder="请输入业主名称"
                                       v-model="auditAppUserBindingOwnerManageInfo.conditions.appUserName"
                                       class=" form-control">
                            </div>
                        </div>
                        <div class="col-sm-4">
                            <div class="form-group">
                                <input type="text" placeholder="请输入业主身份证"
                                       v-model="auditAppUserBindingOwnerManageInfo.conditions.idCard"
                                       class=" form-control">
                            </div>
                        </div>
                        <div class="col-sm-3">
                            <select class="custom-select" v-model="auditAppUserBindingOwnerManageInfo.conditions.null">
                                <option selected value="">请选择状态</option>
                                <option value="10000">审核中</option>
                                <option value="12000">审核成功</option>
                                <option value="13000">审核失败</option>
                            </select></div>
                        <div class="col-sm-1">
                            <button type="button" class="btn btn-primary btn-sm"
                                    v-on:click="_queryAuditAppUserBindingOwnerMethod()">
                                <i class="glyphicon glyphicon-search"></i> 查询
                            </button>
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-sm-4" v-if="auditAppUserBindingOwnerManageInfo.moreCondition == true">
                            <div class="form-group">
                                <input type="text" placeholder="请输入业主手机"
                                       v-model="auditAppUserBindingOwnerManageInfo.conditions.link"
                                       class=" form-control">
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-lg-12">
            <div class="ibox">
                <div class="ibox-title">
                    <h5>审核业主绑定</h5>
                    <div class="ibox-tools" style="top:10px;">
                    </div>
                </div>
                <div class="ibox-content">
                    <table class="footable table table-stripped toggle-arrow-tiny"
                           data-page-size="15"
                    >
                        <thead>
                        <tr>
                            <th class="text-center">绑定ID</th>
                            <th class="text-center">业主ID</th>
                            <th class="text-center">小区ID</th>
                            <th class="text-center">小区名称</th>
                            <th class="text-center">关联业主</th>
                            <th class="text-center">身份证</th>
                            <th class="text-center">手机号</th>
                            <th class="text-center">状态</th>
                            <th class="text-center">申请时间</th>
                            <th class="text-center">操作</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr v-for="auditAppUserBindingOwner in auditAppUserBindingOwnerManageInfo.auditAppUserBindingOwners">
                            <td class="text-center">{{auditAppUserBindingOwner.appUserId}}</td>
                            <td class="text-center">{{auditAppUserBindingOwner.memberId}}</td>
                            <td class="text-center">{{auditAppUserBindingOwner.communityId}}</td>
                            <td class="text-center">{{auditAppUserBindingOwner.communityName}}</td>
                            <td class="text-center">{{auditAppUserBindingOwner.appUserName}}</td>
                            <td class="text-center">{{auditAppUserBindingOwner.idCard}}</td>
                            <td class="text-center">{{auditAppUserBindingOwner.link}}</td>
                            <td class="text-center">{{auditAppUserBindingOwner.state}}</td>
                            <td class="text-center">{{auditAppUserBindingOwner.createTime}}</td>
                            <td class="text-center">
                                <div class="btn-group">
                                    <button class="btn-white btn btn-xs"
                                            v-on:click="_openAuditAppUserBindingOwnerModel(auditAppUserBindingOwner)">
                                        审核
                                    </button>
                                </div>
                            </td>
                        </tr>
                        </tbody>
                        <tfoot>
                        <tr>
                            <td colspan="7">
                                <ul class="pagination float-right"></ul>
                            </td>
                        </tr>
                        </tfoot>
                    </table>
                    <!-- 分页 -->
                    <vc:create name="pagination"></vc:create>
                </div>
            </div>
        </div>
    </div>
    <vc:create name="audit"
               callBackListener="auditAppUserBindingOwnerManage"
               callBackFunction="auditMessage"
    >
    </vc:create>
</div>
WebService/src/main/resources/components/ownerPackage/auditAppUserBindingOwner-manage/auditAppUserBindingOwnerManage.js
New file
@@ -0,0 +1,102 @@
/**
    入驻小区
**/
(function(vc){
    var DEFAULT_PAGE = 1;
    var DEFAULT_ROWS = 10;
    vc.extends({
        data:{
            auditAppUserBindingOwnerManageInfo:{
                auditAppUserBindingOwners:[],
                total:0,
                records:1,
                moreCondition:false,
                currentAppUserId:'',
                name:'',
                conditions:{
                    appUserName:'',
                    idCard:'',
                    link:'',
                }
            }
        },
        _initMethod:function(){
            vc.component._listAuditAppUserBindingOwners(DEFAULT_PAGE, DEFAULT_ROWS);
        },
        _initEvent:function(){
            vc.on('auditAppUserBindingOwnerManage','listAuditAppUserBindingOwner',function(_param){
                  vc.component._listAuditAppUserBindingOwners(DEFAULT_PAGE, DEFAULT_ROWS);
            });
             vc.on('auditAppUserBindingOwnerManage', 'auditMessage', function (_auditInfo) {
                vc.component._auditAppUserBindingOwner(_auditInfo);
            });
             vc.on('pagination','page_event',function(_currentPage){
                vc.component._listAuditAppUserBindingOwners(_currentPage,DEFAULT_ROWS);
            });
        },
        methods:{
            _listAuditAppUserBindingOwners:function(_page, _rows){
                vc.component.auditAppUserBindingOwnerManageInfo.conditions.page = _page;
                vc.component.auditAppUserBindingOwnerManageInfo.conditions.row = _rows;
                var param = {
                    params:vc.component.auditAppUserBindingOwnerManageInfo.conditions
               };
               //发送get请求
               vc.http.get('auditAppUserBindingOwnerManage',
                            'list',
                             param,
                             function(json,res){
                                var _auditAppUserBindingOwnerManageInfo=JSON.parse(json);
                                vc.component.auditAppUserBindingOwnerManageInfo.total = _auditAppUserBindingOwnerManageInfo.total;
                                vc.component.auditAppUserBindingOwnerManageInfo.records = _auditAppUserBindingOwnerManageInfo.records;
                                vc.component.auditAppUserBindingOwnerManageInfo.auditAppUserBindingOwners = _auditAppUserBindingOwnerManageInfo.auditAppUserBindingOwners;
                                vc.emit('pagination','init',{
                                     total:vc.component.auditAppUserBindingOwnerManageInfo.records,
                                     currentPage:_page
                                 });
                             },function(errInfo,error){
                                console.log('请求失败处理');
                             }
                           );
            },
            _openAuditAppUserBindingOwnerModel:function(_auditAppUserBindingOwner){
                vc.component.auditAppUserBindingOwnerManageInfo.currentAppUserId = _auditAppUserBindingOwner.appUserId;
                vc.emit('audit', 'openAuditModal', {});
            },
            _auditAppUserBindingOwner: function (_auditInfo) {
                _auditInfo.communityId = vc.getCurrentCommunity().communityId;
                _auditInfo.appUserId = vc.component.auditAppUserBindingOwnerManageInfo.currentAppUserId;
                //发送get请求
                vc.http.post('auditAppUserBindingOwnerManage',
                    'audit',
                    JSON.stringify(_auditInfo),
                    {
                        emulateJSON: true
                    },
                    function (json, res) {
                        vc.message("处理成功");
                        vc.component._listAuditAppUserBindingOwners(DEFAULT_PAGE, DEFAULT_ROWS);
                    }, function (errInfo, error) {
                        console.log('请求失败处理');
                        vc.message("处理失败:" + errInfo);
                    }
                );
            },
            _moreCondition:function(){
                if(vc.component.auditAppUserBindingOwnerManageInfo.moreCondition){
                    vc.component.auditAppUserBindingOwnerManageInfo.moreCondition = false;
                }else{
                    vc.component.auditAppUserBindingOwnerManageInfo.moreCondition = true;
                }
            }
        }
    });
})(window.vc);
WebService/src/main/resources/views/auditAppUserBindingOwnerFlow.html
New file
@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:vc="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>审核业主绑定|java110</title>
    <vc:create name="commonTop"></vc:create>
</head>
<body>
<vc:create name="bodyTop"></vc:create>
<div id="wrapper">
    <vc:create name="menu"></vc:create>
    <div id="page-wrapper" class="gray-bg dashbard-1">
        <div class="row border-bottom">
            <vc:create name="nav"></vc:create>
        </div>
        <div class="wrapper wrapper-content" style="padding-bottom: 0px;">
            <vc:create name="breadcrumb"></vc:create>
        </div>
        <!-- id="component" -->
        <div class="wrapper wrapper-content animated fadeInRight">
            <vc:create name="auditAppUserBindingOwnerManage"></vc:create>
        </div>
        <vc:create name="copyright"></vc:create>
    </div>
</div>
<vc:create name="commonBottom"></vc:create>
</body>
</html>
java110-bean/src/main/java/com/java110/vo/api/auditAppUserBindingOwner/ApiAuditAppUserBindingOwnerDataVo.java
New file
@@ -0,0 +1,91 @@
package com.java110.vo.api.auditAppUserBindingOwner;
import java.io.Serializable;
import java.util.Date;
public class ApiAuditAppUserBindingOwnerDataVo implements Serializable {
    private String appUserId;
    private String memberId;
    private String communityId;
    private String communityName;
    private String appUserName;
    private String idCard;
    private String link;
    private String state;
    private String createTime;
    public String getAppUserId() {
        return appUserId;
    }
    public void setAppUserId(String appUserId) {
        this.appUserId = appUserId;
    }
    public String getMemberId() {
        return memberId;
    }
    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }
    public String getCommunityId() {
        return communityId;
    }
    public void setCommunityId(String communityId) {
        this.communityId = communityId;
    }
    public String getCommunityName() {
        return communityName;
    }
    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }
    public String getAppUserName() {
        return appUserName;
    }
    public void setAppUserName(String appUserName) {
        this.appUserName = appUserName;
    }
    public String getIdCard() {
        return idCard;
    }
    public void setIdCard(String idCard) {
        this.idCard = idCard;
    }
    public String getLink() {
        return link;
    }
    public void setLink(String link) {
        this.link = link;
    }
    public String getState() {
        return state;
    }
    public void setState(String state) {
        this.state = state;
    }
    public String getCreateTime() {
        return createTime;
    }
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
}
java110-bean/src/main/java/com/java110/vo/api/auditAppUserBindingOwner/ApiAuditAppUserBindingOwnerVo.java
New file
@@ -0,0 +1,19 @@
package com.java110.vo.api.auditAppUserBindingOwner;
import com.java110.vo.MorePageVo;
import java.io.Serializable;
import java.util.List;
public class ApiAuditAppUserBindingOwnerVo extends MorePageVo implements Serializable {
    List<ApiAuditAppUserBindingOwnerDataVo> auditAppUserBindingOwners;
    public List<ApiAuditAppUserBindingOwnerDataVo> getAuditAppUserBindingOwners() {
        return auditAppUserBindingOwners;
    }
    public void setAuditAppUserBindingOwners(List<ApiAuditAppUserBindingOwnerDataVo> auditAppUserBindingOwners) {
        this.auditAppUserBindingOwners = auditAppUserBindingOwners;
    }
}
java110-code-generator/src/main/resources/web/template_1.json
@@ -1,119 +1,114 @@
{
  "templateName":"钥匙申请",
  "templateCode":"applicationKey",
  "templateKey":"applicationKeyId",
  "templateKeyName":"钥匙申请ID",
  "templateName":"审核业主绑定",
  "templateCode":"auditAppUserBindingOwner",
  "templateKey":"appUserId",
  "templateKeyName":"绑定ID",
  "searchCode": "name",
  "searchName": "名称",
  "conditions": [
    {
      "name": "名称",
      "name": "业主名称",
      "inputType": "input",
      "code": "name",
      "code": "appUserName",
      "whereCondition": "equal"
    },
    {
      "name": "用户类型",
      "inputType": "select",
      "code": "typeCd",
      "selectValue":"10001,10002,10003",
      "selectValueName":"保洁,保安,其他人员",
      "whereCondition": "equal"
    },
    {
      "name": "用户手机",
      "inputType": "input",
      "code": "tel",
      "whereCondition": "equal"
    },
    {
      "name": "身份证号",
      "name": "业主身份证",
      "inputType": "input",
      "code": "idCard",
      "whereCondition": "equal"
    },
    {
      "name": "状态",
      "inputType": "input",
      "inputType": "select",
      "selectValue":"10000,12000,13000",
      "selectValueName":"审核中,审核成功,审核失败"
    },
    {
      "name": "业主手机",
      "inputType": "input",
      "code": "link",
      "whereCondition": "equal"
    }
  ],
  "columns":[
    {
      "code":"name",
      "cnCode":"姓名",
      "desc":"必填,请填写姓名",
      "code":"memberId",
      "cnCode":"业主ID",
      "desc":"必填,请填写业主ID",
      "required":true,
      "hasDefaultValue":false,
      "inputType":"input",
      "limit":"maxin",
      "limitParam":"1,64",
      "limitErrInfo":"姓名不能超过64位",
      "limitErrInfo":"业主ID不能超过64位",
      "show": true
    },
    {
      "code": "tel",
      "code": "communityId",
      "cnCode":"小区ID",
      "desc":"必填,请填写小区ID",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"小区ID格式错误",
      "show": true
    },
    {
      "code": "communityName",
      "cnCode":"小区名称",
      "desc":"必填,请填写小区名称",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"小区名称格式错误",
      "show": true
    },
    {
      "code": "appUserName",
      "cnCode":"关联业主",
      "desc":"必填,请填写业主",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"关联业主格式错误",
      "show": true
    },
    {
      "code": "idCard",
      "cnCode":"身份证",
      "desc":"必填,请填写身份证",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"身份证不是有效数字",
      "show": true
    },
    {
      "code":"link",
      "cnCode":"手机号",
      "desc":"必填,请填写手机号",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "inputType":"input",
      "limit":"phone",
      "limitParam":"",
      "limitErrInfo":"手机号格式错误",
      "limitErrInfo":"手机号不是有效的身份证号",
      "show": true
    },
    {
      "code": "typeCd",
      "cnCode":"用户类型",
      "desc":"必填,请选择用户类型",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "select",
      "selectValue":"10001,10002,10003",
      "selectValueName":"保洁,保安,其他人员",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"用户类型格式错误",
      "show": true
    },
    {
      "code": "sex",
      "cnCode":"性别",
      "desc":"必填,请选择性别",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "select",
      "selectValue":"0,1",
      "selectValueName":"男,女",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"性别格式错误",
      "show": true
    },
    {
      "code": "age",
      "cnCode":"年龄",
      "desc":"必填,请填写年龄",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"年龄不是有效数字",
      "show": true
    },
    {
      "code":"idCard",
      "cnCode":"身份证号",
      "desc":"必填,请填写身份证号",
      "required":true,
      "hasDefaultValue":false,
      "inputType":"input",
      "limit":"idCard",
      "limitParam":"",
      "limitErrInfo":"不是有效的身份证号",
      "show": true
    },
    {
      "code": "startTime",
      "cnCode":"开始时间",
      "desc":"必填,请选择开始时间",
      "code": "state",
      "cnCode":"状态",
      "desc":"必填,请填写状态",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
@@ -123,8 +118,8 @@
      "show": true
    },
    {
      "code": "endTime",
      "cnCode":"结束时间",
      "code": "createTime",
      "cnCode":"申请时间",
      "desc":"必填,请选择结束时间",
      "required":true,
      "hasDefaultValue":false,
java110-code-generator/src/main/resources/web/template_applicationKey.json
New file
@@ -0,0 +1,138 @@
{
  "templateName":"钥匙申请",
  "templateCode":"applicationKey",
  "templateKey":"applicationKeyId",
  "templateKeyName":"钥匙申请ID",
  "searchCode": "name",
  "searchName": "名称",
  "conditions": [
    {
      "name": "名称",
      "inputType": "input",
      "code": "name",
      "whereCondition": "equal"
    },
    {
      "name": "用户类型",
      "inputType": "select",
      "code": "typeCd",
      "selectValue":"10001,10002,10003",
      "selectValueName":"保洁,保安,其他人员",
      "whereCondition": "equal"
    },
    {
      "name": "用户手机",
      "inputType": "input",
      "code": "tel",
      "whereCondition": "equal"
    },
    {
      "name": "身份证号",
      "inputType": "input",
      "code": "idCard",
      "whereCondition": "equal"
    }
  ],
  "columns":[
    {
      "code":"name",
      "cnCode":"姓名",
      "desc":"必填,请填写姓名",
      "required":true,
      "hasDefaultValue":false,
      "inputType":"input",
      "limit":"maxin",
      "limitParam":"1,64",
      "limitErrInfo":"姓名不能超过64位",
      "show": true
    },
    {
      "code": "tel",
      "cnCode":"手机号",
      "desc":"必填,请填写手机号",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"phone",
      "limitParam":"",
      "limitErrInfo":"手机号格式错误",
      "show": true
    },
    {
      "code": "typeCd",
      "cnCode":"用户类型",
      "desc":"必填,请选择用户类型",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "select",
      "selectValue":"10001,10002,10003",
      "selectValueName":"保洁,保安,其他人员",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"用户类型格式错误",
      "show": true
    },
    {
      "code": "sex",
      "cnCode":"性别",
      "desc":"必填,请选择性别",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "select",
      "selectValue":"0,1",
      "selectValueName":"男,女",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"性别格式错误",
      "show": true
    },
    {
      "code": "age",
      "cnCode":"年龄",
      "desc":"必填,请填写年龄",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"年龄不是有效数字",
      "show": true
    },
    {
      "code":"idCard",
      "cnCode":"身份证号",
      "desc":"必填,请填写身份证号",
      "required":true,
      "hasDefaultValue":false,
      "inputType":"input",
      "limit":"idCard",
      "limitParam":"",
      "limitErrInfo":"不是有效的身份证号",
      "show": true
    },
    {
      "code": "startTime",
      "cnCode":"开始时间",
      "desc":"必填,请选择开始时间",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"dateTime",
      "limitParam":"",
      "limitErrInfo":"不是有效的时间格式",
      "show": true
    },
    {
      "code": "endTime",
      "cnCode":"结束时间",
      "desc":"必填,请选择结束时间",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"dateTime",
      "limitParam":"",
      "limitErrInfo":"不是有效的时间格式",
      "show": true
    }
  ]
}
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java
@@ -431,6 +431,21 @@
    // App 用户绑定业主接口
    public static final String SERVICE_CODE_APP_USER_BINDING_OWNER = "owner.appUserBindingOwner";
    /**
     * 查询 审核业主绑定
     */
    public static final String LIST_APPUSERBINDINGOWNERS = "owner.listAppUserBindingOwners";
    /**
     * 修改 审核业主绑定
     */
    public static final String UPDATE_APPUSERBINDINGOWNER = "owner.updateAppUserBindingOwner";
    public static final String DELETE_APPUSERBINDINGOWNER = "owner.deleteAppUserBindingOwner";
    public static final String SERVICE_CODE_APPLICATION_KEY = "owner.applicationKey";
    // 编辑业主信息