真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

收藏java代碼生成器 代碼生成器源碼

跪求圖片生成器java全代碼,要求可以畫圖和獲取屏幕并且能保存。拜托各位大神了

正好寫了一個(gè),給你看看哈

創(chuàng)新互聯(lián)10多年成都企業(yè)網(wǎng)站定制服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),成都企業(yè)網(wǎng)站定制及推廣,對(duì)成都火鍋店設(shè)計(jì)等多個(gè)方面擁有多年建站經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。

import?java.awt.*;

import?java.awt.image.BufferedImage;

import?java.io.File;

import?java.util.Date;

import?javax.imageio.ImageIO;

public?class?ScreenCapturer?{

public?static?void?main(String[]?args)?throws?Exception{

Date?date?=?new?Date();

Robot?rbt?=?new?Robot();

BufferedImage?bf?=??rbt.createScreenCapture(new?Rectangle(1440,900));??//這是屏幕分辨率??可以根據(jù)自己的屏幕修改

File?file?=?new?File("d://"+?date.toString().replace("?","").replace(":","")+".jpg");??//這是保存路徑D盤根目錄

ImageIO.write(bf,"jpg",file);

System.out.println("截圖成功!保存于D盤根目錄下!時(shí)間:"?+?date.toString());

}

}

代碼生成器是干什么用的,誰用過

代碼生成器是按照特定編碼規(guī)范輸出代碼的軟件,可以直接生成項(xiàng)目,也可以單頁生成

比如動(dòng)軟,生成項(xiàng)目可以選擇vs版本的,其實(shí)嘛,動(dòng)軟挺垃圾的,不如你去學(xué)學(xué)orm框架,很簡(jiǎn)單的,比動(dòng)軟的三層好得多

java代碼生成器怎么用

zip包,然后自動(dòng)下載下來

1.預(yù)先定義好模板

2.界面輸入相關(guān)參數(shù)

3.解析模板生成代碼并下載

最后放出源代碼:

package com.et.controller.system.createcode;

import java.util.ArrayList;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import com.et.controller.base.BaseController;

import com.et.util.DelAllFile;

import com.et.util.FileDownload;

import com.et.util.FileZip;

import com.et.util.Freemarker;

import com.et.util.PageData;

import com.et.util.PathUtil;

/**

* 類名稱:FreemarkerController

* 創(chuàng)建人:Harries

* 創(chuàng)建時(shí)間:2015年1月12日

* @version

*/

@Controller

@RequestMapping(value=”/createCode”)

