wuxw лет назад: 6
Родитель
Сommit
bc11864c5e
22 измененных файлов с 403 добавлено и 59 удалено
  1. 1 1
      Api/src/main/java/com/java110/api/listener/users/AddStaffServiceListener.java
  2. 1 7
      Api/src/main/java/com/java110/api/listener/users/ChangeStaffPwdListener.java
  3. 1 1
      Api/src/main/java/com/java110/api/listener/users/DeleteStaffServiceListener.java
  4. 1 1
      Api/src/main/java/com/java110/api/listener/users/DisableStaffServiceListener.java
  5. 1 1
      Api/src/main/java/com/java110/api/listener/users/EnableStaffServiceListener.java
  6. 1 1
      Api/src/main/java/com/java110/api/listener/users/ModifyStaffServiceListener.java
  7. 1 1
      Api/src/main/java/com/java110/api/listener/users/QueryStaffByUserNameServiceListener.java
  8. 1 1
      Api/src/main/java/com/java110/api/listener/users/QueryStaffServiceListener.java
  9. 141 0
      Api/src/main/java/com/java110/api/listener/user/ResetStaffPwdListener.java
  10. 1 1
      Api/src/main/java/com/java110/api/listener/users/UserLogoutServiceListener.java
  11. 1 3
      WebService/src/main/java/com/java110/web/components/staff/ChangeStaffPwdComponent.java
  12. 31 0
      WebService/src/main/java/com/java110/web/components/staff/ResetStaffPwdComponent.java
  13. 1 1
      WebService/src/main/java/com/java110/web/smo/IChangeStaffPwdServiceSMO.java
  14. 19 0
      WebService/src/main/java/com/java110/web/smo/staff/IResetStaffPwdServiceSMO.java
  15. 2 3
      WebService/src/main/java/com/java110/web/smo/impl/ChangeStaffPwdSMOImpl.java
  16. 64 0
      WebService/src/main/java/com/java110/web/smo/staff/impl/ResetStaffPwdSMOImpl.java
  17. 19 0
      WebService/src/main/resources/components/staffPackage/resetStaffPwd/resetStaffPwd.html
  18. 48 0
      WebService/src/main/resources/components/staffPackage/resetStaffPwd/resetStaffPwd.js
  19. 46 37
      WebService/src/main/resources/components/staffPackage/staff-manage/staff.html
  20. 3 0
      WebService/src/main/resources/components/staffPackage/staff-manage/staff.js
  21. 14 0
      java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java
  22. 5 0
      java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java

+ 1 - 1
Api/src/main/java/com/java110/api/listener/users/AddStaffServiceListener.java

@@ -1,4 +1,4 @@
-package com.java110.api.listener.users;
+package com.java110.api.listener.user;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;

+ 1 - 7
Api/src/main/java/com/java110/api/listener/users/ChangeStaffPwdListener.java

@@ -1,11 +1,10 @@
-package com.java110.api.listener.users;
+package com.java110.api.listener.user;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiDataFlowListener;
 import com.java110.core.annotation.Java110Listener;
 import com.java110.core.context.DataFlowContext;
-import com.java110.core.factory.DataFlowFactory;
 import com.java110.core.smo.user.IUserInnerServiceSMO;
 import com.java110.dto.user.UserDto;
 import com.java110.entity.center.AppService;
@@ -13,20 +12,15 @@ 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.exception.ListenerExecuteException;
 import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * 修改员工 2018年12月6日

+ 1 - 1
Api/src/main/java/com/java110/api/listener/users/DeleteStaffServiceListener.java

@@ -1,4 +1,4 @@
-package com.java110.api.listener.users;
+package com.java110.api.listener.user;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;

+ 1 - 1
Api/src/main/java/com/java110/api/listener/users/DisableStaffServiceListener.java

@@ -1,4 +1,4 @@
-package com.java110.api.listener.users;
+package com.java110.api.listener.user;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiDataFlowListener;

+ 1 - 1
Api/src/main/java/com/java110/api/listener/users/EnableStaffServiceListener.java

@@ -1,4 +1,4 @@
-package com.java110.api.listener.users;
+package com.java110.api.listener.user;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiDataFlowListener;

+ 1 - 1
Api/src/main/java/com/java110/api/listener/users/ModifyStaffServiceListener.java

