ImageVerifierCode 换一换
格式:DOC , 页数:23 ,大小:361.04KB ,
资源ID:2885508      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2885508.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(超市会员标准管理系统详细代码.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

超市会员标准管理系统详细代码.doc

1、数据库设计 1 系统数据库分析 数据库设计是建立数据库及其应用系统技术,是系统开发和建设中核心技术。详细说,数据库设计是指对于一种给定应用环境,构造最优数据库模式,建立数据库及其应用系统,使之可以有效存储数据,满足各种顾客应用需求(信息规定和解决规定)。数据库构造设计好坏直接相应用系统效率以及实现效果产生影响。 依照超市会员管理系统功能设计需要,数据库构造设计如下所示: (1). 顾客登录信息数据表(Login):(顾客账号,密码,登录身份); (2). 会员基本信息数据表(Member):(顾客账号,顾客姓名,身份证号,联系方式,联系地址); (3). 职工基本信息数据表(Emp

2、loyee):(职工号,职工姓名,职工职位); (4). 会员积分信息数据表(Score):(会员账号,会员积分,会员级别,会员折扣); 2 数据库概念构造设计 依照上节数据项和数据构造后来,就可以设计出可以满足顾客需求各种实体,以及它们之间关系,为后来逻辑构造设计打下基本,这些实体涉及各种详细信息,通过互相之间作用形成数据流动。 各种实体详细描述E-R图如下。 1. 顾客登录信息实体图重要描述了登录顾客基本状况,涉及了顾客顾客账号,密码,登录身份。如图3-11所示,顾客登录信息实体E-R图。 顾客登录 *顾客账号 密码 登录身份 图3-12 顾客登录实体E-R图 2

3、 会员基本信息实体图重要描述会员基本状况,涉及了会员基本信息顾客账号,顾客姓名,身份证号,联系方式,联系地址,得出如图3-12所示会员基本信息实体E-R图。 会员基本信息 *顾客账号 顾客姓名 身份证号 联系方式 联系地址 图3-13 会员基本信息实体E-R图 3. 职工基本信息实体图重要描述新生基本状况,涉及了职工基本信息职工号,职工姓名,职工职位,得出如图3-13所示职工基本信息实体E-R图。 职工基本信息 *职工号 职工姓名 职工职位 图3-14 职工基本信息实体E-R图 4. 会员积分信息实体图重要描述会员积分基本状况,涉及了会员积分基本信

4、息会员账号,会员积分,会员级别,会员折扣,得出如图3-14所示会员积分信息实体E-R图。 会员积分信息 *会员账号 会员积分 会员级别 会员折扣 图3-15 会员积分信息实体E-R图 实体之间关系E-R图重要描述实体间关系。 会员基本信息 *顾客账号 顾客姓名 身份证号 联系方式 联系地址 获得 会员积分信息 *会员账号 会员积分 会员级别 会员折扣 管理 职工基本信息 *职工号 职工姓名 职工职位 1 1 1 N N 图3-16 各实体之间关系 3.系统数据库设计 依照需求分析与概念构造设计,建立数据库系统支持数据模型,

5、即数据库逻辑构造。本系统运用Microsoft Access 创立了名为SuperMarket数据库。 本系统重要建立了如下四张表: 表3.1 顾客登录数据表 字段名 数据类型 字段大小 与否主键 DNO(登陆账号) 文本 6 是 DCode(密码) 文本 12 否 DUserSta(登录身份) 文本 50 否 表3.2 会员基本信息数据表 字段名 数据类型 字段大小 与否主键 MNO(顾客账号) 文本 6 是 MName(顾客姓名) 文本 20 否 MID(身份证号) 文本 18 否 MTel(联系电话) 文本 50

6、 否 MAdd(联系地址) 文本 50 否 表3.3 职工基本信息数据表 字段名 数据类型 字段大小 与否主键 EID(职工号) 文本 6 是 EName(职工姓名) 文本 20 否 EStatus(职工职位) 文本 50 否 表3.4 会员积分信息数据表 字段名 数据类型 字段大小 与否主键 MNO(会员账号) 文本 6 是 MScore(顾客积分) 数字(double) —— 否 MGrade(顾客级别) 数字(long) —— 否 MDiscount(顾客折扣) 数字(double) —— 否 4.

7、表之间关系 表之间存在关系如下: 1.在会员基本信息表(Member)中添加信息同步,把信息添加到顾客登录信息表(Login)中,同步将信息添加到积分信息表(Score)中。 2.在会员基本信息表(Member)中删除会员信息同步,把顾客登录信息表(Login)和顾客积分信息(Score)中该会员信息删除。 3.在职工基本信息表(Member)中添加信息同步,将志愿基本信息添加到顾客登录信息表(Login)中。 4.在职工基本信息表(Member)中删除职工信息同步,把顾客登录信息表(Login)中该职工信息删除。 详细设计与实现 1. 系统首页 图4-1 超市会员管理系统

8、首页 自定义工具栏按钮及鼠标提示信息设计与实现: 图4-2 主页面工具栏 在对话框OnInitDialog办法中常用工具栏窗口和图像列表窗口,关联图像列表,设立工具栏按钮文本,启动工具栏EnableToolTip办法激活提示功能。 鼠标提示信息实现,解决TTN_NEEDTEXT消息响应函数OnToolTipText(),通过函数参数获得工具栏按钮ID,从而依照ID获取提示信息文本。 1. 添加消息映射(最佳写在AFX_MSG_MAP宏外,否则也许浮现编译错误) ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW,0,0xFFFF,OnToolTipText) O

