Browse Source

商城后台管理增加商务平台后台管理

hejq 8 years ago
parent
commit
e6325bd840

+ 105 - 0
src/main/java/com/uas/platform/b2c/b2b/controller/ManageController.java

@@ -0,0 +1,105 @@
+package com.uas.platform.b2c.b2b.controller;
+
+import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.b2c.b2b.service.EnterpriseBaseInfoService;
+import com.uas.platform.b2c.common.base.model.AccessToken;
+import com.uas.platform.b2c.common.base.service.AccessTokenService;
+import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.platform.b2c.core.support.SystemSession;
+import com.uas.platform.b2c.core.support.log.UsageBufferedLogger;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.model.PageParams;
+import com.wordnik.swagger.annotations.ApiOperation;
+import com.wordnik.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.rmi.AccessException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * b2b操作
+ *
+ * Created by hejq on 2018-04-20.
+ */
+@RequestMapping("/b2b/manage")
+@RestController
+public class ManageController {
+
+    @Autowired
+    private AccessTokenService accessTokenService;
+
+    @Autowired
+    private SysConf sysConf;
+
+    @Autowired
+    private EnterpriseBaseInfoService baseInfoService;
+
+    /**
+     * 操作日志
+     */
+    private UsageBufferedLogger logger = BufferedLoggerManager.getLogger(UsageBufferedLogger.class);
+
+    /**
+     * 定义可以访问的公司
+     */
+    private static final Long[] ACCESS_ENUU = {1000001L, 10044948L, 10042291L, 10042875L, 10043923L, 10041166L};
+
+    /**
+     * 通过UU号进行跳转到平台
+     *
+     * @param response HttpServletResponse
+     * @param enUU uu号
+     * @throws IOException
+     */
+    @RequestMapping("/authed/redirect/{enUU}")
+    public void redirect(HttpServletResponse response, HttpServletRequest request, @PathVariable("enUU") long enUU)
+            throws IOException {
+        Object bindObj = enUU;
+        if (null == SystemSession.getUser() || null == SystemSession.getUser().getEnterprise()) {
+            throw new AccessException("请先登录");
+        }
+        if (!Arrays.asList(ACCESS_ENUU).contains(SystemSession.getUser().getEnterprise().getUu())) {
+            throw new AccessException("没有访问权限");
+        }
+        AccessToken token = accessTokenService.createNew(bindObj);
+        request.getSession().setAttribute("user", SystemSession.getUser());
+        StringBuffer redirectUrl = new StringBuffer();
+        String domain = sysConf.getB2bDomain();
+        if (StringUtils.hasText(domain)) {
+            // 防止使用同一个www.ubtob.com造成session冲突
+            redirectUrl.append("http://").append(enUU).append(".").append(domain);
+        } else {
+            redirectUrl.append(sysConf.getB2bUrl());
+        }
+        redirectUrl.append("?client_type=manage&access_token=").append(token.getId());
+        logger.log("管理员访问B2B", "通过商务平台后台访问B2B");
+        response.sendRedirect(redirectUrl.toString());
+    }
+
+    /**
+     * 分页查询B2B注册信息
+     *
+     * @param params 分页参数
+     * @param keyword 关键词
+     * @return
+     */
+    @RequestMapping(value = "/enterpriseList", method = RequestMethod.GET)
+    @ApiOperation(value = "分页获取平台所有注册企业信息", httpMethod = "GET")
+    public Page<EnterpriseBaseInfo> findEnterPageByStatus(@ApiParam(required = true, value = "分页参数") PageParams params, @ApiParam(required = true, value = "搜索字符串") String keyword) {
+        PageInfo info = new PageInfo(params);
+        logger.log("管理平台获取企业列表", "通过[" + keyword + "]获取企业信息");
+        return baseInfoService.findEnterPageByKeyword(info, keyword);
+    }
+}

+ 15 - 0
src/main/java/com/uas/platform/b2c/b2b/dao/EnterpriseBaseInfoDao.java

@@ -0,0 +1,15 @@
+package com.uas.platform.b2c.b2b.dao;
+
+import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.stereotype.Repository;
+
+/**
+ * 企业基本信息
+ *
+ * Created by hejq on 2018-04-20.
+ */
+@Repository
+public interface EnterpriseBaseInfoDao extends JpaRepository<EnterpriseBaseInfo, Long>, JpaSpecificationExecutor<EnterpriseBaseInfo> {
+}