@@ -1,4 +1,4 @@
-package com.java110.api.listener.users;
+package com.java110.api.listener.user;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;

+ 1 - 1
Api/src/main/java/com/java110/api/listener/users/QueryStaffByUserNameServiceListener.java

@@ -1,4 +1,4 @@
-package com.java110.api.listener.users;
+package com.java110.api.listener.user;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;

+ 1 - 1
Api/src/main/java/com/java110/api/listener/users/QueryStaffServiceListener.java

@@ -1,4 +1,4 @@
-package com.java110.api.listener.users;
+package com.java110.api.listener.user;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiListener;

+ 141 - 0
Api/src/main/java/com/java110/api/listener/user/ResetStaffPwdListener.java

@@ -0,0 +1,141 @@
+package com.java110.api.listener.user;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiDataFlowListener;
+import com.java110.core.annotation.Java110Listener;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.factory.AuthenticationFactory;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.smo.user.IUserInnerServiceSMO;
+import com.java110.dto.user.UserDto;
+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.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.util.List;
+import java.util.Random;
+
+/**
+ * 修改员工 2018年12月6日
+ * Created by wuxw on 2018/5/18.
+ */
+@Java110Listener("resetStaffPwdListener")
+public class ResetStaffPwdListener extends AbstractServiceApiDataFlowListener {
+
+    private final static Logger logger = LoggerFactory.getLogger(ResetStaffPwdListener.class);
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeConstant.SERVICE_CODE_RESET_STAFF_PWD;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return 0;
+    }
+
+
+    /**
+     * 添加员工信息
+     *
+     * @param event
+     */
+    @Override
+    public void soService(ServiceDataFlowEvent event) {
+        //获取数据上下文对象
+        DataFlowContext dataFlowContext = event.getDataFlowContext();
+        AppService service = event.getAppService();
+        String paramIn = dataFlowContext.getReqData();
+        Assert.isJsonObject(paramIn, "请求参数有误,不是有效的json格式 " + paramIn);
+        JSONObject paramInJson = JSONObject.parseObject(paramIn);
+        Assert.jsonObjectHaveKey(paramInJson, "userId", "请求参数中未包含userId 节点,请确认");
+
+        JSONArray businesses = new JSONArray();
+        //判断请求报文中包含 userId 并且 不为-1时 将已有用户添加为员工,反之,则添加用户再将用户添加为员工
+        JSONObject staffBusiness = modifyStaff(paramInJson, dataFlowContext);
+        businesses.add(staffBusiness);
+
+        HttpHeaders header = new HttpHeaders();
+        dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_USER_ID, paramInJson.getString("userId"));
+        dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+
+        String paramInObj = super.restToCenterProtocol(businesses, dataFlowContext.getRequestCurrentHeaders()).toJSONString();
+
+        //将 rest header 信息传递到下层服务中去
+        super.freshHttpHeader(header, dataFlowContext.getRequestCurrentHeaders());
+
+        HttpEntity<String> httpEntity = new HttpEntity<String>(paramInObj, header);
+        //http://user-service/test/sayHello
+        super.doRequest(dataFlowContext, service, httpEntity);
+
+        if (dataFlowContext.getResponseEntity().getStatusCode() == HttpStatus.OK) {
+            JSONObject paramOut = new JSONObject();
+            paramOut.put("pwd", paramInJson.getString("pwd"));
+            ResponseEntity<String> responseEntity = new ResponseEntity<>(paramOut.toJSONString(), HttpStatus.OK);
+            dataFlowContext.setResponseEntity(responseEntity);
+        }
+    }
+
+
+    private JSONObject modifyStaff(JSONObject paramObj, DataFlowContext dataFlowContext) {
+        //校验json 格式中是否包含 name,email,levelCd,tel
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_MODIFY_USER_INFO);
+        business.put(CommonConstant.HTTP_SEQ, 1);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessUser", builderStaffInfo(paramObj, dataFlowContext));
+
+        return business;
+    }
+
+    /**
+     * 构建员工信息
+     *
+     * @param paramObj
+     * @param dataFlowContext
+     * @return
+     */
+    private JSONObject builderStaffInfo(JSONObject paramObj, DataFlowContext dataFlowContext) {
+
+        UserDto userDto = new UserDto();
+        userDto.setStatusCd("0");
+        userDto.setUserId(paramObj.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUserHasPwd(userDto);
+
+        Assert.listOnlyOne(userDtos, "数据错误查询到多条用户信息或单条");
+
+        JSONObject userInfo = JSONObject.parseObject(JSONObject.toJSONString(userDtos.get(0)));
+        String pwd = GenerateCodeFactory.getRandomCode(6);
+        userInfo.putAll(paramObj);
+        userInfo.put("password", AuthenticationFactory.passwdMd5(pwd));
+        paramObj.put("pwd", pwd);
+
+        return userInfo;
+    }
+
+
+}

