Просмотр исходного кода

邀请注册接口功能及页面的相关调整

hejq 8 лет назад
Родитель
Сommit
b90e0f1b17

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

@@ -214,4 +214,11 @@ public class EnterpriseBaseInfo implements Serializable {
     public void setRemark(String remark) {
         this.remark = remark;
     }
+
+    public EnterpriseBaseInfo(Enterprise e) {
+        this.enName = e.getEnName();
+        this.uu = e.getUu();
+        this.enAddress = e.getEnAddress();
+        this.enTel = e.getEnAdminTel();
+    }
 }

+ 3 - 3
src/main/java/com/uas/platform/b2b/model/InvitationRecord.java

@@ -58,7 +58,7 @@ public class InvitationRecord implements Serializable {
 	 */
 	@OneToOne(cascade = { CascadeType.MERGE, CascadeType.REFRESH })
 	@JoinColumn(name = "in_useruu", insertable = false, updatable = false)
-	private User user;
+	private UserBaseInfo user;
 	
 	/**
 	 * 最后一次邀请时间
@@ -238,11 +238,11 @@ public class InvitationRecord implements Serializable {
 		this.venduu = venduu;
 	}
 
-	public User getUser() {
+	public UserBaseInfo getUser() {
 		return user;
 	}
 
-	public void setUser(User user) {
+	public void setUser(UserBaseInfo user) {
 		this.user = user;
 	}
 

+ 20 - 21
src/main/java/com/uas/platform/b2b/service/impl/InvitationRecordServiceImpl.java

@@ -163,7 +163,7 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 			if (record.getId() != null) {
 				map.put("success", "邀请已发送");
 			} else {
-				map.put("success", "邀请发送失败");
+				map.put("error", "邀请发送失败");
 			}
 		}
 		// 同步一个数据到账户中心(不是必须,不判断状态)
@@ -199,26 +199,25 @@ public class InvitationRecordServiceImpl implements InvitationRecordService {
 	public SPage<InvitationRecord> getRecords(PageParams params, String keyword) {
 		SPage<InvitationRecord> invitatrecords = searchService.getInvitationByKeyword(keyword, params);
 		List<InvitationRecord> records = invitatrecords.getContent();
-		List<InvitationRecord> newRecords = new ArrayList<InvitationRecord>();
-		for (InvitationRecord record : records) {
-			List<Enterprise> enters = enterpriseDao.findByEnName(record.getVendname());
-			if (!CollectionUtils.isEmpty(enters)) {
-				if (enters.size() == 1) {
-					record.setActive(Constant.YES);
-					record.setSamecount(enters.size());
-					record.setVenduu(enters.get(0).getUu());
-				} else {
-					record.setActive(Constant.NO);
-					record.setSamecount(enters.size());
-				}
-			} else {
-				record.setActive(Constant.NO);
-				record.setSamecount(enters.size());
-			}
-			record = invitationRecordDao.save(record);
-			newRecords.add(record);
-		}
-		invitatrecords.setContent(newRecords);
+		if (!CollectionUtils.isEmpty(records)) {
+            for (InvitationRecord record : records) {
+                List<Enterprise> enters = enterpriseDao.findByEnName(record.getVendname());
+                if (!CollectionUtils.isEmpty(enters)) {
+                    if (enters.size() == 1) {
+                        record.setActive(Constant.YES);
+                        record.setSamecount(enters.size());
+                        record.setVenduu(enters.get(0).getUu());
+                    } else {
+                        record.setActive(Constant.NO);
+                        record.setSamecount(enters.size());
+                    }
+                } else {
+                    record.setActive(Constant.NO);
+                    record.setSamecount(enters.size());
+                }
+                invitationRecordDao.save(record);
+            }
+        }
 		return invitatrecords;
 	}
 

+ 127 - 0
src/main/java/com/uas/platform/b2b/v2/controller/InviteRecordController.java

@@ -0,0 +1,127 @@
+package com.uas.platform.b2b.v2.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.uas.platform.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.b2b.model.InvitationRecord;
+import com.uas.platform.b2b.search.SearchService;
+import com.uas.platform.b2b.service.InvitationRecordService;
+import com.uas.platform.b2b.support.CommBufferedLogger;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.v2.service.InviteRecordService;
+import com.uas.platform.core.logging.BufferedLoggerManager;
+import com.uas.platform.core.model.Constant;
+import com.uas.platform.core.model.PageParams;
+import com.uas.platform.core.web.bind.RequestState;
+import com.uas.search.b2b.model.SPage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 用户邀请记录公共接口
+ *
+ * Created by hejq on 2018-03-22.
+ */
+@RestController
+@RequestMapping("/public/invitation")
+public class InviteRecordController {
+
+    @Autowired
+    private InviteRecordService inviteRecordService;
+
+    @Autowired
+    private InvitationRecordService recordService;
+
+    private final static CommBufferedLogger logger = BufferedLoggerManager.getLogger(CommBufferedLogger.class);
+
+    @Autowired
+    private SearchService searchService;
+
+    /**
+     * 通过传入的企业名称检验企业注册情况
+     *
+     * @param name 输入的企业名称
+     * @return
+     */
+    @RequestMapping(value = "/checkEnName", method = RequestMethod.GET)
+    private List<EnterpriseBaseInfo> checkByName(String name, Long enUU, Long userUU) {
+        logger.log("邀请注册", "校验企业名称", name, userUU, enUU);
+        return inviteRecordService.checkByName(name);
+    }
+
+    /**
+     * 获取邀请记录
+     *
+     * @param params 分页参数
+     * @param keyword 搜索关键词
+     * @param enUU 企业UU
+     * @param userUU 用户UU
+     * @return
+     */
+    @RequestMapping(value = "/records", method = RequestMethod.GET)
+    private SPage<InvitationRecord> getInviteRecords(Long enUU, Long userUU, PageParams params, String keyword) {
+        logger.log("邀请注册", "查询邀请记录", "关键字:" + keyword, userUU, enUU);
+        com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
+        pageParams.getFilters().put("in_useruu", userUU);
+        return inviteRecordService.getInviteRecords(enUU, userUU, pageParams, keyword);
+    }
+
+    /**
+     * 获取邀请记录(已注册)
+     *
+     * @param params 分页参数
+     * @param keyword 搜索关键词
+     * @param enUU 企业UU
+     * @param userUU 用户UU
+     * @return
+     */
+    @RequestMapping(value = "/records", params = RequestState.DONE, method = RequestMethod.GET)
+    private SPage<InvitationRecord> getInviteRecordsDone(Long enUU, Long userUU, PageParams params, String keyword) {
+        logger.log("邀请注册", "查询邀请记录(已注册)", "关键字:" + keyword, userUU, enUU);
+        com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
+        pageParams.getFilters().put("in_useruu", userUU);
+        pageParams.getFilters().put("in_active", Constant.YES);
+        return inviteRecordService.getInviteRecords(enUU, userUU, pageParams, keyword);
+    }
+
+    /**
+     * 获取邀请记录(未注册)
+     *
+     * @param params 分页参数
+     * @param keyword 搜索关键词
+     * @param enUU 企业UU
+     * @param userUU 用户UU
+     * @return
+     */
+    @RequestMapping(value = "/records", params = RequestState.TODO, method = RequestMethod.GET)
+    private SPage<InvitationRecord> getInviteRecordsTodo(Long enUU, Long userUU, PageParams params, String keyword) {
+        logger.log("邀请注册", "查询邀请记录(未注册)", "关键字:" + keyword, userUU, enUU);
+        com.uas.search.b2b.model.PageParams pageParams = searchService.convertPageParams(params, null);
+        pageParams.getFilters().put("in_useruu", userUU);
+        pageParams.getFilters().put("in_active", Constant.NO);
+        return inviteRecordService.getInviteRecords(enUU, userUU, pageParams, keyword);
+    }
+
+    /**
+     * 新增邀请记录
+     *
+     * @param jsonStr 封装的数据
+     * @return
+     */
+    @RequestMapping(value = "/add", method = RequestMethod.POST)
+    private ModelMap addInvitation(String jsonStr) {
+        InvitationRecord record = JSON.parseObject(jsonStr, InvitationRecord.class);
+        if (null == record.getEnuu() || null == record.getUseruu()) {
+            throw new IllegalAccessError("企业UU和用户UU不能为空");
+        }
+        record.setDate(new Date(System.currentTimeMillis()));
+        record.setActive(Constant.NO);
+        logger.log("邀请注册", "新增邀请", record.getVendname(), record.getUseruu(), record.getEnuu());
+        return recordService.invite(record);
+    }
+}

+ 35 - 0
src/main/java/com/uas/platform/b2b/v2/service/InviteRecordService.java

@@ -0,0 +1,35 @@
+package com.uas.platform.b2b.v2.service;
+
+import com.uas.platform.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.b2b.model.InvitationRecord;
+import com.uas.search.b2b.model.PageParams;
+import com.uas.search.b2b.model.SPage;
+
+import java.util.List;
+
+/**
+ *  用户邀请记录公共接口
+ *
+ * Created by hejq on 2018-03-22.
+ */
+public interface InviteRecordService {
+
+    /**
+     * 通过填写的名称检验企业是否已注册
+     *
+     * @param name 输入的企业名称
+     * @return
+     */
+    List<EnterpriseBaseInfo> checkByName(String name);
+
+    /**
+     * 获取邀请记录
+     *
+     * @param params 分页参数
+     * @param keyword 搜索关键词
+     * @param enUU 企业UU
+     * @param userUU 用户UU
+     * @return
+     */
+    SPage<InvitationRecord> getInviteRecords(Long enUU, Long userUU, PageParams params, String keyword);
+}

+ 62 - 0
src/main/java/com/uas/platform/b2b/v2/service/impl/InviteRecordServiceImpl.java

@@ -0,0 +1,62 @@
+package com.uas.platform.b2b.v2.service.impl;
+
+import com.uas.platform.b2b.model.Enterprise;
+import com.uas.platform.b2b.model.EnterpriseBaseInfo;
+import com.uas.platform.b2b.model.InvitationRecord;
+import com.uas.platform.b2b.service.EnterpriseService;
+import com.uas.platform.b2b.service.InvitationRecordService;
+import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.b2b.v2.service.InviteRecordService;
+import com.uas.search.b2b.model.PageParams;
+import com.uas.search.b2b.model.SPage;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by hejq on 2018-03-22.
+ */
+@Service
+public class InviteRecordServiceImpl implements InviteRecordService {
+
+    @Autowired
+    private EnterpriseService enterpriseService;
+
+    @Autowired
+    private InvitationRecordService invitationRecordService;
+
+    /**
+     * 通过填写的名称检验企业是否已注册
+     *
+     * @param name 输入的企业名称
+     * @return
+     */
+    @Override
+    public List<EnterpriseBaseInfo> checkByName(String name) {
+        List<EnterpriseBaseInfo> baseInfoList = new ArrayList<EnterpriseBaseInfo>();
+        List<Enterprise> enterprises = enterpriseService.findByName(name);
+        if (!CollectionUtils.isEmpty(enterprises)) {
+            for (Enterprise e : enterprises) {
+                baseInfoList.add(new EnterpriseBaseInfo(e));
+            }
+        }
+        return baseInfoList;
+    }
+
+    /**
+     * 获取邀请记录
+     *
+     * @param params 分页参数
+     * @param keyword 搜索关键词
+     * @param enUU 企业UU
+     * @param userUU 用户UU
+     * @return
+     */
+    @Override
+    public SPage<InvitationRecord> getInviteRecords(Long enUU, Long userUU, PageParams params, String keyword) {
+        return invitationRecordService.getRecords(params, keyword);
+    }
+}

+ 32 - 3
src/main/webapp/resources/js/index/app.js

@@ -1366,8 +1366,8 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
         };
 
         $scope.save = function (enter) {
-            if (!enter.vendusertel && !enter.venduseremail) {
-                toaster.pop('info', '提示', '手机号或邮箱至少填写一个才能通知到客户');
+            if (!enter.vendusertel) {
+                toaster.pop('info', '提示', '请填写手机号,方便通知客户');
             } else {
                 $modalInstance.close(enter);
             }
@@ -21396,10 +21396,39 @@ define(['toaster', 'charts', 'ngTable', 'common/services', 'common/directives',
     }]);
 
     // 企业圈查询收到待处理的数目
-    app.controller('RequestAmountCtrl', ['$scope', 'AddPartnerMyRequest', function ($scope, AddPartnerMyRequest) {
+    app.controller('RequestAmountCtrl', ['$scope', 'AddPartnerMyRequest', '$modal', function ($scope, AddPartnerMyRequest, $modal) {
         AddPartnerMyRequest.requestAmount({}, function (data) {
             $scope.requestTodo = data;
         });
+
+        /**
+         * 邀请注册商务平台
+         */
+        $scope.invite = function () {
+            var modalInstance = $modal.open({
+                animation: true,
+                templateUrl: 'static/tpl/index/search/enterpirseInfo.html',
+                controller: 'InviteCtrl',
+                resolve: {
+                    enname: function () {
+                        return null
+                    }
+                }
+            });
+            modalInstance.result.then(function (data) {
+                InvitationRecord.invite({formStore: data}, {}, function (data) {
+                    if (data.success) {
+                        toaster.pop('success', '提示', data.success);
+                        $scope.tableParams.reload();
+                    }
+                    if (data.error) {
+                        toaster.pop('error', '提示', data.error);
+                    }
+                }, function (response) {
+                    toaster.pop('error', '提示', response.data);
+                });
+            });
+        }
     }]);
 
     // 当前企业所有的物料信息

+ 1 - 39
src/main/webapp/resources/tpl/index/baseInfo/addPartnerAndRecord.html

@@ -1,51 +1,13 @@
 <div ng-include src="'static/tpl/index/baseInfo/enMenu.html'"></div>
 <div class="group-container condition">
     <div class="row" ng-controller="RequestAmountCtrl">
-        <!--<div class="col-xs-6">
-            <div class="btn-group btn-group-sm btn-group-justified">
-                <div class="btn-group btn-group-sm">
-                    <a type="button" class="btn btn-default btn-line" ui-sref="baseInfo.newPartner"
-                       ng-class="{'btn-info':status=='partner'}" style="width: 120px;margin-left: 18%;">新的合作伙伴<b class="new-dot" ng-if="requestTodo.todo>0"></b></a>
-                </div>
-                <div class="btn-group btn-group-sm">
-                    <a type="button" class="btn btn-default btn-line" ui-sref="baseInfo.invitation"
-                       ng-class="{'btn-info':status=='invitation'}" >邀请注册记录</a>
-                </div>
-                &lt;!&ndash;<div class="btn-group btn-group-sm">
-                    <a type="button" class="btn btn-default btn-line" ui-sref="baseInfo.invitation"
-                       ng-class="{'btn-info':status=='invitation'}" style="width: 110px;">个人邀请注册记录</a>
-                </div>
-                <div class="btn-group btn-group-sm">
-                    <a type="button" class="btn btn-default btn-line" ui-sref="baseInfo.invitationforEn"
-                       ng-class="{'btn-info':status=='invitationTeam'}" style="width: 110px;">企业邀请注册记录</a>
-                </div>&ndash;&gt;
-                <div class="btn-group btn-group-sm">
-                    <a type="button" class="btn btn-default btn-line" ui-sref="baseInfo.partner_searchresult"
-                       ng-class="{'btn-info':status=='add'}" >添加合作伙伴&lt;!&ndash; (<em>5</em>) &ndash;&gt;</a>
-                </div>
-            </div>
-        </div>-->
         <div class="com-tab-menu col-xs-6">
             <ul>
                 <li><a ui-sref="baseInfo.newPartner" ng-class="{'active':status=='partner'}">新的合作伙伴<b class="new-dot" ng-if="requestTodo.todo>0" style="top:0;"></b></a></li>
                 <li class="no-after"><a  ui-sref="baseInfo.invitation" ng-class="{'active':status=='invitation'}" >邀请注册记录</a></li>
                 <li style="padding-left: 0;"><a ui-sref="baseInfo.partner_searchresult" ng-class="{'active':status=='add'}" class="add-btn">+ 添加合作伙伴</a></li>
+                <li style="padding-left: 0;"><a ng-click="invite()" ng-class="{'active':status=='add'}" class="add-btn">+ 邀请注册</a></li>
             </ul>
         </div>
-        <!--<div class="form-input col-xs-6 myReuest search-bg">
-            <div class="row">
-                <div class="col-xs-9">
-                    <div class="search">
-                        <div class="form-group form-group-sm has-feedback" dropdown auto-close="outsideClick" on-toggle="searchAdvance=open">
-                            <input type="search" class="form-control input-sm" ng-model="keyword" ng-search="onSearch()" placeholder="输入企业名称、简称或申请人搜索" />
-                            <a class="btn input-group-addon" ng-click="onSearch()">搜索</a>
-                        </div>
-                    </div>
-                </div>
-                <div class="col-xs-3" style="padding-left: 0;">
-                    <p>搜索到<em>{{tableParams.total()}}</em>条</p>
-                </div>
-            </div>
-        </div>-->
     </div>
 </div>

+ 2 - 3
src/main/webapp/resources/tpl/index/search/enterpirseInfo.html

@@ -6,7 +6,7 @@
 	border: none;
 }
 .per-data ul li input{
-	width: 420px !important;
+	width: 340px !important;
 }
 </style>
 <link rel="stylesheet" href="static/css/add.css " />
@@ -19,9 +19,8 @@
 				<li><em>企业名称</em><input type="text" placeholder="企业名称" ng-model="enter.vendname" required="true"></li>
 				<li><em>联系人</em><input type="text" placeholder="客户姓名"  ng-model="enter.vendusername" required="true"></li>
 				<li><em>手机</em><input type="text" placeholder="手机" ng-model="enter.vendusertel" ng-pattern="/^1(3|4|5|7|8)\d{9}$/"></li>
-				<li><em>邮箱</em><input type="email" placeholder="邮箱" ng-model="enter.venduseremail" ng-pattern="/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/"/></li>
 				<li class="text-inverse"><em></em>提示:请输入正确的企业名称,系统将根据企业名称自动建立合作伙伴关系</li>
-				<li class="per-btn"><button ng-click="save(enter)" class="save" ng-disabled="contactInfo.$invalid">邀请</button><a ng-click="cancel()" class="mod-psd">取消</a></li>
+				<li class="per-btn"><button ng-click="save(enter)" class="save" ng-disabled="contactInfo.$invalid">发出邀请</button><a ng-click="cancel()" class="mod-psd">取消</a></li>
 			</ul>
 		</form>
 	</div>