+ 105 - 0
src/main/java/com/uas/platform/b2c/b2b/model/EnterpriseBaseInfo.java

@@ -0,0 +1,105 @@
+package com.uas.platform.b2c.b2b.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 企业信息基本信息
+ *
+ * Created by hejq on 2018-04-20.
+ */
+@Entity
+@Table(name = "sec$enterprises")
+public class EnterpriseBaseInfo implements Serializable {
+
+    /**
+     * 序列号
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 企业UU号
+     */
+    @Id
+    @Column(name = "en_uu")
+    private Long uu;
+
+    /**
+     * 公司名称
+     */
+    @Column(name = "en_name")
+    private String enName;
+
+    /**
+     * 注册地址
+     */
+    @Column(name = "en_address")
+    private String enAddress;
+
+    /**
+     * 商业登记证号
+     */
+    @Column(name = "en_businesscode")
+    private String enBussinessCode;
+
+    /**
+     * 注册时间
+     */
+    @Column(name = "en_time")
+    private Date enDate;
+
+    public Long getUu() {
+        return uu;
+    }
+
+    public void setUu(Long uu) {
+        this.uu = uu;
+    }
+
+    public String getEnName() {
+        return enName;
+    }
+
+    public void setEnName(String enName) {
+        this.enName = enName;
+    }
+
+    public String getEnAddress() {
+        return enAddress;
+    }
+
+    public void setEnAddress(String enAddress) {
+        this.enAddress = enAddress;
+    }
+
+    public String getEnBussinessCode() {
+        return enBussinessCode;
+    }
+
+    public void setEnBussinessCode(String enBussinessCode) {
+        this.enBussinessCode = enBussinessCode;
+    }
+
+    public Date getEnDate() {
+        return enDate;
+    }
+
+    public void setEnDate(Date enDate) {
+        this.enDate = enDate;
+    }
+
+    @Override
+    public String toString() {
+        return "EnterpriseBaseInfo{" +
+                "uu=" + uu +
+                ", enName='" + enName + '\'' +
+                ", enAddress='" + enAddress + '\'' +
+                ", enBussinessCode='" + enBussinessCode + '\'' +
+                ", enDate=" + enDate +
+                '}';
+    }
+}

+ 22 - 0
src/main/java/com/uas/platform/b2c/b2b/service/EnterpriseBaseInfoService.java

@@ -0,0 +1,22 @@
+package com.uas.platform.b2c.b2b.service;
+
+import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.core.model.PageInfo;
+import org.springframework.data.domain.Page;
+
+/**
+ * 企业基本信息操作接口
+ *
+ * Created by hejq on 2018-04-20.
+ */
+public interface EnterpriseBaseInfoService {
+
+    /**
+     * 分页查询企业信息
+     *
+     * @param info 分页参数
+     * @param keyword 关键字
+     * @return
+     */
+    Page<EnterpriseBaseInfo> findEnterPageByKeyword(PageInfo info, String keyword);
+}

+ 63 - 0
src/main/java/com/uas/platform/b2c/b2b/service/impl/EnterpriseBaseInfoServiceImpl.java