+ 1 - 1
Api/src/main/java/com/java110/api/listener/users/UserLogoutServiceListener.java

@@ -1,4 +1,4 @@
-package com.java110.api.listener.users;
+package com.java110.api.listener.user;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.api.listener.AbstractServiceApiDataFlowListener;

+ 1 - 3
WebService/src/main/java/com/java110/web/components/staff/ChangeStaffPwdComponent.java

@@ -2,10 +2,8 @@ package com.java110.web.components.staff;
 
 
 import com.java110.core.context.IPageData;
-import com.java110.web.smo.IChangeStaffPwdServiceSMO;
-import com.java110.web.smo.IStaffServiceSMO;
+import com.java110.web.smo.staff.IChangeStaffPwdServiceSMO;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
 

+ 31 - 0
WebService/src/main/java/com/java110/web/components/staff/ResetStaffPwdComponent.java

@@ -0,0 +1,31 @@
+package com.java110.web.components.staff;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.staff.IChangeStaffPwdServiceSMO;
+import com.java110.web.smo.staff.IResetStaffPwdServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * 搜索员工
+ */
+@Component("resetStaffPwd")
+public class ResetStaffPwdComponent {
+
+    @Autowired
+    IResetStaffPwdServiceSMO resetStaffPwdServiceSMOImpl;
+
+    public ResponseEntity<String> reset(IPageData pd) {
+        return resetStaffPwdServiceSMOImpl.reset(pd);
+    }
+
+    public IResetStaffPwdServiceSMO getResetStaffPwdServiceSMOImpl() {
+        return resetStaffPwdServiceSMOImpl;
+    }
+
+    public void setResetStaffPwdServiceSMOImpl(IResetStaffPwdServiceSMO resetStaffPwdServiceSMOImpl) {
+        this.resetStaffPwdServiceSMOImpl = resetStaffPwdServiceSMOImpl;
+    }
+}

+ 1 - 1
WebService/src/main/java/com/java110/web/smo/IChangeStaffPwdServiceSMO.java

@@ -1,4 +1,4 @@
-package com.java110.web.smo;
+package com.java110.web.smo.staff;
 
 import com.java110.core.context.IPageData;
 import org.springframework.http.ResponseEntity;

+ 19 - 0
WebService/src/main/java/com/java110/web/smo/staff/IResetStaffPwdServiceSMO.java

@@ -0,0 +1,19 @@
+package com.java110.web.smo.staff;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 重置员工密码
+ * Created by Administrator on 2019/4/2.
+ */
+public interface IResetStaffPwdServiceSMO {
+
+    /**
+     * 保存员工信息
+     *
+     * @param pd
+     * @return
+     */
+    ResponseEntity<String> reset(IPageData pd);
+}

+ 2 - 3
WebService/src/main/java/com/java110/web/smo/impl/ChangeStaffPwdSMOImpl.java

@@ -1,4 +1,4 @@
-package com.java110.web.smo.impl;
+package com.java110.web.smo.staff.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.component.AbstractComponentSMO;
@@ -9,8 +9,7 @@ import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.exception.SMOException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
-import com.java110.web.smo.IChangeStaffPwdServiceSMO;
-import com.java110.web.smo.carInout.IListCarInoutsSMO;
+import com.java110.web.smo.staff.IChangeStaffPwdServiceSMO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;

+ 64 - 0
WebService/src/main/java/com/java110/web/smo/staff/impl/ResetStaffPwdSMOImpl.java