public class CreateCodeController extends BaseController {

/**

* 生成代碼

*/

@RequestMapping(value=”/proCode”)

public void proCode(HttpServletResponse response) throws Exception{

PageData pd = new PageData();

pd = this.getPageData();

/* ============================================================================================= */

String packageName = pd.getString(“packageName”); //包名 ========1

String objectName = pd.getString(“objectName”); //類名 ========2

String tabletop = pd.getString(“tabletop”); //表前綴 ========3

tabletop = null == tabletop?””:tabletop.toUpperCase(); //表前綴轉(zhuǎn)大寫

String zindext = pd.getString(“zindex”); //屬性總數(shù)

int zindex = 0;

if(null != zindext !””.equals(zindext)){

zindex = Integer.parseInt(zindext);

}

ListString[] fieldList = new ArrayListString[](); //屬性集合 ========4

for(int i=0; i zindex; i++){

fieldList.add(pd.getString(“field”+i).split(“,fh,”)); //屬性放到集合里面

}

MapString,Object root = new HashMapString,Object(); //創(chuàng)建數(shù)據(jù)模型

root.put(“fieldList”, fieldList);

root.put(“packageName”, packageName); //包名

root.put(“objectName”, objectName); //類名

root.put(“objectNameLower”, objectName.toLowerCase()); //類名(全小寫)

root.put(“objectNameUpper”, objectName.toUpperCase()); //類名(全大寫)

root.put(“tabletop”, tabletop); //表前綴

root.put(“nowDate”, new Date()); //當(dāng)前日期

DelAllFile.delFolder(PathUtil.getClasspath()+”admin/ftl”); //生成代碼前,先清空之前生成的代碼

/* ============================================================================================= */

String filePath = “admin/ftl/code/”; //存放路徑

String ftlPath = “createCode”; //ftl路徑

/*生成controller*/

Freemarker.printFile(“controllerTemplate.ftl”, root, “controller/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Controller.java”, filePath, ftlPath);

/*生成service*/

Freemarker.printFile(“serviceTemplate.ftl”, root, “service/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName+”Service.java”, filePath, ftlPath);

/*生成mybatis xml*/

Freemarker.printFile(“mapperMysqlTemplate.ftl”, root, “mybatis_mysql/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);

Freemarker.printFile(“mapperOracleTemplate.ftl”, root, “mybatis_oracle/”+packageName+”/”+objectName+”Mapper.xml”, filePath, ftlPath);

/*生成SQL腳本*/

Freemarker.printFile(“mysql_SQL_Template.ftl”, root, “mysql數(shù)據(jù)庫腳本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);

Freemarker.printFile(“oracle_SQL_Template.ftl”, root, “oracle數(shù)據(jù)庫腳本/”+tabletop+objectName.toUpperCase()+”.sql”, filePath, ftlPath);

/*生成jsp頁面*/

Freemarker.printFile(“jsp_list_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_list.jsp”, filePath, ftlPath);

Freemarker.printFile(“jsp_edit_Template.ftl”, root, “jsp/”+packageName+”/”+objectName.toLowerCase()+”/”+objectName.toLowerCase()+”_edit.jsp”, filePath, ftlPath);

/*生成說明文檔*/

Freemarker.printFile(“docTemplate.ftl”, root, “說明.doc”, filePath, ftlPath);

//this.print(“oracle_SQL_Template.ftl”, root); 控制臺(tái)打印

/*生成的全部代碼壓縮成zip文件*/

FileZip.zip(PathUtil.getClasspath()+”admin/ftl/code”, PathUtil.getClasspath()+”admin/ftl/code.zip”);

/*下載代碼*/

FileDownload.fileDownload(response, PathUtil.getClasspath()+”admin/ftl/code.zip”, “code.zip”);

}

}

求助大神,要求用java代碼寫一個(gè)序列生成器

import?java.util.HashMap;

import?java.security.KeyException;

import?java.sql.Connection;

import?java.sql.PreparedStatement;

import?java.sql.ResultSet;

import?java.sql.SQLException;

/**

*?類codeKey/code是一個(gè)數(shù)據(jù)庫主鍵生成器,用序列號(hào)的方式來產(chǎn)生數(shù)據(jù)庫中需要的主鍵值。

*?p

*?codeKey/code目前支持的數(shù)據(jù)庫包括Oracle的所有版本、MySql的3.x以上的版本

*?以及所有支持max()函數(shù)的數(shù)據(jù)庫,支持字段類型僅為數(shù)字類型的主鍵,對(duì)于字符及其它類型的主鍵尚不提供支持。

*?p

*?在使用時(shí)只需提供表名、字段名(主鍵)以及到數(shù)據(jù)庫的JDBC連接,如果想要獲得message表的id字段的下一個(gè)?主鍵值時(shí):

*?p

*?blockquote

*?

*?pre

*?????java.sql.Connection?conn?=?...;

*?????org.shaoye.common.sql.Key?key?=?org.shaoye.common.sql.Key.getInstance();

*?????int?keyValue?=?key.getNextKey("message",?"id",?conn);

*?????String?sql?=?"insert?into?message?(id,...)?values?("?+?keyValue?+?",...)";

*?????//執(zhí)行插入操作...

*?/pre

*?

*?/blockquote

*?p

*?

*?@author?令少爺(shaoye@vip.sina.com)

*?@since?magic?0.1

*/

