forked from kidgrow-microservices-platform

1、医院管理,增加帐号数量字段
2、医院管理,增加服务、销售人员,以及各自电话
11 files modified
282 ■■■■ changed files
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java 6 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java 29 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java 5 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserMapper.java 7 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java 8 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java 7 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml 23 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java 10 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml 1 ●●●● patch | view | raw | blame | history
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysOrganization.java 20 ●●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html 166 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java
@@ -156,9 +156,9 @@
                int surplus = surplusDay.intValue();
                mapVo.put("surplus",surplus);
                mapVo.put("logo",logo);
                //获取 售后服务工程师
                mapVo.put("saleUserName",sysOrganization.getSaleUserName());
                mapVo.put("saleUserTel",sysOrganization.getSaleUserTel());
                //获取 售后服务工程师********不能从sysOrganization获取,从department获取
               /* mapVo.put("saleUserName",sysOrganization.getSaleUserName());
                mapVo.put("saleUserTel",sysOrganization.getSaleUserTel());*/
                return ResultBody.ok().data(mapVo);
            }else {
                return ResultBody.failed("该用户套餐已经失效");
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysDepartment.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.kidgrow.common.model.SuperModel;
import lombok.AllArgsConstructor;
import lombok.Data;
@@ -36,22 +38,29 @@
    /**
     * 组织Id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long orgId;
    /**
     * 医院Id
     */
    @NotNull(message = "医院Id不能为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long hospitalId;
    /**
     * 负责的销售代表
     */
    @NotNull(message = "负责的销售代表不能为空")
    @NotNull(message = "服务代表不能为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long serverUserId;
    /**
     * 销售代表的名字
     */
    @NotEmpty(message = "销售代表的名字不能为空")
    @NotEmpty(message = "服务代表的名字不能为空")
    private String serverUserName;
    /**
     * 销售代表电话
     */
    private String serverUserTel;
    /**
     * 状态,1启用,0停用
     */
@@ -61,4 +70,20 @@
     */
    @TableLogic
    private Boolean isDel;
    /**
     * 负责的销售代表
     */
    @NotNull(message = "负责的销售代表不能为空")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long saleUserId;
    /**
     * 销售代表的名字
     */
    @NotEmpty(message = "销售代表的名字不能为空")
    private String saleUserName;
    /**
     * 销售代表电话
     */
    private String saleUserTel;
}
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/model/SysHospital.java
@@ -137,4 +137,9 @@
     * 创建者的部门
     */
    private String createUserOrgCode;
    /**
     * 帐号数量,默认6
     */
    private Integer accountsCount;
}
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/mapper/SysUserMapper.java
@@ -26,4 +26,11 @@
    List<SysUser> findList(Page<SysUser> page, @Param("u") Map<String, Object> params);
    Integer selectCountByMap(@Param("u")Map<String, Object> map);
    /**
     * 查询指定角色用户
     * @param  type:0销售,1运维
     * @return
     */
    List<SysUser> findAppointUsers(@Param("type") Integer type);
}
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/ISysUserService.java
@@ -3,7 +3,6 @@
import com.kidgrow.common.model.*;
import com.kidgrow.common.service.ISuperService;
import com.kidgrow.usercenter.model.SysUserExcel;
import org.springframework.web.bind.annotation.RequestBody;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@@ -119,4 +118,11 @@
    ResultBody registerByPhone(Map<String, Object> map);
    ResultBody updatePhone(Map<String, Object> map,SysUser sysUser);
    /**
     * 查询指定角色用户
     * @param type:0销售,1运维
     * @return
     */
    ResultBody findAppointUsers(Integer type);
}
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -5,7 +5,6 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.annotation.LoginUser;
import com.kidgrow.common.constant.CommonConstant;
import com.kidgrow.common.constant.SecurityConstants;
import com.kidgrow.common.context.ClientContextHolder;
@@ -482,4 +481,10 @@
            return ResultBody.failed("该手机号没有验证码");
        }
    }
    @Override
    public ResultBody findAppointUsers(Integer type) {
    List<SysUser> list = baseMapper.findAppointUsers(type);
    return ResultBody.ok().data(list);
}
}
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml
@@ -74,4 +74,27 @@
    <select id="selectCountByMap" parameterType="map" resultType="integer">
        select count(*) from  sys_user t <include refid="where_map" />
    </select>
    <select id="findAppointUsers" parameterType="Integer" resultType="com.kidgrow.common.model.SysUser">
        SELECT
            USERS.id,
            USERS.nickname,
            USERS.mobile
        FROM
            `sys_role_user`  RU
            LEFT JOIN sys_user USERS ON RU.user_id = USERS.id
            LEFT JOIN sys_role ROLE  ON RU.role_id = ROLE.id
        WHERE
            USERS.is_del = 0
            <if test="type == 0">
                AND ROLE.`code` IN (
                'salemanager',
                'sale')
            </if>
            <if test="type == 1">
                AND ROLE.`code` IN (
                'oprationmanager',
                'opration')
            </if>
    </select>