@@ -0,0 +1,64 @@
+package com.java110.web.smo.staff.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.component.AbstractComponentSMO;
+import com.java110.core.context.IPageData;
+import com.java110.core.factory.AuthenticationFactory;
+import com.java110.entity.component.ComponentValidateResult;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.exception.SMOException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.web.smo.staff.IResetStaffPwdServiceSMO;
+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;
+
+/**
+ * 查询carInout服务类
+ */
+@Service("resetStaffPwdSMOImpl")
+public class ResetStaffPwdSMOImpl extends AbstractComponentSMO implements IResetStaffPwdServiceSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public ResponseEntity<String> reset(IPageData pd) throws SMOException {
+        return businessProcess(pd);
+    }
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+        Assert.hasKeyAndValue(paramIn, "communityId", "必填,请填写小区信息");
+        Assert.hasKeyAndValue(paramIn, "userId", "必填,请填写用户ID");
+
+        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_CARINOUT);
+    }
+
+    @Override
+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
+
+        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
+
+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/user.resetStaffPwd";
+
+        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
+                apiUrl,
+                HttpMethod.POST);
+
+        return responseEntity;
+    }
+
+    public RestTemplate getRestTemplate() {
+        return restTemplate;
+    }
+
+    public void setRestTemplate(RestTemplate restTemplate) {
+        this.restTemplate = restTemplate;
+    }
+}

+ 19 - 0
WebService/src/main/resources/components/staffPackage/resetStaffPwd/resetStaffPwd.html

@@ -0,0 +1,19 @@
+<div class="modal fade" id="resetStaffPwdModel" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title" id="exampleModalLabel">请确认您的操作!</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <tr align="center"><th>确认是否重置密码!</th></tr>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-secondary" data-dismiss="modal" v-on:click="closeResetStaffPwdModel()">点错了</button>
+                <button type="button" class="btn btn-primary" v-on:click="resetStaffPwd()">确认重置</button>
+            </div>
+        </div>
+    </div>
+</div>

+ 48 - 0
WebService/src/main/resources/components/staffPackage/resetStaffPwd/resetStaffPwd.js

@@ -0,0 +1,48 @@
+(function(vc){
+    vc.extends({
+        data:{
+            resetStaffPwdInfo:{}
+        },
+        _initEvent:function(){
+             vc.on('resetStaffPwd','openResetStaffPwd',function(_staffInfo){
+                    vc.component.resetStaffPwdInfo = _staffInfo;
+                    $('#resetStaffPwdModel').modal('show');
+                });
+        },
+        methods:{
+            closeDeleteStaffModel:function(){
+                $('#resetStaffPwdModel').modal('hide');
+            },
+
+            resetStaffPwd:function(){
+                var _dataObj = {
+                    communityId:vc.getCurrentCommunity().communityId,
+                    userId:vc.component.resetStaffPwdInfo.userId
+                };
+                vc.http.post(
+                    'resetStaffPwd',
+                    'reset',
+                    JSON.stringify(_dataObj),
+                    {
+                        emulateJSON:true
+                     },
+                     function(json,res){
+                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
+                        if(res.status == 200){
+                            //关闭model
+                            var _pwd = JSON.parse(json);
+                            $('#resetStaffPwdModel').modal('hide');
+                            vc.toast("修改密码成功,密码为"+_pwd.pwd+"请及时修改密码",10*1000);
+                            return ;
+                        }
+                        vc.component.resetStaffPwdInfo.errorInfo = json;
+                     },
+                     function(errInfo,error){
+                        console.log('请求失败处理');
+
+                        vc.component.resetStaffPwdInfo.errorInfo = errInfo;
+                     });
+            }
+        }
+    });
+})(window.vc);

+ 46 - 37
WebService/src/main/resources/components/staffPackage/staff-manage/staff.html

@@ -26,7 +26,8 @@
                             <div class="form-group">
                                 <select class="custom-select" v-model="staffInfo.conditions.departmentOrgId">
                                     <option selected value="">必填,请选择部门</option>
-                                    <option v-for="departmentOrg in staffInfo.departmentOrgs" :value="departmentOrg.orgId">
+                                    <option v-for="departmentOrg in staffInfo.departmentOrgs"
+                                            :value="departmentOrg.orgId">
                                         {{departmentOrg.orgName}}
                                     </option>
                                 </select>