public?final?class?Key?{

/**

?*?key的最大值,默認(rèn)為9223372036854775807,即long類型的最大值

?*/

private?long?max?=?9223372036854775807L;

/**

?*?key的最小值,默認(rèn)為1

?*?*/

private?long?min?=?1L;

/**

?*?Key的唯一實(shí)例,通過getInstance()方法獲得

?*?*/

private?static?Key?keygen?=?new?Key();

/**

?*?KeyInfo類的實(shí)例列表,默認(rèn)容量為5個(gè)

?*?*/

private?HashMapString,?KeyInfo?keyList?=?new?HashMapString,?KeyInfo(5);?//?keyInfo

//?列表

/**

?*?私有的默認(rèn)構(gòu)造方法,防止外部構(gòu)造類的實(shí)例

?*?*/

private?Key()?{

}

/**

?*?獲得Key的唯一實(shí)例

?*?*/

public?static?Key?getInstance()?{

return?keygen;

}

/**

?*?用指定的表和字段獲得key的下一個(gè)值,主鍵的值不得超過2147483647

?*?

?*?@param?tableName

?*????????????數(shù)據(jù)庫中的表名,表中必須有一個(gè)數(shù)字主鍵

?*?@param?keyName

?*????????????表(tableName)中的字段名

?*?@param?conn

?*????????????JDBC連接,如果欲獲得的key是第一次取值,則必須保證conn能連接到數(shù)據(jù)庫

?*?@return?key的下一個(gè)主鍵的int值

?*?@throws?codeKeyException/code

?*?????????如果表名或字段名不存在、訪問數(shù)據(jù)庫錯(cuò)誤或key的值大于2147483647時(shí)拋出

?*/

public?int?getNextKey(String?tableName,?String?keyName,?Connection?conn)

throws?KeyException?{

long?value?=?getNextKeyLong(tableName,?keyName,?conn);

if?(value??2147483647L)?{

throw?new?KeyException(

"Key's?value?too?big,please?call?getNextKeyLong?method!");

}

return?(new?Long(value)).intValue();

}

/**

?*?用指定的表和字段獲得key的下一個(gè)值,最大為9223372036854775807

?*?@param?tableName?數(shù)據(jù)庫中的表名,表中必須有一個(gè)數(shù)字主鍵

?*?@param?keyName?表(tableName)中的字段名

?*?@param?conn?JDBC連接,如果欲獲得的key是第一次取值,則必須保證conn能連接到數(shù)據(jù)庫

?*?@return?key的下一個(gè)主鍵的long值

?*?@throws?codeKeyException/code?如果表名或字段名不存在或訪問數(shù)據(jù)庫錯(cuò)誤時(shí)拋出

?*/

public?long?getNextKeyLong(String?tableName,?String?keyName,?Connection?conn)

throws?KeyException?{

KeyInfo?keyinfo;

String?item?=?tableName?+?"."?+?keyName;

try?{

if?(keyList.containsKey(item))?{

keyinfo?=?(KeyInfo)?keyList.get(item);

}?else?{

keyinfo?=?new?KeyInfo(tableName,?keyName,?conn);

keyList.put(item,?keyinfo);

}

return?keyinfo.getNextKey();

}?catch?(SQLException?sqle)?{

throw?new?KeyException(sqle);

}

}

/**

?*?用指定的"表code./code字段"形式的字符串獲得key的下一個(gè)值,主鍵的值不得超過2147483647

?*?@param?tableDotField?"表.字段"形式的字符串,如:message.id

?*?@param?conn?JDBC連接,如果欲獲得的key是第一次取值,則必須保證conn能連接到數(shù)據(jù)庫

?*?@return?key的下一個(gè)主鍵的int值

?*?@throws?codeKeyException/code?如果表名或字段名不存在、訪問數(shù)據(jù)庫錯(cuò)誤或key的值?大于2147483647時(shí)拋出

?*/

public?int?getNextKey(String?tableDotField,?Connection?conn)

throws?KeyException?{

long?value?=?getNextKeyLong(tableDotField,?conn);

if?(value??2147483647L)?{

throw?new?KeyException(

"Key's?value?too?big,please?call?getNextKeyLong?method!");

}

return?(new?Long(value)).intValue();

}

/**

?*?用指定的"表code./code字段"形式的字符串獲得key的下一個(gè)值,最大為9223372036854775807

?*?@param?tableDotField?"表.字段"形式的字符串,如:message.id

?*?@param?conn?JDBC連接,如果欲獲得的key是第一次取值,則必須保證conn能連接到數(shù)據(jù)庫

?*?@return?key的下一個(gè)主鍵的int值

?*?@throws?codeKeyException/code?如果表名或字段名不存在或訪問數(shù)據(jù)庫錯(cuò)誤時(shí)拋出

?*/

public?long?getNextKeyLong(String?tableDotField,?Connection?conn)

throws?KeyException?{

int?dot_index?=?tableDotField.indexOf(".");

if?(tableDotField.indexOf(".")??1)?{

throw?new?KeyException("Unknown?Key?'"?+?tableDotField?+?"'!");

}

String?tab?=?tableDotField.substring(0,?dot_index);

String?key?=?tableDotField.substring(dot_index);

return?getNextKeyLong(tab,?key,?conn);

}

/**

?*?用指定的表和字段獲得key的當(dāng)前值,主鍵的值不得超過2147483647

?*?@param?tableName?數(shù)據(jù)庫中的表名,表中必須有一個(gè)數(shù)字主鍵

?*?@param?keyName?表(tableName)中的字段名

?*?@param?conn?JDBC連接,如果欲獲得的key是第一次取值,則必須保證conn能連接到數(shù)據(jù)庫

?*?@return?key的當(dāng)前int值

?*?@throws?codeKeyException/code

?*?????????如果表名或字段名不存在、訪問數(shù)據(jù)庫錯(cuò)誤或key的值大于2147483647時(shí)拋出

?*/

public?int?getCurrentKey(String?tableName,?String?keyName,?Connection?conn)

throws?KeyException?{

long?value?=?getCurrentKeyLong(tableName,?keyName,?conn);

if?(value??2147483647L)?{

throw?new?KeyException(

"Key's?value?too?big,please?call?getCurrentKeyLong?method!");

}

return?(new?Long(value)).intValue();

}

/**

?*?用指定的表和字段獲得key的當(dāng)前值,最大為9223372036854775807

?*?

?*?@param?tableName

?*????????????數(shù)據(jù)庫中的表名,表中必須有一個(gè)數(shù)字主鍵

?*?@param?keyName

?*????????????表(tableName)中的字段名

?*?@param?conn

?*????????????JDBC連接,如果欲獲得的key是第一次取值,則必須保證conn能連接到數(shù)據(jù)庫

?*?@return?key的當(dāng)前l(fā)ong值

?*?@throws?codeKeyException/code?如果表名或字段名不存在或訪問數(shù)據(jù)庫錯(cuò)誤時(shí)拋出

?*/

public?long?getCurrentKeyLong(String?tableName,?String?keyName,

Connection?conn)?throws?KeyException?{

KeyInfo?keyinfo;

String?item?=?tableName?+?"."?+?keyName;

try?{

synchronized?(keyList)?{

if?(keyList.containsKey(item))?{

keyinfo?=?(KeyInfo)?keyList.get(item);

}?else?{

keyinfo?=?new?KeyInfo(tableName,?keyName,?conn);

keyList.put(item,?keyinfo);

}

}

return?keyinfo.getCurrentKey();

}?catch?(SQLException?sqle)?{

throw?new?KeyException(sqle);

}

}

/**

?*?用指定的"表code./code字段"形式的字符串獲得key的當(dāng)前值,主鍵的值不得超過2147483647

?*?

?*?@param?tableDotField

?*????????????"表.字段"形式的字符串,如:message.id

?*?@param?conn

?*????????????JDBC連接,如果欲獲得的key是第一次取值,則必須保證conn能連接到數(shù)據(jù)庫

?*?@return?key的當(dāng)前int值

?*?@throws?codeKeyException/code?如果表名或字段名不存在、訪問數(shù)據(jù)庫錯(cuò)誤或key的值

?*?????????大于2147483647時(shí)拋出

?*/

public?int?getCurrentKey(String?tableDotField,?Connection?conn)

throws?KeyException?{

long?value?=?getCurrentKeyLong(tableDotField,?conn);

if?(value??2147483647L)?{

throw?new?KeyException(

"Key's?value?too?big,please?call?getNextKeyLong?method!");

}

return?(new?Long(value)).intValue();

}

/**

?*?用指定的"表code./code字段"形式的字符串獲得key的當(dāng)前值,最大為9223372036854775807

?*?

?*?@param?tableDotField

?*????????????"表.字段"形式的字符串,如:message.id

?*?@param?conn

?*????????????JDBC連接,如果欲獲得的key是第一次取值,則必須保證conn能連接到數(shù)據(jù)庫

?*?@return?key的當(dāng)前int值

?*?@throws?codeKeyException/code?如果表名或字段名不存在或訪問數(shù)據(jù)庫錯(cuò)誤時(shí)拋出

?*/

public?long?getCurrentKeyLong(String?tableDotField,?Connection?conn)

throws?KeyException?{

int?dot_index?=?tableDotField.indexOf(".");

if?(tableDotField.indexOf(".")??1)?{

throw?new?KeyException("Unknown?Key?'"?+?tableDotField?+?"'!");

}

String?tab?=?tableDotField.substring(0,?dot_index);

String?key?=?tableDotField.substring(dot_index);

return?getCurrentKeyLong(tab,?key,?conn);

}

}