9、N_NOTIFY_EX_RANGE(TTN_NEEDTEXTA,0,0xFFFF,OnToolTipText) 2. 添加事件声明(最佳写在AFX_MSG宏外,否则也许浮现编译错误) afx_msg BOOL OnToolTipText(UINT nID,NMHDR* pNMHDR,LRESULT* pResult); 2 登录页面 系统运营后,一方面呈现给顾客是顾客登录界面,顾客登录成功后进入到主页面,顾客登录界面如下图所示: 图4-3 顾客登录界面 顾客登录有三种身份,管理员、普通职工、会员。管理员登录成功后,可以对系统各模块进行操作;普通职工登录成功后,除对职工添加、删除

10、外,均可实现操作;会员,则只能对自己某些基本信息进行操作。 登录界面由函数void CLoginDlg::OnOK()实现解决,详细代码如下: //实现该功能SQL语句 sql="select * from Login where DNO='"+Name+"' and DCode='"+ECode+"' and DUserSta='"+EStatus+"'"; m_pRs->Open((_bstr_t)sql,theApp.conn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); //登录成功与否、登录

11、次数判断 if ( m_pRs->GetRecordCount()<=0 ) { if ( m_LoginNum<=3 ) // 登录次数不大于3次 { MessageBox("顾客名或密码、身份错误!","提示",64); } if ( m_LoginNum==3) // 3次登录不成功 { MessageBox("顾客登录3次不成功!即将关闭程序......","提示",64); CDialog::OnOK(); // 向应用程序发送WM_QUIT消息,祈求退出 ::PostQuitMessage(0); } } else{//

12、如果登录成功,则关闭数据库 CDialog::OnOK(); CCMarketDlg dlg; dlg.m_LoginSta=EStatus; dlg.DoModal(); } 3 会员信息模块 (1) 会员基本信息查询 会员基本信息查询如下图: 图4-4 会员信息查询界面 顾客登录成功后,可以依照顾客账号或身份证号查询会员基本信息,还可以进行全表查询。 查询前,一方面要选取及填写查询条件,若未填写,则浮现系统提示。查询条件填写对的后,点击查询即可会员详细信息。 查询和显示所有单击事件实现分别由函数void CMemberDlg::OnOK()和void CMemb