@@ -78,45 +79,53 @@
                     </div>
                 </div>
                 <div class="ibox-content">
-                    <div class="table-responsive">
-                        <table class="table table-striped table-bordered table-hover dataTables-example">
-                            <thead>
-                            <tr>
-                                <th>员工ID</th>
-                                <th>名称</th>
-                                <th>部门</th>
-                                <th>邮箱</th>
-                                <th>地址</th>
-                                <th>性别</th>
-                                <th>手机号</th>
-                                <th>操作</th>
-                            </tr>
-                            </thead>
-                            <tbody>
-                            <tr class="gradeX" v-for="staff in staffData">
-                                <td>{{staff.userId}}</td>
-                                <td>{{staff.name}}</td>
-                                <td>{{staff.orgName}}</td>
-                                <td>{{staff.email}}</td>
-                                <td>{{staff.address}}</td>
-                                <td>{{staff.sex == 0 ? '男' : '女'}}</td>
-                                <td>{{staff.tel}}</td>
+                    <table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
+                        <thead>
+                        <tr>
+                            <th>员工ID</th>
+                            <th>名称</th>
+                            <th>部门</th>
+                            <th>邮箱</th>
+                            <th>地址</th>
+                            <th>性别</th>
+                            <th>手机号</th>
+                            <th  class="text-right">操作</th>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr class="gradeX" v-for="staff in staffData">
+                            <td>{{staff.userId}}</td>
+                            <td>{{staff.name}}</td>
+                            <td>{{staff.orgName}}</td>
+                            <td>{{staff.email}}</td>
+                            <td>{{staff.address}}</td>
+                            <td>{{staff.sex == 0 ? '男' : '女'}}</td>
+                            <td>{{staff.tel}}</td>
+
+                            <td  class="text-right">
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="openEditStaff(staff)">修改
+                                    </button>
+                                </div>
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="_resetStaffPwd(staff)">重置密码
+                                    </button>
+                                </div>
+                                <div v-if="staff.relCd != 600311000001" class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="openDeleteStaff(staff)">删除
+                                    </button>
+                                </div>
+                            </td>
+                        </tr>
+                        </tbody>
+                    </table>
+                    <!-- 分页 -->
+                    <vc:create name="pagination"></vc:create>
 
-                                <td>
-                                    <i class="glyphicon glyphicon-edit" style="color: #17a2b8;"
-                                       v-on:click="openEditStaff(staff)"></i>
-                                    <i v-if="staff.relCd != 600311000001" class="glyphicon glyphicon-remove-sign"
-                                       style="color: #dc3545;margin-left:5px"
-                                       v-on:click="openDeleteStaff(staff)"></i>
-                                </td>
-                            </tr>
-                            </tbody>
-                        </table>
-                        <!-- 分页 -->
-                        <vc:create name="pagination"></vc:create>
-                    </div>
                 </div>
             </div>
         </div>
     </div>
+
+    <vc:create name="resetStaffPwd"></vc:create>
 </div>

+ 3 - 0
WebService/src/main/resources/components/staffPackage/staff-manage/staff.js

@@ -142,6 +142,9 @@
                 },
                 _queryStaffMethod:function(){
                     vc.component.loadData(DEFAULT_PAGE,DEFAULT_ROWS)
+                },
+                _resetStaffPwd:function(_staff){
+                    vc.emit('resetStaffPwd','openResetStaffPwd',_staff);
                 }
 
             },

+ 14 - 0
java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java

@@ -825,4 +825,18 @@ public class GenerateCodeFactory {
         }
         return result;
     }
+
+    /**
+     * 获取随机数
+     *
+     * @return
+     */
+    public static String getRandomCode(int bit) {
+        Random random = new Random();
+        String result = "";
+        for (int i = 0; i < bit; i++) {
+            result += random.nextInt(10);
+        }
+        return result;
+    }
 }

+ 5 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java

@@ -305,6 +305,11 @@ public class ServiceCodeConstant {
      */
     public static final String SERVICE_CODE_CHANGE_STAFF_PWD = "user.changeStaffPwd";
 
+    /**
+     * 修改重置密码
+     */
+    public static final String SERVICE_CODE_RESET_STAFF_PWD = "user.resetStaffPwd";
+
     /**
      * 保存商户信息
      */