/**

*?內(nèi)部類,用來存儲(chǔ)主鍵信息

*?*/

class?KeyInfo?{

private?long?max?=?9223372036854775807L;

private?long?min?=?1L;

private?long?nextKey;

private?String?tableName;

private?String?keyName;

private?Connection?conn?=?null;

/**

?*?keyInfo?對(duì)象初始化

?*?

?*?@throws?KeyException

?*/

KeyInfo(String?tableName,?String?keyName,?Connection?_conn)

throws?SQLException,?KeyException?{

this.tableName?=?tableName;

this.keyName?=?keyName;

this.conn?=?_conn;

retrieveFromDB();

}

int?getMax()?{

return?(new?Long(max)).intValue();

}

long?getMaxLong()?{

return?max;

}

int?getMin()?{

return?(new?Long(min)).intValue();

}

long?getMinLong()?{

return?min;

}

/**

?*?取下一鍵值

?*/

int?getNextKey()?{

return?(new?Long(getNextKeyLong())).intValue();

}

/**

?*?取下一鍵值

?*/

synchronized?long?getNextKeyLong()?{

nextKey++;

return?nextKey;

}

/**

?*?取當(dāng)前鍵值

?*/

synchronized?int?getCurrentKey()?{

return?(new?Long(nextKey)).intValue();

}

/**

?*?取當(dāng)前鍵值

?*/

synchronized?long?getCurrentKeyLong()?{

return?nextKey;

}

/**

?*?從數(shù)據(jù)庫中取當(dāng)前最大值

?*?

?*?@throws?KeyException

?*/

void?retrieveFromDB()?throws?SQLException,?KeyException?{

PreparedStatement?pstmt?=?null;

ResultSet?rs?=?null;

String?sql?=?"select?max("?+?keyName?+?")?from?"?+?tableName;

try?{

pstmt?=?conn.prepareStatement(sql);

}?catch?(Exception?ex)?{

throw?new?KeyException("Can't?connect?DataBase!");

}

try?{

rs?=?pstmt.executeQuery();

}?catch?(SQLException?sqle)?{

if?(pstmt?!=?null)

pstmt.close();

throw?new?KeyException("'"?+?keyName?+?"'?or?'"?+?tableName

+?"'?isn't?exist?in?DataBase!",?sqle);

}

try?{

if?(rs.next())?{

nextKey?=?rs.getLong(1);

if?(nextKey??min)?{

nextKey?=?min;

}

}?else?{

nextKey?=?min;

}

}?catch?(SQLException?sqle)?{

throw?(sqle);

}?finally?{

if?(rs?!=?null)

rs.close();

if?(pstmt?!=?null)

pstmt.close();

}

}

}

