示例#1
0
def main2():
    db = Database("travel", "997icu", "127.0.0.1", "3306", "travelmanager")
    conn = db.init_conn()
    mocker = Mocker(conn)

    manager_id = 2
    # 总经理
    for i in [12, 13, 20, 21, 50]:
        msg = "您的{}号报销申请已通过".format(i)
        mocker.insert_msg(msg, manager_id)

    dmanagersid = [3, 50, 101, 142, 182]

    appids2 = [60, 72, 80, 84, 100]
    for did in dmanagersid:
        for aid in appids2:
            msg = "您的{}号报销申请已被总经理同意".format(aid)
            mocker.insert_msg(msg, did)
示例#2
0
def main():
    db = Database("travel", "997icu", "127.0.0.1", "3306", "travelmanager")
    conn = db.init_conn()
    mocker = Mocker(conn)

    # 管理员
    mocker.insert_user(0, UserRole.Admin)

    # 总经理 & 总经理办公室
    manager_id = mocker.insert_user(1, UserRole.Manager)
    department_id = mocker.insert_department(manager_id, "总办")
    mocker.update_user_department_id(department_id, manager_id)

    # 5个部门
    departs = ["云计算事业部", "物联网事业部", "互动娱乐事业部", "网络媒体事业部", "广告事业部"]
    for d in departs:
        depart_manager_id = mocker.insert_user(0, UserRole.DepartmentManager)
        department_id = mocker.insert_department(depart_manager_id, d)
        mocker.update_user_department_id(department_id, depart_manager_id)

        user_cnt = random.randint(30, 50)
        for i in range(user_cnt):
            uid = mocker.insert_user(department_id, UserRole.Employee)

            # 3-5 travelApplication whith status canbe 1 2 or 4
            travel_other_cnt = random.randint(3, 5)
            for j in range(travel_other_cnt):
                status_list = [
                    ApplicationStatus.NeedManagerApprove,
                    ApplicationStatus.NeedDepartmentManagerApprove,
                    ApplicationStatus.ApplicationNotApproved
                ]
                status = status_list[random.randint(0, len(status_list) - 1)]
                mocker.insert_travel(uid, department_id, status, False)

            # 3-10 travelApplication, (status is approved), and 70% paid is true.
            travel_ok_cnt = random.randint(3, 10)
            # status is approved and paid is true
            can_pay_travel_id_list = []
            for k in range(travel_ok_cnt):
                paid_rand = random.randint(30, 90)
                paid = True
                if paid_rand >= 60:
                    paid = False
                tid = mocker.insert_travel(
                    uid, department_id, ApplicationStatus.ApplicationApproved,
                    paid)
                if paid:
                    can_pay_travel_id_list.append(tid)

            # 为这些travel创建payment
            for tid in can_pay_travel_id_list:
                pics = "https://picturesbed.oss-cn-hangzhou.aliyuncs.com/travelmanager/0520201254220450945697959433.png"
                status_rand = random.randint(1, 100)
                status = ApplicationStatus.ApplicationApproved
                # status 70% is approved. 10% is unapproved  10%is 总经理审批  10% is 部门经理审批

                if 70 < status_rand <= 80:
                    status = ApplicationStatus.ApplicationNotApproved

                elif 80 < status_rand <= 90:
                    status = ApplicationStatus.NeedManagerApprove
                    msg = "您的{}号申请已被部门经理同意"
                elif 90 < status_rand <= 100:
                    status = ApplicationStatus.NeedDepartmentManagerApprove

                pid = mocker.insert_payment(uid, department_id, pics, status,
                                            tid)

                msg = ""
                if status == ApplicationStatus.ApplicationApproved:
                    msg = "您的{}号报销申请已被总经理同意".format(pid)
                elif status == ApplicationStatus.NeedManagerApprove:
                    msg = "您的{}号报销申请已被部门经理同意".format(pid)
                elif status == ApplicationStatus.ApplicationNotApproved:
                    msg = "您的{}号报销申请已被部门经理驳回".format(pid)

                if msg != "":
                    mocker.insert_msg(msg, uid)