Browse Source

Merge remote-tracking branch 'origin/dev-mysql' into dev-mysql

hulh 8 years ago
parent
commit
9cbdddf086

+ 26 - 0
src/main/java/com/uas/platform/b2c/common/search/controller/SearcherController.java

@@ -18,6 +18,8 @@ import org.apache.commons.collections.map.HashedMap;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -25,6 +27,10 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.Predicate;
+import javax.persistence.criteria.Root;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -380,4 +386,24 @@ public class SearcherController {
 		SystemSession.setUser((User)request.getSession().getAttribute("user"));
 		return searcherService.deleteSearchHistoryByuserUUAndenUU();
 	}
+
+	/**
+	 * 分页获取搜索记录
+	 * @return
+	 */
+	@RequestMapping(value = "/searchHistory/page",method = RequestMethod.GET)
+	@ResponseBody
+	public Page<SearchHistory> getByUserUuByPage(PageParams params) {
+		final PageInfo info = new PageInfo(params);
+		if(info.getSort() == null){
+			info.sorting("searchTime", Sort.Direction.DESC);
+		}
+		Page<SearchHistory> pageLogs = searchHistoryDao.findAll(new Specification<SearchHistory>() {
+			public Predicate toPredicate(Root<SearchHistory> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
+				query.where(info.getPredicates(root, query, builder));
+				return null;
+			}
+		}, info);
+		return pageLogs;
+	}
 }

+ 1 - 1
src/main/java/com/uas/platform/b2c/core/filter/SSOInterceptor.java