java低代碼開發(fā)平臺(tái)有哪些

JNPF低代碼開發(fā)平臺(tái)可以以極少量代碼或無代碼的方式開發(fā)各種企業(yè)級(jí)管理系統(tǒng),其特點(diǎn)如下:

1. web在線開發(fā)

低代碼開發(fā)平臺(tái)是個(gè)全Web可視化開發(fā)和運(yùn)行架構(gòu),只要在web端網(wǎng)頁就能開發(fā),不需要安裝配置復(fù)雜的本地開發(fā)環(huán)境;

2. 代碼生成器

依托代碼生成器,開發(fā)人員大大減少了代碼編輯量,并且生成的代碼還可下載拷貝應(yīng)用,可根據(jù)需求進(jìn)行個(gè)性化修改;

3. 工作流引擎

工作流引擎可以輕松快捷的搭建業(yè)務(wù)流程管理系統(tǒng)和協(xié)同交互管理體系,可隨時(shí)按需更改流程邏輯以適應(yīng)新需求;

4. 流程設(shè)計(jì)器

流程設(shè)計(jì)器集成了表單設(shè)計(jì)器和流程引擎,并支持線性流程、父子流程、同步分合流、異步分合流程,全部實(shí)現(xiàn)可視化設(shè)計(jì);