@@ -0,0 +1,63 @@
+package com.uas.platform.b2c.b2b.service.impl;
+
+import com.uas.platform.b2c.b2b.dao.EnterpriseBaseInfoDao;
+import com.uas.platform.b2c.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.b2c.b2b.service.EnterpriseBaseInfoService;
+import com.uas.platform.b2c.fa.payment.utils.StringUtils;
+import com.uas.platform.core.model.PageInfo;
+import com.uas.platform.core.persistence.criteria.PredicateUtils;
+import com.uas.platform.core.persistence.criteria.SimpleExpression;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
+
+/**
+ * 企业基本信息操作实现
+ *
+ * Created by hejq on 2018-04-20.
+ */
+@Service
+public class EnterpriseBaseInfoServiceImpl implements EnterpriseBaseInfoService {
+
+    @Autowired
+    private EnterpriseBaseInfoDao baseInfoDao;
+
+    /**
+     * UU号正则表达式
+     */
+    static final String UU_REGEXP = "^\\d{4,}$";
+
+    /**
+     * 分页查询企业信息
+     *
+     * @param info    分页参数
+     * @param keyword 关键字
+     * @return
+     */
+    @Override
+    public Page<EnterpriseBaseInfo> findEnterPageByKeyword(final PageInfo info, String keyword) {
+        if (!StringUtils.isEmpty(keyword)) {
+            SimpleExpression name = PredicateUtils.like("enName", keyword, false);
+            if (keyword.matches(UU_REGEXP)) {
+                SimpleExpression enUU = PredicateUtils.eq("uu", keyword, false);
+                SimpleExpression[] expressions = new SimpleExpression[]{name, enUU};
+                info.expression(PredicateUtils.or(expressions));
+            } else {
+                SimpleExpression[] expressions = new SimpleExpression[]{name};
+                info.expression(PredicateUtils.or(expressions));
+            }
+        }
+        return baseInfoDao.findAll(new Specification<EnterpriseBaseInfo>() {
+            public Predicate toPredicate(Root<EnterpriseBaseInfo> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+                query.where(info.getPredicates(root, query, builder));
+                return null;
+            }
+        }, info);
+    }
+}

+ 28 - 0
src/main/java/com/uas/platform/b2c/core/config/SysConf.java