13、erDlg::OnBUTTONListAll()实现,详细代码如下: 记录集打开同上。 在列表框中显示实现: while (!m_pRs->adoEOF) { CString temp; m_EList.InsertItem(1000,""); for(int i=0;i<3;i++) { temp=(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)i)->Value; m_EList.SetItemText(row,i,temp); } m_pRs->MoveNext(); row+=1; } 4.3.2 会员

14、密码修改 此模块用于修改会员登录密码。 图4-5 会员密码修改界面 填入顾客账号和旧密码后,系统检查数据库中与否有该记录,如果存在该记录,则可填写新密码进行修改;若不存在,则系统给出提示信息。如下图: 图4-6 会员密码修改提示信息界面 该模块单击事件由函数void CECodeModifyDlg::OnOK()实现,详细代码如下: sql="Update Login set DCode='"+NewCode+"' where DNO='"+Name+"'"; try { theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText

15、); } catch(_com_error &e) { AfxMessageBox(e.Description()); } AfxMessageBox("修改成功"); 4. 积分信息模块 (1) 积分查询 该功能实现界面如下: 图4-7 积分查询界面 输入会员账号后,点击拟定按钮,系统一方面检查账号与否存在,若存在则输出该会员积分信息;若不存在,输出提示信息。 实现原理如会员信息模块中会员查询。 实现函数为:void CJQueryDlg::OnOK()。 在编辑框中显示实现为: var = m_pRs->GetCollect("MScore"); if(

16、var.vt != VT_NULL) str1 = (LPCSTR)_bstr_t(var); GetDlgItem(IDC_EDIT_Jifen)->SetWindowText(str1); var = m_pRs->GetCollect("MGrade"); if(var.vt !=VT_NULL) str2=(LPCSTR)_bstr_t(var); GetDlgItem(IDC_EDIT_Grade)->SetWindowText(str2); var = m_pRs->GetCollect("MDiscount"); if(var.vt !=VT_NULL) str

17、3=(LPCSTR)_bstr_t(var); GetDlgItem(IDC_EDIT_Discout)->SetWindowText(str3); (2) 积分兑换 积分兑换功能实现界面如下: 图4-8 积分兑换功能实现界面 顾客输入账号和密码后,点击兑换按钮,该按钮实现中,一方面检查顾客合法性。若顾客已兑换过积分,则提示及兑换;若积分不够兑换级别,则提示积分不够;若兑换成功后,则显示顾客级别和优惠折扣。 该模块实现单击事件函数解决为:void CEXchangeDlg::OnOK(),详细实现如下: //修改数据库中积分 sql="Update Score set MG

18、rade=1,MDiscount=0.1 where MNO='"+mzh+"'"; try { theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText); } catch(_com_error &e) { AfxMessageBox(e.Description()); } AfxMessageBox("兑换成功"); (3) 消费加分 该模块功能将会员消费金额换为消费积分,如下图: 图4-9 消费加分模块界面实现图 输入顾客账号和消费金额后,一方面检查数据库中与否存在该记录,如果存在,则将该顾客积分增长其消费金额数目,如

19、不存在,系统弹出提示信息。 模块单击事件解决由函数void CXiaoFeiDlg::OnOK()实现,详细代码如下: sql="Update Score set MScore=MScore+'"+JiE+"' where MNO='"+UserZH+"'"; try { theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText); } catch(_com_error &e) { AfxMessageBox(e.Description()); } AfxMessageBox("添加成功"); (4) 优惠讯息 该模块为静态功能

20、点击优惠讯息菜单即浮现超市积分优惠政策及兑换政策对话框。 5 基本信息管理模块 1) .职工信息管理 (1). 查询基本信息 该模块功能实现基本与会员基本信息查询相似,在此不再赘述。实现该功能函数为:void CEmployeeDlg::OnOK();实现该功能SQL语句为: sql="select * from Employee where EID='"+EmpID+"'"; (2). 修改职工信息 该模块功能修改超市职工基本信息。 函数实现:void CMIMDlg::OnOK()。 其实现如下: GetDlgItem(IDC_EDIT1_EmpName)->Get