5. 全源碼交付

低代碼開發(fā)平臺(tái)提供商業(yè)化的全源碼交付,可進(jìn)行二次個(gè)性化開發(fā),減少了代碼編寫,簡(jiǎn)化了開發(fā)流程,提升了開發(fā)效率;

6. 更新升級(jí)快速

如果需求發(fā)生變化,用戶只需通過web端網(wǎng)頁登錄開發(fā)賬號(hào),調(diào)整相應(yīng)的功能并發(fā)布即可,整個(gè)過程可能只需要幾分鐘便可完成;

7. 數(shù)據(jù)管理強(qiáng)大

低代碼開發(fā)平臺(tái)的數(shù)據(jù)處理功能十分強(qiáng)大,可自動(dòng)生成各種報(bào)表,還可以以大屏的方式直觀的呈現(xiàn)出實(shí)時(shí)的動(dòng)態(tài)數(shù)據(jù);

8. 縮減開發(fā)成本

傳統(tǒng)的編程開發(fā)模式需要許多人來共同協(xié)作研發(fā),現(xiàn)在運(yùn)用低代碼開發(fā)平臺(tái)只需要兩三個(gè)甚至一個(gè)人便可完成開發(fā)工作;

9. 部署方式靈活

平臺(tái)的部署方式十分多樣化,可實(shí)現(xiàn)公有云和私有云部署,也可進(jìn)行本地化部署,以滿足企業(yè)多變的差異化需求;

10. 快速開發(fā)SaaS

平臺(tái)可以輕松快速地開發(fā)ERP、CRM、HRM、BPM、OA、財(cái)務(wù)管理等各類SaaS管理系統(tǒng)和業(yè)務(wù)管理系統(tǒng),助力企業(yè)效益提升;

這便是JNPF低代碼開發(fā)平臺(tái)的主要特點(diǎn)和優(yōu)勢(shì),其大大優(yōu)于第三方定制開發(fā)以及企業(yè)自主探索開發(fā)等幾種傳統(tǒng)的開發(fā)方式。運(yùn)用JNPF低代碼開發(fā)平臺(tái),開發(fā)者可以高效快速的開發(fā)各種企業(yè)管理系統(tǒng),并還可以進(jìn)行各種子系統(tǒng)、子平臺(tái)的開發(fā)拓展,以滿足企業(yè)各種復(fù)雜的管理運(yùn)營需求,同時(shí)系統(tǒng)的更新升級(jí)也十分敏捷方便。

java代碼生成器是什么

代碼生成器就是根據(jù)特定的要求制定格式,靈活輸出在項(xiàng)目中重復(fù)要用到的代碼,節(jié)省項(xiàng)目時(shí)間,現(xiàn)在免費(fèi)的代碼生成器codesmith我經(jīng)常用的,小玩意,不花錢


文章題目:收藏java代碼生成器 代碼生成器源碼
文章轉(zhuǎn)載:http://weahome.cn/article/dodgipd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部