@@ -154,6 +154,18 @@ public class SysConf {
 	@Value("#{sys.searchUrl}")
 	private String messageServiceIp;
 
+	/**
+	 * b2b域名
+	 */
+	@Value("#{sys.b2bDomain}")
+	private String b2bDomain;
+
+    /**
+     * b2b网址
+     */
+	@Value(("#{sys.b2b}"))
+    private String b2bUrl;
+
 	public Boolean getRebuildIndexesOnRefresh() {
 		return rebuildIndexesOnRefresh;
 	}
@@ -333,4 +345,20 @@ public class SysConf {
 	public void setYesGateway(String yesGateway) {
 		this.yesGateway = yesGateway;
 	}
+
+	public String getB2bDomain() {
+		return b2bDomain;
+	}
+
+	public void setB2bDomain(String b2bDomain) {
+		this.b2bDomain = b2bDomain;
+	}
+
+    public String getB2bUrl() {
+        return b2bUrl;
+    }
+
+    public void setB2bUrl(String b2bUrl) {
+        this.b2bUrl = b2bUrl;
+    }
 }

+ 5 - 1
src/main/resources/dev/sys.properties

@@ -47,4 +47,8 @@ kafka-bootstrap-servers=10.10.100.11:9292,10.10.100.12:9292,10.10.100.13:9292,10
 
 #inquiry service url
 inquiryServiceUrl=http://218.17.158.219:24000
-inquiryServiceInnerUrl=http://218.17.158.219:24000
+inquiryServiceInnerUrl=http://218.17.158.219:24000
+
+#b2b
+b2b=http://218.17.158.219/b2b_test
+b2bDomain=218.17.158.219:9000/b2b_test

+ 6 - 1
src/main/resources/prod/sys.properties

@@ -49,4 +49,9 @@ kafka-bootstrap-servers=10.10.100.11:9292,10.10.100.12:9292,10.10.100.13:9292,10
 
 #inquiry service url
 inquiryServiceUrl=https://api-inquiry.usoftmall.com
-inquiryServiceInnerUrl=http://10.10.0.254:8080
+inquiryServiceInnerUrl=http://10.10.0.254:8080
+
+#b2b
+b2b=http://uas.ubtob.com
+b2bDomain=uas.ubtob.com
+b2bInner=http://10.10.100.103:8080

+ 5 - 1
src/main/resources/test/sys.properties

@@ -48,4 +48,8 @@ kafka-bootstrap-servers=10.10.100.11:9292,10.10.100.12:9292,10.10.100.13:9292,10
 
 #inquiry service url
 inquiryServiceUrl=http://218.17.158.219:24000
-inquiryServiceInnerUrl=http://218.17.158.219:24000
+inquiryServiceInnerUrl=http://218.17.158.219:24000
+
+#b2b
+b2b=http://218.17.158.219/b2b_test
+b2bDomain=218.17.158.219:9000/b2b_test

+ 3 - 1
src/main/webapp/WEB-INF/views/normal/adminWithNav.html

@@ -29,7 +29,9 @@
 	<!-- main menu start -->
 	<div class="sidebar-nav main-menu">
 		<ul class="nav nav-tabs nav-stacked">
-
+			<li class="nav-header">B2B</li>
+			<li class="nav-node"><a href="#/b2b/manage"><i
+					class="fa fa-home"></i><span> b2b后台管理</span></a></li>
 			<li class="nav-header">交易管理</li>
 			<li class="nav-node"><a href="#trade/buyerOrder"><i
 					class="fa fa-home"></i><span> 买家销售单跟踪</span></a></li>

+ 10 - 3
src/main/webapp/resources/js/admin/app.js

@@ -1,4 +1,4 @@
- define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ui-form', 'ngLocal', 'ngTable', 'ngSanitize', 'ngDraggable', 'common/services', 'common/directives', 'common/query/brand', 'common/query/address', 'common/query/return' , 'common/query/change' ,'common/query/component', 'common/query/order', 'common/query/purchase', 'common/query/invoice', 'common/query/property', 'common/query/kind', 'common/query/property', 'common/query/receipt', 'common/query/logistics' ,'angular-toaster', 'ui-jquery', 'jquery-uploadify','common/query/dateParse' , 'common/query/bankTransfer' ,'common/query/bankInfo', 'common/query/urlencryption', 'common/query/bill', 'common/query/makerDemand', 'common/query/goods', 'common/query/validtime', 'file-upload','file-upload-shim', 'common/query/slideImage', 'common/query/kindAdvice', 'common/query/responseLogistics', 'common/query/search','common/directives/dynamicInput', 'common/query/auditorMail', 'common/query/tradeBasicProperties', 'common/query/exchangeRate', 'common/query/tradeDeliveryDelayTime', 'common/query/payment', 'common/query/kindContrast', 'common/query/crawlTask', 'common/query/afterSale', 'common/query/refund', 'common/query/messageBoard', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/cms', 'common/query/help', 'common/query/commonCount', 'common/module/store_admin_violations_module', 'common/query/internalMessage','common/query/user','common/query/secQuestion','common/query/keyWord','common/query/logUsage','common/query/seekQualityBuyer','common/query/loanApply', 'common/query/supplier', 'common/query/seekSalesman'], function(angularAMD) {
+ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ui-form', 'ngLocal', 'ngTable', 'ngSanitize', 'ngDraggable', 'common/services', 'common/directives', 'common/query/brand', 'common/query/address', 'common/query/return' , 'common/query/change' ,'common/query/component', 'common/query/order', 'common/query/purchase', 'common/query/invoice', 'common/query/property', 'common/query/kind', 'common/query/property', 'common/query/receipt', 'common/query/logistics' ,'angular-toaster', 'ui-jquery', 'jquery-uploadify','common/query/dateParse' , 'common/query/bankTransfer' ,'common/query/bankInfo', 'common/query/urlencryption', 'common/query/bill', 'common/query/makerDemand', 'common/query/goods', 'common/query/validtime', 'file-upload','file-upload-shim', 'common/query/slideImage', 'common/query/kindAdvice', 'common/query/responseLogistics', 'common/query/search','common/directives/dynamicInput', 'common/query/auditorMail', 'common/query/tradeBasicProperties', 'common/query/exchangeRate', 'common/query/tradeDeliveryDelayTime', 'common/query/payment', 'common/query/kindContrast', 'common/query/crawlTask', 'common/query/afterSale', 'common/query/refund', 'common/query/messageBoard', 'common/query/logisticsPort', 'common/query/storeInfo', 'common/query/cms', 'common/query/help', 'common/query/commonCount', 'common/module/store_admin_violations_module', 'common/query/internalMessage','common/query/user','common/query/secQuestion','common/query/keyWord','common/query/logUsage','common/query/seekQualityBuyer','common/query/loanApply', 'common/query/supplier', 'common/query/seekSalesman', 'common/query/b2bManage'], function(angularAMD) {
 	'use strict';
 
 	 /**
@@ -8,7 +8,7 @@
 		 return this.length > 0 ? this[this.length - 1] : null;
 	 };
 
-	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ui.form', 'ng.local', 'ngTable', 'ngSanitize', 'ngDraggable', 'common.services', 'common.directives', 'brandServices', 'addressServices', 'returnServices', 'changeServices', 'componentServices', 'orderServices', 'purchaseServices', 'invoiceServices', 'propertyServices', 'receiptServices', 'logisticsServices', 'common.query.kind', 'toaster','ui.jquery' ,'dateparseServices', 'bankInfo' , 'bankTransfer', 'urlencryptionServices', 'billServices', 'makerDemand', 'goodsServices', 'validtimeServices', 'angularFileUpload', 'slideImageService', 'common.query.kindAdvice', 'responseLogisticsService', 'searchService', 'ngDynamicInput', 'ReviewerEmailInfoService', 'tradeBasicPropertiesServices', 'exchangeRateModule', 'tradeDeliveryDelayTimeModule', 'PaymentService', 'kindContrastServices', 'crawlTaskServices', 'afterSaleService', 'refundModule', 'messageBoardServices', 'logisticsPortService', 'storeInfoServices', 'cmsService', 'helpServices', 'commonCountServices', 'tool.directives', 'StoreAdminViolationsModule', 'internalMessageServices','common.query.user','secQuestionServices','keyWordServices','logUsageServices','seekQualityBuyerServices', 'loanApplyService', 'supplierServices', 'seekSalesmanServices']);
+	var app = angular.module('myApp', [ 'ui.router', 'ui.bootstrap', 'ui.form', 'ng.local', 'ngTable', 'ngSanitize', 'ngDraggable', 'common.services', 'common.directives', 'brandServices', 'addressServices', 'returnServices', 'changeServices', 'componentServices', 'orderServices', 'purchaseServices', 'invoiceServices', 'propertyServices', 'receiptServices', 'logisticsServices', 'common.query.kind', 'toaster','ui.jquery' ,'dateparseServices', 'bankInfo' , 'bankTransfer', 'urlencryptionServices', 'billServices', 'makerDemand', 'goodsServices', 'validtimeServices', 'angularFileUpload', 'slideImageService', 'common.query.kindAdvice', 'responseLogisticsService', 'searchService', 'ngDynamicInput', 'ReviewerEmailInfoService', 'tradeBasicPropertiesServices', 'exchangeRateModule', 'tradeDeliveryDelayTimeModule', 'PaymentService', 'kindContrastServices', 'crawlTaskServices', 'afterSaleService', 'refundModule', 'messageBoardServices', 'logisticsPortService', 'storeInfoServices', 'cmsService', 'helpServices', 'commonCountServices', 'tool.directives', 'StoreAdminViolationsModule', 'internalMessageServices','common.query.user','secQuestionServices','keyWordServices','logUsageServices','seekQualityBuyerServices', 'loanApplyService', 'supplierServices', 'seekSalesmanServices', 'b2bManageService']);
 	app.init = function() {
 		angularAMD.bootstrap(app);
 	};
@@ -801,7 +801,14 @@
             controller: 'LoanApplyListCtrl',
             controllerUrl: 'app/controllers/fa/LoanApplyListCtrl',
             title: '贷款申请列表'
-        }));
+        })).state('b2bManage', angularAMD.route({
+			// b2b后台管理
+			url: '/b2b/manage',
+            templateUrl: 'static/view/admin/b2b/manage.html',
+            controller: 'b2bManageCtrl',
+            controllerUrl: 'app/controllers/b2b/b2bManageCtrl',
+            title: '贷款申请列表'
+		}));
 		
 		$httpProvider.interceptors.push(['Loading', '$q', function(Loading, $q) {
 			return {

+ 37 - 0
src/main/webapp/resources/js/admin/controllers/b2b/b2bManageCtrl.js

@@ -0,0 +1,37 @@
+define(['app/app'], function (app) {
+    'use strict';
+    app.register.controller('b2bManageCtrl', ['$scope', 'ngTableParams', 'manage', 'toaster', 'BaseService', function ($scope, ngTableParams, manage, toaster, BaseService) {
+        //table设置
+        $scope.tableParams = new ngTableParams({
+            page : 1,
+            count : 20
+        }, {
+            total : 0,
+            getData : function ($defer, params) {
+                // $scope.loading = true;
+                var param = BaseService.parseParams(params.url());
+                param.keyword = $scope.keyword;
+                manage.getEnterpriseList(param, function (data) {
+                    params.total(data.totalElements);
+                    $defer.resolve(data.content);
+                }, function (response) {
+                    toaster.pop('error', '获取企业列表失败');
+                });
+            }
+        });
+
+        // 根据关键词搜索
+        $scope.onSearch = function() {
+            $scope.tableParams.reload();
+        }
+
+        /**
+         * 点击跳转商务平台
+         *
+         * @param uu uu号
+         */
+        $scope.redirect = function(uu, url) {
+            window.open('b2b/manage/authed/redirect/' + uu + (url ? ('?url=' + encodeURI(url)) : ''));
+        }
+    }]);
+});