21、WindowText(EXm); GetDlgItem(IDC_COMBO_EmpSta)->GetWindowText(EZw); if(EZw=="管理员") EZw="0"; else if(EZw=="普通职工") EZw="1"; sql="Update Employee set EName='"+EXm+"',EStatus='"+EZw+"' where EID='"+EMId+"'"; try { theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText); } catch(_com_error &e) { AfxM

22、essageBox(e.Description()); } AfxMessageBox("修改成功"); (3). 修改密码 职工修改密码模块与会员密码修改类似,实现函数为:void CMModifyDlg::OnOK(),此处不再赘述。 详细SQL语句实现为: sql="Update Login set DCode='"+NewCode+"' where DNO='"+Name+"'"; try{ theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText); } catch(_com_error &e) { AfxMessage

23、Box(e.Description()); } (4). 添加职工信息 管理员进入系统后可以按照需求添加职工信息,该模块一方面检查输入与否为空,若不为空,则可以进行添加,此功能同步将信息添加到Login表和Employee表中,界面实现如图: 图4-10 添加职工信息 实现该事件函数为:void CEAddEmplyeeDlg::OnOK(),下面是添加职工信息详细实现: sql="Insert into Employee(EID,EName,EStatus) values('"+Eno+"','"+Ename+"','"+Esta+"')"; SQL="Insert

24、into Login(DNO,DCode,DUserSta) values('"+Eno+"','"+Ecode+"','"+Esta+"')"; try{ theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText); theApp.conn->Execute((_bstr_t)SQL,NULL,adCmdText); } catch(_com_error &e) { AfxMessageBox(e.Description()); } AfxMessageBox("添加成功"); (5). 删除职工信息 该模块

25、只能由管理员进行操作,管理员成功登录后,可以按照职工号删除职工信息,如图所示: 图4-11 删除职工信息图 在删除前,系统会给出提示,提示顾客与否拟定要删除。点击是,则将该记录从数据库中删除;点击否,则撤销删除行为。 实现函数为void CDelEmpDlg::OnOK(),代码如下: if(MessageBox("拟定要删除该记录吗?","提示",MB_YESNO)==IDYES) { sql="delete from Employee where EID='"+EmpNO+"'"; SQL="delete from Login where DNO='"+EmpNO+"'"

26、 try{ theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText); theApp.conn->Execute((_bstr_t)SQL,NULL,adCmdText); } catch(_com_error &e) { AfxMessageBox(e.Description());} AfxMessageBox("删除成功"); } 2 会员信息管理 会员信息管理涉及会员信息查询、会员信息修改、会员注册、会员删除四个模块,功能实现同职工信息管理模块中响应功能。 实现函数分别为:void CMemberDlg::OnOK()

27、void CModifyMemDlg::OnBUTTONModify()、void CMemAddDlg::OnOK()、void CModifyMemDlg::OnBUTTONDel()。 此处以会员信息修改和删除为例,其她功能实现略写。 图4-12 会员信息修改 图中,灰色编辑框表达不可改。如果要修改信息则填入要修改值,点击“拟定修改”,即可修改成功;如果要删除该条记录,则点击“拟定删除”,系统会提示,与否真删除,若是,则从数据库表中将该记录删除,若否,则退出删除。 此处实现有关SQL语句为: //修改 sql="Update Member set MName='"+Us

28、erName+"',MTel='"+UserTel+"',MAdd='"+UserAdd+"' where MNO='"+UserNO+"'"; try{ theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText); } catch(_com_error &e) { AfxMessageBox(e.Description()); } AfxMessageBox("修改成功"); //删除 if(MessageBox("拟定要删除该记录吗?","提示",MB_YESNO)==IDYES) { sql="delete from Mem

