From 47e3087067abd35e6337c011f96d2338c0bb1aae Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期四, 25 七月 2024 13:39:31 +0800 Subject: [PATCH] 优化自动化代码 --- src/main/java/org/yeshi/utils/generater/GeneraterManager.java | 2 src/main/java/org/yeshi/utils/annotation/MapUtil.java | 82 ++- src/main/java/org/yeshi/utils/generater/GeneraterManagerV2.java | 25 src/test/java/com/generater/TestEntity2.java | 1 src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java | 16 src/main/resources/schemas/generator.dtd | 3 src/main/java/org/yeshi/utils/generater/util/NameUtil.java | 4 src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java | 6 src/main/resources/generater/admin/adminController.template | 39 + src/main/java/org/yeshi/utils/QRCodeUtil.java | 564 +++++++++++++------------- src/main/resources/generater/admin/adminVO.template | 14 src/main/resources/generater/admin/update.ftl | 38 + src/main/resources/generater/admin/form/checkBox.ftl | 2 src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java | 19 src/main/java/org/yeshi/utils/generater/mybatis/ColumnParseUtil.java | 21 + src/main/resources/generater/admin/form/img.ftl | 2 src/main/java/org/yeshi/utils/generater/vo/xmlconfig/admin/AdminControllerData.java | 10 src/main/resources/generater/admin/list.ftl | 18 src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java | 3 src/test/java/com/generater/GeneratorTest.java | 6 src/main/java/org/yeshi/utils/generater/mybatis/MyBatisMapperUtil.java | 99 ++++ src/main/java/org/yeshi/utils/tencentcloud/COSManager.java | 11 src/main/java/org/yeshi/utils/wx/WXAppLoginUtil.java | 19 src/main/java/org/yeshi/utils/generater/TestEntity3.java | 1 src/main/java/org/yeshi/utils/generater/vo/xmlconfig/service/ServiceData.java | 10 src/main/resources/generater/admin/add.ftl | 43 + src/main/java/org/yeshi/utils/generater/vo/admin/page/ListInfoVO.java | 5 src/main/java/org/yeshi/utils/mq/TDMQUtil.java | 82 ++- src/main/resources/test.xml | 88 ++++ 29 files changed, 774 insertions(+), 459 deletions(-) diff --git a/src/main/java/org/yeshi/utils/QRCodeUtil.java b/src/main/java/org/yeshi/utils/QRCodeUtil.java index 8d5ecbc..2a41b2c 100644 --- a/src/main/java/org/yeshi/utils/QRCodeUtil.java +++ b/src/main/java/org/yeshi/utils/QRCodeUtil.java @@ -26,327 +26,309 @@ import com.google.zxing.Result; import com.google.zxing.WriterException; import com.google.zxing.client.j2se.BufferedImageLuminanceSource; +import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.common.HybridBinarizer; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; /** * 浜岀淮鐮佺敓鎴� - * - * @author Administrator * + * @author Administrator */ public class QRCodeUtil { - private static final String CHARSET = "UTF-8"; - private static final String FORMAT_NAME = "JPG"; - // 浜岀淮鐮佸昂瀵� - int QRCODE_SIZE = 200; - // LOGO瀹藉害 - int WIDTH = 60; - // LOGO楂樺害 - int HEIGHT = 60; + private static final String CHARSET = "UTF-8"; + private static final String FORMAT_NAME = "JPG"; - static QRCodeUtil qrCodeUtil; + // 浜岀淮鐮佸昂瀵� + int QRCODE_SIZE = 200; + // LOGO瀹藉害 + int WIDTH = 60; + // LOGO楂樺害 + int HEIGHT = 60; - public static QRCodeUtil getInstance(int size) { - if (qrCodeUtil == null) { - qrCodeUtil = new QRCodeUtil(); - } - qrCodeUtil.QRCODE_SIZE = size; - return qrCodeUtil; - } + static QRCodeUtil qrCodeUtil; - public static QRCodeUtil getInstance(int size, int imgSize) { - if (qrCodeUtil == null) { - qrCodeUtil = new QRCodeUtil(); - } - qrCodeUtil.QRCODE_SIZE = size; - qrCodeUtil.HEIGHT = imgSize; - qrCodeUtil.WIDTH = imgSize; - return qrCodeUtil; - } + public static QRCodeUtil getInstance(int size) { + if (qrCodeUtil == null) { + qrCodeUtil = new QRCodeUtil(); + } + qrCodeUtil.QRCODE_SIZE = size; + return qrCodeUtil; + } - /** - * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:31:29 - * - * @param content - * 浜岀淮鐮佸唴瀹� - * @param logoImgPath - * Logo - * @param needCompress - * 鏄惁鍘嬬缉Logo - * @return 杩斿洖浜岀淮鐮佸浘鐗� - * @throws WriterException - * @throws IOException - * BufferedImage TODO 鍒涘缓浜岀淮鐮佸浘鐗� - */ - private BufferedImage createImage(String content, InputStream logoImg, boolean needCompress) - throws WriterException, IOException { - Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); - hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); - hints.put(EncodeHintType.CHARACTER_SET, CHARSET); - hints.put(EncodeHintType.MARGIN, 1); - BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, - hints); - - int width = bitMatrix.getWidth(); - int height = bitMatrix.getHeight(); - BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); - } - } - if (logoImg == null) { - return image; - } - - // 鎻掑叆鍥剧墖 - insertImage(image, logoImg, needCompress); - return image; - } + public static QRCodeUtil getInstance(int size, int imgSize) { + if (qrCodeUtil == null) { + qrCodeUtil = new QRCodeUtil(); + } + qrCodeUtil.QRCODE_SIZE = size; + qrCodeUtil.HEIGHT = imgSize; + qrCodeUtil.WIDTH = imgSize; + return qrCodeUtil; + } - /** - * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:31:29 - * - * @param content - * 浜岀淮鐮佸唴瀹� - * @param logoImgPath - * Logo - * @param needCompress - * 鏄惁鍘嬬缉Logo - * @return 杩斿洖浜岀淮鐮佸浘鐗� - * @throws WriterException - * @throws IOException - * BufferedImage TODO 鍒涘缓浜岀淮鐮佸浘鐗� - */ - private BufferedImage createImageDeleteWhite(String content, InputStream logoImg, boolean needCompress) - throws WriterException, IOException { - Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); - hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); - hints.put(EncodeHintType.CHARACTER_SET, CHARSET); - hints.put(EncodeHintType.MARGIN, 1); - BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, - hints); - - //璋冪敤鍘婚櫎鐧借竟鏂规硶 + /** + * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:31:29 + * + * @param content 浜岀淮鐮佸唴瀹� + * @param logoImgPath Logo + * @param needCompress 鏄惁鍘嬬缉Logo + * @return 杩斿洖浜岀淮鐮佸浘鐗� + * @throws WriterException + * @throws IOException + */ + private BufferedImage createImage(String content, InputStream logoImg, boolean needCompress) + throws WriterException, IOException { + return this.createImage(content, logoImg, 0xFF000000, 0xFFFFFFFF, needCompress); + } + + + public BufferedImage createImage(String content, InputStream logoImg, int color, int bgColor, boolean needCompress) + throws WriterException, IOException { + Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); + hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); + hints.put(EncodeHintType.CHARACTER_SET, CHARSET); + hints.put(EncodeHintType.MARGIN, 1); + BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, + hints); + + int width = bitMatrix.getWidth(); + int height = bitMatrix.getHeight(); + BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + image.setRGB(x, y, bitMatrix.get(x, y) ? color : bgColor); + } + } + if (logoImg == null) { + return image; + } + + if (logoImg != null) { + // 鎻掑叆鍥剧墖 + insertImage(image, logoImg, needCompress); + } + + return image; + } + + /** + * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:31:29 + * + * @param content 浜岀淮鐮佸唴瀹� + * @param logoImgPath Logo + * @param needCompress 鏄惁鍘嬬缉Logo + * @return 杩斿洖浜岀淮鐮佸浘鐗� + * @throws WriterException + * @throws IOException + */ + private BufferedImage createImageDeleteWhite(String content, InputStream logoImg, boolean needCompress) + throws WriterException, IOException { + return createImageDeleteWhite(content, logoImg, 0xFF000000, 0xFFFFFFFF, needCompress); + } + + + public BufferedImage createImageDeleteWhite(String content, InputStream logoImg, int color, int bgColor, boolean needCompress) + throws WriterException, IOException { + Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>(); + hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H); + hints.put(EncodeHintType.CHARACTER_SET, CHARSET); + hints.put(EncodeHintType.MARGIN, 1); + BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, + hints); + + //璋冪敤鍘婚櫎鐧借竟鏂规硶 bitMatrix = deleteWhite(bitMatrix); - - int width = bitMatrix.getWidth(); - int height = bitMatrix.getHeight(); - BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - for (int x = 0; x < width; x++) { - for (int y = 0; y < height; y++) { - image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); - } - } - if (logoImg == null) { - return image; - } - - // 鎻掑叆鍥剧墖 - insertImage(image, logoImg, needCompress); - return image; - } - - /** - * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:30:09 - * - * @param source - * 浜岀淮鐮佸浘鐗� - * @param logoImgPath - * Logo - * @param needCompress - * 鏄惁鍘嬬缉Logo - * @throws IOException - * void TODO 娣诲姞Logo - */ - private void insertImage(BufferedImage source, InputStream logoImg, boolean needCompress) throws IOException { - Image src = ImageIO.read(logoImg); - int width = src.getWidth(null); - int height = src.getHeight(null); - if (needCompress) { // 鍘嬬缉LOGO - if (width > WIDTH) { - width = WIDTH; - } - if (height > HEIGHT) { - height = HEIGHT; - } + int width = bitMatrix.getWidth(); + int height = bitMatrix.getHeight(); + BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + image.setRGB(x, y, bitMatrix.get(x, y) ? color : bgColor); + } + } + if (logoImg == null) { + return image; + } - Image image = src.getScaledInstance(width, height, Image.SCALE_SMOOTH); - BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); - Graphics g = tag.getGraphics(); - g.drawImage(image, 0, 0, null); // 缁樺埗缂╁皬鍚庣殑鍥� - g.dispose(); - src = image; - } + // 鎻掑叆鍥剧墖 + if (logoImg != null) { + insertImage(image, logoImg, needCompress); + } + return image; + } - // 鎻掑叆LOGO - Graphics2D graph = source.createGraphics(); - int x = (QRCODE_SIZE - width) / 2; - int y = (QRCODE_SIZE - height) / 2; - graph.drawImage(src, x, y, width, height, null); - Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6); - graph.setStroke(new BasicStroke(3f)); - graph.draw(shape); - graph.dispose(); - } + /** + * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:30:09 + * + * @param source 浜岀淮鐮佸浘鐗� + * @param logoImgPath Logo + * @param needCompress 鏄惁鍘嬬缉Logo + * @throws IOException void TODO 娣诲姞Logo + */ + private void insertImage(BufferedImage source, InputStream logoImg, boolean needCompress) throws IOException { + Image src = ImageIO.read(logoImg); + int width = src.getWidth(null); + int height = src.getHeight(null); + if (needCompress) { // 鍘嬬缉LOGO + if (width > WIDTH) { + width = WIDTH; + } - /** - * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:32:32 - * - * @param content - * 浜岀淮鐮佸唴瀹� - * @param logoImgPath - * Logo - * @param destPath - * 浜岀淮鐮佽緭鍑鸿矾寰� - * @param needCompress - * 鏄惁鍘嬬缉Logo - * @throws Exception - * void TODO 鐢熸垚甯ogo鐨勪簩缁寸爜 - */ - public void encode(String content, InputStream logoImg, String destPath, boolean needCompress) throws Exception { - BufferedImage image = createImage(content, logoImg, needCompress); - ImageIO.write(image, FORMAT_NAME, new File(destPath)); - } + if (height > HEIGHT) { + height = HEIGHT; + } - /** - * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:35:44 - * - * @param content - * 浜岀淮鐮佸唴瀹� - * @param destPath - * 浜岀淮鐮佽緭鍑鸿矾寰� - * @throws Exception - * void TODO 鐢熸垚涓嶅甫Logo鐨勪簩缁寸爜 - */ - public void encode(String content, String destPath) throws Exception { - encode(content, null, destPath, false); - } + Image image = src.getScaledInstance(width, height, Image.SCALE_SMOOTH); + BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); + Graphics g = tag.getGraphics(); + g.drawImage(image, 0, 0, null); // 缁樺埗缂╁皬鍚庣殑鍥� + g.dispose(); + src = image; + } - public InputStream encode(String content) throws Exception { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - encode(content, null, out, false); - return new ByteArrayInputStream(out.toByteArray()); - } + // 鎻掑叆LOGO + Graphics2D graph = source.createGraphics(); + int x = (QRCODE_SIZE - width) / 2; + int y = (QRCODE_SIZE - height) / 2; + graph.drawImage(src, x, y, width, height, null); + Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6); + graph.setStroke(new BasicStroke(3f)); + graph.draw(shape); + graph.dispose(); + } - - public InputStream encodeDeleteWhite(String content) throws Exception { - ByteArrayOutputStream out = new ByteArrayOutputStream(); - encodeDeleteWhite(content, null, out, false); - return new ByteArrayInputStream(out.toByteArray()); - } - - - /** - * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:36:58 - * - * @param content - * 浜岀淮鐮佸唴瀹� - * @param logoImgPath - * Logo - * @param output - * 杈撳嚭娴� - * @param needCompress - * 鏄惁鍘嬬缉Logo - * @throws Exception - * void TODO 鐢熸垚甯ogo鐨勪簩缁寸爜锛屽苟杈撳嚭鍒版寚瀹氱殑杈撳嚭娴� - */ - public void encode(String content, InputStream logoImg, OutputStream output, boolean needCompress) - throws Exception { - BufferedImage image = createImage(content, logoImg, needCompress); - ImageIO.write(image, FORMAT_NAME, output); - } + /** + * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:32:32 + * + * @param content 浜岀淮鐮佸唴瀹� + * @param logoImgPath Logo + * @param destPath 浜岀淮鐮佽緭鍑鸿矾寰� + * @param needCompress 鏄惁鍘嬬缉Logo + * @throws Exception void TODO 鐢熸垚甯ogo鐨勪簩缁寸爜 + */ + public void encode(String content, InputStream logoImg, String destPath, boolean needCompress) throws Exception { + BufferedImage image = createImage(content, logoImg, needCompress); + ImageIO.write(image, FORMAT_NAME, new File(destPath)); + } - /** - * - * @param content - * @param logoImg - * @param output - * 浜岃繘鍒惰緭鍑烘祦 - * @param needCompress - * @throws Exception - */ - public void encode(String content, InputStream logoImg, ByteArrayOutputStream output, boolean needCompress) - throws Exception { - BufferedImage image = createImage(content, logoImg, needCompress); - ImageIO.write(image, FORMAT_NAME, output); - } - - /** - * - * @param content - * @param logoImg - * @param output - * 浜岃繘鍒惰緭鍑烘祦 - * @param needCompress - * @throws Exception - */ - public void encodeDeleteWhite(String content, InputStream logoImg, ByteArrayOutputStream output, boolean needCompress) - throws Exception { - BufferedImage image = createImageDeleteWhite(content, logoImg, needCompress); - ImageIO.write(image, FORMAT_NAME, output); - } + /** + * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:35:44 + * + * @param content 浜岀淮鐮佸唴瀹� + * @param destPath 浜岀淮鐮佽緭鍑鸿矾寰� + * @throws Exception void TODO 鐢熸垚涓嶅甫Logo鐨勪簩缁寸爜 + */ + public void encode(String content, String destPath) throws Exception { + encode(content, null, destPath, false); + } - /** - * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:38:02 - * - * @param content - * 浜岀淮鐮佸唴瀹� - * @param output - * 杈撳嚭娴� - * @throws Exception - * void TODO 鐢熸垚涓嶅甫Logo鐨勪簩缁寸爜锛屽苟杈撳嚭鍒版寚瀹氱殑杈撳嚭娴� - */ - public void encode(String content, OutputStream output) throws Exception { - encode(content, null, output, false); - } + public InputStream encode(String content) throws Exception { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + encode(content, null, out, false); + return new ByteArrayInputStream(out.toByteArray()); + } - /** - * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:39:10 - * - * @param file - * 浜岀淮鐮� - * @return 杩斿洖瑙f瀽寰楀埌鐨勪簩缁寸爜鍐呭 - * @throws Exception - * String TODO 浜岀淮鐮佽В鏋� - */ - public String decode(File file) throws Exception { - BufferedImage image; - image = ImageIO.read(file); - if (image == null) { - return null; - } - BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(image); - BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); - Result result; - Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>(); - hints.put(DecodeHintType.CHARACTER_SET, CHARSET); - result = new MultiFormatReader().decode(bitmap, hints); - String resultStr = result.getText(); - return resultStr; - } - /** - * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:39:48 - * - * @param path - * 浜岀淮鐮佸瓨鍌ㄤ綅缃� - * @return 杩斿洖瑙f瀽寰楀埌鐨勪簩缁寸爜鍐呭 - * @throws Exception - * String TODO 浜岀淮鐮佽В鏋� - */ - public String decode(String path) throws Exception { - return decode(new File(path)); - } + public InputStream encodeDeleteWhite(String content) throws Exception { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + encodeDeleteWhite(content, null, out, false); + return new ByteArrayInputStream(out.toByteArray()); + } - private static BitMatrix deleteWhite(BitMatrix matrix) { + + /** + * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:36:58 + * + * @param content 浜岀淮鐮佸唴瀹� + * @param logoImgPath Logo + * @param output 杈撳嚭娴� + * @param needCompress 鏄惁鍘嬬缉Logo + * @throws Exception void TODO 鐢熸垚甯ogo鐨勪簩缁寸爜锛屽苟杈撳嚭鍒版寚瀹氱殑杈撳嚭娴� + */ + public void encode(String content, InputStream logoImg, OutputStream output, boolean needCompress) + throws Exception { + BufferedImage image = createImage(content, logoImg, needCompress); + ImageIO.write(image, FORMAT_NAME, output); + } + + /** + * @param content + * @param logoImg + * @param output 浜岃繘鍒惰緭鍑烘祦 + * @param needCompress + * @throws Exception + */ + public void encode(String content, InputStream logoImg, ByteArrayOutputStream output, boolean needCompress) + throws Exception { + BufferedImage image = createImage(content, logoImg, needCompress); + ImageIO.write(image, FORMAT_NAME, output); + } + + /** + * @param content + * @param logoImg + * @param output 浜岃繘鍒惰緭鍑烘祦 + * @param needCompress + * @throws Exception + */ + public void encodeDeleteWhite(String content, InputStream logoImg, ByteArrayOutputStream output, boolean needCompress) + throws Exception { + BufferedImage image = createImageDeleteWhite(content, logoImg, needCompress); + ImageIO.write(image, FORMAT_NAME, output); + } + + /** + * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:38:02 + * + * @param content 浜岀淮鐮佸唴瀹� + * @param output 杈撳嚭娴� + * @throws Exception void TODO 鐢熸垚涓嶅甫Logo鐨勪簩缁寸爜锛屽苟杈撳嚭鍒版寚瀹氱殑杈撳嚭娴� + */ + public void encode(String content, OutputStream output) throws Exception { + encode(content, null, output, false); + } + + /** + * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:39:10 + * + * @param file 浜岀淮鐮� + * @return 杩斿洖瑙f瀽寰楀埌鐨勪簩缁寸爜鍐呭 + * @throws Exception String TODO 浜岀淮鐮佽В鏋� + */ + public String decode(File file) throws Exception { + BufferedImage image; + image = ImageIO.read(file); + if (image == null) { + return null; + } + BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(image); + BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); + Result result; + Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>(); + hints.put(DecodeHintType.CHARACTER_SET, CHARSET); + result = new MultiFormatReader().decode(bitmap, hints); + String resultStr = result.getText(); + return resultStr; + } + + /** + * user: Rex date: 2016骞�12鏈�29鏃� 涓婂崍12:39:48 + * + * @param path 浜岀淮鐮佸瓨鍌ㄤ綅缃� + * @return 杩斿洖瑙f瀽寰楀埌鐨勪簩缁寸爜鍐呭 + * @throws Exception String TODO 浜岀淮鐮佽В鏋� + */ + public String decode(String path) throws Exception { + return decode(new File(path)); + } + + private static BitMatrix deleteWhite(BitMatrix matrix) { int[] rec = matrix.getEnclosingRectangle(); int resWidth = rec[2] + 1; int resHeight = rec[3] + 1; - + BitMatrix resMatrix = new BitMatrix(resWidth, resHeight); resMatrix.clear(); for (int i = 0; i < resWidth; i++) { diff --git a/src/main/java/org/yeshi/utils/annotation/MapUtil.java b/src/main/java/org/yeshi/utils/annotation/MapUtil.java index 6c8d79a..ecb8f87 100644 --- a/src/main/java/org/yeshi/utils/annotation/MapUtil.java +++ b/src/main/java/org/yeshi/utils/annotation/MapUtil.java @@ -1,36 +1,66 @@ package org.yeshi.utils.annotation; +import com.google.gson.Gson; +import net.sf.json.JSONObject; +import org.yeshi.utils.StringUtil; + +import java.io.UnsupportedEncodingException; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.util.Properties; public class MapUtil { - public static Object parseMap(Class<?> clazz, Properties ps) { - System.out.println(clazz.getName()); - Object target = null; - try { - Class clz = Class.forName(clazz.getName()); - target = clz.newInstance(); - } catch (Exception e) { - e.printStackTrace(); - } - Field[] fields = clazz.getDeclaredFields(); - for (Field fd : fields) { - fd.setAccessible(true); - Annotation[] as = fd.getAnnotations(); - for (Annotation a : as) { - if (a instanceof Map) { - Map c = (Map) a; - try { - fd.set(target, new String(ps.getProperty(c.value()).getBytes("ISO-8859-1"), "UTF-8")); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - } - return target; - } + public static Object parseMap(Class<?> clazz, Properties ps) { + System.out.println(clazz.getName()); + Object target = null; + try { + Class clz = Class.forName(clazz.getName()); + target = clz.newInstance(); + } catch (Exception e) { + e.printStackTrace(); + } + Field[] fields = clazz.getDeclaredFields(); + for (Field fd : fields) { + fd.setAccessible(true); + Annotation[] as = fd.getAnnotations(); + for (Annotation a : as) { + if (a instanceof Map) { + Map c = (Map) a; + try { + fd.set(target, new String(ps.getProperty(c.value()).getBytes("ISO-8859-1"), "UTF-8")); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } + return target; + } + + + public static Object parseMapByJson(Class<?> clazz, Properties ps, String encoding) { + if (StringUtil.isNullOrEmpty(encoding)) { + encoding = "ISO-8859-1"; + } + JSONObject json = new JSONObject(); + Field[] fields = clazz.getDeclaredFields(); + for (Field fd : fields) { + fd.setAccessible(true); + Annotation[] as = fd.getAnnotations(); + for (Annotation a : as) { + if (a instanceof Map) { + Map c = (Map) a; + try { + json.put(fd.getName(), new String(ps.getProperty(c.value()).getBytes(encoding), "UTF-8")); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + } + } + } + return new Gson().fromJson(json.toString(), clazz); + } } diff --git a/src/main/java/org/yeshi/utils/generater/GeneraterManager.java b/src/main/java/org/yeshi/utils/generater/GeneraterManager.java index 87d4a31..d0b4547 100644 --- a/src/main/java/org/yeshi/utils/generater/GeneraterManager.java +++ b/src/main/java/org/yeshi/utils/generater/GeneraterManager.java @@ -317,7 +317,7 @@ * @date 18:25 2021/10/13 * @param: entityName **/ - private static String getHtmlNameFromEntityName(String entityName) { + public static String getHtmlNameFromEntityName(String entityName) { StringBuffer sb = new StringBuffer(); StringBuffer buffer = null; for (int i = 0; i < entityName.length(); i++) { diff --git a/src/main/java/org/yeshi/utils/generater/GeneraterManagerV2.java b/src/main/java/org/yeshi/utils/generater/GeneraterManagerV2.java index 99af5a4..2f70d3b 100644 --- a/src/main/java/org/yeshi/utils/generater/GeneraterManagerV2.java +++ b/src/main/java/org/yeshi/utils/generater/GeneraterManagerV2.java @@ -101,21 +101,24 @@ } - public void createAdminVO() throws Exception { - if (StringUtil.isNullOrEmpty(config.getService().getAdminVOPackage())) { - throw new Exception("灏氭湭閰嶇疆AdminVO"); + public AdminVOVO createAdminVO() throws Exception { + if (StringUtil.isNullOrEmpty(config.getAdmin().getController().getAdminVOPackage())) { + return null; } - String name = NameUtil.getDefaultExceptionName(config.getEntity()); - String path = getDirPath(config.getService().getAdminVOPackage()); + String name = NameUtil.getDefaultAdminVOName(config.getEntity()); + String path = getDirPath(config.getAdmin().getController().getAdminVOPackage()); try { - AdminVOVO vo = new AdminVOVO.Builder().setEntity(config.getEntity()).setPackageName(config.getService().getAdminVOPackage()).build(); + AdminVOVO vo = new AdminVOVO.Builder().setEntity(config.getEntity()).setPackageName(config.getAdmin().getController().getAdminVOPackage()).build(); String result = GeneraterUtil.createAdminVO(vo); //淇濆瓨 saveFile(result, new File(path, name + ".java").getAbsolutePath()); + return vo; } catch (Exception e) { e.printStackTrace(); } + + return null; } @@ -247,9 +250,6 @@ } } - if (config.getService().getAdminVOPackage() != null) { - createAdminVO(); - } QueryVO queryVO = createQuery(config.getService().getQueryPackage()); @@ -315,13 +315,18 @@ query = new ClassInfo(queryName, config.getService().getQueryPackage() + "." + queryName); } + AdminVOVO adminVOVO = null; + if (config.getAdmin().getController().getAdminVOPackage() != null) { + adminVOVO = createAdminVO(); + } + String path = getDirPath(config.getAdmin().getController().getPkg()); AdminGeneraterInfo generaterInfo = new AdminGeneraterInfo.Builder().setEntityClass(config.getEntity()).setAdminData(config.getAdmin()).build(); - AdminControllerInfoVO vo = new AdminControllerInfoVO.Builder().setAdminInfo(generaterInfo).setPackageName(generaterInfo.getControllerData().getPkg()).setQueryVO(query).setService(service).build(); + AdminControllerInfoVO vo = new AdminControllerInfoVO.Builder().setAdminVO(adminVOVO == null ? null : new ClassInfo(adminVOVO.getName(), adminVOVO.getPackageName() + "." + adminVOVO.getName())).setAdminInfo(generaterInfo).setPackageName(generaterInfo.getControllerData().getPkg()).setQueryVO(query).setService(service).build(); String controllerName = vo.getControllerName(); //鐢熸垚controller String result = GeneraterUtil.createAdminController(vo); diff --git a/src/main/java/org/yeshi/utils/generater/TestEntity3.java b/src/main/java/org/yeshi/utils/generater/TestEntity3.java index 275d9db..2303e3d 100644 --- a/src/main/java/org/yeshi/utils/generater/TestEntity3.java +++ b/src/main/java/org/yeshi/utils/generater/TestEntity3.java @@ -15,6 +15,7 @@ @Table("table_test") public class TestEntity3 { @Id + @Column(name = "id") private String id; @Column(name = "nick_name") diff --git a/src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java b/src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java index 680df76..f35f6cb 100644 --- a/src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java +++ b/src/main/java/org/yeshi/utils/generater/entity/admin/AdminGeneraterInfo.java @@ -315,14 +315,16 @@ FormComponentImg formComponentImg = (FormComponentImg) component; params.put("width", formComponentImg.getWidth() == null ? -1 : formComponentImg.getWidth()); params.put("height", formComponentImg.getHeight() == null ? -1 : formComponentImg.getHeight()); - params.put("uploadApi", formComponentImg.getApi().getPath()); - if (formComponentImg.getApi().getParams() != null) { - List<KeyValue> list = new ArrayList<>(); - for (Iterator<String> its = formComponentImg.getApi().getParams().keySet().iterator(); its.hasNext(); ) { - String key = its.next(); - list.add(new KeyValue(key, formComponentImg.getApi().getParams().get(key) + "")); + if( formComponentImg.getApi()!=null) { + params.put("uploadApi", formComponentImg.getApi().getPath()); + if (formComponentImg.getApi().getParams() != null) { + List<KeyValue> list = new ArrayList<>(); + for (Iterator<String> its = formComponentImg.getApi().getParams().keySet().iterator(); its.hasNext(); ) { + String key = its.next(); + list.add(new KeyValue(key, formComponentImg.getApi().getParams().get(key) + "")); + } + params.put("uploadApiParams", list); } - params.put("uploadApiParams", list); } } else if (component instanceof FormComponentSwitch) { rowData.setType(Switch.class.getSimpleName()); diff --git a/src/main/java/org/yeshi/utils/generater/mybatis/ColumnParseUtil.java b/src/main/java/org/yeshi/utils/generater/mybatis/ColumnParseUtil.java index 5d52228..b0df6b0 100644 --- a/src/main/java/org/yeshi/utils/generater/mybatis/ColumnParseUtil.java +++ b/src/main/java/org/yeshi/utils/generater/mybatis/ColumnParseUtil.java @@ -87,4 +87,25 @@ } } + + public static String getMysqlType(String type) { + if (type.endsWith("java.lang.Long")) { + return "bigint"; + } else if (type.endsWith("java.lang.Integer")) { + return "int"; + } else if (type.endsWith("java.lang.String")) { + return "varchar"; + } else if (type.endsWith("java.lang.Boolean")) { + return "tinyint"; + } else if (type.endsWith("java.math.BigDecimal")) { + return "decimal"; + } else if (type.endsWith("java.util.Date")) { + return "datetime"; + } else if (type.endsWith("java.lang.Double")) { + return "double"; + } else { + return "varchar"; + } + } + } diff --git a/src/main/java/org/yeshi/utils/generater/mybatis/MyBatisMapperUtil.java b/src/main/java/org/yeshi/utils/generater/mybatis/MyBatisMapperUtil.java index e8427d3..e6e7c37 100644 --- a/src/main/java/org/yeshi/utils/generater/mybatis/MyBatisMapperUtil.java +++ b/src/main/java/org/yeshi/utils/generater/mybatis/MyBatisMapperUtil.java @@ -14,6 +14,7 @@ import org.dom4j.DocumentHelper; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; +import org.springframework.data.annotation.Id; import org.yeshi.utils.generater.entity.MybatisColumnData; public class MyBatisMapperUtil { @@ -409,6 +410,101 @@ } } + + public static String createSQL(Class<?> clz){ + List<AttributeColumnMap> keysList = new ArrayList<>(); + Field[] fields = clz.getDeclaredFields(); + for (Field fd : fields) { + Annotation[] as = fd.getAnnotations(); + AttributeColumnMap columnMap=null; + for (Annotation a : as) { + if (a instanceof Column) { + Column c = (Column) a; + columnMap = new AttributeColumnMap(fd.getName(), c.name(), fd.getType().getName()); + columnMap.length = c.length(); + break; + } + } + for (Annotation a : as) { + if(a instanceof Id){ + // 涓婚敭 + columnMap.mainKey = true; + break; + } + } + if(columnMap!=null){ + keysList.add(columnMap); + } + } + String tableName = ""; + Annotation[] as = clz.getAnnotations(); + for (Annotation a : as) { + if (a instanceof Table) { + Table t = (Table) a; + tableName = t.value(); + } + } + + StringBuffer buffer=new StringBuffer(); + buffer.append("create table `").append(tableName).append("`(\n"); + for(AttributeColumnMap columnMap:keysList){ + String mysqlType = ColumnParseUtil.getMysqlType(columnMap.type); + + buffer.append("\t`").append(columnMap.column).append("`"); + + + if(columnMap.mainKey) { + if(mysqlType.equalsIgnoreCase("bigint")) { + buffer.append(" bigint(20) "); + buffer.append(" unsigned NOT NULL AUTO_INCREMENT "); + }else if(mysqlType.equalsIgnoreCase("varchar")){ + buffer.append(" varchar(32) "); + buffer.append(" NOT NULL "); + } + buffer.append(",\n"); + buffer.append("\tPRIMARY KEY (`"+columnMap.column+"`),\n"); + }else{ + String lengthStr=null; + int length = columnMap.length; + switch(mysqlType){ + case "varchar": + if(length<=0){ + length = 32; + } + lengthStr="("+length+")"; + break; + case "int": + if(length<=0){ + length = 11; + } + lengthStr="("+length+")"; + break; + case "datetime": + lengthStr=""; + break; + + case "decimal": + if(length<=0){ + length = 8; + } + lengthStr="("+length+",2)"; + break; + default: + lengthStr=""; + } + buffer.append(mysqlType).append(lengthStr).append(" DEFAULT NULL,\n"); + } + } + + String fs=buffer.toString().trim(); + if(fs.endsWith(",")){ + fs = fs.substring(0,fs.length()-1); + } + fs+= "\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"; + return fs; + } + + private static AttributeColumnMap getAttributeColumnMapByAttribute(String attributeName, List<AttributeColumnMap> list) { for (AttributeColumnMap acm : list) @@ -434,6 +530,8 @@ String attribute; String column; String type; + boolean mainKey; + int length; public AttributeColumnMap(String attribute, String column, String type) { this.attribute = attribute; @@ -441,6 +539,7 @@ this.type = type; } + public AttributeColumnMap() { } diff --git a/src/main/java/org/yeshi/utils/generater/util/NameUtil.java b/src/main/java/org/yeshi/utils/generater/util/NameUtil.java index 4c820af..3349fa8 100644 --- a/src/main/java/org/yeshi/utils/generater/util/NameUtil.java +++ b/src/main/java/org/yeshi/utils/generater/util/NameUtil.java @@ -24,6 +24,10 @@ return entity.getSimpleName() + "Exception"; } + public static String getDefaultAdminVOName(Class entity) { + return entity.getSimpleName() + "AdminVO"; + } + public static String getDefaultQueryName(Class entity) { return entity.getSimpleName() + "Query"; } diff --git a/src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java b/src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java index 124e173..f889bf7 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java +++ b/src/main/java/org/yeshi/utils/generater/vo/admin/controller/AdminControllerInfoVO.java @@ -18,6 +18,7 @@ private ClassInfo entity; private ClassInfo service; private ClassInfo query; + private ClassInfo adminVO; private boolean jsonp; private boolean responseBody; @@ -43,6 +44,8 @@ private boolean responseBody; + private ClassInfo adminVO; + public Builder setAdminInfo(AdminGeneraterInfo generaterInfo) { this.generaterInfo = generaterInfo; @@ -61,6 +64,11 @@ public Builder setService(ClassInfo service) { this.service = service; + return this; + } + + public Builder setAdminVO(ClassInfo adminVO) { + this.adminVO = adminVO; return this; } @@ -90,8 +98,9 @@ vo.setPackageName(packageName); vo.setQueryVO(query); vo.setService(service); + vo.setAdminVO(adminVO); vo.setAdd(generaterInfo.getAddFormRows() != null && generaterInfo.getAddFormRows().size() > 0); - vo.setUpdate(generaterInfo.getUpdateFormRows() != null && generaterInfo.getUpdateFormRows().size() > 0 ); + vo.setUpdate(generaterInfo.getUpdateFormRows() != null && generaterInfo.getUpdateFormRows().size() > 0); vo.setDelete(true); vo.setResponseBody(generaterInfo.getControllerData().isResponseBody()); @@ -202,4 +211,12 @@ public void setResponseBody(boolean responseBody) { this.responseBody = responseBody; } + + public ClassInfo getAdminVO() { + return adminVO; + } + + public void setAdminVO(ClassInfo adminVO) { + this.adminVO = adminVO; + } } diff --git a/src/main/java/org/yeshi/utils/generater/vo/admin/page/ListInfoVO.java b/src/main/java/org/yeshi/utils/generater/vo/admin/page/ListInfoVO.java index 757c026..0f16264 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/admin/page/ListInfoVO.java +++ b/src/main/java/org/yeshi/utils/generater/vo/admin/page/ListInfoVO.java @@ -1,6 +1,7 @@ package org.yeshi.utils.generater.vo.admin.page; import org.yeshi.utils.StringUtil; +import org.yeshi.utils.generater.GeneraterManager; import org.yeshi.utils.generater.annotation.admin.form.Select; import org.yeshi.utils.generater.annotation.admin.form.Text; import org.yeshi.utils.generater.annotation.admin.form.TextArea; @@ -54,11 +55,11 @@ ListInfoVO vo = new ListInfoVO(); vo.setListApi(generaterInfo.getControllerData().getMapping() + "/list"); if (generaterInfo.getAddFormRows() != null && generaterInfo.getAddFormRows().size() > 0) { - vo.setAddPagePath(ColumnUtil.getColumnFromProperty(generaterInfo.getEntity().getSimpleName()) + "_add.html"); + vo.setAddPagePath(GeneraterManager.getHtmlNameFromEntityName(generaterInfo.getEntity().getSimpleName()) + "_add.html"); } if (generaterInfo.getUpdateFormRows() != null && generaterInfo.getUpdateFormRows().size() > 0) { - vo.setUpdatePagePath(ColumnUtil.getColumnFromProperty(generaterInfo.getEntity().getSimpleName()) + "_update.html"); + vo.setUpdatePagePath(GeneraterManager.getHtmlNameFromEntityName(generaterInfo.getEntity().getSimpleName()) + "_update.html"); } vo.setSearchFormRows(generaterInfo.getSearchFormRows()); vo.setShowFileds(generaterInfo.getShowDataList()); diff --git a/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java index 3374de1..e78d87f 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java +++ b/src/main/java/org/yeshi/utils/generater/vo/service/ServiceInfoVO.java @@ -1,6 +1,5 @@ package org.yeshi.utils.generater.vo.service; -import org.springframework.stereotype.Service; import org.yeshi.utils.StringUtil; import org.yeshi.utils.bean.BeanUtil; import org.yeshi.utils.generater.entity.BaseData; @@ -18,7 +17,7 @@ private ClassInfo service; //鏂规硶鍒楄〃 private List<ServiceMetodInfoVO> metodInfoList; - private ClassInfo query; + private ClassInfo query;; public static class Builder { @@ -27,6 +26,7 @@ private ClassInfo service; private ClassInfo query; private ClassInfo exception; + public Builder setEntity(Class entity) { @@ -53,6 +53,7 @@ this.exception = exception; return this; } + private String getRemarksLine(String content) { return "\t * " + content + "\n"; @@ -210,4 +211,5 @@ public void setImportList(List<String> importList) { this.importList = importList; } + } diff --git a/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java b/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java index c7bffe1..f9a2b7d 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java +++ b/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/XmlConfigParseUtil.java @@ -109,7 +109,7 @@ data.setInterPackage(getNodeAttributeValue(node, "interPackage")); data.setImplPackage(getNodeAttributeValue(node, "implPackage")); data.setQueryPackage(getNodeAttributeValue(node, "queryPackage")); - data.setAdminVOPackage(getNodeAttributeValue(node, "adminVOPackage")); + NodeList nodeList = node.getChildNodes(); for (int i = 0; i < nodeList.getLength(); i++) { @@ -208,6 +208,7 @@ adminControllerData.setMapping(getNodeAttributeValue(node1, "mapping")); adminControllerData.setName(getNodeAttributeValue(node1, "name")); adminControllerData.setPkg(getNodeAttributeValue(node1, "package")); + adminControllerData.setAdminVOPackage(getNodeAttributeValue(node1, "adminVOPackage")); adminControllerData.setResponseBody(Boolean.parseBoolean(getNodeAttributeValue(node1, "responseBody"))); adminData.setController(adminControllerData); } diff --git a/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/admin/AdminControllerData.java b/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/admin/AdminControllerData.java index 2a81800..71b40fb 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/admin/AdminControllerData.java +++ b/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/admin/AdminControllerData.java @@ -16,6 +16,8 @@ //鎺ュ彛鏄惁jsonp private boolean jsonp; + private String adminVOPackage; + public String getPkg() { return pkg; @@ -56,4 +58,12 @@ public void setJsonp(boolean jsonp) { this.jsonp = jsonp; } + + public String getAdminVOPackage() { + return adminVOPackage; + } + + public void setAdminVOPackage(String adminVOPackage) { + this.adminVOPackage = adminVOPackage; + } } diff --git a/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/service/ServiceData.java b/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/service/ServiceData.java index 3b1c4d4..e4b5514 100644 --- a/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/service/ServiceData.java +++ b/src/main/java/org/yeshi/utils/generater/vo/xmlconfig/service/ServiceData.java @@ -12,7 +12,7 @@ private String queryPackage; private ExceptionData exception; - private String adminVOPackage; + public String getInterPackage() { return interPackage; @@ -44,13 +44,5 @@ public void setQueryPackage(String queryPackage) { this.queryPackage = queryPackage; - } - - public String getAdminVOPackage() { - return adminVOPackage; - } - - public void setAdminVOPackage(String adminVOPackage) { - this.adminVOPackage = adminVOPackage; } } diff --git a/src/main/java/org/yeshi/utils/mq/TDMQUtil.java b/src/main/java/org/yeshi/utils/mq/TDMQUtil.java index 11902f3..92b42bc 100644 --- a/src/main/java/org/yeshi/utils/mq/TDMQUtil.java +++ b/src/main/java/org/yeshi/utils/mq/TDMQUtil.java @@ -2,6 +2,8 @@ import com.qcloud.cmq.Account; import com.qcloud.cmq.Message; +import com.qcloud.cmq.Queue; +import com.qcloud.cmq.entity.CmqResponse; import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.common.profile.ClientProfile; @@ -10,6 +12,7 @@ import com.tencentcloudapi.tdmq.v20200217.models.*; import java.util.Arrays; +import java.util.Date; import java.util.List; //鑵捐CMQ娑堟伅 @@ -204,6 +207,21 @@ public String sendMsg(String queueName, String msg) { return this.sendMsg(queueName, msg, 0L); + } + + // 鍙戦�佹秷鎭� + public List<CmqResponse> batchSendMsg(String queueName, List<String> msgList, long delaySeconds) throws Exception { + Queue queue = account.getQueue(queueName); + if (delaySeconds > 0) { + return queue.batchSend(msgList, (int) delaySeconds); + } else { + return queue.batchSend(msgList); + } + } + + // 鍙戦�佹秷鎭� + public List<CmqResponse> batchSendMsg(String queueName, List<String> msgList) throws Exception { + return batchSendMsg(queueName, msgList, 0); } @@ -451,32 +469,32 @@ public static void main(String[] args) { TDMQUtil.getInstance().init("AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25", "xhCSUHo55oHUQ6XicFcmfIgspX0EEzWo", true); - String queueName = "test1"; - String topicName = "topic_test"; - - //鍒涘缓 - TDMQUtil.getInstance().createQueue(queueName); - - //鍙戦�佹秷鎭� - TDMQUtil.getInstance().sendMsg(queueName, "娴嬭瘯娑堟伅"); - - //鍒涘缓涓婚 - TDMQUtil.getInstance().createTopic(topicName); - - //鍒涘缓璁㈤槄 - TDMQUtil.getInstance().subscribeTopic(topicName, topicName + queueName, queueName); - - //鍙戦�佽闃呮秷鎭� - TDMQUtil.getInstance().publishTopicMessage(topicName, "涓婚娑堟伅"); + String queueName = "makemoney-goldcorn-settle"; +// String topicName = "topic_test"; +// +// //鍒涘缓 +// TDMQUtil.getInstance().createQueue(queueName); +// +// //鍙戦�佹秷鎭� +// TDMQUtil.getInstance().sendMsg(queueName, "娴嬭瘯娑堟伅"); +// +// //鍒涘缓涓婚 +// TDMQUtil.getInstance().createTopic(topicName); +// +// //鍒涘缓璁㈤槄 +// TDMQUtil.getInstance().subscribeTopic(topicName, topicName + queueName, queueName); +// +// //鍙戦�佽闃呮秷鎭� +// TDMQUtil.getInstance().publishTopicMessage(topicName, "涓婚娑堟伅"); //娑堣垂娑堟伅 - try { - Message message = TDMQUtil.getInstance().recieveMsg(queueName); - System.out.println("鎺ュ彈鍒扮殑娑堟伅:" + message.msgBody); - TDMQUtil.getInstance().deleteMsg(queueName, message.receiptHandle); - } catch (Exception e) { - e.printStackTrace(); - } +// try { +// Message message = TDMQUtil.getInstance().recieveMsg(queueName); +// System.out.println("鎺ュ彈鍒扮殑娑堟伅:" + message.msgBody); +// TDMQUtil.getInstance().deleteMsg(queueName, message.receiptHandle); +// } catch (Exception e) { +// e.printStackTrace(); +// } try { List<Message> messages = TDMQUtil.getInstance().recieveMsg(10, queueName); @@ -489,14 +507,14 @@ } - //鍒犻櫎璁㈤槄 - TDMQUtil.getInstance().deleteSubscribeTopic(topicName, topicName + queueName); - - //鍒犻櫎涓婚 - TDMQUtil.getInstance().deleteTopic(topicName); - - //鍒犻櫎闃熷垪 - TDMQUtil.getInstance().deleteQueue(queueName); +// //鍒犻櫎璁㈤槄 +// TDMQUtil.getInstance().deleteSubscribeTopic(topicName, topicName + queueName); +// +// //鍒犻櫎涓婚 +// TDMQUtil.getInstance().deleteTopic(topicName); +// +// //鍒犻櫎闃熷垪 +// TDMQUtil.getInstance().deleteQueue(queueName); } diff --git a/src/main/java/org/yeshi/utils/tencentcloud/COSManager.java b/src/main/java/org/yeshi/utils/tencentcloud/COSManager.java index 8ac6606..66958ff 100644 --- a/src/main/java/org/yeshi/utils/tencentcloud/COSManager.java +++ b/src/main/java/org/yeshi/utils/tencentcloud/COSManager.java @@ -172,7 +172,7 @@ return false; } - public boolean deleteFile(String url) { + public boolean deleteFileByUrl(String url) { String key = url.replace(String.format("https://%s.file.myqcloud.com", totalBucketName), ""); try { cosClient.deleteObject(totalBucketName, key); @@ -182,6 +182,15 @@ return false; } + public boolean deleteFileByKey(String key) { + try { + cosClient.deleteObject(totalBucketName, key); + return true; + } catch (Exception e) { + } + return false; + } + public static String getUploadVideoUrl(String name) { if (name != null && !name.startsWith("/")) name = "/" + name; diff --git a/src/main/java/org/yeshi/utils/wx/WXAppLoginUtil.java b/src/main/java/org/yeshi/utils/wx/WXAppLoginUtil.java index 2d18928..ba4d186 100644 --- a/src/main/java/org/yeshi/utils/wx/WXAppLoginUtil.java +++ b/src/main/java/org/yeshi/utils/wx/WXAppLoginUtil.java @@ -1,7 +1,6 @@ package org.yeshi.utils.wx; -import org.json.JSONException; -import org.json.JSONObject; +import net.sf.json.JSONObject; import org.yeshi.utils.HttpUtil; import org.yeshi.utils.StringUtil; import org.yeshi.utils.entity.wx.WeiXinUser; @@ -23,12 +22,8 @@ public static WeiXinUser getWeiXinUser(WeiXinUserParam param) { String result = HttpUtil.getAsString(String.format(weiXinUrl2, param.getAccessToken(), param.getOpenId()), "ISO-8859-1", "UTF-8"); - JSONObject jsonObject = null; - try { - jsonObject = new JSONObject(result); - } catch (JSONException e) { - e.printStackTrace(); - } + JSONObject jsonObject = JSONObject.fromObject(result); + String nickname = jsonObject.optString("nickname"); String province = jsonObject.optString("province"); String city = jsonObject.optString("city"); @@ -64,12 +59,8 @@ private static WeiXinUserParam parseWeiXinUserParam(String result) { WeiXinUserParam weiXinUserParam = new WeiXinUserParam(); - JSONObject jsonObject = null; - try { - jsonObject = new JSONObject(result); - } catch (JSONException e) { - e.printStackTrace(); - } + JSONObject jsonObject = JSONObject.fromObject(result); + String openId = jsonObject.optString("openid"); if ("".equals(openId)) { return null; diff --git a/src/main/resources/generater/admin/add.ftl b/src/main/resources/generater/admin/add.ftl index 5c2a16e..a9c8825 100644 --- a/src/main/resources/generater/admin/add.ftl +++ b/src/main/resources/generater/admin/add.ftl @@ -8,13 +8,16 @@ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/> - <link rel="stylesheet" href="../css/font.css"> - <link rel="stylesheet" href="../css/xadmin.css"> - <script type="text/javascript" src="../lib/layui/layui.js" charset="utf-8"></script> - <script type="text/javascript" src="../js/xadmin.js"></script> - <script src="../js/vue.min.js" type="text/javascript" charset="utf-8"></script> - <script src="../js/http.js" type="text/javascript" charset="utf-8"></script> - <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> + <link rel="stylesheet" href="/admin/css/font.css"> + <link rel="stylesheet" href="/admin/css/xadmin.css"> + <link rel="stylesheet" href="/admin/css/theme3049.min.css"> + + <script src="/admin/lib/layui/layui.js" charset="utf-8"></script> + <script src="/admin/js/vue.min.js" type="text/javascript" charset="utf-8"></script> + <script src="/admin/js/xadmin.js" type="text/javascript"></script> + <script src="/admin/js/http.js" type="text/javascript" charset="utf-8"></script> + <script src="/admin/js/jquery.min.js" type="text/javascript"></script> + <script src="/admin/js/utils.js"></script> <!-- 璁㊣E8/9鏀寔濯掍綋鏌ヨ锛屼粠鑰屽吋瀹规爡鏍� --> <!--[if lt IE 9]> <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> @@ -83,7 +86,7 @@ auto: false, accept: 'images', acceptMime: 'image/*', - field: "file_${value.key}", + field: "file_url", choose: function (obj) { //灏嗘瘡娆¢�夋嫨鐨勬枃浠惰拷鍔犲埌鏂囦欢闃熷垪 var files = obj.pushFile(); @@ -106,10 +109,10 @@ if (res.code == 0) { //鑾峰彇閾炬帴 $("input[name='${value.key}']").val(res.data.url); - delete chooseImage["${value.key}"]; - if (Object.keys(chooseImage).length == 0) { + delete uploadTool.chooseImage["${value.key}"]; + if (Object.keys(uploadTool.chooseImage).length == 0) { //鍏ㄩ儴涓婁紶鎴愬姛 - callback(); + uploadTool.callback(true); } } else { layer.msg(res.msg); @@ -125,7 +128,7 @@ }, upload: function (result) { - if (this.uploadArray.length > 0) { + if (this.uploadArray.length > 0 && Object.keys(this.chooseImage).length > 0) { this.callback = result; //鍚屾椂涓婁紶 for (var i = 0; i < this.uploadArray.length; i++) { @@ -159,14 +162,13 @@ uploadTool.init(upload); <#list rowsList as row > - <#if (row.type=="Text" && (row.params.inputType=="DATE"||row.params.inputType=="DATETIME"))> + <#if (row.type=="Text" && (row.params.inputType=="DATE"||row.params.inputType=="DATETIME"))> laydate.render({ - elem: "intput[name=${row.key}]", //鎸囧畾鍏冪礌 - type: ${row.params.inputType?lower_case} + elem: "input[name=${row.key}]", //鎸囧畾鍏冪礌 + type: '${row.params.inputType?lower_case}' }); - </#if> + </#if> </#list> - //鐩戝惉鎻愪氦 form.on('submit(add)', @@ -185,7 +187,12 @@ data.field[onkeys[0]][onkeys[1]] = value; } } - uploadTool.upload(function () { + uploadTool.upload(function (hasFile) { + if (hasFile) { + //浠庢柊鎻愪氦琛ㄥ崟 + $("button[lay-filter=add]").click(); + return; + } //鍙戝紓姝ワ紝鎶婃暟鎹彁浜ょ粰php ksapp.post('${addApi}', data.field, function (res) { if (res.code == 0) { diff --git a/src/main/resources/generater/admin/adminController.template b/src/main/resources/generater/admin/adminController.template index 4a64762..eee5247 100644 --- a/src/main/resources/generater/admin/adminController.template +++ b/src/main/resources/generater/admin/adminController.template @@ -18,6 +18,10 @@ import ${entity.clazz}; import ${service.clazz}; import ${query.clazz}; +<#if adminVO??> +import ${adminVO.clazz}; +</#if> + <#if responseBody> <#else> import java.io.PrintWriter; @@ -82,7 +86,18 @@ <#if add> ${responseBody?string("@ResponseBody","")} @RequestMapping("add") - public ${responseBody?string("String","void")} add(${entity.name} bean, HttpSession session${jsonp?string(", String callback","")}${responseBody?string("",",PrintWriter out")}) { + + <#if adminVO??> + public ${responseBody?string("String","void")} add(${adminVO.name} vo,AcceptAdminData acceptAdminData${jsonp?string(", String callback","")}${responseBody?string("",",PrintWriter out")}) { + try{ + ${serviceObjName}.add(vo.toEntity(acceptAdminData.getSystem())); + <@print data="JsonUtil.loadTrueResult(\"\")" > </@print> + }catch(Exception e){ + <@print data="JsonUtil.loadFalseResult(e.getMessage())" > </@print> + } + } + <#else> + public ${responseBody?string("String","void")} add(${entity.name} bean, AcceptAdminData acceptAdminData${jsonp?string(", String callback","")}${responseBody?string("",",PrintWriter out")}) { try{ ${serviceObjName}.add(bean); <@print data="JsonUtil.loadTrueResult(\"\")" > </@print> @@ -91,10 +106,11 @@ } } </#if> + </#if> ${responseBody?string("@ResponseBody","")} @RequestMapping("get") - public ${responseBody?string("String","void")} get(${identifyIdType} id, HttpSession session${jsonp?string(", String callback","")}${responseBody?string("",",PrintWriter out")}) { + public ${responseBody?string("String","void")} get(${identifyIdType} id, AcceptAdminData acceptAdminData${jsonp?string(", String callback","")}${responseBody?string("",",PrintWriter out")}) { ${entity.name} entity = ${serviceObjName}.get(id); if (entity !=null){ <@print data="JsonUtil.loadTrueResult(entity)" > </@print> @@ -107,7 +123,23 @@ <#if update> ${responseBody?string("@ResponseBody","")} @RequestMapping("update") - public ${responseBody?string("String","void")} update(${entity.name} bean, HttpSession session${jsonp?string(", String callback","")}${responseBody?string("",",PrintWriter out")}) { + <#if adminVO??> + + public ${responseBody?string("String","void")} update( ${adminVO.name} vo ,AcceptAdminData acceptAdminData${jsonp?string(", String callback","")}${responseBody?string("",",PrintWriter out")}) { + if (vo.getId() == null) { + <@print data="JsonUtil.loadFalseResult(\"ID涓嶈兘涓虹┖\")" > </@print> + } + try{ + ${serviceObjName}.update(vo.toEntity(null)); + }catch(Exception e){ + <@print data="JsonUtil.loadFalseResult(e.getMessage())" > </@print> + } + <@print data="JsonUtil.loadTrueResult(\"\")" > </@print> + } + + <#else> + + public ${responseBody?string("String","void")} update( ${entity.name} bean , AcceptAdminData acceptAdminData${jsonp?string(", String callback","")}${responseBody?string("",",PrintWriter out")}) { if (bean.getId() == null) { <@print data="JsonUtil.loadFalseResult(\"ID涓嶈兘涓虹┖\")" > </@print> } @@ -119,6 +151,7 @@ <@print data="JsonUtil.loadTrueResult(\"\")" > </@print> } </#if> + </#if> } diff --git a/src/main/resources/generater/admin/adminVO.template b/src/main/resources/generater/admin/adminVO.template index 887ab7a..3f0b18d 100644 --- a/src/main/resources/generater/admin/adminVO.template +++ b/src/main/resources/generater/admin/adminVO.template @@ -9,8 +9,6 @@ <#list columns as column > <#if column.type=='Date'> private String ${column.columnName}; - <#elseif column.type=='Boolean'> - private String ${column.columnName}; <#else> private ${column.type} ${column.columnName}; </#if> @@ -21,8 +19,6 @@ <#list columns as column > <#if column.type=='Date'> entity.${column.setColumnMehtodName}(new Date(TimeUtil.convertToTimeTemp(${column.columnName}, "yyyy-MM-dd HH:mm:ss"))); - <#elseif column.type=='Boolean'> - entity.${column.setColumnMehtodName}("on".equalsIgnoreCase(${column.columnName}) ? true : false); <#else> entity.${column.setColumnMehtodName}(${column.columnName}); </#if> @@ -36,8 +32,6 @@ <#list columns as column > <#if column.type=='Date'> vo.${column.setColumnMehtodName}(TimeUtil.getGernalTime(entity.${column.columnMehtod}.getTime(), "yyyy-MM-dd HH:mm:ss")); - <#elseif column.type=='Boolean'> - vo.${column.setColumnMehtodName}(entity.${column.columnMehtod} ? "on" : null); <#else> vo.${column.setColumnMehtodName}(entity.${column.columnMehtod}); </#if> @@ -47,14 +41,6 @@ <#list columns as column > <#if column.type=='Date'> - public String ${column.columnMehtod} { - return ${column.columnName}; - } - - public void ${column.setColumnMehtodName}(String ${column.columnName}) { - this.${column.columnName} = ${column.columnName}; - } - <#elseif column.type=='Boolean'> public String ${column.columnMehtod} { return ${column.columnName}; } diff --git a/src/main/resources/generater/admin/form/checkBox.ftl b/src/main/resources/generater/admin/form/checkBox.ftl index 12488e2..516a5f6 100644 --- a/src/main/resources/generater/admin/form/checkBox.ftl +++ b/src/main/resources/generater/admin/form/checkBox.ftl @@ -1 +1 @@ - <input type="checkbox" name="${value.key}" title="${value.value}"> \ No newline at end of file + <input type="checkbox" name="${value.key}" title="${value.value}" value="true"> \ No newline at end of file diff --git a/src/main/resources/generater/admin/form/img.ftl b/src/main/resources/generater/admin/form/img.ftl index 4bedf20..9388f09 100644 --- a/src/main/resources/generater/admin/form/img.ftl +++ b/src/main/resources/generater/admin/form/img.ftl @@ -1,5 +1,5 @@ <#if value.params.uploadApi??&&value.params.uploadApi!=""> - <img id="img_${value.key}" style="display: block;margin-bottom: 10px; <#if value.params.width gt 0 > width:${value.params.width}px;</#if> <#if value.params.height gt 0 > height:${value.params.height}px;</#if> " /> + <img id="img_${value.key}" style="display: block;margin-bottom: 10px; <#if value.params.width gt 0 > width:${value.params.width}px;</#if> <#if value.params.height gt 0 > max-height:${value.params.height}px;</#if> " /> <button type="button" class="layui-btn" id="upload_${value.key}" style="margin-bottom: 5px"> <i class="layui-icon"></i>涓婁紶鍥剧墖 </button> diff --git a/src/main/resources/generater/admin/list.ftl b/src/main/resources/generater/admin/list.ftl index fe300e6..9cf9bd1 100644 --- a/src/main/resources/generater/admin/list.ftl +++ b/src/main/resources/generater/admin/list.ftl @@ -8,14 +8,16 @@ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/> - <link rel="stylesheet" href="../css/font.css"> - <link rel="stylesheet" href="../css/xadmin.css"> - <script src="../lib/layui/layui.js" charset="utf-8"></script> - <link rel="stylesheet" href="../css/theme3049.min.css"> - <script src="../js/vue.min.js" type="text/javascript" charset="utf-8"></script> - <script type="text/javascript" src="../js/xadmin.js"></script> - <script src="../js/http.js" type="text/javascript" charset="utf-8"></script> - <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> + <link rel="stylesheet" href="/admin/css/font.css"> + <link rel="stylesheet" href="/admin/css/xadmin.css"> + <link rel="stylesheet" href="/admin/css/theme3049.min.css"> + + <script src="/admin/lib/layui/layui.js" charset="utf-8"></script> + <script src="/admin/js/vue.min.js" type="text/javascript" charset="utf-8"></script> + <script src="/admin/js/xadmin.js" type="text/javascript"></script> + <script src="/admin/js/http.js" type="text/javascript" charset="utf-8"></script> + <script src="/admin/js/jquery.min.js" type="text/javascript"></script> + <script src="/admin/js/utils.js"></script> <!--[if lt IE 9]> <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script> diff --git a/src/main/resources/generater/admin/update.ftl b/src/main/resources/generater/admin/update.ftl index 4134409..d695d9a 100644 --- a/src/main/resources/generater/admin/update.ftl +++ b/src/main/resources/generater/admin/update.ftl @@ -8,13 +8,16 @@ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/> - <link rel="stylesheet" href="../css/font.css"> - <link rel="stylesheet" href="../css/xadmin.css"> - <script type="text/javascript" src="../lib/layui/layui.js" charset="utf-8"></script> - <script type="text/javascript" src="../js/xadmin.js"></script> - <script src="../js/vue.min.js" type="text/javascript" charset="utf-8"></script> - <script src="../js/http.js" type="text/javascript" charset="utf-8"></script> - <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> + <link rel="stylesheet" href="/admin/css/font.css"> + <link rel="stylesheet" href="/admin/css/xadmin.css"> + <link rel="stylesheet" href="/admin/css/theme3049.min.css"> + + <script src="/admin/lib/layui/layui.js" charset="utf-8"></script> + <script src="/admin/js/vue.min.js" type="text/javascript" charset="utf-8"></script> + <script src="/admin/js/xadmin.js" type="text/javascript"></script> + <script src="/admin/js/http.js" type="text/javascript" charset="utf-8"></script> + <script src="/admin/js/jquery.min.js" type="text/javascript"></script> + <script src="/admin/js/utils.js"></script> <!-- 璁㊣E8/9鏀寔濯掍綋鏌ヨ锛屼粠鑰屽吋瀹规爡鏍� --> <!--[if lt IE 9]> <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script> @@ -83,7 +86,7 @@ auto: false, accept: 'images', acceptMime: 'image/*', - field: "file_${value.key}", + field: "file_url", choose: function (obj) { //灏嗘瘡娆¢�夋嫨鐨勬枃浠惰拷鍔犲埌鏂囦欢闃熷垪 var files = obj.pushFile(); @@ -106,10 +109,10 @@ if (res.code == 0) { //鑾峰彇閾炬帴 $("input[name='${value.key}']").val(res.data.url); - delete chooseImage["${value.key}"]; - if (Object.keys(chooseImage).length == 0) { + delete uploadTool.chooseImage["${value.key}"]; + if (Object.keys(uploadTool.chooseImage).length == 0) { //鍏ㄩ儴涓婁紶鎴愬姛 - callback(); + uploadTool.callback(true); } } else { layer.msg(res.msg); @@ -125,7 +128,7 @@ }, upload: function (result) { - if (this.uploadArray.length > 0) { + if (this.uploadArray.length > 0&&Object.keys(this.chooseImage).length>0) { this.callback = result; //鍚屾椂涓婁紶 for (var i = 0; i < this.uploadArray.length; i++) { @@ -180,8 +183,8 @@ <#list rowsList as row > <#if (row.type=="Text" && (row.params.inputType=="DATE"||row.params.inputType=="DATETIME"))> laydate.render({ - elem: "intput[name=${row.key}]", //鎸囧畾鍏冪礌 - type: ${row.params.inputType?lower_case} + elem: "input[name=${row.key}]", //鎸囧畾鍏冪礌 + type: '${row.params.inputType?lower_case}' }); </#if> </#list> @@ -211,7 +214,12 @@ data.field[onkeys[0]][onkeys[1]] = value; } } - uploadTool.upload(function () { + uploadTool.upload(function (hasFile) { + if (hasFile) { + //浠庢柊鎻愪氦琛ㄥ崟 + $("button[lay-filter=update]").click(); + return; + } //鍙戝紓姝ワ紝鎶婃暟鎹彁浜ょ粰php var params = data.field; params.id = ksapp.getQueryParam("id"); diff --git a/src/main/resources/schemas/generator.dtd b/src/main/resources/schemas/generator.dtd index 046b776..596bea4 100644 --- a/src/main/resources/schemas/generator.dtd +++ b/src/main/resources/schemas/generator.dtd @@ -19,7 +19,7 @@ <!ATTLIST service interPackage CDATA #REQUIRED> <!ATTLIST service implPackage CDATA #REQUIRED> <!ATTLIST service queryPackage CDATA #REQUIRED> - <!ATTLIST service adminVOPackage CDATA #IMPLIED> + <!ELEMENT exception EMPTY> @@ -37,6 +37,7 @@ <!ATTLIST controller mapping CDATA #REQUIRED> <!ATTLIST controller responseBody (true|false) "true"> <!ATTLIST controller jsonp (true|false) "true"> + <!ATTLIST controller adminVOPackage CDATA #IMPLIED> <!ELEMENT pages (list?,add?,update?)> diff --git a/src/main/resources/test.xml b/src/main/resources/test.xml new file mode 100644 index 0000000..00a2986 --- /dev/null +++ b/src/main/resources/test.xml @@ -0,0 +1,88 @@ +<?xml version='1.0' encoding='UTF-8'?> +<!DOCTYPE generator-config PUBLIC "-//yeshitv.com//DTD generator_code 1.0//EN" + "http://192.168.3.122:8848/buwan-web/dtd/generator.dtd"> + +<generator-config class="org.yeshi.utils.generater.TestEntity3"> + <dao package="com.generater.test.mapper" mapperDir="D:/workspace/server/utils/src/test/java/mapper"> + <queryList> + <query name="nickName" type="contains"></query> + </queryList> + </dao> + <service interPackage="com.generater.test.service.inter" implPackage="com.generater.test.service.impl" + queryPackage="com.generater.test.query"> + <exception package="com.generater.test.exception"></exception> + </service> + <admin> + <controller package="com.generater.test.controller.admin" mapping="/test" /> + <pages title="娴嬭瘯" pageDir="D:/workspace/server/utils/src/test/java/html"> + <list fileName="list.html"> + <searchForm> + <columns> + <column property="nickName" title="鏄电О"> + <text inputType="TEXT" maxLength="100"></text> + </column> + </columns> + </searchForm> + + <columns> + <column property="id" title="ID" showType="TEXT"></column> + <column property="nickName" title="鏄电О" showType="TEXT"></column> + <column property="sex" title="鎬у埆" showType="TEXT"></column> + <column property="portrait" title="澶村儚" showType="IMG"></column> + </columns> + </list> + <add fileName="add.html"> + <column property="nickName" title="鏄电О"> + <text inputType="TEXT" dateFormat="" placeHolder=""> + <verify type="regex" express="*" require="true" notify=""></verify> + </text> + </column> + <column property="sex" title="鎬у埆"> + <select> + <values> + <value key="0">鏈煡</value> + <value key="1">鐢�</value> + <value key="2">濂�</value> + </values> + </select> + + + </column> + + <column property="province" title="鐪佷唤"> + <select> + <api path="api/getCountrys"> + <params> + <value key="cq">閲嶅簡</value> + <value key="sc">鍥涘窛</value> + </params> + </api> + <verify type="none" require="true"></verify> + </select> + </column> + + <column property="show" title="鏄惁鏄剧ず"> + <switch></switch> + </column> + + <column property="portrait" title="澶村儚"> + <img enable="false" editLink="true"> + <api path="/api/uploadImg"> + <params> + <value key="type">portrait</value> + </params> + </api> + </img> + </column> + </add> + <update fileName="update.html"> + <column property="nickName" title="鏄电О"> + <text inputType="TEXT"> + <verify type="regex" express="*" require="true" notify=""></verify> + </text> + </column> + </update> + </pages> + + </admin> +</generator-config> \ No newline at end of file diff --git a/src/test/java/com/generater/GeneratorTest.java b/src/test/java/com/generater/GeneratorTest.java index f7d2b62..f618df0 100644 --- a/src/test/java/com/generater/GeneratorTest.java +++ b/src/test/java/com/generater/GeneratorTest.java @@ -4,9 +4,11 @@ import org.yeshi.utils.FileUtil; import org.yeshi.utils.FreemarkerUtils; import org.yeshi.utils.generater.GeneraterUtil; +import org.yeshi.utils.generater.TestEntity3; import org.yeshi.utils.generater.entity.ClassInfo; import org.yeshi.utils.generater.entity.admin.AdminGeneraterInfo; import org.yeshi.utils.generater.mybatis.Column; +import org.yeshi.utils.generater.mybatis.MyBatisMapperUtil; import org.yeshi.utils.generater.mybatis.Table; import org.yeshi.utils.generater.vo.ExceptionVO; import org.yeshi.utils.generater.vo.xmlconfig.base.FormComponent; @@ -49,7 +51,9 @@ // // boolean match = Pattern.matches("^(https://){1}.*(\\.m3u8)$", "https://n1.szjal.cn/20210805/qnDXhXBa/index.m3u8123"); // System.out.println(match); - generater(); +// generater(); + String sql = MyBatisMapperUtil.createSQL(TestEntity3.class); + System.out.println(sql); } private static void generateAdminPage() throws Exception { diff --git a/src/test/java/com/generater/TestEntity2.java b/src/test/java/com/generater/TestEntity2.java index e99b2ea..9608f5c 100644 --- a/src/test/java/com/generater/TestEntity2.java +++ b/src/test/java/com/generater/TestEntity2.java @@ -25,6 +25,7 @@ @Table("table_test") public class TestEntity2 { @Id + @Column(name="id") private String id; @Column(name="nick_name") -- Gitblit v1.8.0