+ 13 - 0
src/main/webapp/resources/js/common/query/b2bManage.js

@@ -0,0 +1,13 @@
+define([ 'ngResource' ], function() {
+    angular.module('b2bManageService', [ 'ngResource' ]).factory('manage', ['$resource', function($resource) {
+        return $resource('b2b', {}, {
+            /**
+             * 获取企业列表
+             */
+            getEnterpriseList: {
+                url: 'b2b/manage/enterpriseList',
+                method:'GET'
+            }
+        });
+    }])
+});

+ 53 - 0
src/main/webapp/resources/view/admin/b2b/manage.html

@@ -0,0 +1,53 @@
+<div class="row-fluid sortable">
+    <div class="box">
+        <div class="box-header well" data-original-title>
+            <i class="icon-user"></i> B2B商务企业列表
+        </div>
+        <div class="box-content">
+            <!-- ng-tableStart -->
+            <div class="fullscreen" style="padding: 10px;">
+                <div class="row">
+                    <div class="col-xs-2">
+                        共<span class="badge" ng-bind="tableParams.total()"></span>条
+                    </div>
+                    <div class="col-sm-4">
+                        <div class="input-group">
+                            <input placeholder="企业名称或UU号进行搜索" class="form-control"
+                                   ng-model="keyword"  ng-search="onSearch()" size="16" type="text">
+                            <span class="input-group-btn">
+								<button class="btn btn-primary" type="button" ng-click="onSearch()">搜索</button>
+							</span>
+                        </div>
+                    </div>
+                </div>
+                <table ng-table="tableParams" class="table table-bordered table-striped" style="margin-top: 10px;">
+                    <thead>
+                    <tr>
+                        <th class="text-center" width="60">序号</th>
+                        <th class="text-center" width="100">UU</th>
+                        <th class="text-center" width="200">企业名称</th>
+                        <th class="text-center" width="300">企业地址</th>
+                        <th class="text-center" width="150">营业执照</th>
+                        <th class="text-center" width="120">注册时间</th>
+                    </tr>
+                    </thead>
+                    <tbody>
+                    <tr ng-repeat="en in $data" ng-click="redirect(en.uu)">
+                        <td class="text-center" ng-bind="$index + 1"></td>
+                        <td class="text-center" ng-bind="en.uu"></td>
+                        <td class="text-center" ng-bind="en.enName"></td>
+                        <td class="text-center" ng-bind="en.enAddress"></td>
+                        <td class="text-center" ng-bind="en.enBussinessCode"></td>
+                        <td class="text-center" ng-bind="en.enDate | date: 'yyyy-MM-dd HH:mm'"></td>
+                    </tr>
+                    <tr ng-if="$data.length == 0">
+                        <td colspan="10" class="text-center" style="line-height: 40px; font-size: 20px;"><i class="fa fa-smile-o fa-lg"></i> 暂未查询到企业信息</td>
+                    </tr>
+                    </tbody>
+                </table>
+            </div>
+            <a id="bottom"></a>
+            <!-- ng-tableEnd -->
+        </div>
+    </div><!--/span-->
+</div><!--/row-->

+ 5 - 0
src/main/webapp/resources/view/admin/index.html

@@ -31,6 +31,11 @@
 					<li><a href="#/product/sailingGoods"> <span
 							class="yellow">8</span> 在售中的产品
 					</a></li>
+					<li>
+						<a href="#/b2b/manage">
+							<span class="green">9</span> b2b管理页面
+						</a>
+					</li>
 				</ul>
 			</div>
 		</div>