29、ber where MNO='"+UserNO+"'"; SQL="delete from Login where DNO='"+UserNO+"'"; try{ theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText); theApp.conn->Execute((_bstr_t)SQL,NULL,adCmdText); } catch(_com_error &e) { AfxMessageBox(e.Description()); } AfxMessageBox("删除成功"); 6 记录 记录模块是对超市会员积分进行记录,

30、可以记录出各登记人数及所占比例,并以柱形图形式显示出来。 图4-13 记录分析功能实现图 实现该功能函数为:void CStatDlg::OnOK() 详细实现: (1) 打开记录集,获得各级别人数; (2) 绘制柱形图 //获取静态图片空间大小 CWnd * pWnd=this->GetDlgItem(IDC_DRAW); pWnd->GetClientRect(&rectPic); // 获取设备环境指针 CDC *pDC=pWnd->GetDC(); // 重新填充静态图片区域 CBrush NewBrush; NewBrush.CreateSolidBr

31、ush(RGB(238,238,237)); CBrush * pOldBrush=pDC->SelectObject(&NewBrush); pDC->Rectangle(&rectPic); pDC->SelectObject(pOldBrush); // 拟定每个柱形条宽度 int nLength=(rectPic.right-rectPic.left)/6; // 定义五种颜色,用来填充柱形图 COLORREF RGBArray[6]={RGB(0,255,0),RGB(128,0,255),RGB(0,0,255),RGB(255,255,0),RGB(255,0,0)

32、RGB(0,128,255)}; // 定义一种矩形,表达柱形条 CRect rect; for ( int i=0;i<6;i++ ) { // 拟定柱形条位置 rect.left=rectPic.left+i*nLength; rect.top=rectPic.bottom -rectPic.Height() * s[i]/num; rect.right=rectPic.left + (i+1)*nLength; rect.bottom=rectPic.bottom; // 创立画刷,填充图形 CBrush NewBrush; NewBrush.CreateSo

33、lidBrush(RGBArray[i]); CBrush * pOldBrush=pDC->SelectObject(&NewBrush); pDC->Rectangle(&rect); pDC->SelectObject(pOldBrush); } // 释放设备环境 this->ReleaseDC(pDC); 7 系统信息 1 顾客协助 系统调用协助文献Market-Help.chm,对于不熟悉本系统顾客可以通过阅读协助文献理解系统如何使用。 点击顾客协助菜单或协助工具栏按钮后,即打开协助文献,如图所示: 图4-14 顾客协助功能实现图 详细实现为: voi

34、d CCMarketDlg::OnMENUHelp() { char buf[MAX_PATH]; ::GetCurrentDirectory(MAX_PATH,buf);//获取程序根目录途径 ::ShellExecute(NULL,"open","Market-Help.chm","","",SW_SHOW); } 2 关于本系统 详细实现: void CCMarketDlg::OnMENUAbout() { CDialog about(IDD_ABOUTBOX); about.DoModal(); } 8 退出系统 详细实现: void CCMarket

35、Dlg::OnMENUQuit() { theApp.conn->Close();//关闭数据库 EndDialog(0); } 9 数据库连接设计与实现 (1) 初始化COM库,引入ADO库定义文献 一方面在stdafx.h中用#import指令引入ADO类型库 #import "c:\program files\common files\system\ado\msado15.dll"no_namespace\rename("EOF","adoEOF") 然后使用AfxOleInit()来初始化COM库。 (2) 用Connection对象连接数据库 strConn

36、Format(_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s"),"SuperMarket.mdb");//依照参数构造连接字符串 conn->Open((_bstr_t)strConn,"","",adModeUnknown);//打开数据库 (3) 运用建立好连接,通过Connection、Command对象执行SQL命令,或运用Recordset对象获得成果记录集进行查询、解决。 _RecordsetPtr m_pRs; m_pRs.CreateInstance((__uuidof(Recordset))); m_pRs->Open((_bstr_t)sql,theApp.conn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);//打开记录集 theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);//执行sql (4)使用完毕后关闭连接释放对象。 m_pRs->Close();//关闭记录集 conn->Close();//关闭连接

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服