</mapper>
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserController.java
@@ -375,4 +375,14 @@
    public ResultBody updatePhone(@RequestBody Map<String,Object> map, @LoginUser SysUser sysUser) {
        return appUserService.updatePhone(map,sysUser);
    }
    /**
     * 获取指定用户信息(销售人员和服务人员)
     */
    @GetMapping("users/getAppointUser")
    public ResultBody getAppointUser(){
        String type = request.getParameter("type");
        return appUserService.findAppointUsers(Integer.parseInt(type));
    }
}
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/resources/application.yml
@@ -74,5 +74,6 @@
      - sys_role_organization
    ignoreSqls:
      - com.kidgrow.usercenter.mapper.SysRoleMapper.findAll
      - com.kidgrow.usercenter.mapper.SysUserMapper.findAppointUsers
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/SysOrganization.java
@@ -1,19 +1,13 @@
package com.kidgrow.common.model;
import com.kidgrow.common.model.SuperModel;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.hibernate.validator.constraints.*;
import org.hibernate.validator.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
/**
 * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
@@ -58,18 +52,6 @@
     * 部门的code
     */
    private String orgCode;
    /**
     * 负责的销售id
     */
    private Long saleUserId;
    /**
     * 销售代表的名字
     */
    private String saleUserName;
    /**
     * 负责销售的联系方式
     */
    private String saleUserTel;
    /**
     * 是否删除,1删除,0未删除
     */
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital_form_base.html
@@ -23,7 +23,7 @@
                <label class="layui-form-label">科室名称</label>
                <div class="layui-input-block">
                    <input name="departmentName" id="departmentName" placeholder="科室名称" type="text" class="layui-input"
                        maxlength="50" lay-verify="required" required style="width: 150px;" />
                        maxlength="50" lay-verify="required" required style="width: 175px;" />
                    &emsp;</div>
            </div>
            <div class="layui-col-sm3">
@@ -42,12 +42,12 @@
    </div>
    <div class="layui-form-item">
        <div class="layui-row">
            <div class="layui-col-sm7">
            <div class="layui-col-sm4">
                <label class="layui-form-label">医院类型</label>
                <div class="layui-input-block">
                    <input name="hospitalTypeId" id="hospitalTypeId" type="hidden" value="" />
                    <select name="hospitalTypeName" id="hospitalTypeName" lay-filter="hospitalTypeName"
                        style="width: 300px;">
                        style="width: 50px;">
                        <option value="">请选择</option>
                    </select>
                </div>
@@ -60,6 +60,13 @@
                        style="width: 300px;">
                        <option value="">请选择</option>
                    </select>
                </div>
            </div>
            <div class="layui-col-sm3">
                <label class="layui-form-label">帐号数量</label>
                <div class="layui-input-block">
                    <input id="accountsCount" name="accountsCount" type="text" value="6" class="layui-input"
                        maxlength="50" lay-verify="required|integer" style="width: 200px;" />
                </div>
            </div>
        </div>