@@ -195,7 +195,7 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
         if (needPermission != null) {
             if ("prod".equals(profile)) {
                 if (!user.getEnterprise().getUu().toString().equals(enUU)) {
-                    if ("进入优软商城后台进行运营维护".equals(needPermission)) {
+                    if ("优软商城后台-运维".equals(needPermission)) {
                         throw new AccessDeniedException("无法访问,没有 " + needPermission + " 权限!");
                     }
                 }

+ 2 - 3
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductDao.java

@@ -4,7 +4,6 @@ import com.uas.platform.b2c.prod.commodity.model.Product;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.jpa.repository.query.Procedure;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
@@ -35,8 +34,8 @@ public interface ProductDao extends JpaSpecificationExecutor<Product>, JpaReposi
      * @param enuu the enuu 企业enuu
      * @return string
      */
-    @Procedure(procedureName = "PRODUCT$MATCHES")
-    String upateResultByEnuuForB2C(Long enuu);
+//    @Procedure(procedureName = "PRODUCT$MATCHES")
+//    String upateResultByEnuuForB2C(Long enuu);
 
     /**
      * 获取当前的状态的数据

+ 4 - 5
src/main/java/com/uas/platform/b2c/prod/commodity/dao/ProductImportHistDao.java

@@ -4,7 +4,6 @@ import com.uas.platform.b2c.prod.commodity.model.ProductImportHist;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
-import org.springframework.data.jpa.repository.query.Procedure;
 import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
@@ -25,8 +24,8 @@ public interface ProductImportHistDao extends JpaRepository<ProductImportHist, L
      * @param uploadNum 本次上传的编号
      * @param enuu      企业的uu
      */
-    @Procedure(procedureName = "PRODUCT$IMPORT$VALIDATE")
-    void validProductImportInfo(String uploadNum, Long enuu);
+//    @Procedure(procedureName = "PRODUCT$IMPORT$VALIDATE")
+//    void validProductImportInfo(String uploadNum, Long enuu);
 
 
     /**
@@ -46,8 +45,8 @@ public interface ProductImportHistDao extends JpaRepository<ProductImportHist, L
      * @param uploadNum 本次导入的标准库
      * @return Integer 导入的条数
      */
-    @Procedure(procedureName = "PRODUCT$IMPORT$REPOSITORY")
-    Integer importToProRepository(String uploadNum);
+//    @Procedure(procedureName = "PRODUCT$IMPORT$REPOSITORY")
+//    Integer importToProRepository(String uploadNum);
 
     /**
      * 导出批次下的 指定状态的信息

+ 8 - 8
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductImportHistServiceImpl.java

@@ -1,10 +1,9 @@
 package com.uas.platform.b2c.prod.commodity.service.impl;
 
+import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.prod.commodity.dao.ProductImportHistDao;
-import com.uas.platform.b2c.prod.commodity.service.ProductImportHistService;
 import com.uas.platform.b2c.prod.commodity.model.ProductImportHist;
-import com.uas.platform.b2c.core.support.SystemSession;
-import com.uas.platform.b2c.core.constant.SplitChar;
+import com.uas.platform.b2c.prod.commodity.service.ProductImportHistService;
 import com.uas.platform.b2c.trade.support.ResultMap;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
@@ -51,15 +50,15 @@ public class ProductImportHistServiceImpl implements ProductImportHistService {
             ProductImportHist hist = importHists.get(0);
             String uploadNum = hist.getUploadNum();
             productImportHistDao.save(importHists);
-            productImportHistDao.validProductImportInfo(uploadNum, SystemSession.getUser().getEnterprise().getUu());
-            Integer integer = productImportHistDao.importToProRepository(uploadNum);
+//            productImportHistDao.validProductImportInfo(uploadNum, SystemSession.getUser().getEnterprise().getUu());
+//            Integer integer = productImportHistDao.importToProRepository(uploadNum);
             //导入失败的条数(重复记录,信息缺失)
             List<Integer> importFailure = new ArrayList<>();
             Collections.addAll(importFailure, ProductImportHist.ProductImportStatus.INFO_PARTIAL.getCode(), ProductImportHist.ProductImportStatus.INFO_DUPLICATE.getCode());
             Integer failureC = productImportHistDao.getCountProductImport(uploadNum, importFailure);
             map.put("importError", failureC);
             //匹配成功的条数
-            map.put("success", integer);
+//            map.put("success", integer);
             map.put("uploadNum", uploadNum);
         }
         return map;
@@ -102,8 +101,9 @@ public class ProductImportHistServiceImpl implements ProductImportHistService {
         if(StringUtils.isEmpty(uploadNum)) {
             return  ResultMap.success(0);
         }
-        Integer integer = productImportHistDao.importToProRepository(uploadNum);
-        return ResultMap.success(integer);
+        // 该功能被弃用
+//        Integer integer = productImportHistDao.importToProRepository(uploadNum);
+        return ResultMap.success(0);
     }
 
     /**

+ 5 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ProductServiceImpl.java

@@ -37,7 +37,6 @@ import com.uas.platform.core.model.Type;
 import com.uas.platform.core.persistence.criteria.LogicalExpression;
 import com.uas.platform.core.persistence.criteria.PredicateUtils;
 import com.uas.platform.core.persistence.criteria.SimpleExpression;
-import oracle.jdbc.oracore.OracleType;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -370,7 +369,11 @@ public class ProductServiceImpl implements ProductService {
         }
         Integer num = null;
         if (flag) {
-            String result = productDao.upateResultByEnuuForB2C(SystemSession.getUser().getEnterprise().getUu());
+            /**
+             * 目前 测试没有这个存储过程,暂时注释掉这个代码
+             */
+            //String result = productDao.upateResultByEnuuForB2C(SystemSession.getUser().getEnterprise().getUu());
+            String result = "0";
             if (StringUtils.isEmpty(result)) {
                 map.put("size", 0);
                 map.put("redundance", 0);

+ 1 - 1
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/ReleaseProductByBatchServiceImpl.java

@@ -371,7 +371,7 @@ public class ReleaseProductByBatchServiceImpl implements ReleaseProductByBatchSe
 					} else {
 						// 如果未填分段价格,默认为最小包装量价格
 						GoodsQtyPrice qtyPrice = new GoodsQtyPrice();
-						qtyPrice.setStart(DoubleConstant.minReserve);
+						qtyPrice.setStart(releaseProductByBatch.getMinBuyQty());
 						if(Currency.USD.equals(releaseProductByBatch.getCurrency())) {
 							Double usdMinPackPrice = releaseProductByBatch.getUsdMinPackPrice();
 							if(usdMinPackPrice != null) {

+ 7 - 7
src/main/java/com/uas/platform/b2c/trade/presale/model/CollectionInfo.java

@@ -16,44 +16,44 @@ public class CollectionInfo implements Serializable{
 	private static final long serialVersionUID = 1L;
 	
 	@Id
-	@Column(name = "store$id")
+	@Column(name = "store_id")
 	@GeneratedValue
 	private Long id;
 	
 	/**
 	  * 收藏的器件id
 	  */
-	@Column(name = "store$compid")
+	@Column(name = "store_compid")
 	private Long componentid;
 	
 	/**
 	  * 器件id
 	  */
-	@Column(name = "store$brandid")
+	@Column(name = "store_brandid")
 	private Long brandid;
 	
 	/**
 	  * 收藏的类型  1 代表品牌  2 代表器件
 	  */
-	@Column(name = "store$kind")
+	@Column(name = "store_kind")
 	private Integer kind;
 	
 	/**
 	  * 收藏人的uu号
 	  */
-	@Column(name = "store$useruu")
+	@Column(name = "store_useruu")
 	private Long useruu;
 	
 	/**
 	 * 收藏人的enuu号
 	 */
-	@Column(name = "store$enuu")
+	@Column(name = "store_enuu")
 	private Long enuu;
 
 	/**
 	 * 是否个人用户
 	 */
-	@Column(name = "store$dissociative")
+	@Column(name = "store_dissociative")
 	private Integer dissociative;
 
 	public Long getUseruu() {

+ 11 - 3
src/main/webapp/resources/js/admin/controllers/ads/ads_component.js

@@ -31,7 +31,7 @@ define([ 'app/app' ], function(app) {
 
         $scope.weight = function(brand){
             ComponentActive.setSimpleInfoWeight({weight: brand.inputWeight}, brand, function(data){
-                toaster.pop('success', '处理成功', '【' + data[0].nameCn + '】' + '禁用成功');
+                toaster.pop('success', '处理成功', '【' + data[0].code + '】' + '禁用成功');
                 loadData();
             }, function(res){
                 toaster.pop('error', '错误', res.data);
@@ -40,7 +40,7 @@ define([ 'app/app' ], function(app) {
         $scope.disweight = function(brand){
             ComponentActive.setSimpleInfoWeight({weight: 0}, brand, function(data){
                 if (data.searchWeight == 0){
-                    toaster.pop('success', '处理成功', '【' + data.nameCn + '】' + '已取消推广');
+                    toaster.pop('success', '处理成功', '【' + data.code + '】' + '已取消推广');
                     $scope.load('weight');
                 } else{
                     toaster.pop('error', '错误', '取消推广失败');
@@ -51,12 +51,20 @@ define([ 'app/app' ], function(app) {
         };
         $scope.updateweight = function(brand){
             ComponentActive.setSimpleInfoWeight({weight: brand.inputWeight}, brand, function(data){
-                toaster.pop('success', '处理成功', '【' + data.nameCn + '】' + '已修改推广');
+                toaster.pop('success', '处理成功', '【' + data.code + '】' + '已修改推广');
                 $scope.load('weight');
             }, function(res){
                 toaster.pop('error', '错误', res.data);
             })
         };
 
+        $scope.searchComponent = function(keyword){
+            ComponentActive.getByCode({ code: keyword}, {}, function(data){
+                $scope.searchTableParams = new NgTableParams({}, { dataset: data});
+            }, function(res){
+                toaster.pop('error', '错误', res.data);
+            })
+        };
+
     }]);
 });

+ 50 - 1
src/main/webapp/resources/js/admin/controllers/search/search_See.js

@@ -1,6 +1,6 @@
 define(['app/app'], function (app) {
     'use strict';
-    app.register.controller('SearchSeeBrandCtrl', ['$scope', '$http', '$rootScope', 'SessionService', function($scope, $http, $rootScope, SessionService) {
+    app.register.controller('SearchSeeBrandCtrl', ['$scope', '$http', '$rootScope', 'ngTableParams', 'SessionService', 'BaseService', function($scope, $http, $rootScope, ngTableParams, SessionService, BaseService) {
         $scope.searchType = 'original';// 搜索类型
         $scope.searchType = {
             original: false,
@@ -87,6 +87,20 @@ define(['app/app'], function (app) {
                     },function (error) {
                     });
 
+                    $http({
+                        method:'GET',
+                        url:'search/componentGoods/collect',
+                        params:{
+                            'keyword' : $scope.keyword,
+                            'collectList' : 'goods_brand',
+                            'paramJSON':{}
+                        }}).then(function (data) {
+                        $scope.result = data.data;
+                        $scope.brandtime = (new Date()).valueOf() - timestart;
+                        console.log(data);
+                    },function (error) {
+                    });
+
 
 
                    // window.location.href = 'search?w=' + encodeURI(encodeURIComponent($scope.keyword)) + '&type=all';
@@ -102,6 +116,41 @@ define(['app/app'], function (app) {
             if(!$scope.keyword) $scope.keyword = '';
         };
 
+        //table设置
+        $scope.searchLogTableParams = new ngTableParams({
+            page : 1,
+            count : 20
+        }, {
+            total : 0,
+            getData : function ($defer, params) {
+                $scope.paginationParams = params;
+                const param = BaseService.parseParams(params.url());
+                //param.status = $scope.status;
+                if($scope.search !=null){
+                    if($scope.search == 1){
+                        param.userUu = $scope.searchContent;
+                    }
+                    if($scope.search == 2){
+                        param.userName = $scope.searchContent;
+                    }
+                }
+
+                $http({
+                    method:'GET',
+                    url:'search/searchHistory/page',
+                    params:param
+                }).then(function (data) {
+                    params.total(data.totalElements);
+                    $defer.resolve(data.data.content);
+                    $scope.logs = data.data.content;
+                    params.total(data.data.totalElements);
+                    console.log(data.data.content);
+                },function (error) {
+                });
+            }
+        });
+
+
         // 搜索框失去焦点,关闭联想框
         $scope.onBlur = function() {
             $scope.associate = false;

+ 14 - 1
src/main/webapp/resources/view/admin/ads/ads_component.html

@@ -27,7 +27,20 @@
             <!-- ng-tableStart -->
             <div class="fullscreen" style="padding: 10px;overflow-y:auto;">
                 <input  style="height: 30px"  ng-model="keyword"/>
-                <button ng-click="updateweight(brand)" class="btn btn-danger btn-sm" ng-if="brand.searchWeight"><i class="fa fa-check"></i> 修改推广</button>
+                <button ng-click="searchComponent(keyword)" class="btn btn-danger btn-sm" ><i class="fa fa-check"></i> 搜索器件</button>
+                <table ng-table="searchTableParams" class="table table-condensed table-bordered table-striped">
+                    <tr ng-repeat="brand in $data">
+                        <td data-title="'器件名'" filter="{code: 'text'}">{{brand.code}}</td>
+                        <td data-title="'品牌名'" filter="{brand.nameCn: 'text'}">{{brand.brand.nameCn}}</td>
+                        <td data-title="'权重'" >{{brand.searchWeight}}</td>
+                        <td data-title="'操作'">
+                            <button ng-click="updateweight(brand)" class="btn btn-danger btn-sm" ng-if="!brand.searchWeight"><i class="fa fa-check"></i> 推广</button>
+                            <button ng-click="disweight(brand)" class="btn btn-danger btn-sm" ng-if="brand.searchWeight"><i class="fa fa-check"></i> 解除推广</button>
+                            <button ng-click="updateweight(brand)" class="btn btn-danger btn-sm" ng-if="brand.searchWeight"><i class="fa fa-check"></i> 修改推广</button>
+                            <input type="number" style="height: 30px"  ng-model="brand.inputWeight"/>
+                        </td>
+                    </tr>
+                </table>
             </div>
             <!-- ng-tableEnd -->
         </div>

+ 11 - 20
src/main/webapp/resources/view/admin/search/search_See.html

@@ -14,7 +14,9 @@
                     共<span class="totalNum">{{result.total}}</span>条
                 </p>
                 <p style="margin-top: 8px; font-weight: bold;">
-                    共耗时<span class="totalNum">{{result.time}}</span>ms  ,kind共耗时 {{kindtime}} ms
+                    共耗时<span class="totalNum">{{result.time}}</span>ms  <br><br>
+                    类目统计共耗时 {{kindtime}} ms <br><br>
+                    品牌统计共耗时 {{brandtime}} ms
                 </p>
             </div>
             <div class="col-xs-offset-4 col-xs-7">
@@ -24,10 +26,7 @@
 					<button ng-click="search()" class="btn btn-primary" type="button">搜索</button>
 				</span>
                 </div>
-                <ul class="association" ng-show="associate || associateEnter"  ng-class="{'none': !associate || !associateEnter}" ng-mouseenter="onAssociateEnter()" ng-mouseleave="onAssociateLeave()">
-                    <li ng-repeat="as in associates" ng-bind="as" ng-class="{'active': $index==selectIndex}"
-                        ng-click="onAssociateClick(as)"></li>
-                </ul>
+
             </div>
         </div>
         <!--
@@ -39,30 +38,22 @@
             </div>
             -->
         <p ng-model="test"></p>
-        <table ng-table="logUsageTableParams"
+        <table ng-table="searchLogTableParams"
                class="table table-bordered table-striped table-hover" style="word-break:break-all; word-wrap:break-all;">
             <thead>
             <tr class="tr-default">
                 <th width="10%;" class="text-center">用户UU号</th>
-                <th width="7%;" class="text-center">用户名</th>
-                <th width="10%" class="text-center">标题</th>
-                <th width="30%" class="text-center">具体操作信息</th>
-                <th width="8%%" class="text-center">时间</th>
-                <th width="10%" class="text-center">ip</th>
-                <th width="10%" class="text-center">手机号</th>
-                <th width="15%" class="text-center">邮箱</th>
+                <th width="7%;" class="text-center">企业UU号</th>
+                <th width="10%" class="text-center">搜索词</th>
+                <th width="30%" class="text-center">搜索时间</th>
             </tr>
             </thead>
             <tbody ng-repeat="logUsage in $data">
             <tr class="text-center">
                 <td><span ng-bind="logUsage.userUU"></span></td>
-                <td><span ng-bind="logUsage.user.userName"></span></td>
-                <td><span ng-bind="logUsage.title"></span></td>
-                <td><span ng-bind="logUsage.message+logUsage.detail"></span></td>
-                <td><span ng-bind="logUsage.time | date:'yyyy-MM-dd HH:mm:ss'"></span></td>
-                <td><span ng-bind="logUsage.ip"></span></td>
-                <td><span ng-bind="logUsage.user.userTel"></span></td>
-                <td><span ng-bind="logUsage.user.userEmail"></span></td>
+                <td><span ng-bind="logUsage.userEnuu"></span></td>
+                <td><span ng-bind="logUsage.keyword"></span></td>
+                <td><span ng-bind="logUsage.searchTime | date:'yyyy-MM-dd HH:mm:ss'"></span></td>
             </tr>
             </tbody>
         </table>