@@ -94,33 +101,60 @@
    </div>
    <div class="layui-form-item">
        <div class="layui-row">
            <div class="layui-col-sm3">
            <div class="layui-col-sm4">
                <label class="layui-form-label">区号</label>
                <div class="layui-input-block">
                    <input name="areaCode" id="areaCode" lay-verify="required" required type="text" class="layui-input"
                        maxlength="10" />
                </div>
            </div>
            <div class="layui-col-sm3">
            <div class="layui-col-sm4">
                <label class="layui-form-label">经度</label>
                <div class="layui-input-block">
                    <input name="longitude" id="longitude" type="text" class="layui-input" maxlength="20" />
                </div>
            </div>
            <div class="layui-col-sm3">
            <div class="layui-col-sm4">
                <label class="layui-form-label">纬度</label>
                <div class="layui-input-block">
                    <input name="latitude" id="latitude" type="text" class="layui-input" maxlength="20" />
                </div>
            </div>
            <div class="layui-col-sm3">
        </div>
    </div>
    <div class="layui-form-item">
        <div class="layui-row">
            <div class="layui-col-sm4">
                <label class="layui-form-label">服务人员</label>
                <div class="layui-input-block">
                    <input name="serverUserId" id="serverUserId" type="hidden" value="" />
                    <select lay-verify="required" required name="serverUserName" id="serverUserName"
                        style="width: 150px;">
                        style="width: 150px;" lay-filter="serverUserName">
                    </select>
                </div>
            </div>
            <div class="layui-col-sm6">
                <label class="layui-form-label">服务人电话</label>
                <div class="layui-input-block">
                    <input name="serverUserTel" id="serverUserTel" type="text" class="layui-input" maxlength="20" value=""/>
                </div>
            </div>
        </div>
    </div>
    <div class="layui-form-item">
        <div class="layui-col-sm4">
            <label class="layui-form-label">销售人员</label>
            <div class="layui-input-block">
                <input name="saleUserId" id="saleUserId" type="hidden" value="" />
                <select lay-verify="required" required name="saleUserName" id="saleUserName" style="width: 150px;" lay-filter="saleUserName">
                </select>
            </div>
        </div>
        <div class="layui-col-sm6">
            <label class="layui-form-label">销售人电话</label>
            <div class="layui-input-block">
                <input name="saleUserTel" id="saleUserTel" type="text" class="layui-input" maxlength="20" value=""/>
            </div>
        </div>
    </div>
@@ -141,6 +175,8 @@
</form>
<script>
    layui.use(['form', 'table', 'util', 'config', 'admin', 'area', 'dic', 'autocomplete'], function () {
        var form = layui.form;
        var table = layui.table;
@@ -152,6 +188,62 @@
        var dic = layui.dic;
        var autocomplete = layui.autocomplete;
        var $ = layui.jquery;
        //加载服务人员信息
        var loadServerUser = function (selectVal) {
            admin.req('api-user/users/getAppointUser', { type: 1 }, function (data) {
                layer.closeAll('loading');
                if (0 === data.code) {
                    if (data.data.length > 0) {
                        $.each(data.data, function (index, item) {
                            if (selectVal == item.id) {
                                $('#serverUserName').append(new Option(item.nickname, item.id, false, true));
                            }
                            else {
                                //往下拉菜单里添加元素
                                $('#serverUserName').append(new Option(item.nickname, item.id, false, false));
                            }
                        })
                    }
                    if(hosIdForEdit == ""){
                        $("#serverUserTel").val(data.data[0].mobile);
                        form.render();
                    }
                } else {
                    layer.msg(data.msg, { icon: 2, time: 500 });
                }
            }, 'get');
        }
        //加载销售人员信息
        var loadSaleUser = function (selectVal) {
            admin.req('api-user/users/getAppointUser', { type: 0 }, function (data) {
                layer.closeAll('loading');
                if (0 === data.code) {
                    if (data.data.length > 0) {
                        $.each(data.data, function (index, item) {
                            //往下拉菜单里添加元素
                            if (selectVal == item.id) {
                                $('#saleUserName').append(new Option(item.nickname, item.id, false, true));
                            } else {
                                $('#saleUserName').append(new Option(item.nickname, item.id, false, false));
                            }
                        });
                        if(hosIdForEdit == ""){
                          $("#saleUserTel").val(data.data[0].mobile);
                          form.render();
                         }
                    }
                } else {
                    layer.msg(data.msg, { icon: 2, time: 500 });
                }
            }, 'get');
        }
        //医院资质数据
        dic.dicData("#hospitalQualifiedName", "HOSPITAL_QUALIFIED", "");
@@ -205,11 +297,15 @@
                        var departmentData = {
                            serverUserId: $("#serverUserName").val(),
                            serverUserName: $("#serverUserName option:selected").text(),
                            serverUserTel: $("#serverUserTel").val(),
                            departmentName: $("#departmentName").val(),
                            id: $("#departmentId").val(),
                            orgId: $("#departmentOrgId").val(),
                            updateUserId: data.data.orgId,
                            hospitalId: data.data.id
                            hospitalId: data.data.id,
                            saleUserId: $("#saleUserName").val(),
                            saleUserName: $("#saleUserName option:selected").text(),
                            saleUserTel: $("#saleUserTel").val()
                        };
                        admin.req('api-user/sysdepartment', JSON.stringify(departmentData), function (data) {
                            layer.closeAll('loading');
@@ -245,7 +341,7 @@
            }
        });
        //加载当前所在部门的在职员工
        admin.req('api-user/users/getThisUserOrganizationUser', {}, function (data) {
        /*admin.req('api-user/users/getThisUserOrganizationUser', {}, function (data) {
            layer.closeAll('loading');
            if (0 === data.code) {
                if (data.data.length > 0) {
@@ -260,10 +356,12 @@
            } else {
                layer.msg(data.msg, { icon: 2, time: 500 });
            }
        }, 'get');
        }, 'get');*/
        //检查科室名是否存在
        $("#departmentName").blur(function () {
            debugger
            if (edithospitalData != null) {
                if (edithospitalData.departmentName == $("#departmentName").val()) {
                    return false;
@@ -310,11 +408,20 @@
                                    if (departData.length > 1) {
                                        layer.msg("该医院下有多个科室,默认显示第一个", { icon: 1, time: 2000 });
                                    }
                                    $("#serverUserId").val(departData[0].serverUserId);
                                    $("#serverUserName").val(departData[0].serverUserId);
                                    loadServerUser(departData[0].serverUserId);
                                    $("#departmentName").val(departData[0].departmentName);
                                    $("#departmentId").val(departData[0].id);
                                    $("#departmentOrgId").val(departData[0].orgId);
                                    $("#saleUserId").val(departData[0].saleUserId);
                                    loadSaleUser(departData[0].saleUserId);
                                    if(hosIdForEdit != ""){
                                        $("#serverUserTel").val(departData[0].serverUserTel);
                                        $("#saleUserTel").val(departData[0].saleUserTel);
                                    }
                                    form.render();
                                }
                            }
@@ -335,8 +442,39 @@
        var hosIdForEdit = "";
        if (edithospitalData != null) {
            hosIdForEdit = edithospitalData.hospitalId;
            if (!strUtil.isEmpty(hosIdForEdit))
            if (!strUtil.isEmpty(hosIdForEdit)){}
                loadDatas(hosIdForEdit);
        }
        layui.use('form', function () {
            var $ = layui.$
                , layer = layui.layer
                , form = layui.form
            form.verify({
                integer: [
                    /^[1-9]\d*$/
                    , '只能输入正整数'
                ]
            });
        });
        form.on("select(serverUserName)", function (data) {
            loadUserMobile('serverUserTel',data.value);
        });
        form.on("select(saleUserName)", function (data) {
            loadUserMobile('saleUserTel',data.value);
        });
        var loadUserMobile = function(id,userId){
            admin.req('api-user/users/' + userId, { }, function (data) {
                if (data != null) {
                    $("#" + id).val(data.mobile);
                }else {
                    layer.msg(data.msg, { icon: 2, time: 500 });
                }
            }, 'get')
        }
    });
</script>