diff --git a/docs/databases/mallplus1-pms-20240117113448.sql b/docs/databases/mallplus1-pms-20240117113448.sql new file mode 100644 index 0000000..7159fbd --- /dev/null +++ b/docs/databases/mallplus1-pms-20240117113448.sql @@ -0,0 +1,1202 @@ +-- -------------------------------------------------------- +-- 主机: 127.0.0.1 +-- 服务器版本: 5.7.26 - MySQL Community Server (GPL) +-- 服务器操作系统: Win64 +-- HeidiSQL 版本: 12.6.0.6765 +-- -------------------------------------------------------- + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET NAMES utf8 */; +/*!50503 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- 导出 表 mallplus1.pms_album 结构 +DROP TABLE IF EXISTS `pms_album`; +CREATE TABLE IF NOT EXISTS `pms_album` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(64) DEFAULT NULL, + `pic` varchar(200) DEFAULT NULL, + `type` varchar(11) DEFAULT NULL, + `sort` int(11) DEFAULT NULL, + `description` varchar(1000) DEFAULT NULL, + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='相册表'; + +-- 正在导出表 mallplus1.pms_album 的数据:~2 rows (大约) +INSERT INTO `pms_album` (`id`, `name`, `pic`, `type`, `sort`, `description`, `store_id`) VALUES + (1, '123', NULL, 'image', NULL, NULL, 1), + (5, '333', NULL, 'image', NULL, NULL, 1); + +-- 导出 表 mallplus1.pms_album_pic 结构 +DROP TABLE IF EXISTS `pms_album_pic`; +CREATE TABLE IF NOT EXISTS `pms_album_pic` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `album_id` bigint(20) DEFAULT NULL, + `pic` varchar(300) DEFAULT NULL, + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + `name` varchar(40) DEFAULT NULL, + `create_time` datetime DEFAULT NULL, + `type` varchar(20) DEFAULT NULL, + `user_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='画册图片表'; + +-- 正在导出表 mallplus1.pms_album_pic 的数据:~15 rows (大约) +INSERT INTO `pms_album_pic` (`id`, `album_id`, `pic`, `store_id`, `name`, `create_time`, `type`, `user_id`) VALUES + (1, 1, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/web-20191204-38e57c515bf74cdea929531c9ed816da.jpeg', 1, 'uniapp.jpeg', '2019-12-04 03:32:19', 'image', NULL), + (2, 1, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/web-20191204-343c47d6234f4fcfbd0f1df727f0ed3f.png', 1, 'mallplus-uniapp.png', '2019-12-04 06:05:01', 'image', NULL), + (3, 0, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/web-20191204-5e67515ee67247028a0fb6497cbed95d.mp4', 1, '568217816765483687072046311.mp4', '2019-12-04 11:31:58', 'video', NULL), + (4, 0, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/web-20191204-52a5709251ee4952879850c707ac5cbd.mp4', 1, '1575474798856104.mp4', '2019-12-04 15:53:40', 'video', NULL), + (5, 1, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/web-20191204-e331ac750b8c427dbe55f6807246741f.png', 1, '28.png', '2019-12-04 15:54:22', 'image', NULL), + (6, 1, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/web-20191213-259def6e12fa4c8a9048d36cd65fe742.png', 1, '爱心.png', '2019-12-13 06:27:42', 'image', NULL), + (7, 1, NULL, 1, 'banner[1].png', '2019-12-17 09:41:24', 'image', NULL), + (8, 1, NULL, 1, '20180820103536889.jpg', '2019-12-17 09:58:45', 'image', NULL), + (9, 0, NULL, 2, '下载.png', '2019-12-24 03:30:51', 'image', NULL), + (10, 0, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/web-20191231-64889921cb424d59bf03f97db446698f.png', 540, 'ad.png', '2019-12-31 08:52:57', 'image', NULL), + (11, 0, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/web-20191231-09c4e19b09764192b143cabbc351c876.png', 540, 'bao.png', '2019-12-31 08:53:05', 'image', NULL), + (12, 1, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/web-20200110-4720ba7fe671460b8585fbb0c335759b.png', 1, '娱乐.png', '2020-01-10 06:21:41', 'image', NULL), + (13, 1, NULL, 1, 'Desert.jpg', '2020-03-26 14:15:14', 'image', NULL), + (14, 1, NULL, 1, 'Lighthouse.jpg', '2020-03-26 14:20:49', 'image', NULL), + (15, 1, NULL, 1, 'qq.jpg', '2020-03-28 16:12:08', 'image', NULL); + +-- 导出 表 mallplus1.pms_brand 结构 +DROP TABLE IF EXISTS `pms_brand`; +CREATE TABLE IF NOT EXISTS `pms_brand` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(64) DEFAULT NULL COMMENT '品牌名称', + `first_letter` varchar(8) DEFAULT NULL COMMENT '首字母', + `sort` int(11) DEFAULT NULL COMMENT '排序', + `factory_status` int(11) DEFAULT NULL COMMENT '品牌制造商', + `show_status` int(11) DEFAULT NULL COMMENT '显示', + `product_count` int(11) DEFAULT NULL COMMENT '产品数量', + `product_comment_count` int(11) DEFAULT NULL COMMENT '产品评论数量', + `logo` varchar(255) DEFAULT NULL COMMENT '品牌logo', + `big_pic` varchar(255) DEFAULT NULL COMMENT '专区大图', + `brand_story` text COMMENT '品牌故事', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1015002 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='品牌表'; + +-- 正在导出表 mallplus1.pms_brand 的数据:~5 rows (大约) +INSERT INTO `pms_brand` (`id`, `name`, `first_letter`, `sort`, `factory_status`, `show_status`, `product_count`, `product_comment_count`, `logo`, `big_pic`, `brand_story`, `store_id`) VALUES + (1001000, 'MUJI制造商', 'M', 2, 1, 1, NULL, NULL, 'http://yanxuan.nosdn.127.net/1541445967645114dd75f6b0edc4762d.png', 'http://yanxuan.nosdn.127.net/1541445967645114dd75f6b0edc4762d.png', '严选精选了MUJI制造商和生产原料,\n用几乎零利润的价格,剔除品牌溢价,\n让用户享受原品牌的品质生活。', 1), + (1001020, 'Ralph Lauren制造商', 'R', 20, 1, 1, NULL, NULL, 'http://yanxuan.nosdn.127.net/9df78eb751eae2546bd3ee7e61c9b854.png', 'http://yanxuan.nosdn.127.net/9df78eb751eae2546bd3ee7e61c9b854.png', '我们与Ralph Lauren Home的制造商成功接洽,掌握先进的生产设备,传承品牌工艺和工序。追求生活品质的你,值得拥有。', 1), + (1001045, '罗莱制造商', '罗', 45, 0, 1, NULL, NULL, 'http://yanxuan.nosdn.127.net/14122a41a4985d23e1a172302ee818e9.png', 'http://yanxuan.nosdn.127.net/14122a41a4985d23e1a172302ee818e9.png', '严选团队为打造吸湿透气柔软的蚕丝被,\n从蚕茧原材到温感性能,多次甄选测试\n选择罗莱制造商工厂,手工处理,优质舒适。', 1), + (1015000, 'NITORI制造商', 'N', 43, 1, 1, NULL, NULL, 'http://yanxuan.nosdn.127.net/6f3d310601b18610553c675e0e14d107.png', 'http://yanxuan.nosdn.127.net/6f3d310601b18610553c675e0e14d107.png', '宠物是人类最温情的陪伴,\n严选找寻日本最大家居品牌NITORI制造商,\n每一个脚印,都是为了更好地关怀你的TA', 1), + (1015001, '123', '11', 0, 0, 0, NULL, NULL, NULL, '', '22', 1214); + +-- 导出 表 mallplus1.pms_comment 结构 +DROP TABLE IF EXISTS `pms_comment`; +CREATE TABLE IF NOT EXISTS `pms_comment` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) DEFAULT NULL, + `member_nick_name` varchar(255) DEFAULT NULL, + `product_name` varchar(255) DEFAULT NULL, + `star` int(11) DEFAULT NULL COMMENT '评价星数:0->5', + `member_ip` varchar(64) DEFAULT NULL COMMENT '评价的ip', + `create_time` datetime DEFAULT NULL, + `show_status` int(11) DEFAULT NULL, + `product_attribute` varchar(255) DEFAULT NULL COMMENT '购买时的商品属性', + `collect_couont` int(11) DEFAULT NULL, + `read_count` int(11) DEFAULT NULL, + `content` text, + `pics` varchar(1000) DEFAULT NULL COMMENT '上传图片地址,以逗号隔开', + `member_icon` varchar(255) DEFAULT NULL COMMENT '评论用户头像', + `replay_count` int(11) DEFAULT NULL, + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='商品评价表'; + +-- 正在导出表 mallplus1.pms_comment 的数据:~0 rows (大约) + +-- 导出 表 mallplus1.pms_comment_replay 结构 +DROP TABLE IF EXISTS `pms_comment_replay`; +CREATE TABLE IF NOT EXISTS `pms_comment_replay` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `comment_id` bigint(20) DEFAULT NULL, + `member_nick_name` varchar(255) DEFAULT NULL, + `member_icon` varchar(255) DEFAULT NULL, + `content` varchar(1000) DEFAULT NULL, + `create_time` datetime DEFAULT NULL, + `type` int(11) DEFAULT NULL COMMENT '评论人员类型;0->会员;1->管理员', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='产品评价回复表'; + +-- 正在导出表 mallplus1.pms_comment_replay 的数据:~0 rows (大约) + +-- 导出 表 mallplus1.pms_favorite 结构 +DROP TABLE IF EXISTS `pms_favorite`; +CREATE TABLE IF NOT EXISTS `pms_favorite` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `add_time` datetime DEFAULT NULL COMMENT '创建时间', + `type` int(11) NOT NULL COMMENT '1 商品 2 文章 3 店铺', + `obj_id` bigint(20) DEFAULT NULL COMMENT '收藏编号', + `store_id` bigint(20) DEFAULT NULL, + `member_id` bigint(20) DEFAULT NULL, + `name` varchar(255) DEFAULT NULL, + `meno1` varchar(255) DEFAULT NULL, + `meno2` varchar(255) DEFAULT NULL, + `meno3` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + KEY `FKAFC41E93339519D2` (`obj_id`) USING BTREE, + KEY `FKAFC41E931E208F02` (`member_id`) USING BTREE, + KEY `FKAFC41E931C0CA9F2` (`store_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=596 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; + +-- 正在导出表 mallplus1.pms_favorite 的数据:~30 rows (大约) +INSERT INTO `pms_favorite` (`id`, `add_time`, `type`, `obj_id`, `store_id`, `member_id`, `name`, `meno1`, `meno2`, `meno3`) VALUES + (497, '2020-02-29 05:35:01', 4, 10, NULL, NULL, 'undefined', 'undefined', '234', 'undefined'), + (502, '2020-03-02 07:50:53', 4, 9, NULL, 255, 'undefined', 'undefined', '11', 'undefined'), + (506, '2020-03-04 08:10:43', 1, 88, NULL, NULL, '普普风商场同款2019夏装新款纽扣装饰牛仔半裙复古百搭高腰半身裙女13929 牛仔兰 L', 'https://img11.360buyimg.com/n7/jfs/t1/57913/16/6004/248427/5d3a652fE62621ff9/0f85a3275effaca7.jpg', '279', '17'), + (507, '2020-03-04 08:31:35', 1, 80, NULL, NULL, 'a02商场同款2019少女萌趣印花短裙荷叶边半身裙女 D1U2D0231SK 黑色-900 S', 'https://img11.360buyimg.com/n7/jfs/t1/72406/33/5525/230053/5d3a64a2Ecf95bcf9/3cbb47bad0a80e19.jpg', '298', '17'), + (508, '2020-03-04 14:50:26', 1, 75, NULL, NULL, 'FILA斐乐男女同款LINEA ITALIA系列官方情侣款短袖T恤 2019秋季学生印花商场同款 玫瑰紫-PC 175/96A/L', 'https://img10.360buyimg.com/n7/jfs/t1/36352/31/14713/230259/5d3af98aEdd0ab6d9/aa323333953423a9.jpg', '389', '65'), + (510, '2020-03-05 04:17:06', 4, 8, NULL, NULL, 'undefined', 'undefined', '2', 'undefined'), + (512, '2020-03-05 06:19:50', 1, 82, NULL, NULL, '【商场同款】2019夏季新品文艺休闲短袖麻质衬衫女【BDM2CD653】秒针的速度 B00蓼草蓝 S', 'https://img14.360buyimg.com/n7/jfs/t1/78317/8/5529/208118/5d3ab9c0E556a6771/087cad31654ab195.jpg', '798', '4'), + (548, '2020-03-14 15:12:44', 1, 80, NULL, 20, 'a02商场同款2019少女萌趣印花短裙荷叶边半身裙女 D1U2D0231SK 黑色-900 S', 'https://img11.360buyimg.com/n7/jfs/t1/72406/33/5525/230053/5d3a64a2Ecf95bcf9/3cbb47bad0a80e19.jpg', '298', '31'), + (550, '2020-03-14 15:12:57', 1, 82, NULL, 20, '【商场同款】2019夏季新品文艺休闲短袖麻质衬衫女【BDM2CD653】秒针的速度 B00蓼草蓝 S', 'https://img14.360buyimg.com/n7/jfs/t1/78317/8/5529/208118/5d3ab9c0E556a6771/087cad31654ab195.jpg', '798', '10'), + (551, '2020-03-15 07:19:41', 4, 13, NULL, 20, 'undefined', 'undefined', '19', 'undefined'), + (554, '2020-03-15 13:10:13', 1, 22729, NULL, 20, '圆钵碗状高密材质猫抓板', 'http://yanxuan.nosdn.127.net/d8c18953bcb05f0b07d6b48e2d159ace.png', '79', '1017004'), + (555, '2020-03-17 01:26:19', 1, 99, NULL, 20, '【商场同款】谜底2019夏知性复古纯棉印花收腰连衣裙192ML1027 本白条 L', 'https://img11.360buyimg.com/n7/jfs/t1/79942/10/5423/444761/5d3a4fefE74fe5e4d/65dce49ff61acfd5.jpg', '629', '12'), + (556, '2020-03-17 02:42:45', 1, 25066, NULL, 295, '上衣', 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200315/350xq_7.jpg', '99', '1'), + (557, '2020-03-17 13:15:41', 4, 13, 1, 297, 'undefined', 'undefined', '19', 'undefined'), + (560, '2020-03-18 11:40:29', 1, 91, NULL, 297, 'LALABOBO 2019夏季新品可爱少女连衣裙女短袖T恤大头像裙子|L19B-WLDQ21商场同款 白色 M', 'https://img14.360buyimg.com/n7/jfs/t1/68975/8/5480/196083/5d3a590bE542ecaed/f3fe18422af01f4f.jpg', '798', '85'), + (562, '2020-03-18 14:27:22', 1, 22818, NULL, 297, '男式玩色内裤', 'http://yanxuan.nosdn.127.net/922fdbe007033f7a88f7ebc57c3d1e75.png', '79', '1010022'), + (565, '2020-03-20 10:30:34', 1, 25039, NULL, 297, 'test', 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200222/3b2f80a50c6a1ac5fc557491a8736b77.jpg', '0', '1'), + (569, '2020-03-24 22:46:38', 1, 22785, NULL, 297, '皮毛一体多用长毛坐垫', 'http://yanxuan.nosdn.127.net/442b9d99c0e7f39efd7967e0e5987374.png', '129', '1008002'), + (570, '2020-03-24 23:52:19', 1, 22652, NULL, 297, '双宫茧桑蚕丝被 子母被', 'http://yanxuan.nosdn.127.net/2b537159f0f789034bf8c4b339c43750.png', '14199', '1008008'), + (573, '2020-03-25 18:50:51', 4, 8, NULL, 297, 'undefined', 'undefined', '2', 'undefined'), + (574, '2020-03-25 20:07:52', 1, 25066, NULL, 297, '上衣', 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200315/350xq_7.jpg', '99', '53'), + (576, '2020-03-26 22:23:18', 1, 25082, NULL, 297, '牛仔裤', 'http://macro-oss.oss-cn-shenzhen.aliyuncs.com/mall/images/20190129/170157_yIl3_1767531.jpg', '0', '0'), + (580, '2020-03-27 16:55:24', 4, 7005, NULL, 297, 'undefined', 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200303/QQ截图20200201152146.png', 'undefined', 'undefined'), + (581, '2020-03-28 17:35:25', 1, 46, NULL, 297, '日式纯棉针织条纹抱枕', 'http://yanxuan.nosdn.127.net/23e0203f1512f33e605f61c28fa03d2d.png', '79', '1008002'), + (584, '2020-03-29 20:05:59', 1, 185, NULL, 319, '粽情乡思端午粽礼盒 640克', 'http://yanxuan.nosdn.127.net/d1fd69cee4990f4de1109baef30efeeb.png', '88', '1008026'), + (585, '2020-03-30 22:55:24', 1, 185, NULL, 297, '粽情乡思端午粽礼盒 640克', 'http://yanxuan.nosdn.127.net/d1fd69cee4990f4de1109baef30efeeb.png', '88', '1008033'), + (591, '2020-04-25 08:11:11', 3, 5, NULL, 322, '北京手机专卖', 'https://dss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1991983826,299161976&fm=26&gp=0.jpg', '5', '3'), + (592, '2020-04-25 08:20:35', 3, 4, NULL, 322, '北京房屋专卖', 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190807/QQ%E5%9B%BE%E7%89%8720190807191952.jpg', '4', '2'), + (594, '2023-02-07 11:45:58', 1, 25, NULL, 333, '泡泡纱可水洗夏凉被', 'http://yanxuan.nosdn.127.net/715899c65c023bb4973fb0466a5b79d6.png', '319', '1036000'), + (595, '2023-02-07 11:46:08', 1, 186, NULL, 333, '粽夏冰晶端午粽礼盒 480克', 'http://yanxuan.nosdn.127.net/277b07c1e5e6fb57cf9ca47fcd3903d5.png', '21', '1008033'); + +-- 导出 表 mallplus1.pms_feight_template 结构 +DROP TABLE IF EXISTS `pms_feight_template`; +CREATE TABLE IF NOT EXISTS `pms_feight_template` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(64) DEFAULT NULL COMMENT '名称', + `charge_type` int(11) DEFAULT NULL COMMENT '计费类型:0->按重量;1->按件数', + `first_weight` decimal(10,2) DEFAULT NULL COMMENT '首重kg', + `first_fee` decimal(10,2) DEFAULT NULL COMMENT '首费(元)', + `continue_weight` decimal(10,2) DEFAULT NULL COMMENT '后重量', + `continme_fee` decimal(10,2) DEFAULT NULL COMMENT '后费用', + `dest` varchar(255) DEFAULT NULL COMMENT '目的地(省、市)', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + `create_time` datetime DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='运费模版'; + +-- 正在导出表 mallplus1.pms_feight_template 的数据:~6 rows (大约) +INSERT INTO `pms_feight_template` (`id`, `name`, `charge_type`, `first_weight`, `first_fee`, `continue_weight`, `continme_fee`, `dest`, `store_id`, `create_time`) VALUES + (6, '1收到vs', 0, 12.00, 15.00, NULL, 5.00, NULL, 1, '2019-11-08 09:07:59'), + (10, '国内运费模板', 0, 1.00, 12.00, NULL, 4.00, NULL, 1, '2019-11-13 09:35:07'), + (11, '配送', 1, 10.00, 5.00, NULL, 6.00, NULL, 1, '2019-11-18 09:11:50'), + (12, '运费', 0, 1.00, 11.00, NULL, 1.00, NULL, 538, '2019-12-30 09:44:44'), + (16, '50', 1, 10.00, 10.00, NULL, 50.00, NULL, 1, '2020-03-16 03:01:53'), + (17, 'uuu ', 1, 5.00, 8.00, NULL, 70.00, NULL, 1, '2020-03-19 11:27:16'); + +-- 导出 表 mallplus1.pms_gifts 结构 +DROP TABLE IF EXISTS `pms_gifts`; +CREATE TABLE IF NOT EXISTS `pms_gifts` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `category_id` bigint(20) DEFAULT NULL COMMENT '类别', + `icon` varchar(500) DEFAULT NULL COMMENT '图片', + `title` varchar(100) DEFAULT NULL COMMENT '标题', + `show_status` int(11) DEFAULT NULL COMMENT '状态', + `create_time` datetime DEFAULT NULL COMMENT '创建时间', + `content` text COMMENT '内容', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + `type` int(11) DEFAULT NULL COMMENT '1 赠品 2 活动商品', + `price` decimal(10,2) DEFAULT NULL, + `stock` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='帮助表'; + +-- 正在导出表 mallplus1.pms_gifts 的数据:~3 rows (大约) +INSERT INTO `pms_gifts` (`id`, `category_id`, `icon`, `title`, `show_status`, `create_time`, `content`, `store_id`, `type`, `price`, `stock`) VALUES + (8, 24, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200108/赠品.png', '测试赠品', 1, NULL, '

移动端-赠品

\n

版权声明 本项目由北京zscat科技有限公司开发,禁止未经授权用于商业用途。个人学习可免费使用。如需商业授权,请加微信,获取域名授权。

\n

本项目由北京zscat科技有限公司开发,禁止未经授权用于商业用途。个人学习可免费使用。如需商业授权,请加微信,获取域名授权。

\n

我的微信号

\n

输入图片说明

', 1, 1, 2.00, 99768), + (9, 25, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200115/dan.jpg', '12', 1, NULL, '

11

', 595, 1, 11.00, 11), + (13, 24, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200304/商品图片1.jpg', '消毒湿纸巾', 1, NULL, NULL, 1, 3, 19.00, 10000), + (14, 24, NULL, '1111', 1, '2023-05-09 16:09:47', '

131331

', 1, 3, 111.00, 111); + +-- 导出 表 mallplus1.pms_gifts_category 结构 +DROP TABLE IF EXISTS `pms_gifts_category`; +CREATE TABLE IF NOT EXISTS `pms_gifts_category` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(100) DEFAULT NULL COMMENT '标题', + `icon` varchar(500) DEFAULT NULL COMMENT '分类图标', + `show_status` int(11) DEFAULT NULL COMMENT '状态', + `sort` int(11) DEFAULT NULL COMMENT '排序', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='帮助分类表'; + +-- 正在导出表 mallplus1.pms_gifts_category 的数据:~5 rows (大约) +INSERT INTO `pms_gifts_category` (`id`, `name`, `icon`, `show_status`, `sort`, `store_id`) VALUES + (23, 'test1', NULL, 1, 2, 1), + (24, '测试【商品赠品分类】', 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200108/测试商品分类.png', 1, 1, 1), + (25, '礼品分类', 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200115/alpayApplet.jpg', 1, 1, 595), + (26, '赠品大侠', 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20200212/1581390266(1).jpg', 1, 1, 1), + (27, '个人护理', NULL, NULL, NULL, 1); + +-- 导出 表 mallplus1.pms_goods_group_map 结构 +DROP TABLE IF EXISTS `pms_goods_group_map`; +CREATE TABLE IF NOT EXISTS `pms_goods_group_map` ( + `shop_id` bigint(20) DEFAULT NULL COMMENT '店铺id', + `goods_id` bigint(20) NOT NULL COMMENT '商品id', + `group_id` bigint(20) NOT NULL COMMENT '商品组id' +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='商品模块|商品分组关联表'; + +-- 正在导出表 mallplus1.pms_goods_group_map 的数据:~63 rows (大约) +INSERT INTO `pms_goods_group_map` (`shop_id`, `goods_id`, `group_id`) VALUES + (0, 4350, 101726), + (0, 4352, 101726), + (0, 4346, 101726), + (0, 4350, 101727), + (0, 4352, 101727), + (0, 4346, 101727), + (0, 4435, 101795), + (0, 4350, 101809), + (0, 4398, 101809), + (0, 4441, 101820), + (0, 4919, 101838), + (0, 5380, 101922), + (0, 6546, 101946), + (0, 9116, 101976), + (0, 9018, 101976), + (0, 9018, 101979), + (0, 6357, 101979), + (0, 8750, 101988), + (0, 10929, 101995), + (0, 9788, 101995), + (0, 6059, 102025), + (0, 13232, 102025), + (0, 13232, 102031), + (0, 6059, 102031), + (0, 12903, 102031), + (0, 11528, 102031), + (0, 13232, 102032), + (0, 13183, 102032), + (0, 13179, 102032), + (0, 6059, 102032), + (0, 14087, 102034), + (0, 12578, 102034), + (0, 12610, 102034), + (0, 12610, 102035), + (0, 12578, 102035), + (0, 14069, 102040), + (0, 13232, 102040), + (0, 6059, 102040), + (0, 29539, 102077), + (0, 29537, 102077), + (0, 29640, 102078), + (0, 30145, 102078), + (0, 30250, 102079), + (0, 30292, 102079), + (0, 30252, 102079), + (0, 30324, 102080), + (0, 30254, 102080), + (0, 29396, 102081), + (0, 30250, 102082), + (0, 30292, 102082), + (0, 30252, 102082), + (0, 30254, 102082), + (0, 39682, 102082), + (0, 34266, 102083), + (0, 39764, 102083), + (0, 39938, 102084), + (0, 39940, 102084), + (0, 39942, 102084), + (0, 40115, 102084), + (0, 40061, 102084), + (0, 40122, 102084), + (NULL, 30421, 1198108089580699650), + (NULL, 30417, 1198108089580699650); + +-- 导出 表 mallplus1.pms_member_price 结构 +DROP TABLE IF EXISTS `pms_member_price`; +CREATE TABLE IF NOT EXISTS `pms_member_price` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) DEFAULT NULL, + `member_level_id` bigint(20) DEFAULT NULL, + `member_price` decimal(10,2) DEFAULT NULL COMMENT '会员价格', + `member_level_name` varchar(100) DEFAULT NULL, + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=681 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='商品会员价格表'; + +-- 正在导出表 mallplus1.pms_member_price 的数据:~224 rows (大约) +INSERT INTO `pms_member_price` (`id`, `product_id`, `member_level_id`, `member_price`, `member_level_name`, `store_id`) VALUES + (26, 7, 1, 500.00, NULL, 1), + (27, 8, 1, 500.00, NULL, 1), + (28, 9, 1, 500.00, NULL, 1), + (29, 10, 1, 500.00, NULL, 1), + (30, 11, 1, 500.00, NULL, 1), + (31, 12, 1, 500.00, NULL, 1), + (32, 13, 1, 500.00, NULL, 1), + (33, 14, 1, 500.00, NULL, 1), + (37, 18, 1, 500.00, NULL, 1), + (44, 7, 2, 480.00, NULL, 1), + (45, 7, 3, 450.00, NULL, 1), + (52, 22, 1, NULL, NULL, 1), + (53, 22, 2, NULL, NULL, 1), + (54, 22, 3, NULL, NULL, 1), + (58, 24, 1, NULL, NULL, 1), + (59, 24, 2, NULL, NULL, 1), + (60, 24, 3, NULL, NULL, 1), + (142, 31, 1, NULL, '黄金会员', 1), + (143, 31, 2, NULL, '白金会员', 1), + (144, 31, 3, NULL, '钻石会员', 1), + (148, 32, 1, NULL, '黄金会员', 1), + (149, 32, 2, NULL, '白金会员', 1), + (150, 32, 3, NULL, '钻石会员', 1), + (154, 33, 1, NULL, '黄金会员', 1), + (155, 33, 2, NULL, '白金会员', 1), + (156, 33, 3, NULL, '钻石会员', 1), + (169, 36, 1, NULL, '黄金会员', 1), + (170, 36, 2, NULL, '白金会员', 1), + (171, 36, 3, NULL, '钻石会员', 1), + (172, 35, 1, NULL, '黄金会员', 1), + (173, 35, 2, NULL, '白金会员', 1), + (174, 35, 3, NULL, '钻石会员', 1), + (175, 34, 1, NULL, '黄金会员', 1), + (176, 34, 2, NULL, '白金会员', 1), + (177, 34, 3, NULL, '钻石会员', 1), + (198, 29, 1, NULL, '黄金会员', 1), + (199, 29, 2, NULL, '白金会员', 1), + (200, 29, 3, NULL, '钻石会员', 1), + (219, 37, 1, NULL, '黄金会员', 1), + (220, 37, 2, NULL, '白金会员', 1), + (221, 37, 3, NULL, '钻石会员', 1), + (270, 26, 1, NULL, '黄金会员', 1), + (271, 26, 2, NULL, '白金会员', 1), + (272, 26, 3, NULL, '钻石会员', 1), + (273, 27, 1, NULL, '黄金会员', 1), + (274, 27, 2, NULL, '白金会员', 1), + (275, 27, 3, NULL, '钻石会员', 1), + (276, 42, 1, NULL, '黄金会员', 1), + (277, 42, 2, NULL, '白金会员', 1), + (278, 42, 3, NULL, '钻石会员', 1), + (279, 42, 5, NULL, '垃圾会员', 1), + (305, 43, 1, NULL, '黄金会员', 1), + (306, 43, 2, NULL, '白金会员', 1), + (307, 43, 3, NULL, '钻石会员', 1), + (308, 43, 5, NULL, '垃圾会员', 1), + (309, 28, 1, 667.00, '黄金会员', 1), + (310, 28, 2, 555.00, '白金会员', 1), + (311, 28, 3, 444.00, '钻石会员', 1), + (312, 23, 1, 88.00, '黄金会员', 1), + (313, 23, 2, 88.00, '白金会员', 1), + (314, 23, 3, 66.00, '钻石会员', 1), + (319, 45, 1, NULL, '黄金会员', 1), + (320, 45, 2, NULL, '白金会员', 1), + (321, 45, 3, NULL, '钻石会员', 1), + (322, 45, 5, NULL, '垃圾会员', 1), + (323, 46, 1, NULL, '黄金会员', 1), + (324, 46, 2, NULL, '白金会员', 1), + (325, 46, 3, NULL, '钻石会员', 1), + (326, 46, 5, NULL, '垃圾会员', 1), + (327, 47, 1, NULL, '黄金会员', 1), + (328, 47, 2, NULL, '白金会员', 1), + (329, 47, 3, NULL, '钻石会员', 1), + (330, 47, 5, NULL, '垃圾会员', 1), + (350, 30, 1, NULL, '黄金会员', 1), + (351, 30, 2, NULL, '白金会员', 1), + (352, 30, 3, NULL, '钻石会员', 1), + (353, 30, 1, NULL, '黄金会员', 1), + (354, 30, 2, NULL, '白金会员', 1), + (355, 30, 3, NULL, '钻石会员', 1), + (356, 30, 1, NULL, '黄金会员', 1), + (357, 30, 2, NULL, '白金会员', 1), + (358, 30, 3, NULL, '钻石会员', 1), + (359, 30, 1, NULL, '黄金会员', 1), + (360, 30, 2, NULL, '白金会员', 1), + (361, 30, 3, NULL, '钻石会员', 1), + (362, 30, 1, NULL, '黄金会员', 1), + (363, 30, 2, NULL, '白金会员', 1), + (364, 30, 3, NULL, '钻石会员', 1), + (385, 49, 1, NULL, '黄金会员', 1), + (386, 49, 1, NULL, '黄金会员', 1), + (387, 49, 2, NULL, '白金会员', 1), + (388, 49, 2, NULL, '白金会员', 1), + (389, 49, 3, NULL, '钻石会员', 1), + (390, 49, 3, NULL, '钻石会员', 1), + (391, 49, 5, NULL, '垃圾会员', 1), + (392, 49, 5, NULL, '垃圾会员', 1), + (393, 53, 1, NULL, '黄金会员', 1), + (394, 53, 2, NULL, '白金会员', 1), + (395, 53, 3, NULL, '钻石会员', 1), + (396, 53, 5, NULL, '垃圾会员', 1), + (397, 53, 1, NULL, '黄金会员', 1), + (398, 53, 2, NULL, '白金会员', 1), + (399, 53, 3, NULL, '钻石会员', 1), + (400, 53, 5, NULL, '垃圾会员', 1), + (401, 53, 1, NULL, '黄金会员', 1), + (402, 53, 2, NULL, '白金会员', 1), + (403, 53, 3, NULL, '钻石会员', 1), + (404, 53, 5, NULL, '垃圾会员', 1), + (405, 53, 1, NULL, '黄金会员', 1), + (406, 53, 2, NULL, '白金会员', 1), + (407, 53, 3, NULL, '钻石会员', 1), + (408, 53, 5, NULL, '垃圾会员', 1), + (409, 53, 1, NULL, '黄金会员', 1), + (410, 53, 2, NULL, '白金会员', 1), + (411, 53, 3, NULL, '钻石会员', 1), + (412, 53, 5, NULL, '垃圾会员', 1), + (413, 53, 1, NULL, '黄金会员', 1), + (414, 53, 2, NULL, '白金会员', 1), + (415, 53, 3, NULL, '钻石会员', 1), + (416, 53, 5, NULL, '垃圾会员', 1), + (417, 53, 1, NULL, '黄金会员', 1), + (418, 53, 2, NULL, '白金会员', 1), + (419, 53, 3, NULL, '钻石会员', 1), + (420, 53, 5, NULL, '垃圾会员', 1), + (421, 53, 1, NULL, '黄金会员', 1), + (422, 53, 2, NULL, '白金会员', 1), + (423, 53, 3, NULL, '钻石会员', 1), + (424, 53, 5, NULL, '垃圾会员', 1), + (425, 53, 1, NULL, '黄金会员', 1), + (426, 53, 2, NULL, '白金会员', 1), + (427, 53, 3, NULL, '钻石会员', 1), + (428, 53, 5, NULL, '垃圾会员', 1), + (429, 53, 1, NULL, '黄金会员', 1), + (430, 53, 2, NULL, '白金会员', 1), + (431, 53, 3, NULL, '钻石会员', 1), + (432, 53, 5, NULL, '垃圾会员', 1), + (433, 53, 1, NULL, '黄金会员', 1), + (434, 53, 2, NULL, '白金会员', 1), + (435, 53, 3, NULL, '钻石会员', 1), + (436, 53, 5, NULL, '垃圾会员', 1), + (437, 53, 1, NULL, '黄金会员', 1), + (438, 53, 2, NULL, '白金会员', 1), + (439, 53, 3, NULL, '钻石会员', 1), + (440, 53, 5, NULL, '垃圾会员', 1), + (441, 53, 1, NULL, '黄金会员', 1), + (442, 53, 2, NULL, '白金会员', 1), + (443, 53, 3, NULL, '钻石会员', 1), + (444, 53, 5, NULL, '垃圾会员', 1), + (445, 53, 1, NULL, '黄金会员', 1), + (446, 53, 2, NULL, '白金会员', 1), + (447, 53, 3, NULL, '钻石会员', 1), + (448, 53, 5, NULL, '垃圾会员', 1), + (449, 53, 1, NULL, '黄金会员', 1), + (450, 53, 2, NULL, '白金会员', 1), + (451, 53, 3, NULL, '钻石会员', 1), + (452, 53, 5, NULL, '垃圾会员', 1), + (453, 53, 1, NULL, '黄金会员', 1), + (454, 53, 2, NULL, '白金会员', 1), + (455, 53, 3, NULL, '钻石会员', 1), + (456, 53, 5, NULL, '垃圾会员', 1), + (457, 53, 1, NULL, '黄金会员', 1), + (458, 53, 2, NULL, '白金会员', 1), + (459, 53, 3, NULL, '钻石会员', 1), + (460, 53, 5, NULL, '垃圾会员', 1), + (461, 53, 1, NULL, '黄金会员', 1), + (462, 53, 2, NULL, '白金会员', 1), + (463, 53, 3, NULL, '钻石会员', 1), + (464, 53, 5, NULL, '垃圾会员', 1), + (465, 53, 1, NULL, '黄金会员', 1), + (466, 53, 2, NULL, '白金会员', 1), + (467, 53, 3, NULL, '钻石会员', 1), + (468, 53, 5, NULL, '垃圾会员', 1), + (469, 53, 1, NULL, '黄金会员', 1), + (470, 53, 2, NULL, '白金会员', 1), + (471, 53, 3, NULL, '钻石会员', 1), + (472, 53, 5, NULL, '垃圾会员', 1), + (473, 53, 1, NULL, '黄金会员', 1), + (474, 53, 2, NULL, '白金会员', 1), + (475, 53, 3, NULL, '钻石会员', 1), + (476, 53, 5, NULL, '垃圾会员', 1), + (477, 53, 1, NULL, '黄金会员', 1), + (478, 53, 2, NULL, '白金会员', 1), + (479, 53, 3, NULL, '钻石会员', 1), + (480, 53, 5, NULL, '垃圾会员', 1), + (481, 53, 1, NULL, '黄金会员', 1), + (482, 53, 2, NULL, '白金会员', 1), + (483, 53, 3, NULL, '钻石会员', 1), + (484, 53, 5, NULL, '垃圾会员', 1), + (485, 53, 1, NULL, '黄金会员', 1), + (486, 53, 2, NULL, '白金会员', 1), + (487, 53, 3, NULL, '钻石会员', 1), + (488, 53, 5, NULL, '垃圾会员', 1), + (489, 53, 1, NULL, '黄金会员', 1), + (490, 53, 2, NULL, '白金会员', 1), + (491, 53, 3, NULL, '钻石会员', 1), + (492, 53, 5, NULL, '垃圾会员', 1), + (493, 53, 1, NULL, '黄金会员', 1), + (494, 53, 2, NULL, '白金会员', 1), + (495, 53, 3, NULL, '钻石会员', 1), + (496, 53, 5, NULL, '垃圾会员', 1), + (497, 53, 1, NULL, '黄金会员', 1), + (498, 53, 2, NULL, '白金会员', 1), + (499, 53, 3, NULL, '钻石会员', 1), + (500, 53, 5, NULL, '垃圾会员', 1), + (501, 53, 1, NULL, '黄金会员', 1), + (502, 53, 2, NULL, '白金会员', 1), + (503, 53, 3, NULL, '钻石会员', 1), + (504, 53, 5, NULL, '垃圾会员', 1), + (505, 54, 1, NULL, '黄金会员', 1), + (506, 54, 2, NULL, '白金会员', 1), + (507, 54, 3, NULL, '钻石会员', 1), + (508, 54, 5, NULL, '垃圾会员', 1), + (509, 55, 1, NULL, '黄金会员', 1), + (510, 55, 2, NULL, '白金会员', 1), + (511, 55, 3, NULL, '钻石会员', 1), + (512, 55, 5, NULL, '垃圾会员', 1), + (673, 56, 1, NULL, '黄金会员', 1), + (674, 56, 2, NULL, '白金会员', 1), + (675, 56, 3, NULL, '钻石会员', 1), + (676, 56, 5, NULL, '垃圾会员', 1), + (677, 57, 1, NULL, '黄金会员', 1), + (678, 57, 2, NULL, '白金会员', 1), + (679, 57, 3, NULL, '钻石会员', 1), + (680, 57, 5, NULL, '垃圾会员', 1); + +-- 导出 表 mallplus1.pms_product 结构 +DROP TABLE IF EXISTS `pms_product`; +CREATE TABLE IF NOT EXISTS `pms_product` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `brand_id` bigint(20) DEFAULT NULL, + `product_category_id` bigint(20) DEFAULT NULL, + `feight_template_id` bigint(20) DEFAULT NULL, + `product_attribute_category_id` bigint(20) DEFAULT NULL, + `name` varchar(200) DEFAULT NULL, + `pic` varchar(255) DEFAULT NULL, + `product_sn` varchar(64) DEFAULT NULL COMMENT '货号', + `delete_status` int(11) DEFAULT '0' COMMENT '删除状态:0->未删除;1->已删除', + `publish_status` int(11) DEFAULT '0' COMMENT '上架状态:0->下架;1->上架', + `new_status` int(11) DEFAULT '0' COMMENT '新品状态:0->不是新品;1->新品', + `recommand_status` int(11) DEFAULT '0' COMMENT '推荐状态;0->不推荐;1->推荐', + `verify_status` int(11) DEFAULT '0' COMMENT '审核状态:0->未审核;1->审核通过', + `sort` int(11) DEFAULT '0' COMMENT '排序', + `sale` int(11) DEFAULT '0' COMMENT '销量', + `price` decimal(10,2) DEFAULT NULL, + `promotion_price` decimal(10,2) DEFAULT '0.00' COMMENT '促销价格', + `gift_growth` int(11) DEFAULT '0' COMMENT '赠送的成长值', + `gift_point` int(11) DEFAULT '0' COMMENT '赠送的积分', + `use_point_limit` int(11) DEFAULT NULL COMMENT '限制使用的积分数', + `sub_title` varchar(255) DEFAULT NULL COMMENT '副标题', + `description` text COMMENT '商品描述', + `original_price` decimal(10,2) DEFAULT NULL COMMENT '市场价', + `stock` int(11) DEFAULT '0' COMMENT '库存', + `low_stock` int(11) DEFAULT '0' COMMENT '库存预警值', + `unit` varchar(16) DEFAULT NULL COMMENT '单位', + `weight` decimal(10,2) DEFAULT NULL COMMENT '商品重量,默认为克', + `preview_status` int(11) DEFAULT NULL COMMENT '是否为预告商品:0->不是;1->是', + `service_ids` varchar(64) DEFAULT NULL COMMENT '以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮', + `keywords` varchar(255) DEFAULT NULL, + `note` varchar(255) DEFAULT NULL, + `album_pics` varchar(255) DEFAULT NULL COMMENT '画册图片,连产品图片限制为5张,以逗号分割', + `detail_title` varchar(255) DEFAULT NULL, + `detail_desc` text, + `detail_html` text COMMENT '产品详情网页内容', + `detail_mobile_html` text COMMENT '移动端网页详情', + `promotion_start_time` datetime DEFAULT NULL COMMENT '促销开始时间', + `promotion_end_time` datetime DEFAULT NULL COMMENT '促销结束时间', + `promotion_per_limit` int(11) DEFAULT NULL COMMENT '活动限购数量', + `promotion_type` int(11) DEFAULT NULL COMMENT '促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购', + `brand_name` varchar(255) DEFAULT NULL COMMENT '品牌名称', + `product_category_name` varchar(255) DEFAULT NULL COMMENT '商品分类名称', + `supply_id` bigint(20) DEFAULT NULL, + `create_time` datetime DEFAULT NULL, + `school_id` bigint(20) DEFAULT NULL, + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + `member_id` bigint(20) DEFAULT NULL, + `hit` int(11) DEFAULT '0', + `type` int(11) DEFAULT '0', + `area_id` bigint(20) DEFAULT NULL, + `area_name` varchar(255) DEFAULT NULL, + `school_name` varchar(255) DEFAULT NULL, + `transfee` decimal(10,0) NOT NULL DEFAULT '0' COMMENT '运费', + `is_paimai` int(11) DEFAULT '1' COMMENT '1普通 2拍卖', + `expire_time` datetime DEFAULT NULL COMMENT '到期时间', + `store_name` varchar(255) DEFAULT NULL, + `is_fenxiao` int(11) NOT NULL DEFAULT '0', + `is_vip` int(11) NOT NULL DEFAULT '0', + `tags` varchar(127) DEFAULT NULL, + `store_class_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + KEY `IDX_PRODUCT_STORE` (`store_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=194 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='商品信息'; + +-- 正在导出表 mallplus1.pms_product 的数据:~138 rows (大约) +INSERT INTO `pms_product` (`id`, `brand_id`, `product_category_id`, `feight_template_id`, `product_attribute_category_id`, `name`, `pic`, `product_sn`, `delete_status`, `publish_status`, `new_status`, `recommand_status`, `verify_status`, `sort`, `sale`, `price`, `promotion_price`, `gift_growth`, `gift_point`, `use_point_limit`, `sub_title`, `description`, `original_price`, `stock`, `low_stock`, `unit`, `weight`, `preview_status`, `service_ids`, `keywords`, `note`, `album_pics`, `detail_title`, `detail_desc`, `detail_html`, `detail_mobile_html`, `promotion_start_time`, `promotion_end_time`, `promotion_per_limit`, `promotion_type`, `brand_name`, `product_category_name`, `supply_id`, `create_time`, `school_id`, `store_id`, `member_id`, `hit`, `type`, `area_id`, `area_name`, `school_name`, `transfee`, `is_paimai`, `expire_time`, `store_name`, `is_fenxiao`, `is_vip`, `tags`, `store_class_id`) VALUES + (1, 1001000, 1008009, NULL, 1005000, '轻奢纯棉刺绣水洗四件套', 'http://yanxuan.nosdn.127.net/8ab2d3287af0cefa2cc539e40600621d.png', '1006002', 1, 1, 1, 0, 1, 23, 1008013, 919.00, 0.00, 1008009, 1008009, NULL, '设计师原款,精致绣花', '设计师原款,精致绣花', 899.00, 285, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/8ab2d3287af0cefa2cc539e40600621d.png', '设计师原款,精致绣花', '设计师原款,精致绣花', '

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

 

', '

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

 

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 38, 0, 12, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (2, 1001000, 1008008, NULL, 1005000, '秋冬保暖加厚澳洲羊毛被', 'http://yanxuan.nosdn.127.net/66425d1ed50b3968fed27c822fdd32e0.png', '1006007', 1, 1, 1, 0, 1, 17, 1008012, 479.00, 0.00, 1008008, 1008008, NULL, '臻品级澳洲进口羊毛', '臻品级澳洲进口羊毛', 459.00, 1006004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/66425d1ed50b3968fed27c822fdd32e0.png', '臻品级澳洲进口羊毛', '臻品级澳洲进口羊毛', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 28, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (3, 1001000, 1008008, NULL, 1005000, '秋冬保暖加厚细羊毛被', 'http://yanxuan.nosdn.127.net/8fe022126a2789d970f82853be13a5e6.png', '1006010', 1, 1, 1, 0, 1, 16, 1008010, 679.00, 0.00, 1008008, 1008008, NULL, '细腻绵羊毛,保暖性增加一倍', '细腻绵羊毛,保暖性增加一倍', 659.00, 1006008, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/8fe022126a2789d970f82853be13a5e6.png', '细腻绵羊毛,保暖性增加一倍', '细腻绵羊毛,保暖性增加一倍', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 13, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (4, 1001045, 1036000, NULL, 1005000, '双宫茧桑蚕丝被 空调被', 'http://yanxuan.nosdn.127.net/583812520c68ca7995b6fac4c67ae2c7.png', '1006013', 1, 1, 1, 0, 1, 7, 1036001, 719.00, 0.00, 1036000, 1036000, NULL, '一级桑蚕丝,吸湿透气柔软', '一级桑蚕丝,吸湿透气柔软', 699.00, 1006013, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/583812520c68ca7995b6fac4c67ae2c7.png', '一级桑蚕丝,吸湿透气柔软', '一级桑蚕丝,吸湿透气柔软', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 4, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (5, 1001045, 1008008, NULL, 1005000, '双宫茧桑蚕丝被 子母被', 'http://yanxuan.nosdn.127.net/2b537159f0f789034bf8c4b339c43750.png', '1006014', 1, 1, 1, 0, 1, 15, 1008010, 14199.00, 0.00, 1008008, 1008008, NULL, '双层子母被,四季皆可使用', '双层子母被,四季皆可使用', 1399.00, 1006014, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/2b537159f0f789034bf8c4b339c43750.png', '双层子母被,四季皆可使用', '双层子母被,四季皆可使用', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 7, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (6, 1001000, 1008008, NULL, 1005000, '白鹅绒秋冬加厚羽绒被', 'http://yanxuan.nosdn.127.net/9791006f25e26b2d7c81f41f87ce8619.png', '1009009', 1, 1, 1, 0, 1, 19, 1008008, 2019.00, 0.00, 1008008, 1008008, NULL, '热销5万条,一条被子过冬', '热销5万条,一条被子过冬', 1999.00, 1009009, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/9791006f25e26b2d7c81f41f87ce8619.png', '热销5万条,一条被子过冬', '热销5万条,一条被子过冬', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (7, 1001000, 1008008, NULL, 1005000, '可水洗舒柔丝羽绒枕', 'http://yanxuan.nosdn.127.net/a196b367f23ccfd8205b6da647c62b84.png', '1009012', 1, 1, 1, 0, 1, 2, 1008008, 79.00, 0.00, 1008008, 1008008, NULL, '超细纤维,蓬松轻盈回弹', '超细纤维,蓬松轻盈回弹', 59.00, 1009012, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a196b367f23ccfd8205b6da647c62b84.png', '超细纤维,蓬松轻盈回弹', '超细纤维,蓬松轻盈回弹', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (8, 1001000, 1008008, NULL, 1005000, '可水洗抗菌防螨丝羽绒枕', 'http://yanxuan.nosdn.127.net/da56fda947d0f430d5f4cf4aba14e679.png', '1009013', 1, 1, 1, 0, 1, 3, 1008008, 119.00, 0.00, 1008008, 1008008, NULL, '进口防螨布,热销50万件', '进口防螨布,热销50万件', 99.00, 1009013, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/da56fda947d0f430d5f4cf4aba14e679.png', '进口防螨布,热销50万件', '进口防螨布,热销50万件', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (9, 1001000, 1008002, NULL, 1005000, '日式和风懒人沙发', 'http://yanxuan.nosdn.127.net/149dfa87a7324e184c5526ead81de9ad.png', '1009024', 1, 1, 1, 0, 1, 1, 1008002, 619.00, 0.00, 1008002, 1008002, NULL, '优质莱卡纯棉,和风家居新体验', '优质莱卡纯棉,和风家居新体验', 599.00, 1009024, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/149dfa87a7324e184c5526ead81de9ad.png', '优质莱卡纯棉,和风家居新体验', '优质莱卡纯棉,和风家居新体验', '




', '




', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 5, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (10, 1001000, 1008009, NULL, 1005000, '澳洲纯羊毛盖毯 加厚款', 'http://yanxuan.nosdn.127.net/3bec70b85337c3eec182e54380ef7370.png', '1010000', 1, 1, 1, 0, 1, 36, 1008009, 419.00, 0.00, 1008009, 1008009, NULL, '温暖加厚设计', '温暖加厚设计', 399.00, 1010000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/3bec70b85337c3eec182e54380ef7370.png', '温暖加厚设计', '温暖加厚设计', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 4, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (11, 1001000, 1008009, NULL, 1005000, '澳洲纯羊毛盖毯 舒适款', 'http://yanxuan.nosdn.127.net/a8b0a5def7d64e411dd98bdfb1fc989b.png', '1010001', 1, 1, 1, 0, 1, 33, 1008009, 319.00, 0.00, 1008009, 1008009, NULL, '100%澳洲美利奴羊毛', '100%澳洲美利奴羊毛', 299.00, 1010001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a8b0a5def7d64e411dd98bdfb1fc989b.png', '100%澳洲美利奴羊毛', '100%澳洲美利奴羊毛', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 4, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (12, 1001000, 1036000, NULL, 1005000, '色织精梳AB纱格纹空调被', 'http://yanxuan.nosdn.127.net/0984c9388a2c3fd2335779da904be393.png', '1011004', 1, 1, 1, 0, 1, 2, 1036000, 219.00, 0.00, 1036000, 1036000, NULL, '加大加厚,双色精彩', '加大加厚,双色精彩', 199.00, 1011004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/0984c9388a2c3fd2335779da904be393.png', '加大加厚,双色精彩', '加大加厚,双色精彩', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (13, 1001000, 1008002, NULL, 1005000, '典雅美式全棉刺绣抱枕', 'http://yanxuan.nosdn.127.net/a2045004de8a6225289376ad54317fc8.png', '1015007', 1, 1, 1, 0, 1, 4, 1008002, 79.00, 0.00, 1008002, 1008002, NULL, '典雅毛线绣,精致工艺', '典雅毛线绣,精致工艺', 59.00, 1015007, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a2045004de8a6225289376ad54317fc8.png', '典雅毛线绣,精致工艺', '典雅毛线绣,精致工艺', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 4, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (14, 1001000, 1008008, NULL, 1005000, '升级款护颈波浪记忆枕', 'http://yanxuan.nosdn.127.net/77c09feb378814be712741b273d16656.png', '1019000', 1, 1, 1, 0, 1, 8, 1008008, 119.00, 0.00, 1008008, 1008008, NULL, '享受自在侧睡', '享受自在侧睡', 99.00, 1019000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/77c09feb378814be712741b273d16656.png', '享受自在侧睡', '享受自在侧睡', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 3, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (15, 1001000, 1008008, NULL, 1005000, '升级款护颈加翼记忆枕', 'http://yanxuan.nosdn.127.net/7644803ab19b3e398456aa5a54229363.png', '1019001', 1, 1, 1, 0, 1, 9, 1008008, 129.00, 0.00, 1008008, 1008008, NULL, '仰睡优质装备', '仰睡优质装备', 109.00, 1019001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/7644803ab19b3e398456aa5a54229363.png', '仰睡优质装备', '仰睡优质装备', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (16, 1001000, 1008008, NULL, 1005000, '升级款护颈双人记忆枕', 'http://yanxuan.nosdn.127.net/0118039f7cda342651595d994ed09567.png', '1019002', 1, 1, 1, 0, 1, 10, 1008008, 219.00, 0.00, 1008008, 1008008, NULL, '共享亲密2人时光', '共享亲密2人时光', 199.00, 1019002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/0118039f7cda342651595d994ed09567.png', '共享亲密2人时光', '共享亲密2人时光', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (17, 1001000, 1008008, NULL, 1005000, '植物填充护颈夜交藤枕', 'http://yanxuan.nosdn.127.net/60c3707837c97a21715ecc3986a744ce.png', '1019006', 1, 1, 1, 0, 1, 7, 1008008, 119.00, 0.00, 1008008, 1008008, NULL, '健康保护枕', '健康保护枕', 99.00, 1019006, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/60c3707837c97a21715ecc3986a744ce.png', '健康保护枕', '健康保护枕', '

', '

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (18, 1001000, 1008002, NULL, 1005000, '升级款记忆绵护椎腰靠', 'http://yanxuan.nosdn.127.net/819fdf1f635a694166bcfdd426416e8c.png', '1020000', 1, 1, 1, 0, 1, 15, 1008002, 99.00, 0.00, 1008002, 1008002, NULL, '人体工学设计,缓解腰背疼痛', '人体工学设计,缓解腰背疼痛', 79.00, 1020000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/819fdf1f635a694166bcfdd426416e8c.png', '人体工学设计,缓解腰背疼痛', '人体工学设计,缓解腰背疼痛', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (19, 1001020, 1008009, NULL, 1005000, '澳洲羊羔毛AB面盖毯', 'http://yanxuan.nosdn.127.net/654b02045fde802b51d5bbf09a8b75f2.png', '1021004', 1, 1, 1, 0, 1, 32, 1008009, 319.00, 0.00, 1008009, 1008009, NULL, '冬暖夏凉,吸湿排汗。', '冬暖夏凉,吸湿排汗。', 299.00, 1021004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/654b02045fde802b51d5bbf09a8b75f2.png', '冬暖夏凉,吸湿排汗。', '冬暖夏凉,吸湿排汗。', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (20, 1001000, 1008009, NULL, 1005000, '色织水洗棉纯色四件套', 'http://yanxuan.nosdn.127.net/25d734cc0b2eae8f63f9deb1e4ad5f64.png', '1021010', 1, 1, 1, 0, 1, 15, 1008009, 319.00, 0.00, 1008009, 1008009, NULL, '做旧褶皱感,亲肤舒适', '做旧褶皱感,亲肤舒适', 299.00, 1021010, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/25d734cc0b2eae8f63f9deb1e4ad5f64.png', '做旧褶皱感,亲肤舒适', '做旧褶皱感,亲肤舒适', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (21, 1001020, 1008009, NULL, 1005000, '意式毛线绣球四件套', 'http://yanxuan.nosdn.127.net/5350e35e6f22165f38928f3c2c52ac57.png', '1022000', 1, 1, 1, 0, 1, 18, 1008009, 319.00, 0.00, 1008009, 1008009, NULL, '浪漫毛线绣球,简约而不简单', '浪漫毛线绣球,简约而不简单', 299.00, 1022000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/5350e35e6f22165f38928f3c2c52ac57.png', '浪漫毛线绣球,简约而不简单', '浪漫毛线绣球,简约而不简单', '
















', '
















', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (22, 1001020, 1008009, NULL, 1005000, '法式浪漫绣球四件套', 'http://yanxuan.nosdn.127.net/bf8faee3b27b480f63b70056597b626d.png', '1022001', 1, 1, 1, 0, 1, 16, 1008009, 369.00, 0.00, 1008009, 1008009, NULL, '浪漫绣球,法式般的呵护', '浪漫绣球,法式般的呵护', 349.00, 1022001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/bf8faee3b27b480f63b70056597b626d.png', '浪漫绣球,法式般的呵护', '浪漫绣球,法式般的呵护', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (23, 1001000, 1036000, NULL, 1005000, '色织华夫格夏凉被', 'http://yanxuan.nosdn.127.net/07376e78bf4fb8a5aa8e6a0b1437c3ad.png', '1023012', 1, 1, 1, 0, 1, 4, 1036000, 319.00, 0.00, 1036000, 1036000, NULL, '凹凸华夫格织法,舒适轻柔', '凹凸华夫格织法,舒适轻柔', 299.00, 1023012, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/07376e78bf4fb8a5aa8e6a0b1437c3ad.png', '凹凸华夫格织法,舒适轻柔', '凹凸华夫格织法,舒适轻柔', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (24, 1001020, 1008009, NULL, 1005000, '纯棉色织缎纹四件套', 'http://yanxuan.nosdn.127.net/e0b928ada728c140f6965bb41f47407b.png', '1023032', 1, 1, 1, 0, 1, 20, 1008009, 469.00, 0.00, 1008009, 1008009, NULL, '色织缎纹工艺,亲肤舒适', '色织缎纹工艺,亲肤舒适', 449.00, 1023032, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/e0b928ada728c140f6965bb41f47407b.png', '色织缎纹工艺,亲肤舒适', '色织缎纹工艺,亲肤舒适', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (25, 1001000, 1036000, NULL, 1005000, '泡泡纱可水洗夏凉被', 'http://yanxuan.nosdn.127.net/715899c65c023bb4973fb0466a5b79d6.png', '1023034', 1, 1, 1, 0, 1, 5, 1036000, 319.00, 0.00, 1036001, 1036000, NULL, '全棉泡泡纱,柔软亲肤', '全棉泡泡纱,柔软亲肤', 299.00, 1023034, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/715899c65c023bb4973fb0466a5b79d6.png', '全棉泡泡纱,柔软亲肤', '全棉泡泡纱,柔软亲肤', '

', '

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 4, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (26, 1001000, 1036000, NULL, 1005000, '色织六层纱布夏凉被', 'http://yanxuan.nosdn.127.net/6252f53aaf36c072b6678f3d8c635132.png', '1027004', 1, 1, 1, 0, 1, 3, 1036000, 269.00, 0.00, 1036000, 1036000, NULL, '柔软纱布,婴童可用', '柔软纱布,婴童可用', 249.00, 1027004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/6252f53aaf36c072b6678f3d8c635132.png', '柔软纱布,婴童可用', '柔软纱布,婴童可用', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (27, 1001000, 1008009, NULL, 1005000, '淡墨天丝麻渐变四件套', 'http://yanxuan.nosdn.127.net/25fe52f44853eb45f610846991bc4d9d.png', '1029005', 1, 1, 1, 0, 1, 24, 1008009, 979.00, 0.00, 1008009, 1008009, NULL, '亲肤透气,告别干燥秋季', '亲肤透气,告别干燥秋季', 959.00, 1029005, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/25fe52f44853eb45f610846991bc4d9d.png', '亲肤透气,告别干燥秋季', '亲肤透气,告别干燥秋季', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (28, 1001000, 1008002, NULL, 1005000, '160*230羊毛手工地毯', 'http://yanxuan.nosdn.127.net/88dc5d80c6f84102f003ecd69c86e1cf.png', '1030001', 1, 1, 1, 0, 1, 25, 1008002, 989.00, 0.00, 1008002, 1008002, NULL, '印度进口,手工编织,简约百搭', '印度进口,手工编织,简约百搭', 969.00, 1030001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/88dc5d80c6f84102f003ecd69c86e1cf.png', '印度进口,手工编织,简约百搭', '印度进口,手工编织,简约百搭', '




', '




', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (29, 1001000, 1008002, NULL, 1005000, '160*230羊毛圈绒枪刺地毯', 'http://yanxuan.nosdn.127.net/8b9328496990357033d4259fda250679.png', '1030002', 1, 1, 1, 0, 1, 24, 1008002, 919.00, 0.00, 1008002, 1008002, NULL, '印度进口,手工枪刺,简约百搭', '印度进口,手工枪刺,简约百搭', 899.00, 1030002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/8b9328496990357033d4259fda250679.png', '印度进口,手工枪刺,简约百搭', '印度进口,手工枪刺,简约百搭', '





', '





', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (30, 1001000, 1008002, NULL, 1005000, '160*230羊毛手工几何地毯', 'http://yanxuan.nosdn.127.net/1d1ab099dc0e254c15e57302e78e200b.png', '1030003', 1, 1, 1, 0, 1, 23, 1008002, 1489.00, 0.00, 1008002, 1008002, NULL, '几何图案,打造立体的时尚感', '几何图案,打造立体的时尚感', 1469.00, 1030003, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/1d1ab099dc0e254c15e57302e78e200b.png', '几何图案,打造立体的时尚感', '几何图案,打造立体的时尚感', '





', '





', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (31, 1001020, 1008009, NULL, 1005000, '日式穿线绣四件套', 'http://yanxuan.nosdn.127.net/e84f2e3b3d39cfdc8af5c3954a877aae.png', '1030004', 1, 1, 1, 0, 1, 19, 1008009, 419.00, 0.00, 1008009, 1008009, NULL, '源自日本的刺子绣工艺', '源自日本的刺子绣工艺', 399.00, 1030004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/e84f2e3b3d39cfdc8af5c3954a877aae.png', '源自日本的刺子绣工艺', '源自日本的刺子绣工艺', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (32, 1001020, 1008009, NULL, 1005000, '撞色全亚麻四件套', 'http://yanxuan.nosdn.127.net/86f57132793d3e3c924a7ba529849288.png', '1030005', 1, 1, 1, 0, 1, 22, 1008009, 919.00, 0.00, 1008009, 1008009, NULL, '纯亚麻面料,透气亲肤', '纯亚麻面料,透气亲肤', 899.00, 1030005, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/86f57132793d3e3c924a7ba529849288.png', '纯亚麻面料,透气亲肤', '纯亚麻面料,透气亲肤', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (33, 1001000, 1008009, NULL, 1005000, '日式纯棉色织AB格四件套', 'http://yanxuan.nosdn.127.net/578ffec952eb25ff072d8ea1b676bfd2.png', '1030006', 1, 1, 1, 0, 1, 21, 1008009, 349.00, 0.00, 1008009, 1008009, NULL, '凹凸立体格纹,细节体现质感', '凹凸立体格纹,细节体现质感', 329.00, 1030006, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/578ffec952eb25ff072d8ea1b676bfd2.png', '凹凸立体格纹,细节体现质感', '凹凸立体格纹,细节体现质感', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (34, 1001000, 1008002, NULL, 1005000, '全棉单面割绒浴室地垫', 'http://yanxuan.nosdn.127.net/ee92704f3b8323905b51fc647823e6e5.png', '1035006', 1, 1, 1, 0, 1, 32, 1008002, 76.00, 0.00, 1008002, 1008002, NULL, '手工制作,纯棉材质,柔软舒适', '手工制作,纯棉材质,柔软舒适', 56.00, 1035006, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/ee92704f3b8323905b51fc647823e6e5.png', '手工制作,纯棉材质,柔软舒适', '手工制作,纯棉材质,柔软舒适', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (35, 1001000, 1008008, NULL, 1005000, '高山苦荞麦枕', 'http://yanxuan.nosdn.127.net/ffd7efe9d5225dff9f36d5110b027caa.png', '1036002', 1, 1, 1, 0, 1, 5, 1008008, 119.00, 0.00, 1008008, 1008008, NULL, '原生苦荞,健康护颈', '原生苦荞,健康护颈', 99.00, 1036002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/ffd7efe9d5225dff9f36d5110b027caa.png', '原生苦荞,健康护颈', '原生苦荞,健康护颈', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (36, 1001000, 1008009, NULL, 1005000, '全棉针织素色床笠', 'http://yanxuan.nosdn.127.net/da1bc2c10f7b2e53f2466bd23953b982.png', '1036013', 1, 1, 1, 0, 1, 27, 1008009, 129.00, 0.00, 1008009, 1008009, NULL, '百隆色纺纱,亲肤舒适,裸睡神器', '百隆色纺纱,亲肤舒适,裸睡神器', 109.00, 1036013, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/da1bc2c10f7b2e53f2466bd23953b982.png', '百隆色纺纱,亲肤舒适,裸睡神器', '百隆色纺纱,亲肤舒适,裸睡神器', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (37, 1001000, 1008009, NULL, 1005000, '日式色织水洗棉床笠', 'http://yanxuan.nosdn.127.net/513d08057c69fdb7d19cc810e976118d.png', '1036016', 1, 1, 1, 0, 1, 28, 1008009, 129.00, 0.00, 1008009, 1008009, NULL, '色织水洗工艺,亲肤柔软', '色织水洗工艺,亲肤柔软', 109.00, 1036016, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/513d08057c69fdb7d19cc810e976118d.png', '色织水洗工艺,亲肤柔软', '色织水洗工艺,亲肤柔软', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (38, 1001000, 1008008, NULL, 1005000, '安睡慢回弹记忆绵床垫', 'http://yanxuan.nosdn.127.net/a03ea6f4509439acdafcb7ceba1debe0.png', '1037011', 1, 1, 1, 0, 1, 22, 1008008, 619.00, 0.00, 1008008, 1008008, NULL, '5cm记忆绵的亲密包裹', '5cm记忆绵的亲密包裹', 599.00, 1037011, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a03ea6f4509439acdafcb7ceba1debe0.png', '5cm记忆绵的亲密包裹', '5cm记忆绵的亲密包裹', '



', '



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (39, 1001000, 1008008, NULL, 1005000, '圆形护颈苦荞麦枕', 'http://yanxuan.nosdn.127.net/ffd2c91c7cf9c6e0f630595f7679b95d.png', '1037012', 1, 1, 1, 0, 1, 6, 1008008, 89.00, 0.00, 1008008, 1008008, NULL, '高山苦荞填充,放松颈椎', '高山苦荞填充,放松颈椎', 69.00, 1037012, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/ffd2c91c7cf9c6e0f630595f7679b95d.png', '高山苦荞填充,放松颈椎', '高山苦荞填充,放松颈椎', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (40, 1001000, 1008002, NULL, 1005000, '多功能午睡枕', 'http://yanxuan.nosdn.127.net/c8ca0600fa7ba11ca8be6a3173dd38c9.png', '1039051', 1, 1, 1, 0, 1, 14, 1008002, 99.00, 0.00, 1008002, 1008002, NULL, '放松自在的午后时光', '放松自在的午后时光', 79.00, 1039051, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/c8ca0600fa7ba11ca8be6a3173dd38c9.png', '放松自在的午后时光', '放松自在的午后时光', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (41, 1001000, 1008002, NULL, 1005000, '日式记忆绵坐垫', 'http://yanxuan.nosdn.127.net/2a95b16f5b147cab4845641bee738a2e.png', '1043005', 1, 1, 1, 0, 1, 11, 1008002, 79.00, 0.00, 1008002, 1008002, NULL, '活性炭记忆绵,缓解压力', '活性炭记忆绵,缓解压力', 59.00, 1043005, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/2a95b16f5b147cab4845641bee738a2e.png', '活性炭记忆绵,缓解压力', '活性炭记忆绵,缓解压力', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (42, 1001000, 1008009, NULL, 1005000, '澳洲羊羔毛华夫格盖毯', 'http://yanxuan.nosdn.127.net/a803c68ea88e3116023b45ac9ea99510.png', '1044012', 1, 1, 1, 0, 1, 35, 1008009, 369.00, 0.00, 1008009, 1008009, NULL, '美利奴全新羊羔毛的细腻触感', '美利奴全新羊羔毛的细腻触感', 349.00, 1044012, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a803c68ea88e3116023b45ac9ea99510.png', '美利奴全新羊羔毛的细腻触感', '美利奴全新羊羔毛的细腻触感', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (43, 1001020, 1008009, NULL, 1005000, '美利奴羊毛盖毯设计师款', 'http://yanxuan.nosdn.127.net/2bfecfe58ea3ee0d554f2ed58e9ba30a.png', '1046044', 1, 1, 1, 0, 1, 34, 1008009, 369.00, 0.00, 1008009, 1008009, NULL, '欧洲知名品牌设计师联合打造', '欧洲知名品牌设计师联合打造', 349.00, 1046044, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/2bfecfe58ea3ee0d554f2ed58e9ba30a.png', '欧洲知名品牌设计师联合打造', '欧洲知名品牌设计师联合打造', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (44, 1001000, 1008002, NULL, 1005000, '日式色织水洗条纹抱枕', 'http://yanxuan.nosdn.127.net/ce980c16810a471dffff6aa8d7bac754.png', '1048005', 1, 1, 1, 0, 1, 5, 1008002, 79.00, 0.00, 1008002, 1008002, NULL, '色织面料,水洗工艺,柔软亲肤', '色织面料,水洗工艺,柔软亲肤', 59.00, 1048005, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/ce980c16810a471dffff6aa8d7bac754.png', '色织面料,水洗工艺,柔软亲肤', '色织面料,水洗工艺,柔软亲肤', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (45, 1001000, 1008002, NULL, 1005000, '300根全棉羽丝绒抱枕芯', 'http://yanxuan.nosdn.127.net/3d437c8d68e2ec3f3dd61001bf98f16e.png', '1055012', 1, 1, 1, 0, 1, 10, 1008002, 59.00, 0.00, 1008002, 1008002, NULL, '仪征3D填充,充实的满足感', '仪征3D填充,充实的满足感', 39.00, 1055012, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/3d437c8d68e2ec3f3dd61001bf98f16e.png', '仪征3D填充,充实的满足感', '仪征3D填充,充实的满足感', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (46, 1001000, 1008002, NULL, 1005000, '日式纯棉针织条纹抱枕', 'http://yanxuan.nosdn.127.net/23e0203f1512f33e605f61c28fa03d2d.png', '1055016', 1, 1, 1, 0, 1, 8, 1008002, 79.00, 0.00, 1008003, 1008002, NULL, '亲肤舒适,宛如妈妈的怀抱', '亲肤舒适,宛如妈妈的怀抱', 59.00, 1055016, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/23e0203f1512f33e605f61c28fa03d2d.png', '亲肤舒适,宛如妈妈的怀抱', '亲肤舒适,宛如妈妈的怀抱', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (47, 1001000, 1008002, NULL, 1005000, '日式纯色水洗亚麻抱枕', 'http://yanxuan.nosdn.127.net/8a9ee5ba08929cc9e40b973607d2f633.png', '1057036', 1, 1, 1, 0, 1, 6, 1008002, 99.00, 0.00, 1008002, 1008002, NULL, '水洗亚麻,透气亲肤', '水洗亚麻,透气亲肤', 79.00, 1057036, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/8a9ee5ba08929cc9e40b973607d2f633.png', '水洗亚麻,透气亲肤', '水洗亚麻,透气亲肤', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (48, 1015000, 1017000, NULL, 1005000, '清新条纹开放式宠物窝', 'http://yanxuan.nosdn.127.net/ebe118f94ddafe82c4a8cd51da6ff183.png', '1064000', 1, 1, 1, 0, 1, 5, 1017000, 99.00, 0.00, 1017000, 1017000, NULL, '清凉触感,耐抓耐磨', '清凉触感,耐抓耐磨', 79.00, 1064000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/ebe118f94ddafe82c4a8cd51da6ff183.png', '清凉触感,耐抓耐磨', '清凉触感,耐抓耐磨', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (49, 1015000, 1017000, NULL, 1005000, '秋冬加厚条纹宠物窝', 'http://yanxuan.nosdn.127.net/48dbfe207b2203ef45055dcc9cedbe60.png', '1064002', 1, 1, 1, 0, 1, 6, 1017000, 89.00, 0.00, 1017000, 1017000, NULL, '时尚牛仔,加厚温暖', '时尚牛仔,加厚温暖', 69.00, 1064002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/48dbfe207b2203ef45055dcc9cedbe60.png', '时尚牛仔,加厚温暖', '时尚牛仔,加厚温暖', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (50, 1015000, 1017000, NULL, 1005000, '六边形南瓜式宠物窝', 'http://yanxuan.nosdn.127.net/58ed94b63b39339e7814f1339013793c.png', '1064003', 1, 1, 1, 0, 1, 4, 1017000, 109.00, 0.00, 1017000, 1017000, NULL, '给萌宠柔软包裹的归家感', '给萌宠柔软包裹的归家感', 89.00, 1064003, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/58ed94b63b39339e7814f1339013793c.png', '给萌宠柔软包裹的归家感', '给萌宠柔软包裹的归家感', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (51, 1015000, 1017000, NULL, 1005000, '方形封闭式宠物窝', 'http://yanxuan.nosdn.127.net/337da7094c1df295ca0f0b8baa55b2d5.png', '1064004', 1, 1, 1, 0, 1, 7, 1017000, 119.00, 0.00, 1017000, 1017000, NULL, '封闭式设计猫咪独享', '封闭式设计猫咪独享', 99.00, 1064004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/337da7094c1df295ca0f0b8baa55b2d5.png', '封闭式设计猫咪独享', '封闭式设计猫咪独享', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (52, 1001000, 1008008, NULL, 1005000, '3D纯棉护颈加翼记忆枕', 'http://yanxuan.nosdn.127.net/35306b8e65932dd28a5628d0bb44a044.png', '1064006', 1, 1, 1, 0, 1, 11, 1008008, 149.00, 0.00, 1008008, 1008008, NULL, '深色面料,安睡护颈', '深色面料,安睡护颈', 129.00, 1064006, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/35306b8e65932dd28a5628d0bb44a044.png', '深色面料,安睡护颈', '深色面料,安睡护颈', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (53, 1001000, 1008008, NULL, 1005000, '3D纯棉护颈双人记忆枕', 'http://yanxuan.nosdn.127.net/d7bd87f8cc1965b25be33a8aad53812b.png', '1064007', 1, 1, 1, 0, 1, 12, 1008008, 269.00, 0.00, 1008008, 1008008, NULL, '纯棉呵护,属于你我的记忆', '纯棉呵护,属于你我的记忆', 249.00, 1064007, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d7bd87f8cc1965b25be33a8aad53812b.png', '纯棉呵护,属于你我的记忆', '纯棉呵护,属于你我的记忆', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (54, 1001000, 1008016, NULL, 1005000, '清欢日式可调节台灯', 'http://yanxuan.nosdn.127.net/c83a3881704094ddd3970099ca77d115.png', '1064021', 1, 1, 1, 0, 1, 3, 1008016, 219.00, 0.00, 1008016, 1008016, NULL, '木铁结合,全体可调节', '木铁结合,全体可调节', 199.00, 1064021, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/c83a3881704094ddd3970099ca77d115.png', '木铁结合,全体可调节', '木铁结合,全体可调节', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (55, 1001000, 1008016, NULL, 1005000, '清欢日式可调节落地灯', 'http://yanxuan.nosdn.127.net/a9c155e26d09e3c92b623f0472ed674a.png', '1064022', 1, 1, 1, 0, 1, 2, 1008016, 319.00, 0.00, 1008016, 1008016, NULL, '便易调节,风格百搭', '便易调节,风格百搭', 299.00, 1064022, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a9c155e26d09e3c92b623f0472ed674a.png', '便易调节,风格百搭', '便易调节,风格百搭', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (56, 1001000, 1011004, NULL, 1005000, '悦己日式木质落地镜', 'http://yanxuan.nosdn.127.net/05977cf923857db0c44b405bd87b096b.png', '1065004', 1, 1, 1, 0, 1, 5, 1011004, 219.00, 0.00, 1011004, 1011004, NULL, '流畅线条,日式简约', '流畅线条,日式简约', 199.00, 1065004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/05977cf923857db0c44b405bd87b096b.png', '流畅线条,日式简约', '流畅线条,日式简约', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (57, 1001000, 1011004, NULL, 1005000, '古风圆角木质落地镜', 'http://yanxuan.nosdn.127.net/18b7be03bba9d01e4285fc443ea65bb1.png', '1065005', 1, 1, 1, 0, 1, 6, 1011004, 269.00, 0.00, 1011004, 1011004, NULL, '简约设计,日式和风', '简约设计,日式和风', 249.00, 1065005, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/18b7be03bba9d01e4285fc443ea65bb1.png', '简约设计,日式和风', '简约设计,日式和风', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (58, 1001000, 1008008, NULL, 1005000, '全棉澳毛床褥床垫 床笠款', 'http://yanxuan.nosdn.127.net/9ed4ff9642ea9cb776a20560647cd72b.png', '1068010', 1, 1, 1, 0, 1, 21, 1008008, 349.00, 0.00, 1008008, 1008008, NULL, '精选优质澳毛,柔软保暖', '精选优质澳毛,柔软保暖', 329.00, 1068010, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/9ed4ff9642ea9cb776a20560647cd72b.png', '精选优质澳毛,柔软保暖', '精选优质澳毛,柔软保暖', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (59, 1001000, 1008008, NULL, 1005000, '全棉丝光骆驼绒秋冬被', 'http://yanxuan.nosdn.127.net/0e4ba6ed44fef8803c243e585b621ab7.png', '1068011', 1, 1, 1, 0, 1, 18, 1008008, 419.00, 0.00, 1008008, 1008008, NULL, '精细驼绒填充,加厚温暖', '精细驼绒填充,加厚温暖', 399.00, 1068011, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/0e4ba6ed44fef8803c243e585b621ab7.png', '精细驼绒填充,加厚温暖', '精细驼绒填充,加厚温暖', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (60, 1001020, 1036000, NULL, 1005000, '全棉色织绗缝夏凉件套', 'http://yanxuan.nosdn.127.net/69145abddddd31ae8878ea7ca7297b4b.png', '1068012', 1, 1, 1, 0, 1, 8, 1036000, 619.00, 0.00, 1036000, 1036000, NULL, '夏季凉被,冬季暖套,四季可用', '夏季凉被,冬季暖套,四季可用', 599.00, 1068012, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/69145abddddd31ae8878ea7ca7297b4b.png', '夏季凉被,冬季暖套,四季可用', '夏季凉被,冬季暖套,四季可用', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (61, 1001000, 1017000, NULL, 1005000, '日式圆形宠物盆猫砂盆', 'http://yanxuan.nosdn.127.net/f0abf2bf11c8d303212e4a0c1106bb73.png', '1071004', 1, 1, 1, 0, 1, 20, 1017000, 109.00, 0.00, 1017000, 1017000, NULL, '日式配色,圆滑细腻', '日式配色,圆滑细腻', 89.00, 1071004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/f0abf2bf11c8d303212e4a0c1106bb73.png', '日式配色,圆滑细腻', '日式配色,圆滑细腻', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (62, 1001000, 1017000, NULL, 1005000, '便携多功能宠物拾便器', 'http://yanxuan.nosdn.127.net/07a47d73e2eb53b1a7939219a4e63618.png', '1071005', 1, 1, 1, 0, 1, 17, 1017000, 59.00, 0.00, 1017000, 1017000, NULL, '方便携带,环保卫生', '方便携带,环保卫生', 39.00, 1071005, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/07a47d73e2eb53b1a7939219a4e63618.png', '方便携带,环保卫生', '方便携带,环保卫生', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (63, 1001000, 1017000, NULL, 1005000, '清新宠物水食钵食盆', 'http://yanxuan.nosdn.127.net/d206e0d15955b4d76431a752f2c94f9f.png', '1071006', 1, 1, 1, 0, 1, 16, 1017000, 29.90, 0.00, 1017000, 1017000, NULL, '含银离子的洁净除菌食盆', '含银离子的洁净除菌食盆', 9.90, 1071006, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d206e0d15955b4d76431a752f2c94f9f.png', '含银离子的洁净除菌食盆', '含银离子的洁净除菌食盆', '

', '

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (64, 1001020, 1008002, NULL, 1005000, '手工针织绞花抱枕套', 'http://yanxuan.nosdn.127.net/87cf3a17ad40bfdcdc3314ea4591a5e8.png', '1072000', 1, 1, 1, 0, 1, 9, 1008002, 109.00, 0.00, 1008002, 1008002, NULL, '纯手工针织,带给你复古的暖', '纯手工针织,带给你复古的暖', 89.00, 1072000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/87cf3a17ad40bfdcdc3314ea4591a5e8.png', '纯手工针织,带给你复古的暖', '纯手工针织,带给你复古的暖', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (65, 1001020, 1008002, NULL, 1005000, '色织水洗棉绣花抱枕套', 'http://yanxuan.nosdn.127.net/0e9d5954d7dc2477d9c46b730e05ab42.png', '1072001', 1, 1, 1, 0, 1, 7, 1008002, 69.00, 0.00, 1008002, 1008002, NULL, '清素色织,搭配水洗棉旧色的温柔', '清素色织,搭配水洗棉旧色的温柔', 49.00, 1072001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/0e9d5954d7dc2477d9c46b730e05ab42.png', '清素色织,搭配水洗棉旧色的温柔', '清素色织,搭配水洗棉旧色的温柔', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (66, 1001000, 1008008, NULL, 1005000, '舒适安睡复合羽绒枕', 'http://yanxuan.nosdn.127.net/29bc800b9f1fa551bc3cd47b10e2a799.png', '1075023', 1, 1, 1, 0, 1, 4, 1008008, 219.00, 0.00, 1008008, 1008008, NULL, '一等白鸭绒,蓬松承托', '一等白鸭绒,蓬松承托', 199.00, 1075023, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/29bc800b9f1fa551bc3cd47b10e2a799.png', '一等白鸭绒,蓬松承托', '一等白鸭绒,蓬松承托', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (67, 1001000, 1008008, NULL, 1005000, '升级款纯棉静音白鹅羽绒被', 'http://yanxuan.nosdn.127.net/ce4a1eb18ea518bf584620632509935f.png', '1075024', 1, 1, 1, 0, 1, 20, 1008008, 2419.00, 0.00, 1008008, 1008008, NULL, '静音面料,加厚熟睡', '静音面料,加厚熟睡', 2399.00, 1075024, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/ce4a1eb18ea518bf584620632509935f.png', '静音面料,加厚熟睡', '静音面料,加厚熟睡', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (68, 1001000, 1008002, NULL, 1005000, '北欧风珊瑚绒多功能暖手枕', 'http://yanxuan.nosdn.127.net/cc45baafad00405699552c187c64c512.png', '1081000', 1, 1, 1, 0, 1, 22, 1008002, 69.00, 0.00, 1008002, 1008002, NULL, '手枕坐垫两用', '手枕坐垫两用', 49.00, 1081000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/cc45baafad00405699552c187c64c512.png', '手枕坐垫两用', '手枕坐垫两用', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (69, 1001000, 1008002, NULL, 1005000, '北欧风珊瑚绒多功能抱枕', 'http://yanxuan.nosdn.127.net/380cfcd5d8bc22360de089f0b4eb11da.png', '1081002', 1, 1, 1, 0, 1, 21, 1008002, 109.00, 0.00, 1008002, 1008002, NULL, '靠枕暖手毛毯多用', '靠枕暖手毛毯多用', 89.00, 1081002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/380cfcd5d8bc22360de089f0b4eb11da.png', '靠枕暖手毛毯多用', '靠枕暖手毛毯多用', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (70, 1001000, 1011004, NULL, 1005000, '海洋之心永生花', 'http://yanxuan.nosdn.127.net/76e5c820f6bb71a26517ffa01f499871.png', '1083009', 1, 1, 1, 0, 1, 1, 1011004, 319.00, 0.00, 1011004, 1011004, NULL, '厄瓜多尔玫瑰,精致美感', '厄瓜多尔玫瑰,精致美感', 299.00, 1083009, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/76e5c820f6bb71a26517ffa01f499871.png', '厄瓜多尔玫瑰,精致美感', '厄瓜多尔玫瑰,精致美感', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (71, 1001000, 1011004, NULL, 1005000, '绿野仙踪永生花', 'http://yanxuan.nosdn.127.net/b9a12d07f8f2d04d662d9340e68e6687.png', '1083010', 1, 1, 1, 0, 1, 3, 1011004, 489.00, 0.00, 1011004, 1011004, NULL, '花朵与多元素的碰撞', '花朵与多元素的碰撞', 469.00, 1083010, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/b9a12d07f8f2d04d662d9340e68e6687.png', '花朵与多元素的碰撞', '花朵与多元素的碰撞', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (72, 1001020, 1008009, NULL, 1005000, '纯棉简欧条纹针织盖毯', 'http://yanxuan.nosdn.127.net/07f682d405c1d2ed343c210ac8f8862a.png', '1084001', 1, 1, 1, 0, 1, 37, 1008009, 269.00, 0.00, 1008009, 1008009, NULL, '纯棉针织,柔软亲肤', '纯棉针织,柔软亲肤', 249.00, 1084001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/07f682d405c1d2ed343c210ac8f8862a.png', '纯棉针织,柔软亲肤', '纯棉针织,柔软亲肤', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (73, 1001020, 1008009, NULL, 1005000, '纯棉美式绞花针织盖毯', 'http://yanxuan.nosdn.127.net/cf40c167e7054fe184d49f19121f63c7.png', '1084003', 1, 1, 1, 0, 1, 31, 1008009, 219.00, 0.00, 1008009, 1008009, NULL, '美式提花,温暖舒适', '美式提花,温暖舒适', 199.00, 1084003, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/cf40c167e7054fe184d49f19121f63c7.png', '美式提花,温暖舒适', '美式提花,温暖舒适', '

', '

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (74, 1001000, 1008016, NULL, 1005000, '北欧极简直杆台灯', 'http://yanxuan.nosdn.127.net/d5c2ecfe0fb00cdd8b829975bab21a31.png', '1086015', 1, 1, 1, 0, 1, 1, 1008016, 269.00, 0.00, 1008016, 1008016, NULL, '北欧色彩,极简线条', '北欧色彩,极简线条', 249.00, 1086015, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d5c2ecfe0fb00cdd8b829975bab21a31.png', '北欧色彩,极简线条', '北欧色彩,极简线条', '



', '



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (75, 1001000, 1017000, NULL, 1005000, '彩色波点缓冲宠物牵引绳', 'http://yanxuan.nosdn.127.net/121a99e896b3e332c102eb5f6f9b3406.png', '1086023', 1, 1, 1, 0, 1, 25, 1017000, 39.90, 0.00, 1017000, 1017000, NULL, '精致合金,萌趣波点', '精致合金,萌趣波点', 19.90, 1086023, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/121a99e896b3e332c102eb5f6f9b3406.png', '精致合金,萌趣波点', '精致合金,萌趣波点', '

', '

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (76, 1001000, 1017000, NULL, 1005000, '夜间反光防走失宠物牵引绳', 'http://yanxuan.nosdn.127.net/af899cfaa13f515ecb9cf9a33f41370a.png', '1086024', 1, 1, 1, 0, 1, 24, 1017000, 29.90, 0.00, 1017000, 1017000, NULL, '编织反光,夜间防走失', '编织反光,夜间防走失', 9.90, 1086024, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/af899cfaa13f515ecb9cf9a33f41370a.png', '编织反光,夜间防走失', '编织反光,夜间防走失', '

', '

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (77, 1001000, 1017000, NULL, 1005000, '美式精编麻花圆绳宠物牵引绳', 'http://yanxuan.nosdn.127.net/78eff56b293c8354bc9ac496fc2c5179.png', '1086025', 1, 1, 1, 0, 1, 27, 1017000, 69.00, 0.00, 1017000, 1017000, NULL, '编织纹理,牢固精致', '编织纹理,牢固精致', 49.00, 1086025, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/78eff56b293c8354bc9ac496fc2c5179.png', '编织纹理,牢固精致', '编织纹理,牢固精致', '

', '

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (78, 1001000, 1017000, NULL, 1005000, '复古实心交织宠物牵引绳', 'http://yanxuan.nosdn.127.net/caecdaa37d9cbcff980cee0968911e34.png', '1086026', 1, 1, 1, 0, 1, 26, 1017000, 49.00, 0.00, 1017000, 1017000, NULL, '实心黑色编织仿皮质宠物牵引绳', '实心黑色编织仿皮质宠物牵引绳', 29.00, 1086026, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/caecdaa37d9cbcff980cee0968911e34.png', '实心黑色编织仿皮质宠物牵引绳', '实心黑色编织仿皮质宠物牵引绳', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (79, 1001000, 1008009, NULL, 1005000, '日式法兰绒格子四件套', 'http://yanxuan.nosdn.127.net/a3a92057f10e5e6e804c19ef495e3dee.png', '1090004', 1, 1, 1, 0, 1, 17, 1008009, 419.00, 0.00, 1008009, 1008009, NULL, '气质英伦格纹,法兰绒的丰满细腻', '气质英伦格纹,法兰绒的丰满细腻', 399.00, 1090004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a3a92057f10e5e6e804c19ef495e3dee.png', '气质英伦格纹,法兰绒的丰满细腻', '气质英伦格纹,法兰绒的丰满细腻', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (80, 1001000, 1008008, NULL, 1005000, '双宫茧纱布亲肤手工蚕丝被', 'http://yanxuan.nosdn.127.net/f245a86dcb9f455217241e437b203926.png', '1092024', 1, 1, 1, 0, 1, 14, 1008008, 1619.00, 0.00, 1008008, 1008008, NULL, '手工匠心织造', '手工匠心织造', 1599.00, 1092024, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/f245a86dcb9f455217241e437b203926.png', '手工匠心织造', '手工匠心织造', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (81, 1001000, 1017000, NULL, 1005000, '日式天然桐木材质猫抓板', 'http://yanxuan.nosdn.127.net/1aba9ed9c9160b9ca8e7de58ce4e46b1.png', '1092038', 1, 1, 1, 0, 1, 19, 1017000, 59.00, 0.00, 1017000, 1017000, NULL, '天然桐木,耐磨耐抓', '天然桐木,耐磨耐抓', 39.00, 1092038, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/1aba9ed9c9160b9ca8e7de58ce4e46b1.png', '天然桐木,耐磨耐抓', '天然桐木,耐磨耐抓', '

', '

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (82, 1001000, 1017000, NULL, 1005000, '圆钵碗状高密材质猫抓板', 'http://yanxuan.nosdn.127.net/d8c18953bcb05f0b07d6b48e2d159ace.png', '1092039', 1, 1, 1, 0, 1, 18, 1017000, 79.00, 0.00, 1017000, 1017000, NULL, '可抓可睡,一物两用', '可抓可睡,一物两用', 59.00, 1092039, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d8c18953bcb05f0b07d6b48e2d159ace.png', '可抓可睡,一物两用', '可抓可睡,一物两用', '

', '

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (83, 1001000, 1011004, NULL, 1005000, '月光曲·小木棉', 'http://yanxuan.nosdn.127.net/1a22cc488390b616e75afbbd94db6584.png', '1093000', 1, 1, 1, 0, 1, 7, 1011004, 59.00, 0.00, 1011004, 1011004, NULL, '仿真PU,定格典雅', '仿真PU,定格典雅', 39.00, 1093000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/1a22cc488390b616e75afbbd94db6584.png', '仿真PU,定格典雅', '仿真PU,定格典雅', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (84, 1001000, 1011004, NULL, 1005000, '月光曲·马蹄莲', 'http://yanxuan.nosdn.127.net/71fede861c3641d570a89a65ccf4525f.png', '1093001', 1, 1, 1, 0, 1, 8, 1011004, 49.00, 0.00, 1011004, 1011004, NULL, '仿真PU,定格典雅', '仿真PU,定格典雅', 29.00, 1093001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/71fede861c3641d570a89a65ccf4525f.png', '仿真PU,定格典雅', '仿真PU,定格典雅', '

*温馨提示:若马蹄莲有些褶皱,可将白色花朵部分放入60-70℃的水中热10秒立刻拿出,可恢复原状。

                  (注意:只针对马蹄莲白色花朵部分)


', '

*温馨提示:若马蹄莲有些褶皱,可将白色花朵部分放入60-70℃的水中热10秒立刻拿出,可恢复原状。

                  (注意:只针对马蹄莲白色花朵部分)


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL); +INSERT INTO `pms_product` (`id`, `brand_id`, `product_category_id`, `feight_template_id`, `product_attribute_category_id`, `name`, `pic`, `product_sn`, `delete_status`, `publish_status`, `new_status`, `recommand_status`, `verify_status`, `sort`, `sale`, `price`, `promotion_price`, `gift_growth`, `gift_point`, `use_point_limit`, `sub_title`, `description`, `original_price`, `stock`, `low_stock`, `unit`, `weight`, `preview_status`, `service_ids`, `keywords`, `note`, `album_pics`, `detail_title`, `detail_desc`, `detail_html`, `detail_mobile_html`, `promotion_start_time`, `promotion_end_time`, `promotion_per_limit`, `promotion_type`, `brand_name`, `product_category_name`, `supply_id`, `create_time`, `school_id`, `store_id`, `member_id`, `hit`, `type`, `area_id`, `area_name`, `school_name`, `transfee`, `is_paimai`, `expire_time`, `store_name`, `is_fenxiao`, `is_vip`, `tags`, `store_class_id`) VALUES + (85, 1001000, 1011004, NULL, 1005000, '月光曲·清水木棉', 'http://yanxuan.nosdn.127.net/48d95e820628610fcdcda30570d4379c.png', '1093002', 1, 1, 1, 0, 1, 9, 1011004, 69.00, 0.00, 1011004, 1011004, NULL, '仿真之美裹于精致玻璃', '仿真之美裹于精致玻璃', 49.00, 1093002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/48d95e820628610fcdcda30570d4379c.png', '仿真之美裹于精致玻璃', '仿真之美裹于精致玻璃', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (86, 1001000, 1015000, NULL, 1005000, '原素系列实木餐桌', 'http://yanxuan.nosdn.127.net/54f822e9c542d20566c7f70f90d52ae6.png', '1097004', 1, 1, 1, 0, 1, 3, 1015000, 1719.00, 0.00, 1015000, 1015000, NULL, '素雅大气,结实不易蛀', '素雅大气,结实不易蛀', 1699.00, 1097004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/54f822e9c542d20566c7f70f90d52ae6.png', '素雅大气,结实不易蛀', '素雅大气,结实不易蛀', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。



', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (87, 1001000, 1015000, NULL, 1005000, '原素系列实木餐椅(两把)', 'http://yanxuan.nosdn.127.net/e5fd0724a05387615738173fb8f1570d.png', '1097005', 1, 1, 1, 0, 1, 4, 1015000, 1219.00, 0.00, 1015000, 1015000, NULL, '经典造型,贴合人体曲线', '经典造型,贴合人体曲线', 1199.00, 1097005, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/e5fd0724a05387615738173fb8f1570d.png', '经典造型,贴合人体曲线', '经典造型,贴合人体曲线', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (88, 1001000, 1015000, NULL, 1005000, '原素系列折角实木圆桌', 'http://yanxuan.nosdn.127.net/bcf2a72face2c4221dfdc9b3c97d4062.png', '1097006', 1, 1, 1, 0, 1, 13, 1015000, 1019.00, 0.00, 1015000, 1015000, NULL, '经典桌角,美观稳固', '经典桌角,美观稳固', 999.00, 1097006, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/bcf2a72face2c4221dfdc9b3c97d4062.png', '经典桌角,美观稳固', '经典桌角,美观稳固', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (89, 1001000, 1015000, NULL, 1005000, '原素系列立式实木圆桌', 'http://yanxuan.nosdn.127.net/b6e132180679b0673486145decc89aa3.png', '1097007', 1, 1, 1, 0, 1, 12, 1015000, 779.00, 0.00, 1015000, 1015000, NULL, '优雅木纹,结实不易蛀', '优雅木纹,结实不易蛀', 759.00, 1097007, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/b6e132180679b0673486145decc89aa3.png', '优雅木纹,结实不易蛀', '优雅木纹,结实不易蛀', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。



', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (90, 1001000, 1015000, NULL, 1005000, '原素系列实木书桌', 'http://yanxuan.nosdn.127.net/e7b68189ef2f77a28110c3fc7ca5a697.png', '1097009', 1, 1, 1, 0, 1, 7, 1015000, 1619.00, 0.00, 1015000, 1015000, NULL, '无胶龙凤口工艺,经久耐用', '无胶龙凤口工艺,经久耐用', 1599.00, 1097009, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/e7b68189ef2f77a28110c3fc7ca5a697.png', '无胶龙凤口工艺,经久耐用', '无胶龙凤口工艺,经久耐用', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (91, 1001000, 1015000, NULL, 1005000, '原素系列1.8米实木床', 'http://yanxuan.nosdn.127.net/fea36ef2514c904f4f45f1975f37f289.png', '1097011', 1, 1, 1, 0, 1, 8, 1015000, 3919.00, 0.00, 1015000, 1015000, NULL, '优选实木,环保喷漆', '优选实木,环保喷漆', 3899.00, 1097011, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/fea36ef2514c904f4f45f1975f37f289.png', '优选实木,环保喷漆', '优选实木,环保喷漆', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。



', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (92, 1001000, 1015000, NULL, 1005000, '原素系列实木床头柜', 'http://yanxuan.nosdn.127.net/d659d5ce0efaa9baa43abb6e34a1d9fe.png', '1097012', 1, 1, 1, 0, 1, 9, 1015000, 1019.00, 0.00, 1015000, 1015000, NULL, '优选实木环保喷漆', '优选实木环保喷漆', 999.00, 1097012, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d659d5ce0efaa9baa43abb6e34a1d9fe.png', '优选实木环保喷漆', '优选实木环保喷漆', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (93, 1001000, 1015000, NULL, 1005000, '原素系列实木五斗柜', 'http://yanxuan.nosdn.127.net/2fa8cb066a356f47a3f0814e99fee7f2.png', '1097013', 1, 1, 1, 0, 1, 10, 1015000, 2719.00, 0.00, 1015000, 1015000, NULL, '造型经典,收纳的得力助手', '造型经典,收纳的得力助手', 2699.00, 1097013, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/2fa8cb066a356f47a3f0814e99fee7f2.png', '造型经典,收纳的得力助手', '造型经典,收纳的得力助手', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (94, 1001000, 1015000, NULL, 1005000, '原素系列实木多抽柜', 'http://yanxuan.nosdn.127.net/308184b7b1965470d58b5c92e9bcc4b0.png', '1097014', 1, 1, 1, 0, 1, 11, 1015000, 4219.00, 0.00, 1015000, 1015000, NULL, '造型简约,拥有极高实用性', '造型简约,拥有极高实用性', 4199.00, 1097014, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/308184b7b1965470d58b5c92e9bcc4b0.png', '造型简约,拥有极高实用性', '造型简约,拥有极高实用性', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (95, 1001000, 1015000, NULL, 1005000, '原素系列1.8米实木电视柜', 'http://yanxuan.nosdn.127.net/a7e6df722b82ad1b0158adcbdcf30df9.png', '1097016', 1, 1, 1, 0, 1, 6, 1015000, 2819.00, 0.00, 1015000, 1015000, NULL, '经典木纹,结实不易蛀', '经典木纹,结实不易蛀', 2799.00, 1097016, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a7e6df722b82ad1b0158adcbdcf30df9.png', '经典木纹,结实不易蛀', '经典木纹,结实不易蛀', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (96, 1001000, 1015000, NULL, 1005000, '原素系列柜式实木茶几', 'http://yanxuan.nosdn.127.net/e16ff61bef76db81090db191b9d5ec15.png', '1097017', 1, 1, 1, 0, 1, 5, 1015000, 2219.00, 0.00, 1015000, 1015000, NULL, '山形木纹,经典优雅', '山形木纹,经典优雅', 2199.00, 1097017, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/e16ff61bef76db81090db191b9d5ec15.png', '山形木纹,经典优雅', '山形木纹,经典优雅', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', '


温馨提示:

1,由于安徽黄山市安徽宣城绩溪县,要求所有木制品办理《植物检疫证书》,因此暂停向安徽黄山市安徽宣城绩溪县运输家具,以上两地客户请注意不要购买,物流无法派送,对此给您带来的不便,我们深表歉意!

2,家具送货上门时请拆开包装,待组装完成后,仔细检查家具是否有磕碰,少件等问题,如有不满请拒收或进行异常签收,我们会保障您的权益。

3,因个人原因首次送货上门暂不安装,要求二次上门安装的,会额外收取费用,请您与安装服务公司进行协商。


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (97, 1001000, 1008009, NULL, 1005000, '300根水洗棉缎纹纯色枕套*2', 'http://yanxuan.nosdn.127.net/15e40cfb6a78f557616814a815685fd4.png', '1100000', 1, 1, 1, 0, 1, 25, 1008009, 99.00, 0.00, 1008009, 1008009, NULL, '水洗棉的呵护,透气亲肤', '水洗棉的呵护,透气亲肤', 79.00, 1100000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/15e40cfb6a78f557616814a815685fd4.png', '水洗棉的呵护,透气亲肤', '水洗棉的呵护,透气亲肤', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (98, 1001000, 1008009, NULL, 1005000, '300根水洗棉缎纹纯色床单', 'http://yanxuan.nosdn.127.net/a95285853138cbaf56e4ba729f2b8749.png', '1100001', 1, 1, 1, 0, 1, 30, 1008009, 219.00, 0.00, 1008009, 1008009, NULL, '水洗棉的柔软舒适,百分百的亲肤呵护', '水洗棉的柔软舒适,百分百的亲肤呵护', 199.00, 1100001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a95285853138cbaf56e4ba729f2b8749.png', '水洗棉的柔软舒适,百分百的亲肤呵护', '水洗棉的柔软舒适,百分百的亲肤呵护', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (99, 1001000, 1008009, NULL, 1005000, '300根水洗棉缎纹纯色床笠', 'http://yanxuan.nosdn.127.net/edf1945ef594c00920bdc727f4c5c7fd.png', '1100002', 1, 1, 1, 0, 1, 29, 1008009, 209.00, 0.00, 1008009, 1008009, NULL, '柔软水洗棉,百分百的呵护', '柔软水洗棉,百分百的呵护', 189.00, 1100002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/edf1945ef594c00920bdc727f4c5c7fd.png', '柔软水洗棉,百分百的呵护', '柔软水洗棉,百分百的呵护', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (100, 1001000, 1017000, NULL, 1005000, '宠物多功能喂水喂食器', 'http://yanxuan.nosdn.127.net/fe52cd141b4b330db5627114b0e0e550.png', '1108029', 1, 1, 1, 0, 1, 11, 1017000, 109.00, 0.00, 1017000, 1017000, NULL, '喂水喂食一体机', '喂水喂食一体机', 89.00, 1108029, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/fe52cd141b4b330db5627114b0e0e550.png', '喂水喂食一体机', '喂水喂食一体机', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (101, 1001000, 1017000, NULL, 1005000, '宠物便携出行圆球饮水器', 'http://yanxuan.nosdn.127.net/4891e60ff08ceed36d40a754e45e8742.png', '1108030', 1, 1, 1, 0, 1, 9, 1017000, 59.00, 0.00, 1017000, 1017000, NULL, '外出饮水必备', '外出饮水必备', 39.00, 1108030, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/4891e60ff08ceed36d40a754e45e8742.png', '外出饮水必备', '外出饮水必备', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (102, 1001000, 1017000, NULL, 1005000, '宠物不锈钢圆形倾斜餐碗', 'http://yanxuan.nosdn.127.net/e13e9697e01339c6cf7479eb81b3fbe2.png', '1108031', 1, 1, 1, 0, 1, 10, 1017000, 59.00, 0.00, 1017000, 1017000, NULL, '15°倾斜设计,保护萌宠颈椎', '15°倾斜设计,保护萌宠颈椎', 39.00, 1108031, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/e13e9697e01339c6cf7479eb81b3fbe2.png', '15°倾斜设计,保护萌宠颈椎', '15°倾斜设计,保护萌宠颈椎', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (103, 1001000, 1017000, NULL, 1005000, '宠物外出便携硅胶折叠碗', 'http://yanxuan.nosdn.127.net/b1f9e1f700469f71fe3c4187ef53c99f.png', '1108032', 1, 1, 1, 0, 1, 8, 1017000, 49.00, 0.00, 1017000, 1017000, NULL, '环保材质,安全出行', '环保材质,安全出行', 29.00, 1108032, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/b1f9e1f700469f71fe3c4187ef53c99f.png', '环保材质,安全出行', '环保材质,安全出行', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (104, 1001000, 1011004, NULL, 1005000, '简日挂钟', 'http://yanxuan.nosdn.127.net/d25b5990f16c6d1ac168a34b7aeca681.png', '1109004', 1, 1, 1, 0, 1, 11, 1011004, 109.00, 0.00, 1011004, 1011004, NULL, '极简风格,精确读数', '极简风格,精确读数', 89.00, 1109004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d25b5990f16c6d1ac168a34b7aeca681.png', '极简风格,精确读数', '极简风格,精确读数', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (105, 1001000, 1011004, NULL, 1005000, '方圆木钟', 'http://yanxuan.nosdn.127.net/7f508253f65733c7b2af52dd3943ee28.png', '1109005', 1, 1, 1, 0, 1, 12, 1011004, 99.00, 0.00, 1011004, 1011004, NULL, '坚硬榉木,实木雕刻', '坚硬榉木,实木雕刻', 79.00, 1109005, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/7f508253f65733c7b2af52dd3943ee28.png', '坚硬榉木,实木雕刻', '坚硬榉木,实木雕刻', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (106, 1001000, 1015000, NULL, 1005000, '云端沙发组合', 'http://yanxuan.nosdn.127.net/c5be2604c0e4186a4e7079feeb742cee.png', '1109008', 1, 1, 1, 0, 1, 2, 1015000, 4019.00, 0.00, 1015000, 1015000, NULL, 'MUJI供应商携手打造', 'MUJI供应商携手打造', 3999.00, 1109008, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/c5be2604c0e4186a4e7079feeb742cee.png', 'MUJI供应商携手打造', 'MUJI供应商携手打造', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (107, 1001000, 1011004, NULL, 1005000, 'LCD电子钟 升级版', 'http://yanxuan.nosdn.127.net/c2c96acc680cbadb1787385598e1e593.png', '1109034', 1, 1, 1, 0, 1, 10, 1011004, 149.00, 0.00, 1011004, 1011004, NULL, 'MUJI风格,清晰简明', 'MUJI风格,清晰简明', 129.00, 1109034, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/c2c96acc680cbadb1787385598e1e593.png', 'MUJI风格,清晰简明', 'MUJI风格,清晰简明', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (108, 1001000, 1011004, NULL, 1005000, '大头风扇', 'http://yanxuan.nosdn.127.net/a7a524512c34d24a4b9762766dd9d0f0.png', '1110002', 1, 1, 1, 0, 1, 13, 1011004, 139.00, 0.00, 1011004, 1011004, NULL, '静音劲风,小巧灵动', '静音劲风,小巧灵动', 119.00, 1110002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a7a524512c34d24a4b9762766dd9d0f0.png', '静音劲风,小巧灵动', '静音劲风,小巧灵动', '



', '



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (109, 1001000, 1008009, NULL, 1005000, '全棉针织条纹四件套 新款', 'http://yanxuan.nosdn.127.net/72dfb4bfc1cd1b834c064a9d1d40627d.png', '1110003', 1, 1, 1, 0, 1, 2, 1008009, 319.00, 0.00, 1008009, 1008009, NULL, '裸睡享受,柔软透气有弹性', '裸睡享受,柔软透气有弹性', 299.00, 1110003, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/72dfb4bfc1cd1b834c064a9d1d40627d.png', '裸睡享受,柔软透气有弹性', '裸睡享受,柔软透气有弹性', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (110, 1001000, 1008009, NULL, 1005000, '全棉针织纯色四件套', 'http://yanxuan.nosdn.127.net/1ffd5831e63027715445f74a28f8c4ed.png', '1110004', 1, 1, 1, 0, 1, 3, 1008009, 319.00, 0.00, 1008009, 1008009, NULL, '日系纯色,面料轻柔舒透', '日系纯色,面料轻柔舒透', 299.00, 1110004, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/1ffd5831e63027715445f74a28f8c4ed.png', '日系纯色,面料轻柔舒透', '日系纯色,面料轻柔舒透', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (111, 1001000, 1008009, NULL, 1005000, '日式色织水洗棉格纹四件套 新款', 'http://yanxuan.nosdn.127.net/deeb55bb45f94cb236a47d1264e883b8.png', '1110007', 1, 1, 1, 0, 1, 4, 1008009, 319.00, 0.00, 1008009, 1008009, NULL, '做旧微褶感,轻柔呵护棉', '做旧微褶感,轻柔呵护棉', 299.00, 1110007, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/deeb55bb45f94cb236a47d1264e883b8.png', '做旧微褶感,轻柔呵护棉', '做旧微褶感,轻柔呵护棉', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (112, 1001000, 1008009, NULL, 1005000, '全棉贡缎纯色床单', 'http://yanxuan.nosdn.127.net/255a4888161f9b4fe530cf319f14551d.png', '1110008', 1, 1, 1, 0, 1, 26, 1008009, 119.00, 0.00, 1008009, 1008009, NULL, '丝滑缎纹 舒适百搭', '丝滑缎纹 舒适百搭', 99.00, 1110008, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/255a4888161f9b4fe530cf319f14551d.png', '丝滑缎纹 舒适百搭', '丝滑缎纹 舒适百搭', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (113, 1001000, 1017000, NULL, 1005000, '悦动纯色自动伸缩牵引器', 'http://yanxuan.nosdn.127.net/6eb8d1c37142a5951b6242791c78146b.png', '1110013', 1, 1, 1, 0, 1, 21, 1017000, 79.00, 0.00, 1017000, 1017000, NULL, '最大承重50KG, 乐享自由', '最大承重50KG, 乐享自由', 59.00, 1110013, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/6eb8d1c37142a5951b6242791c78146b.png', '最大承重50KG, 乐享自由', '最大承重50KG, 乐享自由', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (114, 1001000, 1017000, NULL, 1005000, '日式气质木纹自动伸缩牵引器', 'http://yanxuan.nosdn.127.net/cb4f78bd887059416c3df485e3f31366.png', '1110014', 1, 1, 1, 0, 1, 22, 1017000, 89.00, 0.00, 1017000, 1017000, NULL, '高强耐拉,乐享自由', '高强耐拉,乐享自由', 69.00, 1110014, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/cb4f78bd887059416c3df485e3f31366.png', '高强耐拉,乐享自由', '高强耐拉,乐享自由', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (115, 1001000, 1017000, NULL, 1005000, '迷彩宠物自动伸缩牵引器', 'http://yanxuan.nosdn.127.net/56da5270172244be56c00fdc8eb24fae.png', '1110015', 1, 1, 1, 0, 1, 23, 1017000, 89.00, 0.00, 1017000, 1017000, NULL, '硬汉行军梦,乐享自由', '硬汉行军梦,乐享自由', 69.00, 1110015, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/56da5270172244be56c00fdc8eb24fae.png', '硬汉行军梦,乐享自由', '硬汉行军梦,乐享自由', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (116, 1001000, 1017000, NULL, 1005000, '天然硅胶宠物除毛按摩刷', 'http://yanxuan.nosdn.127.net/3bd73b7279a83d1cbb50c0e45778e6d6.png', '1110016', 1, 1, 1, 0, 1, 12, 1017000, 59.00, 0.00, 1017000, 1017000, NULL, '顺滑平面,猫狗通用,去除死毛', '顺滑平面,猫狗通用,去除死毛', 39.00, 1110016, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/3bd73b7279a83d1cbb50c0e45778e6d6.png', '顺滑平面,猫狗通用,去除死毛', '顺滑平面,猫狗通用,去除死毛', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (117, 1001000, 1017000, NULL, 1005000, '耐用材料猫咪护理清洁套装', 'http://yanxuan.nosdn.127.net/534231583f82572398ec84bad425cdaf.png', '1110017', 1, 1, 1, 0, 1, 14, 1017000, 99.00, 0.00, 1017000, 1017000, NULL, '精致钢材,美容清洁', '精致钢材,美容清洁', 79.00, 1110017, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/534231583f82572398ec84bad425cdaf.png', '精致钢材,美容清洁', '精致钢材,美容清洁', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (118, 1001000, 1017000, NULL, 1005000, '耐用狗狗清洁美容护理套装', 'http://yanxuan.nosdn.127.net/d93aa5d6e7a296101cf4cb72613aeda6.png', '1110018', 1, 1, 1, 0, 1, 15, 1017000, 99.00, 0.00, 1017000, 1017000, NULL, '精致钢材,耐咬美容', '精致钢材,耐咬美容', 79.00, 1110018, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d93aa5d6e7a296101cf4cb72613aeda6.png', '精致钢材,耐咬美容', '精致钢材,耐咬美容', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (119, 1001000, 1017000, NULL, 1005000, '宠物合金钢安全除菌指甲护理组合', 'http://yanxuan.nosdn.127.net/1e7e392b6fc9da99dc112197b7444eec.png', '1110019', 1, 1, 1, 0, 1, 13, 1017001, 89.00, 0.00, 1017000, 1017000, NULL, '猫狗皆可用,保护家具', '猫狗皆可用,保护家具', 69.00, 1110019, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/1e7e392b6fc9da99dc112197b7444eec.png', '猫狗皆可用,保护家具', '猫狗皆可用,保护家具', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (120, 1001000, 1008008, NULL, 1005000, '新年礼盒 双宫茧纱布美肤手工蚕丝被', 'http://yanxuan.nosdn.127.net/f3d1f0217ed250a37ea807f456351a51.png', '1115023', 1, 1, 1, 0, 1, 13, 1008008, 1619.00, 0.00, 1008008, 1008008, NULL, '手工匠心织造', '手工匠心织造', 1599.00, 1115023, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/f3d1f0217ed250a37ea807f456351a51.png', '手工匠心织造', '手工匠心织造', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (121, 1001000, 1008009, NULL, 1005000, '日式色织水洗棉条纹四件套', 'http://yanxuan.nosdn.127.net/3d0045e8f43439c7004fae052b2162ed.png', '1115028', 1, 1, 1, 0, 1, 5, 1008009, 319.00, 0.00, 1008009, 1008009, NULL, '纯棉水洗感,柔软吸汗', '纯棉水洗感,柔软吸汗', 299.00, 1115028, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/3d0045e8f43439c7004fae052b2162ed.png', '纯棉水洗感,柔软吸汗', '纯棉水洗感,柔软吸汗', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (122, 1001000, 1008002, NULL, 1005000, '日式和风蔺草蒲团坐垫', 'http://yanxuan.nosdn.127.net/39dea35a3ea2361e4b054ee2f421af53.png', '1115052', 1, 1, 1, 0, 1, 18, 1008002, 106.00, 0.00, 1008002, 1008002, NULL, '龙眉蔺草编织 日式茶禅风', '龙眉蔺草编织 日式茶禅风', 86.00, 1115052, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/39dea35a3ea2361e4b054ee2f421af53.png', '龙眉蔺草编织 日式茶禅风', '龙眉蔺草编织 日式茶禅风', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (123, 1001000, 1036000, NULL, 1005000, '日式天然蔺草席三件套', 'http://yanxuan.nosdn.127.net/fabf9ac36751a2e1322135c56f1dc338.png', '1115053', 1, 1, 1, 0, 1, 11, 1036000, 319.00, 0.00, 1036000, 1036000, NULL, '龙眉蔺草密经编织 爽滑沁凉', '龙眉蔺草密经编织 爽滑沁凉', 299.00, 1115053, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/fabf9ac36751a2e1322135c56f1dc338.png', '龙眉蔺草密经编织 爽滑沁凉', '龙眉蔺草密经编织 爽滑沁凉', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (124, 1001000, 1011004, NULL, 1005000, '罗马假日 永生花', 'http://yanxuan.nosdn.127.net/9d59a22b5aff348b5aba5fc7e451ea4d.png', '1116030', 1, 1, 1, 0, 1, 4, 1011004, 459.00, 0.00, 1011004, 1011004, NULL, '黑粉的性感结合', '黑粉的性感结合', 439.00, 1116030, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/9d59a22b5aff348b5aba5fc7e451ea4d.png', '黑粉的性感结合', '黑粉的性感结合', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (125, 1001000, 1011004, NULL, 1005000, '怦然心动 永生花', 'http://yanxuan.nosdn.127.net/f88c3dc42f3e4d7da1ded8c1ee6a97ba.png', '1116031', 1, 1, 1, 0, 1, 2, 1011004, 459.00, 0.00, 1011004, 1011004, NULL, '音乐与花的浪漫碰撞', '音乐与花的浪漫碰撞', 439.00, 1116031, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/f88c3dc42f3e4d7da1ded8c1ee6a97ba.png', '音乐与花的浪漫碰撞', '音乐与花的浪漫碰撞', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (126, 1001000, 1015000, NULL, 1005000, '怀抱休闲椅组合', 'http://yanxuan.nosdn.127.net/45176a783387751fc07a07f5031dd62c.png', '1116032', 1, 1, 1, 0, 1, 1, 1015000, 3519.00, 0.00, 1015000, 1015000, NULL, '敦厚包裹感 葛优躺神器', '敦厚包裹感 葛优躺神器', 3499.00, 1116032, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/45176a783387751fc07a07f5031dd62c.png', '敦厚包裹感 葛优躺神器', '敦厚包裹感 葛优躺神器', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (127, 1001000, 1015000, NULL, 1005000, '多功能人体工学转椅', 'http://yanxuan.nosdn.127.net/f1dbf1d9967c478ee6def81ed40734a2.png', '1116033', 1, 1, 1, 0, 1, 14, 1015000, 1419.00, 0.00, 1015000, 1015000, NULL, '预计5月10号开始发货', '预计5月10号开始发货', 1399.00, 1116033, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/f1dbf1d9967c478ee6def81ed40734a2.png', '预计5月10号开始发货', '预计5月10号开始发货', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (128, 1001000, 1011004, NULL, 1005000, '大丰收收纳摆件', 'http://yanxuan.nosdn.127.net/46f3059b020eb3900e9af8e8c1af8a97.png', '1125016', 1, 1, 1, 0, 1, 14, 1011004, 159.00, 0.00, 1011004, 1011004, NULL, '兼具设计感与实用性', '兼具设计感与实用性', 139.00, 1125016, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/46f3059b020eb3900e9af8e8c1af8a97.png', '兼具设计感与实用性', '兼具设计感与实用性', '



', '



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (129, 1001000, 1011004, NULL, 1005000, '天鹅船创意摆件', 'http://yanxuan.nosdn.127.net/ae63fed274187e3e572043c53fefd836.png', '1125017', 1, 1, 1, 0, 1, 15, 1011004, 119.00, 0.00, 1011004, 1011004, NULL, '造型可人,精巧实用', '造型可人,精巧实用', 99.00, 1125017, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/ae63fed274187e3e572043c53fefd836.png', '造型可人,精巧实用', '造型可人,精巧实用', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (130, 1001000, 1008008, NULL, 1005000, 'AB面独立弹簧床垫 进口乳胶', 'http://yanxuan.nosdn.127.net/6ad1813d123f7a80f84c2cfa5f8c7caf.png', '1127003', 1, 1, 1, 0, 1, 23, 1008008, 2619.00, 0.00, 1008008, 1008008, NULL, '双面可用,抗菌防螨', '双面可用,抗菌防螨', 2599.00, 1127003, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/6ad1813d123f7a80f84c2cfa5f8c7caf.png', '双面可用,抗菌防螨', '双面可用,抗菌防螨', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL); +INSERT INTO `pms_product` (`id`, `brand_id`, `product_category_id`, `feight_template_id`, `product_attribute_category_id`, `name`, `pic`, `product_sn`, `delete_status`, `publish_status`, `new_status`, `recommand_status`, `verify_status`, `sort`, `sale`, `price`, `promotion_price`, `gift_growth`, `gift_point`, `use_point_limit`, `sub_title`, `description`, `original_price`, `stock`, `low_stock`, `unit`, `weight`, `preview_status`, `service_ids`, `keywords`, `note`, `album_pics`, `detail_title`, `detail_desc`, `detail_html`, `detail_mobile_html`, `promotion_start_time`, `promotion_end_time`, `promotion_per_limit`, `promotion_type`, `brand_name`, `product_category_name`, `supply_id`, `create_time`, `school_id`, `store_id`, `member_id`, `hit`, `type`, `area_id`, `area_name`, `school_name`, `transfee`, `is_paimai`, `expire_time`, `store_name`, `is_fenxiao`, `is_vip`, `tags`, `store_class_id`) VALUES + (131, 1001000, 1008009, NULL, 1005000, '简约知性全棉四件套 星空蓝', 'http://yanxuan.nosdn.127.net/addc278cf9c301dd535791df2e03b2ea.png', '1127038', 1, 1, 1, 0, 1, 8, 1008009, 379.00, 0.00, 1008009, 1008009, NULL, '静谧深邃蓝 沉稳中充满张力', '静谧深邃蓝 沉稳中充满张力', 359.00, 1127038, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/addc278cf9c301dd535791df2e03b2ea.png', '静谧深邃蓝 沉稳中充满张力', '静谧深邃蓝 沉稳中充满张力', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (132, 1001000, 1008009, NULL, 1005000, '清新趣粉全棉四件套 青粉拼接', 'http://yanxuan.nosdn.127.net/be64df0a04ade4cfd75bf7d4e8509ecc.png', '1127039', 1, 1, 1, 0, 1, 11, 1008009, 419.00, 0.00, 1008009, 1008009, NULL, '精梳长绒棉,亲肤舒适', '精梳长绒棉,亲肤舒适', 399.00, 1127039, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/be64df0a04ade4cfd75bf7d4e8509ecc.png', '精梳长绒棉,亲肤舒适', '精梳长绒棉,亲肤舒适', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (133, 1001000, 1036000, NULL, 1005000, '纯棉水洗色织格夏凉被', 'http://yanxuan.nosdn.127.net/4f483526cfe3b953f403ae02049df5b9.png', '1127052', 1, 1, 1, 0, 1, 1, 1036000, 189.00, 0.00, 1036000, 1036000, NULL, '100%棉填充,透气排汗,双面可用', '100%棉填充,透气排汗,双面可用', 169.00, 1127052, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/4f483526cfe3b953f403ae02049df5b9.png', '100%棉填充,透气排汗,双面可用', '100%棉填充,透气排汗,双面可用', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (134, 1001000, 1008002, NULL, 1005000, '清新趣粉系列居家地毯 青粉拼接', 'http://yanxuan.nosdn.127.net/a1094a808ffb3a52a6cb13565a283d98.png', '1128002', 1, 1, 1, 0, 1, 27, 1008002, 619.00, 0.00, 1008002, 1008002, NULL, '清新撞色 细腻柔软', '清新撞色 细腻柔软', 599.00, 1128002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a1094a808ffb3a52a6cb13565a283d98.png', '清新撞色 细腻柔软', '清新撞色 细腻柔软', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (135, 1001000, 1008002, NULL, 1005000, '帆布丝羽绒多用坐垫', 'http://yanxuan.nosdn.127.net/19ecd7c6f6f31219cf75117238d95139.png', '1130037', 1, 1, 1, 0, 1, 17, 1008002, 59.00, 0.00, 1008002, 1008002, NULL, '柔软蓬松,透气防螨。', '柔软蓬松,透气防螨。', 39.00, 1130037, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/19ecd7c6f6f31219cf75117238d95139.png', '柔软蓬松,透气防螨。', '柔软蓬松,透气防螨。', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (136, 1001000, 1017000, NULL, 1005000, '贝壳型凉感蓬松宠物窝垫', 'http://yanxuan.nosdn.127.net/4d77296e02896675558f1a8a83742132.png', '1130038', 1, 1, 1, 0, 1, 1, 1017000, 109.00, 0.00, 1017000, 1017000, NULL, '日本面料,简约条纹', '日本面料,简约条纹', 89.00, 1130038, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/4d77296e02896675558f1a8a83742132.png', '日本面料,简约条纹', '日本面料,简约条纹', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (137, 1001000, 1017000, NULL, 1005000, '房型封闭式凉感条纹宠物窝', 'http://yanxuan.nosdn.127.net/03c73e1f1ce1d2365e83b3230e507030.png', '1130039', 1, 1, 1, 0, 1, 3, 1017000, 109.00, 0.00, 1017000, 1017000, NULL, '日式面料,四季可用', '日式面料,四季可用', 89.00, 1130039, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/03c73e1f1ce1d2365e83b3230e507030.png', '日式面料,四季可用', '日式面料,四季可用', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (138, 1001000, 1008002, NULL, 1005000, '皮毛一体多用长毛坐垫', 'http://yanxuan.nosdn.127.net/442b9d99c0e7f39efd7967e0e5987374.png', '1130041', 1, 1, 1, 0, 1, 19, 1008002, 129.00, 0.00, 1008002, 1008002, NULL, '澳洲羊毛的细腻触感', '澳洲羊毛的细腻触感', 109.00, 1130041, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/442b9d99c0e7f39efd7967e0e5987374.png', '澳洲羊毛的细腻触感', '澳洲羊毛的细腻触感', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (139, 1001000, 1008002, NULL, 1005000, '皮毛一体多用单张长毛皮垫', 'http://yanxuan.nosdn.127.net/dc9d09334eb201fe9408ed604e549941.png', '1130042', 1, 1, 1, 0, 1, 20, 1008002, 259.00, 0.00, 1008002, 1008002, NULL, '盖毯、沙发垫、椅垫、地垫', '盖毯、沙发垫、椅垫、地垫', 239.00, 1130042, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/dc9d09334eb201fe9408ed604e549941.png', '盖毯、沙发垫、椅垫、地垫', '盖毯、沙发垫、椅垫、地垫', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (140, 1001000, 1036000, NULL, 1005000, '柔软凉爽天丝麻蚕丝填充夏凉被', 'http://yanxuan.nosdn.127.net/d88513f85b3617d734bde93af2c766c9.png', '1130049', 1, 1, 1, 0, 1, 6, 1036000, 449.00, 0.00, 1036000, 1036000, NULL, '天然恒温凉感面料,蚕丝美肤透气保护', '天然恒温凉感面料,蚕丝美肤透气保护', 429.00, 1130049, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d88513f85b3617d734bde93af2c766c9.png', '天然恒温凉感面料,蚕丝美肤透气保护', '天然恒温凉感面料,蚕丝美肤透气保护', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (141, 1001000, 1036000, NULL, 1005000, '奢华植鞣头层水牛皮席三件套', 'http://yanxuan.nosdn.127.net/56e72b84a9bb66687c003ecdaba73816.png', '1130056', 1, 1, 1, 0, 1, 9, 1036000, 2319.00, 0.00, 1036000, 1036000, NULL, '三峡水牛头层皮,高端夏凉必备', '三峡水牛头层皮,高端夏凉必备', 2299.00, 1130056, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/56e72b84a9bb66687c003ecdaba73816.png', '三峡水牛头层皮,高端夏凉必备', '三峡水牛头层皮,高端夏凉必备', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (142, 1001000, 1036000, NULL, 1005000, '平滑细篾头层青碳化竹凉席', 'http://yanxuan.nosdn.127.net/2b6e2268ed712f1a336283f013abb7a1.png', '1131017', 1, 1, 1, 1, 1, 10, 1036001, 279.00, 0.00, 1036000, 1036000, NULL, '细篾整密,凉滑不夹肉', '细篾整密,凉滑不夹肉', 259.00, 1131016, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/2b6e2268ed712f1a336283f013abb7a1.png', '细篾整密,凉滑不夹肉', '细篾整密,凉滑不夹肉', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 4, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 1, 1, '5', NULL), + (143, 1001000, 1008002, NULL, 1005000, '清新趣粉防滑浴垫', 'http://yanxuan.nosdn.127.net/a2b7489b4a2b1c09b66464cede4dabd7.png', '1134022', 1, 1, 1, 0, 1, 31, 1008006, 99.00, 0.00, 1008002, 1008002, NULL, '清新跃动,舒适脚感', '清新跃动,舒适脚感', 79.00, 1134020, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/a2b7489b4a2b1c09b66464cede4dabd7.png', '清新跃动,舒适脚感', '清新跃动,舒适脚感', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 1, 0, '5', NULL), + (144, 1001000, 1008002, NULL, 1005000, '简约知性记忆棉坐垫', 'http://yanxuan.nosdn.127.net/aa49dfe878becf768eddc4c1636643a6.png', '1134030', 1, 1, 1, 0, 1, 12, 1008002, 66.00, 0.00, 1008002, 1008002, NULL, '慢回弹海绵,时尚设计。', '慢回弹海绵,时尚设计。', 46.00, 1134030, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/aa49dfe878becf768eddc4c1636643a6.png', '慢回弹海绵,时尚设计。', '慢回弹海绵,时尚设计。', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (145, 1001000, 1008002, NULL, 1005000, '趣味粉彩系列记忆棉坐垫', 'http://yanxuan.nosdn.127.net/8b30eeb17c831eba08b97bdcb4c46a8e.png', '1134032', 1, 1, 1, 0, 1, 13, 1008002, 69.00, 0.00, 1008002, 1008002, NULL, '慢回弹海绵的呵护,萌趣添彩。', '慢回弹海绵的呵护,萌趣添彩。', 49.00, 1134032, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/8b30eeb17c831eba08b97bdcb4c46a8e.png', '慢回弹海绵的呵护,萌趣添彩。', '慢回弹海绵的呵护,萌趣添彩。', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (146, 1001000, 1008009, NULL, 1005000, '竹语初棉撞色四件套', 'http://yanxuan.nosdn.127.net/c29f47f58ba1e3c2ff5a193eec0b11d6.png', '1134056', 1, 1, 1, 0, 1, 14, 1008009, 449.00, 0.00, 1008009, 1008009, NULL, '天然竹醌成分,抑菌爽滑健康睡眠', '天然竹醌成分,抑菌爽滑健康睡眠', 429.00, 1134056, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/c29f47f58ba1e3c2ff5a193eec0b11d6.png', '天然竹醌成分,抑菌爽滑健康睡眠', '天然竹醌成分,抑菌爽滑健康睡眠', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (147, 1001000, 1008009, NULL, 1005000, '几何印花AB面全棉四件套', 'http://yanxuan.nosdn.127.net/53d0309471b570a7e12a3f01ba694491.png', '1135000', 1, 1, 1, 0, 1, 13, 1008009, 379.00, 0.00, 1008009, 1008009, NULL, '几何线条,舒适的北欧线条风', '几何线条,舒适的北欧线条风', 359.00, 1135000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/53d0309471b570a7e12a3f01ba694491.png', '几何线条,舒适的北欧线条风', '几何线条,舒适的北欧线条风', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (148, 1001000, 1008009, NULL, 1005000, '印象森林全棉贡缎四件套', 'http://yanxuan.nosdn.127.net/f82ee85933d6f0cc95382215281d3526.png', '1135001', 1, 1, 1, 0, 1, 7, 1008009, 479.00, 0.00, 1008009, 1008009, NULL, '细腻长绒棉的柔滑', '细腻长绒棉的柔滑', 459.00, 1135001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/f82ee85933d6f0cc95382215281d3526.png', '细腻长绒棉的柔滑', '细腻长绒棉的柔滑', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (149, 1001000, 1008009, NULL, 1005000, '宫廷奢华真丝四件套', 'http://yanxuan.nosdn.127.net/45548f26cfd0c7c41e0afc3709d48286.png', '1135002', 1, 1, 1, 0, 1, 1, 1008009, 2619.00, 0.00, 1008009, 1008009, NULL, '100%桑蚕丝,丝滑润肤', '100%桑蚕丝,丝滑润肤', 2599.00, 1135002, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/45548f26cfd0c7c41e0afc3709d48286.png', '100%桑蚕丝,丝滑润肤', '100%桑蚕丝,丝滑润肤', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (150, 1001000, 1017000, NULL, 1005000, '多功能封闭式环保除菌猫砂盆', 'http://yanxuan.nosdn.127.net/366f3f3f0e8971c8cf871e2b55b74ff2.png', '1135050', 1, 1, 1, 0, 1, 2, 1017000, 199.00, 0.00, 1017000, 1017000, NULL, '银离子吸附脏东西,多功能', '银离子吸附脏东西,多功能', 179.00, 1135050, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/366f3f3f0e8971c8cf871e2b55b74ff2.png', '银离子吸附脏东西,多功能', '银离子吸附脏东西,多功能', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (151, 1001000, 1008002, NULL, 1005000, '日式素雅纯色流星纹窗帘', 'http://yanxuan.nosdn.127.net/9126151f028a8804026d530836b481cb.png', '1135051', 1, 1, 1, 0, 1, 35, 1008002, 319.00, 0.00, 1008002, 1008002, NULL, '日式素雅设计 流星纹简约肌理', '日式素雅设计 流星纹简约肌理', 299.00, 1135051, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/9126151f028a8804026d530836b481cb.png', '日式素雅设计 流星纹简约肌理', '日式素雅设计 流星纹简约肌理', '



', '



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (152, 1001000, 1008002, NULL, 1005000, '日式简约素色窗帘', 'http://yanxuan.nosdn.127.net/63f5da1f5363af43aa91864bf66af48e.png', '1135052', 1, 1, 1, 0, 1, 34, 1008002, 279.00, 0.00, 1008002, 1008002, NULL, '日式极简美学 舒适棉麻质感', '日式极简美学 舒适棉麻质感', 259.00, 3440, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/63f5da1f5363af43aa91864bf66af48e.png', '日式极简美学 舒适棉麻质感', '日式极简美学 舒适棉麻质感', '

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

 

', '

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

 

', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 12, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (153, 1001000, 1008002, NULL, 1005000, '法式复古山形纹提花窗帘', 'http://yanxuan.nosdn.127.net/1f9e34b1aadd14ea0c9c299c530d86ba.png', '1135053', 1, 1, 1, 0, 1, 38, 1008002, 449.00, 0.00, 1008002, 1008002, NULL, '轻奢复古,立体提花', '轻奢复古,立体提花', 429.00, 1135053, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/1f9e34b1aadd14ea0c9c299c530d86ba.png', '轻奢复古,立体提花', '轻奢复古,立体提花', '



', '



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (154, 1001000, 1008002, NULL, 1005000, '美式田园风蜻蜓提花窗帘', 'http://yanxuan.nosdn.127.net/30d7daa0824fbb61b6c36175c8203349.png', '1135054', 1, 1, 1, 0, 1, 39, 1008002, 579.00, 0.00, 1008002, 1008002, NULL, '美式蜻蜓提花 甜美田园色彩', '美式蜻蜓提花 甜美田园色彩', 559.00, 1135054, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/30d7daa0824fbb61b6c36175c8203349.png', '美式蜻蜓提花 甜美田园色彩', '美式蜻蜓提花 甜美田园色彩', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (155, 1001000, 1008002, NULL, 1005000, '北欧印象几何条纹混色窗帘', 'http://yanxuan.nosdn.127.net/87b6a608b99279ebf1764682e9e5fcec.png', '1135055', 1, 1, 1, 0, 1, 37, 1008002, 419.00, 0.00, 1008002, 1008002, NULL, '山形纹提花 北欧简约混色', '山形纹提花 北欧简约混色', 399.00, 1135055, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/87b6a608b99279ebf1764682e9e5fcec.png', '山形纹提花 北欧简约混色', '山形纹提花 北欧简约混色', '



', '



', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (156, 1001000, 1008002, NULL, 1005000, '糖果色凹凸条纹儿童房窗帘', 'http://yanxuan.nosdn.127.net/536246ca4adb77274a94b18bb2f91f47.png', '1135056', 1, 1, 1, 0, 1, 36, 1008002, 279.00, 0.00, 1008002, 1008002, NULL, '灵动色彩,童趣条纹', '灵动色彩,童趣条纹', 259.00, 1135056, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/536246ca4adb77274a94b18bb2f91f47.png', '灵动色彩,童趣条纹', '灵动色彩,童趣条纹', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (157, 1001000, 1008002, NULL, 1005000, '梦幻系简约轻透莹白纱帘', 'http://yanxuan.nosdn.127.net/98c5e80b8e328687ce9c949314ebc41d.png', '1135057', 1, 1, 1, 0, 1, 33, 1008002, 219.00, 0.00, 1008002, 1008002, NULL, '轻透柔软纱 朦胧细纹肌理', '轻透柔软纱 朦胧细纹肌理', 199.00, 1135057, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/98c5e80b8e328687ce9c949314ebc41d.png', '轻透柔软纱 朦胧细纹肌理', '轻透柔软纱 朦胧细纹肌理', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (158, 1001000, 1008002, NULL, 1005000, '日式多功能手卷午睡枕坐垫', 'http://yanxuan.nosdn.127.net/37bc0fa3524a904ac740340fa92bd515.png', '1135058', 1, 1, 1, 0, 1, 16, 1008002, 99.00, 0.00, 1008002, 1008002, NULL, '全棉针织条纹,透气按摩粒子', '全棉针织条纹,透气按摩粒子', 79.00, 1135058, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/37bc0fa3524a904ac740340fa92bd515.png', '全棉针织条纹,透气按摩粒子', '全棉针织条纹,透气按摩粒子', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (159, 1001000, 1008002, NULL, 1005000, '日式蓬软太鼓抱枕', 'http://yanxuan.nosdn.127.net/ad953e16ad8c33b714e7af941ce8cd56.png', '1138000', 1, 1, 1, 0, 1, 2, 1008002, 49.00, 0.00, 1008002, 1008002, NULL, '萌趣太鼓造型 软糯轻柔回弹', '萌趣太鼓造型 软糯轻柔回弹', 29.00, 1138000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/ad953e16ad8c33b714e7af941ce8cd56.png', '萌趣太鼓造型 软糯轻柔回弹', '萌趣太鼓造型 软糯轻柔回弹', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (160, 1001000, 1008002, NULL, 1005000, '北欧简约山形纹绣花抱枕', 'http://yanxuan.nosdn.127.net/dbc5b25b824c3b3d7ff43b56ca35eee9.png', '1138001', 1, 1, 1, 0, 1, 3, 1008002, 99.00, 0.00, 1008002, 1008002, NULL, '精细刺绣,舒适立体', '精细刺绣,舒适立体', 79.00, 1138001, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/dbc5b25b824c3b3d7ff43b56ca35eee9.png', '精细刺绣,舒适立体', '精细刺绣,舒适立体', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (161, 1001000, 1036000, NULL, 1005000, '婴儿床蔺草席', 'http://yanxuan.nosdn.127.net/50e197854e0ada79c37b7215a1574450.png', '1143015', 1, 1, 1, 0, 1, 12, 1036000, 99.00, 0.00, 1036000, 1036000, NULL, '天然龙眉草,婴童可用', '天然龙眉草,婴童可用', 79.00, 1143015, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/50e197854e0ada79c37b7215a1574450.png', '天然龙眉草,婴童可用', '天然龙眉草,婴童可用', '

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

 

', '

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

\n

 

', NULL, NULL, NULL, 0, NULL, '夏凉', NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (162, 1001000, 1008002, NULL, 1005000, '清新趣粉系列居家地毯 灰黄条纹', 'http://yanxuan.nosdn.127.net/5cda4a0c4c4ff9728d03186bd053c9ca.png', '1147045', 1, 1, 1, 0, 1, 28, 1008002, 619.00, 0.00, 1008002, 1008002, NULL, '条纹色块拼接 软糯温馨', '条纹色块拼接 软糯温馨', 599.00, 1147045, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/5cda4a0c4c4ff9728d03186bd053c9ca.png', '条纹色块拼接 软糯温馨', '条纹色块拼接 软糯温馨', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (163, 1001000, 1008002, NULL, 1005000, '清新趣粉系列居家地毯 条纹间粉', 'http://yanxuan.nosdn.127.net/655d718df8107f8e7fd1dc6140e29039.png', '1147046', 1, 1, 1, 0, 1, 26, 1008002, 619.00, 0.00, 1008002, 1008002, NULL, '多色拼接 舒柔静音', '多色拼接 舒柔静音', 599.00, 1147046, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/655d718df8107f8e7fd1dc6140e29039.png', '多色拼接 舒柔静音', '多色拼接 舒柔静音', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (164, 1001000, 1008002, NULL, 1005000, '简约知性系列居家地毯 蓝粉拼接', 'http://yanxuan.nosdn.127.net/bda805b0a2464b6ec33c18981565e50e.png', '1147047', 1, 1, 1, 0, 1, 29, 1008002, 579.00, 0.00, 1008002, 1008002, NULL, '三角几何拼接 超细绒感', '三角几何拼接 超细绒感', 559.00, 1147047, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/bda805b0a2464b6ec33c18981565e50e.png', '三角几何拼接 超细绒感', '三角几何拼接 超细绒感', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (165, 1001000, 1008002, NULL, 1005000, '简约知性系列居家地毯 蓝灰格', 'http://yanxuan.nosdn.127.net/fd7920a2eadd10fa10c0c03959a2abe0.png', '1147048', 1, 1, 1, 0, 1, 30, 1008002, 579.00, 0.00, 1008002, 1008002, NULL, '沉稳双拼色 居家温柔伴护', '沉稳双拼色 居家温柔伴护', 559.00, 1147048, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/fd7920a2eadd10fa10c0c03959a2abe0.png', '沉稳双拼色 居家温柔伴护', '沉稳双拼色 居家温柔伴护', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (166, 1001000, 1008009, NULL, 1005000, '简约知性全棉四件套 素雅灰', 'http://yanxuan.nosdn.127.net/cb65635dbcef42b68ba21433f4948f5a.png', '1151012', 1, 1, 1, 0, 1, 10, 1008009, 379.00, 0.00, 1008009, 1008009, NULL, '素净优雅灰 彰显平和知性', '素净优雅灰 彰显平和知性', 359.00, 1151012, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/cb65635dbcef42b68ba21433f4948f5a.png', '素净优雅灰 彰显平和知性', '素净优雅灰 彰显平和知性', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (167, 1001000, 1008009, NULL, 1005000, '简约知性全棉四件套 胭脂粉', 'http://yanxuan.nosdn.127.net/73a8692048f58f15e823b636d7c3bb74.png', '1151013', 1, 1, 1, 0, 1, 9, 1008009, 379.00, 0.00, 1008009, 1008009, NULL, '清新灵动粉 谱写浪漫意趣', '清新灵动粉 谱写浪漫意趣', 359.00, 1151013, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/73a8692048f58f15e823b636d7c3bb74.png', '清新灵动粉 谱写浪漫意趣', '清新灵动粉 谱写浪漫意趣', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (168, 1001000, 1008009, NULL, 1005000, '竹语丝麻印花四件套', 'http://yanxuan.nosdn.127.net/977401e75113f7c8334c4fb5b4bf6215.png', '1152161', 1, 1, 1, 0, 1, 6, 1008009, 479.00, 0.00, 1008009, 1008009, NULL, '3重透气,清爽柔滑', '3重透气,清爽柔滑', 459.00, 1152161, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/977401e75113f7c8334c4fb5b4bf6215.png', '3重透气,清爽柔滑', '3重透气,清爽柔滑', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (169, 1001000, 1008009, NULL, 1005000, '清新趣粉全棉四件套 条纹绿格', 'http://yanxuan.nosdn.127.net/d7d6ef1f1865991077384761b4521dce.png', '1155000', 1, 1, 1, 0, 1, 12, 1008009, 419.00, 0.00, 1008009, 1008009, NULL, '清新趣粉全棉四件套 青粉拼接', '清新趣粉全棉四件套 青粉拼接', 399.00, 1155000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d7d6ef1f1865991077384761b4521dce.png', '清新趣粉全棉四件套 青粉拼接', '清新趣粉全棉四件套 青粉拼接', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (170, 1001020, 1008008, NULL, 1005000, '母亲节礼物-舒适安睡组合', 'http://yanxuan.nosdn.127.net/1f67b1970ee20fd572b7202da0ff705d.png', '1181000', 1, 1, 1, 0, 1, 1, 1008008, 2618.00, 0.00, 1008008, 1008008, NULL, '安心舒适是最好的礼物', '安心舒适是最好的礼物', 2598.00, 1181000, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/1f67b1970ee20fd572b7202da0ff705d.png', '安心舒适是最好的礼物', '安心舒适是最好的礼物', '


', '


', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 1, 0, 1201, '天津市', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (171, 1001000, 1005007, NULL, 1005001, '100年传世珐琅锅 全家系列', 'http://yanxuan.nosdn.127.net/c39d54c06a71b4b61b6092a0d31f2335.png', '1023003', 1, 1, 1, 0, 1, 3, 1005009, 418.00, 0.00, 1005007, 1005007, NULL, '特质铸铁,大容量全家共享', '特质铸铁,大容量全家共享', 398.00, 3218, 0, '只', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/c39d54c06a71b4b61b6092a0d31f2335.png', '特质铸铁,大容量全家共享', '特质铸铁,大容量全家共享', '', '', NULL, NULL, NULL, 0, NULL, '锅具', NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 11, 0, 13, '石家庄', NULL, 0, 1, NULL, '一家花店', 1, 0, '5', NULL), + (172, 1001000, 1005007, NULL, 1005001, '100年传世珐琅锅', 'http://yanxuan.nosdn.127.net/49e26f00ca4d0ce00f9960d22c936738.png', '1025005', 1, 1, 1, 1, 1, 1, 1005010, 288.00, 0.00, 1005007, 1005007, NULL, '特质铸铁,锁热节能', '特质铸铁,锁热节能', 268.00, 15986, 0, '只', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/49e26f00ca4d0ce00f9960d22c936738.png', '特质铸铁,锁热节能', '特质铸铁,锁热节能', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 19, 0, 13, '石家庄', NULL, 0, 1, NULL, '一家花店', 1, 1, '5', NULL), + (173, 1001000, 1005007, NULL, 1005001, '100年传世珐琅锅 马卡龙系列', 'http://yanxuan.nosdn.127.net/4d3d3eaeb872860539d7faa59f9f84e9.png', '1038004', 1, 1, 1, 0, 1, 2, 1005009, 379.00, 0.00, 1005007, 1005007, NULL, '均匀导热,释放美味', '均匀导热,释放美味', 359.00, 1038003, 0, '只', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/4d3d3eaeb872860539d7faa59f9f84e9.png', '均匀导热,释放美味', '均匀导热,释放美味', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 6, 0, 1301, '石家庄', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (174, 1001000, 1005007, NULL, 1005001, 'Carat钻石炒锅30cm', 'http://yanxuan.nosdn.127.net/e564410546a11ddceb5a82bfce8da43d.png', '1051000', 1, 1, 1, 0, 1, 7, 1005009, 200.00, 0.00, 1005007, 1005007, NULL, '安全涂层,轻便无烟', '安全涂层,轻便无烟', 180.00, 1051000, 0, '只', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/e564410546a11ddceb5a82bfce8da43d.png', '安全涂层,轻便无烟', '安全涂层,轻便无烟', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 21, 0, 1301, '石家庄', NULL, 0, 1, NULL, '一家花店', 1, 0, '5', NULL), + (175, 1001000, 1005007, NULL, 1005001, 'Carat钻石煎锅28cm', 'http://yanxuan.nosdn.127.net/f53ed57d9e23fda7e24dfd0e0a50c5d1.png', '1051001', 1, 1, 1, 0, 1, 8, 1005007, 179.00, 0.00, 1005007, 1005007, NULL, '耐磨涂层,导热迅速', '耐磨涂层,导热迅速', 159.00, 1051001, 0, '只', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/f53ed57d9e23fda7e24dfd0e0a50c5d1.png', '耐磨涂层,导热迅速', '耐磨涂层,导热迅速', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1301, '石家庄', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (176, 1001000, 1005007, NULL, 1005001, 'Carat钻石汤锅24cm', 'http://yanxuan.nosdn.127.net/56f4b4753392d27c0c2ccceeb579ed6f.png', '1051002', 1, 1, 1, 0, 1, 6, 1005007, 248.00, 0.00, 1005007, 1005007, NULL, '安全涂层,锁热保温', '安全涂层,锁热保温', 228.00, 1051002, 0, '只', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/56f4b4753392d27c0c2ccceeb579ed6f.png', '安全涂层,锁热保温', '安全涂层,锁热保温', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1301, '石家庄', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (177, 1001000, 1005007, NULL, 1005001, 'Carat钻石奶锅18cm', 'http://yanxuan.nosdn.127.net/6a54ccc389afb2459b163245bbb2c978.png', '1051003', 1, 1, 1, 0, 1, 9, 1005007, 168.00, 0.00, 1005007, 1005007, NULL, '轻便节能,易于清洗', '轻便节能,易于清洗', 148.00, 1051003, 0, '只', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/6a54ccc389afb2459b163245bbb2c978.png', '轻便节能,易于清洗', '轻便节能,易于清洗', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 2, 0, 1301, '石家庄', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (178, 1001000, 1005007, NULL, 1005001, '铸铁珐琅牛排煎锅', 'http://yanxuan.nosdn.127.net/619e46411ccd62e5c0f16692ee1a85a0.png', '1073008', 1, 1, 1, 0, 1, 4, 1005008, 169.00, 0.00, 1005007, 1005007, NULL, '沥油隔水,煎出外焦里嫩', '沥油隔水,煎出外焦里嫩', 149.00, 1073008, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/619e46411ccd62e5c0f16692ee1a85a0.png', '沥油隔水,煎出外焦里嫩', '沥油隔水,煎出外焦里嫩', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 3, 0, 1301, '石家庄', NULL, 0, 1, NULL, '一家花店', 0, 0, '5', NULL), + (179, 1001000, 1005007, NULL, 1005001, 'Carat钻石 不粘厨具组合', 'http://yanxuan.nosdn.127.net/615a16e899e01efb780c488df4233f48.png', '1166008', 1, 1, 1, 0, 1, 5, 1005028, 479.00, 0.00, 1005007, 1005007, NULL, '钻石涂层,不粘锅锅具组', '钻石涂层,不粘锅锅具组', 459.00, 3960, 0, '只', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/615a16e899e01efb780c488df4233f48.png', '钻石涂层,不粘锅锅具组', '钻石涂层,不粘锅锅具组', '', '', NULL, NULL, NULL, 0, NULL, '锅具', NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 53, 0, 1403, '石家庄', NULL, 0, 1, NULL, '一家花店', 0, 1, '5', NULL), + (180, 1001000, 1008015, NULL, 1005002, '绿茶蛋黄酥 200克/4枚入', 'http://yanxuan.nosdn.127.net/b2adc3fd9b84a289a1be03e8ee400e61.png', '1045000', 1, 1, 1, 0, 1, 7, 1008019, 48.00, 0.00, 1008015, 1008015, NULL, '香甜茶食,果腹优选', '香甜茶食,果腹优选', 28.00, 1044998, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/b2adc3fd9b84a289a1be03e8ee400e61.png', '香甜茶食,果腹优选', '香甜茶食,果腹优选', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 2, NULL, 10, 0, 1301, '石家庄', NULL, 0, 1, NULL, '饮食出售公司', 0, 0, '5', NULL), + (181, 1001000, 1008015, NULL, 1005002, '星云酥 180克/3颗', 'http://yanxuan.nosdn.127.net/8392725765cdd57fdae3f173877f4bda.png', '1070000', 1, 1, 1, 0, 1, 8, 1008020, 46.00, 0.00, 1008015, 1008015, NULL, '酥饼界的小仙女', '酥饼界的小仙女', 26.00, 1069996, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/8392725765cdd57fdae3f173877f4bda.png', '酥饼界的小仙女', '酥饼界的小仙女', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 2, NULL, 30, 0, 1301, '石家庄', NULL, 0, 1, NULL, '饮食出售公司', 0, 0, '5', NULL), + (182, 1001000, 1008015, NULL, 1005002, '妙曲奇遇记曲奇礼盒 520克', 'http://yanxuan.nosdn.127.net/8d228f767b136a67aaf2cbbf6deb46fa.png', '1111007', 1, 1, 1, 0, 1, 4, 1008016, 98.00, 0.00, 1008015, 1008015, NULL, '六种口味,酥香脆爽', '六种口味,酥香脆爽', 78.00, 1111006, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/8d228f767b136a67aaf2cbbf6deb46fa.png', '六种口味,酥香脆爽', '六种口味,酥香脆爽', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 2, NULL, 4, 0, 1301, '石家庄', NULL, 0, 1, NULL, '饮食出售公司', 0, 0, '5', NULL), + (183, 1001000, 1008015, NULL, 1005002, '蔓越莓曲奇 200克', 'http://yanxuan.nosdn.127.net/767b370d07f3973500db54900bcbd2a7.png', '1116011', 1, 1, 1, 0, 1, 5, 1008016, 56.00, 0.00, 1008015, 1008015, NULL, '酥脆奶香,甜酸回味', '酥脆奶香,甜酸回味', 36.00, 1116010, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/767b370d07f3973500db54900bcbd2a7.png', '酥脆奶香,甜酸回味', '酥脆奶香,甜酸回味', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 2, NULL, 7, 0, 1301, '石家庄', NULL, 0, 1, NULL, '饮食出售公司', 0, 0, '5', NULL), + (184, 1001000, 1008015, NULL, 1005002, '凤梨酥 360克', 'http://yanxuan.nosdn.127.net/9356cc27b22bd47ad43913d13226555f.png', '1134036', 1, 1, 1, 0, 1, 9, 1008015, 58.00, 0.00, 1008015, 1008015, NULL, '特别添加10%凤梨果肉', '特别添加10%凤梨果肉', 38.00, 1134036, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/9356cc27b22bd47ad43913d13226555f.png', '特别添加10%凤梨果肉', '特别添加10%凤梨果肉', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 2, NULL, 7, 0, 1301, '石家庄', NULL, 0, 1, NULL, '饮食出售公司', 0, 0, '5', NULL), + (185, 1001000, 1008015, NULL, 1005002, '粽情乡思端午粽礼盒 640克', 'http://yanxuan.nosdn.127.net/d1fd69cee4990f4de1109baef30efeeb.png', '1143018', 1, 1, 1, 1, 1, 1, 1008043, 88.00, 0.00, 1008017, 1008015, NULL, '五种口味,寄情端午', '五种口味,寄情端午', 68.00, 1180, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/d1fd69cee4990f4de1109baef30efeeb.png', '五种口味,寄情端午', '五种口味,寄情端午', '', '', NULL, NULL, NULL, 0, NULL, '糕点', NULL, '2020-04-10 21:45:51', NULL, 2, NULL, 75, 0, 1504, '石家庄', NULL, 0, 1, NULL, '饮食出售公司', 1, 0, '5', NULL), + (186, 1001000, 1008015, NULL, 1005002, '粽夏冰晶端午粽礼盒 480克', 'http://yanxuan.nosdn.127.net/277b07c1e5e6fb57cf9ca47fcd3903d5.png', '1143019', 1, 1, 1, 0, 1, 2, 1008033, 118.00, 0.00, 1008016, 1008015, NULL, '五味冰粽,清凉一夏', '五味冰粽,清凉一夏', 98.00, 3324, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/277b07c1e5e6fb57cf9ca47fcd3903d5.png', '五味冰粽,清凉一夏', '五味冰粽,清凉一夏', '', '', NULL, NULL, NULL, 0, NULL, '糕点', NULL, '2020-04-10 21:45:51', NULL, 2, NULL, 65, 0, 13, '石家庄', NULL, 0, 1, NULL, '饮食出售公司', 0, 1, '5', NULL), + (187, 1001000, 1008015, NULL, 1005002, '粽横四海端午粽礼盒 800克', 'http://yanxuan.nosdn.127.net/200d4d59763af9a0781cca4a06175de7.png', '1143020', 1, 1, 1, 0, 1, 3, 1008024, 188.00, 0.00, 1008015, 1008015, NULL, '八方风味,粽香礼赞', '八方风味,粽香礼赞', 168.00, 1143019, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/200d4d59763af9a0781cca4a06175de7.png', '八方风味,粽香礼赞', '八方风味,粽香礼赞', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 2, NULL, 16, 0, 1301, '石家庄', NULL, 0, 1, NULL, '饮食出售公司', 0, 0, '5', NULL), + (188, 1001000, 1008015, NULL, 1005002, '绿豆糕 80克(4枚入)', 'http://yanxuan.nosdn.127.net/66b9f1638c0517d179262f14ed1345f9.png', '1155015', 1, 1, 1, 0, 1, 6, 1008020, 32.90, 0.00, 1008015, 1008015, NULL, '细腻松软,入口绵柔', '细腻松软,入口绵柔', 12.90, 1155012, 0, '件', NULL, NULL, NULL, NULL, NULL, 'http://yanxuan.nosdn.127.net/66b9f1638c0517d179262f14ed1345f9.png', '细腻松软,入口绵柔', '细腻松软,入口绵柔', '', '', NULL, NULL, NULL, 0, NULL, NULL, NULL, '2020-04-10 21:45:51', NULL, 2, NULL, 7, 0, 1301, '石家庄', NULL, 0, 1, NULL, '饮食出售公司', 0, 0, '5', NULL), + (189, 1001000, 1005007, 0, NULL, '阿萨大大十大', NULL, '1243769446417231873', 1, 0, 0, 0, 0, 0, 0, 0.00, 0.00, 0, 0, 0, '撒大苏打 ', NULL, 0.00, 0, 0, '件', 0.00, 0, '', NULL, NULL, '', '', '', '', '', NULL, NULL, 0, 0, 'MUJI制造商', '锅具', NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, '2020-04-02 00:00:00', '北京豪车专卖', 1, 0, '5', NULL), + (190, 1001020, 1005007, 0, 1005000, '商品组测试', NULL, '1244479334235697153', 1, 1, 0, 0, 0, 0, 0, 0.00, 0.00, 0, 0, 0, '测试1', NULL, 0.00, 0, 0, '件', 0.00, 0, '', NULL, NULL, '', '', '', '', '', NULL, NULL, 0, 0, 'Ralph Lauren制造商', '锅具', NULL, '2020-04-10 21:45:51', NULL, 1, NULL, 0, 0, 1201, '天津市', NULL, 0, 1, '2020-04-04 00:00:00', '一家花店', 0, 0, '5', NULL), + (192, 1001000, 1005007, 0, NULL, '11', NULL, '11', 1, 0, 0, 0, 0, 0, 0, 22.00, 0.00, 0, 0, 0, '11', '11', 22.00, 22, 0, '件', 0.00, 0, '', NULL, NULL, '', '', '', '', '', NULL, NULL, 0, 0, 'MUJI制造商', '锅具', NULL, '2020-04-22 14:41:24', NULL, 1, NULL, 1, 0, 1403, '阳泉', NULL, 0, 1, '2020-04-26 16:00:00', '一家花店', 0, 0, '5', NULL), + (193, 1001000, 1005007, 0, NULL, '123', NULL, '22', 1, 0, 0, 0, 0, 0, 0, 0.00, 0.00, 0, 0, 0, '12', '22', 0.00, 0, 0, '件', 0.00, 0, '', NULL, NULL, '', '', '', '', '', NULL, NULL, 0, 0, 'MUJI制造商', '锅具', NULL, '2020-04-25 07:39:55', NULL, 1, NULL, 0, 0, 2104, '抚顺', NULL, 0, 1, '2020-04-29 16:00:00', '平台自营', 0, 0, '5,6', 3); + +-- 导出 表 mallplus1.pms_product_attribute 结构 +DROP TABLE IF EXISTS `pms_product_attribute`; +CREATE TABLE IF NOT EXISTS `pms_product_attribute` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_attribute_category_id` bigint(20) DEFAULT NULL, + `name` varchar(64) DEFAULT NULL, + `select_type` int(11) DEFAULT NULL COMMENT '属性选择类型:0->唯一;1->单选;2->多选', + `input_type` int(11) DEFAULT NULL COMMENT '属性录入方式:0->手工录入;1->从列表中选取', + `input_list` varchar(255) DEFAULT NULL COMMENT '可选值列表,以逗号隔开', + `sort` int(11) DEFAULT NULL COMMENT '排序字段:最高的可以单独上传图片', + `filter_type` int(11) DEFAULT NULL COMMENT '分类筛选样式:1->普通;1->颜色', + `search_type` int(11) DEFAULT NULL COMMENT '检索类型;0->不需要进行检索;1->关键字检索;2->范围检索', + `related_status` int(11) DEFAULT NULL COMMENT '相同属性产品是否关联;0->不关联;1->关联', + `hand_add_status` int(11) DEFAULT NULL COMMENT '是否支持手动新增;0->不支持;1->支持', + `type` int(11) DEFAULT '0' COMMENT '属性的类型;0->规格;1->参数', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=229 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='商品属性参数表'; + +-- 正在导出表 mallplus1.pms_product_attribute 的数据:~8 rows (大约) +INSERT INTO `pms_product_attribute` (`id`, `product_attribute_category_id`, `name`, `select_type`, `input_type`, `input_list`, `sort`, `filter_type`, `search_type`, `related_status`, `hand_add_status`, `type`, `store_id`) VALUES + (221, 1005000, '颜色', 0, 0, '', 0, 0, 0, 0, 1, 0, 1), + (222, 1005000, '尺寸', 0, 0, '', 0, 0, 0, 0, 1, 0, 1), + (223, 1005000, '舒适程度', 0, 0, '', 0, 0, 0, 0, 1, 1, 1), + (224, 1005001, '颜色', 0, 0, '', 0, 0, 0, 0, 1, 0, 1), + (225, 1005001, '形状', 0, 0, '', 0, 0, 0, 0, 1, 0, 1), + (226, 1005001, '样式', 0, 0, '', 0, 0, 0, 0, 1, 1, 1), + (227, 1005002, '袋装', 0, 0, '', 0, 0, 0, 0, 1, 0, 1), + (228, 1005002, '箱装', 0, 0, '', 0, 0, 0, 0, 1, 0, 1); + +-- 导出 表 mallplus1.pms_product_attribute_category 结构 +DROP TABLE IF EXISTS `pms_product_attribute_category`; +CREATE TABLE IF NOT EXISTS `pms_product_attribute_category` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(64) DEFAULT NULL, + `attribute_count` int(11) DEFAULT '0' COMMENT '属性数量', + `param_count` int(11) DEFAULT '0' COMMENT '参数数量', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + `pic` varchar(255) DEFAULT NULL, + `style` int(11) DEFAULT NULL COMMENT '列表样式 一列1 2 3个', + `show_index` int(11) DEFAULT '0' COMMENT '是否展示到首页', + `sort` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1005003 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='产品属性分类表'; + +-- 正在导出表 mallplus1.pms_product_attribute_category 的数据:~3 rows (大约) +INSERT INTO `pms_product_attribute_category` (`id`, `name`, `attribute_count`, `param_count`, `store_id`, `pic`, `style`, `show_index`, `sort`) VALUES + (1005000, '居家', 2, 1, 1, 'http://yanxuan.nosdn.127.net/a45c2c262a476fea0b9fc684fed91ef5.png', 1, 1, NULL), + (1005001, '餐厨', 2, 1, 1, 'http://yanxuan.nosdn.127.net/ad8b00d084cb7d0958998edb5fee9c0a.png', 1, 1, NULL), + (1005002, '饮食', 2, 0, 2, 'http://yanxuan.nosdn.127.net/c9280327a3fd2374c000f6bf52dff6eb.png', 1, 1, NULL); + +-- 导出 表 mallplus1.pms_product_attribute_value 结构 +DROP TABLE IF EXISTS `pms_product_attribute_value`; +CREATE TABLE IF NOT EXISTS `pms_product_attribute_value` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) DEFAULT NULL, + `product_attribute_id` bigint(20) DEFAULT NULL, + `value` varchar(64) DEFAULT NULL COMMENT '手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + `name` varchar(255) DEFAULT NULL, + `type` int(11) DEFAULT NULL, + `sort` int(11) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1614 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='存储产品参数信息的表'; + +-- 正在导出表 mallplus1.pms_product_attribute_value 的数据:~21 rows (大约) +INSERT INTO `pms_product_attribute_value` (`id`, `product_id`, `product_attribute_id`, `value`, `store_id`, `name`, `type`, `sort`) VALUES + (1593, 179, 224, '红色,蓝色', 1, '颜色', 1, NULL), + (1594, 179, 225, '长方形,正方形', 1, '形状', 1, NULL), + (1595, 179, 226, NULL, 1, '样式', 2, NULL), + (1596, 152, 221, '黄色,绿色', 1, '颜色', 1, NULL), + (1597, 152, 222, 'M,L', 1, '尺寸', 1, NULL), + (1598, 152, 223, '1234', 1, '舒适程度', 2, NULL), + (1599, 171, 224, '蓝色,黑色', 1, '颜色', 1, NULL), + (1600, 171, 225, '圆形,长方形', 1, '形状', 1, NULL), + (1601, 171, 226, NULL, 1, '样式', 2, NULL), + (1602, 172, 224, '白色,紫色', 1, '颜色', 1, NULL), + (1603, 172, 225, '六边形,圆形', 1, '形状', 1, NULL), + (1604, 172, 226, '圆圆的', 1, '样式', 2, NULL), + (1605, 185, 227, '1袋,5袋,10袋', 1, '袋装', 1, NULL), + (1606, 185, 228, '1箱,2箱', 1, '箱装', 1, NULL), + (1607, 186, 227, '2袋,4袋', 1, '袋装', 1, NULL), + (1608, 186, 228, '1箱,2箱', 1, '箱装', 1, NULL), + (1609, 190, 221, '红色,绿色', 1, '颜色', 1, NULL), + (1610, 190, 223, NULL, 1, '舒适程度', 2, NULL), + (1611, 1, 221, '红色,蓝色', 1, '颜色', 1, NULL), + (1612, 1, 222, 'M,XL', 1, '尺寸', 1, NULL), + (1613, 1, 223, '12', 1, '舒适程度', 2, NULL); + +-- 导出 表 mallplus1.pms_product_category 结构 +DROP TABLE IF EXISTS `pms_product_category`; +CREATE TABLE IF NOT EXISTS `pms_product_category` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `parent_id` bigint(20) DEFAULT NULL COMMENT '上机分类的编号:0表示一级分类', + `name` varchar(64) DEFAULT NULL, + `level` int(11) DEFAULT NULL COMMENT '分类级别:0->1级;1->2级', + `product_count` int(11) DEFAULT NULL, + `product_unit` varchar(64) DEFAULT NULL, + `nav_status` int(11) DEFAULT NULL COMMENT '是否显示在导航栏:0->不显示;1->显示', + `show_status` int(11) DEFAULT NULL COMMENT '显示状态:0->不显示;1->显示', + `index_status` int(11) NOT NULL DEFAULT '0' COMMENT '是否是首页分类0-->不是,1-->是', + `sort` int(11) DEFAULT NULL, + `icon` varchar(255) DEFAULT NULL COMMENT '图标', + `keywords` varchar(255) DEFAULT NULL, + `description` text COMMENT '描述', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1036006 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='产品分类'; + +-- 正在导出表 mallplus1.pms_product_category 的数据:~34 rows (大约) +INSERT INTO `pms_product_category` (`id`, `parent_id`, `name`, `level`, `product_count`, `product_unit`, `nav_status`, `show_status`, `index_status`, `sort`, `icon`, `keywords`, `description`, `store_id`) VALUES + (1005000, 0, '居家', 0, NULL, NULL, 1, 1, 1, 2, 'http://yanxuan.nosdn.127.net/a45c2c262a476fea0b9fc684fed91ef5.png', NULL, '回家,放松身心', 1), + (1005001, 0, '餐厨', 0, NULL, NULL, 1, 1, 1, 3, 'http://yanxuan.nosdn.127.net/ad8b00d084cb7d0958998edb5fee9c0a.png', NULL, '爱,囿于厨房', 1), + (1005002, 0, '饮食', 0, NULL, NULL, 1, 1, 1, 9, 'http://yanxuan.nosdn.127.net/c9280327a3fd2374c000f6bf52dff6eb.png', NULL, '好吃,高颜值美食', 2), + (1005007, 1005001, '锅具', 1, NULL, NULL, 1, 1, 1, 1, 'http://yanxuan.nosdn.127.net/4aab4598017b5749e3b63309d25e9f6b.png', NULL, NULL, 1), + (1005008, 1005001, '餐具', 1, NULL, NULL, 1, 1, 1, 4, 'http://yanxuan.nosdn.127.net/f109afbb7e7a00c243c1da29991a5aa3.png', NULL, NULL, 1), + (1005009, 1005001, '清洁', 1, NULL, NULL, 1, 1, 1, 9, 'http://yanxuan.nosdn.127.net/e8b67fe8b8db2ecc2e126a0aa631def0.png', NULL, NULL, 1), + (1005010, 1005002, '炒货', 1, NULL, NULL, 1, 1, 1, 5, 'http://yanxuan.nosdn.127.net/6c43063003207168c1d8e83a923e8515.png', NULL, NULL, 2), + (1005011, 1005002, '小食', 1, NULL, NULL, 1, 1, 1, 2, 'http://yanxuan.nosdn.127.net/663f568475c994358bf31bcb67d122fe.png', NULL, NULL, 2), + (1005012, 1005002, '食材', 1, NULL, NULL, 1, 1, 1, 10, 'http://yanxuan.nosdn.127.net/e050980992725b7932bb3645fe5aec08.png', NULL, NULL, 2), + (1005013, 1005002, '冲饮', 1, NULL, NULL, 1, 1, 1, 6, 'http://yanxuan.nosdn.127.net/2919b0d6eec79182cca31dc827f4d00a.png', NULL, NULL, 2), + (1007000, 1005001, '杯壶', 1, NULL, NULL, 1, 1, 1, 2, 'http://yanxuan.nosdn.127.net/0b244d3575b737c8f0ed7e84c5c4abd2.png', NULL, NULL, 1), + (1008002, 1005000, '布艺软装', 1, NULL, NULL, 1, 1, 1, 6, 'http://yanxuan.nosdn.127.net/8bbcd7de60a678846664af998f57e71c.png', NULL, NULL, 1), + (1008008, 1005000, '被枕', 1, NULL, NULL, 1, 1, 1, 2, 'http://yanxuan.nosdn.127.net/927bc33f7ae2895dd6c11cf91f5e3228.png', NULL, NULL, 1), + (1008009, 1005000, '床品件套', 1, NULL, NULL, 1, 1, 1, 4, 'http://yanxuan.nosdn.127.net/243e5bf327a87217ad1f54592f0176ec.png', NULL, NULL, 1), + (1008011, 1005001, '清洁保鲜', 1, NULL, NULL, 1, 1, 1, 6, 'http://yanxuan.nosdn.127.net/dc4d6c35b9f4abb42d2eeaf345710589.png', NULL, NULL, 1), + (1008012, 1005001, '功能厨具', 1, NULL, NULL, 1, 1, 1, 3, 'http://yanxuan.nosdn.127.net/22db4ccbf52dc62c723ac83aa587812a.png', NULL, NULL, 1), + (1008013, 1005001, '茶具咖啡具', 1, NULL, NULL, 1, 1, 1, 5, 'http://yanxuan.nosdn.127.net/9ea192cd2719c8348f42ec17842ba763.png', NULL, NULL, 1), + (1008014, 1005002, '糖巧', 1, NULL, NULL, 1, 1, 1, 3, 'http://yanxuan.nosdn.127.net/db48a1db4daab74233656caaea4a06f3.png', NULL, NULL, 2), + (1008015, 1005002, '糕点', 1, NULL, NULL, 1, 1, 1, 1, 'http://yanxuan.nosdn.127.net/93168242df456b5f7bf3c89653b3db76.png', NULL, NULL, 2), + (1008016, 1005000, '灯具', 1, NULL, NULL, 1, 1, 1, 8, 'http://yanxuan.nosdn.127.net/c48e0d9dcfac01499a437774a915842b.png', NULL, NULL, 1), + (1010003, 1005000, '地垫', 1, NULL, NULL, 1, 1, 1, 5, 'http://yanxuan.nosdn.127.net/83d4c87f28c993af1aa8d3e4d30a2fa2.png', NULL, NULL, 1), + (1011003, 1005000, '床垫', 1, NULL, NULL, 1, 1, 1, 3, 'http://yanxuan.nosdn.127.net/316afeb3948b295dfe073e4c51f77a42.png', NULL, NULL, 1), + (1011004, 1005000, '家饰', 1, NULL, NULL, 1, 1, 1, 9, 'http://yanxuan.nosdn.127.net/ab0df9445d985bf6719ac415313a8e88.png', NULL, NULL, 1), + (1013005, 1005001, '刀剪砧板', 1, NULL, NULL, 1, 1, 1, 7, 'http://yanxuan.nosdn.127.net/9d481ea4c2e9e6eda35aa720d407332e.png', NULL, NULL, 1), + (1015000, 1005000, '家具', 1, NULL, NULL, 1, 1, 1, 7, 'http://yanxuan.nosdn.127.net/4f00675caefd0d4177892ad18bfc2df6.png', NULL, NULL, 1), + (1017000, 1005000, '宠物', 1, NULL, NULL, 1, 1, 1, 10, 'http://yanxuan.nosdn.127.net/a0352c57c60ce4f68370ecdab6a30857.png', NULL, NULL, 1), + (1023000, 1005001, '厨房小电', 1, NULL, NULL, 1, 1, 1, 8, 'http://yanxuan.nosdn.127.net/521bd0c02d283b80ba49e73ca84df250.png', NULL, NULL, 1), + (1027000, 1005002, '茗茶', 1, NULL, NULL, 1, 1, 1, 7, 'http://yanxuan.nosdn.127.net/0c5af0575176c4a3023783bef7a87a0f.png', NULL, NULL, 2), + (1027001, 1005002, '果干', 1, NULL, NULL, 1, 1, 1, 4, 'http://yanxuan.nosdn.127.net/60f4ae2beef4754347fa36208f84efab.png', NULL, NULL, 2), + (1035003, 1005002, '肉制品', 1, NULL, NULL, 1, 1, 1, 8, 'http://yanxuan.nosdn.127.net/db3e11b8a6974a253818ae0d6fb2d24e.png', NULL, NULL, 2), + (1036000, 1005000, '夏凉', 1, NULL, NULL, 1, 1, 1, 1, 'http://yanxuan.nosdn.127.net/13ff4decdf38fe1a5bde34f0e0cc635a.png', NULL, NULL, 1), + (1036003, 1005002, '调味', 1, NULL, NULL, 1, 1, 1, 9, 'http://yanxuan.nosdn.127.net/2ae44a3944f2bc737416e1cff3d4bcef.png', NULL, NULL, 2), + (1036004, 0, '123', 0, NULL, '123', 1, 0, 1, 11, NULL, NULL, NULL, 1214), + (1036005, 1036004, '22', 1, NULL, '22', 0, 0, 0, 0, NULL, NULL, NULL, 1214); + +-- 导出 表 mallplus1.pms_product_category_attribute_relation 结构 +DROP TABLE IF EXISTS `pms_product_category_attribute_relation`; +CREATE TABLE IF NOT EXISTS `pms_product_category_attribute_relation` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_category_id` bigint(20) DEFAULT NULL, + `product_attribute_id` bigint(20) DEFAULT NULL, + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)'; + +-- 正在导出表 mallplus1.pms_product_category_attribute_relation 的数据:~0 rows (大约) + +-- 导出 表 mallplus1.pms_product_consult 结构 +DROP TABLE IF EXISTS `pms_product_consult`; +CREATE TABLE IF NOT EXISTS `pms_product_consult` ( + `id` bigint(20) unsigned NOT NULL COMMENT '咨询编号', + `goods_id` bigint(20) unsigned DEFAULT NULL COMMENT '商品编号', + `goods_name` varchar(100) DEFAULT NULL COMMENT '商品名称', + `member_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '咨询发布者会员编号(0:游客)', + `member_name` varchar(100) DEFAULT NULL COMMENT '会员名称', + `store_id` bigint(20) unsigned DEFAULT NULL COMMENT '店铺编号', + `email` varchar(255) DEFAULT NULL COMMENT '咨询发布者邮箱', + `consult_content` varchar(255) DEFAULT NULL COMMENT '咨询内容', + `consult_addtime` datetime DEFAULT NULL COMMENT '咨询添加时间', + `consult_reply` varchar(255) DEFAULT NULL COMMENT '咨询回复内容', + `consult_reply_time` datetime DEFAULT NULL COMMENT '咨询回复时间', + `isanonymous` tinyint(1) DEFAULT '0' COMMENT '0表示不匿名 1表示匿名', + `is_del` tinyint(1) DEFAULT NULL, + `pic` varchar(255) DEFAULT NULL, + `attr` varchar(255) DEFAULT NULL, + `stars` int(11) DEFAULT NULL, + `order_id` bigint(20) DEFAULT NULL, + `type` int(11) DEFAULT '1' COMMENT '1 商品 2 订单', + PRIMARY KEY (`id`) USING BTREE, + KEY `goods_id` (`goods_id`) USING BTREE, + KEY `seller_id` (`store_id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='产品咨询表'; + +-- 正在导出表 mallplus1.pms_product_consult 的数据:~18 rows (大约) +INSERT INTO `pms_product_consult` (`id`, `goods_id`, `goods_name`, `member_id`, `member_name`, `store_id`, `email`, `consult_content`, `consult_addtime`, `consult_reply`, `consult_reply_time`, `isanonymous`, `is_del`, `pic`, `attr`, `stars`, `order_id`, `type`) VALUES + (1, 87, '11', 1, '11', 1, NULL, '1111', '2019-02-23 13:00:10', '2222', '2019-02-23 13:00:14', 0, 0, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190524/拼团列表.png', NULL, 1, NULL, 1), + (2, 87, '22', 1, '22', 2, NULL, '22', '2019-02-23 13:00:33', '333', '2019-02-23 13:00:38', 0, 0, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190524/拼团列表.png', NULL, 2, 2, 2), + (3, 370, NULL, 20, '13146587722', 1, '[]', '22', '2019-09-15 03:45:41', NULL, NULL, 0, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, 5, NULL, 1), + (4, 371, NULL, 20, '13146587722', 1, '[]', '333', '2019-09-15 03:45:41', NULL, NULL, 0, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, 5, 3, 2), + (5, 187, NULL, 20, '13146587722', 1, 'null', '33', '2019-09-15 03:50:28', NULL, NULL, 0, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, 5, NULL, 1), + (6, 742, NULL, 20, '13146587722', 1, 'null', '232', '2019-10-26 04:33:08', NULL, NULL, 0, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, 5, NULL, 2), + (7, 743, NULL, 20, '13146587722', 1, 'null', '', '2019-10-26 04:33:08', NULL, NULL, 0, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, 5, NULL, 2), + (8, 744, NULL, 20, '13146587722', 1, 'null', '', '2019-10-26 04:33:09', NULL, NULL, 0, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, 5, NULL, 2), + (9, 745, NULL, 20, '13146587722', 1, 'null', '', '2019-10-26 04:33:09', NULL, NULL, 0, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, 5, NULL, 2), + (10, 728, NULL, 159, '沈专', 3, '[http://tmp/wx0c1055c6158f7851.o6zAJs7tQ9p7bPwE3M0EYt3PsaDg.EZjpUlgtpANwfae195ff17a0ffb508dcfae374e95eb1.png]', '444', '2019-12-19 05:29:54', NULL, NULL, 0, NULL, 'https://wx.qlogo.cn/mmopen/vi_32/LM0PAPLX34xMICJKFoKEHO4OHTialWZOiaicib9AFmG5Q5uHxiapuhOwZkdu1RyDw7mhePbB2yaGYt4jT9riciaykTbZQ/132', NULL, 2, 1849, 2), + (11, 720, NULL, 159, '沈专', 3, '[http://tmp/wx0c1055c6158f7851.o6zAJs7tQ9p7bPwE3M0EYt3PsaDg.2O71solkzYTp885899ccbed3c013288413c1c02b99aa.png, http://tmp/wx0c1055c6158f7851.o6zAJs7tQ9p7bPwE3M0EYt3PsaDg.auwK0VtqYIVb57d352a1437e8542acd82d9e18bae80a.png]', '3333', '2019-12-19 05:30:48', NULL, NULL, 0, NULL, 'https://wx.qlogo.cn/mmopen/vi_32/LM0PAPLX34xMICJKFoKEHO4OHTialWZOiaicib9AFmG5Q5uHxiapuhOwZkdu1RyDw7mhePbB2yaGYt4jT9riciaykTbZQ/132', NULL, 3, 1852, 2), + (12, 724, NULL, 159, '沈专', 3, '[http://tmp/wx0c1055c6158f7851.o6zAJs7tQ9p7bPwE3M0EYt3PsaDg.V3OwnyYC2DTmfae195ff17a0ffb508dcfae374e95eb1.png]', '44', '2019-12-19 05:30:48', NULL, NULL, 0, NULL, 'https://wx.qlogo.cn/mmopen/vi_32/LM0PAPLX34xMICJKFoKEHO4OHTialWZOiaicib9AFmG5Q5uHxiapuhOwZkdu1RyDw7mhePbB2yaGYt4jT9riciaykTbZQ/132', NULL, 1, 1852, 2), + (13, 95, NULL, 142, NULL, 0, NULL, '169', '2020-01-12 15:18:00', NULL, NULL, 1, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, NULL, 1, 1), + (14, 3068, NULL, 20, '13146587722', 0, 'null', '很好的一个鼠标', '2020-01-15 03:33:27', NULL, NULL, 0, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, 5, 2419, 2), + (15, 92, NULL, 142, NULL, 0, NULL, '噢噢噢哦哦', '2020-01-29 15:49:23', NULL, NULL, 1, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, NULL, 1, 1), + (16, 5606, NULL, 297, '测试', 0, 'null', '53555555555555555555555555555555555555555555444444444444444444444444444444444444444444', '2020-03-19 14:55:12', NULL, NULL, 0, NULL, 'http://yjlive160322.oss-cn-beijing.aliyuncs.com/mall/images/20190830/uniapp.jpeg', NULL, 5, 3870, 2), + (1111, 172, '111', 1, '22', 1, '22', '22', '2020-03-18 13:04:09', '33', '2020-03-29 13:04:16', 0, NULL, '', '11', 2, 1, 1), + (1112, 5913, NULL, 297, '123', 0, 'null', '123', '2020-03-29 16:40:13', NULL, NULL, 0, NULL, 'http://shopsoss.oss-cn-beijing.aliyuncs.com/web-20200328-ee9c9188dbc44749b9fab708a8fd7c12.png', NULL, 5, 4060, 2); + +-- 导出 表 mallplus1.pms_product_full_reduction 结构 +DROP TABLE IF EXISTS `pms_product_full_reduction`; +CREATE TABLE IF NOT EXISTS `pms_product_full_reduction` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) DEFAULT NULL, + `full_price` decimal(10,2) DEFAULT NULL, + `reduce_price` decimal(10,2) DEFAULT NULL, + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='产品满减表(只针对同商品)'; + +-- 正在导出表 mallplus1.pms_product_full_reduction 的数据:~0 rows (大约) + +-- 导出 表 mallplus1.pms_product_ladder 结构 +DROP TABLE IF EXISTS `pms_product_ladder`; +CREATE TABLE IF NOT EXISTS `pms_product_ladder` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) DEFAULT NULL, + `count` int(11) DEFAULT NULL COMMENT '满足的商品数量', + `discount` decimal(10,2) DEFAULT NULL COMMENT '折扣', + `price` decimal(10,2) DEFAULT NULL COMMENT '折后价格', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='产品阶梯价格表(只针对同商品)'; + +-- 正在导出表 mallplus1.pms_product_ladder 的数据:~0 rows (大约) + +-- 导出 表 mallplus1.pms_product_operate_log 结构 +DROP TABLE IF EXISTS `pms_product_operate_log`; +CREATE TABLE IF NOT EXISTS `pms_product_operate_log` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) DEFAULT NULL, + `price_old` decimal(10,2) DEFAULT NULL, + `price_new` decimal(10,2) DEFAULT NULL, + `sale_price_old` decimal(10,2) DEFAULT NULL, + `sale_price_new` decimal(10,2) DEFAULT NULL, + `gift_point_old` int(11) DEFAULT NULL COMMENT '赠送的积分', + `gift_point_new` int(11) DEFAULT NULL, + `use_point_limit_old` int(11) DEFAULT NULL, + `use_point_limit_new` int(11) DEFAULT NULL, + `operate_man` varchar(64) DEFAULT NULL COMMENT '操作人', + `create_time` datetime DEFAULT NULL, + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; + +-- 正在导出表 mallplus1.pms_product_operate_log 的数据:~0 rows (大约) + +-- 导出 表 mallplus1.pms_product_tag 结构 +DROP TABLE IF EXISTS `pms_product_tag`; +CREATE TABLE IF NOT EXISTS `pms_product_tag` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(100) DEFAULT NULL, + `type` int(11) DEFAULT NULL COMMENT '1会员标签 2 商品标签 3 文章标签', + `gen_type` int(11) DEFAULT NULL COMMENT '1自动标签 2 手动标签', + `create_time` datetime DEFAULT NULL, + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='用户标签表'; + +-- 正在导出表 mallplus1.pms_product_tag 的数据:~0 rows (大约) + +-- 导出 表 mallplus1.pms_product_vertify_record 结构 +DROP TABLE IF EXISTS `pms_product_vertify_record`; +CREATE TABLE IF NOT EXISTS `pms_product_vertify_record` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) DEFAULT NULL, + `create_time` datetime DEFAULT NULL, + `vertify_man` varchar(64) DEFAULT NULL COMMENT '审核人', + `status` int(11) DEFAULT NULL, + `detail` varchar(255) DEFAULT NULL COMMENT '反馈详情', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=264 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='商品审核记录'; + +-- 正在导出表 mallplus1.pms_product_vertify_record 的数据:~0 rows (大约) +INSERT INTO `pms_product_vertify_record` (`id`, `product_id`, `create_time`, `vertify_man`, `status`, `detail`, `store_id`) VALUES + (263, 191, '2020-04-19 13:08:28', '纸质店铺', 1, '12', 1214); + +-- 导出 表 mallplus1.pms_sku_stock 结构 +DROP TABLE IF EXISTS `pms_sku_stock`; +CREATE TABLE IF NOT EXISTS `pms_sku_stock` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) DEFAULT NULL, + `sku_code` varchar(64) NOT NULL COMMENT 'sku编码', + `price` decimal(10,2) DEFAULT NULL, + `stock` int(11) DEFAULT '0' COMMENT '库存', + `low_stock` int(11) DEFAULT '0' COMMENT '预警库存', + `sp1` varchar(64) DEFAULT NULL COMMENT '销售属性1', + `sp2` varchar(64) DEFAULT NULL, + `sp3` varchar(64) DEFAULT NULL, + `pic` varchar(255) DEFAULT NULL COMMENT '展示图片', + `sale` int(11) DEFAULT NULL COMMENT '销量', + `promotion_price` decimal(10,2) DEFAULT '0.00' COMMENT '单品促销价格', + `lock_stock` int(11) DEFAULT '0' COMMENT '锁定库存', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + `product_name` varchar(255) DEFAULT NULL, + `sp4` varchar(255) DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1187 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='sku的库存'; + +-- 正在导出表 mallplus1.pms_sku_stock 的数据:~32 rows (大约) +INSERT INTO `pms_sku_stock` (`id`, `product_id`, `sku_code`, `price`, `stock`, `low_stock`, `sp1`, `sp2`, `sp3`, `pic`, `sale`, `promotion_price`, `lock_stock`, `store_id`, `product_name`, `sp4`) VALUES + (1155, 179, '202003281005007001', 11.00, 999, 0, '红色', '正方形', NULL, NULL, NULL, 0.00, 0, 1, 'Carat钻石 不粘厨具组合', NULL), + (1156, 179, '202003281005007002', 12.00, 988, 0, '红色', '长方形', NULL, NULL, NULL, 0.00, 0, 1, 'Carat钻石 不粘厨具组合', NULL), + (1157, 179, '202003281005007003', 13.00, 985, 0, '蓝色', '正方形', NULL, NULL, NULL, 0.00, 0, 1, 'Carat钻石 不粘厨具组合', NULL), + (1158, 179, '202003281005007004', 14.00, 993, 0, '蓝色', '长方形', NULL, NULL, NULL, 0.00, 0, 1, 'Carat钻石 不粘厨具组合', NULL), + (1159, 152, '202003281008002001', 22.00, 999, 0, '黄色', 'L', NULL, NULL, NULL, 0.00, 0, 1, '日式简约素色窗帘', NULL), + (1160, 152, '202003281008002002', 23.00, 998, 0, '黄色', 'M', NULL, NULL, NULL, 0.00, 0, 1, '日式简约素色窗帘', NULL), + (1161, 152, '202003281008002003', 24.00, 777, 0, '绿色', 'L', NULL, NULL, NULL, 0.00, 0, 1, '日式简约素色窗帘', NULL), + (1162, 152, '202003281008002004', 25.00, 666, 0, '绿色', 'M', NULL, NULL, NULL, 0.00, 0, 1, '日式简约素色窗帘', NULL), + (1163, 171, '202003281005007001', 13.00, 887, 0, '蓝色', '圆形', NULL, NULL, NULL, 0.00, 0, 1, '100年传世珐琅锅 全家系列', NULL), + (1164, 171, '202003281005007002', 34.00, 777, 0, '蓝色', '长方形', NULL, NULL, NULL, 0.00, 0, 1, '100年传世珐琅锅 全家系列', NULL), + (1165, 171, '202003281005007003', 44.00, 666, 0, '黑色', '圆形', NULL, NULL, NULL, 0.00, 0, 1, '100年传世珐琅锅 全家系列', NULL), + (1166, 171, '202003281005007004', 55.00, 888, 0, '黑色', '长方形', NULL, NULL, NULL, 0.00, 0, 1, '100年传世珐琅锅 全家系列', NULL), + (1167, 172, '202003281005007001', 56.00, 888, 0, '白色', '圆形', NULL, NULL, NULL, 0.00, 0, 1, '100年传世珐琅锅', NULL), + (1168, 172, '202003281005007002', 54.00, 776, 0, '白色', '六边形', NULL, NULL, NULL, 0.00, 0, 1, '100年传世珐琅锅', NULL), + (1169, 172, '202003281005007003', 32.00, 6668, 0, '紫色', '圆形', NULL, NULL, NULL, 0.00, 0, 1, '100年传世珐琅锅', NULL), + (1170, 172, '202003281005007004', 67.00, 7654, 0, '紫色', '六边形', NULL, NULL, NULL, 0.00, 0, 1, '100年传世珐琅锅', NULL), + (1171, 185, '202003281008015001', 11.00, 44, 0, '1袋', '2箱', NULL, NULL, NULL, 0.00, 0, 2, '粽情乡思端午粽礼盒 640克', NULL), + (1172, 185, '202003281008015002', 10.00, 19, 0, '1袋', '1箱', NULL, NULL, NULL, 0.00, 0, 2, '粽情乡思端午粽礼盒 640克', NULL), + (1173, 185, '202003281008015003', 44.00, 552, 0, '5袋', '2箱', NULL, NULL, NULL, 0.00, 0, 2, '粽情乡思端午粽礼盒 640克', NULL), + (1174, 185, '202003281008015004', 41.00, 66, 0, '5袋', '1箱', NULL, NULL, NULL, 0.00, 0, 2, '粽情乡思端午粽礼盒 640克', NULL), + (1175, 185, '202003281008015005', 77.00, 55, 0, '10袋', '2箱', NULL, NULL, NULL, 0.00, 0, 2, '粽情乡思端午粽礼盒 640克', NULL), + (1176, 185, '202003281008015006', 74.00, 444, 0, '10袋', '1箱', NULL, NULL, NULL, 0.00, 0, 2, '粽情乡思端午粽礼盒 640克', NULL), + (1177, 186, '202003281008015001', 23.00, 333, 0, '2袋', '2箱', NULL, NULL, NULL, 0.00, 0, 2, '粽夏冰晶端午粽礼盒 480克', NULL), + (1178, 186, '202003281008015002', 21.00, 441, 0, '2袋', '1箱', NULL, NULL, NULL, 0.00, 0, 2, '粽夏冰晶端午粽礼盒 480克', NULL), + (1179, 186, '202003281008015003', 33.00, 333, 0, '4袋', '2箱', NULL, NULL, NULL, 0.00, 0, 2, '粽夏冰晶端午粽礼盒 480克', NULL), + (1180, 186, '202003281008015004', 31.00, 2222, 0, '4袋', '1箱', NULL, NULL, NULL, 0.00, 0, 2, '粽夏冰晶端午粽礼盒 480克', NULL), + (1181, 190, '202003301005007001', NULL, 0, 0, '绿色', NULL, NULL, NULL, NULL, 0.00, 0, 1, '商品组测试', NULL), + (1182, 190, '202003301005007002', NULL, 0, 0, '红色', NULL, NULL, NULL, NULL, 0.00, 0, 1, '商品组测试', NULL), + (1183, 1, '202004191008009001', 1.00, 55, 0, '红色', 'XL', NULL, 'http://yanxuan.nosdn.127.net/8ab2d3287af0cefa2cc539e40600621d.png', NULL, 0.00, 0, 1, '轻奢纯棉刺绣水洗四件套', NULL), + (1184, 1, '202004191008009002', 2.00, 66, 0, '红色', 'M', NULL, 'http://yanxuan.nosdn.127.net/66425d1ed50b3968fed27c822fdd32e0.png', NULL, 0.00, 0, 1, '轻奢纯棉刺绣水洗四件套', NULL), + (1185, 1, '202004191008009003', 3.00, 77, 0, '蓝色', 'XL', NULL, 'http://yanxuan.nosdn.127.net/8ab2d3287af0cefa2cc539e40600621d.png', NULL, 0.00, 0, 1, '轻奢纯棉刺绣水洗四件套', NULL), + (1186, 1, '202004191008009004', 4.00, 88, 0, '蓝色', 'M', NULL, 'http://yanxuan.nosdn.127.net/66425d1ed50b3968fed27c822fdd32e0.png', NULL, 0.00, 0, 1, '轻奢纯棉刺绣水洗四件套', NULL); + +-- 导出 表 mallplus1.pms_small_navicon_category 结构 +DROP TABLE IF EXISTS `pms_small_navicon_category`; +CREATE TABLE IF NOT EXISTS `pms_small_navicon_category` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '小程序首页分类ID', + `title` varchar(200) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '分类名称', + `icon` varchar(500) CHARACTER SET utf8 DEFAULT NULL COMMENT '分类图标', + `summary` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '跳转页面', + `content` varchar(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '跳转类型', + `sort` int(11) DEFAULT '0' COMMENT '排序', + `store_id` int(11) DEFAULT '1' COMMENT '所属店铺', + `pc_url` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='小程序首页nav管理'; + +-- 正在导出表 mallplus1.pms_small_navicon_category 的数据:~9 rows (大约) +INSERT INTO `pms_small_navicon_category` (`id`, `title`, `icon`, `summary`, `content`, `sort`, `store_id`, `pc_url`) VALUES + (1, '全部类别', 'http://shlm-imagemanage.oss-cn-zhangjiakou.aliyuncs.com/mall/images/20190508/c6.png', '1', '/pages/classify/classify', 0, 1, NULL), + (2, '热卖推荐', 'http://shlm-imagemanage.oss-cn-zhangjiakou.aliyuncs.com/mall/images/20190508/c4.png', '1', '/pages/classify/index?type=hot', 1, 1, NULL), + (3, '我的订单', 'https://demo.jihainet.com/static/uploads/images/2019/07/31/15645408635d40ffbf0e983.png', '1', '/pages/member/order/orderlist', 2, 1, NULL), + (4, '我的收藏', 'https://demo.jihainet.com/static/uploads/images/2019/07/31/15645408635d40ffbf1d876.png', '1', '/pages/member/collection/index', 3, 1, NULL), + (5, '甜园商城', 'http://shlm-imagemanage.oss-cn-zhangjiakou.aliyuncs.com/mall/images/20190508/c7.png', '1', 'http://www.yjlive.cn:8082/#/', 4, 1, 'http://www.yjlive.cn:8082/#/'), + (6, '商品分类', 'http://datong.crmeb.net/public/uploads/attach/2019/03/29/5c9ddc9f34bfd.png', '/category', '/pages/goods_cate/goods_cate', 1, 2, NULL), + (7, '领优惠券', 'http://datong.crmeb.net/public/uploads/attach/2019/03/29/5c9ddccecb7f3.png', '/user/get_coupon', '/pages/user_get_coupon/index', 2, 2, NULL), + (8, '行业资讯', 'http://datong.crmeb.net/public/uploads/attach/2019/03/29/5c9ddcec57a80.png', '/news_list', '/pages/news_list/index', 3, 2, NULL), + (9, '我要签到', 'http://datong.crmeb.net/public/uploads/attach/2019/03/29/5c9ddd570b8b3.png', '/user/sign', '/pages/user_sgin/index', 4, 2, NULL); + +/*!40103 SET TIME_ZONE=IFNULL(@OLD_TIME_ZONE, 'system') */; +/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; +/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */; diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsAlbumController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsAlbumController.java new file mode 100644 index 0000000..67a8bb7 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsAlbumController.java @@ -0,0 +1,136 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsAlbum; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsAlbumService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + + +/** + *

+ *

+ *

+ * + * @author zscat + * @since ${date} + */ +@Slf4j +@RestController +@Api(tags = "PmsAlbumController", description = "管理") +@RequestMapping("/pms/PmsAlbum") +public class PmsAlbumController { + @Resource + private IPmsAlbumService IPmsAlbumService; + +// // @SysLog(MODULE = "pms", REMARK = "查询pms_album表") + @ApiOperation("查询pms_album表") + @GetMapping(value = "/list") + + public Object getPmsAlbumByPage(PmsAlbum entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsAlbumService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("分页获取pms_album列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存pms_album表") + @ApiOperation("保存pms_album表") + @PostMapping(value = "/create") + + public Object saveAlbum(@RequestBody PmsAlbum entity) { + try { + if (IPmsAlbumService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存pms_album表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新pms_album") + @ApiOperation("更新pms_album") + @PostMapping(value = "/update/{id}") + + public Object updateAlbum(@RequestBody PmsAlbum entity) { + try { + if (IPmsAlbumService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除pms_album数据") + @ApiOperation("删除相册表数据") + @GetMapping(value = "/delete/{id}") + + public Object deleteRole(@ApiParam("相册表_id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("PmsAlbum_id"); + } + if (IPmsAlbumService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除相册表数据:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "根据ID查询pms_album") + @ApiOperation("根据ID查询pms_album") + @GetMapping(value = "/{id}") + + public Object getRoleById(@ApiParam("相册表_id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("PmsAlbum_id"); + } + PmsAlbum pmsAlbum = IPmsAlbumService.getById(id); + return new CommonResult().success(pmsAlbum); + } catch (Exception e) { + log.error("pms_album表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除PmsAlbum表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除PmsAlbum表") + + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsAlbumService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsAlbumPicController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsAlbumPicController.java new file mode 100644 index 0000000..e9a571e --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsAlbumPicController.java @@ -0,0 +1,133 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsAlbumPic; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsAlbumPicService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 画册图片表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsAlbumPicController", description = "画册图片表管理") +@RequestMapping("/pms/PmsAlbumPic") +public class PmsAlbumPicController { + @Resource + private IPmsAlbumPicService IPmsAlbumPicService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有画册图片表列表") + @ApiOperation("根据条件查询所有画册图片表列表") + @GetMapping(value = "/list") + + public Object getPmsAlbumPicByPage(PmsAlbumPic entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsAlbumPicService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有画册图片表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存画册图片表") + @ApiOperation("保存画册图片表") + @PostMapping(value = "/create") + + public Object savePmsAlbumPic(@RequestBody PmsAlbumPic entity) { + try { + if (IPmsAlbumPicService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存画册图片表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新画册图片表") + @ApiOperation("更新画册图片表") + @PostMapping(value = "/update/{id}") + + public Object updatePmsAlbumPic(@RequestBody PmsAlbumPic entity) { + try { + if (IPmsAlbumPicService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新画册图片表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除画册图片表") + @ApiOperation("删除画册图片表") + @GetMapping(value = "/delete/{id}") + + public Object deletePmsAlbumPic(@ApiParam("画册图片表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("画册图片表id"); + } + if (IPmsAlbumPicService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除画册图片表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给画册图片表分配画册图片表") + @ApiOperation("查询画册图片表明细") + @GetMapping(value = "/{id}") + + public Object getPmsAlbumPicById(@ApiParam("画册图片表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("画册图片表id"); + } + PmsAlbumPic coupon = IPmsAlbumPicService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询画册图片表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除画册图片表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除画册图片表") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsAlbumPicService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsBrandController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsBrandController.java new file mode 100644 index 0000000..285cf5f --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsBrandController.java @@ -0,0 +1,162 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsBrand; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsBrandService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +//import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 品牌表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsBrandController", description = "品牌表管理") +@RequestMapping("/pms/PmsBrand") +public class PmsBrandController { + @Resource + private IPmsBrandService IPmsBrandService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有品牌表列表") + @ApiOperation("根据条件查询所有品牌表列表") + @GetMapping(value = "/list") + public Object getPmsBrandByPage(PmsBrand entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + if (ValidatorUtils.notEmpty(entity.getName())) { + return new CommonResult().success(IPmsBrandService.page(new Page(pageNum, pageSize), new QueryWrapper(new PmsBrand()).like("name", entity.getName()))); + } + return new CommonResult().success(IPmsBrandService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有品牌表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存品牌表") + @ApiOperation("保存品牌表") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsBrand:create')") + public Object savePmsBrand(@RequestBody PmsBrand entity) { + try { + if (IPmsBrandService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存品牌表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新品牌表") + @ApiOperation("更新品牌表") + @PostMapping(value = "/update/{id}") + public Object updatePmsBrand(@RequestBody PmsBrand entity) { + try { + if (IPmsBrandService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新品牌表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除品牌表") + @ApiOperation("删除品牌表") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsBrand:delete')") + public Object deletePmsBrand(@ApiParam("品牌表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("品牌表id"); + } + if (IPmsBrandService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除品牌表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给品牌表分配品牌表") + @ApiOperation("查询品牌表明细") + @GetMapping(value = "/{id}") + public Object getPmsBrandById(@ApiParam("品牌表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("品牌表id"); + } + PmsBrand coupon = IPmsBrandService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询品牌表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除品牌表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除品牌表") + // @PreAuthorize("hasAuthority('pms:PmsBrand:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsBrandService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation(value = "批量更新显示状态") + @RequestMapping(value = "/update/showStatus", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量更新显示状态") + public Object updateShowStatus(@RequestParam("ids") List ids, + @RequestParam("showStatus") Integer showStatus) { + int count = IPmsBrandService.updateShowStatus(ids, showStatus); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation(value = "批量更新厂家制造商状态") + @RequestMapping(value = "/update/factoryStatus", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量更新厂家制造商状态") + public Object updateFactoryStatus(@RequestParam("ids") List ids, + @RequestParam("factoryStatus") Integer factoryStatus) { + int count = IPmsBrandService.updateFactoryStatus(ids, factoryStatus); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsCommentController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsCommentController.java new file mode 100644 index 0000000..3d7c007 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsCommentController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsComment; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsCommentService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 商品评价表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsCommentController", description = "商品评价表管理") +@RequestMapping("/pms/PmsComment") +public class PmsCommentController { + @Resource + private IPmsCommentService IPmsCommentService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有商品评价表列表") + @ApiOperation("根据条件查询所有商品评价表列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsComment:read')") + public Object getPmsCommentByPage(PmsComment entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsCommentService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有商品评价表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存商品评价表") + @ApiOperation("保存商品评价表") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsComment:create')") + public Object savePmsComment(@RequestBody PmsComment entity) { + try { + if (IPmsCommentService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存商品评价表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新商品评价表") + @ApiOperation("更新商品评价表") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsComment:update')") + public Object updatePmsComment(@RequestBody PmsComment entity) { + try { + if (IPmsCommentService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新商品评价表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除商品评价表") + @ApiOperation("删除商品评价表") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsComment:delete')") + public Object deletePmsComment(@ApiParam("商品评价表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品评价表id"); + } + if (IPmsCommentService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除商品评价表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给商品评价表分配商品评价表") + @ApiOperation("查询商品评价表明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsComment:read')") + public Object getPmsCommentById(@ApiParam("商品评价表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品评价表id"); + } + PmsComment coupon = IPmsCommentService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询商品评价表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除商品评价表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除商品评价表") + // @PreAuthorize("hasAuthority('pms:PmsComment:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsCommentService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsCommentReplayController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsCommentReplayController.java new file mode 100644 index 0000000..54398bd --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsCommentReplayController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsCommentReplay; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsCommentReplayService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 产品评价回复表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsCommentReplayController", description = "产品评价回复表管理") +@RequestMapping("/pms/PmsCommentReplay") +public class PmsCommentReplayController { + @Resource + private IPmsCommentReplayService IPmsCommentReplayService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有产品评价回复表列表") + @ApiOperation("根据条件查询所有产品评价回复表列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsCommentReplay:read')") + public Object getPmsCommentReplayByPage(PmsCommentReplay entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsCommentReplayService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有产品评价回复表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存产品评价回复表") + @ApiOperation("保存产品评价回复表") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsCommentReplay:create')") + public Object savePmsCommentReplay(@RequestBody PmsCommentReplay entity) { + try { + if (IPmsCommentReplayService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存产品评价回复表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新产品评价回复表") + @ApiOperation("更新产品评价回复表") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsCommentReplay:update')") + public Object updatePmsCommentReplay(@RequestBody PmsCommentReplay entity) { + try { + if (IPmsCommentReplayService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新产品评价回复表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除产品评价回复表") + @ApiOperation("删除产品评价回复表") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsCommentReplay:delete')") + public Object deletePmsCommentReplay(@ApiParam("产品评价回复表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品评价回复表id"); + } + if (IPmsCommentReplayService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除产品评价回复表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给产品评价回复表分配产品评价回复表") + @ApiOperation("查询产品评价回复表明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsCommentReplay:read')") + public Object getPmsCommentReplayById(@ApiParam("产品评价回复表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品评价回复表id"); + } + PmsCommentReplay coupon = IPmsCommentReplayService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询产品评价回复表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除产品评价回复表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除产品评价回复表") + // @PreAuthorize("hasAuthority('pms:PmsCommentReplay:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsCommentReplayService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsFeightTemplateController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsFeightTemplateController.java new file mode 100644 index 0000000..05cb33c --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsFeightTemplateController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsFeightTemplate; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsFeightTemplateService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + *

+ * 运费模版 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsFeightTemplateController", description = "运费模版管理") +@RequestMapping("/pms/PmsFeightTemplate") +public class PmsFeightTemplateController { + @Resource + private IPmsFeightTemplateService IPmsFeightTemplateService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有运费模版列表") + @ApiOperation("根据条件查询所有运费模版列表") + @GetMapping(value = "/list") + public Object getPmsFeightTemplateByPage(PmsFeightTemplate entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsFeightTemplateService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity).orderByDesc("create_time"))); + } catch (Exception e) { + log.error("根据条件查询所有运费模版列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存运费模版") + @ApiOperation("保存运费模版") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsFeightTemplate:create')") + public Object savePmsFeightTemplate(@RequestBody PmsFeightTemplate entity) { + try { + entity.setCreateTime(new Date()); + if (IPmsFeightTemplateService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存运费模版:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新运费模版") + @ApiOperation("更新运费模版") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsFeightTemplate:update')") + public Object updatePmsFeightTemplate(@RequestBody PmsFeightTemplate entity) { + try { + if (IPmsFeightTemplateService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新运费模版:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除运费模版") + @ApiOperation("删除运费模版") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsFeightTemplate:delete')") + public Object deletePmsFeightTemplate(@ApiParam("运费模版id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("运费模版id"); + } + if (IPmsFeightTemplateService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除运费模版:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给运费模版分配运费模版") + @ApiOperation("查询运费模版明细") + @GetMapping(value = "/{id}") + public Object getPmsFeightTemplateById(@ApiParam("运费模版id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("运费模版id"); + } + PmsFeightTemplate coupon = IPmsFeightTemplateService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询运费模版明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除运费模版") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除运费模版") + // @PreAuthorize("hasAuthority('pms:PmsFeightTemplate:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsFeightTemplateService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsGiftsCategoryController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsGiftsCategoryController.java new file mode 100644 index 0000000..ec2bd78 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsGiftsCategoryController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsGiftsCategory; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsGiftsCategoryService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 帮助分类表 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +@Slf4j +@RestController +@Api(tags = "PmsGiftsCategoryController", description = "帮助分类表管理") +@RequestMapping("/pms/PmsGiftsCategory") +public class PmsGiftsCategoryController { + @Resource + private IPmsGiftsCategoryService IPmsGiftsCategoryService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有帮助分类表列表") + @ApiOperation("根据条件查询所有帮助分类表列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsGiftsCategory:read')") + public Object getPmsGiftsCategoryByPage(PmsGiftsCategory entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsGiftsCategoryService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有帮助分类表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存帮助分类表") + @ApiOperation("保存帮助分类表") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsGiftsCategory:create')") + public Object savePmsGiftsCategory(@RequestBody PmsGiftsCategory entity) { + try { + if (IPmsGiftsCategoryService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存帮助分类表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新帮助分类表") + @ApiOperation("更新帮助分类表") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsGiftsCategory:update')") + public Object updatePmsGiftsCategory(@RequestBody PmsGiftsCategory entity) { + try { + if (IPmsGiftsCategoryService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新帮助分类表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除帮助分类表") + @ApiOperation("删除帮助分类表") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsGiftsCategory:delete')") + public Object deletePmsGiftsCategory(@ApiParam("帮助分类表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("帮助分类表id"); + } + if (IPmsGiftsCategoryService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除帮助分类表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给帮助分类表分配帮助分类表") + @ApiOperation("查询帮助分类表明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsGiftsCategory:read')") + public Object getPmsGiftsCategoryById(@ApiParam("帮助分类表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("帮助分类表id"); + } + PmsGiftsCategory coupon = IPmsGiftsCategoryService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询帮助分类表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除帮助分类表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除帮助分类表") + // @PreAuthorize("hasAuthority('pms:PmsGiftsCategory:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsGiftsCategoryService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsGiftsController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsGiftsController.java new file mode 100644 index 0000000..7f8a04b --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsGiftsController.java @@ -0,0 +1,157 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsGifts; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsGiftsService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + *

+ * 帮助表 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +@Slf4j +@RestController +@Api(tags = "PmsGiftsController", description = "帮助表管理") +@RequestMapping("/pms/PmsGifts") +public class PmsGiftsController { + @Resource + private IPmsGiftsService IPmsGiftsService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有帮助表列表") + @ApiOperation("根据条件查询所有帮助表列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsGifts:read')") + public Object getPmsGiftsByPage(PmsGifts entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + if (ValidatorUtils.notEmpty(entity.getTitle())) { + return new CommonResult().success(IPmsGiftsService.page(new Page(pageNum, pageSize), new QueryWrapper(new PmsGifts()).like("title", entity.getTitle()))); + } + return new CommonResult().success(IPmsGiftsService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + + } catch (Exception e) { + log.error("根据条件查询所有帮助表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存帮助表") + @ApiOperation("保存帮助表") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsGifts:create')") + public Object savePmsGifts(@RequestBody PmsGifts entity) { + try { + entity.setCreateTime(new Date()); + if (IPmsGiftsService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存帮助表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新帮助表") + @ApiOperation("更新帮助表") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsGifts:update')") + public Object updatePmsGifts(@RequestBody PmsGifts entity) { + try { + if (IPmsGiftsService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新帮助表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除帮助表") + @ApiOperation("删除帮助表") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsGifts:delete')") + public Object deletePmsGifts(@ApiParam("帮助表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("帮助表id"); + } + if (IPmsGiftsService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除帮助表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给帮助表分配帮助表") + @ApiOperation("查询帮助表明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsGifts:read')") + public Object getPmsGiftsById(@ApiParam("帮助表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("帮助表id"); + } + PmsGifts coupon = IPmsGiftsService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询帮助表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除帮助表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除帮助表") + // @PreAuthorize("hasAuthority('pms:PmsGifts:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsGiftsService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation(value = "批量更新显示状态") + @RequestMapping(value = "/update/showStatus", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量更新显示状态") + public Object updateShowStatus(@RequestParam("ids") Long ids, + @RequestParam("showStatus") Integer showStatus) { + PmsGifts g = new PmsGifts(); + g.setId(ids); + g.setShowStatus(showStatus); + if (IPmsGiftsService.updateById(g)) { + return new CommonResult().success(); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsMemberPriceController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsMemberPriceController.java new file mode 100644 index 0000000..fed7ec4 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsMemberPriceController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsMemberPrice; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsMemberPriceService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 商品会员价格表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsMemberPriceController", description = "商品会员价格表管理") +@RequestMapping("/pms/PmsMemberPrice") +public class PmsMemberPriceController { + @Resource + private IPmsMemberPriceService IPmsMemberPriceService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有商品会员价格表列表") + @ApiOperation("根据条件查询所有商品会员价格表列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsMemberPrice:read')") + public Object getPmsMemberPriceByPage(PmsMemberPrice entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsMemberPriceService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有商品会员价格表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存商品会员价格表") + @ApiOperation("保存商品会员价格表") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsMemberPrice:create')") + public Object savePmsMemberPrice(@RequestBody PmsMemberPrice entity) { + try { + if (IPmsMemberPriceService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存商品会员价格表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新商品会员价格表") + @ApiOperation("更新商品会员价格表") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsMemberPrice:update')") + public Object updatePmsMemberPrice(@RequestBody PmsMemberPrice entity) { + try { + if (IPmsMemberPriceService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新商品会员价格表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除商品会员价格表") + @ApiOperation("删除商品会员价格表") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsMemberPrice:delete')") + public Object deletePmsMemberPrice(@ApiParam("商品会员价格表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品会员价格表id"); + } + if (IPmsMemberPriceService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除商品会员价格表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给商品会员价格表分配商品会员价格表") + @ApiOperation("查询商品会员价格表明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsMemberPrice:read')") + public Object getPmsMemberPriceById(@ApiParam("商品会员价格表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品会员价格表id"); + } + PmsMemberPrice coupon = IPmsMemberPriceService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询商品会员价格表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除商品会员价格表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除商品会员价格表") + // @PreAuthorize("hasAuthority('pms:PmsMemberPrice:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsMemberPriceService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductAttributeCategoryController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductAttributeCategoryController.java new file mode 100644 index 0000000..b7906e0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductAttributeCategoryController.java @@ -0,0 +1,191 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.EsShopGoodsGroupMap; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProduct; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeCategory; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsGoodsGroupMapMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductAttributeCategoryService; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductService; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductAttributeCategoryItem; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 产品属性分类表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductAttributeCategoryController", description = "产品属性分类表管理") +@RequestMapping("/pms/PmsProductAttributeCategory") +public class PmsProductAttributeCategoryController { + @Resource + private IPmsProductAttributeCategoryService IPmsProductAttributeCategoryService; + @Resource + private PmsGoodsGroupMapMapper shopGoodsGroupMapMapper; + + @Resource + private IPmsProductService pmsProductService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有产品属性分类表列表") + @ApiOperation("根据条件查询所有产品属性分类表列表") + @GetMapping(value = "/list") + public Object getPmsProductAttributeCategoryByPage(PmsProductAttributeCategory entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductAttributeCategoryService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有产品属性分类表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存产品属性分类表") + @ApiOperation("保存产品属性分类表") + @PostMapping(value = "/create") +// // @PreAuthorize("hasAuthority('pms:PmsProductAttributeCategory:create')") + public Object create(@RequestParam String name, + @RequestParam(value = "pic", required = false) String pic, + @RequestParam(value = "showIndex", required = false) Integer showIndex, + @RequestParam(value = "style", required = false) Integer style) { + try { + PmsProductAttributeCategory productAttributeCategory = new PmsProductAttributeCategory(); + productAttributeCategory.setName(name); + productAttributeCategory.setShowIndex(showIndex); + productAttributeCategory.setStyle(style); + productAttributeCategory.setPic(pic); + if (IPmsProductAttributeCategoryService.save(productAttributeCategory)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存产品属性分类表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存产品属性分类表") + @ApiOperation("保存产品属性分类表") + @PostMapping(value = "/createSingle") + // @PreAuthorize("hasAuthority('pms:PmsProductAttributeCategory:create')") + public Object createSingle(@RequestBody PmsProductAttributeCategory productAttributeCategory) { + try { + if (IPmsProductAttributeCategoryService.save(productAttributeCategory)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存产品属性分类表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新产品属性分类表") + @ApiOperation("更新产品属性分类表") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductAttributeCategory:update')") + public Object updatePmsProductAttributeCategory(@PathVariable Long id, @RequestParam String name) { + try { + PmsProductAttributeCategory productAttributeCategory = new PmsProductAttributeCategory(); + productAttributeCategory.setName(name); + productAttributeCategory.setId(id); + if (IPmsProductAttributeCategoryService.updateById(productAttributeCategory)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新产品属性分类表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除产品属性分类表") + @ApiOperation("删除产品属性分类表") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductAttributeCategory:delete')") + public Object deletePmsProductAttributeCategory(@ApiParam("产品属性分类表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品属性分类表id"); + } + if (IPmsProductAttributeCategoryService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除产品属性分类表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给产品属性分类表分配产品属性分类表") + @ApiOperation("查询产品属性分类表明细") + @GetMapping(value = "/{id}") + public Object getPmsProductAttributeCategoryById(@ApiParam("产品属性分类表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品属性分类表id"); + } + PmsProductAttributeCategory coupon = IPmsProductAttributeCategoryService.getById(id); + if (coupon != null) { + List list = shopGoodsGroupMapMapper.selEsShopGoodsGroupMap(coupon.getId()); + List lists = new ArrayList(); + for (EsShopGoodsGroupMap lis : list) { + //根据商品ID查询商品名称、商品图片、商品虚拟库存 + PmsProduct es = pmsProductService.getById(lis.getGoodsId()); + if (es != null) { + lists.add(es); + } + } + coupon.setListGoods(lists); + } + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询产品属性分类表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除产品属性分类表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除产品属性分类表") + // @PreAuthorize("hasAuthority('pms:PmsProductAttributeCategory:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductAttributeCategoryService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + // @SysLog(MODULE = "pms", REMARK = "获取所有商品属性分类及其下属性") + @ApiOperation("获取所有商品属性分类及其下属性") + @RequestMapping(value = "/list/withAttr", method = RequestMethod.GET) + @ResponseBody + public Object getListWithAttr() { + List productAttributeCategoryResultList = IPmsProductAttributeCategoryService.getListWithAttr(); + return new CommonResult().success(productAttributeCategoryResultList); + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductAttributeController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductAttributeController.java new file mode 100644 index 0000000..c10997e --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductAttributeController.java @@ -0,0 +1,163 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttribute; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductAttributeService; +import com.yxt.yythmall.mallplus.mbg.pms.vo.ProductAttrInfo; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.*; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 商品属性参数表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductAttributeController", description = "商品属性参数表管理") +@RequestMapping("/pms/PmsProductAttribute") +public class PmsProductAttributeController { + @Resource + private IPmsProductAttributeService IPmsProductAttributeService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有商品属性参数表列表") + @ApiOperation("根据条件查询所有商品属性参数表列表") + @GetMapping(value = "/listAll") + public Object getPmsProductAttributeByPage(PmsProductAttribute entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductAttributeService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity).orderByDesc("id"))); + } catch (Exception e) { + log.error("根据条件查询所有商品属性参数表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "根据分类查询属性列表或参数列表") + @ApiOperation("根据分类查询属性列表或参数列表") + @ApiImplicitParams({@ApiImplicitParam(name = "type", value = "0表示属性,1表示参数", required = true, paramType = "query", dataType = "integer")}) + @RequestMapping(value = "/list/{cid}", method = RequestMethod.GET) + @ResponseBody + public Object getList(@PathVariable Long cid, + @RequestParam(value = "type") Integer type, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) { + PmsProductAttribute entity = new PmsProductAttribute(); + entity.setProductAttributeCategoryId(cid); + entity.setType(type); + try { + return new CommonResult().success(IPmsProductAttributeService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有商品属性参数表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存商品属性参数表") + @ApiOperation("保存商品属性参数表") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsProductAttribute:create')") + public Object savePmsProductAttribute(@RequestBody PmsProductAttribute entity) { + try { + if (entity.getType() == null) { + return new CommonResult().failed("请选择类型"); + } + if (IPmsProductAttributeService.saveAndUpdate(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存商品属性参数表:%s", e.getMessage(), e); + return new CommonResult().failed(e.getMessage()); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新商品属性参数表") + @ApiOperation("更新商品属性参数表") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductAttribute:update')") + public Object updatePmsProductAttribute(@RequestBody PmsProductAttribute entity) { + try { + if (IPmsProductAttributeService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新商品属性参数表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除商品属性参数表") + @ApiOperation("删除商品属性参数表") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductAttribute:delete')") + public Object deletePmsProductAttribute(@ApiParam("商品属性参数表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品属性参数表id"); + } + if (IPmsProductAttributeService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除商品属性参数表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给商品属性参数表分配商品属性参数表") + @ApiOperation("查询商品属性参数表明细") + @GetMapping(value = "/{id}") + public Object getPmsProductAttributeById(@ApiParam("商品属性参数表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品属性参数表id"); + } + PmsProductAttribute coupon = IPmsProductAttributeService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询商品属性参数表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除商品属性参数表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除商品属性参数表") + // @PreAuthorize("hasAuthority('pms:PmsProductAttribute:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductAttributeService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + // @SysLog(MODULE = "pms", REMARK = "根据商品分类的id获取商品属性及属性分类") + @ApiOperation("根据商品分类的id获取商品属性及属性分类") + @RequestMapping(value = "/attrInfo/{productCategoryId}", method = RequestMethod.GET) + @ResponseBody + public Object getAttrInfo(@PathVariable Long productCategoryId) { + List productAttrInfoList = IPmsProductAttributeService.getProductAttrInfo(productCategoryId); + return new CommonResult().success(productAttrInfoList); + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductAttributeValueController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductAttributeValueController.java new file mode 100644 index 0000000..33b6766 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductAttributeValueController.java @@ -0,0 +1,134 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeValue; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductAttributeValueService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 存储产品参数信息的表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductAttributeValueController", description = "存储产品参数信息的表管理") +@RequestMapping("/pms/PmsProductAttributeValue") +public class PmsProductAttributeValueController { + @Resource + private IPmsProductAttributeValueService IPmsProductAttributeValueService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有存储产品参数信息的表列表") + @ApiOperation("根据条件查询所有存储产品参数信息的表列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsProductAttributeValue:read')") + public Object getPmsProductAttributeValueByPage(PmsProductAttributeValue entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductAttributeValueService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有存储产品参数信息的表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存存储产品参数信息的表") + @ApiOperation("保存存储产品参数信息的表") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsProductAttributeValue:create')") + public Object savePmsProductAttributeValue(@RequestBody PmsProductAttributeValue entity) { + try { + if (IPmsProductAttributeValueService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存存储产品参数信息的表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新存储产品参数信息的表") + @ApiOperation("更新存储产品参数信息的表") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductAttributeValue:update')") + public Object updatePmsProductAttributeValue(@RequestBody PmsProductAttributeValue entity) { + try { + if (IPmsProductAttributeValueService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新存储产品参数信息的表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除存储产品参数信息的表") + @ApiOperation("删除存储产品参数信息的表") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductAttributeValue:delete')") + public Object deletePmsProductAttributeValue(@ApiParam("存储产品参数信息的表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("存储产品参数信息的表id"); + } + if (IPmsProductAttributeValueService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除存储产品参数信息的表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给存储产品参数信息的表分配存储产品参数信息的表") + @ApiOperation("查询存储产品参数信息的表明细") + @GetMapping(value = "/{id}") + public Object getPmsProductAttributeValueById(@ApiParam("存储产品参数信息的表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("存储产品参数信息的表id"); + } + PmsProductAttributeValue coupon = IPmsProductAttributeValueService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询存储产品参数信息的表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除存储产品参数信息的表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除存储产品参数信息的表") + // @PreAuthorize("hasAuthority('pms:PmsProductAttributeValue:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductAttributeValueService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductCategoryAttributeRelationController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductCategoryAttributeRelationController.java new file mode 100644 index 0000000..444e4f6 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductCategoryAttributeRelationController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategoryAttributeRelation; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductCategoryAttributeRelationService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类) + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductCategoryAttributeRelationController", description = "产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)管理") +@RequestMapping("/pms/PmsProductCategoryAttributeRelation") +public class PmsProductCategoryAttributeRelationController { + @Resource + private IPmsProductCategoryAttributeRelationService IPmsProductCategoryAttributeRelationService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)列表") + @ApiOperation("根据条件查询所有产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsProductCategoryAttributeRelation:read')") + public Object getPmsProductCategoryAttributeRelationByPage(PmsProductCategoryAttributeRelation entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductCategoryAttributeRelationService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)") + @ApiOperation("保存产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsProductCategoryAttributeRelation:create')") + public Object savePmsProductCategoryAttributeRelation(@RequestBody PmsProductCategoryAttributeRelation entity) { + try { + if (IPmsProductCategoryAttributeRelationService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类):%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)") + @ApiOperation("更新产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductCategoryAttributeRelation:update')") + public Object updatePmsProductCategoryAttributeRelation(@RequestBody PmsProductCategoryAttributeRelation entity) { + try { + if (IPmsProductCategoryAttributeRelationService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类):%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)") + @ApiOperation("删除产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductCategoryAttributeRelation:delete')") + public Object deletePmsProductCategoryAttributeRelation(@ApiParam("产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)id"); + } + if (IPmsProductCategoryAttributeRelationService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类):%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)分配产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)") + @ApiOperation("查询产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductCategoryAttributeRelation:read')") + public Object getPmsProductCategoryAttributeRelationById(@ApiParam("产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)id"); + } + PmsProductCategoryAttributeRelation coupon = IPmsProductCategoryAttributeRelationService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类)") + // @PreAuthorize("hasAuthority('pms:PmsProductCategoryAttributeRelation:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductCategoryAttributeRelationService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductCategoryController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductCategoryController.java new file mode 100644 index 0000000..ac365f0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductCategoryController.java @@ -0,0 +1,222 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategory; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductCategoryService; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductCategoryWithChildrenItem; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 产品分类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductCategoryController", description = "产品分类管理") +@RequestMapping("/pms/PmsProductCategory") +public class PmsProductCategoryController { + @Resource + private IPmsProductCategoryService IPmsProductCategoryService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有产品分类列表") + @ApiOperation("根据条件查询所有产品分类列表") + @GetMapping(value = "/list") + public Object getPmsProductCategoryByPage(PmsProductCategory entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductCategoryService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有产品分类列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + @ApiOperation("分页查询商品分类") + @RequestMapping(value = "/list/{parentId}", method = RequestMethod.GET) + @ResponseBody + public Object getList(@PathVariable Long parentId, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) { + PmsProductCategory entity = new PmsProductCategory(); + entity.setParentId(parentId); + return new CommonResult().success(IPmsProductCategoryService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } + + // @SysLog(MODULE = "pms", REMARK = "保存产品分类") + @ApiOperation("保存产品分类") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsProductCategory:create')") + public Object savePmsProductCategory(@RequestBody PmsProductCategory entity) { + try { + //查询是否存在相同级别的相同名称的分类 + Long parentId = entity.getParentId(); + String name = entity.getName(); + int count = IPmsProductCategoryService.selectCountByNameAndLevel(parentId,name); + if(count>0){ + return new CommonResult().failed("该分类已存在"); + } + if (IPmsProductCategoryService.saveAnd(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存产品分类:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新产品分类") + @ApiOperation("更新产品分类") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductCategory:update')") + public Object updatePmsProductCategory(@RequestBody PmsProductCategory entity) { + try { + //查询是否存在相同级别的相同名称的分类 + Long parentId = entity.getParentId(); + String name = entity.getName(); + Long id = entity.getId(); + int count = IPmsProductCategoryService.selectCountByNameAndLevelId(parentId,name,id); + if(count>0){ + return new CommonResult().failed("该分类已存在"); + } + if (IPmsProductCategoryService.updateAnd(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新产品分类:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除产品分类") + @ApiOperation("删除产品分类") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductCategory:delete')") + public Object deletePmsProductCategory(@ApiParam("产品分类id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品分类id"); + } + if (IPmsProductCategoryService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除产品分类:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给产品分类分配产品分类") + @ApiOperation("查询产品分类明细") + @GetMapping(value = "/{id}") + public Object getPmsProductCategoryById(@ApiParam("产品分类id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品分类id"); + } + PmsProductCategory coupon = IPmsProductCategoryService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询产品分类明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除产品分类") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除产品分类") + // @PreAuthorize("hasAuthority('pms:PmsProductCategory:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductCategoryService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation("查询所有一级分类及子分类") + @RequestMapping(value = "/list/withChildren", method = RequestMethod.GET) + @ResponseBody + public Object listWithChildren() { + List list = IPmsProductCategoryService.listWithChildren(); + return new CommonResult().success(list); + } + + @ApiOperation("修改导航栏显示状态") + @RequestMapping(value = "/update/navStatus", method = RequestMethod.POST) + @ResponseBody + // @PreAuthorize("hasAuthority('pms:PmsProductCategory:update')") + public Object updateNavStatus(@RequestParam("ids") Long ids, @RequestParam("navStatus") Integer navStatus) { + PmsProductCategory entity = new PmsProductCategory(); + entity.setId(ids); + entity.setNavStatus(navStatus); + + if (IPmsProductCategoryService.updateById(entity)) { + return new CommonResult().success(); + } else { + return new CommonResult().failed(); + } + } +// public Object updateNavStatus(@RequestParam("ids") List ids, @RequestParam("navStatus") Integer navStatus) { +// int count = IPmsProductCategoryService.updateNavStatus(ids, navStatus); +// if (count > 0) { +// return new CommonResult().success(count); +// } else { +// return new CommonResult().failed(); +// } +// } + + @ApiOperation("修改显示状态") + @RequestMapping(value = "/update/showStatus", method = RequestMethod.POST) + @ResponseBody + // @PreAuthorize("hasAuthority('pms:PmsProductCategory:update')") + public Object updateShowStatus(@RequestParam("ids") Long ids, @RequestParam("showStatus") Integer showStatus) { + PmsProductCategory entity = new PmsProductCategory(); + entity.setId(ids); + entity.setShowStatus(showStatus); + if (IPmsProductCategoryService.updateById(entity)) { + return new CommonResult().success(); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation("修改首页显示状态") + @RequestMapping(value = "/update/indexStatus", method = RequestMethod.POST) + @ResponseBody + // @PreAuthorize("hasAuthority('pms:PmsProductCategory:update')") + public Object updateIndexStatus(@RequestParam("ids") Long ids, @RequestParam("indexStatus") Integer indexStatus) { + PmsProductCategory entity = new PmsProductCategory(); + entity.setId(ids); + entity.setIndexStatus(indexStatus); + if (IPmsProductCategoryService.updateById(entity)) { + return new CommonResult().success(); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductConsultController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductConsultController.java new file mode 100644 index 0000000..ae64f19 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductConsultController.java @@ -0,0 +1,101 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductConsult; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductConsultService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 产品咨询表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductConsultController", description = "产品咨询表管理") +@RequestMapping("/pms/PmsProductConsult") +public class PmsProductConsultController { + @Resource + private IPmsProductConsultService IPmsProductConsultService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有产品咨询表列表") + @ApiOperation("根据条件查询所有产品咨询表列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsProductConsult:read')") + public Object getPmsProductConsultByPage(PmsProductConsult entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductConsultService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有产品咨询表列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + + // @SysLog(MODULE = "pms", REMARK = "删除产品咨询表") + @ApiOperation("删除产品咨询表") + @GetMapping(value = "/delete/{id}") + public Object deletePmsProductConsult(@ApiParam("产品咨询表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品咨询表id"); + } + if (IPmsProductConsultService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除产品咨询表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给产品咨询表分配产品咨询表") + @ApiOperation("查询产品咨询表明细") + @GetMapping(value = "/{id}") + public Object getPmsProductConsultById(@ApiParam("产品咨询表id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品咨询表id"); + } + PmsProductConsult coupon = IPmsProductConsultService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询产品咨询表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除产品咨询表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除产品咨询表") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductConsultService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductController.java new file mode 100644 index 0000000..e706ba5 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductController.java @@ -0,0 +1,538 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.zscat.mallplus.enums.ConstansValue; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProduct; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductVertifyRecord; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSkuStock; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductService; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsSkuStockService; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductParam; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductResult; +//import com.zscat.mallplus.ums.entity.UmsMemberTag; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import com.zscat.mallplus.vo.IdStatus; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 商品信息 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductController", description = "商品信息管理") +@RequestMapping("/pms/PmsProduct") +public class PmsProductController { + @Resource + private IPmsProductService IPmsProductService; +// @Resource +// private com.zscat.mallplus.ums.service.IUmsMemberTagService IUmsMemberTagService; + @Resource + private IPmsSkuStockService skuStockService; + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有商品信息列表") + @ApiOperation("根据条件查询所有商品信息列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsProduct:read')") + public Object getPmsProductByPage(PmsProduct entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + IPage page = null; + if (ValidatorUtils.empty(entity.getStatus())) { + entity.setStatus(0); + } + if (ValidatorUtils.notEmpty(entity.getKeyword())) { + if (entity.getStatus() == 1) { + entity.setDeleteStatus(1); + entity.setPublishStatus(1); + entity.setVerifyStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 2) { + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).eq("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 3) { + entity.setPublishStatus(0); + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 4) { + entity.setDeleteStatus(0); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else { + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } + } else { + if (entity.getStatus() == 1) { + entity.setDeleteStatus(1); + entity.setPublishStatus(1); + entity.setVerifyStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 2) { + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + eq("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 3) { + entity.setPublishStatus(0); + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 4) { + entity.setDeleteStatus(0); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else { + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } + + } + return new CommonResult().success(page); + } catch (Exception e) { + log.error("根据条件查询所有商品信息列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有商品信息列表") + @ApiOperation("根据条件查询所有商品信息列表") + @GetMapping(value = "/listBySku") + // @PreAuthorize("hasAuthority('pms:PmsProduct:read')") + public Object listBySku(PmsProduct entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + IPage page = null; + if (ValidatorUtils.empty(entity.getStatus())) { + entity.setStatus(0); + } + if (ValidatorUtils.notEmpty(entity.getKeyword())) { + if (entity.getStatus() == 1) { + entity.setDeleteStatus(1); + entity.setPublishStatus(1); + entity.setVerifyStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 2) { + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).eq("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 3) { + entity.setPublishStatus(0); + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 4) { + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else { + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } + } else { + if (entity.getStatus() == 1) { + entity.setDeleteStatus(1); + entity.setPublishStatus(1); + entity.setVerifyStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 2) { + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + eq("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 3) { + entity.setDeleteStatus(1); + entity.setPublishStatus(0); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 4) { + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else { + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } + + } + if (page.getRecords()!=null && page.getRecords().size()>0){ + for (PmsProduct product : page.getRecords()) { + List skuStockList = skuStockService.list(new QueryWrapper().eq("product_id", product.getId())); + product.setSkuStockList(skuStockList); + } + } + + return new CommonResult().success(page); + } catch (Exception e) { + log.error("根据条件查询所有商品信息列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + @ApiOperation("根据商品名称或货号模糊查询") + @RequestMapping(value = "/simpleList", method = RequestMethod.GET) + @ResponseBody + public Object getList(String keyword) { + List productList = IPmsProductService.list(keyword); + return new CommonResult().success(productList); + } + + // @SysLog(MODULE = "pms", REMARK = "保存商品信息") + @ApiOperation("保存商品信息") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsProduct:create')") + public Object savePmsProduct(@RequestBody PmsProductParam productParam) { + try { + productParam.setDeleteStatus(1); + int count = IPmsProductService.create(productParam); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } catch (Exception e) { + log.error("保存商品信息:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + // @SysLog(MODULE = "pms", REMARK = "更新商品信息") + @ApiOperation("更新商品信息") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProduct:update')") + public Object updatePmsProduct(@PathVariable Long id, @RequestBody PmsProductParam productParam) { + try { + int count = IPmsProductService.update(id, productParam); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } catch (Exception e) { + log.error("更新商品信息:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + // @SysLog(MODULE = "pms", REMARK = "删除商品信息") + @ApiOperation("删除商品信息") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProduct:delete')") + public Object deletePmsProduct(@ApiParam("商品信息id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品信息id"); + } + if (IPmsProductService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除商品信息:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给商品信息分配商品信息") + @ApiOperation("查询商品信息明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProduct:read')") + public Object getPmsProductById(@ApiParam("商品信息id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品信息id"); + } + PmsProduct coupon = IPmsProductService.getById(id); +// if (ValidatorUtils.notEmpty(coupon.getTags())){ +// String[] ids = coupon.getTags().split(","); +// List tagList = IUmsMemberTagService.list(new QueryWrapper().eq("type",2).eq("status",1).in("id",ids)); +// coupon.setTagList(tagList); +// } + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询商品信息明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除商品信息") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除商品信息") + // @PreAuthorize("hasAuthority('pms:PmsProduct:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation("根据商品id获取商品编辑信息") + @RequestMapping(value = "/updateInfo/{id}", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "根据商品id获取商品编辑信息") + // @PreAuthorize("hasAuthority('pms:PmsProduct:read')") + public Object getUpdateInfo(@PathVariable Long id) { + PmsProductResult productResult = IPmsProductService.getUpdateInfo(id); +// if (ValidatorUtils.notEmpty(productResult.getTags())){ +// String[] ids = productResult.getTags().split(","); +// List tagList = IUmsMemberTagService.list(new QueryWrapper().eq("type",2).in("id",ids)); +// productResult.setTagList(tagList); +// } + return new CommonResult().success(productResult); + } + + @ApiOperation("根据商品id获取审核信息") + @RequestMapping(value = "/fetchVList/{id}", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "据商品id获取审核信息") + public Object fetchVList(@PathVariable Long id) { + List list = IPmsProductService.getProductVertifyRecord(id); + return new CommonResult().success(list); + } + + @ApiOperation("批量修改审核状态") + @RequestMapping(value = "/update/verifyStatus") + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量修改审核状态") + // @PreAuthorize("hasAuthority('pms:PmsProduct:update')") + public Object updateVerifyStatus(@RequestParam("ids") Long ids, + @RequestParam("verifyStatus") Integer verifyStatus, + @RequestParam("detail") String detail) { + int count = IPmsProductService.updateVerifyStatus(ids, verifyStatus, detail); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation("批量上下架") + @RequestMapping(value = "/update/publishStatus", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量上下架") + // @PreAuthorize("hasAuthority('pms:PmsProduct:update')") + public Object updatePublishStatus(@RequestParam("ids") List ids, + @RequestParam("publishStatus") Integer publishStatus) { + int count = IPmsProductService.updatePublishStatus(ids, publishStatus); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation("批量上下架") + @RequestMapping(value = "/publishStatus", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量上下架") + public Object updatePublishStatu(@RequestBody IdStatus ids, BindingResult result) { + PmsProduct product = new PmsProduct(); + product.setId(ids.getId()); + product.setPublishStatus(ids.getStatus()); + Boolean count = IPmsProductService.updateById(product); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation("批量推荐商品") + @RequestMapping(value = "/update/recommendStatus", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量推荐商品") + // @PreAuthorize("hasAuthority('pms:PmsProduct:update')") + public Object updateRecommendStatus(@RequestParam("ids") List ids, + @RequestParam("recommendStatus") Integer recommendStatus) { + int count = IPmsProductService.updateRecommendStatus(ids, recommendStatus); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation("批量设为新品") + @RequestMapping(value = "/update/newStatus", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量设为新品") + // @PreAuthorize("hasAuthority('pms:PmsProduct:update')") + public Object updateNewStatus(@RequestParam("ids") List ids, + @RequestParam("newStatus") Integer newStatus) { + int count = IPmsProductService.updateNewStatus(ids, newStatus); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation("批量设为分销") + @RequestMapping(value = "/update/isFenxiao", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量设为分销") + public Object updateisFenxiao(@RequestParam("ids") List ids, + @RequestParam("newStatus") Integer newStatus) { + int count = IPmsProductService.updateisFenxiao(ids, newStatus); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @ApiOperation("批量设为会员商品") + @RequestMapping(value = "/update/isVip", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量设为会员商品") + public Object updateisVip(@RequestParam("ids") List ids, + @RequestParam("newStatus") Integer newStatus) { + int count = IPmsProductService.updateisVip(ids, newStatus); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + + @ApiOperation("批量修改删除状态") + @RequestMapping(value = "/update/deleteStatus", method = RequestMethod.POST) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量修改删除状态") + // @PreAuthorize("hasAuthority('pms:PmsProduct:delete')") + public Object updateDeleteStatus(@RequestParam("ids") List ids, + @RequestParam("deleteStatus") Integer deleteStatus) { + int count = IPmsProductService.updateDeleteStatus(ids, deleteStatus); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + @GetMapping(value = "/goods/list") + public Object getPmsProductListByPage(PmsProduct entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + IPage page = null; + if (ValidatorUtils.empty(entity.getStatus())) { + entity.setStatus(0); + } + if (ValidatorUtils.notEmpty(entity.getKeyword())) { + if (entity.getStatus() == 1) { + entity.setPublishStatus(1); + entity.setVerifyStatus(1); + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 2) { + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).eq("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 3) { + entity.setDeleteStatus(1); + entity.setPublishStatus(0); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 4) { + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else { + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + like("name", entity.getKeyword()).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } + } else { + if (entity.getStatus() == 1) { + entity.setPublishStatus(1); + entity.setVerifyStatus(1); + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 2) { + entity.setDeleteStatus(1); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + eq("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 3) { + entity.setDeleteStatus(1); + entity.setPublishStatus(0); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + gt("stock", 0).orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else if (entity.getStatus() == 4) { + entity.setDeleteStatus(0); + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } else { + page = IPmsProductService.page(new Page(pageNum, pageSize), new QueryWrapper(entity). + orderByDesc("create_time").select(ConstansValue.sampleGoodsList)); + } + + } + return new CommonResult().success(page); + } catch (Exception e) { + log.error("根据条件查询所有商品信息列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + @ApiOperation("批量上下架") + @RequestMapping(value = "/updateReComStatus", method = RequestMethod.POST) + @ResponseBody + public Object updateReComStatus(@RequestBody IdStatus ids, BindingResult result) { + PmsProduct product = new PmsProduct(); + product.setId(ids.getId()); + if (ids.getType() == 1) { // 1推荐2 上下架 3 审核 4 删除 5 分销 6 会员 + product.setRecommandStatus(ids.getStatus()); + } else if (ids.getType() == 2) { + product.setPublishStatus(ids.getStatus()); + } else if (ids.getType() == 3) { + product.setVerifyStatus(ids.getStatus()); + } else if (ids.getType() == 4) { + product.setDeleteStatus(ids.getStatus()); + } else if (ids.getType() == 5) { + product.setIsFenxiao(ids.getStatus()); + } else if (ids.getType() == 6) { + product.setIsVip(ids.getStatus()); + } + + + Boolean count = IPmsProductService.updateById(product); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductFullReductionController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductFullReductionController.java new file mode 100644 index 0000000..d6fd4d7 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductFullReductionController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductFullReduction; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductFullReductionService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 产品满减表(只针对同商品) + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductFullReductionController", description = "产品满减表(只针对同商品)管理") +@RequestMapping("/pms/PmsProductFullReduction") +public class PmsProductFullReductionController { + @Resource + private IPmsProductFullReductionService IPmsProductFullReductionService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有产品满减表(只针对同商品)列表") + @ApiOperation("根据条件查询所有产品满减表(只针对同商品)列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsProductFullReduction:read')") + public Object getPmsProductFullReductionByPage(PmsProductFullReduction entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductFullReductionService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有产品满减表(只针对同商品)列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存产品满减表(只针对同商品)") + @ApiOperation("保存产品满减表(只针对同商品)") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsProductFullReduction:create')") + public Object savePmsProductFullReduction(@RequestBody PmsProductFullReduction entity) { + try { + if (IPmsProductFullReductionService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存产品满减表(只针对同商品):%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新产品满减表(只针对同商品)") + @ApiOperation("更新产品满减表(只针对同商品)") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductFullReduction:update')") + public Object updatePmsProductFullReduction(@RequestBody PmsProductFullReduction entity) { + try { + if (IPmsProductFullReductionService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新产品满减表(只针对同商品):%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除产品满减表(只针对同商品)") + @ApiOperation("删除产品满减表(只针对同商品)") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductFullReduction:delete')") + public Object deletePmsProductFullReduction(@ApiParam("产品满减表(只针对同商品)id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品满减表(只针对同商品)id"); + } + if (IPmsProductFullReductionService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除产品满减表(只针对同商品):%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给产品满减表(只针对同商品)分配产品满减表(只针对同商品)") + @ApiOperation("查询产品满减表(只针对同商品)明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductFullReduction:read')") + public Object getPmsProductFullReductionById(@ApiParam("产品满减表(只针对同商品)id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品满减表(只针对同商品)id"); + } + PmsProductFullReduction coupon = IPmsProductFullReductionService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询产品满减表(只针对同商品)明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除产品满减表(只针对同商品)") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除产品满减表(只针对同商品)") + // @PreAuthorize("hasAuthority('pms:PmsProductFullReduction:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductFullReductionService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductLadderController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductLadderController.java new file mode 100644 index 0000000..77f4b4d --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductLadderController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductLadder; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductLadderService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 产品阶梯价格表(只针对同商品) + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductLadderController", description = "产品阶梯价格表(只针对同商品)管理") +@RequestMapping("/pms/PmsProductLadder") +public class PmsProductLadderController { + @Resource + private IPmsProductLadderService IPmsProductLadderService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有产品阶梯价格表(只针对同商品)列表") + @ApiOperation("根据条件查询所有产品阶梯价格表(只针对同商品)列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsProductLadder:read')") + public Object getPmsProductLadderByPage(PmsProductLadder entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductLadderService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有产品阶梯价格表(只针对同商品)列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存产品阶梯价格表(只针对同商品)") + @ApiOperation("保存产品阶梯价格表(只针对同商品)") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsProductLadder:create')") + public Object savePmsProductLadder(@RequestBody PmsProductLadder entity) { + try { + if (IPmsProductLadderService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存产品阶梯价格表(只针对同商品):%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新产品阶梯价格表(只针对同商品)") + @ApiOperation("更新产品阶梯价格表(只针对同商品)") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductLadder:update')") + public Object updatePmsProductLadder(@RequestBody PmsProductLadder entity) { + try { + if (IPmsProductLadderService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新产品阶梯价格表(只针对同商品):%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除产品阶梯价格表(只针对同商品)") + @ApiOperation("删除产品阶梯价格表(只针对同商品)") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductLadder:delete')") + public Object deletePmsProductLadder(@ApiParam("产品阶梯价格表(只针对同商品)id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品阶梯价格表(只针对同商品)id"); + } + if (IPmsProductLadderService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除产品阶梯价格表(只针对同商品):%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给产品阶梯价格表(只针对同商品)分配产品阶梯价格表(只针对同商品)") + @ApiOperation("查询产品阶梯价格表(只针对同商品)明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductLadder:read')") + public Object getPmsProductLadderById(@ApiParam("产品阶梯价格表(只针对同商品)id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("产品阶梯价格表(只针对同商品)id"); + } + PmsProductLadder coupon = IPmsProductLadderService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询产品阶梯价格表(只针对同商品)明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除产品阶梯价格表(只针对同商品)") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除产品阶梯价格表(只针对同商品)") + // @PreAuthorize("hasAuthority('pms:PmsProductLadder:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductLadderService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductOperateLogController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductOperateLogController.java new file mode 100644 index 0000000..9e4cad1 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductOperateLogController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductOperateLog; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductOperateLogService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ *

+ *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductOperateLogController", description = "管理") +@RequestMapping("/pms/PmsProductOperateLog") +public class PmsProductOperateLogController { + @Resource + private IPmsProductOperateLogService IPmsProductOperateLogService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有列表") + @ApiOperation("根据条件查询所有列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsProductOperateLog:read')") + public Object getPmsProductOperateLogByPage(PmsProductOperateLog entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductOperateLogService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存") + @ApiOperation("保存") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsProductOperateLog:create')") + public Object savePmsProductOperateLog(@RequestBody PmsProductOperateLog entity) { + try { + if (IPmsProductOperateLogService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新") + @ApiOperation("更新") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductOperateLog:update')") + public Object updatePmsProductOperateLog(@RequestBody PmsProductOperateLog entity) { + try { + if (IPmsProductOperateLogService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除") + @ApiOperation("删除") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductOperateLog:delete')") + public Object deletePmsProductOperateLog(@ApiParam("id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("id"); + } + if (IPmsProductOperateLogService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给分配") + @ApiOperation("查询明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductOperateLog:read')") + public Object getPmsProductOperateLogById(@ApiParam("id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("id"); + } + PmsProductOperateLog coupon = IPmsProductOperateLogService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除") + // @PreAuthorize("hasAuthority('pms:PmsProductOperateLog:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductOperateLogService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductVertifyRecordController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductVertifyRecordController.java new file mode 100644 index 0000000..750d8fb --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsProductVertifyRecordController.java @@ -0,0 +1,135 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductVertifyRecord; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductVertifyRecordService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 商品审核记录 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsProductVertifyRecordController", description = "商品审核记录管理") +@RequestMapping("/pms/PmsProductVertifyRecord") +public class PmsProductVertifyRecordController { + @Resource + private IPmsProductVertifyRecordService IPmsProductVertifyRecordService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有商品审核记录列表") + @ApiOperation("根据条件查询所有商品审核记录列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsProductVertifyRecord:read')") + public Object getPmsProductVertifyRecordByPage(PmsProductVertifyRecord entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsProductVertifyRecordService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有商品审核记录列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存商品审核记录") + @ApiOperation("保存商品审核记录") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsProductVertifyRecord:create')") + public Object savePmsProductVertifyRecord(@RequestBody PmsProductVertifyRecord entity) { + try { + if (IPmsProductVertifyRecordService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存商品审核记录:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新商品审核记录") + @ApiOperation("更新商品审核记录") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductVertifyRecord:update')") + public Object updatePmsProductVertifyRecord(@RequestBody PmsProductVertifyRecord entity) { + try { + if (IPmsProductVertifyRecordService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新商品审核记录:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除商品审核记录") + @ApiOperation("删除商品审核记录") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductVertifyRecord:delete')") + public Object deletePmsProductVertifyRecord(@ApiParam("商品审核记录id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品审核记录id"); + } + if (IPmsProductVertifyRecordService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除商品审核记录:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给商品审核记录分配商品审核记录") + @ApiOperation("查询商品审核记录明细") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsProductVertifyRecord:read')") + public Object getPmsProductVertifyRecordById(@ApiParam("商品审核记录id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("商品审核记录id"); + } + PmsProductVertifyRecord coupon = IPmsProductVertifyRecordService.getById(id); + return new CommonResult().success(coupon); + } catch (Exception e) { + log.error("查询商品审核记录明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除商品审核记录") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除商品审核记录") + // @PreAuthorize("hasAuthority('pms:PmsProductVertifyRecord:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsProductVertifyRecordService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsSkuStockController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsSkuStockController.java new file mode 100644 index 0000000..6f2d695 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsSkuStockController.java @@ -0,0 +1,155 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSkuStock; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsSkuStockService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * sku的库存 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@RestController +@Api(tags = "PmsSkuStockController", description = "sku的库存管理") +@RequestMapping("/pms/PmsSkuStock") +public class PmsSkuStockController { + @Resource + private IPmsSkuStockService IPmsSkuStockService; + + // @SysLog(MODULE = "pms", REMARK = "根据条件查询所有sku的库存列表") + @ApiOperation("根据条件查询所有sku的库存列表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsSkuStock:read')") + public Object getPmsSkuStockByPage(PmsSkuStock entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsSkuStockService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("根据条件查询所有sku的库存列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存sku的库存") + @ApiOperation("保存sku的库存") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsSkuStock:create')") + public Object savePmsSkuStock(@RequestBody PmsSkuStock entity) { + try { + if (IPmsSkuStockService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存sku的库存:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新sku的库存") + @ApiOperation("更新sku的库存") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsSkuStock:update')") + public Object updatePmsSkuStock(@RequestBody PmsSkuStock entity) { + try { + if (IPmsSkuStockService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新sku的库存:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除sku的库存") + @ApiOperation("删除sku的库存") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsSkuStock:delete')") + public Object deletePmsSkuStock(@ApiParam(name = "pid", value = "sku的库存id", required = true) @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("sku的库存id"); + } + if (IPmsSkuStockService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除sku的库存:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "给sku的库存分配sku的库存") + @ApiOperation("查询sku的库存明细") + @GetMapping(value = "select/{id}") + // @PreAuthorize("hasAuthority('pms:PmsSkuStock:read')") + public Object getPmsSkuStockById(@ApiParam("sku的库存id") @PathVariable Long id, @RequestParam(value = "keyword", required = false) String keyword) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("sku的库存id"); + } + return new CommonResult().success(IPmsSkuStockService.getList(id, keyword)); + } catch (Exception e) { + log.error("查询sku的库存明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除sku的库存") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除sku的库存") + // @PreAuthorize("hasAuthority('pms:PmsSkuStock:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsSkuStockService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + // @SysLog(MODULE = "pms", REMARK = "根据商品编号及编号模糊搜索sku库存") + @ApiOperation("根据商品编号及编号模糊搜索sku库存") + @RequestMapping(value = "/{pid}", method = RequestMethod.GET) + @ResponseBody + public Object getList(@PathVariable Long pid, @RequestParam(value = "keyword", required = false) String keyword) { + List skuStockList = IPmsSkuStockService.getList(pid, keyword); + return new CommonResult().success(skuStockList); + } + + // @SysLog(MODULE = "pms", REMARK = "批量更新库存信息") + @ApiOperation("批量更新库存信息") + @RequestMapping(value = "/updatePid/{pid}", method = RequestMethod.POST) + @ResponseBody + public Object update(@PathVariable Long pid, @RequestBody List skuStockList) { + int count = IPmsSkuStockService.update(pid, skuStockList); + if (count > 0) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsSmallNaviconCategoryController.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsSmallNaviconCategoryController.java new file mode 100644 index 0000000..96c8f49 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/controller/PmsSmallNaviconCategoryController.java @@ -0,0 +1,136 @@ +package com.yxt.yythmall.mallplus.biz.pms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +// import com.zscat.mallplus.annotation.SysLog; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSmallNaviconCategory; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsSmallNaviconCategoryService; +import com.zscat.mallplus.utils.CommonResult; +import com.zscat.mallplus.utils.ValidatorUtils; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +// import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ *

+ *

+ * + * @author zscat + * @since ${date} + */ +@Slf4j +@RestController +@Api(tags = "PmsSmallNaviconCategoryController", description = "管理") +@RequestMapping("/pms/smallNaviconCategory") +public class PmsSmallNaviconCategoryController { + @Resource + private IPmsSmallNaviconCategoryService IPmsSmallNaviconCategoryService; + + // @SysLog(MODULE = "pms", REMARK = "查询pms_small_navicon_category表") + @ApiOperation("查询pms_small_navicon_category表") + @GetMapping(value = "/list") + // @PreAuthorize("hasAuthority('pms:PmsSmallNaviconCategory:read')") + public Object getPmsSmallNaviconCategoryByPage(PmsSmallNaviconCategory entity, + @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum, + @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize + ) { + try { + return new CommonResult().success(IPmsSmallNaviconCategoryService.page(new Page(pageNum, pageSize), new QueryWrapper<>(entity))); + } catch (Exception e) { + log.error("分页获取pms_small_navicon_category列表:%s", e.getMessage(), e); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "保存pms_small_navicon_category表") + @ApiOperation("保存pms_small_navicon_category表") + @PostMapping(value = "/create") + // @PreAuthorize("hasAuthority('pms:PmsSmallNaviconCategory:create')") + public Object saveSmallNaviconCategory(@RequestBody PmsSmallNaviconCategory entity) { + try { + if (IPmsSmallNaviconCategoryService.save(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("保存pms_small_navicon_category表:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "更新pms_small_navicon_category") + @ApiOperation("更新pms_small_navicon_category") + @PostMapping(value = "/update/{id}") + // @PreAuthorize("hasAuthority('pms:PmsSmallNaviconCategory:update')") + public Object updateSmallNaviconCategory(@RequestBody PmsSmallNaviconCategory entity) { + try { + if (IPmsSmallNaviconCategoryService.updateById(entity)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("更新:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "删除pms_small_navicon_category数据") + @ApiOperation("删除小程序首页nav管理数据") + @GetMapping(value = "/delete/{id}") + // @PreAuthorize("hasAuthority('pms:PmsSmallNaviconCategory:delete')") + public Object deleteRole(@ApiParam("小程序首页nav管理_id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("PmsSmallNaviconCategory_id"); + } + if (IPmsSmallNaviconCategoryService.removeById(id)) { + return new CommonResult().success(); + } + } catch (Exception e) { + log.error("删除小程序首页nav管理数据:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + return new CommonResult().failed(); + } + + // @SysLog(MODULE = "pms", REMARK = "根据ID查询pms_small_navicon_category") + @ApiOperation("根据ID查询pms_small_navicon_category") + @GetMapping(value = "/{id}") + // @PreAuthorize("hasAuthority('pms:PmsSmallNaviconCategory:read')") + public Object getRoleById(@ApiParam("小程序首页nav管理_id") @PathVariable Long id) { + try { + if (ValidatorUtils.empty(id)) { + return new CommonResult().paramFailed("PmsSmallNaviconCategory_id"); + } + PmsSmallNaviconCategory pmsSmallNaviconCategory = IPmsSmallNaviconCategoryService.getById(id); + return new CommonResult().success(pmsSmallNaviconCategory); + } catch (Exception e) { + log.error("pms_small_navicon_category表明细:%s", e.getMessage(), e); + return new CommonResult().failed(); + } + + } + + @ApiOperation(value = "批量删除PmsSmallNaviconCategory表") + @RequestMapping(value = "/delete/batch", method = RequestMethod.GET) + @ResponseBody + // @SysLog(MODULE = "pms", REMARK = "批量删除PmsSmallNaviconCategory表") + // @PreAuthorize("hasAuthority('pms:PmsSmallNaviconCategory:delete')") + public Object deleteBatch(@RequestParam("ids") List ids) { + boolean count = IPmsSmallNaviconCategoryService.removeByIds(ids); + if (count) { + return new CommonResult().success(count); + } else { + return new CommonResult().failed(); + } + } + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsAlbumPicService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsAlbumPicService.java new file mode 100644 index 0000000..589dff3 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsAlbumPicService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsAlbumPic; + +/** + *

+ * 画册图片表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsAlbumPicService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsAlbumService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsAlbumService.java new file mode 100644 index 0000000..2a4884f --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsAlbumService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsAlbum; + +/** + *

+ * 相册表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsAlbumService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsBrandService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsBrandService.java new file mode 100644 index 0000000..1d45db7 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsBrandService.java @@ -0,0 +1,21 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsBrand; + +import java.util.List; + +/** + *

+ * 品牌表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsBrandService extends IService { + + int updateShowStatus(List ids, Integer showStatus); + + int updateFactoryStatus(List ids, Integer factoryStatus); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsCommentReplayService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsCommentReplayService.java new file mode 100644 index 0000000..349609c --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsCommentReplayService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsCommentReplay; + +/** + *

+ * 产品评价回复表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsCommentReplayService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsCommentService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsCommentService.java new file mode 100644 index 0000000..d0dc1c8 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsCommentService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsComment; + +/** + *

+ * 商品评价表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsCommentService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsFeightTemplateService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsFeightTemplateService.java new file mode 100644 index 0000000..9698adc --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsFeightTemplateService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsFeightTemplate; + +/** + *

+ * 运费模版 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsFeightTemplateService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsGiftsCategoryService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsGiftsCategoryService.java new file mode 100644 index 0000000..c9b82c1 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsGiftsCategoryService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsGiftsCategory; + +/** + *

+ * 帮助分类表 服务类 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +public interface IPmsGiftsCategoryService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsGiftsService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsGiftsService.java new file mode 100644 index 0000000..4798ac4 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsGiftsService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsGifts; + +/** + *

+ * 帮助表 服务类 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +public interface IPmsGiftsService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsMemberPriceService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsMemberPriceService.java new file mode 100644 index 0000000..040e233 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsMemberPriceService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsMemberPrice; + +/** + *

+ * 商品会员价格表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsMemberPriceService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductAttributeCategoryService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductAttributeCategoryService.java new file mode 100644 index 0000000..d811800 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductAttributeCategoryService.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeCategory; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductAttributeCategoryItem; + +import java.util.List; + +/** + *

+ * 产品属性分类表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductAttributeCategoryService extends IService { + + List getListWithAttr(); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductAttributeService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductAttributeService.java new file mode 100644 index 0000000..2063cb5 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductAttributeService.java @@ -0,0 +1,22 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttribute; +import com.yxt.yythmall.mallplus.mbg.pms.vo.ProductAttrInfo; + +import java.util.List; + +/** + *

+ * 商品属性参数表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductAttributeService extends IService { + + List getProductAttrInfo(Long productCategoryId); + + boolean saveAndUpdate(PmsProductAttribute entity); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductAttributeValueService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductAttributeValueService.java new file mode 100644 index 0000000..bb2fafb --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductAttributeValueService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeValue; + +/** + *

+ * 存储产品参数信息的表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductAttributeValueService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductCategoryAttributeRelationService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductCategoryAttributeRelationService.java new file mode 100644 index 0000000..fb60463 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductCategoryAttributeRelationService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategoryAttributeRelation; + +/** + *

+ * 产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类) 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductCategoryAttributeRelationService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductCategoryService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductCategoryService.java new file mode 100644 index 0000000..71078ae --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductCategoryService.java @@ -0,0 +1,34 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategory; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductCategoryWithChildrenItem; + +import java.util.List; + +/** + *

+ * 产品分类 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductCategoryService extends IService { + + List listWithChildren(); + + int updateNavStatus(List ids, Integer navStatus); + + int updateShowStatus(List ids, Integer showStatus); + + int updateIndexStatus(List ids, Integer indexStatus); + + boolean updateAnd(PmsProductCategory entity); + + boolean saveAnd(PmsProductCategory entity); + + int selectCountByNameAndLevel(Long parentId, String name); + + int selectCountByNameAndLevelId(Long parentId, String name, Long id); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductConsultService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductConsultService.java new file mode 100644 index 0000000..96e23de --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductConsultService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductConsult; + +/** + *

+ * 产品咨询表 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductConsultService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductFullReductionService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductFullReductionService.java new file mode 100644 index 0000000..e3b147e --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductFullReductionService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductFullReduction; + +/** + *

+ * 产品满减表(只针对同商品) 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductFullReductionService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductLadderService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductLadderService.java new file mode 100644 index 0000000..d65bc18 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductLadderService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductLadder; + +/** + *

+ * 产品阶梯价格表(只针对同商品) 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductLadderService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductOperateLogService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductOperateLogService.java new file mode 100644 index 0000000..feb6bb7 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductOperateLogService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductOperateLog; + +/** + *

+ * 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductOperateLogService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductService.java new file mode 100644 index 0000000..34771fa --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductService.java @@ -0,0 +1,77 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProduct; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductVertifyRecord; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductParam; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductResult; +import org.springframework.transaction.annotation.Isolation; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + *

+ * 商品信息 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductService extends IService { + @Transactional(isolation = Isolation.DEFAULT, propagation = Propagation.REQUIRED) + int create(PmsProductParam productParam); + + /** + * 根据商品编号获取更新信息 + */ + PmsProductResult getUpdateInfo(Long id); + + /** + * 更新商品 + */ + @Transactional + int update(Long id, PmsProductParam productParam); + + /** + * 批量修改审核状态 + * + * @param ids 产品id + * @param verifyStatus 审核状态 + * @param detail 审核详情 + */ + @Transactional + int updateVerifyStatus(Long ids, Integer verifyStatus, String detail); + + /** + * 批量修改商品上架状态 + */ + int updatePublishStatus(List ids, Integer publishStatus); + + /** + * 批量修改商品推荐状态 + */ + int updateRecommendStatus(List ids, Integer recommendStatus); + + /** + * 批量修改新品状态 + */ + int updateNewStatus(List ids, Integer newStatus); + + int updateisFenxiao(List ids, Integer newStatus); + + /** + * 批量删除商品 + */ + int updateDeleteStatus(List ids, Integer deleteStatus); + + /** + * 根据商品名称或者货号模糊查询 + */ + List list(String keyword); + + List getProductVertifyRecord(Long id); + + int updateisVip(List ids, Integer newStatus); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductVertifyRecordService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductVertifyRecordService.java new file mode 100644 index 0000000..5c6a9ea --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsProductVertifyRecordService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductVertifyRecord; + +/** + *

+ * 商品审核记录 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsProductVertifyRecordService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsSkuStockService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsSkuStockService.java new file mode 100644 index 0000000..c845cba --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsSkuStockService.java @@ -0,0 +1,26 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSkuStock; + +import java.util.List; + +/** + *

+ * sku的库存 服务类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +public interface IPmsSkuStockService extends IService { + /** + * 根据产品id和skuCode模糊搜索 + */ + List getList(Long pid, String keyword); + + /** + * 批量更新商品库存信息 + */ + int update(Long pid, List skuStockList); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsSmallNaviconCategoryService.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsSmallNaviconCategoryService.java new file mode 100644 index 0000000..0d70080 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/IPmsSmallNaviconCategoryService.java @@ -0,0 +1,16 @@ +package com.yxt.yythmall.mallplus.biz.pms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSmallNaviconCategory; + +/** + * 小程序首页nav管理 + * + * @author zscat + * @email 951449465@qq.com + * @date 2019-05-08 00:09:37 + */ + +public interface IPmsSmallNaviconCategoryService extends IService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsAlbumPicServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsAlbumPicServiceImpl.java new file mode 100644 index 0000000..0a5e4ac --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsAlbumPicServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsAlbumPic; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsAlbumPicMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsAlbumPicService; +import org.springframework.stereotype.Service; + +/** + *

+ * 画册图片表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsAlbumPicServiceImpl extends ServiceImpl implements IPmsAlbumPicService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsAlbumServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsAlbumServiceImpl.java new file mode 100644 index 0000000..5109053 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsAlbumServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsAlbum; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsAlbumMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsAlbumService; +import org.springframework.stereotype.Service; + +/** + *

+ * 相册表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsAlbumServiceImpl extends ServiceImpl implements IPmsAlbumService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsBrandServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsBrandServiceImpl.java new file mode 100644 index 0000000..a3d6f50 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsBrandServiceImpl.java @@ -0,0 +1,40 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsBrand; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsBrandMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsBrandService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 品牌表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsBrandServiceImpl extends ServiceImpl implements IPmsBrandService { + @Resource + private PmsBrandMapper brandMapper; + + @Override + public int updateShowStatus(List ids, Integer showStatus) { + PmsBrand pmsBrand = new PmsBrand(); + pmsBrand.setShowStatus(showStatus); + return brandMapper.update(pmsBrand, new QueryWrapper().in("id", ids)); + + } + + @Override + public int updateFactoryStatus(List ids, Integer factoryStatus) { + PmsBrand pmsBrand = new PmsBrand(); + pmsBrand.setFactoryStatus(factoryStatus); + return brandMapper.update(pmsBrand, new QueryWrapper().in("id", ids)); + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsCommentReplayServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsCommentReplayServiceImpl.java new file mode 100644 index 0000000..bdcb434 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsCommentReplayServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsCommentReplay; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsCommentReplayMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsCommentReplayService; +import org.springframework.stereotype.Service; + +/** + *

+ * 产品评价回复表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsCommentReplayServiceImpl extends ServiceImpl implements IPmsCommentReplayService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsCommentServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsCommentServiceImpl.java new file mode 100644 index 0000000..04a52b7 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsCommentServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsComment; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsCommentMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsCommentService; +import org.springframework.stereotype.Service; + +/** + *

+ * 商品评价表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsCommentServiceImpl extends ServiceImpl implements IPmsCommentService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsFeightTemplateServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsFeightTemplateServiceImpl.java new file mode 100644 index 0000000..7040257 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsFeightTemplateServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsFeightTemplate; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsFeightTemplateMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsFeightTemplateService; +import org.springframework.stereotype.Service; + +/** + *

+ * 运费模版 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsFeightTemplateServiceImpl extends ServiceImpl implements IPmsFeightTemplateService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsGiftsCategoryServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsGiftsCategoryServiceImpl.java new file mode 100644 index 0000000..49ae2cc --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsGiftsCategoryServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsGiftsCategory; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsGiftsCategoryMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsGiftsCategoryService; +import org.springframework.stereotype.Service; + +/** + *

+ * 帮助分类表 服务实现类 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +@Service +public class PmsGiftsCategoryServiceImpl extends ServiceImpl implements IPmsGiftsCategoryService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsGiftsServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsGiftsServiceImpl.java new file mode 100644 index 0000000..abf26bc --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsGiftsServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsGifts; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsGiftsMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsGiftsService; +import org.springframework.stereotype.Service; + +/** + *

+ * 帮助表 服务实现类 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +@Service +public class PmsGiftsServiceImpl extends ServiceImpl implements IPmsGiftsService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsMemberPriceServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsMemberPriceServiceImpl.java new file mode 100644 index 0000000..9b8719d --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsMemberPriceServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsMemberPrice; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsMemberPriceMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsMemberPriceService; +import org.springframework.stereotype.Service; + +/** + *

+ * 商品会员价格表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsMemberPriceServiceImpl extends ServiceImpl implements IPmsMemberPriceService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductAttributeCategoryServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductAttributeCategoryServiceImpl.java new file mode 100644 index 0000000..adc5bb8 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductAttributeCategoryServiceImpl.java @@ -0,0 +1,31 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeCategory; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductAttributeCategoryMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductAttributeCategoryService; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductAttributeCategoryItem; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 产品属性分类表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductAttributeCategoryServiceImpl extends ServiceImpl implements IPmsProductAttributeCategoryService { + + @Resource + private PmsProductAttributeCategoryMapper productAttributeCategoryMapper; + + @Override + public List getListWithAttr() { + return productAttributeCategoryMapper.getListWithAttr(); + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductAttributeServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductAttributeServiceImpl.java new file mode 100644 index 0000000..cbd0daf --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductAttributeServiceImpl.java @@ -0,0 +1,58 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zscat.mallplus.exception.BusinessMallException; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttribute; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeCategory; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductAttributeCategoryMapper; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductAttributeMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductAttributeService; +import com.yxt.yythmall.mallplus.mbg.pms.vo.ProductAttrInfo; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * 商品属性参数表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductAttributeServiceImpl extends ServiceImpl implements IPmsProductAttributeService { + + @Resource + private PmsProductAttributeMapper productAttributeMapper; + @Resource + private PmsProductAttributeCategoryMapper productAttributeCategoryMapper; + + @Override + public List getProductAttrInfo(Long productCategoryId) { + return productAttributeMapper.getProductAttrInfo(productCategoryId); + } + + @Transactional + @Override + public boolean saveAndUpdate(PmsProductAttribute entity) { + int count = productAttributeMapper.selectCount(new QueryWrapper().eq("product_attribute_category_id", entity.getProductAttributeCategoryId()).eq("type", entity.getType())); + if (count >= 3) { + throw new BusinessMallException("规格或者属性数量不能超过3个"); + } + productAttributeMapper.insert(entity); + //新增商品属性以后需要更新商品属性分类数量 + + PmsProductAttributeCategory pmsProductAttributeCategory = productAttributeCategoryMapper.selectById(entity.getProductAttributeCategoryId()); + if (entity.getType() == 0) { + pmsProductAttributeCategory.setAttributeCount(pmsProductAttributeCategory.getAttributeCount() + 1); + } else if (entity.getType() == 1) { + pmsProductAttributeCategory.setParamCount(pmsProductAttributeCategory.getParamCount() + 1); + } + productAttributeCategoryMapper.updateById(pmsProductAttributeCategory); + return true; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductAttributeValueServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductAttributeValueServiceImpl.java new file mode 100644 index 0000000..b2f82f6 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductAttributeValueServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeValue; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductAttributeValueMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductAttributeValueService; +import org.springframework.stereotype.Service; + +/** + *

+ * 存储产品参数信息的表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductAttributeValueServiceImpl extends ServiceImpl implements IPmsProductAttributeValueService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductCategoryAttributeRelationServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductCategoryAttributeRelationServiceImpl.java new file mode 100644 index 0000000..1c40999 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductCategoryAttributeRelationServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategoryAttributeRelation; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductCategoryAttributeRelationMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductCategoryAttributeRelationService; +import org.springframework.stereotype.Service; + +/** + *

+ * 产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类) 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductCategoryAttributeRelationServiceImpl extends ServiceImpl implements IPmsProductCategoryAttributeRelationService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductCategoryServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductCategoryServiceImpl.java new file mode 100644 index 0000000..27fab17 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductCategoryServiceImpl.java @@ -0,0 +1,150 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProduct; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategory; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategoryAttributeRelation; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductCategoryAttributeRelationMapper; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductCategoryMapper; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductCategoryAttributeRelationService; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductCategoryService; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductCategoryWithChildrenItem; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + *

+ * 产品分类 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductCategoryServiceImpl extends ServiceImpl implements IPmsProductCategoryService { + + @Resource + private PmsProductCategoryMapper categoryMapper; + @Resource + private PmsProductMapper productMapper; + @Resource + private IPmsProductCategoryAttributeRelationService pmsProductCategoryAttributeRelationService; + @Resource + private PmsProductCategoryAttributeRelationMapper productCategoryAttributeRelationMapper; + + @Override + public List listWithChildren() { + return categoryMapper.listWithChildren(); + } + + @Override + public int updateNavStatus(List ids, Integer navStatus) { + PmsProductCategory productCategory = new PmsProductCategory(); + productCategory.setNavStatus(navStatus); + return categoryMapper.update(productCategory, new QueryWrapper().in("id", ids)); + } + + @Override + public int updateShowStatus(List ids, Integer showStatus) { + PmsProductCategory productCategory = new PmsProductCategory(); + productCategory.setShowStatus(showStatus); + return categoryMapper.update(productCategory, new QueryWrapper().in("id", ids)); + } + + @Override + public int updateIndexStatus(List ids, Integer indexStatus) { + PmsProductCategory productCategory = new PmsProductCategory(); + productCategory.setIndexStatus(indexStatus); + return categoryMapper.update(productCategory, new QueryWrapper().in("id", ids)); + } + + @Override + public boolean updateAnd(PmsProductCategory entity) { + PmsProductCategory productCategory = new PmsProductCategory(); + setCategoryLevel(entity); + //更新商品分类时要更新商品中的名称 + PmsProduct product = new PmsProduct(); + product.setProductCategoryName(entity.getName()); + + productMapper.update(product, new QueryWrapper().eq("product_category_id", entity.getId())); + //同时更新筛选属性的信息 + if (!CollectionUtils.isEmpty(entity.getProductAttributeIdList())) { + + productCategoryAttributeRelationMapper.delete(new QueryWrapper<>(new PmsProductCategoryAttributeRelation()).eq("product_category_id", entity.getId())); + insertRelationList(entity.getId(), entity.getProductAttributeIdList()); + } else { + productCategoryAttributeRelationMapper.delete(new QueryWrapper<>(new PmsProductCategoryAttributeRelation()).eq("product_category_id", entity.getId())); + + } + categoryMapper.updateById(entity); + return true; + } + + @Override + public boolean saveAnd(PmsProductCategory entity) { + PmsProductCategory productCategory = new PmsProductCategory(); + productCategory.setProductCount(0); + BeanUtils.copyProperties(entity, productCategory); + //没有父分类时为一级分类 + setCategoryLevel(productCategory); + int count = categoryMapper.insert(productCategory); + //创建筛选属性关联 + List productAttributeIdList = entity.getProductAttributeIdList(); + if (!CollectionUtils.isEmpty(productAttributeIdList)) { + insertRelationList(productCategory.getId(), productAttributeIdList); + } + return true; + } + + @Override + public int selectCountByNameAndLevel(Long parentId, String name) { + return baseMapper.selectCountByNameAndLevel(parentId,name); + } + + @Override + public int selectCountByNameAndLevelId(Long parentId, String name, Long id) { + return baseMapper.selectCountByNameAndLevelId(parentId,name,id); + } + + /** + * 批量插入商品分类与筛选属性关系表 + * + * @param productCategoryId 商品分类id + * @param productAttributeIdList 相关商品筛选属性id集合 + */ + private void insertRelationList(Long productCategoryId, List productAttributeIdList) { + List relationList = new ArrayList<>(); + for (Long productAttrId : productAttributeIdList) { + PmsProductCategoryAttributeRelation relation = new PmsProductCategoryAttributeRelation(); + relation.setProductAttributeId(productAttrId); + relation.setProductCategoryId(productCategoryId); + relationList.add(relation); + } + pmsProductCategoryAttributeRelationService.saveBatch(relationList); + } + + /** + * 根据分类的parentId设置分类的level + */ + private void setCategoryLevel(PmsProductCategory productCategory) { + //没有父分类时为一级分类 + if (productCategory.getParentId() == null || productCategory.getParentId() == 0) { + productCategory.setLevel(0); + } else { + //有父分类时选择根据父分类level设置 + PmsProductCategory parentCategory = categoryMapper.selectById(productCategory.getParentId()); + if (parentCategory != null) { + productCategory.setLevel(parentCategory.getLevel() + 1); + } else { + productCategory.setLevel(0); + } + } + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductConsultServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductConsultServiceImpl.java new file mode 100644 index 0000000..bad9ab6 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductConsultServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductConsult; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductConsultMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductConsultService; +import org.springframework.stereotype.Service; + +/** + *

+ * 产品咨询表 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductConsultServiceImpl extends ServiceImpl implements IPmsProductConsultService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductFullReductionServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductFullReductionServiceImpl.java new file mode 100644 index 0000000..627c085 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductFullReductionServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductFullReduction; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductFullReductionMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductFullReductionService; +import org.springframework.stereotype.Service; + +/** + *

+ * 产品满减表(只针对同商品) 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductFullReductionServiceImpl extends ServiceImpl implements IPmsProductFullReductionService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductLadderServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductLadderServiceImpl.java new file mode 100644 index 0000000..a3e65f4 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductLadderServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductLadder; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductLadderMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductLadderService; +import org.springframework.stereotype.Service; + +/** + *

+ * 产品阶梯价格表(只针对同商品) 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductLadderServiceImpl extends ServiceImpl implements IPmsProductLadderService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductOperateLogServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductOperateLogServiceImpl.java new file mode 100644 index 0000000..9483fdf --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductOperateLogServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductOperateLog; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductOperateLogMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductOperateLogService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductOperateLogServiceImpl extends ServiceImpl implements IPmsProductOperateLogService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductServiceImpl.java new file mode 100644 index 0000000..c5ce402 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductServiceImpl.java @@ -0,0 +1,376 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +//import com.zscat.mallplus.cms.service.ICmsPrefrenceAreaProductRelationService; +//import com.zscat.mallplus.cms.service.ICmsSubjectProductRelationService; +import com.yxt.yythmall.mallplus.mbg.pms.entity.*; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.*; +import com.yxt.yythmall.mallplus.biz.pms.service.*; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductParam; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductResult; +//import com.zscat.mallplus.sys.entity.SysUser; +//import com.zscat.mallplus.ums.service.RedisService; +import com.yxt.yythmall.mallplus.biz.util.DateUtils; +import com.yxt.yythmall.mallplus.biz.util.JsonUtil; +import com.yxt.yythmall.mallplus.biz.util.UserUtils; +import com.zscat.mallplus.utils.IdWorker; +import com.zscat.mallplus.utils.ValidatorUtils; +import com.zscat.mallplus.vo.Rediskey; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import java.lang.reflect.Method; +import java.text.SimpleDateFormat; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +/** + *

+ * 商品信息 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Slf4j +@Service +public class PmsProductServiceImpl extends ServiceImpl implements IPmsProductService { + + @Resource + private PmsProductMapper productMapper; + @Resource + private IPmsMemberPriceService memberPriceDao; + @Resource + private PmsMemberPriceMapper memberPriceMapper; + @Resource + private IPmsProductLadderService productLadderDao; + @Resource + private PmsProductLadderMapper productLadderMapper; + @Resource + private IPmsProductFullReductionService productFullReductionDao; + @Resource + private PmsProductFullReductionMapper productFullReductionMapper; + @Resource + private IPmsSkuStockService skuStockDao; + @Resource + private PmsSkuStockMapper skuStockMapper; + @Resource + private IPmsProductAttributeValueService productAttributeValueDao; + @Resource + private PmsProductAttributeValueMapper productAttributeValueMapper; +// @Resource +// private ICmsSubjectProductRelationService subjectProductRelationDao; + @Resource + private CmsSubjectProductRelationMapper subjectProductRelationMapper; +// @Resource +// private ICmsPrefrenceAreaProductRelationService prefrenceAreaProductRelationDao; + @Resource + private CmsPrefrenceAreaProductRelationMapper prefrenceAreaProductRelationMapper; + + @Resource + private PmsProductVertifyRecordMapper productVertifyRecordDao; + + @Resource + private PmsProductVertifyRecordMapper productVertifyRecordMapper; +// @Resource +// private RedisService redisService; + + @Override + public int create(PmsProductParam productParam) { + int count; + //创建商品 + PmsProduct product = productParam; + product.setCreateTime(new Date()); + product.setId(null); + //处理sku的编码 + handleSkuStockCode(productParam.getSkuStockList(), product); + if (ValidatorUtils.isEmpty(product.getProductSn())) { + product.setProductSn(IdWorker.getId() + ""); + } + if (ValidatorUtils.empty(product.getExpireTime())) { + product.setExpireTime(DateUtils.strToDate(DateUtils.addDay(new Date(), 5))); + } + if (ValidatorUtils.empty(product.getOriginalPrice())) { + product.setOriginalPrice(product.getPrice()); + } + if (ValidatorUtils.empty(product.getUnit())) { + product.setUnit("件"); + } +// SysUser user = UserUtils.getCurrentMember(); +// product.setStoreName(user.getStoreName()); + //product.setStoreId(user.getStoreId()); + if (ValidatorUtils.empty(product.getAlbumPics())) { + product.setAlbumPics(product.getPic()); + } + /* Long[] tagList = productParam.getTagLists(); + String tags=null; + if(tagList!=null && tagList.length>0){ + for (Long tag:tagList){ + tags=tags+tag+","; + } + tags.substring(0,tags.length()-1); + } + product.setTags(tags);*/ + productMapper.insert(product); + //根据促销类型设置价格:、阶梯价格、满减价格 + Long productId = product.getId(); + //会员价格 + // relateAndInsertList(memberPriceDao, productParam.getMemberPriceList(), productId); + //阶梯价格 + // relateAndInsertList(productLadderDao, productParam.getProductLadderList(), productId); + //满减价格 + // relateAndInsertList(productFullReductionDao, productParam.getProductFullReductionList(), productId); + + //添加sku库存信息 + relateAndInsertList(skuStockDao, productParam.getSkuStockList(), productId); + //添加商品参数,添加自定义商品规格 + relateAndInsertList(productAttributeValueDao, productParam.getProductAttributeValueList(), productId); + //关联专题 + // relateAndInsertList(subjectProductRelationDao, productParam.getSubjectProductRelationList(), productId); + //关联优选 + // relateAndInsertList(prefrenceAreaProductRelationDao, productParam.getPrefrenceAreaProductRelationList(), productId); + //关联专题 + +// if (!CollectionUtils.isEmpty(productParam.getSubjectProductRelationList())) { +// for (CmsSubjectProductRelation relation : productParam.getSubjectProductRelationList()) { +// relation.setProductId(productId); +// subjectProductRelationDao.save(relation); +// } +// } +// //关联优选 +// if (!CollectionUtils.isEmpty(productParam.getPrefrenceAreaProductRelationList())) { +// for (CmsPrefrenceAreaProductRelation relation : productParam.getPrefrenceAreaProductRelationList()) { +// relation.setProductId(productId); +// prefrenceAreaProductRelationDao.save(relation); +// } +// } + count = 1; +// redisService.set(String.format(Rediskey.GOODSDETAIL, product.getId()), JsonUtil.objectToJson(productParam)); + return count; + } + + private void handleSkuStockCode(List skuStockList, PmsProduct product) { + if (CollectionUtils.isEmpty(skuStockList)) return; + int stock = 0; + for (int i = 0; i < skuStockList.size(); i++) { + PmsSkuStock skuStock = skuStockList.get(i); + skuStock.setProductName(product.getName()); + if (StringUtils.isEmpty(skuStock.getSkuCode())) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); + StringBuilder sb = new StringBuilder(); + //日期 + sb.append(sdf.format(new Date())); + //四位商品id + sb.append(String.format("%04d", product.getProductCategoryId())); + //三位索引id + sb.append(String.format("%03d", i + 1)); + skuStock.setSkuCode(sb.toString()); + } + if (skuStock.getStock() != null && skuStock.getStock() > 0) { + stock = stock + skuStock.getStock(); + + } + + } + product.setStock(stock); + } + + @Override + public PmsProductResult getUpdateInfo(Long id) { + return productMapper.getUpdateInfo(id); + } + + @Override + public int update(Long id, PmsProductParam productParam) { + + int count; + //更新商品信息 + PmsProduct product = productParam; + product.setId(id); + if (ValidatorUtils.isEmpty(product.getProductSn())) { + product.setProductSn(IdWorker.getId() + ""); + } + handleSkuStockCode(productParam.getSkuStockList(), product); + /* Long[] tagList = productParam.getTagLists(); + String tags=null; + if(tagList!=null && tagList.length>0){ + for (Long tag:tagList){ + tags=tags+tag+","; + } + tags.substring(0,tags.length()-1); + } + product.setTags(tags);*/ + productMapper.updateById(product); +// redisService.remove(String.format(Rediskey.GOODSDETAIL, product.getId())); + //会员价格 + // memberPriceMapper.delete(new QueryWrapper<>(new PmsMemberPrice()).eq("product_id", id)); + // relateAndInsertList(memberPriceDao, productParam.getMemberPriceList(), id); + //阶梯价格 + + productLadderMapper.delete(new QueryWrapper<>(new PmsProductLadder()).eq("product_id", id)); + relateAndInsertList(productLadderDao, productParam.getProductLadderList(), id); + //满减价格 + + productFullReductionMapper.delete(new QueryWrapper<>(new PmsProductFullReduction()).eq("product_id", id)); + relateAndInsertList(productFullReductionDao, productParam.getProductFullReductionList(), id); + //修改sku库存信息 + skuStockMapper.delete(new QueryWrapper<>(new PmsSkuStock()).eq("product_id", id)); + + relateAndInsertList(skuStockDao, productParam.getSkuStockList(), id); + //修改商品参数,添加自定义商品规格 + + productAttributeValueMapper.delete(new QueryWrapper<>(new PmsProductAttributeValue()).eq("product_id", id)); + relateAndInsertList(productAttributeValueDao, productParam.getProductAttributeValueList(), id); + + //关联专题 + subjectProductRelationMapper.delete(new QueryWrapper<>(new CmsSubjectProductRelation()).eq("product_id", id)); + // relateAndInsertList(subjectProductRelationDao, productParam.getSubjectProductRelationList(), id); +// if (!CollectionUtils.isEmpty(productParam.getSubjectProductRelationList())) { +// for (CmsSubjectProductRelation relation : productParam.getSubjectProductRelationList()) { +// relation.setProductId(id); +// subjectProductRelationDao.save(relation); +// } +// } + //关联优选 + + prefrenceAreaProductRelationMapper.delete(new QueryWrapper<>(new CmsPrefrenceAreaProductRelation()).eq("product_id", id)); + // relateAndInsertList(prefrenceAreaProductRelationDao, productParam.getPrefrenceAreaProductRelationList(), id); +// if (!CollectionUtils.isEmpty(productParam.getPrefrenceAreaProductRelationList())) { +// for (CmsPrefrenceAreaProductRelation relation : productParam.getPrefrenceAreaProductRelationList()) { +// relation.setProductId(id); +// prefrenceAreaProductRelationDao.save(relation); +// } +// } + count = 1; + +// redisService.set(String.format(Rediskey.GOODSDETAIL, product.getId()), JsonUtil.objectToJson(productParam)); + return count; + } + + + @Override + public int updateVerifyStatus(Long ids, Integer verifyStatus, String detail) { + PmsProduct product = new PmsProduct(); + product.setVerifyStatus(verifyStatus); + int count = productMapper.update(product, new QueryWrapper().eq("id", ids)); + //修改完审核状态后插入审核记录 + + PmsProductVertifyRecord record = new PmsProductVertifyRecord(); + record.setProductId(ids); + record.setCreateTime(new Date()); + record.setDetail(detail); + record.setStatus(verifyStatus); +// record.setVertifyMan(UserUtils.getCurrentMember().getUsername()); + productVertifyRecordMapper.insert(record); +// redisService.remove(String.format(Rediskey.GOODSDETAIL, product.getId())); + return count; + } + + @Override + public int updateisFenxiao(List ids, Integer newStatus) { + PmsProduct record = new PmsProduct(); + record.setIsFenxiao(newStatus); + clerGoodsRedis(ids); + return productMapper.update(record, new QueryWrapper().in("id", ids)); + } + + @Override + public int updateisVip(List ids, Integer newStatus) { + PmsProduct record = new PmsProduct(); + record.setIsVip(newStatus); + clerGoodsRedis(ids); + return productMapper.update(record, new QueryWrapper().in("id", ids)); + } + + @Override + public int updatePublishStatus(List ids, Integer publishStatus) { + PmsProduct record = new PmsProduct(); + record.setPublishStatus(publishStatus); + clerGoodsRedis(ids); + return productMapper.update(record, new QueryWrapper().in("id", ids)); + } + + public void clerGoodsRedis(List ids) { + for (Long id : ids) { +// redisService.remove(String.format(Rediskey.GOODSDETAIL, id)); + } + } + + @Override + public int updateRecommendStatus(List ids, Integer recommendStatus) { + PmsProduct record = new PmsProduct(); + record.setRecommandStatus(recommendStatus); + clerGoodsRedis(ids); + return productMapper.update(record, new QueryWrapper().in("id", ids)); + } + + @Override + public int updateNewStatus(List ids, Integer newStatus) { + PmsProduct record = new PmsProduct(); + record.setNewStatus(newStatus); + clerGoodsRedis(ids); + return productMapper.update(record, new QueryWrapper().in("id", ids)); + } + + @Override + public int updateDeleteStatus(List ids, Integer deleteStatus) { + PmsProduct record = new PmsProduct(); + record.setDeleteStatus(deleteStatus); + clerGoodsRedis(ids); + return productMapper.update(record, new QueryWrapper().in("id", ids)); + } + + @Override + public List list(String keyword) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("delete_status", 1); + + if (!StringUtils.isEmpty(keyword)) { + queryWrapper.like("name", keyword); + + } + return productMapper.selectList(queryWrapper); + } + + @Override + public List getProductVertifyRecord(Long id) { + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("product_id", id); + + return productVertifyRecordMapper.selectList(queryWrapper); + } + + + /** + * 建立和插入关系表操作 + * + * @param dao 可以操作的dao + * @param dataList 要插入的数据 + * @param productId 建立关系的id + */ + private void relateAndInsertList(Object dao, List dataList, Long productId) { + try { + if (CollectionUtils.isEmpty(dataList)) return; + for (Object item : dataList) { + Method setId = item.getClass().getMethod("setId", Long.class); + setId.invoke(item, (Long) null); + Method setProductId = item.getClass().getMethod("setProductId", Long.class); + setProductId.invoke(item, productId); + } + Method insertList = dao.getClass().getMethod("saveBatch", Collection.class); + insertList.invoke(dao, dataList); + } catch (Exception e) { + + log.warn("创建产品出错:{}", e.getMessage()); + throw new RuntimeException(e.getMessage()); + } + } + +} + + diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductVertifyRecordServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductVertifyRecordServiceImpl.java new file mode 100644 index 0000000..db6ab04 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsProductVertifyRecordServiceImpl.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductVertifyRecord; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsProductVertifyRecordMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsProductVertifyRecordService; +import org.springframework.stereotype.Service; + +/** + *

+ * 商品审核记录 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsProductVertifyRecordServiceImpl extends ServiceImpl implements IPmsProductVertifyRecordService { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsSkuStockServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsSkuStockServiceImpl.java new file mode 100644 index 0000000..74363b0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsSkuStockServiceImpl.java @@ -0,0 +1,44 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSkuStock; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsSkuStockMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsSkuStockService; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import java.util.List; + +/** + *

+ * sku的库存 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Service +public class PmsSkuStockServiceImpl extends ServiceImpl implements IPmsSkuStockService { + @Resource + private PmsSkuStockMapper skuStockMapper; + + + @Override + public List getList(Long pid, String keyword) { + QueryWrapper q = new QueryWrapper(); + q.eq("product_id", pid); + + if (!StringUtils.isEmpty(keyword)) { + q.like("sku_code", keyword); + } + return skuStockMapper.selectList(q); + } + + @Override + public int update(Long pid, List skuStockList) { + return skuStockMapper.replaceList(skuStockList); + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsSmallNaviconCategoryServiceImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsSmallNaviconCategoryServiceImpl.java new file mode 100644 index 0000000..2969069 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/pms/service/impl/PmsSmallNaviconCategoryServiceImpl.java @@ -0,0 +1,19 @@ +package com.yxt.yythmall.mallplus.biz.pms.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSmallNaviconCategory; +import com.yxt.yythmall.mallplus.mbg.pms.mapper.PmsSmallNaviconCategoryMapper; +import com.yxt.yythmall.mallplus.biz.pms.service.IPmsSmallNaviconCategoryService; +import org.springframework.stereotype.Service; + +/** + *

+ * 服务实现类 + *

+ * + * @author zscat + * @since 2019-04-14 + */ +@Service +public class PmsSmallNaviconCategoryServiceImpl extends ServiceImpl implements IPmsSmallNaviconCategoryService { +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/BuildTree.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/BuildTree.java new file mode 100644 index 0000000..40b0821 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/BuildTree.java @@ -0,0 +1,118 @@ +package com.yxt.yythmall.mallplus.biz.util; + + +//import com.zscat.mallplus.bo.Tree; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class BuildTree { + +// public static Tree build(List> nodes) { +// +// if (nodes == null) { +// return null; +// } +// List> topNodes = new ArrayList>(); +// +// for (Tree children : nodes) { +// +// String pid = children.getParentId(); +// if (pid == null || "0".equals(pid)) { +// topNodes.add(children); +// +// continue; +// } +// +// for (Tree parent : nodes) { +// String id = parent.getId(); +// if (id != null && id.equals(pid)) { +// parent.getChildren().add(children); +// children.setHasParent(true); +// parent.setChildren(true); +// continue; +// } +// } +// +// } +// +// Tree root = new Tree(); +// if (topNodes.size() == 1) { +// root = topNodes.get(0); +// } else { +// root.setId("-1"); +// root.setParentId(""); +// root.setHasParent(false); +// root.setChildren(true); +// root.setChecked(true); +// root.setChildren(topNodes); +// root.setTitle("顶级节点"); +// Map state = new HashMap<>(16); +// state.put("opened", true); +// root.setState(state); +// } +// +// return root; +// } +// +// public static List> buildList(List> nodes, String idParam) { +// if (nodes == null) { +// return null; +// } +// List> topNodes = new ArrayList>(); +// +// for (Tree children : nodes) { +// +// String pid = children.getParentId(); +// if (pid == null || idParam.equals(pid)) { +// topNodes.add(children); +// continue; +// } +// +// for (Tree parent : nodes) { +// String id = parent.getId(); +// if (id != null && id.equals(pid)) { +// parent.getChildren().add(children); +// children.setHasParent(true); +// parent.setChildren(true); +// +// continue; +// } +// } +// +// } +// return topNodes; +// } +// +// public static List buildList1(List nodes, String idParam) { +// if (nodes == null) { +// return null; +// } +// List topNodes = new ArrayList(); +// +// for (Tree children : nodes) { +// +// String pid = children.getParentId(); +// if (pid == null || idParam.equals(pid)) { +// topNodes.add(children); +// +// continue; +// } +// +// for (Tree parent : nodes) { +// String id = parent.getId(); +// if (id != null && id.equals(pid)) { +// parent.getChildren().add(children); +// children.setHasParent(true); +// parent.setChildren(true); +// +// continue; +// } +// } +// +// } +// return topNodes; +// } +} \ No newline at end of file diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/ColUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/ColUtil.java new file mode 100644 index 0000000..6917a2c --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/ColUtil.java @@ -0,0 +1,38 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.ConfigurationException; +import org.apache.commons.configuration.PropertiesConfiguration; + +/** + * sql字段转java + * + * @author mallplus + * @date 2019-01-03 + */ +public class ColUtil { + + /** + * 转换mysql数据类型为java数据类型 + * + * @param type 数据库字段类型 + * @return String + */ + static String cloToJava(String type) { + Configuration config = getConfig(); + assert config != null; + return config.getString(type, "unknowType"); + } + + /** + * 获取配置信息 + */ + public static PropertiesConfiguration getConfig() { + try { + return new PropertiesConfiguration("generator.properties"); + } catch (ConfigurationException e) { + e.printStackTrace(); + } + return null; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/DateUtils.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/DateUtils.java new file mode 100644 index 0000000..83984b9 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/DateUtils.java @@ -0,0 +1,426 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.StringUtils; + +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Calendar; +import java.util.Date; + +/** + * 日期处理 + */ +public class DateUtils { + /** + * 时间格式(yyyy-MM-dd) + */ + public final static String DATE_PATTERN = "yyyy-MM-dd"; + /** + * 时间格式(yyyy-MM-dd HH:mm:ss) + */ + public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss"; + private final static Logger logger = LoggerFactory.getLogger(DateUtils.class); + private static final DateFormat FORMATER_DATE_YMD = new SimpleDateFormat("yyyy-MM-dd"); + /** + * 无分隔符日期格式 "yyyyMMddHHmmssSSS" + */ + public static String DATE_TIME_PATTERN_YYYY_MM_DD_HH_MM_SS_SSS = "yyyyMMddHHmmssSSS"; + // 日期转换格式数组 + public static String[][] regularExp = new String[][]{ + + // 默认格式 + {"\\d{4}-((([0][1,3-9]|[1][0-2]|[1-9])-([0-2]\\d|[3][0,1]|[1-9]))|((02|2)-(([1-9])|[0-2]\\d)))\\s+([0,1]\\d|[2][0-3]|\\d):([0-5]\\d|\\d):([0-5]\\d|\\d)", + DATE_TIME_PATTERN}, + // 仅日期格式 年月日 + {"\\d{4}-((([0][1,3-9]|[1][0-2]|[1-9])-([0-2]\\d|[3][0,1]|[1-9]))|((02|2)-(([1-9])|[0-2]\\d)))", + DATE_PATTERN}, + // 带毫秒格式 + {"\\d{4}((([0][1,3-9]|[1][0-2]|[1-9])([0-2]\\d|[3][0,1]|[1-9]))|((02|2)(([1-9])|[0-2]\\d)))([0,1]\\d|[2][0-3])([0-5]\\d|\\d)([0-5]\\d|\\d)\\d{1,3}", + DATE_TIME_PATTERN_YYYY_MM_DD_HH_MM_SS_SSS} + }; + private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); + private static Calendar calendar = Calendar.getInstance(); + + public static Date toDate(String d) throws Exception { + return FORMATER_DATE_YMD.parse(d); + } + + public static String format(Date date) { + return format(date, DATE_PATTERN); + } + + public static String format(Date date, String pattern) { + if (date != null) { + SimpleDateFormat df = new SimpleDateFormat(pattern); + return df.format(date); + } + return null; + } + + /** + * 计算距离现在多久,非精确 + * + * @param date + * @return + */ + public static String getTimeBefore(Date date) { + Date now = new Date(); + long l = now.getTime() - date.getTime(); + long day = l / (24 * 60 * 60 * 1000); + long hour = (l / (60 * 60 * 1000) - day * 24); + long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60); + long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); + String r = ""; + if (day > 0) { + r += day + "天"; + } else if (hour > 0) { + r += hour + "小时"; + } else if (min > 0) { + r += min + "分"; + } else if (s > 0) { + r += s + "秒"; + } + r += "前"; + return r; + } + + /** + * 计算距离现在多久,精确 + * + * @param date + * @return + */ + public static String getTimeBeforeAccurate(Date date) { + Date now = new Date(); + long l = now.getTime() - date.getTime(); + long day = l / (24 * 60 * 60 * 1000); + long hour = (l / (60 * 60 * 1000) - day * 24); + long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60); + long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60); + String r = ""; + if (day > 0) { + r += day + "天"; + } + if (hour > 0) { + r += hour + "小时"; + } + if (min > 0) { + r += min + "分"; + } + if (s > 0) { + r += s + "秒"; + } + r += "前"; + return r; + } + + public static String addDay(Date s, int n) { + + SimpleDateFormat FORMATER_DATE_YMD = new SimpleDateFormat("yyyy-MM-dd"); + Calendar cd = Calendar.getInstance(); + cd.setTime(s); + cd.add(Calendar.DATE, n);//增加一天 + //cd.add(Calendar.MONTH, n);//增加一个月 + return FORMATER_DATE_YMD.format(cd.getTime()); + + } + + /** + * 转换为时间类型格式 + * + * @param strDate 日期 + * @return + */ + public static Date strToDate(String strDate) { + try { + String strType = getDateFormat(strDate); + SimpleDateFormat sf = new SimpleDateFormat(strType); + return new Date((sf.parse(strDate).getTime())); + } catch (Exception e) { + return null; + } + } + + /** + * 根据传入的日期格式字符串,获取日期的格式 + * + * @return 秒 + */ + public static String getDateFormat(String date_str) { + String style = null; + if (StringUtils.isEmpty(date_str)) { + return null; + } + boolean b = false; + for (int i = 0; i < regularExp.length; i++) { + b = date_str.matches(regularExp[i][0]); + if (b) { + style = regularExp[i][1]; + } + } + if (StringUtils.isEmpty(style)) { + logger.info("date_str:" + date_str); + logger.info("日期格式获取出错,未识别的日期格式"); + } + return style; + } + + /** + * 返回当前时间的"yyyy-MM-dd"格式字符串 + */ + public static String currentDay() { + DateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); + return formater.format(new Date()); + } + + public static int calculateDaysNew(Date first, Date second) { + int days = 0; + + if (second.before(first)) { + Calendar calendar1 = Calendar.getInstance(); + calendar1.setTime(second); + calendar1.set(Calendar.HOUR_OF_DAY, 0); + calendar1.set(Calendar.MINUTE, 0); + calendar1.set(Calendar.SECOND, 0); + calendar1.set(Calendar.MILLISECOND, 0); + Calendar calendar2 = Calendar.getInstance(); + calendar2.setTime(first); + calendar2.set(Calendar.HOUR_OF_DAY, 0); + calendar2.set(Calendar.MINUTE, 0); + calendar2.set(Calendar.SECOND, 0); + calendar2.set(Calendar.MILLISECOND, 0); + while (calendar1.compareTo(calendar2) != 0) { + calendar1.add(Calendar.DAY_OF_YEAR, 1); + days++; + } + days = -days; + } else { + Calendar calendar1 = Calendar.getInstance(); + calendar1.setTime(first); + calendar1.set(Calendar.HOUR_OF_DAY, 0); + calendar1.set(Calendar.MINUTE, 0); + calendar1.set(Calendar.SECOND, 0); + calendar1.set(Calendar.MILLISECOND, 0); + Calendar calendar2 = Calendar.getInstance(); + calendar2.setTime(second); + calendar2.set(Calendar.HOUR_OF_DAY, 0); + calendar2.set(Calendar.MINUTE, 0); + calendar2.set(Calendar.SECOND, 0); + calendar2.set(Calendar.MILLISECOND, 0); + while (calendar1.compareTo(calendar2) != 0) { + calendar1.add(Calendar.DAY_OF_YEAR, 1); + days++; + } + } + + return days; + } + + /** + * 获取当月的第一天 + * + * @return + */ + public static String geFirstDayByMonth() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天 + return FORMATER_DATE_YMD.format(c.getTime()); + } + + /** + * 获取当月的第一天 + * + * @return + */ + public static Date geFirstDayDateByMonth() { + Calendar c = Calendar.getInstance(); + c.add(Calendar.MONTH, 0); + c.set(Calendar.DAY_OF_MONTH, 1);//设置为1号,当前日期既为本月第一天 + return c.getTime(); + } + + /** + * 获取当月的最后一天 + * + * @return + */ + public static String geLastDayByMonth() { + Calendar ca = Calendar.getInstance(); + ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); + return FORMATER_DATE_YMD.format(ca.getTime()); + } + + /** + * 获取当前周的第一天: + * + * @return + */ + public static Date getFirstDayOfWeek() { + Calendar cal = Calendar.getInstance(); + try { + cal.setTime(new Date()); + cal.set(Calendar.DAY_OF_WEEK, 1); + } catch (Exception e) { + e.printStackTrace(); + } + + return cal.getTime(); + } + + /** + * 获取当前周最后一天 + * + * @return + */ + public static Date getLastDayOfWeek() { + Calendar cal = Calendar.getInstance(); + + try { + cal.setTime(new Date()); + cal.set(Calendar.DAY_OF_WEEK, 1); + cal.set(Calendar.DATE, cal.get(Calendar.DATE) + 6); + } catch (Exception e) { + e.printStackTrace(); + } + + return cal.getTime(); + } + + /* + 输入日期字符串比如201703,返回当月第一天的Date + */ + public static Date getMinDateMonth(String month) { + try { + Date nowDate = sdf.parse(month); + calendar = Calendar.getInstance(); + calendar.setTime(nowDate); + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); + return calendar.getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + + /* + 输入日期字符串,返回当月最后一天的Date + */ + public static Date getMaxDateMonth(String month) { + try { + Date nowDate = sdf.parse(month); + calendar = Calendar.getInstance(); + calendar.setTime(nowDate); + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + return calendar.getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + public static String getLastMonth() { + LocalDate today = LocalDate.now(); + today = today.minusMonths(1); + DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM"); + return formatters.format(today); + } + + /** + * 上个月最后一天 + */ + public static Date getLastMonthLastDay(){ + + SimpleDateFormat sf=new SimpleDateFormat(DATE_TIME_PATTERN); + + Calendar calendar=Calendar.getInstance(); + + int month=calendar.get(Calendar.MONTH); + + calendar.set(Calendar.MONTH, month-1); + + calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH)); + + return calendar.getTime(); + + } + + /** + * 上个月第一天 + */ + public static Date getLastMonthFirstDay(){ + + SimpleDateFormat format=new SimpleDateFormat(DATE_TIME_PATTERN); + + Calendar calendar=Calendar.getInstance(); + + calendar.add(Calendar.MONTH, -1); + + calendar.set(Calendar.DAY_OF_MONTH, 1); + + return calendar.getTime(); + } + /** + * 获取上周周一(第一天是周一) + * + * @return + */ + public static Date getPreviousMonday() { + Calendar cal = Calendar.getInstance(); + // 将每周第一天设为星期一,默认是星期天 + cal.setFirstDayOfWeek(Calendar.MONDAY); + cal.add(Calendar.DATE, -1 * 7); + cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + return cal.getTime(); + } + /** + * 获取上周周日(第一天是周一) + * @return + */ + public static Date getSunday() { + Calendar cal = Calendar.getInstance(); + //将每周第一天设为星期一,默认是星期天 + cal.setFirstDayOfWeek(Calendar.MONDAY); + cal.add(Calendar.DATE, -1*7); + cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); + + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 59); + cal.set(Calendar.SECOND, 59); + cal.set(Calendar.MILLISECOND, 59); + return cal.getTime(); + } + + + public static void main(String[] args) throws Exception { + getLastMonthFirstDay(); + getLastMonthLastDay(); + SimpleDateFormat format=new SimpleDateFormat(DATE_TIME_PATTERN); + + Calendar calendar=Calendar.getInstance(); + + calendar.add(Calendar.MONTH, -1); + + calendar.set(Calendar.DAY_OF_MONTH, 1); + + System.out.println("上个月第一天:"+format.format(calendar.getTime())); + + + System.out.println(getLastMonth()); + String month = "201705"; + System.out.println(getMinDateMonth(month)); + System.out.println(getMaxDateMonth(month)); + System.out.println(DateUtils.geLastDayByMonth()); + System.out.println(DateUtils.addDay(new Date(), -7)); + System.out.println(DateUtils.calculateDaysNew(DateUtils.toDate(DateUtils.addDay(new Date(), -7)), new Date())); + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/EasyPoiUtils.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/EasyPoiUtils.java new file mode 100644 index 0000000..75cc2e0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/EasyPoiUtils.java @@ -0,0 +1,109 @@ +package com.yxt.yythmall.mallplus.biz.util; + +//import cn.afterturn.easypoi.excel.ExcelExportUtil; +//import cn.afterturn.easypoi.excel.ExcelImportUtil; +//import cn.afterturn.easypoi.excel.entity.ExportParams; +//import cn.afterturn.easypoi.excel.entity.ImportParams; +//import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; +import java.util.Map; + +public final class EasyPoiUtils { + + private EasyPoiUtils() { + } + + private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) { + try { + response.setCharacterEncoding("UTF-8"); + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); + workbook.write(response.getOutputStream()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + +// private static void defaultExport(List dataList, Class clz, String fileName, HttpServletResponse response, ExportParams exportParams) { +// Workbook workbook = ExcelExportUtil.exportExcel(exportParams, clz, dataList); +// if (workbook != null) { +// downLoadExcel(fileName, response, workbook); +// } +// } + +// public static void exportExcel(List dataList, String title, String sheetName, Class clz, String fileName, boolean isCreateHeader, HttpServletResponse response) { +// ExportParams exportParams = new ExportParams(title, sheetName); +// exportParams.setCreateHeadRows(isCreateHeader); +// defaultExport(dataList, clz, fileName, response, exportParams); +// } + +// public static void exportExcel(List dataList, String title, String sheetName, Class clz, String fileName, HttpServletResponse response) { +// defaultExport(dataList, clz, fileName, response, new ExportParams(title, sheetName)); +// } + +// private static void defaultExport(List> dataList, String fileName, HttpServletResponse response) { +// Workbook workbook = ExcelExportUtil.exportExcel(dataList, ExcelType.HSSF); +// if (workbook != null) { +// downLoadExcel(fileName, response, workbook); +// } +// } + +// public static void exportExcel(List> dataList, String fileName, HttpServletResponse response) { +// defaultExport(dataList, fileName, response); +// } + +// public static List importExcel(String filePath, Integer titleRows, Integer headerRows, Class clz) { +// if (StringUtils.isBlank(filePath)) { +// return null; +// } +// +// ImportParams params = new ImportParams(); +// params.setTitleRows(titleRows); +// params.setHeadRows(headerRows); +// +// try { +// return ExcelImportUtil.importExcel(new File(filePath), clz, params); +// } catch (Exception e) { +// throw new RuntimeException(e.getMessage()); +// } +// } + +// public static List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class clz) { +// if (file == null) { +// return null; +// } +// +// ImportParams params = new ImportParams(); +// params.setTitleRows(titleRows); +// params.setHeadRows(headerRows); +// +// try { +// return ExcelImportUtil.importExcel(file.getInputStream(), clz, params); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// } + +// public static List importExcel(MultipartFile file, Class clz) { +// if (file == null) { +// return null; +// } +// +// ImportParams params = new ImportParams(); +// params.setTitleRows(1); +// params.setHeadRows(1); +// try { +// return ExcelImportUtil.importExcel(file.getInputStream(), clz, params); +// } catch (Exception e) { +// throw new RuntimeException(e); +// } +// } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/FileTypeMap.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/FileTypeMap.java new file mode 100644 index 0000000..4a88df1 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/FileTypeMap.java @@ -0,0 +1,27 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import java.util.HashMap; +import java.util.Map; + +/** + * 文件类型

允许上传的类型

+ * + * @author Peter + * @date 2018-4-11 + */ +public class FileTypeMap { + + public static final Map map = new HashMap(9); + + static { + map.put("jpeg", "FFD8FF"); + map.put("jpg", "FFD8FFE0"); + map.put("png", "89504E47"); + map.put("wav", "57415645"); + map.put("avi", "41564920"); + map.put("mp4", "00000020667479706D70"); + map.put("mp3", "49443303000000002176"); + } + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/FileUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/FileUtil.java new file mode 100644 index 0000000..c509e60 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/FileUtil.java @@ -0,0 +1,279 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import cn.hutool.core.codec.Base64; +import cn.hutool.core.io.IoUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.poi.excel.BigExcelWriter; +import cn.hutool.poi.excel.ExcelUtil; +//import com.zscat.mallplus.exception.BusinessMallException; +import org.springframework.web.multipart.MultipartFile; + +import javax.activation.MimetypesFileTypeMap; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.*; +import java.security.MessageDigest; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * File工具类,扩展 hutool 工具包 + * + * @author mallplus + * @date 2018-12-27 + */ +public class FileUtil extends cn.hutool.core.io.FileUtil { + + /** + * 定义GB的计算常量 + */ + private static final int GB = 1024 * 1024 * 1024; + /** + * 定义MB的计算常量 + */ + private static final int MB = 1024 * 1024; + /** + * 定义KB的计算常量 + */ + private static final int KB = 1024; + + /** + * 格式化小数 + */ + private static final DecimalFormat DF = new DecimalFormat("0.00"); + + /** + * MultipartFile转File + */ + public static File toFile(MultipartFile multipartFile) { + // 获取文件名 + String fileName = multipartFile.getOriginalFilename(); + // 获取文件后缀 + String prefix = "." + getExtensionName(fileName); + File file = null; + try { + // 用uuid作为文件名,防止生成的临时文件重复 + file = File.createTempFile(IdUtil.simpleUUID(), prefix); + // MultipartFile to File + multipartFile.transferTo(file); + } catch (IOException e) { + e.printStackTrace(); + } + return file; + } + + /** + * 获取文件扩展名,不带 . + */ + public static String getExtensionName(String filename) { + if ((filename != null) && (filename.length() > 0)) { + int dot = filename.lastIndexOf('.'); + if ((dot > -1) && (dot < (filename.length() - 1))) { + return filename.substring(dot + 1); + } + } + return filename; + } + + /** + * Java文件操作 获取不带扩展名的文件名 + */ + public static String getFileNameNoEx(String filename) { + if ((filename != null) && (filename.length() > 0)) { + int dot = filename.lastIndexOf('.'); + if ((dot > -1) && (dot < (filename.length()))) { + return filename.substring(0, dot); + } + } + return filename; + } + + /** + * 文件大小转换 + */ + public static String getSize(long size) { + String resultSize; + if (size / GB >= 1) { + //如果当前Byte的值大于等于1GB + resultSize = DF.format(size / (float) GB) + "GB "; + } else if (size / MB >= 1) { + //如果当前Byte的值大于等于1MB + resultSize = DF.format(size / (float) MB) + "MB "; + } else if (size / KB >= 1) { + //如果当前Byte的值大于等于1KB + resultSize = DF.format(size / (float) KB) + "KB "; + } else { + resultSize = size + "B "; + } + return resultSize; + } + + /** + * inputStream 转 File + */ + static File inputStreamToFile(InputStream ins, String name) throws Exception { + File file = new File(System.getProperty("java.io.tmpdir") + File.separator + name); + if (file.exists()) { + return file; + } + OutputStream os = new FileOutputStream(file); + int bytesRead; + byte[] buffer = new byte[8192]; + while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) { + os.write(buffer, 0, bytesRead); + } + os.close(); + ins.close(); + return file; + } + + /** + * 将文件名解析成文件的上传路径 + */ + public static File upload(MultipartFile file, String filePath) { + Date date = new Date(); + SimpleDateFormat format = new SimpleDateFormat("yyyyMMddhhmmssS"); + String name = getFileNameNoEx(file.getOriginalFilename()); + String suffix = getExtensionName(file.getOriginalFilename()); + String nowStr = "-" + format.format(date); + try { + String fileName = name + nowStr + "." + suffix; + String path = filePath + fileName; + // getCanonicalFile 可解析正确各种路径 + File dest = new File(path).getCanonicalFile(); + // 检测是否存在目录 + if (!dest.getParentFile().exists()) { + dest.getParentFile().mkdirs(); + } + // 文件写入 + file.transferTo(dest); + return dest; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static String fileToBase64(File file) throws Exception { + FileInputStream inputFile = new FileInputStream(file); + String base64; + byte[] buffer = new byte[(int) file.length()]; + inputFile.read(buffer); + inputFile.close(); + base64 = Base64.encode(buffer); + return base64.replaceAll("[\\s*\t\n\r]", ""); + } + + /** + * 导出excel + */ + public static void downloadExcel(List> list, HttpServletResponse response) throws IOException { + String tempPath = System.getProperty("java.io.tmpdir") + IdUtil.fastSimpleUUID() + ".xlsx"; + File file = new File(tempPath); + BigExcelWriter writer = ExcelUtil.getBigWriter(file); + // 一次性写出内容,使用默认样式,强制输出标题 + writer.write(list, true); + //response为HttpServletResponse对象 + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8"); + //test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码 + response.setHeader("Content-Disposition", "attachment;filename=file.xlsx"); + ServletOutputStream out = response.getOutputStream(); + // 终止后删除临时文件 + file.deleteOnExit(); + writer.flush(out, true); + //此处记得关闭输出Servlet流 + IoUtil.close(out); + } + + public static String getFileType(String type) { + String documents = "txt doc pdf ppt pps xlsx xls docx"; + String music = "mp3 wav wma mpa ram ra aac aif m4a"; + String video = "avi mpg mpe mpeg asf wmv mov qt rm mp4 flv m4v webm ogv ogg"; + String image = "bmp dib pcp dif wmf gif jpg tif eps psd cdr iff tga pcd mpt png jpeg"; + if (image.contains(type)) { + return "图片"; + } else if (documents.contains(type)) { + return "文档"; + } else if (music.contains(type)) { + return "音乐"; + } else if (video.contains(type)) { + return "视频"; + } else { + return "其他"; + } + } + + public static String getFileTypeByMimeType(String type) { + String mimeType = new MimetypesFileTypeMap().getContentType("." + type); + return mimeType.split("/")[0]; + } + + public static void checkSize(long maxSize, long size) { +// if (size > (maxSize * 1024 * 1024)) { +// throw new BusinessMallException("文件超出规定大小"); +// } + } + + /** + * 判断两个文件是否相同 + */ + public static boolean check(File file1, File file2) { + String img1Md5 = getMd5(file1); + String img2Md5 = getMd5(file2); + return img1Md5.equals(img2Md5); + } + + /** + * 判断两个文件是否相同 + */ + public static boolean check(String file1Md5, String file2Md5) { + return file1Md5.equals(file2Md5); + } + + private static byte[] getByte(File file) { + // 得到文件长度 + byte[] b = new byte[(int) file.length()]; + try { + InputStream in = new FileInputStream(file); + try { + in.read(b); + } catch (IOException e) { + e.printStackTrace(); + } + } catch (FileNotFoundException e) { + e.printStackTrace(); + return null; + } + return b; + } + + private static String getMd5(byte[] bytes) { + // 16进制字符 + char[] hexDigits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; + try { + MessageDigest mdTemp = MessageDigest.getInstance("MD5"); + mdTemp.update(bytes); + byte[] md = mdTemp.digest(); + int j = md.length; + char[] str = new char[j * 2]; + int k = 0; + // 移位 输出字符串 + for (byte byte0 : md) { + str[k++] = hexDigits[byte0 >>> 4 & 0xf]; + str[k++] = hexDigits[byte0 & 0xf]; + } + return new String(str); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static String getMd5(File file) { + return getMd5(getByte(file)); + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/FileUtils.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/FileUtils.java new file mode 100644 index 0000000..de2e89b --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/FileUtils.java @@ -0,0 +1,82 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.io.InputStream; + +/** + * 文件工具类 + * + * @author Peter + * @date 2018-4-11 + */ +public class FileUtils { + /** + * 判断文件类型是否合法<>通过魔数判断 + * + * @param file + * @return + */ + public static boolean checkFileMagicNum(final MultipartFile file) { + if (file == null) { + return false; + } + // 获取文件上传时带的后缀 + String fileName = file.getOriginalFilename(); + String suffix = fileName.substring(fileName.lastIndexOf(".") + 1); + // 由文件后缀得到的魔数,由于后缀可以伪造,所以该魔数不一定是文件的真实魔数 + String magicNum = FileTypeMap.map.get(suffix.toLowerCase()); + // 取不到魔数,说明该文件类型不能上传 + if (magicNum == null) { + return false; + } + // 取到魔数之后,判断与文件的是否相同 + byte[] b = new byte[30]; + try { + InputStream in = file.getInputStream(); + // 读取上传文件的前30个字节 + in.read(b, 0, 30); + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + String realMagicNum = bytesToHex(b); + // 判断文件开始的一段内容是否是匹配的魔数 + if (realMagicNum.toUpperCase().startsWith(magicNum)) { + return true; + } + return false; + } + + /** + * 将字节数组转换成16进制字符串 + * + * @param src + * @return + */ + public static String bytesToHex(final byte[] src) { + StringBuilder stringBuilder = new StringBuilder(""); + if (src == null || src.length <= 0) { + return null; + } + for (int i = 0; i < src.length; i++) { + int v = src[i] & 0xFF; + String hv = Integer.toHexString(v); + if (hv.length() < 2) { + stringBuilder.append(0); + } + stringBuilder.append(hv); + } + return stringBuilder.toString(); + } + + public static String getSuffix(final MultipartFile file) { + if (file == null || file.getSize() == 0) { + return null; + } + String fileName = file.getOriginalFilename(); + return fileName.substring(fileName.lastIndexOf(".") + 1); + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/GenUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/GenUtil.java new file mode 100644 index 0000000..f81f2d3 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/GenUtil.java @@ -0,0 +1,315 @@ +//package com.zscat.mallplus.util; +// +//import cn.hutool.core.util.StrUtil; +//import cn.hutool.extra.template.*; +//import com.zscat.mallplus.bo.ColumnInfo; +//import com.zscat.mallplus.sys.entity.GenConfig; +//import lombok.extern.slf4j.Slf4j; +// +//import java.io.File; +//import java.io.FileWriter; +//import java.io.IOException; +//import java.io.Writer; +//import java.time.LocalDate; +//import java.util.ArrayList; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +///** +// * 代码生成 +// * +// * @author mallplus +// * @date 2019-01-02 +// */ +//@Slf4j +//public class GenUtil { +// +// private static final String TIMESTAMP = "Timestamp"; +// +// private static final String BIGDECIMAL = "BigDecimal"; +// +// private static final String PK = "PRI"; +// +// private static final String EXTRA = "auto_increment"; +// +// /** +// * 获取后端代码模板名称 +// * +// * @return List +// */ +// private static List getAdminTemplateNames() { +// List templateNames = new ArrayList<>(); +// templateNames.add("Entity"); +// +// templateNames.add("Mapper"); +// +// templateNames.add("Service"); +// templateNames.add("ServiceImpl"); +// templateNames.add("menu.sql"); +// templateNames.add("Controller"); +// return templateNames; +// } +// +// /** +// * 获取前端代码模板名称 +// * +// * @return List +// */ +// private static List getFrontTemplateNames() { +// List templateNames = new ArrayList<>(); +// templateNames.add("api"); +// templateNames.add("index"); +// templateNames.add("eForm"); +// templateNames.add("add"); +// templateNames.add("update"); +// return templateNames; +// } +// /** +// * 获取前端代码模板名称 +// * +// * @return List +// */ +// private static List getFrontTemplateNames1() { +// List templateNames = new ArrayList<>(); +// templateNames.add("api"); +// templateNames.add("index"); +// templateNames.add("eForm"); +// templateNames.add("add"); +// templateNames.add("update"); +// return templateNames; +// } +// /** +// * 生成代码 +// * +// * @param columnInfos 表元数据 +// */ +// public static void generatorCode(List columnInfos, GenConfig genConfig, String tableName) throws IOException { +// Map map = new HashMap<>(); +// map.put("package", genConfig.getPack()); +// map.put("moduleName", genConfig.getModuleName()); +// map.put("author", genConfig.getAuthor()); +// map.put("date", LocalDate.now().toString()); +// map.put("tableName", tableName); +// map.put("prefix", genConfig.getPrefix()); +// +// String className = StringUtils.toCapitalizeCamelCase(tableName); +// String changeClassName = StringUtils.toCamelCase(tableName); +// +// // 判断是否去除表前缀 +// if (StringUtils.isNotEmpty(genConfig.getPrefix())) { +// className = StringUtils.toCapitalizeCamelCase(StrUtil.removePrefix(tableName, genConfig.getPrefix())); +// changeClassName = StringUtils.toCamelCase(StrUtil.removePrefix(tableName, genConfig.getPrefix())); +// } +// map.put("className", className); +// map.put("upperCaseClassName", className.toUpperCase()); +// map.put("changeClassName", changeClassName); +// map.put("hasTimestamp", false); +// map.put("queryHasTimestamp", false); +// map.put("queryHasBigDecimal", false); +// map.put("hasBigDecimal", false); +// map.put("hasQuery", false); +// map.put("auto", false); +// +// List> columns = new ArrayList<>(); +// List> queryColumns = new ArrayList<>(); +// for (ColumnInfo column : columnInfos) { +// Map listMap = new HashMap<>(); +// listMap.put("columnComment", column.getColumnComment()); +// listMap.put("columnKey", column.getColumnKey()); +// +// String colType = ColUtil.cloToJava(column.getColumnType().toString()); +// String changeColumnName = StringUtils.toCamelCase(column.getColumnName().toString()); +// String capitalColumnName = StringUtils.toCapitalizeCamelCase(column.getColumnName().toString()); +// if (PK.equals(column.getColumnKey())) { +// map.put("pkColumnType", colType); +// map.put("pkChangeColName", changeColumnName); +// map.put("pkCapitalColName", capitalColumnName); +// } +// if (TIMESTAMP.equals(colType)) { +// map.put("hasTimestamp", true); +// } +// if (BIGDECIMAL.equals(colType)) { +// map.put("hasBigDecimal", true); +// } +// if (EXTRA.equals(column.getExtra())) { +// map.put("auto", true); +// } +// listMap.put("columnType", colType); +// listMap.put("columnName", column.getColumnName()); +// listMap.put("isNullable", column.getIsNullable()); +// listMap.put("columnShow", column.getColumnShow()); +// listMap.put("changeColumnName", changeColumnName); +// listMap.put("capitalColumnName", capitalColumnName); +// +// // 判断是否有查询,如有则把查询的字段set进columnQuery +// if (!StringUtils.isBlank(column.getColumnQuery())) { +// listMap.put("columnQuery", column.getColumnQuery()); +// map.put("hasQuery", true); +// if (TIMESTAMP.equals(colType)) { +// map.put("queryHasTimestamp", true); +// } +// if (BIGDECIMAL.equals(colType)) { +// map.put("queryHasBigDecimal", true); +// } +// queryColumns.add(listMap); +// } +// columns.add(listMap); +// } +// map.put("columns", columns); +// map.put("queryColumns", queryColumns); +// TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("template", TemplateConfig.ResourceMode.CLASSPATH)); +// +// // 生成后端代码 +// List templates = getAdminTemplateNames(); +// for (String templateName : templates) { +// Template template = engine.getTemplate("generator/admin/" + templateName + ".ftl"); +// String filePath = getAdminFilePath(templateName, genConfig, className); +// +// assert filePath != null; +// File file = new File(filePath); +// +// // 如果非覆盖生成 +// if (!genConfig.getCover() && FileUtil.exist(file)) { +// continue; +// } +// // 生成代码 +// // genFile(file, template, map); +// } +// +// // 生成前端代码 +// List templates1 = getFrontTemplateNames(); +// for (String templateName : templates1) { +// Template template = engine.getTemplate("generator/front/" + templateName + ".ftl"); +// String filePath = getFrontFilePath(templateName, genConfig, map.get("changeClassName").toString()); +// +// assert filePath != null; +// File file = new File(filePath); +// +// // 如果非覆盖生成 +// if (!genConfig.getCover() && FileUtil.exist(file)) { +// continue; +// } +// // 生成代码 +// genFile(file, template, map); +// } +// // 生成前端代码2 +// List templates2 = getFrontTemplateNames1(); +// for (String templateName : templates2) { +// Template template = engine.getTemplate("generator/front1/" + templateName + ".ftl"); +// String filePath = getFrontFilePath1(templateName, genConfig, map.get("changeClassName").toString()); +// +// assert filePath != null; +// File file = new File(filePath); +// +// // 如果非覆盖生成 +// if (!genConfig.getCover() && FileUtil.exist(file)) { +// continue; +// } +// // 生成代码 +// genFile(file, template, map); +// } +// } +// +// /** +// * 定义后端文件路径以及名称 +// */ +// private static String getAdminFilePath(String templateName, GenConfig genConfig, String className) { +// +// String packagePath = genConfig.getPath(); +// if ("Entity".equals(templateName)) { +// return packagePath + File.separator + "entity" + File.separator + className + ".java"; +// } +// +// if ("Controller".equals(templateName)) { +// return packagePath + File.separator + "controller" + File.separator + className + "Controller.java"; +// } +// +// if ("Service".equals(templateName)) { +// return packagePath + File.separator + "service" + File.separator + "I" + className + "Service.java"; +// } +// +// if ("ServiceImpl".equals(templateName)) { +// return packagePath + File.separator + "service" + File.separator + "impl" + File.separator + className + "ServiceImpl.java"; +// } +// +// if ("menu.sql".equals(templateName)) { +// return packagePath + File.separator + className + ".sql"; +// } +// +// +// if ("Mapper".equals(templateName)) { +// return packagePath + File.separator + "mapper" + File.separator + className + "Mapper.java"; +// } +// +// +// return null; +// } +// +// /** +// * 定义前端文件路径以及名称 +// */ +// private static String getFrontFilePath(String templateName, GenConfig genConfig, String apiName) { +// String path = genConfig.getPath(); +// +// if ("api".equals(templateName)) { +// return path + File.separator + apiName + ".js"; +// } +// +// if ("index".equals(templateName)) { +// return path + File.separator + apiName + File.separator + "index.vue"; +// } +// +// if ("eForm".equals(templateName)) { +// return path + File.separator + apiName + File.separator + "components" + File.separator + "detail.vue"; +// } +// if ("add".equals(templateName)) { +// return path + File.separator + apiName + File.separator + File.separator + "add.vue"; +// } +// if ("update".equals(templateName)) { +// return path + File.separator + apiName + File.separator + File.separator + "update.vue"; +// } +// return null; +// } +// /** +// * 定义前端文件路径以及名称 +// */ +// private static String getFrontFilePath1(String templateName, GenConfig genConfig, String apiName) { +// String path = genConfig.getPath(); +// +// if ("api".equals(templateName)) { +// return path + File.separator +"shop"+ File.separator+ apiName + ".text"; +// } +// +// if ("index".equals(templateName)) { +// return path + File.separator +"shop"+ File.separator+ apiName + File.separator + "index.vue"; +// } +// +// if ("eForm".equals(templateName)) { +// return path + File.separator +"shop"+ File.separator+ apiName + File.separator + "components" + File.separator + "reduction.less"; +// } +// if ("add".equals(templateName)) { +// return path + File.separator +"shop"+ File.separator+ apiName + File.separator + "components" + File.separator + "add.vue"; +// } +// if ("update".equals(templateName)) { +// return path + File.separator +"shop"+ File.separator+ apiName + File.separator + "components" + File.separator + "edit.vue"; +// } +// return null; +// } +// private static void genFile(File file, Template template, Map map) throws IOException { +// // 生成目标文件 +// Writer writer = null; +// try { +// System.out.println(file); +// FileUtil.touch(file); +// System.out.println(file.getName()); +// writer = new FileWriter(file); +// template.render(map, writer); +// } catch (TemplateException | IOException e) { +// throw new RuntimeException(e); +// } finally { +// assert writer != null; +// writer.close(); +// } +// } +//} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/GenUtils1.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/GenUtils1.java new file mode 100644 index 0000000..4ebebde --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/GenUtils1.java @@ -0,0 +1,308 @@ +/* +package com.zscat.mallplus.util; + + +import cn.hutool.core.io.FileUtil; +import cn.hutool.extra.template.*; +import com.zscat.mallplus.bo.ColumnDO; +import com.zscat.mallplus.bo.TableDO; +import com.zscat.mallplus.config.Constant; +import com.zscat.mallplus.exception.ApiMallPlusException; +import org.apache.commons.configuration.Configuration; +import org.apache.commons.configuration.PropertiesConfiguration; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.WordUtils; +import org.apache.velocity.app.Velocity; + +import java.io.*; +import java.util.*; +import java.util.zip.ZipOutputStream; + +*/ +/** + * 代码生成器 工具类 + *

+ * 生成代码 + *

+ * 列名转换成Java属性名 + *

+ * 表名转换成Java类名 + *

+ * 获取配置信息 + *

+ * 获取文件名 + *

+ * 生成代码 + *

+ * 列名转换成Java属性名 + *

+ * 表名转换成Java类名 + *

+ * 获取配置信息 + *

+ * 获取文件名 + *

+ * 生成代码 + *

+ * 列名转换成Java属性名 + *

+ * 表名转换成Java类名 + *

+ * 获取配置信息 + *

+ * 获取文件名 + *

+ * 生成代码 + *

+ * 列名转换成Java属性名 + *

+ * 表名转换成Java类名 + *

+ * 获取配置信息 + *

+ * 获取文件名 + *//* + +public class GenUtils1 { + + + public static List getTemplates() { + List templates = new ArrayList(); + templates.add("common/generator/domain.java.ftl"); + templates.add("common/generator/Dao.java.ftl"); + //templates.add("common/generator/Mapper.java.vm"); + // templates.add("common/generator/Mapper.xml.vm"); + templates.add("common/generator/Service.java.ftl"); + templates.add("common/generator/ServiceImpl.java.ftl"); + templates.add("common/generator/Controller.java.ftl"); + templates.add("common/generator/add.vue.ftl"); + templates.add("common/generator/index.vue.ftl"); + templates.add("common/generator/api.js.ftl"); + templates.add("common/generator/path.js.ftl"); + templates.add("common/generator/update.vue.ftl"); + + templates.add("common/generator/BrandDetail.vue.ftl"); + templates.add("common/generator/menu.sql.ftl"); + return templates; + } + + */ +/** + * 生成代码 + *//* + + + + public static void generatorCode(Map table, + List> columns, ZipOutputStream zip) { + //配置信息 + Configuration config = getConfig(); + //表信息 + TableDO tableDO = new TableDO(); + tableDO.setTableName(table.get("tableName")); + tableDO.setComments(table.get("tableComment")); + //表名转换成Java类名 + String className = tableToJava(tableDO.getTableName(), config.getString("tablePrefix"), config.getString("autoRemovePre")); + tableDO.setClassName(className); + tableDO.setClassname(StringUtils.uncapitalize(className)); + + //列信息 + List columsList = new ArrayList<>(); + for (Map column : columns) { + ColumnDO columnDO = new ColumnDO(); + columnDO.setColumnName(column.get("columnName")); + columnDO.setDataType(column.get("dataType")); + columnDO.setComments(column.get("columnComment")); + columnDO.setExtra(column.get("extra")); + + //列名转换成Java属性名 + String attrName = columnToJava(columnDO.getColumnName()); + columnDO.setAttrName(attrName); + columnDO.setAttrname(StringUtils.uncapitalize(attrName)); + + //列的数据类型,转换成Java类型 + String attrType = config.getString(columnDO.getDataType(), "unknowType"); + columnDO.setAttrType(attrType); + + //是否主键 + if ("PRI".equalsIgnoreCase(column.get("columnKey")) && tableDO.getPk() == null) { + tableDO.setPk(columnDO); + } + + columsList.add(columnDO); + } + tableDO.setColumns(columsList); + + //没主键,则第一个字段为主键 + if (tableDO.getPk() == null) { + tableDO.setPk(tableDO.getColumns().get(0)); + } + + //设置velocity资源加载器 + Properties prop = new Properties(); + prop.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + Velocity.init(prop); + + String packages = "com.zscat.mallplus"; + String Module = tableDO.getTableName().split("_")[0].substring(0, 1).toUpperCase() + tableDO.getTableName().split("_")[0].substring(1).toLowerCase(); + //封装模板数据 + Map map = new HashMap<>(16); + map.put("tableName", tableDO.getTableName()); + map.put("comments", tableDO.getComments()); + map.put("pk", tableDO.getPk()); + map.put("module", tableDO.getTableName().split("_")[0]); + map.put("Module", Module); + map.put("className", tableDO.getClassName()); + map.put("classname", tableDO.getClassname()); + map.put("pathName", packages.substring(packages.lastIndexOf(".") + 1)); + map.put("columns", tableDO.getColumns()); + map.put("package", packages); + map.put("author", config.getString("author")); + map.put("email", config.getString("email")); + map.put("datetime", DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN)); + map.put("date", DateUtils.format(new Date(), DateUtils.DATE_TIME_PATTERN)); + + System.out.println(map.toString()); + //获取模板列表 + List templates = getTemplates(); + TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("templates", TemplateConfig.ResourceMode.CLASSPATH)); + + for (String templateName : templates) { + //渲染模板 + + Template template = engine.getTemplate(templateName); + + try { + String filePath = getFileName( + tableDO.getTableName().split("_")[0], templateName, tableDO.getClassname(), tableDO.getClassName(), packages.substring(packages.lastIndexOf(".")+ 1), Module); + //添加到zip + assert filePath != null; + File file = new File(filePath); + + + // 生成代码 + genFile(file, template, map); + } catch (IOException e) { + throw new ApiMallPlusException("渲染模板失败,表名:" + tableDO.getTableName(), e); + } + } + } + private static void genFile(File file, Template template, Map map) throws IOException { + // 生成目标文件 + Writer writer = null; + try { + FileUtil.touch(file); + writer = new FileWriter(file); + template.render(map, writer); + } catch (TemplateException | IOException e) { + throw new RuntimeException(e); + } finally { + assert writer != null; + writer.close(); + } + } + + */ +/** + * 列名转换成Java属性名 + *//* + + public static String columnToJava(String columnName) { + return WordUtils.capitalizeFully(columnName, new char[]{'_'}).replace("_", ""); + } + + */ +/** + * 表名转换成Java类名 + *//* + + public static String tableToJava(String tableName, String tablePrefix, String autoRemovePre) { + if (Constant.AUTO_REOMVE_PRE.equals(autoRemovePre)) { + tableName = tableName.substring(tableName.indexOf("_") + 1); + } + if (StringUtils.isNotBlank(tablePrefix)) { + tableName = tableName.replace(tablePrefix, ""); + } + + return columnToJava(tableName); + } + + */ +/** + * 获取配置信息 + *//* + + public static Configuration getConfig() { + try { + return new PropertiesConfiguration("generator.properties"); + } catch (org.apache.commons.configuration.ConfigurationException e) { + throw new ApiMallPlusException("获取配置文件失败,", e); + } + } + + */ +/** + * 获取文件名 + *//* + + public static String getFileName(String module, String template, String classname, String className, String packageName, String Module) { + String packagePath = "main" + File.separator + "java" + File.separator; + //String modulesname=config.getString("packageName"); + if (StringUtils.isNotBlank(packageName)) { + packagePath += packageName.replace(".", File.separator) + File.separator; + } + + if (template.contains("domain.java.ftl")) { + return Module + className + ".java"; + } + + if (template.contains("Dao.java.ftl")) { + return Module + className + "Mapper.java"; + } + +// if(template.contains("Mapper.java.vm")){ +// return packagePath + "dao" + File.separator + className + "Mapper.java"; +// } + // templates.add("common/generator/menu.sql.ftl"); + if (template.contains("menu.sql.ftl")) { + return Module + className + "menu.sql"; + } + if (template.contains("Service.java.ftl")) { + return "I" + Module + className + "Service.java"; + } + + if (template.contains("ServiceImpl.java.ftl")) { + return Module + className + "ServiceImpl.java"; + } + + if (template.contains("Controller.java.ftl")) { + return Module + className + "Controller.java"; + } + + if (template.contains("Mapper.xml.vm")) { + return Module + className + "Mapper.xml"; + } + if (template.contains("api.js.ftl")) { + return classname + ".js"; + } + if (template.contains("path.js.ftl")) { + return classname + "path" + ".js"; + } + if (template.contains("add.vue.ftl")) { + return classname + File.separator + "add.vue"; + } + + if (template.contains("index.vue.ftl")) { + return classname + File.separator + "index.vue"; + } + if (template.contains("update.vue.ftl")) { + return classname + File.separator + "update.vue"; + } + if (template.contains("BrandDetail.vue.ftl")) { + return classname + File.separator + "components" + File.separator + className + "Detail.vue"; + } + + return null; + } +} +*/ diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/IpAddressUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/IpAddressUtil.java new file mode 100644 index 0000000..2779749 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/IpAddressUtil.java @@ -0,0 +1,45 @@ +/** + * + */ +package com.yxt.yythmall.mallplus.biz.util; + +import javax.servlet.http.HttpServletRequest; +import java.net.InetAddress; +import java.net.UnknownHostException; + +/** + * IP地址工具类定义 + * + * @author mallplus + */ +public class IpAddressUtil { + public static String getIpAddr(HttpServletRequest request) { + String ipAddress = request.getHeader("x-forwarded-for"); + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getHeader("WL-Proxy-Client-IP"); + } + if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getRemoteAddr(); + if (ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")) { + //根据网卡取本机配置的IP + InetAddress inet = null; + try { + inet = InetAddress.getLocalHost(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + ipAddress = inet.getHostAddress(); + } + } + //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割 + if (ipAddress != null && ipAddress.length() > 15) { //"***.***.***.***".length() = 15 + if (ipAddress.indexOf(",") > 0) { + ipAddress = ipAddress.substring(0, ipAddress.indexOf(",")); + } + } + return ipAddress; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/JsonUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/JsonUtil.java new file mode 100644 index 0000000..8d45717 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/JsonUtil.java @@ -0,0 +1,401 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import com.fasterxml.jackson.annotation.JsonFilter; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.*; +import com.fasterxml.jackson.databind.ser.FilterProvider; +import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter; +import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import lombok.extern.slf4j.Slf4j; +//import net.sf.json.JsonConfig; +//import net.sf.json.util.PropertyFilter; +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.util.StringUtils; + +import java.io.IOException; +import java.io.OutputStream; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * Jackson json序列化和反序列化工具类 + * https://github.com/shenzhuan/mallplus on 2018/4/28. + */ +@Slf4j +public class JsonUtil { + + // 定义jackson对象 + private static final ObjectMapper MAPPER = new ObjectMapper(); + private static ObjectMapper objectMapper = null; + + static { + objectMapper = new ObjectMapper(); + // 设置默认日期格式 + objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); + // 提供其它默认设置 + objectMapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + objectMapper.setFilters(new SimpleFilterProvider() + .setFailOnUnknownId(false)); + objectMapper.registerModule(new MyModule()); + } + + /** + * 将对象转换成json字符串格式(默认将转换所有的属性) + * + * @param value + * @return + */ + public static String toJsonStr(Object value) { + try { + return objectMapper.writeValueAsString(value); + } catch (JsonProcessingException e) { + log.error("Json转换失败", e); + throw new RuntimeException(e); + } + } + + /** + * 将对象转换成json字符串格式 + * + * @param value 需要转换的对象 + * @param properties 需要转换的属性 + */ + public static String toJsonStr(Object value, String[] properties) { + try { + SimpleBeanPropertyFilter sbp = SimpleBeanPropertyFilter + .filterOutAllExcept(properties); + FilterProvider filterProvider = new SimpleFilterProvider() + .addFilter("propertyFilterMixIn", sbp); + return objectMapper.writer(filterProvider) + .writeValueAsString(value); + } catch (Exception e) { + log.error("Json转换失败", e); + throw new RuntimeException(e); + } + + } + + /** + * 将对象转换成json字符串格式 + * + * @param value 需要转换的对象 + * @param properties2Exclude 需要排除的属性 + */ + public static String toJsonStrWithExcludeProperties(Object value, + String[] properties2Exclude) { + try { + SimpleBeanPropertyFilter sbp = SimpleBeanPropertyFilter + .serializeAllExcept(properties2Exclude); + FilterProvider filterProvider = new SimpleFilterProvider() + .addFilter("propertyFilterMixIn", sbp); + return objectMapper.writer(filterProvider) + .writeValueAsString(value); + } catch (Exception e) { + log.error("Json转换失败", e); + throw new RuntimeException(e); + } + + } + + /** + * 将对象json格式直接写出到流对象中(默认将转换所有的属性) + * + * @param out + * @return + */ + public static void writeJsonStr(OutputStream out, Object value) { + try { + objectMapper.writeValue(out, value); + } catch (Exception e) { + log.error("Json转换失败", e); + throw new RuntimeException(e); + } + } + + /** + * 将对象json格式直接写出到流对象中 + * + * @param value 需要转换的对象(注意,需要在要转换的对象中定义JsonFilter注解) + * @param properties 需要转换的属性 + */ + public static void writeJsonStr(OutputStream out, Object value, + String[] properties) { + + try { + objectMapper.writer( + new SimpleFilterProvider().addFilter( + AnnotationUtils + .getValue( + AnnotationUtils.findAnnotation( + value.getClass(), + JsonFilter.class)) + .toString(), SimpleBeanPropertyFilter + .filterOutAllExcept(properties))) + .writeValue(out, value); + } catch (Exception e) { + log.error("Json转换失败", e); + throw new RuntimeException(e); + } + + } + + /** + * 将对象转换成json字符串格式 + * + * @param value 需要转换的对象 + * @param properties2Exclude 需要排除的属性(注意,需要在要转换的对象中定义JsonFilter注解) + */ + public static void writeJsonStrWithExcludeProperties(OutputStream out, + Object value, String[] properties2Exclude) { + try { + objectMapper.writer( + new SimpleFilterProvider().addFilter( + AnnotationUtils + .getValue( + AnnotationUtils.findAnnotation( + value.getClass(), + JsonFilter.class)) + .toString(), SimpleBeanPropertyFilter + .serializeAllExcept(properties2Exclude))) + .writeValue(out, value); + } catch (Exception e) { + log.error("Json转换失败", e); + throw new RuntimeException(e); + } + + } + + /** + * 反序列化POJO或简单Collection如List. + *

+ * 如果JSON字符串为Null或"null"字符串, 返回Null. 如果JSON字符串为"[]", 返回空集合. + *

+ * 如需反序列化复杂Collection如List, 请使用fromJson(String, JavaType) + */ + public static T fromJson(String jsonString, Class clazz) { + if (StringUtils.isEmpty(jsonString)) { + return null; + } + + try { + return objectMapper.readValue(jsonString, clazz); + } catch (IOException e) { + log.warn("parse json string error:" + jsonString, e); + return null; + } + } + + @SuppressWarnings({"unchecked", "unused"}) + public static List readJsonList(String jsondata, Object object) { + try { + List> list = objectMapper.readValue( + jsondata, List.class); + + List objects = Lists.newArrayList(); + System.out.println(list.size()); + for (int i = 0; i < list.size(); i++) { + Map map = list.get(i); + Set set = map.keySet(); + for (Iterator it = set.iterator(); it.hasNext(); ) { + String key = it.next(); + System.out.println(key + ":" + map.get(key)); + } + } + } catch (JsonParseException e) { + e.printStackTrace(); + } catch (JsonMappingException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 单独解析某一个json的key值 + * + * @param @param jsonText + * @param @param key + * @param @return 设定文件 + * @return JsonNode 返回类型 + * @throws + * @Title: getjsonvalue + * @Description: TODO(这里用一句话描述这个方法的作用) + */ + public static JsonNode getjsonvalue(String jsonText, String key) { + + try { + ObjectMapper mapper = new ObjectMapper(); + JsonNode rootNode = mapper.readTree(jsonText); // 读取Json + + return rootNode.path(key); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + public static JavaType getCollectionType(Class collectionClass, Class... elementClasses) { + ObjectMapper mapper = new ObjectMapper(); + return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses); + } + + + /** + * 解析json属性,放到实体里面去 + * + * @param @param jsondata + * @param @param collectionClass + * @param @return 设定文件 + * @return List 返回类型 + * @throws + * @Title: readJsonList + * @Description: TODO(这里用一句话描述这个方法的作用) + */ + @SuppressWarnings("unchecked") + public static List readJsonList(String jsondata, Class collectionClass) { + try { + ObjectMapper mapper = new ObjectMapper(); + JavaType javaType = getCollectionType(ArrayList.class, collectionClass); + List lst = (List) mapper.readValue(jsondata, javaType); + + return lst; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * json 转map + * + * @param @param jsondata + * @param @return 设定文件 + * @return Map> 返回类型 + * @throws + * @Title: readJsonMap + * @Description: TODO(这里用一句话描述这个方法的作用) + */ + @SuppressWarnings("unchecked") + public static Map readJsonToMap(String jsondata) { + try { + Map maps = objectMapper.readValue(jsondata, Map.class); + //System.out.println(maps); + return maps; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @SuppressWarnings("unchecked") + public static Map readJsonToMap1(String jsondata) { + try { + Map maps = objectMapper.readValue(jsondata, Map.class); + //System.out.println(maps); + return maps; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + /** + * 设置过滤值为空的属性,使得生成的 json 字符串只包含非空的值 + * + * @return + */ +// public static JsonConfig getJsonConfig() { +// JsonConfig jsonConfig = new JsonConfig(); +// jsonConfig.registerJsonValueProcessor(java.sql.Timestamp.class, new JsonValueProcessorImpl()); +// jsonConfig.setJsonPropertyFilter(new PropertyFilter() { +// @Override +// public boolean apply(Object source, String name, Object value) { +// return value == null; +// } +// }); +// +// jsonConfig.setIgnoreDefaultExcludes(false); // 设置默认忽略 +// jsonConfig.setExcludes(new String[]{"dbName", "isDel"}); // 此处是亮点,只要将所需忽略字段加到数组中即可,在实际测试中,我发现在所返回数组中,存在大量无用属性, +// +// return jsonConfig; +// } + + public static void main(String[] args) { + Map userData = Maps.newHashMap(); + Map nameStruct = Maps.newHashMap(); + nameStruct.put("firstName", "张三"); + nameStruct.put("lastName", "你大爷"); + + System.out.println(JsonUtil.toJsonStr(nameStruct)); + userData.put("name", nameStruct); + userData.put("age", 20); + List stringList = Lists.newArrayList("A", "B", "C"); + System.out.println(JsonUtil.toJsonStr(userData)); + System.out.println(JsonUtil.toJsonStr(stringList)); +// String[] arr = {"37","38","41","42","43","44","45","1693","1694","1695","1696"}; +// System.out.println(toJsonStr(arr)); + + String ss = "{\"address\": \"address2\",\"name\":\"haha2\"}"; + + Map map = readJsonToMap(ss); + + if (map != null) { + System.out.println(map.get("address")); + } + } + + /** + * 将对象转换成json字符串。 + */ + public static String objectToJson(Object data) { + try { + String string = MAPPER.writeValueAsString(data); + return string; + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + return null; + } + + /** + * 将json结果集转化为对象 + * + * @param jsonData json数据 + * @param beanType 对象中的object类型 + */ + public static T jsonToPojo(String jsonData, Class beanType) { + try { + T t = MAPPER.readValue(jsonData, beanType); + return t; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + /** + * 将json数据转换成pojo对象list + */ + public static List jsonToList(String jsonData, Class beanType) { + JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); + try { + List list = MAPPER.readValue(jsonData, javaType); + return list; + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/JsonValueProcessorImpl.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/JsonValueProcessorImpl.java new file mode 100644 index 0000000..f84d868 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/JsonValueProcessorImpl.java @@ -0,0 +1,49 @@ +///** +// * +// */ +//package com.zscat.mallplus.util; +// +// +//import net.sf.json.JsonConfig; +//import net.sf.json.processors.JsonValueProcessor; +// +//import java.text.SimpleDateFormat; +//import java.util.Date; +// +///** +// *

Title: JsonValueProcessorImpl.java

+// *

Description: net.js.json 特殊值处理

+// *

Copyright: Copyright (c) 2014-2018

+// *

Company: leimingtech.com

+// * +// * @author linjm +// * @version 1.0 +// * @date 2015年7月17日 +// */ +//public class JsonValueProcessorImpl implements JsonValueProcessor { +// +// private String format = "yyyy-MM-dd HH:mm:ss"; +// +// @Override +// public Object processArrayValue(Object value, JsonConfig jsonConfig) { +// String[] obj = {}; +// if (value instanceof Date[]) { +// SimpleDateFormat sdf = new SimpleDateFormat(format); +// Date[] date = (Date[]) value; +// for (int i = 0; i < date.length; i++) { +// obj[i] = sdf.format(date[i]); +// } +// } +// return obj; +// } +// +// @Override +// public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { +// if (value instanceof Date) { +// String str = new SimpleDateFormat(format).format(value); +// return str; +// } +// return value.toString(); +// } +// +//} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/JwtTokenUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/JwtTokenUtil.java new file mode 100644 index 0000000..a548b2d --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/JwtTokenUtil.java @@ -0,0 +1,139 @@ +package com.yxt.yythmall.mallplus.biz.util; + +//import io.jsonwebtoken.Claims; +//import io.jsonwebtoken.Jwts; +//import io.jsonwebtoken.SignatureAlgorithm; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +//import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +/** + * JwtToken生成的工具类 + * JWT token的格式:header.payload.signature + * header的格式(算法、token的类型): + * {"alg": "HS512","typ": "JWT"} + * payload的格式(用户名、创建时间、生成时间): + * {"sub":"wang","created":1489079981393,"exp":1489684781} + * signature的生成算法: + * HMACSHA256(base64UrlEncode(header) + "." +base64UrlEncode(payload),secret) + * https://github.com/shenzhuan/mallplus on 2018/4/28. + */ +@Component +public class JwtTokenUtil { + private static final Logger LOGGER = LoggerFactory.getLogger(JwtTokenUtil.class); + private static final String CLAIM_KEY_USERNAME = "sub"; + private static final String CLAIM_KEY_CREATED = "created"; +// @Value("${jwt.secret}") +// private String secret; +// @Value("${jwt.expiration}") +// private Long expiration; + + /** + * 根据负责生成JWT的token + */ +// private String generateToken(Map claims) { +// return Jwts.builder() +// .setClaims(claims) +// .setExpiration(generateExpirationDate()) +// .signWith(SignatureAlgorithm.HS512, secret) +// .compact(); +// } + + /** + * 从token中获取JWT中的负载 + */ +// private Claims getClaimsFromToken(String token) { +// Claims claims = null; +// try { +// claims = Jwts.parser() +// .setSigningKey(secret) +// .parseClaimsJws(token) +// .getBody(); +// } catch (Exception e) { +// LOGGER.error("JWT格式验证失败:{}", token); +// } +// return claims; +// } + + /** + * 生成token的过期时间 + */ +// private Date generateExpirationDate() { +// return new Date(System.currentTimeMillis() + expiration * 1000); +// } + + /** + * 从token中获取登录用户名 + */ +// public String getUserNameFromToken(String token) { +// String username; +// try { +// Claims claims = getClaimsFromToken(token); +// username = claims.getSubject(); +// } catch (Exception e) { +// username = null; +// } +// return username; +// } + + /** + * 验证token是否还有效 + * + * @param token 客户端传入的token + * @param userDetails 从数据库中查询出来的用户信息 + */ +// public boolean validateToken(String token, UserDetails userDetails) { +// String username = getUserNameFromToken(token); +// return username.equals(userDetails.getUsername()) && !isTokenExpired(token); +// } +// public boolean validateTokenByUserName(String token) { +// return !isTokenExpired(token); +// } + /** + * 判断token是否已经失效 + */ +// public boolean isTokenExpired(String token) { +// Date expiredDate = getExpiredDateFromToken(token); +// return expiredDate.before(new Date()); +// } + + /** + * 从token中获取过期时间 + */ +// public Date getExpiredDateFromToken(String token) { +// Claims claims = getClaimsFromToken(token); +// return claims.getExpiration(); +// } + + /** + * 根据用户信息生成token + */ +// public String generateToken(UserDetails userDetails) { +// Map claims = new HashMap<>(); +// claims.put(CLAIM_KEY_USERNAME, userDetails.getUsername()); +// claims.put(CLAIM_KEY_CREATED, new Date()); +// return generateToken(claims); +// } + + /** + * 判断token是否可以被刷新 + */ +// public boolean canRefresh(String token) { +// return !isTokenExpired(token); +// } + + /** + * 刷新token + */ +// public String refreshToken(String token) { +// Claims claims = getClaimsFromToken(token); +// claims.put(CLAIM_KEY_CREATED, new Date()); +// return generateToken(claims); +// } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/MatrixToImageWriter.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/MatrixToImageWriter.java new file mode 100644 index 0000000..869aefb --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/MatrixToImageWriter.java @@ -0,0 +1,127 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import com.google.zxing.BarcodeFormat; +import com.google.zxing.EncodeHintType; +import com.google.zxing.MultiFormatWriter; +import com.google.zxing.common.BitMatrix; +import org.springframework.core.io.ByteArrayResource; + +import javax.imageio.ImageIO; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Map; + +/** + * 二维码的生成需要借助MatrixToImageWriter类,该类是由Google提供的,可以将该类直接拷贝到源码中使用 + */ +public class MatrixToImageWriter { + private static final int BLACK = 0xFF000000; + private static final int WHITE = 0xFFFFFFFF; + + private MatrixToImageWriter() { + } + + private static BufferedImage toBufferedImage(BitMatrix matrix, String words) { + int width = matrix.getWidth(); + int height = matrix.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, matrix.get(x, y) ? BLACK : WHITE); + } + } + Graphics2D outg = image.createGraphics(); + setGraphics2D(outg); + // 画二维码到新的面板 + outg.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null); + // 画文字到新的面板 + //Color color=new Color(183,183,183); + outg.setColor(Color.BLACK); + // 字体、字型、字号 + outg.setFont(new Font("微软雅黑", Font.PLAIN, 14)); + //文字长度 + int strWidth = outg.getFontMetrics().stringWidth(words); + //总长度减去文字长度的一半 (居中显示) + int wordStartX = (width - strWidth) / 2; + //height + (outImage.getHeight() - height) / 2 + 12 + int wordStartY = height - 20; + // 画文字 + outg.drawString(words, wordStartX, wordStartY); + outg.dispose(); + image.flush(); + return image; + } + + private static void setGraphics2D(Graphics2D graphics2D) { + graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + graphics2D.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_DEFAULT); + Stroke s = new BasicStroke(1, BasicStroke.CAP_ROUND, BasicStroke.JOIN_MITER); + graphics2D.setStroke(s); + } + + static void writeToFile(BitMatrix matrix, String format, File file, String words) throws IOException { + BufferedImage image = toBufferedImage(matrix, words); + if (!ImageIO.write(image, format, file)) { + throw new IOException("Could not write an image of format " + format + " to " + file); + } + } + + static void writeToStream(BitMatrix matrix, String format, OutputStream stream, String words) throws IOException { + BufferedImage image = toBufferedImage(matrix, words); + if (!ImageIO.write(image, format, stream)) { + throw new IOException("Could not write an image of format " + format); + } + } + + + public static ByteArrayResource createQrCode(String url, String words) { + try { + Map hints = new HashMap<>(); + hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); + BitMatrix bitMatrix = new MultiFormatWriter().encode(url, BarcodeFormat.QR_CODE, 400, 400, hints); + //=======================生成文件 可以放在本地====================== + //File file = new File(path, fileName); + //if (file.exists() || ((file.getParentFile().exists() || file.getParentFile().mkdirs()) && file.createNewFile())) { + // writeToFile(bitMatrix, "jpg", file); + // System.out.println("搞定:" + file); + //} + //=============此处生成流因为后面要上传到文件系统中,所以直接通过流上传=========== + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); + writeToStream(bitMatrix, "jpg", outputStream, words); + //==============生成输入流======================== + //ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); + ByteArrayResource arrayResource = new ByteArrayResource(outputStream.toByteArray()) { + @Override + public String getFilename() throws IllegalStateException { + return System.currentTimeMillis() + ""; + } + }; + return arrayResource; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + public static void main(String[] args) throws Exception { + String text = "http://www.baidu.com"; // 二维码内容 + int width = 300; // 二维码图片宽度 + int height = 300; // 二维码图片高度 + String format = "jpg";// 二维码的图片格式 + + Hashtable hints = new Hashtable(); + hints.put(EncodeHintType.CHARACTER_SET, "utf-8"); // 内容所使用字符集编码 + + BitMatrix bitMatrix = new MultiFormatWriter().encode(text, + BarcodeFormat.QR_CODE, width, height, hints); + // 生成二维码 + File outputFile = new File("d:" + File.separator + "new.jpg"); + MatrixToImageWriter.writeToFile(bitMatrix, format, outputFile, "123"); + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/MyModule.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/MyModule.java new file mode 100644 index 0000000..f871807 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/MyModule.java @@ -0,0 +1,10 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import com.fasterxml.jackson.databind.module.SimpleModule; + +public class MyModule extends SimpleModule { + @Override + public void setupModule(SetupContext context) { + context.setMixInAnnotations(Object.class, PropertyFilterMixIn.class); + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/PageUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/PageUtil.java new file mode 100644 index 0000000..33a7ab1 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/PageUtil.java @@ -0,0 +1,55 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import org.springframework.data.domain.Page; + +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +/** + * 分页工具 + * + * @author Zheng Jie + * @date 2018-12-10 + */ +public class PageUtil extends cn.hutool.core.util.PageUtil { + + /** + * List 分页 + */ + public static List toPage(int page, int size, List list) { + int fromIndex = page * size; + int toIndex = page * size + size; + + if (fromIndex > list.size()) { + return new ArrayList(); + } else if (toIndex >= list.size()) { + return list.subList(fromIndex, list.size()); + } else { + return list.subList(fromIndex, toIndex); + } + } + + /** + * Page 数据处理,预防redis反序列化报错 + */ + public static Map toPage(Page page) { + Map map = new LinkedHashMap<>(2); + map.put("content", page.getContent()); + map.put("totalElements", page.getTotalElements()); + return map; + } + + /** + * 自定义分页 + */ + public static Map toPage(Object object, Object totalElements) { + Map map = new LinkedHashMap<>(2); + map.put("content", object); + map.put("totalElements", totalElements); + + return map; + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/PropertyFilterMixIn.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/PropertyFilterMixIn.java new file mode 100644 index 0000000..075ccba --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/PropertyFilterMixIn.java @@ -0,0 +1,8 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import com.fasterxml.jackson.annotation.JsonFilter; + +@JsonFilter("propertyFilterMixIn") +public class PropertyFilterMixIn { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/QiNiuUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/QiNiuUtil.java new file mode 100644 index 0000000..5be8edd --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/QiNiuUtil.java @@ -0,0 +1,60 @@ +package com.yxt.yythmall.mallplus.biz.util; + +//import com.qiniu.storage.Region; + +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 七牛云存储工具类 + * + * @author mallplus + * @date 2018-12-31 + */ +public class QiNiuUtil { + + private static final String HUAD = "华东"; + + private static final String HUAB = "华北"; + + private static final String HUAN = "华南"; + + private static final String BEIM = "北美"; + + /** + * 得到机房的对应关系 + * + * @param zone 机房名称 + * @return Region + */ +// public static Region getRegion(String zone) { +// +// if (HUAD.equals(zone)) { +// return Region.huadong(); +// } else if (HUAB.equals(zone)) { +// return Region.huabei(); +// } else if (HUAN.equals(zone)) { +// return Region.huanan(); +// } else if (BEIM.equals(zone)) { +// return Region.beimei(); +// // 否则就是东南亚 +// } else { +// return Region.qvmHuadong(); +// } +// } + + /** + * 默认不指定key的情况下,以文件内容的hash值作为文件名 + * + * @param file 文件名 + * @return String + */ +// public static String getKey(String file) { +// SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); +// Date date = new Date(); +// return FileUtil.getFileNameNoEx(file) + "-" + +// sdf.format(date) + +// "." + +// FileUtil.getExtensionName(file); +// } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/RedisUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/RedisUtil.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/RequestUtil.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/RequestUtil.java new file mode 100644 index 0000000..9f0ad0a --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/RequestUtil.java @@ -0,0 +1,66 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import javax.servlet.http.HttpServletRequest; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; + +/** + * request工具类 + * https://github.com/shenzhuan/mallplus on 2018/4/28. + */ +public class RequestUtil { + + /** + * 获取请求basePath + */ + public static String getBasePath(HttpServletRequest request) { + StringBuffer basePath = new StringBuffer(); + String scheme = request.getScheme(); + String domain = request.getServerName(); + int port = request.getServerPort(); + basePath.append(scheme); + basePath.append("://"); + basePath.append(domain); + if ("http".equalsIgnoreCase(scheme) && 80 != port) { + basePath.append(":").append(String.valueOf(port)); + } else if ("https".equalsIgnoreCase(scheme) && port != 443) { + basePath.append(":").append(String.valueOf(port)); + } + return basePath.toString(); + } + + /** + * 请求中参数转Map,for支付宝异步回调,平时建议直接使用request.getParameterMap(),返回Map + */ + public static Map getParameterMap(HttpServletRequest request) { + Map result = new HashMap<>(); + Enumeration parameterNames = request.getParameterNames(); + while (parameterNames.hasMoreElements()) { + String parameterName = (String) parameterNames.nextElement(); + result.put(parameterName, request.getParameter(parameterName)); + } + return result; + } + + /** + * 移除request指定参数 + */ + public String removeParam(HttpServletRequest request, String paramName) { + String queryString = ""; + Enumeration keys = request.getParameterNames(); + while (keys.hasMoreElements()) { + String key = (String) keys.nextElement(); + if (key.equals(paramName)) { + continue; + } + if ("".equals(queryString)) { + queryString = key + "=" + request.getParameter(key); + } else { + queryString += "&" + key + "=" + request.getParameter(key); + } + } + return queryString; + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/StringUtils.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/StringUtils.java new file mode 100644 index 0000000..a94f8a7 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/StringUtils.java @@ -0,0 +1,144 @@ +package com.yxt.yythmall.mallplus.biz.util; + +import javax.servlet.http.HttpServletRequest; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.Calendar; +import java.util.Date; + +/** + * 字符串工具类, 继承org.apache.commons.lang3.StringUtils类 + */ +public class StringUtils extends org.apache.commons.lang3.StringUtils { + + private static final char SEPARATOR = '_'; + + /** + * 驼峰命名法工具 + * + * @return toCamelCase(" hello_world ") == "helloWorld" + * toCapitalizeCamelCase("hello_world") == "HelloWorld" + * toUnderScoreCase("helloWorld") = "hello_world" + */ + public static String toCamelCase(String s) { + if (s == null) { + return null; + } + + s = s.toLowerCase(); + + StringBuilder sb = new StringBuilder(s.length()); + boolean upperCase = false; + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + + if (c == SEPARATOR) { + upperCase = true; + } else if (upperCase) { + sb.append(Character.toUpperCase(c)); + upperCase = false; + } else { + sb.append(c); + } + } + + return sb.toString(); + } + + /** + * 驼峰命名法工具 + * + * @return toCamelCase(" hello_world ") == "helloWorld" + * toCapitalizeCamelCase("hello_world") == "HelloWorld" + * toUnderScoreCase("helloWorld") = "hello_world" + */ + public static String toCapitalizeCamelCase(String s) { + if (s == null) { + return null; + } + s = toCamelCase(s); + return s.substring(0, 1).toUpperCase() + s.substring(1); + } + + /** + * 驼峰命名法工具 + * + * @return toCamelCase(" hello_world ") == "helloWorld" + * toCapitalizeCamelCase("hello_world") == "HelloWorld" + * toUnderScoreCase("helloWorld") = "hello_world" + */ + static String toUnderScoreCase(String s) { + if (s == null) { + return null; + } + + StringBuilder sb = new StringBuilder(); + boolean upperCase = false; + for (int i = 0; i < s.length(); i++) { + char c = s.charAt(i); + + boolean nextUpperCase = true; + + if (i < (s.length() - 1)) { + nextUpperCase = Character.isUpperCase(s.charAt(i + 1)); + } + + if ((i > 0) && Character.isUpperCase(c)) { + if (!upperCase || !nextUpperCase) { + sb.append(SEPARATOR); + } + upperCase = true; + } else { + upperCase = false; + } + + sb.append(Character.toLowerCase(c)); + } + + return sb.toString(); + } + + /** + * 获取ip地址 + */ + public static String getIp(HttpServletRequest request) { + String ip = request.getHeader("x-forwarded-for"); + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + } + if (ip.contains(",")) { + ip = ip.split(",")[0]; + } + if ("127.0.0.1".equals(ip)) { + // 获取本机真正的ip地址 + try { + ip = InetAddress.getLocalHost().getHostAddress(); + } catch (UnknownHostException e) { + e.printStackTrace(); + } + } + return ip; + } + + + /** + * 获得当天是周几 + */ + public static String getWeekDay() { + String[] weekDays = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; + Calendar cal = Calendar.getInstance(); + cal.setTime(new Date()); + + int w = cal.get(Calendar.DAY_OF_WEEK) - 1; + if (w < 0) { + w = 0; + } + return weekDays[w]; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/biz/util/UserUtils.java b/src/main/java/com/yxt/yythmall/mallplus/biz/util/UserUtils.java new file mode 100644 index 0000000..75d97a9 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/biz/util/UserUtils.java @@ -0,0 +1,25 @@ +package com.yxt.yythmall.mallplus.biz.util; + +//import com.zscat.mallplus.bo.AdminUserDetails; +//import com.zscat.mallplus.sys.entity.SysUser; +//import org.springframework.security.core.Authentication; +//import org.springframework.security.core.context.SecurityContext; +//import org.springframework.security.core.context.SecurityContextHolder; + +/** + * @Auther: shenzhuan + * @Date: 2019/3/30 16:26 + * @Description: + */ +public class UserUtils { +// public static SysUser getCurrentMember() { +// try { +// SecurityContext ctx = SecurityContextHolder.getContext(); +// Authentication auth = ctx.getAuthentication(); +// AdminUserDetails memberDetails = (AdminUserDetails) auth.getPrincipal(); +// return memberDetails.getUmsAdmin(); +// } catch (Exception e) { +// return new SysUser(); +// } +// } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/CmsPrefrenceAreaProductRelation.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/CmsPrefrenceAreaProductRelation.java new file mode 100644 index 0000000..bd3389f --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/CmsPrefrenceAreaProductRelation.java @@ -0,0 +1,58 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; + +/** + *

+ * 优选专区和产品关系表 + *

+ * + * @author zscat + * @since 2019-04-17 + */ +@TableName("cms_prefrence_area_product_relation") +public class CmsPrefrenceAreaProductRelation extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("prefrence_area_id") + private Long prefrenceAreaId; + + @TableField("product_id") + private Long productId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getPrefrenceAreaId() { + return prefrenceAreaId; + } + + public void setPrefrenceAreaId(Long prefrenceAreaId) { + this.prefrenceAreaId = prefrenceAreaId; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/CmsSubjectProductRelation.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/CmsSubjectProductRelation.java new file mode 100644 index 0000000..a4224c8 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/CmsSubjectProductRelation.java @@ -0,0 +1,66 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; + +/** + *

+ * 专题商品关系表 + *

+ * + * @author zscat + * @since 2019-04-17 + */ +@TableName("cms_subject_product_relation") +public class CmsSubjectProductRelation extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("subject_id") + private Long subjectId; + + @TableField("product_id") + private Long productId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getSubjectId() { + return subjectId; + } + + public void setSubjectId(Long subjectId) { + this.subjectId = subjectId; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + @Override + public String toString() { + return "CmsSubjectProductRelation{" + + ", id=" + id + + ", subjectId=" + subjectId + + ", productId=" + productId + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/EsShopGoodsGroupMap.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/EsShopGoodsGroupMap.java new file mode 100644 index 0000000..c2d30a7 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/EsShopGoodsGroupMap.java @@ -0,0 +1,34 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + *

+ *

+ *

+ * + * @author meizhuang team + * @since 2019-04-16 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("es_shop_goods_group_map") +public class EsShopGoodsGroupMap implements Serializable { + + private static final long serialVersionUID = 1L; + + + @TableField("goods_id") + private Long goodsId; + @TableField("group_id") + private Long groupId; + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsAlbum.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsAlbum.java new file mode 100644 index 0000000..a5ff2b0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsAlbum.java @@ -0,0 +1,40 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 相册表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Data +@TableName("pms_album") +public class PmsAlbum extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String name; + + + private String pic; + + private String type; + + private Integer sort; + + private String description; + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsAlbumPic.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsAlbumPic.java new file mode 100644 index 0000000..d2ead25 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsAlbumPic.java @@ -0,0 +1,49 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 画册图片表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Setter +@Getter +@TableName("pms_album_pic") +public class PmsAlbumPic extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + @TableField("user_id") + private Long userId; + + @TableField("album_id") + private Long albumId; + + private String pic; + + private String type; + + private String name; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsBrand.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsBrand.java new file mode 100644 index 0000000..6c41cfd --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsBrand.java @@ -0,0 +1,180 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; + +/** + *

+ * 品牌表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_brand") +public class PmsBrand extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String name; + + /** + * 首字母 + */ + @TableField("first_letter") + private String firstLetter; + + private Integer sort; + + /** + * 是否为品牌制造商:0->不是;1->是 + */ + @TableField("factory_status") + private Integer factoryStatus; + + @TableField("show_status") + private Integer showStatus; + + /** + * 产品数量 + */ + @TableField("product_count") + private Integer productCount; + + /** + * 产品评论数量 + */ + @TableField("product_comment_count") + private Integer productCommentCount; + + /** + * 品牌logo + */ + private String logo; + + /** + * 专区大图 + */ + @TableField("big_pic") + private String bigPic; + + /** + * 品牌故事 + */ + @TableField("brand_story") + private String brandStory; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getFirstLetter() { + return firstLetter; + } + + public void setFirstLetter(String firstLetter) { + this.firstLetter = firstLetter; + } + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public Integer getFactoryStatus() { + return factoryStatus; + } + + public void setFactoryStatus(Integer factoryStatus) { + this.factoryStatus = factoryStatus; + } + + public Integer getShowStatus() { + return showStatus; + } + + public void setShowStatus(Integer showStatus) { + this.showStatus = showStatus; + } + + public Integer getProductCount() { + return productCount; + } + + public void setProductCount(Integer productCount) { + this.productCount = productCount; + } + + public Integer getProductCommentCount() { + return productCommentCount; + } + + public void setProductCommentCount(Integer productCommentCount) { + this.productCommentCount = productCommentCount; + } + + public String getLogo() { + return logo; + } + + public void setLogo(String logo) { + this.logo = logo; + } + + public String getBigPic() { + return bigPic; + } + + public void setBigPic(String bigPic) { + this.bigPic = bigPic; + } + + public String getBrandStory() { + return brandStory; + } + + public void setBrandStory(String brandStory) { + this.brandStory = brandStory; + } + + @Override + public String toString() { + return "PmsBrand{" + + ", id=" + id + + ", name=" + name + + ", firstLetter=" + firstLetter + + ", sort=" + sort + + ", factoryStatus=" + factoryStatus + + ", showStatus=" + showStatus + + ", productCount=" + productCount + + ", productCommentCount=" + productCommentCount + + ", logo=" + logo + + ", bigPic=" + bigPic + + ", brandStory=" + brandStory + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsComment.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsComment.java new file mode 100644 index 0000000..52bc0a5 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsComment.java @@ -0,0 +1,223 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 商品评价表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_comment") +public class PmsComment extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_id") + private Long productId; + + @TableField("member_nick_name") + private String memberNickName; + + @TableField("product_name") + private String productName; + + /** + * 评价星数:0->5 + */ + private Integer star; + + /** + * 评价的ip + */ + @TableField("member_ip") + private String memberIp; + + @TableField("create_time") + private Date createTime; + + @TableField("show_status") + private Integer showStatus; + + /** + * 购买时的商品属性 + */ + @TableField("product_attribute") + private String productAttribute; + + @TableField("collect_couont") + private Integer collectCouont; + + @TableField("read_count") + private Integer readCount; + + private String content; + + /** + * 上传图片地址,以逗号隔开 + */ + private String pics; + + /** + * 评论用户头像 + */ + @TableField("member_icon") + private String memberIcon; + + @TableField("replay_count") + private Integer replayCount; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + public String getMemberNickName() { + return memberNickName; + } + + public void setMemberNickName(String memberNickName) { + this.memberNickName = memberNickName; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public Integer getStar() { + return star; + } + + public void setStar(Integer star) { + this.star = star; + } + + public String getMemberIp() { + return memberIp; + } + + public void setMemberIp(String memberIp) { + this.memberIp = memberIp; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Integer getShowStatus() { + return showStatus; + } + + public void setShowStatus(Integer showStatus) { + this.showStatus = showStatus; + } + + public String getProductAttribute() { + return productAttribute; + } + + public void setProductAttribute(String productAttribute) { + this.productAttribute = productAttribute; + } + + public Integer getCollectCouont() { + return collectCouont; + } + + public void setCollectCouont(Integer collectCouont) { + this.collectCouont = collectCouont; + } + + public Integer getReadCount() { + return readCount; + } + + public void setReadCount(Integer readCount) { + this.readCount = readCount; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getPics() { + return pics; + } + + public void setPics(String pics) { + this.pics = pics; + } + + public String getMemberIcon() { + return memberIcon; + } + + public void setMemberIcon(String memberIcon) { + this.memberIcon = memberIcon; + } + + public Integer getReplayCount() { + return replayCount; + } + + public void setReplayCount(Integer replayCount) { + this.replayCount = replayCount; + } + + @Override + public String toString() { + return "PmsComment{" + + ", id=" + id + + ", productId=" + productId + + ", memberNickName=" + memberNickName + + ", productName=" + productName + + ", star=" + star + + ", memberIp=" + memberIp + + ", createTime=" + createTime + + ", showStatus=" + showStatus + + ", productAttribute=" + productAttribute + + ", collectCouont=" + collectCouont + + ", readCount=" + readCount + + ", content=" + content + + ", pics=" + pics + + ", memberIcon=" + memberIcon + + ", replayCount=" + replayCount + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsCommentReplay.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsCommentReplay.java new file mode 100644 index 0000000..8592dd5 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsCommentReplay.java @@ -0,0 +1,116 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 产品评价回复表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_comment_replay") +public class PmsCommentReplay extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("comment_id") + private Long commentId; + + @TableField("member_nick_name") + private String memberNickName; + + @TableField("member_icon") + private String memberIcon; + + private String content; + + @TableField("create_time") + private Date createTime; + + /** + * 评论人员类型;0->会员;1->管理员 + */ + private Integer type; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getCommentId() { + return commentId; + } + + public void setCommentId(Long commentId) { + this.commentId = commentId; + } + + public String getMemberNickName() { + return memberNickName; + } + + public void setMemberNickName(String memberNickName) { + this.memberNickName = memberNickName; + } + + public String getMemberIcon() { + return memberIcon; + } + + public void setMemberIcon(String memberIcon) { + this.memberIcon = memberIcon; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + @Override + public String toString() { + return "PmsCommentReplay{" + + ", id=" + id + + ", commentId=" + commentId + + ", memberNickName=" + memberNickName + + ", memberIcon=" + memberIcon + + ", content=" + content + + ", createTime=" + createTime + + ", type=" + type + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsFavorite.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsFavorite.java new file mode 100644 index 0000000..b02af02 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsFavorite.java @@ -0,0 +1,53 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ *

+ *

+ * + * @author zscat + * @since 2019-06-15 + */ +@Data +@TableName("pms_favorite") +public class PmsFavorite extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + @TableField("add_time") + private Date addTime; + + /** + * 1 商品 2 文章 3 店铺 4 及赠品 7 学校 + */ + private Integer type; + + @TableField("obj_id") + private Long objId; + + + @TableField("member_id") + private Long memberId; + + private String name; + + private String meno1; + + private String meno2; + + private String meno3; + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsFeightTemplate.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsFeightTemplate.java new file mode 100644 index 0000000..6cc774d --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsFeightTemplate.java @@ -0,0 +1,63 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 运费模版 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Data +@TableName("pms_feight_template") +public class PmsFeightTemplate extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String name; + + /** + * 计费类型:0->按重量;1->按件数 + */ + @TableField("charge_type") + private Integer chargeType; + + /** + * 首重kg + */ + @TableField("first_weight") + private BigDecimal firstWeight; + + /** + * 首费(元) + */ + @TableField("first_fee") + private BigDecimal firstFee; + + @TableField("continue_weight") + private BigDecimal continueWeight; + + @TableField("continme_fee") + private BigDecimal continmeFee; + + /** + * 目的地(省、市) + */ + private String dest; + @TableField("create_time") + private Date createTime; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsGifts.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsGifts.java new file mode 100644 index 0000000..360590f --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsGifts.java @@ -0,0 +1,73 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ * 帮助表 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +@Data +@TableName("pms_gifts") +public class PmsGifts extends BaseEntity { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 类别 + */ + @TableField("category_id") + private Long categoryId; + + /** + * 图片 + */ + private String icon; + + /** + * 标题 + */ + private String title; + + /** + * 状态 + */ + @TableField("show_status") + private Integer showStatus; + + /** + * 创建时间 + */ + @TableField("create_time") + private Date createTime; + + /** + * 内容 + */ + private String content; + + private Integer stock; + + /** + * 1 赠品 2 活动商品 + */ + private Integer type; + + private BigDecimal price; + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsGiftsCategory.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsGiftsCategory.java new file mode 100644 index 0000000..1712dd0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsGiftsCategory.java @@ -0,0 +1,50 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 帮助分类表 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +@Data +@TableName("pms_gifts_category") +public class PmsGiftsCategory implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 标题 + */ + private String name; + + /** + * 分类图标 + */ + private String icon; + + /** + * 状态 + */ + @TableField("show_status") + private Integer showStatus; + + /** + * 排序 + */ + private Integer sort; + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsMemberPrice.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsMemberPrice.java new file mode 100644 index 0000000..2049e80 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsMemberPrice.java @@ -0,0 +1,94 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 商品会员价格表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_member_price") +public class PmsMemberPrice extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_id") + private Long productId; + + @TableField("member_level_id") + private Long memberLevelId; + + /** + * 会员价格 + */ + @TableField("member_price") + private BigDecimal memberPrice; + + @TableField("member_level_name") + private String memberLevelName; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + public Long getMemberLevelId() { + return memberLevelId; + } + + public void setMemberLevelId(Long memberLevelId) { + this.memberLevelId = memberLevelId; + } + + public BigDecimal getMemberPrice() { + return memberPrice; + } + + public void setMemberPrice(BigDecimal memberPrice) { + this.memberPrice = memberPrice; + } + + public String getMemberLevelName() { + return memberLevelName; + } + + public void setMemberLevelName(String memberLevelName) { + this.memberLevelName = memberLevelName; + } + + @Override + public String toString() { + return "PmsMemberPrice{" + + ", id=" + id + + ", productId=" + productId + + ", memberLevelId=" + memberLevelId + + ", memberPrice=" + memberPrice + + ", memberLevelName=" + memberLevelName + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProduct.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProduct.java new file mode 100644 index 0000000..e38f687 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProduct.java @@ -0,0 +1,319 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import com.zscat.mallplus.vo.timeline.TimeSecound; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + *

+ * 商品信息 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Data +@TableName("pms_product") +public class PmsProduct extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("member_id") + private Long memberId; + @TableField("brand_id") + private Long brandId; + + + @TableField("store_class_id") + private Long storeClassId; + @TableField("product_category_id") + private Long productCategoryId; + + @TableField("feight_template_id") + private Long feightTemplateId; + + @TableField("product_attribute_category_id") + private Long productAttributeCategoryId; + + private String name; + + private String pic; + private Integer type;// 1出售、2义卖、3免费 + // 1普通 2拍卖 + @TableField("is_paimai") + private Integer isPaiMai;// + @TableField("expire_time") + private Date expireTime;// + + /** + * 货号 + */ + @TableField("product_sn") + private String productSn; + + /** + * 删除状态:1->未删除;0->已删除 + */ + @TableField("delete_status") + private Integer deleteStatus; + + /** + * 上架状态:0->下架;1->上架 + */ + @TableField("publish_status") + private Integer publishStatus; + + /** + * 新品状态:0->不是新品;1->新品 + */ + @TableField("new_status") + private Integer newStatus; + + /** + * 推荐状态;0->不推荐;1->推荐 + */ + @TableField("recommand_status") + private Integer recommandStatus; + + /** + * 审核状态:0->未审核;1->审核通过 + */ + @TableField("verify_status") + private Integer verifyStatus; + + /** + * 是否分销商品 + */ + @TableField("is_fenxiao") + private Integer isFenxiao; + /** + * 是否会员商品 + */ + @TableField("is_vip") + private Integer isVip; + /** + * 排序 + */ + private Integer sort; + + /** + * 销量 + */ + private Integer sale; + + private BigDecimal price; + + /** + * 促销价格 + */ + @TableField("promotion_price") + private BigDecimal promotionPrice; + + /** + * 收藏 + */ + @TableField("gift_growth") + private Integer giftGrowth; + + /** + * 点赞 + */ + @TableField("gift_point") + private Integer giftPoint; + + /** + * 限制使用的积分数 + */ + @TableField("use_point_limit") + private Integer usePointLimit; + + /** + * 副标题 + */ + @TableField("sub_title") + private String subTitle; + + /** + * 商品描述 + */ + private String description; + + /** + * 市场价 + */ + @TableField("original_price") + private BigDecimal originalPrice; + + /** + * 库存 + */ + private Integer stock; + + /** + * 库存预警值 + */ + @TableField("low_stock") + private Integer lowStock; + + /** + * 单位 + */ + private String unit; + + /** + * 商品重量,默认为克 + */ + private BigDecimal weight; + + /** + * 是否为预告商品:0->不是;1->是 + */ + @TableField("preview_status") + private Integer previewStatus; + + /** + * 以逗号分割的产品服务:1->无忧退货;2->快速退款;3->免费包邮 + */ + @TableField("service_ids") + private String serviceIds; + + private String keywords; + + private String note; + + /** + * 画册图片,连产品图片限制为5张,以逗号分割 + */ + @TableField("album_pics") + private String albumPics; + + @TableField("detail_title") + private String detailTitle; + + @TableField("detail_desc") + private String detailDesc; + + /** + * 产品详情网页内容 + */ + @TableField("detail_html") + private String detailHtml; + + /** + * 移动端网页详情 + */ + @TableField("detail_mobile_html") + private String detailMobileHtml; + + /** + * 促销开始时间 + */ + @TableField("promotion_start_time") + private Date promotionStartTime; + + /** + * 促销结束时间 + */ + @TableField("promotion_end_time") + private Date promotionEndTime; + + /** + * 活动限购数量 + */ + @TableField("promotion_per_limit") + private Integer promotionPerLimit; + + /** + * 促销类型:0->没有促销使用原价;1->使用促销价;2->使用会员价;3->使用阶梯价格;4->使用满减价格;5->限时购 + */ + @TableField("promotion_type") + private Integer promotionType; + + /** + * 品牌名称 + */ + @TableField("brand_name") + private String brandName; + /** + * 运费 + */ + private BigDecimal transfee; + /** + * 商品分类名称 + */ + @TableField("product_category_name") + private String productCategoryName; + + @TableField("supply_id") + private Long supplyId; + @TableField("area_id") + private Long areaId; + @TableField("create_time") + private Date createTime; + + @TableField("school_id") + private Long schoolId; + private Integer hit; + @TableField(exist = false) + private String keyword; + + @TableField("area_name") + private String areaName; + @TableField("school_name") + private String schoolName; + + @TableField("store_name") + private String storeName; + + + /** + * 1 學校 2 區域 + */ + @TableField(exist = false) + private int qsType; + + /** + * 标签 + */ + private String tags; + + /** + * 会员价 + */ + @TableField(exist = false) + private BigDecimal vipPrice; + + /** + * 会员折扣 + */ + @TableField(exist = false) + private Integer memberRate = 10; + /** + * 分销价格 + */ + @TableField(exist = false) + private BigDecimal fenxiaoPrice; + @TableField(exist = false) + private TimeSecound timeSecound; + /** + * 1 出售中 2 已售馨 3 仓库中 4 回收站 + */ + @TableField(exist = false) + private Integer status; + @TableField(exist = false) + List skuStockList; +// @TableField(exist = false) +// List tagList ; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductAttribute.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductAttribute.java new file mode 100644 index 0000000..ef8bc20 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductAttribute.java @@ -0,0 +1,198 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; + +/** + *

+ * 商品属性参数表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_product_attribute") +public class PmsProductAttribute extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_attribute_category_id") + private Long productAttributeCategoryId; + + private String name; + + /** + * 属性选择类型:0->唯一;1->单选;2->多选 + */ + @TableField("select_type") + private Integer selectType; + + /** + * 属性录入方式:0->手工录入;1->从列表中选取 + */ + @TableField("input_type") + private Integer inputType; + + /** + * 可选值列表,以逗号隔开 + */ + @TableField("input_list") + private String inputList; + + /** + * 排序字段:最高的可以单独上传图片 + */ + private Integer sort; + + /** + * 分类筛选样式:1->普通;1->颜色 + */ + @TableField("filter_type") + private Integer filterType; + + /** + * 检索类型;0->不需要进行检索;1->关键字检索;2->范围检索 + */ + @TableField("search_type") + private Integer searchType; + + /** + * 相同属性产品是否关联;0->不关联;1->关联 + */ + @TableField("related_status") + private Integer relatedStatus; + + /** + * 是否支持手动新增;0->不支持;1->支持 + */ + @TableField("hand_add_status") + private Integer handAddStatus; + + /** + * 属性的类型;0->规格;1->参数 + */ + private Integer type; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProductAttributeCategoryId() { + return productAttributeCategoryId; + } + + public void setProductAttributeCategoryId(Long productAttributeCategoryId) { + this.productAttributeCategoryId = productAttributeCategoryId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getSelectType() { + return selectType; + } + + public void setSelectType(Integer selectType) { + this.selectType = selectType; + } + + public Integer getInputType() { + return inputType; + } + + public void setInputType(Integer inputType) { + this.inputType = inputType; + } + + public String getInputList() { + return inputList; + } + + public void setInputList(String inputList) { + this.inputList = inputList; + } + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public Integer getFilterType() { + return filterType; + } + + public void setFilterType(Integer filterType) { + this.filterType = filterType; + } + + public Integer getSearchType() { + return searchType; + } + + public void setSearchType(Integer searchType) { + this.searchType = searchType; + } + + public Integer getRelatedStatus() { + return relatedStatus; + } + + public void setRelatedStatus(Integer relatedStatus) { + this.relatedStatus = relatedStatus; + } + + public Integer getHandAddStatus() { + return handAddStatus; + } + + public void setHandAddStatus(Integer handAddStatus) { + this.handAddStatus = handAddStatus; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + @Override + public String toString() { + return "PmsProductAttribute{" + + ", id=" + id + + ", productAttributeCategoryId=" + productAttributeCategoryId + + ", name=" + name + + ", selectType=" + selectType + + ", inputType=" + inputType + + ", inputList=" + inputList + + ", sort=" + sort + + ", filterType=" + filterType + + ", searchType=" + searchType + + ", relatedStatus=" + relatedStatus + + ", handAddStatus=" + handAddStatus + + ", type=" + type + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductAttributeCategory.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductAttributeCategory.java new file mode 100644 index 0000000..5b0481b --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductAttributeCategory.java @@ -0,0 +1,52 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 产品属性分类表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Data +@TableName("pms_product_attribute_category") +public class PmsProductAttributeCategory extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + @TableField(exist = false) + List goodsList; + @TableId(value = "id", type = IdType.AUTO) + private Long id; + private String name; + private String pic; + /** + * 属性数量 + */ + @TableField("attribute_count") + private Integer attributeCount; + /** + * 参数数量 + */ + @TableField("param_count") + private Integer paramCount; + + /** + * 列表样式 一列1 2 3个 + */ + private Integer style; + @TableField("show_index") + private Integer showIndex; + + @TableField(exist = false) + private List listGoods; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductAttributeValue.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductAttributeValue.java new file mode 100644 index 0000000..dbba9cb --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductAttributeValue.java @@ -0,0 +1,64 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import com.zscat.mallplus.utils.ValidatorUtils; +import lombok.Data; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +/** + *

+ * 存储产品参数信息的表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Data +@TableName("pms_product_attribute_value") +public class PmsProductAttributeValue extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_id") + private Long productId; + + @TableField("product_attribute_id") + private Long productAttributeId; + private Integer sort; + /** + * 手动添加规格或参数的值,参数单值,规格有多个时以逗号隔开 + */ + private String value; + private String name; + // 1 规格 2 参数 + private Integer type; + + + @TableField(exist = false) + private List pics; + + public List getPics() { + if (ValidatorUtils.notEmpty(value)) { + this.pics = Arrays.asList(value.split(",")); + } + return pics; + } + + public void setPics(List pics) { + if (ValidatorUtils.notEmpty(value)) { + this.pics = Arrays.asList(value.split(",")); + } + } + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductCategory.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductCategory.java new file mode 100644 index 0000000..37f1aa0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductCategory.java @@ -0,0 +1,87 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + *

+ * 产品分类 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_product_category") +@Data +public class PmsProductCategory extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 上机分类的编号:0表示一级分类 + */ + @TableField("parent_id") + private Long parentId; + + private String name; + + /** + * 分类级别:0->1级;1->2级 + */ + private Integer level; + + @TableField("product_count") + private Integer productCount; + + @TableField("product_unit") + private String productUnit; + + /** + * 是否显示在导航栏:0->不显示;1->显示 + */ + @TableField("nav_status") + private Integer navStatus; + + /** + * 显示状态:0->不显示;1->显示 + */ + @TableField("show_status") + private Integer showStatus; + /** + * 是否是首页分类0-->不是,1-->是 + */ + @TableField("index_status") + private Integer indexStatus; + + private Integer sort; + + /** + * 图标 + */ + private String icon; + + private String keywords; + + /** + * 描述 + */ + private String description; + + @TableField(exist = false) + @ApiModelProperty("产品相关筛选属性集合") + private List productAttributeIdList; + @TableField(exist = false) + private List childList; + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductCategoryAttributeRelation.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductCategoryAttributeRelation.java new file mode 100644 index 0000000..eff5af3 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductCategoryAttributeRelation.java @@ -0,0 +1,66 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; + +/** + *

+ * 产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类) + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_product_category_attribute_relation") +public class PmsProductCategoryAttributeRelation extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_category_id") + private Long productCategoryId; + + @TableField("product_attribute_id") + private Long productAttributeId; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProductCategoryId() { + return productCategoryId; + } + + public void setProductCategoryId(Long productCategoryId) { + this.productCategoryId = productCategoryId; + } + + public Long getProductAttributeId() { + return productAttributeId; + } + + public void setProductAttributeId(Long productAttributeId) { + this.productAttributeId = productAttributeId; + } + + @Override + public String toString() { + return "PmsProductCategoryAttributeRelation{" + + ", id=" + id + + ", productCategoryId=" + productCategoryId + + ", productAttributeId=" + productAttributeId + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductConsult.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductConsult.java new file mode 100644 index 0000000..f052b72 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductConsult.java @@ -0,0 +1,103 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 产品咨询表 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Data +@TableName("pms_product_consult") +public class PmsProductConsult extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 咨询编号 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + /** + * 商品编号 + */ + @TableField("goods_id") + private Long goodsId; + /** + * 商品编号 + */ + @TableField("order_id") + private Long orderId; + /** + * 商品名称 + */ + @TableField("goods_name") + private String goodsName; + + /** + * 咨询发布者会员编号(0:游客) + */ + @TableField("member_id") + private Long memberId; + + /** + * 会员名称 + */ + @TableField("member_name") + private String memberName; + private String pic; + + + /** + * 咨询发布者邮箱 + */ + private String email; + + /** + * 咨询内容 + */ + @TableField("consult_content") + private String consultContent; + + /** + * 咨询添加时间 + */ + @TableField("consult_addtime") + private Date consultAddtime; + + /** + * 咨询回复内容 + */ + @TableField("consult_reply") + private String consultReply; + + /** + * 咨询回复时间 + */ + @TableField("consult_reply_time") + private Date consultReplyTime; + + /** + * 0表示不匿名 1表示匿名 + */ + private Boolean isanonymous; + + // 1 差评 2 一般 3 好评 + private Integer stars; + // 1 商品 2 订单 + private Integer type; + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductFullReduction.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductFullReduction.java new file mode 100644 index 0000000..c06cefd --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductFullReduction.java @@ -0,0 +1,79 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 产品满减表(只针对同商品) + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_product_full_reduction") +public class PmsProductFullReduction extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_id") + private Long productId; + + @TableField("full_price") + private BigDecimal fullPrice; + + @TableField("reduce_price") + private BigDecimal reducePrice; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + public BigDecimal getFullPrice() { + return fullPrice; + } + + public void setFullPrice(BigDecimal fullPrice) { + this.fullPrice = fullPrice; + } + + public BigDecimal getReducePrice() { + return reducePrice; + } + + public void setReducePrice(BigDecimal reducePrice) { + this.reducePrice = reducePrice; + } + + @Override + public String toString() { + return "PmsProductFullReduction{" + + ", id=" + id + + ", productId=" + productId + + ", fullPrice=" + fullPrice + + ", reducePrice=" + reducePrice + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductLadder.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductLadder.java new file mode 100644 index 0000000..8b8b021 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductLadder.java @@ -0,0 +1,97 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * 产品阶梯价格表(只针对同商品) + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_product_ladder") +public class PmsProductLadder extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_id") + private Long productId; + + /** + * 满足的商品数量 + */ + private Integer count; + + /** + * 折扣 + */ + private BigDecimal discount; + + /** + * 折后价格 + */ + private BigDecimal price; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + public Integer getCount() { + return count; + } + + public void setCount(Integer count) { + this.count = count; + } + + public BigDecimal getDiscount() { + return discount; + } + + public void setDiscount(BigDecimal discount) { + this.discount = discount; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + @Override + public String toString() { + return "PmsProductLadder{" + + ", id=" + id + + ", productId=" + productId + + ", count=" + count + + ", discount=" + discount + + ", price=" + price + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductOperateLog.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductOperateLog.java new file mode 100644 index 0000000..761b3d8 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductOperateLog.java @@ -0,0 +1,182 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + *

+ *

+ *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_product_operate_log") +public class PmsProductOperateLog extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_id") + private Long productId; + + @TableField("price_old") + private BigDecimal priceOld; + + @TableField("price_new") + private BigDecimal priceNew; + + @TableField("sale_price_old") + private BigDecimal salePriceOld; + + @TableField("sale_price_new") + private BigDecimal salePriceNew; + + /** + * 赠送的积分 + */ + @TableField("gift_point_old") + private Integer giftPointOld; + + @TableField("gift_point_new") + private Integer giftPointNew; + + @TableField("use_point_limit_old") + private Integer usePointLimitOld; + + @TableField("use_point_limit_new") + private Integer usePointLimitNew; + + /** + * 操作人 + */ + @TableField("operate_man") + private String operateMan; + + @TableField("create_time") + private Date createTime; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + public BigDecimal getPriceOld() { + return priceOld; + } + + public void setPriceOld(BigDecimal priceOld) { + this.priceOld = priceOld; + } + + public BigDecimal getPriceNew() { + return priceNew; + } + + public void setPriceNew(BigDecimal priceNew) { + this.priceNew = priceNew; + } + + public BigDecimal getSalePriceOld() { + return salePriceOld; + } + + public void setSalePriceOld(BigDecimal salePriceOld) { + this.salePriceOld = salePriceOld; + } + + public BigDecimal getSalePriceNew() { + return salePriceNew; + } + + public void setSalePriceNew(BigDecimal salePriceNew) { + this.salePriceNew = salePriceNew; + } + + public Integer getGiftPointOld() { + return giftPointOld; + } + + public void setGiftPointOld(Integer giftPointOld) { + this.giftPointOld = giftPointOld; + } + + public Integer getGiftPointNew() { + return giftPointNew; + } + + public void setGiftPointNew(Integer giftPointNew) { + this.giftPointNew = giftPointNew; + } + + public Integer getUsePointLimitOld() { + return usePointLimitOld; + } + + public void setUsePointLimitOld(Integer usePointLimitOld) { + this.usePointLimitOld = usePointLimitOld; + } + + public Integer getUsePointLimitNew() { + return usePointLimitNew; + } + + public void setUsePointLimitNew(Integer usePointLimitNew) { + this.usePointLimitNew = usePointLimitNew; + } + + public String getOperateMan() { + return operateMan; + } + + public void setOperateMan(String operateMan) { + this.operateMan = operateMan; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + @Override + public String toString() { + return "PmsProductOperateLog{" + + ", id=" + id + + ", productId=" + productId + + ", priceOld=" + priceOld + + ", priceNew=" + priceNew + + ", salePriceOld=" + salePriceOld + + ", salePriceNew=" + salePriceNew + + ", giftPointOld=" + giftPointOld + + ", giftPointNew=" + giftPointNew + + ", usePointLimitOld=" + usePointLimitOld + + ", usePointLimitNew=" + usePointLimitNew + + ", operateMan=" + operateMan + + ", createTime=" + createTime + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductVertifyRecord.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductVertifyRecord.java new file mode 100644 index 0000000..0d514b3 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsProductVertifyRecord.java @@ -0,0 +1,107 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; +import java.util.Date; + +/** + *

+ * 商品审核记录 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_product_vertify_record") +public class PmsProductVertifyRecord extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_id") + private Long productId; + + @TableField("create_time") + private Date createTime; + + /** + * 审核人 + */ + @TableField("vertify_man") + private String vertifyMan; + + private Integer status; + + /** + * 反馈详情 + */ + private String detail; + + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public String getVertifyMan() { + return vertifyMan; + } + + public void setVertifyMan(String vertifyMan) { + this.vertifyMan = vertifyMan; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getDetail() { + return detail; + } + + public void setDetail(String detail) { + this.detail = detail; + } + + @Override + public String toString() { + return "PmsProductVertifyRecord{" + + ", id=" + id + + ", productId=" + productId + + ", createTime=" + createTime + + ", vertifyMan=" + vertifyMan + + ", status=" + status + + ", detail=" + detail + + "}"; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsSkuStock.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsSkuStock.java new file mode 100644 index 0000000..d89fe7f --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsSkuStock.java @@ -0,0 +1,248 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + *

+ * sku的库存 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@TableName("pms_sku_stock") +public class PmsSkuStock extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("product_id") + private Long productId; + + /** + * sku编码 + */ + @TableField("sku_code") + private String skuCode; + + private BigDecimal price; + + /** + * 库存 + */ + private Integer stock; + + /** + * 预警库存 + */ + @TableField("low_stock") + private Integer lowStock; + + /** + * 销售属性1 + */ + private String sp1; + + private String sp2; + + private String sp3; + private String sp4; + /** + * 展示图片 + */ + private String pic; + + /** + * 销量 + */ + private Integer sale; + + /** + * 单品促销价格 + */ + @TableField("promotion_price") + private BigDecimal promotionPrice; + + /** + * 锁定库存 + */ + @TableField("lock_stock") + private Integer lockStock; + + @TableField(exist = false) + private String meno; + + @TableField("product_name") + private String productName; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public Long getProductId() { + return productId; + } + + public void setProductId(Long productId) { + this.productId = productId; + } + + public String getSkuCode() { + return skuCode; + } + + public void setSkuCode(String skuCode) { + this.skuCode = skuCode; + } + + public BigDecimal getPrice() { + return price; + } + + public void setPrice(BigDecimal price) { + this.price = price; + } + + public Integer getStock() { + return stock; + } + + public void setStock(Integer stock) { + this.stock = stock; + } + + public Integer getLowStock() { + return lowStock; + } + + public void setLowStock(Integer lowStock) { + this.lowStock = lowStock; + } + + public String getSp1() { + return sp1; + } + + public void setSp1(String sp1) { + this.sp1 = sp1; + } + + public String getSp2() { + return sp2; + } + + public void setSp2(String sp2) { + this.sp2 = sp2; + } + + public String getSp3() { + return sp3; + } + + public void setSp3(String sp3) { + this.sp3 = sp3; + } + + public String getPic() { + return pic; + } + + public void setPic(String pic) { + this.pic = pic; + } + + public Integer getSale() { + return sale; + } + + public void setSale(Integer sale) { + this.sale = sale; + } + + public BigDecimal getPromotionPrice() { + return promotionPrice; + } + + public void setPromotionPrice(BigDecimal promotionPrice) { + this.promotionPrice = promotionPrice; + } + + public Integer getLockStock() { + return lockStock; + } + + public void setLockStock(Integer lockStock) { + this.lockStock = lockStock; + } + + public String getSp4() { + return sp4; + } + + public void setSp4(String sp4) { + this.sp4 = sp4; + } + + public String getMeno() { + StringBuffer sb = new StringBuffer("规格:" + this.sp1); + if (this.sp2 != null) { + sb.append("," + this.sp2); + } + if (this.sp3 != null) { + sb.append("," + this.sp3); + } + if (this.sp4 != null) { + sb.append("," + this.sp4); + } + return sb.toString(); + } + + public void setMeno(String meno) { + this.meno = meno; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", productId=").append(productId); + sb.append(", skuCode=").append(skuCode); + sb.append(", price=").append(price); + sb.append(", stock=").append(stock); + sb.append(", lowStock=").append(lowStock); + sb.append(", sp1=").append(sp1); + sb.append(", sp2=").append(sp2); + sb.append(", sp3=").append(sp3); + sb.append(", pic=").append(pic); + sb.append(", sale=").append(sale); + sb.append(", promotionPrice=").append(promotionPrice); + sb.append(", lockStock=").append(lockStock); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsSmallNaviconCategory.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsSmallNaviconCategory.java new file mode 100644 index 0000000..6177067 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/entity/PmsSmallNaviconCategory.java @@ -0,0 +1,54 @@ +package com.yxt.yythmall.mallplus.mbg.pms.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.zscat.mallplus.utils.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + + +/** + * @author zscat + * @Description:小程序首页nav管理 + * @email 951449465@qq.com + * @date 2019-05-08 00:09:37 + */ +@Data +@TableName("pms_small_navicon_category") +public class PmsSmallNaviconCategory extends BaseEntity implements Serializable { + private static final long serialVersionUID = 1L; + + + @ApiModelProperty(value = "小程序首页分类ID") + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @ApiModelProperty(value = "分类名称") + @TableField("title") + private String title; + + @ApiModelProperty(value = "分类图标") + @TableField("icon") + private String icon; + + // 1 h5 url 其他 /pages/classify/classify 2 商品详情 3文章详情 4文章列表 5 智能表单 + @ApiModelProperty(value = "跳转页面 h5") + @TableField("summary") + private String summary; + + @ApiModelProperty(value = "跳转类型applet") + @TableField("content") + private String content; + + @ApiModelProperty(value = "排序") + @TableField("sort") + private Integer sort; + + @ApiModelProperty(value = "跳转类型pc") + @TableField("pc_url") + private String pcUrl; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/CmsPrefrenceAreaProductRelationMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/CmsPrefrenceAreaProductRelationMapper.java new file mode 100644 index 0000000..511d7e0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/CmsPrefrenceAreaProductRelationMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.CmsPrefrenceAreaProductRelation; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 优选专区和产品关系表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-17 + */ +@Mapper +public interface CmsPrefrenceAreaProductRelationMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/CmsSubjectProductRelationMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/CmsSubjectProductRelationMapper.java new file mode 100644 index 0000000..4f6a639 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/CmsSubjectProductRelationMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.CmsSubjectProductRelation; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 专题商品关系表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-17 + */ +@Mapper +public interface CmsSubjectProductRelationMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsAlbumMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsAlbumMapper.java new file mode 100644 index 0000000..bb7cc4c --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsAlbumMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsAlbum; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 相册表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsAlbumMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsAlbumPicMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsAlbumPicMapper.java new file mode 100644 index 0000000..ba3dd89 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsAlbumPicMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsAlbumPic; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 画册图片表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsAlbumPicMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsBrandMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsBrandMapper.java new file mode 100644 index 0000000..1dce95e --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsBrandMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsBrand; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 品牌表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsBrandMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsCommentMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsCommentMapper.java new file mode 100644 index 0000000..483b8a8 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsCommentMapper.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsComment; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + *

+ * 商品评价表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsCommentMapper extends BaseMapper { + List getByProductId(Long productId); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsCommentReplayMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsCommentReplayMapper.java new file mode 100644 index 0000000..dd46e8b --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsCommentReplayMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsCommentReplay; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 产品评价回复表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsCommentReplayMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsFavoriteMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsFavoriteMapper.java new file mode 100644 index 0000000..024aca6 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsFavoriteMapper.java @@ -0,0 +1,22 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsFavorite; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author zscat + * @since 2019-06-15 + */ +@Mapper +public interface PmsFavoriteMapper extends BaseMapper { + + List selectCollectStatics(@Param("date") String date, @Param("pageSize") Integer pageSize); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsFeightTemplateMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsFeightTemplateMapper.java new file mode 100644 index 0000000..97188ff --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsFeightTemplateMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsFeightTemplate; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 运费模版 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsFeightTemplateMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsGiftsCategoryMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsGiftsCategoryMapper.java new file mode 100644 index 0000000..fb508a8 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsGiftsCategoryMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsGiftsCategory; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 帮助分类表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +@Mapper +public interface PmsGiftsCategoryMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsGiftsMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsGiftsMapper.java new file mode 100644 index 0000000..7842cd0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsGiftsMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsGifts; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 帮助表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-07-07 + */ +@Mapper +public interface PmsGiftsMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsGoodsGroupMapMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsGoodsGroupMapMapper.java new file mode 100644 index 0000000..baa3507 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsGoodsGroupMapMapper.java @@ -0,0 +1,28 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.EsShopGoodsGroupMap; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * Mapper 接口 + *

+ * + * @author meizhuang team + * @since 2019-04-16 + */ +@Mapper +public interface PmsGoodsGroupMapMapper extends BaseMapper { + + /** + * 查询分组推荐商品 + * + * @param id + * @return + */ + List selEsShopGoodsGroupMap(@Param("id") Long id); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsMemberPriceMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsMemberPriceMapper.java new file mode 100644 index 0000000..0cfd75a --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsMemberPriceMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsMemberPrice; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 商品会员价格表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsMemberPriceMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductAttributeCategoryMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductAttributeCategoryMapper.java new file mode 100644 index 0000000..fd4499e --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductAttributeCategoryMapper.java @@ -0,0 +1,22 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeCategory; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductAttributeCategoryItem; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + *

+ * 产品属性分类表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductAttributeCategoryMapper extends BaseMapper { + + List getListWithAttr(); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductAttributeMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductAttributeMapper.java new file mode 100644 index 0000000..147241f --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductAttributeMapper.java @@ -0,0 +1,26 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttribute; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductAttr; +import com.yxt.yythmall.mallplus.mbg.pms.vo.ProductAttrInfo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 商品属性参数表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductAttributeMapper extends BaseMapper { + + List getProductAttrInfo(Long productCategoryId); + + List getProductAttrById(@Param("productId") Long productId, @Param("type") int type); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductAttributeValueMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductAttributeValueMapper.java new file mode 100644 index 0000000..9f0f7b1 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductAttributeValueMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeValue; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 存储产品参数信息的表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductAttributeValueMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductCategoryAttributeRelationMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductCategoryAttributeRelationMapper.java new file mode 100644 index 0000000..e489315 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductCategoryAttributeRelationMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategoryAttributeRelation; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 产品的分类和属性的关系表,用于设置分类筛选条件(只支持一级分类) Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductCategoryAttributeRelationMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductCategoryMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductCategoryMapper.java new file mode 100644 index 0000000..b4e9516 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductCategoryMapper.java @@ -0,0 +1,27 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategory; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductCategoryWithChildrenItem; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 产品分类 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductCategoryMapper extends BaseMapper { + + List listWithChildren(); + + int selectCountByNameAndLevel(@Param("parentId") Long parentId, @Param("name") String name); + + int selectCountByNameAndLevelId(@Param("parentId") Long parentId, @Param("name") String name, @Param("id") Long id); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductConsultMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductConsultMapper.java new file mode 100644 index 0000000..5993e94 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductConsultMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductConsult; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 产品咨询表 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductConsultMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductFullReductionMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductFullReductionMapper.java new file mode 100644 index 0000000..3151f16 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductFullReductionMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductFullReduction; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 产品满减表(只针对同商品) Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductFullReductionMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductLadderMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductLadderMapper.java new file mode 100644 index 0000000..0e13e07 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductLadderMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductLadder; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 产品阶梯价格表(只针对同商品) Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductLadderMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductMapper.java new file mode 100644 index 0000000..799af92 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductMapper.java @@ -0,0 +1,35 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +//import com.zscat.mallplus.oms.vo.CartProduct; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProduct; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PmsProductResult; +import com.yxt.yythmall.mallplus.mbg.pms.vo.PromotionProduct; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 商品信息 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductMapper extends BaseMapper { + +// CartProduct getCartProduct(@Param("id") Long id); + + List getPromotionProductList(@Param("ids") List ids); + + PmsProductResult getUpdateInfo(Long id); + + Integer countGoodsByToday(@Param("id") Long id); + + List listByDate(@Param("date") String date, @Param("type") Integer type); + + List selectByTags(@Param("tags") String tags); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductOperateLogMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductOperateLogMapper.java new file mode 100644 index 0000000..7a4755a --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductOperateLogMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductOperateLog; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductOperateLogMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductVertifyRecordMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductVertifyRecordMapper.java new file mode 100644 index 0000000..f4abf01 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsProductVertifyRecordMapper.java @@ -0,0 +1,18 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductVertifyRecord; +import org.apache.ibatis.annotations.Mapper; + +/** + *

+ * 商品审核记录 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsProductVertifyRecordMapper extends BaseMapper { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsSkuStockMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsSkuStockMapper.java new file mode 100644 index 0000000..a13cc61 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsSkuStockMapper.java @@ -0,0 +1,24 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSkuStock; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * sku的库存 Mapper 接口 + *

+ * + * @author zscat + * @since 2019-04-19 + */ +@Mapper +public interface PmsSkuStockMapper extends BaseMapper { + /** + * 批量插入或替换操作 + */ + int replaceList(@Param("list") List skuStockList); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsSmallNaviconCategoryMapper.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsSmallNaviconCategoryMapper.java new file mode 100644 index 0000000..d0e2511 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/mapper/PmsSmallNaviconCategoryMapper.java @@ -0,0 +1,32 @@ +package com.yxt.yythmall.mallplus.mbg.pms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSmallNaviconCategory; +import org.apache.ibatis.annotations.Mapper; + + +/** + * 小程序首页nav管理 + * + * @author zscat + * @email 951449465@qq.com + * @date 2019-05-08 00:09:37 + */ + +@Mapper +public interface PmsSmallNaviconCategoryMapper extends BaseMapper { + + PmsSmallNaviconCategory get(Long id); + +// List list(PmsSmallNaviconCategory smallNaviconCategory); +// +// int count(PmsSmallNaviconCategory smallNaviconCategory); +// +// int save(PmsSmallNaviconCategory smallNaviconCategory); +// +// int update(PmsSmallNaviconCategory smallNaviconCategory); +// +// int remove(Long id); +// +// int batchRemove(Integer[] ids); +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ConsultTypeCount.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ConsultTypeCount.java new file mode 100644 index 0000000..be35bb8 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ConsultTypeCount.java @@ -0,0 +1,24 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + +import com.zscat.mallplus.utils.BaseEntity; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Auther: shenzhuan + * @Date: 2019/2/23 13:12 + * @Description: + */ +@Data +public class ConsultTypeCount extends BaseEntity implements Serializable { + private int all; + private int goods; + private int general; + private int bad; + private int other; + + private BigDecimal persent; + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/GoodsDetailResult.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/GoodsDetailResult.java new file mode 100644 index 0000000..fc33fad --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/GoodsDetailResult.java @@ -0,0 +1,39 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + +import com.yxt.yythmall.mallplus.mbg.pms.entity.*; +//import com.zscat.mallplus.sys.entity.SysStore; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 创建和修改商品时使用的参数 + * https://github.com/shenzhuan/mallplus on 2018/4/28. + */ +@Data +public class GoodsDetailResult implements Serializable { + @ApiModelProperty("商品阶梯价格设置") + private List productLadderList; + @ApiModelProperty("商品满减价格设置") + private List productFullReductionList; + @ApiModelProperty("商品会员价格设置") + private List memberPriceList; + @ApiModelProperty("商品的sku库存信息") + private List skuStockList; + @ApiModelProperty("商品参数及自定义规格属性") + private List productAttributeValueList; + private Object productAttributeNameValueList; + @ApiModelProperty("专题和商品关系") + private List subjectProductRelationList; + @ApiModelProperty("优选专区和商品的关系") + private List prefrenceAreaProductRelationList; + + private List productCanShuValueList; + private List typeGoodsList; + + private PmsProduct goods; +// private SysStore storeInfo; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/GoodsUtils.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/GoodsUtils.java new file mode 100644 index 0000000..f2bfa47 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/GoodsUtils.java @@ -0,0 +1,6 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + +public class GoodsUtils { + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PaiMaiParam.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PaiMaiParam.java new file mode 100644 index 0000000..800e6b4 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PaiMaiParam.java @@ -0,0 +1,17 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 创建和修改商品时使用的参数 + * https://github.com/shenzhuan/mallplus on 2018/4/26. + */ +@Data +public class PaiMaiParam implements Serializable { + private Long id; + private BigDecimal price; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductAndGroup.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductAndGroup.java new file mode 100644 index 0000000..e7be338 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductAndGroup.java @@ -0,0 +1,20 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProduct; +//import com.zscat.mallplus.sms.entity.SmsGroupMember; +import lombok.Data; + +import java.util.List; +import java.util.Map; + +/** + * 创建和修改商品时使用的参数 + * https://github.com/shenzhuan/mallplus on 2018/4/28. + */ +@Data +public class PmsProductAndGroup extends PmsProduct { +// private Map> map; + private String isGroup = "1"; //1 可以发起团购 + private String is_favorite; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductAttr.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductAttr.java new file mode 100644 index 0000000..e6e492f --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductAttr.java @@ -0,0 +1,17 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + +import lombok.Data; + +@Data +public class PmsProductAttr { + private String name; + private int select_type; + private int input_type; + private String input_list; + private int sort; + private int fiilter_type; + private int search_type; + private int related_status; + private int hand_add_status; + private int type; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductAttributeCategoryItem.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductAttributeCategoryItem.java new file mode 100644 index 0000000..ad65cd8 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductAttributeCategoryItem.java @@ -0,0 +1,23 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttribute; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductAttributeCategory; + +import java.util.List; + +/** + * 包含有分类下属性的dto + * https://github.com/shenzhuan/mallplus on 2018/5/24. + */ +public class PmsProductAttributeCategoryItem extends PmsProductAttributeCategory { + private List productAttributeList; + + public List getProductAttributeList() { + return productAttributeList; + } + + public void setProductAttributeList(List productAttributeList) { + this.productAttributeList = productAttributeList; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductCategoryWithChildrenItem.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductCategoryWithChildrenItem.java new file mode 100644 index 0000000..aeff1c0 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductCategoryWithChildrenItem.java @@ -0,0 +1,21 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductCategory; + +import java.util.List; + +/** + * https://github.com/shenzhuan/mallplus on 2018/5/25. + */ +public class PmsProductCategoryWithChildrenItem extends PmsProductCategory { + private List children; + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductParam.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductParam.java new file mode 100644 index 0000000..4fd87ed --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductParam.java @@ -0,0 +1,35 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + +import com.yxt.yythmall.mallplus.mbg.pms.entity.*; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 创建和修改商品时使用的参数 + * https://github.com/shenzhuan/mallplus on 2018/4/28. + */ +@Data +public class PmsProductParam extends PmsProduct { + @ApiModelProperty("商品阶梯价格设置") + private List productLadderList; + @ApiModelProperty("商品满减价格设置") + private List productFullReductionList; + @ApiModelProperty("商品会员价格设置") + private List memberPriceList; + @ApiModelProperty("商品的sku库存信息") + private List skuStockList; + @ApiModelProperty("商品参数及自定义规格属性") + private List productAttributeValueList; + @ApiModelProperty("专题和商品关系") + private List subjectProductRelationList; + @ApiModelProperty("优选专区和商品的关系") + private List prefrenceAreaProductRelationList; + Long[] tagLists; + private List productCanShuValueList; + private List typeGoodsList; + + private PmsProduct goods; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductQueryParam.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductQueryParam.java new file mode 100644 index 0000000..f4b080a --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductQueryParam.java @@ -0,0 +1,101 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 产品查询参数 + * https://github.com/shenzhuan/mallplus on 2018/4/27. + */ +@Data +public class PmsProductQueryParam { + @ApiModelProperty("上架状态") + private Integer publishStatus; + @ApiModelProperty("审核状态") + private Integer verifyStatus; + @ApiModelProperty("商品名称模糊关键字") + private String keyword; + @ApiModelProperty("商品货号") + private String productSn; + @ApiModelProperty("商品分类编号") + private Long productCategoryId; + @ApiModelProperty("商品品牌编号") + private Long brandId; + + private Integer pageSize = 10; + private Integer pageNum = 1; + private Long productAttributeCategoryId; + private String sort = "price asc"; // 1 asc + + public Integer getPublishStatus() { + return publishStatus; + } + + public void setPublishStatus(Integer publishStatus) { + this.publishStatus = publishStatus; + } + + public Integer getVerifyStatus() { + return verifyStatus; + } + + public void setVerifyStatus(Integer verifyStatus) { + this.verifyStatus = verifyStatus; + } + + public String getKeyword() { + return keyword; + } + + public void setKeyword(String keyword) { + this.keyword = keyword; + } + + public String getProductSn() { + return productSn; + } + + public void setProductSn(String productSn) { + this.productSn = productSn; + } + + public Long getProductCategoryId() { + return productCategoryId; + } + + public void setProductCategoryId(Long productCategoryId) { + this.productCategoryId = productCategoryId; + } + + public Long getBrandId() { + return brandId; + } + + public void setBrandId(Long brandId) { + this.brandId = brandId; + } + + public Long getProductAttributeCategoryId() { + return productAttributeCategoryId; + } + + public void setProductAttributeCategoryId(Long productAttributeCategoryId) { + this.productAttributeCategoryId = productAttributeCategoryId; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductResult.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductResult.java new file mode 100644 index 0000000..2978e66 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PmsProductResult.java @@ -0,0 +1,23 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsComment; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProduct; +import lombok.Data; + +import java.util.List; + +/** + * 查询单个产品进行修改时返回的结果 + * https://github.com/shenzhuan/mallplus on 2018/4/28. + */ +@Data +public class PmsProductResult extends PmsProductParam { + //商品所选分类的父id + private Long cateParentId; + private int is_favorite;// 1 已收藏 2 未收藏 + private List pmsProductAttrList; + private PmsProduct product; + private List pmsComments; + + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ProductAttrInfo.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ProductAttrInfo.java new file mode 100644 index 0000000..c936026 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ProductAttrInfo.java @@ -0,0 +1,27 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + +/** + * 商品分类对应属性信息 + * https://github.com/shenzhuan/mallplus on 2018/5/23. + */ +public class ProductAttrInfo { + private Long attributeId; + private Long attributeCategoryId; + + public Long getAttributeId() { + return attributeId; + } + + public void setAttributeId(Long attributeId) { + this.attributeId = attributeId; + } + + public Long getAttributeCategoryId() { + return attributeCategoryId; + } + + public void setAttributeCategoryId(Long attributeCategoryId) { + this.attributeCategoryId = attributeCategoryId; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ProductConsultParam.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ProductConsultParam.java new file mode 100644 index 0000000..3e0bbba --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ProductConsultParam.java @@ -0,0 +1,17 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * Created by Administrator on 2019/9/15. + */ +@Data +public class ProductConsultParam implements Serializable { + private Long goodsId; + private Integer score; + + private String[] images; + private String textarea; +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ProductTypeVo.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ProductTypeVo.java new file mode 100644 index 0000000..63303d8 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/ProductTypeVo.java @@ -0,0 +1,22 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 商品分类对应属性信息 + * https://github.com/shenzhuan/mallplus on 2018/5/23. + */ +@Data +public class ProductTypeVo { + private Long id; + private Long pid; + private Long goodsId; + private String pic; + private String name; + private BigDecimal price; + private Integer level; + +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PromotionProduct.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PromotionProduct.java new file mode 100644 index 0000000..eb48bfd --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/PromotionProduct.java @@ -0,0 +1,47 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; + + + +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProduct; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductFullReduction; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsProductLadder; +import com.yxt.yythmall.mallplus.mbg.pms.entity.PmsSkuStock; + +import java.util.List; + +/** + * https://github.com/shenzhuan/mallplus on 2018/8/27. + * 商品的促销信息,包括sku、打折优惠、满减优惠 + */ +public class PromotionProduct extends PmsProduct { + //商品库存信息 + private List skuStockList; + //商品打折信息 + private List productLadderList; + //商品满减信息 + private List productFullReductionList; + + public List getSkuStockList() { + return skuStockList; + } + + public void setSkuStockList(List skuStockList) { + this.skuStockList = skuStockList; + } + + public List getProductLadderList() { + return productLadderList; + } + + public void setProductLadderList(List productLadderList) { + this.productLadderList = productLadderList; + } + + public List getProductFullReductionList() { + return productFullReductionList; + } + + public void setProductFullReductionList(List productFullReductionList) { + this.productFullReductionList = productFullReductionList; + } +} diff --git a/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/SamplePmsProduct.java b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/SamplePmsProduct.java new file mode 100644 index 0000000..4e23555 --- /dev/null +++ b/src/main/java/com/yxt/yythmall/mallplus/mbg/pms/vo/SamplePmsProduct.java @@ -0,0 +1 @@ +package com.yxt.yythmall.mallplus.mbg.pms.vo; \ No newline at end of file diff --git a/src/main/java/com/zscat/mallplus/enums/AllEnum.java b/src/main/java/com/zscat/mallplus/enums/AllEnum.java new file mode 100644 index 0000000..8ed9a9e --- /dev/null +++ b/src/main/java/com/zscat/mallplus/enums/AllEnum.java @@ -0,0 +1,428 @@ +package com.zscat.mallplus.enums; + + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +/** + * 交易API Constant + * + * @author dp + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class AllEnum { + + + /** + * 改变类型:1->增加;2->减少 + * + * @author dp + */ + public enum ChangeType implements BaseEnum { + + /** + * 限价交易 + */ + Add(1, "add"), + + /** + * 市价交易 + */ + Min(2, "min"), + ; + + private int code; + private String value; + + ChangeType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 积分来源 + * + * @author dp + */ + public enum ChangeSource implements BaseEnum { + + + /** + * 下单 + */ + order(1, "order"), + + /** + * 登录 + */ + login(2, "login"), + /** + * 注册 + */ + register(3, "register"), + /** + * 签到送积分 + */ + sign(5, "sign"), + + /** + * 后台添加 + */ + admin(4, "admin"), + ; + + private int code; + private String value; + + ChangeSource(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 评论类型:1->商品;2->订单 + * + * @author dp + */ + public enum ConsultType implements BaseEnum { + + /** + * + */ + GOODS(1, "goods"), + + /** + * + */ + ORDER(2, "order"), + ; + + private int code; + private String value; + + ConsultType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 订单来源: + * + * @author dp + */ + public enum OrderSource implements BaseEnum { + + weixinApplet(1, "weixinApplet"), + h5Source(2, "h5Source"), + pcSource(3, "pcSource"), + android(4, "android"), + ios(5, "ios"), + ; + + private int code; + private String value; + + OrderSource(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 订单类型: + * + * @author dp + */ + public enum OrderType implements BaseEnum { + + /** + * 普通订单 + */ + COMMON(1, "common"), + /** + * 拼团订单 + */ + PIN_GROUP(2, "pingroup"), + /** + * 团购订单 + */ + GROUP_BUY(3, "groupbuy"), + /** + * 砍价订单 + */ + KNAN_JIA(4, "kanjia"), + JIFEN(5, "jifen"), + /** + * 门店自取 + */ + SHOP(7, "shop"), + /** + * 秒杀订单 + */ + SKILL(6, "skill"), + ; + + private int code; + private String value; + + OrderType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 支付类型 + */ + public enum OrderPayType implements BaseEnum { + + /** + * 微信小程序 + */ + weixinAppletPay(2, "weixinAppletPay"), + /** + * + */ + alipay(1, "alipay"), + /** + * 余额支付 + */ + balancePay(3, "balancePay"), + /** + * 积分兑换 + */ + jifenPay(5, "jifenPay"); + + private int code; + private String value; + + OrderPayType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 评论类型:1->商品;2->赠品 + * + * @author dp + */ + public enum OrderItemType implements BaseEnum { + + /** + * 商品 + */ + GOODS(1, "goods"), + + /** + * 礼品 + */ + GIFT(2, "gift"), + ; + + private int code; + private String value; + + OrderItemType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 余额类型:'全部', '消费', '退款', '充值', '提现', '佣金', '平台调整' + * + * @author dp + */ + public enum BlanceType implements BaseEnum { + + ALL(0, "ALL"), + /** + * + */ + CONSUMER(1, "CONSUMER"), + + /** + * + */ + REFUND(2, "REFUND"), + ADD(3, "ADD"), + + DRAW(4, "DRAW"), + + COMMISSION(5, "COMMISSION"), + + MODIFY(6, "MODIFY"), + ; + + private int code; + private String value; + + BlanceType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 订单退货申请::0->待处理;1->退货中;2->已完成;3->已拒绝 + * + * @author mallplus + */ + public enum OmsOrderReturnApplyStatus implements BaseEnum { + + /** + * + */ + INIT(0, "INIT"), + + REFUNDING(1, "REFUNDING"), + REFUNDED(2, "REFUNDED"), + /** + * + */ + REJECT(3, "REJECT"), + ; + + private int code; + private String value; + + OmsOrderReturnApplyStatus(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 订单退货申请:0换货,1退钱 2退货3 退钱退货 + * + * @author mallplus + */ + public enum OmsOrderReturnApplyType implements BaseEnum { + + CHANGEGOODS(0, "RETURNMONEY"), + /** + * + */ + RETURNMONEY(1, "RETURNMONEY"), + + RETURNGOODS(2, "RETURNGOODS"), + + /** + * + */ + RETURNGOODSMONEY(3, "RETURNGOODSMONEY"), + ; + + private int code; + private String value; + + OmsOrderReturnApplyType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } +} diff --git a/src/main/java/com/zscat/mallplus/enums/BargainEnum.java b/src/main/java/com/zscat/mallplus/enums/BargainEnum.java new file mode 100644 index 0000000..a0470ee --- /dev/null +++ b/src/main/java/com/zscat/mallplus/enums/BargainEnum.java @@ -0,0 +1,57 @@ +package com.zscat.mallplus.enums; + + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +/** + * 交易API Constant + * + * @author dp + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class BargainEnum { + + + /** + * 改变类型:1->增加;2->减少 + * + * @author dp + */ + public enum Status implements BaseEnum { + + /** + * 砍价中 + */ + INIT(1, "init"), + + /** + * 砍价成功 + */ + SUCESS(2, "sussce"), + /** + * 支付成功 + */ + PAY(3, "pay"); + + private int code; + private String value; + + Status(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + +} diff --git a/src/main/java/com/zscat/mallplus/enums/BaseEnum.java b/src/main/java/com/zscat/mallplus/enums/BaseEnum.java new file mode 100644 index 0000000..a18ba3e --- /dev/null +++ b/src/main/java/com/zscat/mallplus/enums/BaseEnum.java @@ -0,0 +1,7 @@ +package com.zscat.mallplus.enums; + +public interface BaseEnum { + K code(); + + String desc(); +} diff --git a/src/main/java/com/zscat/mallplus/enums/ConstansValue.java b/src/main/java/com/zscat/mallplus/enums/ConstansValue.java new file mode 100644 index 0000000..59d3789 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/enums/ConstansValue.java @@ -0,0 +1,31 @@ +package com.zscat.mallplus.enums; + +import com.google.common.collect.Lists; + +import java.util.List; + +/** + * Created by Administrator on 2019/8/9. + */ +public class ConstansValue { + public static final List IGNORE_TENANT_TABLES = Lists.newArrayList("sys_admin_log", "sys_web_log", "sys_permission_category", "columns", "tables", "information_schema.columns", + "information_schema.tables", "oms_payments", "oms_order_return_reason", "sys_role", "ums_integration_consume_setting", "sys_user", "sys_store", "sys_area", "sys_school", "sys_permission", "pms_product_attribute", "pms_product_category_attribute_relation", "pms_product_attribute_value", + "pms_product_category_attribute_relation", "admin_day_statics", "ums_member_tag","sys_store_rank", "pms_small_navicon_category", "bak_category", "es_shop_goods_group_map", "sys_applet_set", "bak_goods", "pms_product_category", "bak_brand", "oms_order_setting", "ums_member", "ums_member_level", "building_user_community", "gen_config"); + + public static final String sampleGoodsList = "id, brand_id, product_category_id, feight_template_id, product_attribute_category_id, name, pic, product_sn,\n" + + " delete_status, publish_status, new_status, recommand_status, verify_status, sort, sale, price, promotion_price,\n" + + " original_price, stock, low_stock, store_name,sub_title,store_id,unit,\n" + + " weight, preview_status, service_ids,is_fenxiao, tags, brand_name,\n" + + " product_category_name, supply_id, create_time,tags, school_id,area_id,is_vip"; + public static final String sampleGoodsList1 = "id, brand_id, product_category_id, product_attribute_category_id, name,area_id, pic ,\n" + + " sale, price,\n" + + " original_price,\n" + + " weight \n" + + " "; + public static final String sampleOrderList = "id,member_id, order_sn, create_time, member_username, total_amount, pay_amount,status, order_type,pay_type,source_type,goods_id,goods_name,delivery_sn,delivery_company,receiver_name,receiver_phone,receiver_detail_address,receiver_region"; + + public static final String sampleSubjectList = "id, category_id, title, pic, product_count, recommend_status, create_time, collect_count, read_count, comment_count, album_pics, description, show_status, forward_count, category_name, area_id, school_id, member_id, area_name, school_name, reward, member_name, video_src, type"; + + public static final String sampleCommunityList = "id, company_id, name, pic, price, phone, details,wuyecompany,wuyefei,latitude,longitude,create_time "; + +} diff --git a/src/main/java/com/zscat/mallplus/enums/OrderStatus.java b/src/main/java/com/zscat/mallplus/enums/OrderStatus.java new file mode 100644 index 0000000..d0b1ffb --- /dev/null +++ b/src/main/java/com/zscat/mallplus/enums/OrderStatus.java @@ -0,0 +1,40 @@ +package com.zscat.mallplus.enums; + +/** + * @Auther: Tiger + * @Date: 2019-04-26 16:04 + * @Description: + */ +public enum OrderStatus { + + + // 订单状态:12->待付款;2->待发货;3->待收货;4->待评价;5->已完成 ; + INIT(12),//待付款 + PayNotNotice(1),//支付成功,没有回掉 + TO_DELIVER(2),//待发货 + DELIVERED(3), // 待收货 + TO_COMMENT(4),//待评价 + TRADE_SUCCESS(5), // 已完成 + + PINTUAN_ORDER(18), // 拼团下单成功 + + TO_SHARE(8), // 待分享 + REFUNDING(13), // 申请退款 + REFUND(14), // 已退款 + // CANCELED(7), + CLOSED(15), // 已关闭 // 已取消 统一 + INVALID(16),//无效订单 + DELETED(17);//已删除 + + + private int value; + + private OrderStatus(int value) { + this.value = value; + } + + public int getValue() { + return this.value; + } + +} diff --git a/src/main/java/com/zscat/mallplus/enums/SmsEnum.java b/src/main/java/com/zscat/mallplus/enums/SmsEnum.java new file mode 100644 index 0000000..4905211 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/enums/SmsEnum.java @@ -0,0 +1,114 @@ +package com.zscat.mallplus.enums; + +import lombok.Getter; +import org.springframework.beans.factory.annotation.Value; + +/** + * @Author dimengzhe + * @Date 2023/2/23 9:01 + * @Description + */ +public class SmsEnum { + /** + * 手机短信登录验证码时效(秒) + */ + public static final Long APP_LOGIN_CODE_TIME_LIMIT = 300L; + + @Value("${redis.key.prefix.loginCode}") + private static String REDIS_KEY_PREFIX_LOGIN_CODE; + + @Value("${redis.key.prefix.forgetCode}") + private static String REDIS_KEY_PREFIX_FORGET_CODE; + + + /** + * 发送验证码 + */ + @Getter + public static enum SendEnum { + /** + * 登录 + */ + LOGIN("1", REDIS_KEY_PREFIX_LOGIN_CODE,"登录"), + FORGET("2", REDIS_KEY_PREFIX_FORGET_CODE,"忘记密码"), + ; + + + /** + * code值 + */ + private final String code; + /** + * 备注 + */ + private final String remarks; + /** + * 缓存识别码 + */ + private final String redisKey; + + /** + * 构造器 + * + * @param code code值 + * @param redisKey 缓存识别码 + * @param remarks 备注 + */ + private SendEnum(String code, String redisKey,String remarks) { + this.code = code; + this.remarks = remarks; + this.redisKey = redisKey; + } + } + + @Getter + public static enum SmsReturnEnum { + /** + * 发送短信返回参数 + */ + ZERO("1", "提交成功"), + ONE("-1", "账号未注册"), + TWO("-2", "网络访问超时,请稍后再试"), + three("-3", "帐号或密码错误"), + FOUR("-4", "只支持单发"), + FIVE("-5", "余额不足,请充值"), + SIX("-6", "定时发送时间不是有效的时间格式"), + SEVEN("-7", "提交信息末尾未加签名,请添加中文的企业签名【 】或未采用gb2312编码"), + EIGHT("-8", "发送内容需在1到300字之间"), + NINE("-9", "发送号码为空"), + TEN("-10", "定时时间不能小于系统当前时间"), + ELEVEN("-11", "屏蔽手机号码"), + ONEZEROONE("-101", "调用接口速度太快"), + ; + + /** + * code值 + */ + private final String code; + /** + * 备注 + */ + private final String remarks; + + /** + * 构造器 + * + * @param code code值 + * @param remarks 备注 + */ + private SmsReturnEnum(String code, String remarks) { + this.code = code; + this.remarks = remarks; + } + public static String getValueByKey(String code) { + SmsReturnEnum[] sysReturnEnum = values(); + for (SmsReturnEnum returnEnum: sysReturnEnum) { + if (returnEnum.getCode().equals(code)) { + return returnEnum.getRemarks(); + } + } + return null; + } + + } +} diff --git a/src/main/java/com/zscat/mallplus/enums/StatusEnum.java b/src/main/java/com/zscat/mallplus/enums/StatusEnum.java new file mode 100644 index 0000000..d38bc3f --- /dev/null +++ b/src/main/java/com/zscat/mallplus/enums/StatusEnum.java @@ -0,0 +1,92 @@ +package com.zscat.mallplus.enums; + + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +/** + * 交易API Constant + * + * @author dp + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class StatusEnum { + + + /** + * 审核类型: + * + * @author mallplus + */ + public enum AuditType implements BaseEnum { + + /** + * 初始状态 + */ + INIT(1, "init"), + /** + * 审核成功 + */ + FAIL(2, "fail"), + /** + * 审核失败 + */ + SUCESS(3, "sucess"), + ; + + private int code; + private String value; + + AuditType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 审核类型: + * + * @author mallplus + */ + public enum YesNoType implements BaseEnum { + + /** + * 启用 + */ + YES(1, "yes"), + + /** + * 禁用 + */ + NO(0, "no"), + ; + + private int code; + private String value; + + YesNoType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } +} diff --git a/src/main/java/com/zscat/mallplus/enums/UmsStatusEnum.java b/src/main/java/com/zscat/mallplus/enums/UmsStatusEnum.java new file mode 100644 index 0000000..73b695c --- /dev/null +++ b/src/main/java/com/zscat/mallplus/enums/UmsStatusEnum.java @@ -0,0 +1,92 @@ +package com.zscat.mallplus.enums; + + +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +/** + * 交易API Constant + * + * @author dp + */ +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class UmsStatusEnum { + + + /** + * 标签类型: + * + * @author mallplus + */ + public enum TagType implements BaseEnum { + + /** + * 会员标签 + */ + INIT(1, "会员标签"), + /** + * 审核成功 + */ + FAIL(2, "商品标签"), + /** + * 审核失败 + */ + SUCESS(3, "文章标签"), + ; + + private int code; + private String value; + + TagType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } + + /** + * 标签方式类型: + * + * @author mallplus + */ + public enum YesNoType implements BaseEnum { + + /** + * 自动标签 + */ + YES(1, "自动标签"), + + /** + * 手动标签 + */ + NO(2, "手动标签"), + ; + + private int code; + private String value; + + YesNoType(int code, String value) { + this.code = code; + this.value = value; + } + + @Override + public Integer code() { + return code; + } + + @Override + public String desc() { + return value; + } + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/ApiMallPlusException.java b/src/main/java/com/zscat/mallplus/exception/ApiMallPlusException.java new file mode 100644 index 0000000..10bf914 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/ApiMallPlusException.java @@ -0,0 +1,53 @@ +package com.zscat.mallplus.exception; + +/** + * 自定义异常 + * + * @author zscat + * @email 951449465@qq.com + * @date 2016年10月27日 下午10:11:27 + */ +public class ApiMallPlusException extends RuntimeException { + private static final long serialVersionUID = 1L; + + private String errmsg; + private int errno = 500; + + public ApiMallPlusException(String errmsg) { + super(errmsg); + this.errmsg = errmsg; + } + + public ApiMallPlusException(String errmsg, Throwable e) { + super(errmsg, e); + this.errmsg = errmsg; + } + + public ApiMallPlusException(String errmsg, int errno) { + super(errmsg); + this.errmsg = errmsg; + this.errno = errno; + } + + public ApiMallPlusException(String errmsg, int errno, Throwable e) { + super(errmsg, e); + this.errmsg = errmsg; + this.errno = errno; + } + + public String getErrmsg() { + return errmsg; + } + + public void setErrmsg(String errmsg) { + this.errmsg = errmsg; + } + + public int getErrno() { + return errno; + } + + public void setErrno(int errno) { + this.errno = errno; + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/BusinessMallException.java b/src/main/java/com/zscat/mallplus/exception/BusinessMallException.java new file mode 100644 index 0000000..e915576 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/BusinessMallException.java @@ -0,0 +1,53 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.zscat.mallplus.exception; + +public class BusinessMallException extends RuntimeException { + private static final long serialVersionUID = 2874510430549463213L; + private int returnCode; + + public BusinessMallException() { + } + + public BusinessMallException(String message, Throwable cause) { + super(message, cause); + } + + public BusinessMallException(String message) { + super(message); + } + + public BusinessMallException(Throwable cause) { + super(cause); + } + + public BusinessMallException(int returnCode) { + this.returnCode = returnCode; + } + + public BusinessMallException(Exception e, int returnCode) { + super(e); + this.returnCode = returnCode; + } + + public BusinessMallException(String message, int returnCode) { + super(message); + this.returnCode = returnCode; + } + + public BusinessMallException(String message, Exception e, int returnCode) { + super(message, e); + this.returnCode = returnCode; + } + + public int getReturnCode() { + return this.returnCode; + } + + public void setReturnCode(int returnCode) { + this.returnCode = returnCode; + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/JwtTokenExpiredException.java b/src/main/java/com/zscat/mallplus/exception/JwtTokenExpiredException.java new file mode 100644 index 0000000..43f8052 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/JwtTokenExpiredException.java @@ -0,0 +1,54 @@ +package com.zscat.mallplus.exception; + +/** + * 自定义异常 + * + * @author zscat + * @email 951449465@qq.com + * @date 2016年10月27日 下午10:11:27 + */ +public class JwtTokenExpiredException extends RuntimeException { + private static final long serialVersionUID = 1L; + + private String errmsg; + private int errno = 1001; + + public JwtTokenExpiredException(String errmsg) { + super(errmsg); + this.errmsg = errmsg; + this.errno = errno; + } + + public JwtTokenExpiredException(String errmsg, Throwable e) { + super(errmsg, e); + this.errmsg = errmsg; + } + + public JwtTokenExpiredException(String errmsg, int errno) { + super(errmsg); + this.errmsg = errmsg; + this.errno = errno; + } + + public JwtTokenExpiredException(String errmsg, int errno, Throwable e) { + super(errmsg, e); + this.errmsg = errmsg; + this.errno = errno; + } + + public String getErrmsg() { + return errmsg; + } + + public void setErrmsg(String errmsg) { + this.errmsg = errmsg; + } + + public int getErrno() { + return errno; + } + + public void setErrno(int errno) { + this.errno = errno; + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/MemberNotExitException.java b/src/main/java/com/zscat/mallplus/exception/MemberNotExitException.java new file mode 100644 index 0000000..bc79df9 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/MemberNotExitException.java @@ -0,0 +1,53 @@ +package com.zscat.mallplus.exception; + +/** + * 自定义异常 + * + * @author zscat + * @email 951449465@qq.com + * @date 2016年10月27日 下午10:11:27 + */ +public class MemberNotExitException extends RuntimeException { + private static final long serialVersionUID = 1L; + + private String errmsg; + private int errno = 500; + + public MemberNotExitException(String errmsg) { + super(errmsg); + this.errmsg = errmsg; + } + + public MemberNotExitException(String errmsg, Throwable e) { + super(errmsg, e); + this.errmsg = errmsg; + } + + public MemberNotExitException(String errmsg, int errno) { + super(errmsg); + this.errmsg = errmsg; + this.errno = errno; + } + + public MemberNotExitException(String errmsg, int errno, Throwable e) { + super(errmsg, e); + this.errmsg = errmsg; + this.errno = errno; + } + + public String getErrmsg() { + return errmsg; + } + + public void setErrmsg(String errmsg) { + this.errmsg = errmsg; + } + + public int getErrno() { + return errno; + } + + public void setErrno(int errno) { + this.errno = errno; + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/Server.java b/src/main/java/com/zscat/mallplus/exception/Server.java new file mode 100644 index 0000000..31b957a --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/Server.java @@ -0,0 +1,212 @@ +package com.zscat.mallplus.exception; + + +import com.zscat.mallplus.exception.server.*; +import com.zscat.mallplus.utils.Arith; +//import oshi.SystemInfo; +//import oshi.hardware.CentralProcessor; +//import oshi.hardware.CentralProcessor.TickType; +//import oshi.hardware.GlobalMemory; +//import oshi.hardware.HardwareAbstractionLayer; +//import oshi.software.os.FileSystem; +//import oshi.software.os.OSFileStore; +//import oshi.software.os.OperatingSystem; +//import oshi.util.Util; + +import java.net.UnknownHostException; +import java.util.LinkedList; +import java.util.List; +import java.util.Properties; + +/** + * 服务器相关信息 + * + * @author Vean + */ +public class Server { + + private static final int OSHI_WAIT_SECOND = 1000; + + /** + * CPU相关信息 + */ + private Cpu cpu = new Cpu(); + + /** + * 內存相关信息 + */ + private Mem mem = new Mem(); + + /** + * JVM相关信息 + */ + private Jvm jvm = new Jvm(); + + /** + * 服务器相关信息 + */ + private Sys sys = new Sys(); + + /** + * 磁盘相关信息 + */ + private List sysFiles = new LinkedList(); + + public Cpu getCpu() { + return cpu; + } + + public void setCpu(Cpu cpu) { + this.cpu = cpu; + } + + public Mem getMem() { + return mem; + } + + public void setMem(Mem mem) { + this.mem = mem; + } + + public Jvm getJvm() { + return jvm; + } + + public void setJvm(Jvm jvm) { + this.jvm = jvm; + } + + public Sys getSys() { + return sys; + } + + public void setSys(Sys sys) { + this.sys = sys; + } + + public List getSysFiles() { + return sysFiles; + } + + /** + * 设置磁盘信息 + */ +// private void setSysFiles(OperatingSystem os) { +// FileSystem fileSystem = os.getFileSystem(); +// OSFileStore[] fsArray = fileSystem.getFileStores(); +// for (OSFileStore fs : fsArray) { +// long free = fs.getUsableSpace(); +// long total = fs.getTotalSpace(); +// long used = total - free; +// SysFile sysFile = new SysFile(); +// sysFile.setDirName(fs.getMount()); +// sysFile.setSysTypeName(fs.getType()); +// sysFile.setTypeName(fs.getName()); +// sysFile.setTotal(convertFileSize(total)); +// sysFile.setFree(convertFileSize(free)); +// sysFile.setUsed(convertFileSize(used)); +// sysFile.setUsage(Arith.mul(Arith.div(used, total, 4), 100)); +// sysFiles.add(sysFile); +// } +// } + + public void setSysFiles(List sysFiles) { + this.sysFiles = sysFiles; + } + +// public void copyTo() throws Exception { +// SystemInfo si = new SystemInfo(); +// HardwareAbstractionLayer hal = si.getHardware(); +// +// setCpuInfo(hal.getProcessor()); +// +// setMemInfo(hal.getMemory()); +// +// setSysInfo(); +// +// setJvmInfo(); +// +// setSysFiles(si.getOperatingSystem()); +// } + + /** + * 设置CPU信息 + */ +// private void setCpuInfo(CentralProcessor processor) { +// // CPU信息 +// long[] prevTicks = processor.getSystemCpuLoadTicks(); +// Util.sleep(OSHI_WAIT_SECOND); +// long[] ticks = processor.getSystemCpuLoadTicks(); +// long nice = ticks[TickType.NICE.getIndex()] - prevTicks[TickType.NICE.getIndex()]; +// long irq = ticks[TickType.IRQ.getIndex()] - prevTicks[TickType.IRQ.getIndex()]; +// long softirq = ticks[TickType.SOFTIRQ.getIndex()] - prevTicks[TickType.SOFTIRQ.getIndex()]; +// long steal = ticks[TickType.STEAL.getIndex()] - prevTicks[TickType.STEAL.getIndex()]; +// long cSys = ticks[TickType.SYSTEM.getIndex()] - prevTicks[TickType.SYSTEM.getIndex()]; +// long user = ticks[TickType.USER.getIndex()] - prevTicks[TickType.USER.getIndex()]; +// long iowait = ticks[TickType.IOWAIT.getIndex()] - prevTicks[TickType.IOWAIT.getIndex()]; +// long idle = ticks[TickType.IDLE.getIndex()] - prevTicks[TickType.IDLE.getIndex()]; +// long totalCpu = user + nice + cSys + idle + iowait + irq + softirq + steal; +// cpu.setCpuNum(processor.getLogicalProcessorCount()); +// cpu.setTotal(totalCpu); +// cpu.setSys(cSys); +// cpu.setUsed(user); +// cpu.setWait(iowait); +// cpu.setFree(idle); +// } + + /** + * 设置内存信息 + */ +// private void setMemInfo(GlobalMemory memory) { +// mem.setTotal(memory.getTotal()); +// mem.setUsed(memory.getTotal() - memory.getAvailable()); +// mem.setFree(memory.getAvailable()); +// } + + /** + * 设置服务器信息 + */ + private void setSysInfo() { + Properties props = System.getProperties(); + // sys.setComputerName(IpUtils.getHostName()); + // sys.setComputerIp(IpUtils.getHostIp()); + sys.setOsName(props.getProperty("os.name")); + sys.setOsArch(props.getProperty("os.arch")); + sys.setUserDir(props.getProperty("user.dir")); + } + + /** + * 设置Java虚拟机 + */ + private void setJvmInfo() throws UnknownHostException { + Properties props = System.getProperties(); + jvm.setTotal(Runtime.getRuntime().totalMemory()); + jvm.setMax(Runtime.getRuntime().maxMemory()); + jvm.setFree(Runtime.getRuntime().freeMemory()); + jvm.setVersion(props.getProperty("java.version")); + jvm.setHome(props.getProperty("java.home")); + } + + /** + * 字节转换 + * + * @param size 字节大小 + * @return 转换后值 + */ + public String convertFileSize(long size) { + long kb = 1024; + long mb = kb * 1024; + long gb = mb * 1024; + if (size >= gb) { + return String.format("%.1f GB", (float) size / gb); + } else if (size >= mb) { + float f = (float) size / mb; + return String.format(f > 100 ? "%.0f MB" : "%.1f MB", f); + } else if (size >= kb) { + float f = (float) size / kb; + return String.format(f > 100 ? "%.0f KB" : "%.1f KB", f); + } else { + return String.format("%d B", size); + } + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/server/Cpu.java b/src/main/java/com/zscat/mallplus/exception/server/Cpu.java new file mode 100644 index 0000000..2ca2a7b --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/server/Cpu.java @@ -0,0 +1,89 @@ +package com.zscat.mallplus.exception.server; + + +import com.zscat.mallplus.utils.Arith; + +/** + * CPU相关信息 + * + * @author Vean + */ +public class Cpu { + /** + * 核心数 + */ + private int cpuNum; + + /** + * CPU总的使用率 + */ + private double total; + + /** + * CPU系统使用率 + */ + private double sys; + + /** + * CPU用户使用率 + */ + private double used; + + /** + * CPU当前等待率 + */ + private double wait; + + /** + * CPU当前空闲率 + */ + private double free; + + public int getCpuNum() { + return cpuNum; + } + + public void setCpuNum(int cpuNum) { + this.cpuNum = cpuNum; + } + + public double getTotal() { + return Arith.round(Arith.mul(total, 100), 2); + } + + public void setTotal(double total) { + this.total = total; + } + + public double getSys() { + return Arith.round(Arith.mul(sys / total, 100), 2); + } + + public void setSys(double sys) { + this.sys = sys; + } + + public double getUsed() { + return Arith.round(Arith.mul(used / total, 100), 2); + } + + public void setUsed(double used) { + this.used = used; + } + + public double getWait() { + return Arith.round(Arith.mul(wait / total, 100), 2); + } + + public void setWait(double wait) { + this.wait = wait; + } + + public double getFree() { + return Arith.round(Arith.mul(free / total, 100), 2); + } + + public void setFree(double free) { + this.free = free; + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/server/Jvm.java b/src/main/java/com/zscat/mallplus/exception/server/Jvm.java new file mode 100644 index 0000000..6e934a6 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/server/Jvm.java @@ -0,0 +1,108 @@ +package com.zscat.mallplus.exception.server; + + +import com.zscat.mallplus.utils.Arith; +import com.zscat.mallplus.utils.DateUtils; + +import java.lang.management.ManagementFactory; + +/** + * JVM相关信息 + * + * @author Vean + */ +public class Jvm { + /** + * 当前JVM占用的内存总数(M) + */ + private double total; + + /** + * JVM最大可用内存总数(M) + */ + private double max; + + /** + * JVM空闲内存(M) + */ + private double free; + + /** + * JDK版本 + */ + private String version; + + /** + * JDK路径 + */ + private String home; + + public double getTotal() { + return Arith.div(total, (1024 * 1024), 2); + } + + public void setTotal(double total) { + this.total = total; + } + + public double getMax() { + return Arith.div(max, (1024 * 1024), 2); + } + + public void setMax(double max) { + this.max = max; + } + + public double getFree() { + return Arith.div(free, (1024 * 1024), 2); + } + + public void setFree(double free) { + this.free = free; + } + + public double getUsed() { + return Arith.div(total - free, (1024 * 1024), 2); + } + + public double getUsage() { + return Arith.mul(Arith.div(total - free, total, 4), 100); + } + + /** + * 获取JDK名称 + */ + public String getName() { + return ManagementFactory.getRuntimeMXBean().getVmName(); + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getHome() { + return home; + } + + public void setHome(String home) { + this.home = home; + } + + /** + * JDK启动时间 + */ + public String getStartTime() { + return DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, DateUtils.getServerStartDate()); + } + + /** + * JDK运行时间 + */ + public String getRunTime() { + return DateUtils.getDatePoor(DateUtils.getNowDate(), DateUtils.getServerStartDate()); + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/server/Mem.java b/src/main/java/com/zscat/mallplus/exception/server/Mem.java new file mode 100644 index 0000000..73dd0dc --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/server/Mem.java @@ -0,0 +1,54 @@ +package com.zscat.mallplus.exception.server; + + +import com.zscat.mallplus.utils.Arith; + +/** + * 內存相关信息 + * + * @author Vean + */ +public class Mem { + /** + * 内存总量 + */ + private double total; + + /** + * 已用内存 + */ + private double used; + + /** + * 剩余内存 + */ + private double free; + + public double getTotal() { + return Arith.div(total, (1024 * 1024 * 1024), 2); + } + + public void setTotal(long total) { + this.total = total; + } + + public double getUsed() { + return Arith.div(used, (1024 * 1024 * 1024), 2); + } + + public void setUsed(long used) { + this.used = used; + } + + public double getFree() { + return Arith.div(free, (1024 * 1024 * 1024), 2); + } + + public void setFree(long free) { + this.free = free; + } + + public double getUsage() { + return Arith.mul(Arith.div(used, total, 4), 100); + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/server/Sys.java b/src/main/java/com/zscat/mallplus/exception/server/Sys.java new file mode 100644 index 0000000..dc9f1b2 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/server/Sys.java @@ -0,0 +1,73 @@ +package com.zscat.mallplus.exception.server; + +/** + * 系统相关信息 + * + * @author Vean + */ +public class Sys { + /** + * 服务器名称 + */ + private String computerName; + + /** + * 服务器Ip + */ + private String computerIp; + + /** + * 项目路径 + */ + private String userDir; + + /** + * 操作系统 + */ + private String osName; + + /** + * 系统架构 + */ + private String osArch; + + public String getComputerName() { + return computerName; + } + + public void setComputerName(String computerName) { + this.computerName = computerName; + } + + public String getComputerIp() { + return computerIp; + } + + public void setComputerIp(String computerIp) { + this.computerIp = computerIp; + } + + public String getUserDir() { + return userDir; + } + + public void setUserDir(String userDir) { + this.userDir = userDir; + } + + public String getOsName() { + return osName; + } + + public void setOsName(String osName) { + this.osName = osName; + } + + public String getOsArch() { + return osArch; + } + + public void setOsArch(String osArch) { + this.osArch = osArch; + } +} diff --git a/src/main/java/com/zscat/mallplus/exception/server/SysFile.java b/src/main/java/com/zscat/mallplus/exception/server/SysFile.java new file mode 100644 index 0000000..43a4efd --- /dev/null +++ b/src/main/java/com/zscat/mallplus/exception/server/SysFile.java @@ -0,0 +1,99 @@ +package com.zscat.mallplus.exception.server; + +/** + * 系统文件相关信息 + * + * @author Vean + */ +public class SysFile { + /** + * 盘符路径 + */ + private String dirName; + + /** + * 盘符类型 + */ + private String sysTypeName; + + /** + * 文件类型 + */ + private String typeName; + + /** + * 总大小 + */ + private String total; + + /** + * 剩余大小 + */ + private String free; + + /** + * 已经使用量 + */ + private String used; + + /** + * 资源的使用率 + */ + private double usage; + + public String getDirName() { + return dirName; + } + + public void setDirName(String dirName) { + this.dirName = dirName; + } + + public String getSysTypeName() { + return sysTypeName; + } + + public void setSysTypeName(String sysTypeName) { + this.sysTypeName = sysTypeName; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + public String getTotal() { + return total; + } + + public void setTotal(String total) { + this.total = total; + } + + public String getFree() { + return free; + } + + public void setFree(String free) { + this.free = free; + } + + public String getUsed() { + return used; + } + + public void setUsed(String used) { + this.used = used; + } + + public double getUsage() { + return usage; + } + + public void setUsage(double usage) { + this.usage = usage; + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/Arith.java b/src/main/java/com/zscat/mallplus/utils/Arith.java new file mode 100644 index 0000000..6f13c3e --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/Arith.java @@ -0,0 +1,113 @@ +package com.zscat.mallplus.utils; + +import java.math.BigDecimal; +import java.math.RoundingMode; + +/** + * 精确的浮点数运算 + * + * @author Vean + */ +public class Arith { + + /** + * 默认除法运算精度 + */ + private static final int DEF_DIV_SCALE = 10; + + /** + * 这个类不能实例化 + */ + private Arith() { + } + + /** + * 提供精确的加法运算。 + * + * @param v1 被加数 + * @param v2 加数 + * @return 两个参数的和 + */ + public static double add(double v1, double v2) { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.add(b2).doubleValue(); + } + + /** + * 提供精确的减法运算。 + * + * @param v1 被减数 + * @param v2 减数 + * @return 两个参数的差 + */ + public static double sub(double v1, double v2) { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.subtract(b2).doubleValue(); + } + + /** + * 提供精确的乘法运算。 + * + * @param v1 被乘数 + * @param v2 乘数 + * @return 两个参数的积 + */ + public static double mul(double v1, double v2) { + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + return b1.multiply(b2).doubleValue(); + } + + /** + * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到 + * 小数点以后10位,以后的数字四舍五入。 + * + * @param v1 被除数 + * @param v2 除数 + * @return 两个参数的商 + */ + public static double div(double v1, double v2) { + return div(v1, v2, DEF_DIV_SCALE); + } + + /** + * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指 + * 定精度,以后的数字四舍五入。 + * + * @param v1 被除数 + * @param v2 除数 + * @param scale 表示表示需要精确到小数点以后几位。 + * @return 两个参数的商 + */ + public static double div(double v1, double v2, int scale) { + if (scale < 0) { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + BigDecimal b1 = new BigDecimal(Double.toString(v1)); + BigDecimal b2 = new BigDecimal(Double.toString(v2)); + if (b1.compareTo(BigDecimal.ZERO) == 0) { + return BigDecimal.ZERO.doubleValue(); + } + return b1.divide(b2, scale, RoundingMode.HALF_UP).doubleValue(); + } + + /** + * 提供精确的小数位四舍五入处理。 + * + * @param v 需要四舍五入的数字 + * @param scale 小数点后保留几位 + * @return 四舍五入后的结果 + */ + public static double round(double v, int scale) { + if (scale < 0) { + throw new IllegalArgumentException( + "The scale must be a positive integer or zero"); + } + BigDecimal b = new BigDecimal(Double.toString(v)); + BigDecimal one = new BigDecimal("1"); + return b.divide(one, scale, RoundingMode.HALF_UP).doubleValue(); + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/BankUtil.java b/src/main/java/com/zscat/mallplus/utils/BankUtil.java new file mode 100644 index 0000000..951460d --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/BankUtil.java @@ -0,0 +1,390 @@ +package com.zscat.mallplus.utils; + +/** + * 通过银行的Bin号 来获取 银行名称 + * + * @author 一介草民 + */ +public class BankUtil { + //BIN号 + private final static String[] bankBin = { + "621098", "622150", "622151", "622181", "622188", "955100", "621095", "620062", "621285", "621798", "621799", + "621797", "620529", "622199", "621096", "621622", "623219", "621674", "623218", "621599", "370246", "370248", + "370249", "427010", "427018", "427019", "427020", "427029", "427030", "427039", "370247", "438125", "438126", + "451804", "451810", "451811", "458071", "489734", "489735", "489736", "510529", "427062", "524091", "427064", + "530970", "530990", "558360", "620200", "620302", "620402", "620403", "620404", "524047", "620406", "620407", + "525498", "620409", "620410", "620411", "620412", "620502", "620503", "620405", "620408", "620512", "620602", + "620604", "620607", "620611", "620612", "620704", "620706", "620707", "620708", "620709", "620710", "620609", + "620712", "620713", "620714", "620802", "620711", "620904", "620905", "621001", "620902", "621103", "621105", + "621106", "621107", "621102", "621203", "621204", "621205", "621206", "621207", "621208", "621209", "621210", + "621302", "621303", "621202", "621305", "621306", "621307", "621309", "621311", "621313", "621211", "621315", + "621304", "621402", "621404", "621405", "621406", "621407", "621408", "621409", "621410", "621502", "621317", + "621511", "621602", "621603", "621604", "621605", "621608", "621609", "621610", "621611", "621612", "621613", + "621614", "621615", "621616", "621617", "621607", "621606", "621804", "621807", "621813", "621814", "621817", + "621901", "621904", "621905", "621906", "621907", "621908", "621909", "621910", "621911", "621912", "621913", + "621915", "622002", "621903", "622004", "622005", "622006", "622007", "622008", "622010", "622011", "622012", + "621914", "622015", "622016", "622003", "622018", "622019", "622020", "622102", "622103", "622104", "622105", + "622013", "622111", "622114", "622200", "622017", "622202", "622203", "622208", "622210", "622211", "622212", + "622213", "622214", "622110", "622220", "622223", "622225", "622229", "622230", "622231", "622232", "622233", + "622234", "622235", "622237", "622215", "622239", "622240", "622245", "622224", "622303", "622304", "622305", + "622306", "622307", "622308", "622309", "622238", "622314", "622315", "622317", "622302", "622402", "622403", + "622404", "622313", "622504", "622505", "622509", "622513", "622517", "622502", "622604", "622605", "622606", + "622510", "622703", "622715", "622806", "622902", "622903", "622706", "623002", "623006", "623008", "623011", + "623012", "622904", "623015", "623100", "623202", "623301", "623400", "623500", "623602", "623803", "623901", + "623014", "624100", "624200", "624301", "624402", "62451804", "62451810", "62451811", "62458071", "623700", + "628288", "624000", "628286", "622206", "621225", "526836", "513685", "543098", "458441", "620058", "621281", + "622246", "900000", "544210", "548943", "370267", "621558", "621559", "621722", "621723", "620086", "621226", + "402791", "427028", "427038", "548259", "356879", "356880", "356881", "356882", "528856", "621618", "620516", + "621227", "621721", "900010", "625330", "625331", "625332", "623062", "622236", "621670", "524374", "550213", + "374738", "374739", "621288", "625708", "625709", "622597", "622599", "360883", "360884", "625865", "625866", + "625899", "621376", "620054", "620142", "621428", "625939", "621434", "625987", "621761", "621749", "620184", + "621300", "621378", "625114", "622159", "621720", "625021", "625022", "621379", "620114", "620146", "621724", + "625918", "621371", "620143", "620149", "621414", "625914", "621375", "620187", "621433", "625986", "621370", + "625925", "622926", "622927", "622928", "622929", "622930", "622931", "620124", "620183", "620561", "625116", + "622227", "621372", "621464", "625942", "622158", "625917", "621765", "620094", "620186", "621719", "621719", + "621750", "621377", "620148", "620185", "621374", "621731", "621781", "552599", "623206", "621671", "620059", + "403361", "404117", "404118", "404119", "404120", "404121", "463758", "514027", "519412", "519413", "520082", + "520083", "558730", "621282", "621336", "621619", "622821", "622822", "622823", "622824", "622825", "622826", + "622827", "622828", "622836", "622837", "622840", "622841", "622843", "622844", "622845", "622846", "622847", + "622848", "622849", "623018", "625996", "625997", "625998", "628268", "625826", "625827", "548478", "544243", + "622820", "622830", "622838", "625336", "628269", "620501", "621660", "621661", "621662", "621663", "621665", + "621667", "621668", "621669", "621666", "625908", "625910", "625909", "356833", "356835", "409665", "409666", + "409668", "409669", "409670", "409671", "409672", "456351", "512315", "512316", "512411", "512412", "514957", + "409667", "518378", "518379", "518474", "518475", "518476", "438088", "524865", "525745", "525746", "547766", + "552742", "553131", "558868", "514958", "622752", "622753", "622755", "524864", "622757", "622758", "622759", + "622760", "622761", "622762", "622763", "601382", "622756", "628388", "621256", "621212", "620514", "622754", + "622764", "518377", "622765", "622788", "621283", "620061", "621725", "620040", "558869", "621330", "621331", + "621332", "621333", "621297", "377677", "621568", "621569", "625905", "625906", "625907", "628313", "625333", + "628312", "623208", "621620", "621756", "621757", "621758", "621759", "621785", "621786", "621787", "621788", + "621789", "621790", "621672", "625337", "625338", "625568", "621648", "621248", "621249", "622750", "622751", + "622771", "622772", "622770", "625145", "620531", "620210", "620211", "622479", "622480", "622273", "622274", + "621231", "621638", "621334", "625140", "621395", "622725", "622728", "621284", "421349", "434061", "434062", + "436728", "436742", "453242", "491031", "524094", "526410", "544033", "552245", "589970", "620060", "621080", + "621081", "621466", "621467", "621488", "621499", "621598", "621621", "621700", "622280", "622700", "622707", + "622966", "622988", "625955", "625956", "553242", "621082", "621673", "623211", "356896", "356899", "356895", + "436718", "436738", "436745", "436748", "489592", "531693", "532450", "532458", "544887", "552801", "557080", + "558895", "559051", "622166", "622168", "622708", "625964", "625965", "625966", "628266", "628366", "625362", + "625363", "628316", "628317", "620021", "620521", "405512", "601428", "405512", "434910", "458123", "458124", + "520169", "522964", "552853", "601428", "622250", "622251", "521899", "622254", "622255", "622256", "622257", + "622258", "622259", "622253", "622261", "622284", "622656", "628216", "622252", "66405512", "622260", "66601428", + "955590", "955591", "955592", "955593", "628218", "622262", "621069", "620013", "625028", "625029", "621436", "621002", + "621335", "433670", "433680", "442729", "442730", "620082", "622690", "622691", "622692", "622696", "622698", "622998", + "622999", "433671", "968807", "968808", "968809", "621771", "621767", "621768", "621770", "621772", "621773", "620527", + "356837", "356838", "486497", "622660", "622662", "622663", "622664", "622665", "622666", "622667", "622669", "622670", + "622671", "622672", "622668", "622661", "622674", "622673", "620518", "621489", "621492", "620535", "623156", "621490", + "621491", "620085", "623155", "623157", "623158", "623159", "999999", "621222", "623020", "623021", "623022", "623023", + "622630", "622631", "622632", "622633", "622615", "622616", "622618", "622622", "622617", "622619", "415599", "421393", + "421865", "427570", "427571", "472067", "472068", "622620", "621691", "545392", "545393", "545431", "545447", "356859", + "356857", "407405", "421869", "421870", "421871", "512466", "356856", "528948", "552288", "622600", "622601", "622602", + "517636", "622621", "628258", "556610", "622603", "464580", "464581", "523952", "545217", "553161", "356858", "622623", + "625911", "377152", "377153", "377158", "377155", "625912", "625913", "356885", "356886", "356887", "356888", "356890", + "402658", "410062", "439188", "439227", "468203", "479228", "479229", "512425", "521302", "524011", "356889", "545620", + "545621", "545947", "545948", "552534", "552587", "622575", "622576", "622577", "622579", "622580", "545619", "622581", + "622582", "622588", "622598", "622609", "690755", "690755", "545623", "621286", "620520", "621483", "621485", "621486", + "628290", "622578", "370285", "370286", "370287", "370289", "439225", "518710", "518718", "628362", "439226", "628262", + "625802", "625803", "621299", "966666", "622909", "622908", "438588", "438589", "461982", "486493", "486494", "486861", + "523036", "451289", "527414", "528057", "622901", "622902", "622922", "628212", "451290", "524070", "625084", "625085", + "625086", "625087", "548738", "549633", "552398", "625082", "625083", "625960", "625961", "625962", "625963", "356851", + "356852", "404738", "404739", "456418", "498451", "515672", "356850", "517650", "525998", "622177", "622277", "622516", + "622517", "622518", "622520", "622521", "622522", "622523", "628222", "628221", "984301", "984303", "622176", "622276", + "622228", "621352", "621351", "621390", "621792", "625957", "625958", "621791", "620530", "625993", "622519", "621793", + "621795", "621796", "622500", "623078", "622384", "940034", "940015", "622886", "622391", "940072", "622359", "940066", + "622857", "940065", "621019", "622309", "621268", "622884", "621453", "622684", "621016", "621015", "622950", "622951", + "621072", "623183", "623185", "621005", "622172", "622985", "622987", "622267", "622278", "622279", "622468", "622892", + "940021", "621050", "620522", "356827", "356828", "356830", "402673", "402674", "438600", "486466", "519498", "520131", + "524031", "548838", "622148", "622149", "622268", "356829", "622300", "628230", "622269", "625099", "625953", "625350", + "625351", "625352", "519961", "625839", "421317", "602969", "621030", "621420", "621468", "623111", "422160", "422161", + "622865", "940012", "623131", "622178", "622179", "628358", "622394", "940025", "621279", "622281", "622316", "940022", + "621418", "512431", "520194", "621626", "623058", "602907", "622986", "622989", "622298", "622338", "940032", "623205", + "621977", "990027", "622325", "623029", "623105", "621244", "623081", "623108", "566666", "622455", "940039", "622466", + "628285", "622420", "940041", "623118", "603708", "622993", "623070", "623069", "623172", "623173", "622383", "622385", + "628299", "603506", "603367", "622878", "623061", "623209", "628242", "622595", "622303", "622305", "621259", "622596", + "622333", "940050", "621439", "623010", "621751", "628278", "625502", "625503", "625135", "622476", "621754", "622143", + "940001", "623026", "623086", "628291", "621532", "621482", "622135", "622152", "622153", "622154", "622996", "622997", + "940027", "623099", "623007", "940055", "622397", "622398", "940054", "622331", "622426", "625995", "621452", "628205", + "628214", "625529", "622428", "621529", "622429", "621417", "623089", "623200", "940057", "622311", "623119", "622877", + "622879", "621775", "623203", "603601", "622137", "622327", "622340", "622366", "622134", "940018", "623016", "623096", + "940049", "622425", "622425", "621577", "622485", "623098", "628329", "621538", "940006", "621269", "622275", "621216", + "622465", "940031", "621252", "622146", "940061", "621419", "623170", "622440", "940047", "940017", "622418", "623077", + "622413", "940002", "623188", "622310", "940068", "622321", "625001", "622427", "940069", "623039", "628273", "622370", + "683970", "940074", "621437", "628319", "990871", "622308", "621415", "623166", "622132", "621340", "621341", "622140", + "623073", "622147", "621633", "622301", "623171", "621422", "622335", "622336", "622165", "622315", "628295", "625950", + "621760", "622337", "622411", "623102", "622342", "623048", "622367", "622392", "623085", "622395", "622441", "622448", + "621413", "622856", "621037", "621097", "621588", "623032", "622644", "623518", "622870", "622866", "623072", "622897", + "628279", "622864", "621403", "622561", "622562", "622563", "622167", "622777", "621497", "622868", "622899", "628255", + "625988", "622566", "622567", "622625", "622626", "625946", "628200", "621076", "504923", "622173", "622422", "622447", + "622131", "940076", "621579", "622876", "622873", "622962", "622936", "623060", "622937", "623101", "621460", "622939", + "622960", "623523", "621591", "622961", "628210", "622283", "625902", "621010", "622980", "623135", "621726", "621088", + "620517", "622740", "625036", "621014", "621004", "622972", "623196", "621028", "623083", "628250", "623121", "621070", + "628253", "622979", "621035", "621038", "621086", "621498", "621296", "621448", "622945", "621755", "622940", "623120", + "628355", "621089", "623161", "628339", "621074", "621515", "623030", "621345", "621090", "623178", "621091", "623168", + "621057", "623199", "621075", "623037", "628303", "621233", "621235", "621223", "621780", "621221", "623138", "628389", + "621239", "623068", "621271", "628315", "621272", "621738", "621273", "623079", "621263", "621325", "623084", "621327", + "621753", "628331", "623160", "621366", "621388", "621348", "621359", "621360", "621217", "622959", "621270", "622396", + "622511", "623076", "621391", "621339", "621469", "621625", "623688", "623113", "621601", "621655", "621636", "623182", + "623087", "621696", "622955", "622478", "940013", "621495", "621688", "623162", "622462", "628272", "625101", "622323", + "623071", "603694", "622128", "622129", "623035", "623186", "621522", "622271", "940037", "940038", "985262", "622322", + "628381", "622481", "622341", "940058", "623115", "621258", "621465", "621528", "622328", "940062", "625288", "623038", + "625888", "622332", "940063", "623123", "622138", "621066", "621560", "621068", "620088", "621067", "622531", "622329", + "623103", "622339", "620500", "621024", "622289", "622389", "628300", "625516", "621516", "622859", "622869", "623075", + "622895", "623125", "622947", "621561", "623095", "621073", "623109", "621361", "623033", "623207", "622891", "621363", + "623189", "623510", "622995", "621053", "621230", "621229", "622218", "628267", "621392", "621481", "621310", "621396", + "623251", "628351"}; + //"发卡行.卡种名称", + private static final String[] bankName = { + "邮储银行·绿卡通", "邮储银行·绿卡银联标准卡", "邮储银行·绿卡银联标准卡", "邮储银行·绿卡专用卡", "邮储银行·绿卡银联标准卡", + "邮储银行·绿卡(银联卡)", "邮储银行·绿卡VIP卡", "邮储银行·银联标准卡", "邮储银行·中职学生资助卡", "邮政储蓄银行·IC绿卡通VIP卡", + "邮政储蓄银行·IC绿卡通", "邮政储蓄银行·IC联名卡", "邮政储蓄银行·IC预付费卡", "邮储银行·绿卡银联标准卡", "邮储银行·绿卡通", + "邮政储蓄银行·武警军人保障卡", "邮政储蓄银行·中国旅游卡(金卡)", "邮政储蓄银行·普通高中学生资助卡", "邮政储蓄银行·中国旅游卡(普卡)", + "邮政储蓄银行·福农卡", "工商银行·牡丹运通卡金卡", "工商银行·牡丹运通卡金卡", "工商银行·牡丹运通卡金卡", "工商银行·牡丹VISA卡(单位卡)", + "工商银行·牡丹VISA信用卡", "工商银行·牡丹VISA卡(单位卡)", "工商银行·牡丹VISA信用卡", "工商银行·牡丹VISA信用卡", "工商银行·牡丹VISA信用卡", + "工商银行·牡丹VISA信用卡", "工商银行·牡丹运通卡普通卡", "工商银行·牡丹VISA信用卡", "工商银行·牡丹VISA白金卡", "工商银行·牡丹贷记卡(银联卡)", + "工商银行·牡丹贷记卡(银联卡)", "工商银行·牡丹贷记卡(银联卡)", "工商银行·牡丹贷记卡(银联卡)", "工商银行·牡丹欧元卡", "工商银行·牡丹欧元卡", + "工商银行·牡丹欧元卡", "工商银行·牡丹万事达国际借记卡", "工商银行·牡丹VISA信用卡", "工商银行·海航信用卡", "工商银行·牡丹VISA信用卡", + "工商银行·牡丹万事达信用卡", "工商银行·牡丹万事达信用卡", "工商银行·牡丹万事达信用卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹万事达白金卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·海航信用卡个人普卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·灵通卡", "工商银行·牡丹灵通卡", + "工商银行·E时代卡", "工商银行·E时代卡", "工商银行·理财金卡", "工商银行·准贷记卡(个普)", "工商银行·准贷记卡(个普)", "工商银行·准贷记卡(个普)", + "工商银行·准贷记卡(个普)", "工商银行·准贷记卡(个普)", "工商银行·牡丹灵通卡", "工商银行·准贷记卡(商普)", "工商银行·牡丹卡(商务卡)", + "工商银行·准贷记卡(商金)", "工商银行·牡丹卡(商务卡)", "工商银行·贷记卡(个普)", "工商银行·牡丹卡(个人卡)", "工商银行·牡丹卡(个人卡)", + "工商银行·牡丹卡(个人卡)", "工商银行·牡丹卡(个人卡)", "工商银行·贷记卡(个金)", "工商银行·牡丹交通卡", "工商银行·准贷记卡(个金)", + "工商银行·牡丹交通卡", "工商银行·贷记卡(商普)", "工商银行·贷记卡(商金)", "工商银行·牡丹卡(商务卡)", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹交通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", + "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹灵通卡", "工商银行·牡丹贷记卡", "工商银行·牡丹贷记卡", "工商银行·牡丹贷记卡", + "工商银行·牡丹贷记卡", "工商银行·牡丹灵通卡", "工商银行·中央预算单位公务卡", "工商银行·牡丹灵通卡", "工商银行·财政预算单位公务卡", + "工商银行·牡丹卡白金卡", "工商银行·牡丹卡普卡", "工商银行·国航知音牡丹信用卡", "工商银行·国航知音牡丹信用卡", "工商银行·国航知音牡丹信用卡", + "工商银行·国航知音牡丹信用卡", "工商银行·银联标准卡", "工商银行·中职学生资助卡", "工商银行·专用信用消费卡", "工商银行·牡丹社会保障卡", + "中国工商银行·牡丹东航联名卡", "中国工商银行·牡丹东航联名卡", "中国工商银行·牡丹运通白金卡", "中国工商银行·福农灵通卡", "中国工商银行·福农灵通卡", + "工商银行·灵通卡", "工商银行·灵通卡", "中国工商银行·中国旅行卡", "工商银行·牡丹卡普卡", "工商银行·国际借记卡", "工商银行·国际借记卡", + "工商银行·国际借记卡", "工商银行·国际借记卡", "中国工商银行·牡丹JCB信用卡", "中国工商银行·牡丹JCB信用卡", "中国工商银行·牡丹JCB信用卡", + "中国工商银行·牡丹JCB信用卡", "中国工商银行·牡丹多币种卡", "中国工商银行·武警军人保障卡", "工商银行·预付芯片卡", "工商银行·理财金账户金卡", + "工商银行·灵通卡", "工商银行·牡丹宁波市民卡", "中国工商银行·中国旅游卡", "中国工商银行·中国旅游卡", "中国工商银行·中国旅游卡", "中国工商银行·借记卡", + "中国工商银行·借贷合一卡", "中国工商银行·普通高中学生资助卡", "中国工商银行·牡丹多币种卡", "中国工商银行·牡丹多币种卡", "中国工商银行·牡丹百夫长信用卡", + "中国工商银行·牡丹百夫长信用卡", "工商银行·工银财富卡", "中国工商银行·中小商户采购卡", "中国工商银行·中小商户采购卡", "中国工商银行·环球旅行金卡", + "中国工商银行·环球旅行白金卡", "中国工商银行·牡丹工银大来卡", "中国工商银行·牡丹工银大莱卡", "中国工商银行·IC金卡", "中国工商银行·IC白金卡", + "中国工商银行·工行IC卡(红卡)", "中国工商银行布鲁塞尔分行·借记卡", "中国工商银行布鲁塞尔分行·预付卡", "中国工商银行布鲁塞尔分行·预付卡", + "中国工商银行金边分行·借记卡", "中国工商银行金边分行·信用卡", "中国工商银行金边分行·借记卡", "中国工商银行金边分行·信用卡", "中国工商银行加拿大分行·借记卡", + "中国工商银行加拿大分行·借记卡", "中国工商银行加拿大分行·预付卡", "中国工商银行巴黎分行·借记卡", "中国工商银行巴黎分行·借记卡", "中国工商银行巴黎分行·贷记卡", + "中国工商银行法兰克福分行·贷记卡", "中国工商银行法兰克福分行·借记卡", "中国工商银行法兰克福分行·贷记卡", "中国工商银行法兰克福分行·贷记卡", "中国工商银行法兰克福分行·借记卡", + "中国工商银行法兰克福分行·预付卡", "中国工商银行法兰克福分行·预付卡", "中国工商银行印尼分行·借记卡", "中国工商银行印尼分行·信用卡", "中国工商银行米兰分行·借记卡", + "中国工商银行米兰分行·预付卡", "中国工商银行米兰分行·预付卡", "中国工商银行阿拉木图子行·借记卡", "中国工商银行阿拉木图子行·贷记卡", "中国工商银行阿拉木图子行·借记卡", + "中国工商银行阿拉木图子行·预付卡", "中国工商银行万象分行·借记卡", "中国工商银行万象分行·贷记卡", "中国工商银行卢森堡分行·借记卡", "中国工商银行卢森堡分行·贷记卡", + "中国工商银行澳门分行·E时代卡", "中国工商银行澳门分行·E时代卡", "中国工商银行澳门分行·E时代卡", "中国工商银行澳门分行·理财金账户", "中国工商银行澳门分行·理财金账户", + "中国工商银行澳门分行·理财金账户", "中国工商银行澳门分行·预付卡", "中国工商银行澳门分行·预付卡", "中国工商银行澳门分行·工银闪付预付卡", "中国工商银行澳门分行·工银银联公司卡", + "中国工商银行澳门分行·Diamond", "中国工商银行阿姆斯特丹·借记卡", "中国工商银行卡拉奇分行·借记卡", "中国工商银行卡拉奇分行·贷记卡", "中国工商银行新加坡分行·贷记卡", + "中国工商银行新加坡分行·贷记卡", "中国工商银行新加坡分行·借记卡", "中国工商银行新加坡分行·预付卡", "中国工商银行新加坡分行·预付卡", "中国工商银行新加坡分行·借记卡", + "中国工商银行新加坡分行·借记卡", "中国工商银行马德里分行·借记卡", "中国工商银行马德里分行·借记卡", "中国工商银行马德里分行·预付卡", "中国工商银行马德里分行·预付卡", + "中国工商银行伦敦子行·借记卡", "中国工商银行伦敦子行·工银伦敦借记卡", "中国工商银行伦敦子行·借记卡", "农业银行·金穗贷记卡", "农业银行·中国旅游卡", "农业银行·普通高中学生资助卡", + "农业银行·银联标准卡", "农业银行·金穗贷记卡(银联卡)", "农业银行·金穗贷记卡(银联卡)", "农业银行·金穗贷记卡(银联卡)", "农业银行·金穗贷记卡(银联卡)", "农业银行·金穗贷记卡(银联卡)", + "农业银行·金穗贷记卡(银联卡)", "农业银行·VISA白金卡", "农业银行·万事达白金卡", "农业银行·金穗贷记卡(银联卡)", "农业银行·金穗贷记卡(银联卡)", "农业银行·金穗贷记卡(银联卡)", + "农业银行·金穗贷记卡(银联卡)", "农业银行·金穗贷记卡", "农业银行·中职学生资助卡", "农业银行·专用惠农卡", "农业银行·武警军人保障卡", "农业银行·金穗校园卡(银联卡)", + "农业银行·金穗星座卡(银联卡)", "农业银行·金穗社保卡(银联卡)", "农业银行·金穗旅游卡(银联卡)", "农业银行·金穗青年卡(银联卡)", "农业银行·复合介质金穗通宝卡", + "农业银行·金穗海通卡", "农业银行·退役金卡", "农业银行·金穗贷记卡", "农业银行·金穗贷记卡", "农业银行·金穗通宝卡(银联卡)", "农业银行·金穗惠农卡", "农业银行·金穗通宝银卡", + "农业银行·金穗通宝卡(银联卡)", "农业银行·金穗通宝卡(银联卡)", "农业银行·金穗通宝卡", "农业银行·金穗通宝卡(银联卡)", "农业银行·金穗通宝卡(银联卡)", "农业银行·金穗通宝钻石卡", + "农业银行·掌尚钱包", "农业银行·银联IC卡金卡", "农业银行·银联预算单位公务卡金卡", "农业银行·银联IC卡白金卡", "农业银行·金穗公务卡", "中国农业银行贷记卡·IC普卡", + "中国农业银行贷记卡·IC金卡", "中国农业银行贷记卡·澳元卡", "中国农业银行贷记卡·欧元卡", "中国农业银行贷记卡·金穗通商卡", "中国农业银行贷记卡·金穗通商卡", "中国农业银行贷记卡·银联白金卡", + "中国农业银行贷记卡·中国旅游卡", "中国农业银行贷记卡·银联IC公务卡", "宁波市农业银行·市民卡B卡", "中国银行·联名卡", "中国银行·个人普卡", "中国银行·个人金卡", "中国银行·员工普卡", + "中国银行·员工金卡", "中国银行·理财普卡", "中国银行·理财金卡", "中国银行·理财银卡", "中国银行·理财白金卡", "中国银行·中行金融IC卡白金卡", "中国银行·中行金融IC卡普卡", + "中国银行·中行金融IC卡金卡", "中国银行·中银JCB卡金卡", "中国银行·中银JCB卡普卡", "中国银行·员工普卡", "中国银行·个人普卡", "中国银行·中银威士信用卡员", "中国银行·中银威士信用卡员", + "中国银行·个人白金卡", "中国银行·中银威士信用卡", "中国银行·长城公务卡", "中国银行·长城电子借记卡", "中国银行·中银万事达信用卡", "中国银行·中银万事达信用卡", "中国银行·中银万事达信用卡", + "中国银行·中银万事达信用卡", "中国银行·中银万事达信用卡", "中国银行·中银威士信用卡员", "中国银行·长城万事达信用卡", "中国银行·长城万事达信用卡", "中国银行·长城万事达信用卡", + "中国银行·长城万事达信用卡", "中国银行·长城万事达信用卡", "中国银行·中银奥运信用卡", "中国银行·长城信用卡", "中国银行·长城信用卡", "中国银行·长城信用卡", "中国银行·长城万事达信用卡", + "中国银行·长城公务卡", "中国银行·长城公务卡", "中国银行·中银万事达信用卡", "中国银行·中银万事达信用卡", "中国银行·长城人民币信用卡", "中国银行·长城人民币信用卡", "中国银行·长城人民币信用卡", + "中国银行·长城信用卡", "中国银行·长城人民币信用卡", "中国银行·长城人民币信用卡", "中国银行·长城信用卡", "中国银行·银联单币贷记卡", "中国银行·长城信用卡", "中国银行·长城信用卡", "中国银行·长城信用卡", + "中国银行·长城电子借记卡", "中国银行·长城人民币信用卡", "中国银行·银联标准公务卡", "中国银行·一卡双账户普卡", "中国银行·财互通卡", "中国银行·电子现金卡", "中国银行·长城人民币信用卡", + "中国银行·长城单位信用卡普卡", "中国银行·中银女性主题信用卡", "中国银行·长城单位信用卡金卡", "中国银行·白金卡", "中国银行·中职学生资助卡", "中国银行·银联标准卡", "中国银行·金融IC卡", + "中国银行·长城社会保障卡", "中国银行·世界卡", "中国银行·社保联名卡", "中国银行·社保联名卡", "中国银行·医保联名卡", "中国银行·医保联名卡", "中国银行·公司借记卡", "中国银行·银联美运顶级卡", + "中国银行·长城福农借记卡金卡", "中国银行·长城福农借记卡普卡", "中国银行·中行金融IC卡普卡", "中国银行·中行金融IC卡金卡", "中国银行·中行金融IC卡白金卡", "中国银行·长城银联公务IC卡白金卡", + "中国银行·中银旅游信用卡", "中国银行·长城银联公务IC卡金卡", "中国银行·中国旅游卡", "中国银行·武警军人保障卡", "中国银行·社保联名借记IC卡", "中国银行·社保联名借记IC卡", "中国银行·医保联名借记IC卡", + "中国银行·医保联名借记IC卡", "中国银行·借记IC个人普卡", "中国银行·借记IC个人金卡", "中国银行·借记IC个人普卡", "中国银行·借记IC白金卡", "中国银行·借记IC钻石卡", "中国银行·借记IC联名卡", + "中国银行·普通高中学生资助卡", "中国银行·长城环球通港澳台旅游金卡", "中国银行·长城环球通港澳台旅游白金卡", "中国银行·中银福农信用卡", "中国银行金边分行·借记卡", "中国银行雅加达分行·借记卡", + "中国银行首尔分行·借记卡", "中国银行澳门分行·人民币信用卡", "中国银行澳门分行·人民币信用卡", "中国银行澳门分行·中银卡", "中国银行澳门分行·中银卡", "中国银行澳门分行·中银卡", + "中国银行澳门分行·中银银联双币商务卡", "中国银行澳门分行·预付卡", "中国银行澳门分行·澳门中国银行银联预付卡", "中国银行澳门分行·澳门中国银行银联预付卡", "中国银行澳门分行·熊猫卡", + "中国银行澳门分行·财富卡", "中国银行澳门分行·银联港币卡", "中国银行澳门分行·银联澳门币卡", "中国银行马尼拉分行·双币种借记卡", "中国银行胡志明分行·借记卡", "中国银行曼谷分行·借记卡", + "中国银行曼谷分行·长城信用卡环球通", "中国银行曼谷分行·借记卡", "建设银行·龙卡准贷记卡", "建设银行·龙卡准贷记卡金卡", "建设银行·中职学生资助卡", "建设银行·乐当家银卡VISA", "建设银行·乐当家金卡VISA", + "建设银行·乐当家白金卡", "建设银行·龙卡普通卡VISA", "建设银行·龙卡储蓄卡", "建设银行·VISA准贷记卡(银联卡)", "建设银行·VISA准贷记金卡", "建设银行·乐当家", "建设银行·乐当家", "建设银行·准贷记金卡", + "建设银行·乐当家白金卡", "建设银行·金融复合IC卡", "建设银行·银联标准卡", "建设银行·银联理财钻石卡", "建设银行·金融IC卡", "建设银行·理财白金卡", "建设银行·社保IC卡", "建设银行·财富卡私人银行卡", + "建设银行·理财金卡", "建设银行·福农卡", "建设银行·武警军人保障卡", "建设银行·龙卡通", "建设银行·银联储蓄卡", "建设银行·龙卡储蓄卡(银联卡)", "建设银行·准贷记卡", "建设银行·理财白金卡", "建设银行·理财金卡", + "建设银行·准贷记卡普卡", "建设银行·准贷记卡金卡", "建设银行·龙卡信用卡", "建设银行·建行陆港通龙卡", "中国建设银行·普通高中学生资助卡", "中国建设银行·中国旅游卡", "中国建设银行·龙卡JCB金卡", + "中国建设银行·龙卡JCB白金卡", "中国建设银行·龙卡JCB普卡", "中国建设银行·龙卡贷记卡公司卡", "中国建设银行·龙卡贷记卡", "中国建设银行·龙卡国际普通卡VISA", "中国建设银行·龙卡国际金卡VISA", + "中国建设银行·VISA白金信用卡", "中国建设银行·龙卡国际白金卡", "中国建设银行·龙卡国际普通卡MASTER", "中国建设银行·龙卡国际金卡MASTER", "中国建设银行·龙卡万事达金卡", "中国建设银行·龙卡贷记卡", + "中国建设银行·龙卡万事达白金卡", "中国建设银行·龙卡贷记卡", "中国建设银行·龙卡万事达信用卡", "中国建设银行·龙卡人民币信用卡", "中国建设银行·龙卡人民币信用金卡", "中国建设银行·龙卡人民币白金卡", + "中国建设银行·龙卡IC信用卡普卡", "中国建设银行·龙卡IC信用卡金卡", "中国建设银行·龙卡IC信用卡白金卡", "中国建设银行·龙卡银联公务卡普卡", "中国建设银行·龙卡银联公务卡金卡", "中国建设银行·中国旅游卡", + "中国建设银行·中国旅游卡", "中国建设银行·龙卡IC公务卡", "中国建设银行·龙卡IC公务卡", "交通银行·交行预付卡", "交通银行·世博预付IC卡", "交通银行·太平洋互连卡", "交通银行·太平洋万事顺卡", + "交通银行·太平洋互连卡(银联卡)", "交通银行·太平洋白金信用卡", "交通银行·太平洋双币贷记卡", "交通银行·太平洋双币贷记卡", "交通银行·太平洋双币贷记卡", "交通银行·太平洋白金信用卡", + "交通银行·太平洋双币贷记卡", "交通银行·太平洋万事顺卡", "交通银行·太平洋人民币贷记卡", "交通银行·太平洋人民币贷记卡", "交通银行·太平洋双币贷记卡", "交通银行·太平洋准贷记卡", "交通银行·太平洋准贷记卡", + "交通银行·太平洋准贷记卡", "交通银行·太平洋准贷记卡", "交通银行·太平洋借记卡", "交通银行·太平洋借记卡", "交通银行·太平洋人民币贷记卡", "交通银行·太平洋借记卡", "交通银行·太平洋MORE卡", "交通银行·白金卡", + "交通银行·交通银行公务卡普卡", "交通银行·太平洋人民币贷记卡", "交通银行·太平洋互连卡", "交通银行·太平洋借记卡", "交通银行·太平洋万事顺卡", "交通银行·太平洋贷记卡(银联卡)", "交通银行·太平洋贷记卡(银联卡)", + "交通银行·太平洋贷记卡(银联卡)", "交通银行·太平洋贷记卡(银联卡)", "交通银行·交通银行公务卡金卡", "交通银行·交银IC卡", "交通银行香港分行·交通银行港币借记卡", "交通银行香港分行·港币礼物卡", + "交通银行香港分行·双币种信用卡", "交通银行香港分行·双币种信用卡", "交通银行香港分行·双币卡", "交通银行香港分行·银联人民币卡", "交通银行澳门分行·银联借记卡", "中信银行·中信借记卡", "中信银行·中信借记卡", + "中信银行·中信国际借记卡", "中信银行·中信国际借记卡", "中信银行·中国旅行卡", "中信银行·中信借记卡(银联卡)", "中信银行·中信借记卡(银联卡)", "中信银行·中信贵宾卡(银联卡)", "中信银行·中信理财宝金卡", + "中信银行·中信理财宝白金卡", "中信银行·中信钻石卡", "中信银行·中信钻石卡", "中信银行·中信借记卡", "中信银行·中信理财宝(银联卡)", "中信银行·中信理财宝(银联卡)", "中信银行·中信理财宝(银联卡)", + "中信银行·借记卡", "中信银行·理财宝IC卡", "中信银行·理财宝IC卡", "中信银行·理财宝IC卡", "中信银行·理财宝IC卡", "中信银行·理财宝IC卡", "中信银行·主账户复合电子现金卡", "光大银行·阳光商旅信用卡", + "光大银行·阳光商旅信用卡", "光大银行·阳光商旅信用卡", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", + "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", + "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·阳光卡(银联卡)", "光大银行·借记卡普卡", "光大银行·社会保障IC卡", "光大银行·IC借记卡普卡", "光大银行·手机支付卡", "光大银行·联名IC卡普卡", + "光大银行·借记IC卡白金卡", "光大银行·借记IC卡金卡", "光大银行·阳光旅行卡", "光大银行·借记IC卡钻石卡", "光大银行·联名IC卡金卡", "光大银行·联名IC卡白金卡", "光大银行·联名IC卡钻石卡", "华夏银行·华夏卡(银联卡)", + "华夏银行·华夏白金卡", "华夏银行·华夏普卡", "华夏银行·华夏金卡", "华夏银行·华夏白金卡", "华夏银行·华夏钻石卡", "华夏银行·华夏卡(银联卡)", "华夏银行·华夏至尊金卡(银联卡)", "华夏银行·华夏丽人卡(银联卡)", + "华夏银行·华夏万通卡", "民生银行·民生借记卡(银联卡)", "民生银行·民生银联借记卡-金卡", "民生银行·钻石卡", "民生银行·民生借记卡(银联卡)", "民生银行·民生借记卡(银联卡)", "民生银行·民生借记卡(银联卡)", + "民生银行·民生借记卡", "民生银行·民生国际卡", "民生银行·民生国际卡(银卡)", "民生银行·民生国际卡(欧元卡)", "民生银行·民生国际卡(澳元卡)", "民生银行·民生国际卡", "民生银行·民生国际卡", "民生银行·薪资理财卡", + "民生银行·借记卡普卡", "民生银行·民生MasterCard", "民生银行·民生MasterCard", "民生银行·民生MasterCard", "民生银行·民生MasterCard", "民生银行·民生JCB信用卡", "民生银行·民生JCB金卡", "民生银行·民生贷记卡(银联卡)", + "民生银行·民生贷记卡(银联卡)", "民生银行·民生贷记卡(银联卡)", "民生银行·民生贷记卡(银联卡)", "民生银行·民生贷记卡(银联卡)", "民生银行·民生JCB普卡", "民生银行·民生贷记卡(银联卡)", "民生银行·民生贷记卡(银联卡)", + "民生银行·民生信用卡(银联卡)", "民生银行·民生信用卡(银联卡)", "民生银行·民生银联白金信用卡", "民生银行·民生贷记卡(银联卡)", "民生银行·民生银联个人白金卡", "民生银行·公务卡金卡", "民生银行·民生贷记卡(银联卡)", + "民生银行·民生银联商务信用卡", "民生银行·民VISA无限卡", "民生银行·民生VISA商务白金卡", "民生银行·民生万事达钛金卡", "民生银行·民生万事达世界卡", "民生银行·民生万事达白金公务卡", "民生银行·民生JCB白金卡", + "民生银行·银联标准金卡", "民生银行·银联芯片普卡", "民生银行·民生运通双币信用卡普卡", "民生银行·民生运通双币信用卡金卡", "民生银行·民生运通双币信用卡钻石卡", "民生银行·民生运通双币标准信用卡白金卡", + "民生银行·银联芯片金卡", "民生银行·银联芯片白金卡", "招商银行·招商银行信用卡", "招商银行·招商银行信用卡", "招商银行·招商银行信用卡", "招商银行·招商银行信用卡", "招商银行·招商银行信用卡", "招商银行·两地一卡通", + "招商银行·招行国际卡(银联卡)", "招商银行·招商银行信用卡", "招商银行·VISA商务信用卡", "招商银行·招行国际卡(银联卡)", "招商银行·招商银行信用卡", "招商银行·招商银行信用卡", "招商银行·招行国际卡(银联卡)", + "招商银行·世纪金花联名信用卡", "招商银行·招行国际卡(银联卡)", "招商银行·招商银行信用卡", "招商银行·万事达信用卡", "招商银行·万事达信用卡", "招商银行·万事达信用卡", "招商银行·万事达信用卡", "招商银行·招商银行信用卡", + "招商银行·招商银行信用卡", "招商银行·招商银行信用卡", "招商银行·招商银行信用卡", "招商银行·招商银行信用卡", "招商银行·招商银行信用卡", "招商银行·一卡通(银联卡)", "招商银行·万事达信用卡", "招商银行·招商银行信用卡", + "招商银行·招商银行信用卡", "招商银行·一卡通(银联卡)", "招商银行·公司卡(银联卡)", "招商银行·金卡", "招商银行·招行一卡通", "招商银行·招行一卡通", "招商银行·万事达信用卡", "招商银行·金葵花卡", "招商银行·电子现金卡", + "招商银行·银联IC普卡", "招商银行·银联IC金卡", "招商银行·银联金葵花IC卡", "招商银行·IC公务卡", "招商银行·招商银行信用卡", "招商银行信用卡中心·美国运通绿卡", "招商银行信用卡中心·美国运通金卡", + "招商银行信用卡中心·美国运通商务绿卡", "招商银行信用卡中心·美国运通商务金卡", "招商银行信用卡中心·VISA信用卡", "招商银行信用卡中心·MASTER信用卡", "招商银行信用卡中心·MASTER信用金卡", + "招商银行信用卡中心·银联标准公务卡(金卡)", "招商银行信用卡中心·VISA信用卡", "招商银行信用卡中心·银联标准财政公务卡", "招商银行信用卡中心·芯片IC信用卡", "招商银行信用卡中心·芯片IC信用卡", + "招商银行香港分行·香港一卡通", "兴业银行·兴业卡(银联卡)", "兴业银行·兴业卡(银联标准卡)", "兴业银行·兴业自然人生理财卡", "兴业银行·兴业智能卡(银联卡)", "兴业银行·兴业智能卡", + "兴业银行·visa标准双币个人普卡", "兴业银行·VISA商务普卡", "兴业银行·VISA商务金卡", "兴业银行·VISA运动白金信用卡", "兴业银行·万事达信用卡(银联卡)", "兴业银行·VISA信用卡(银联卡)", + "兴业银行·加菲猫信用卡", "兴业银行·个人白金卡", "兴业银行·银联信用卡(银联卡)", "兴业银行·银联信用卡(银联卡)", "兴业银行·银联白金信用卡", "兴业银行·银联标准公务卡", "兴业银行·VISA信用卡(银联卡)", + "兴业银行·万事达信用卡(银联卡)", "兴业银行·银联标准贷记普卡", "兴业银行·银联标准贷记金卡", "兴业银行·银联标准贷记金卡", "兴业银行·银联标准贷记金卡", "兴业银行·兴业信用卡", "兴业银行·兴业信用卡", + "兴业银行·兴业信用卡", "兴业银行·银联标准贷记普卡", "兴业银行·银联标准贷记普卡", "兴业银行·兴业芯片普卡", "兴业银行·兴业芯片金卡", "兴业银行·兴业芯片白金卡", "兴业银行·兴业芯片钻石卡", "浦东发展银行·浦发JCB金卡", + "浦东发展银行·浦发JCB白金卡", "浦东发展银行·信用卡VISA普通", "浦东发展银行·信用卡VISA金卡", "浦东发展银行·浦发银行VISA年青卡", "浦东发展银行·VISA白金信用卡", "浦东发展银行·浦发万事达白金卡", "浦东发展银行·浦发JCB普卡", + "浦东发展银行·浦发万事达金卡", "浦东发展银行·浦发万事达普卡", "浦东发展银行·浦发单币卡", "浦东发展银行·浦发银联单币麦兜普卡", "浦东发展银行·东方轻松理财卡", "浦东发展银行·东方-轻松理财卡普卡", "浦东发展银行·东方轻松理财卡", + "浦东发展银行·东方轻松理财智业金卡", "浦东发展银行·东方卡(银联卡)", "浦东发展银行·东方卡(银联卡)", "浦东发展银行·东方卡(银联卡)", "浦东发展银行·公务卡金卡", "浦东发展银行·公务卡普卡", "浦东发展银行·东方卡", + "浦东发展银行·东方卡", "浦东发展银行·浦发单币卡", "浦东发展银行·浦发联名信用卡", "浦东发展银行·浦发银联白金卡", "浦东发展银行·轻松理财普卡", "浦东发展银行·移动联名卡", "浦东发展银行·轻松理财消贷易卡", + "浦东发展银行·轻松理财普卡(复合卡)", "浦东发展银行·贷记卡", "浦东发展银行·贷记卡", "浦东发展银行·东方借记卡(复合卡)", "浦东发展银行·电子现金卡(IC卡)", "浦东发展银行·移动浦发联名卡", + "浦东发展银行·东方-标准准贷记卡", "浦东发展银行·轻松理财金卡(复合卡)", "浦东发展银行·轻松理财白金卡(复合卡)", "浦东发展银行·轻松理财钻石卡(复合卡)", "浦东发展银行·东方卡", "恒丰银行·九州IC卡", + "恒丰银行·九州借记卡(银联卡)", "恒丰银行·九州借记卡(银联卡)", "天津市商业银行·银联卡(银联卡)", "烟台商业银行·金通卡", "潍坊银行·鸢都卡(银联卡)", "潍坊银行·鸳都卡(银联卡)", "临沂商业银行·沂蒙卡(银联卡)", + "临沂商业银行·沂蒙卡(银联卡)", "日照市商业银行·黄海卡", "日照市商业银行·黄海卡(银联卡)", "浙商银行·商卡", "浙商银行·商卡", "渤海银行·浩瀚金卡", "渤海银行·渤海银行借记卡", "渤海银行·金融IC卡", + "渤海银行·渤海银行公司借记卡", "星展银行·星展银行借记卡", "星展银行·星展银行借记卡", "恒生银行·恒生通财卡", "恒生银行·恒生优越通财卡", "新韩银行·新韩卡", "上海银行·慧通钻石卡", "上海银行·慧通金卡", + "上海银行·私人银行卡", "上海银行·综合保险卡", "上海银行·申卡社保副卡(有折)", "上海银行·申卡社保副卡(无折)", "上海银行·白金IC借记卡", "上海银行·慧通白金卡(配折)", "上海银行·慧通白金卡(不配折)", + "上海银行·申卡(银联卡)", "上海银行·申卡借记卡", "上海银行·银联申卡(银联卡)", "上海银行·单位借记卡", "上海银行·首发纪念版IC卡", "上海银行·申卡贷记卡", "上海银行·申卡贷记卡", "上海银行·J分期付款信用卡", + "上海银行·申卡贷记卡", "上海银行·申卡贷记卡", "上海银行·上海申卡IC", "上海银行·申卡贷记卡", "上海银行·申卡贷记卡普通卡", "上海银行·申卡贷记卡金卡", "上海银行·万事达白金卡", "上海银行·万事达星运卡", + "上海银行·申卡贷记卡金卡", "上海银行·申卡贷记卡普通卡", "上海银行·安融卡", "上海银行·分期付款信用卡", "上海银行·信用卡", "上海银行·个人公务卡", "上海银行·安融卡", "上海银行·上海银行银联白金卡", + "上海银行·贷记IC卡", "上海银行·中国旅游卡(IC普卡)", "上海银行·中国旅游卡(IC金卡)", "上海银行·中国旅游卡(IC白金卡)", "上海银行·万事达钻石卡", "上海银行·淘宝IC普卡", "北京银行·京卡借记卡", + "北京银行·京卡(银联卡)", "北京银行·京卡借记卡", "北京银行·京卡", "北京银行·京卡", "北京银行·借记IC卡", "北京银行·京卡贵宾金卡", "北京银行·京卡贵宾白金卡", "吉林银行·君子兰一卡通(银联卡)", + "吉林银行·君子兰卡(银联卡)", "吉林银行·长白山金融IC卡", "吉林银行·信用卡", "吉林银行·信用卡", "吉林银行·公务卡", "镇江市商业银行·金山灵通卡(银联卡)", "镇江市商业银行·金山灵通卡(银联卡)", + "宁波银行·银联标准卡", "宁波银行·汇通借记卡", "宁波银行·汇通卡(银联卡)", "宁波银行·明州卡", "宁波银行·汇通借记卡", "宁波银行·汇通国际卡银联双币卡", "宁波银行·汇通国际卡银联双币卡", + "平安银行·新磁条借记卡", "平安银行·平安银行IC借记卡", "平安银行·万事顺卡", "平安银行·平安银行借记卡", "平安银行·平安银行借记卡", "平安银行·万事顺借记卡", "焦作市商业银行·月季借记卡(银联卡)", + "焦作市商业银行·月季城市通(银联卡)", "焦作市商业银行·中国旅游卡", "温州银行·金鹿卡", "汉口银行·九通卡(银联卡)", "汉口银行·九通卡", "汉口银行·借记卡", "汉口银行·借记卡", "盛京银行·玫瑰卡", + "盛京银行·玫瑰IC卡", "盛京银行·玫瑰IC卡", "盛京银行·玫瑰卡", "盛京银行·玫瑰卡", "盛京银行·玫瑰卡(银联卡)", "盛京银行·玫瑰卡(银联卡)", "盛京银行·盛京银行公务卡", "洛阳银行·都市一卡通(银联卡)", + "洛阳银行·都市一卡通(银联卡)", "洛阳银行·--", "大连银行·北方明珠卡", "大连银行·人民币借记卡", "大连银行·金融IC借记卡", "大连银行·大连市社会保障卡", "大连银行·借记IC卡", "大连银行·借记IC卡", + "大连银行·大连市商业银行贷记卡", "大连银行·大连市商业银行贷记卡", "大连银行·银联标准公务卡", "苏州市商业银行·姑苏卡", "杭州商业银行·西湖卡", "杭州商业银行·西湖卡", "杭州商业银行·借记IC卡", + "杭州商业银行·", "南京银行·梅花信用卡公务卡", "南京银行·梅花信用卡商务卡", "南京银行·梅花贷记卡(银联卡)", "南京银行·梅花借记卡(银联卡)", "南京银行·白金卡", "南京银行·商务卡", "东莞市商业银行·万顺通卡(银联卡)", + "东莞市商业银行·万顺通卡(银联卡)", "东莞市商业银行·万顺通借记卡", "东莞市商业银行·社会保障卡", "乌鲁木齐市商业银行·雪莲借记IC卡", "乌鲁木齐市商业银行·乌鲁木齐市公务卡", "乌鲁木齐市商业银行·福农卡贷记卡", + "乌鲁木齐市商业银行·福农卡准贷记卡", "乌鲁木齐市商业银行·雪莲准贷记卡", "乌鲁木齐市商业银行·雪莲贷记卡(银联卡)", "乌鲁木齐市商业银行·雪莲借记IC卡", "乌鲁木齐市商业银行·雪莲借记卡(银联卡)", + "乌鲁木齐市商业银行·雪莲卡(银联卡)", "绍兴银行·兰花IC借记卡", "绍兴银行·社保IC借记卡", "绍兴银行·兰花公务卡", "成都商业银行·芙蓉锦程福农卡", "成都商业银行·芙蓉锦程天府通卡", "成都商业银行·锦程卡(银联卡)", + "成都商业银行·锦程卡金卡", "成都商业银行·锦程卡定活一卡通金卡", "成都商业银行·锦程卡定活一卡通", "成都商业银行·锦程力诚联名卡", "成都商业银行·锦程力诚联名卡", "成都商业银行·锦程卡(银联卡)", "抚顺银行·借记IC卡", + "临商银行·借记卡", "宜昌市商业银行·三峡卡(银联卡)", "宜昌市商业银行·信用卡(银联卡)", "葫芦岛市商业银行·一通卡", "葫芦岛市商业银行·一卡通(银联卡)", "天津市商业银行·津卡", "天津市商业银行·津卡贷记卡(银联卡)", + "天津市商业银行·贷记IC卡", "天津市商业银行·--", "天津银行·商务卡", "宁夏银行·宁夏银行公务卡", "宁夏银行·宁夏银行福农贷记卡", "宁夏银行·如意卡(银联卡)", "宁夏银行·宁夏银行福农借记卡", "宁夏银行·如意借记卡", + "宁夏银行·如意IC卡", "宁夏银行·宁夏银行如意借记卡", "宁夏银行·中国旅游卡", "齐商银行·金达卡(银联卡)", "齐商银行·金达借记卡(银联卡)", "齐商银行·金达IC卡", "徽商银行·黄山卡", "徽商银行·黄山卡", "徽商银行·借记卡", + "徽商银行·徽商银行中国旅游卡(安徽)", "徽商银行合肥分行·黄山卡", "徽商银行芜湖分行·黄山卡(银联卡)", "徽商银行马鞍山分行·黄山卡(银联卡)", "徽商银行淮北分行·黄山卡(银联卡)", "徽商银行安庆分行·黄山卡(银联卡)", + "重庆银行·长江卡(银联卡)", "重庆银行·长江卡(银联卡)", "重庆银行·长江卡", "重庆银行·借记IC卡", "哈尔滨银行·丁香一卡通(银联卡)", "哈尔滨银行·丁香借记卡(银联卡)", "哈尔滨银行·丁香卡", "哈尔滨银行·福农借记卡", + "无锡市商业银行·太湖金保卡(银联卡)", "丹东银行·借记IC卡", "丹东银行·丹东银行公务卡", "兰州银行·敦煌卡", "南昌银行·金瑞卡(银联卡)", "南昌银行·南昌银行借记卡", "南昌银行·金瑞卡", "晋商银行·晋龙一卡通", + "晋商银行·晋龙一卡通", "晋商银行·晋龙卡(银联卡)", "青岛银行·金桥通卡", "青岛银行·金桥卡(银联卡)", "青岛银行·金桥卡(银联卡)", "青岛银行·金桥卡", "青岛银行·借记IC卡", "吉林银行·雾凇卡(银联卡)", + "吉林银行·雾凇卡(银联卡)", "南通商业银行·金桥卡(银联卡)", "南通商业银行·金桥卡(银联卡)", "日照银行·黄海卡、财富卡借记卡", "鞍山银行·千山卡(银联卡)", "鞍山银行·千山卡(银联卡)", "鞍山银行·千山卡", + "青海银行·三江银行卡(银联卡)", "青海银行·三江卡", "台州银行·大唐贷记卡", "台州银行·大唐准贷记卡", "台州银行·大唐卡(银联卡)", "台州银行·大唐卡", "台州银行·借记卡", "台州银行·公务卡", + "泉州银行·海峡银联卡(银联卡)", "泉州银行·海峡储蓄卡", "泉州银行·海峡银联卡(银联卡)", "泉州银行·海峡卡", "泉州银行·公务卡", "昆明商业银行·春城卡(银联卡)", "昆明商业银行·春城卡(银联卡)", + "昆明商业银行·富滇IC卡(复合卡)", "阜新银行·借记IC卡", "嘉兴银行·南湖借记卡(银联卡)", "廊坊银行·白金卡", "廊坊银行·金卡", "廊坊银行·银星卡(银联卡)", "廊坊银行·龙凤呈祥卡", "内蒙古银行·百灵卡(银联卡)", + "内蒙古银行·成吉思汗卡", "湖州市商业银行·百合卡", "湖州市商业银行·", "沧州银行·狮城卡", "南宁市商业银行·桂花卡(银联卡)", "包商银行·雄鹰卡(银联卡)", "包商银行·包头市商业银行借记卡", "包商银行·雄鹰贷记卡", + "包商银行·包商银行内蒙古自治区公务卡", "包商银行·贷记卡", "包商银行·借记卡", "连云港市商业银行·金猴神通借记卡", "威海商业银行·通达卡(银联卡)", "威海市商业银行·通达借记IC卡", "攀枝花市商业银行·攀枝花卡(银联卡)", + "攀枝花市商业银行·攀枝花卡", "绵阳市商业银行·科技城卡(银联卡)", "泸州市商业银行·酒城卡(银联卡)", "泸州市商业银行·酒城IC卡", "大同市商业银行·云冈卡(银联卡)", "三门峡银行·天鹅卡(银联卡)", "广东南粤银行·南珠卡(银联卡)", + "张家口市商业银行·好运IC借记卡", "桂林市商业银行·漓江卡(银联卡)", "龙江银行·福农借记卡", "龙江银行·联名借记卡", "龙江银行·福农借记卡", "龙江银行·龙江IC卡", "龙江银行·社会保障卡", "龙江银行·--", + "江苏长江商业银行·长江卡", "徐州市商业银行·彭城借记卡(银联卡)", "南充市商业银行·借记IC卡", "南充市商业银行·熊猫团团卡", "莱商银行·银联标准卡", "莱芜银行·金凤卡", "莱商银行·借记IC卡", "德阳银行·锦程卡定活一卡通", + "德阳银行·锦程卡定活一卡通金卡", "德阳银行·锦程卡定活一卡通", "唐山市商业银行·唐山市城通卡", "曲靖市商业银行·珠江源卡", "曲靖市商业银行·珠江源IC卡", "温州银行·金鹿信用卡", "温州银行·金鹿信用卡", + "温州银行·金鹿公务卡", "温州银行·贷记IC卡", "汉口银行·汉口银行贷记卡", "汉口银行·汉口银行贷记卡", "汉口银行·九通香港旅游贷记普卡", "汉口银行·九通香港旅游贷记金卡", "汉口银行·贷记卡", "汉口银行·九通公务卡", + "江苏银行·聚宝借记卡", "江苏银行·月季卡", "江苏银行·紫金卡", "江苏银行·绿扬卡(银联卡)", "江苏银行·月季卡(银联卡)", "江苏银行·九州借记卡(银联卡)", "江苏银行·月季卡(银联卡)", "江苏银行·聚宝惠民福农卡", + "江苏银行·江苏银行聚宝IC借记卡", "江苏银行·聚宝IC借记卡VIP卡", "长治市商业银行·长治商行银联晋龙卡", "承德市商业银行·热河卡", "承德银行·借记IC卡", "德州银行·长河借记卡", "德州银行·--", "遵义市商业银行·社保卡", + "遵义市商业银行·尊卡", "邯郸市商业银行·邯银卡", "邯郸市商业银行·邯郸银行贵宾IC借记卡", "安顺市商业银行·黄果树福农卡", "安顺市商业银行·黄果树借记卡", "江苏银行·紫金信用卡(公务卡)", "江苏银行·紫金信用卡", + "江苏银行·天翼联名信用卡", "平凉市商业银行·广成卡", "玉溪市商业银行·红塔卡", "玉溪市商业银行·红塔卡", "浙江民泰商业银行·金融IC卡", "浙江民泰商业银行·民泰借记卡", "浙江民泰商业银行·金融IC卡C卡", + "浙江民泰商业银行·银联标准普卡金卡", "浙江民泰商业银行·商惠通", "上饶市商业银行·三清山卡", "东营银行·胜利卡", "泰安市商业银行·岱宗卡", "泰安市商业银行·市民一卡通", "浙江稠州商业银行·义卡", + "浙江稠州商业银行·义卡借记IC卡", "浙江稠州商业银行·公务卡", "自贡市商业银行·借记IC卡", "自贡市商业银行·锦程卡", "鄂尔多斯银行·天骄公务卡", "鹤壁银行·鹤卡", "许昌银行·连城卡", "铁岭银行·龙凤卡", + "乐山市商业银行·大福卡", "乐山市商业银行·--", "长安银行·长长卡", "长安银行·借记IC卡", "重庆三峡银行·财富人生卡", "重庆三峡银行·借记卡", "石嘴山银行·麒麟借记卡", "石嘴山银行·麒麟借记卡", + "石嘴山银行·麒麟公务卡", "盘锦市商业银行·鹤卡", "盘锦市商业银行·盘锦市商业银行鹤卡", "平顶山银行·平顶山银行公务卡", "朝阳银行·鑫鑫通卡", "朝阳银行·朝阳银行福农卡", "朝阳银行·红山卡", "宁波东海银行·绿叶卡", + "遂宁市商业银行·锦程卡", "遂宁是商业银行·金荷卡", "保定银行·直隶卡", "保定银行·直隶卡", "凉山州商业银行·锦程卡", "凉山州商业银行·金凉山卡", "漯河银行·福卡", "漯河银行·福源卡", "漯河银行·福源公务卡", + "达州市商业银行·锦程卡", "新乡市商业银行·新卡", "晋中银行·九州方圆借记卡", "晋中银行·九州方圆卡", "驻马店银行·驿站卡", "驻马店银行·驿站卡", "驻马店银行·公务卡", "衡水银行·金鼎卡", "衡水银行·借记IC卡", + "周口银行·如愿卡", "周口银行·公务卡", "阳泉市商业银行·金鼎卡", "阳泉市商业银行·金鼎卡", "宜宾市商业银行·锦程卡", "宜宾市商业银行·借记IC卡", "库尔勒市商业银行·孔雀胡杨卡", "雅安市商业银行·锦城卡", + "雅安市商业银行·--", "安阳银行·安鼎卡", "信阳银行·信阳卡", "信阳银行·公务卡", "信阳银行·信阳卡", "华融湘江银行·华融卡", "华融湘江银行·华融卡", "营口沿海银行·祥云借记卡", "景德镇商业银行·瓷都卡", + "哈密市商业银行·瓜香借记卡", "湖北银行·金牛卡", "湖北银行·汉江卡", "湖北银行·借记卡", "湖北银行·三峡卡", "湖北银行·至尊卡", "湖北银行·金融IC卡", "西藏银行·借记IC卡", "新疆汇和银行·汇和卡", + "广东华兴银行·借记卡", "广东华兴银行·华兴银联公司卡", "广东华兴银行·华兴联名IC卡", "广东华兴银行·华兴金融IC借记卡", "濮阳银行·龙翔卡", "宁波通商银行·借记卡", "甘肃银行·神舟兴陇借记卡", + "甘肃银行·甘肃银行神州兴陇IC卡", "枣庄银行·借记IC卡", "本溪市商业银行·借记卡", "盛京银行·医保卡", "上海农商银行·如意卡(银联卡)", "上海农商银行·如意卡(银联卡)", "上海农商银行·鑫通卡", + "上海农商银行·国际如意卡", "上海农商银行·借记IC卡", "常熟市农村商业银行·粒金贷记卡(银联卡)", "常熟市农村商业银行·公务卡", "常熟市农村商业银行·粒金准贷卡", "常熟农村商业银行·粒金借记卡(银联卡)", + "常熟农村商业银行·粒金IC卡", "常熟农村商业银行·粒金卡", "深圳农村商业银行·信通卡(银联卡)", "深圳农村商业银行·信通商务卡(银联卡)", "深圳农村商业银行·信通卡", "深圳农村商业银行·信通商务卡", + "广州农村商业银行·福农太阳卡", "广东南海农村商业银行·盛通卡", "广东南海农村商业银行·盛通卡(银联卡)", "佛山顺德农村商业银行·恒通卡(银联卡)", "佛山顺德农村商业银行·恒通卡", + "佛山顺德农村商业银行·恒通卡(银联卡)", "江阴农村商业银行·暨阳公务卡", "江阴市农村商业银行·合作贷记卡(银联卡)", "江阴农村商业银行·合作借记卡", "江阴农村商业银行·合作卡(银联卡)", + "江阴农村商业银行·暨阳卡", "重庆农村商业银行·江渝借记卡VIP卡", "重庆农村商业银行·江渝IC借记卡", "重庆农村商业银行·江渝乡情福农卡", "东莞农村商业银行·信通卡(银联卡)", + "东莞农村商业银行·信通卡(银联卡)", "东莞农村商业银行·信通信用卡", "东莞农村商业银行·信通借记卡", "东莞农村商业银行·贷记IC卡", "张家港农村商业银行·一卡通(银联卡)", + "张家港农村商业银行·一卡通(银联卡)", "张家港农村商业银行·", "北京农村商业银行·信通卡", "北京农村商业银行·惠通卡", "北京农村商业银行·凤凰福农卡", "北京农村商业银行·惠通卡", + "北京农村商业银行·中国旅行卡", "北京农村商业银行·凤凰卡", "天津农村商业银行·吉祥商联IC卡", "天津农村商业银行·信通借记卡(银联卡)", "天津农村商业银行·借记IC卡", + "鄞州农村合作银行·蜜蜂借记卡(银联卡)", "宁波鄞州农村合作银行·蜜蜂电子钱包(IC)", "宁波鄞州农村合作银行·蜜蜂IC借记卡", "宁波鄞州农村合作银行·蜜蜂贷记IC卡", "宁波鄞州农村合作银行·蜜蜂贷记卡", + "宁波鄞州农村合作银行·公务卡", "成都农村商业银行·福农卡", "成都农村商业银行·福农卡", "珠海农村商业银行·信通卡(银联卡)", "太仓农村商业银行·郑和卡(银联卡)", "太仓农村商业银行·郑和IC借记卡", + "无锡农村商业银行·金阿福", "无锡农村商业银行·借记IC卡", "黄河农村商业银行·黄河卡", "黄河农村商业银行·黄河富农卡福农卡", "黄河农村商业银行·借记IC卡", "天津滨海农村商业银行·四海通卡", + "天津滨海农村商业银行·四海通e芯卡", "武汉农村商业银行·汉卡", "武汉农村商业银行·汉卡", "武汉农村商业银行·中国旅游卡", "江南农村商业银行·阳湖卡(银联卡)", "江南农村商业银行·天天红火卡", + "江南农村商业银行·借记IC卡", "海口联合农村商业银行·海口联合农村商业银行合卡", "湖北嘉鱼吴江村镇银行·垂虹卡", "福建建瓯石狮村镇银行·玉竹卡", "浙江平湖工银村镇银行·金平卡", "重庆璧山工银村镇银行·翡翠卡", + "重庆农村商业银行·银联标准贷记卡", "重庆农村商业银行·公务卡", "南阳村镇银行·玉都卡", "晋中市榆次融信村镇银行·魏榆卡", "三水珠江村镇银行·珠江太阳卡", "东营莱商村镇银行·绿洲卡", "建设银行·单位结算卡", + "玉溪市商业银行·红塔卡"}; + + public static void main(String[] args) { + String cardNumber = "6210676802084484923";//卡号 + String name = getNameOfBank(cardNumber); + System.out.println(name); + } + + //传入卡号 得到银行名称 + public static String getNameOfBank(String idCard) { + int index = -1; + + if (idCard == null || idCard.length() < 16 || idCard.length() > 19) { + return ""; + } + + //6位Bin号 + String cardbin_6 = idCard.substring(0, 6); + for (int i = 0; i < bankBin.length; i++) { + if (cardbin_6.equals(bankBin[i])) { + index = i; + } + } + if (index != -1) { + return bankName[index]; + } + + //8位Bin号 + String cardbin_8 = idCard.substring(0, 8); + for (int i = 0; i < bankBin.length; i++) { + if (cardbin_8.equals(bankBin[i])) { + index = i; + } + } + if (index != -1) { + return bankName[index]; + } + + return ""; + } + +} \ No newline at end of file diff --git a/src/main/java/com/zscat/mallplus/utils/BaseEntity.java b/src/main/java/com/zscat/mallplus/utils/BaseEntity.java new file mode 100644 index 0000000..30ac057 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/BaseEntity.java @@ -0,0 +1,23 @@ +package com.zscat.mallplus.utils; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** + * @Auther: shenzhuan + * @Date: 2019/5/19 02:16 + * @Description: + */ +@Setter +@Getter +public class BaseEntity implements Serializable { + //部署admin的时候 删除 + //部署portal的时候 解除 + @TableField("store_id") + private Integer storeId; + + +} diff --git a/src/main/java/com/zscat/mallplus/utils/BeanUtil.java b/src/main/java/com/zscat/mallplus/utils/BeanUtil.java new file mode 100644 index 0000000..7c992b5 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/BeanUtil.java @@ -0,0 +1,105 @@ +package com.zscat.mallplus.utils; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.springframework.beans.BeanUtils; +import org.springframework.cglib.beans.BeanMap; + +import java.lang.reflect.Field; +import java.util.List; +import java.util.Map; + +/** + * Created on 2018/2/26 0026. + * + * @author enilu + */ +public class BeanUtil { + /** + * 将对象装换为map + * @param bean + * @return + */ + public static Map beanToMap(T bean) { + Map map = Maps.newHashMap(); + if (bean != null) { + BeanMap beanMap = BeanMap.create(bean); + for (Object key : beanMap.keySet()) { + map.put(key+"", beanMap.get(key)); + } + } + return map; + } + + /** + * 将map装换为javabean对象 + * @param map + * @param bean + * @return + */ + public static T mapToBean(Map map,T bean) { + BeanMap beanMap = BeanMap.create(bean); + beanMap.putAll(map); + return bean; + } + + /** + * 将List转换为List> + * @param objList + * @return + */ + public static List> objectsToMaps(List objList) { + List> list = Lists.newArrayList(); + if (objList != null && objList.size() > 0) { + Map map = null; + T bean = null; + for (int i = 0,size = objList.size(); i < size; i++) { + bean = objList.get(i); + map = beanToMap(bean); + list.add(map); + } + } + return list; + } + + /** + * 将List>转换为List + * @param maps + * @param clazz + * @return + * @throws InstantiationException + * @throws IllegalAccessException + */ + public static List mapsToObjects(List> maps,Class clazz) throws InstantiationException, IllegalAccessException { + List list = Lists.newArrayList(); + if (maps != null && maps.size() > 0) { + Map map = null; + T bean = null; + for (int i = 0,size = maps.size(); i < size; i++) { + map = maps.get(i); + bean = clazz.newInstance(); + mapToBean(map, bean); + list.add(bean); + } + } + return list; + } + + public static List objectToObjects(List objectList,Class clazz) throws InstantiationException, IllegalAccessException { + List list = Lists.newArrayList(); + if (objectList != null && objectList.size() > 0) { + Object source = null; + T bean = null; + for (int i = 0,size = objectList.size(); i < size; i++) { + source = objectList.get(i); + bean = clazz.newInstance(); + BeanUtils.copyProperties(source,bean); + list.add(bean); + } + } + return list; + } + + + +} diff --git a/src/main/java/com/zscat/mallplus/utils/CommonPage.java b/src/main/java/com/zscat/mallplus/utils/CommonPage.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/zscat/mallplus/utils/CommonResult.java b/src/main/java/com/zscat/mallplus/utils/CommonResult.java new file mode 100644 index 0000000..77173d6 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/CommonResult.java @@ -0,0 +1,176 @@ +package com.zscat.mallplus.utils; + +import org.springframework.validation.BindingResult; + +/** + * 通用返回对象 + * Created by zscat on 2018/4/28. + */ +public class CommonResult { + //操作成功 + public static final int SUCCESS = 200; + //操作失败 + public static final int FAILED = 500; + //参数校验失败 + public static final int VALIDATE_FAILED = 201; + //未认证 + public static final int UNAUTHORIZED = 401; + //未授权 + public static final int FORBIDDEN = 403; + private int code; + private String msg; + private Object data; + + /** + * 普通成功返回 + * + * @param data 获取的数据 + */ + public CommonResult success(Object data) { + this.code = SUCCESS; + this.msg = "操作成功"; + this.data = data; + return this; + } + + /** + * 普通成功返回 + */ + public CommonResult success() { + this.code = SUCCESS; + this.msg = "操作成功"; + this.data = "操作成功"; + return this; + } + + /** + * 普通成功返回 + */ + public CommonResult success(String msg, Object data) { + this.code = SUCCESS; + this.msg = msg; + this.data = data; + return this; + } + + /** + * 普通成功返回 + */ + public CommonResult fail(int code) { + this.code = code; + if (code == 100) { + this.msg = "请先登录"; + this.data = "请先登录"; + } + return this; + } + + /** + * 普通失败提示信息 + */ + public CommonResult failed() { + this.code = FAILED; + this.msg = "操作失败"; + return this; + } + + public CommonResult failed(String msg) { + this.code = FAILED; + this.msg = msg; + this.data = msg; + return this; + } + + public CommonResult failed(Integer code, String message) { + this.code = code; + this.msg = message; + return this; + } + + /** + * 参数验证失败使用 + * + * @param msg 错误信息 + */ + public CommonResult validateFailed(String msg) { + this.code = VALIDATE_FAILED; + this.msg = msg; + this.data = "参数错误"; + return this; + } + + /** + * 未登录时使用 + * + * @param msg 错误信息 + */ + public CommonResult unauthorized(String msg) { + this.code = UNAUTHORIZED; + this.msg = "暂未登录或token已经过期"; + this.data = msg; + return this; + } + + /** + * 未授权时使用 + * + * @param msg 错误信息 + */ + public CommonResult forbidden(String msg) { + this.code = FORBIDDEN; + this.msg = "没有相关权限"; + this.data = msg; + return this; + } + + /** + * 参数验证失败使用 + * + * @param result 错误信息 + */ + public CommonResult validateFailed(BindingResult result) { + validateFailed(result.getFieldError().getDefaultMessage()); + return this; + } + + /** + * 普通失败提示信息 + */ + public CommonResult paramFailed() { + this.code = FAILED; + this.msg = "参数失败"; + return this; + } + + public CommonResult paramFailed(String msg) { + this.code = FAILED; + this.msg = msg; + return this; + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getmsg() { + return msg; + } + + public void setmsg(String msg) { + this.msg = msg; + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } + + +} diff --git a/src/main/java/com/zscat/mallplus/utils/DateUtils.java b/src/main/java/com/zscat/mallplus/utils/DateUtils.java new file mode 100644 index 0000000..a4a823e --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/DateUtils.java @@ -0,0 +1,135 @@ +package com.zscat.mallplus.utils; + +import org.apache.commons.lang3.time.DateFormatUtils; + +import java.lang.management.ManagementFactory; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +/** + * 时间工具类 + * + * @author Vean + */ +public class DateUtils extends org.apache.commons.lang3.time.DateUtils { + public static String YYYY = "yyyy"; + + public static String YYYY_MM = "yyyy-MM"; + + public static String YYYY_MM_DD = "yyyy-MM-dd"; + + public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss"; + + public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"; + + private static String[] parsePatterns = { + "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM", + "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM", + "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"}; + + /** + * 获取当前Date型日期 + * + * @return Date() 当前日期 + */ + public static Date getNowDate() { + return new Date(); + } + + /** + * 获取当前日期, 默认格式为yyyy-MM-dd + * + * @return String + */ + public static String getDate() { + return dateTimeNow(YYYY_MM_DD); + } + + public static final String getTime() { + return dateTimeNow(YYYY_MM_DD_HH_MM_SS); + } + + public static final String dateTimeNow() { + return dateTimeNow(YYYYMMDDHHMMSS); + } + + public static final String dateTimeNow(final String format) { + return parseDateToStr(format, new Date()); + } + + public static final String dateTime(final Date date) { + return parseDateToStr(YYYY_MM_DD, date); + } + + public static final String parseDateToStr(final String format, final Date date) { + return new SimpleDateFormat(format).format(date); + } + + public static final Date dateTime(final String format, final String ts) { + try { + return new SimpleDateFormat(format).parse(ts); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } + + /** + * 日期路径 即年/月/日 如2018/08/08 + */ + public static final String datePath() { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyy/MM/dd"); + } + + /** + * 日期路径 即年/月/日 如20180808 + */ + public static final String dateTime() { + Date now = new Date(); + return DateFormatUtils.format(now, "yyyyMMdd"); + } + + /** + * 日期型字符串转化为日期 格式 + */ + public static Date parseDate(Object str) { + if (str == null) { + return null; + } + try { + return parseDate(str.toString(), parsePatterns); + } catch (ParseException e) { + return null; + } + } + + /** + * 获取服务器启动时间 + */ + public static Date getServerStartDate() { + long time = ManagementFactory.getRuntimeMXBean().getStartTime(); + return new Date(time); + } + + /** + * 计算两个时间差 + */ + public static String getDatePoor(Date endDate, Date nowDate) { + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long nm = 1000 * 60; + // long ns = 1000; + // 获得两个时间的毫秒时间差异 + long diff = endDate.getTime() - nowDate.getTime(); + // 计算差多少天 + long day = diff / nd; + // 计算差多少小时 + long hour = diff % nd / nh; + // 计算差多少分钟 + long min = diff % nd % nh / nm; + // 计算差多少秒//输出结果 + // long sec = diff % nd % nh % nm / ns; + return day + "天" + hour + "小时" + min + "分钟"; + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/EncryptUtils.java b/src/main/java/com/zscat/mallplus/utils/EncryptUtils.java new file mode 100644 index 0000000..1216d28 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/EncryptUtils.java @@ -0,0 +1,93 @@ +package com.zscat.mallplus.utils; + + + +import org.apache.commons.codec.digest.DigestUtils; + +import javax.crypto.Cipher; +import javax.crypto.SecretKey; +import javax.crypto.SecretKeyFactory; +import javax.crypto.spec.DESKeySpec; +import javax.crypto.spec.IvParameterSpec; +import java.nio.charset.StandardCharsets; + +/** + * 加密 + * + * @author mallplus + * @date 2018-11-23 + */ +public class EncryptUtils { + + private static String strKey = "Passw0rd", strParam = "Passw0rd"; + + /** + * 对称加密 + */ + public static String desEncrypt(String source) throws Exception { + if (source == null || source.length() == 0) { + return null; + } + Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); + DESKeySpec desKeySpec = new DESKeySpec(strKey.getBytes(StandardCharsets.UTF_8)); + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); + SecretKey secretKey = keyFactory.generateSecret(desKeySpec); + IvParameterSpec iv = new IvParameterSpec(strParam.getBytes(StandardCharsets.UTF_8)); + cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv); + return byte2hex( + cipher.doFinal(source.getBytes(StandardCharsets.UTF_8))).toUpperCase(); + } + + private static String byte2hex(byte[] inStr) { + String stmp; + StringBuilder out = new StringBuilder(inStr.length * 2); + for (byte b : inStr) { + stmp = Integer.toHexString(b & 0xFF); + if (stmp.length() == 1) { + // 如果是0至F的单位字符串,则添加0 + out.append("0").append(stmp); + } else { + out.append(stmp); + } + } + return out.toString(); + } + + private static byte[] hex2byte(byte[] b) { + if ((b.length % 2) != 0) { + throw new IllegalArgumentException("长度不是偶数"); + } + byte[] b2 = new byte[b.length / 2]; + for (int n = 0; n < b.length; n += 2) { + String item = new String(b, n, 2); + b2[n / 2] = (byte) Integer.parseInt(item, 16); + } + return b2; + } + + /** + * 对称解密 + */ + public static String desDecrypt(String source) throws Exception { + if (source == null || source.length() == 0) { + return null; + } + byte[] src = hex2byte(source.getBytes()); + Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); + DESKeySpec desKeySpec = new DESKeySpec(strKey.getBytes(StandardCharsets.UTF_8)); + SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); + SecretKey secretKey = keyFactory.generateSecret(desKeySpec); + IvParameterSpec iv = new IvParameterSpec(strParam.getBytes(StandardCharsets.UTF_8)); + cipher.init(Cipher.DECRYPT_MODE, secretKey, iv); + byte[] retByte = cipher.doFinal(src); + return new String(retByte); + } + + /** + * 密码加密 + */ + public static String encryptPassword(String password) { + // return DigestUtils.md5DigestAsHex(password.getBytes()); + return DigestUtils.md5Hex(password.getBytes()); + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/ExportEntityMap.java b/src/main/java/com/zscat/mallplus/utils/ExportEntityMap.java new file mode 100644 index 0000000..1561625 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/ExportEntityMap.java @@ -0,0 +1,18 @@ +package com.zscat.mallplus.utils; + +import java.lang.annotation.*; + +/** + * @author dimengzhe + * @date 2020/9/30 17:38 + * @description + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +public @interface ExportEntityMap { + + String EnName() default "数据库列名"; + + String CnName() default "实体映射名"; +} diff --git a/src/main/java/com/zscat/mallplus/utils/ExportExcelUtils.java b/src/main/java/com/zscat/mallplus/utils/ExportExcelUtils.java new file mode 100644 index 0000000..e5bee34 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/ExportExcelUtils.java @@ -0,0 +1,278 @@ +package com.zscat.mallplus.utils; + +import org.apache.poi.hssf.usermodel.*; +import org.apache.poi.hssf.usermodel.HeaderFooter; +import org.apache.poi.ss.usermodel.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; +import java.lang.reflect.Field; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * @author dimengzhe + * @date 2020/9/30 17:02 + * @description + */ + +public class ExportExcelUtils { + + public static void export(String excelName, List list, Class c, HttpServletResponse response) { + // 设置日期格式 + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + // 设置默认文件名为当前时间:年月日时分秒 + if (excelName == null || excelName == "") { + excelName = df.format(new Date()).toString(); + } else { + excelName = excelName + df.format(new Date()).toString(); + } + // 设置response头信息 + response.reset(); + // 改成输出excel文件 + response.setContentType("application/vnd.ms-excel"); + // response.setHeader("Content-disposition", "attachment; filename=" +// + new String(excelName.getBytes("gb2312"), "ISO-8859-1") + ".xls"); + response.setHeader("Content-Disposition", "attachment;fileName=" + + excelName+".xls"); + + try { + //创建一个WorkBook,对应一个Excel文件 + HSSFWorkbook wb = new HSSFWorkbook(); + //在Workbook中,创建一个sheet,对应Excel中的工作薄(sheet) + HSSFSheet sheet = wb.createSheet(excelName); + //设置 边距、页眉、页脚 + HSSFPrintSetup printSetup = sheet.getPrintSetup(); + //打印方向,true:横向,false:纵向(默认) + printSetup.setLandscape(true); + printSetup.setHeaderMargin(0.2); + printSetup.setFooterMargin(0.2); + //设置打印缩放为88% + //printSetup.setScale((short) 55); + printSetup.setFitHeight((short) 0); + printSetup.setFitWidth((short) 1); + // printSetup.setLeftToRight(true);//列从左向右显示② + // 纸张 + printSetup.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE); + // 页边距(下) + sheet.setMargin(HSSFSheet.BottomMargin, (double) 0.8); + // 页边距(左) + sheet.setMargin(HSSFSheet.LeftMargin, (double) 0); + // 页边距(右) + sheet.setMargin(HSSFSheet.RightMargin, (double) 0); + // 页边距(上) + sheet.setMargin(HSSFSheet.TopMargin, (double) 0.8); + //设置打印页面为水平居中 + sheet.setHorizontallyCenter(true); + sheet.setVerticallyCenter(true); + sheet.setAutobreaks(false); + sheet.setFitToPage(false); + Footer footer = sheet.getFooter(); + //设置页数 + footer.setCenter("第" + HeaderFooter.page() + "页,共 " + HeaderFooter.numPages() + "页"); + Header header = sheet.getHeader(); + //自定义页眉,并设置页眉 左中右显示信息 + //居中 +// header.setCenter("Center Header"); + //靠左 + header.setLeft(HSSFHeader.font("宋体", "") + + HSSFHeader.fontSize((short) 16) + excelName + ".xls"); + //靠右 +// header.setRight(HSSFHeader.font("Stencil-Normal", "Italic") + +// HSSFHeader.fontSize((short) 16) + "Right w/ Stencil-Normal Italic font and size 16"); + + //创建单元格,并设置值表头 设置表头居中 + HSSFCellStyle style = wb.createCellStyle(); + //设置边框 + //下边框 + style.setBorderBottom(BorderStyle.THIN); + style.setBorderLeft(BorderStyle.THIN); + //上边框 + style.setBorderTop(BorderStyle.THIN); + //右边框 + style.setBorderRight(BorderStyle.THIN); + //自动换行 + //style.setWrapText(true); + //创建一个居中格式 + style.setAlignment(HorizontalAlignment.CENTER); + //上下居中 + style.setVerticalAlignment(VerticalAlignment.CENTER); + //设置字体 + HSSFFont font = wb.createFont(); + font.setFontName("宋体"); + + style.setFont(font); + // 填充工作表 + //获取需要转出的excel表头的map字段 + LinkedHashMap fieldMap = new LinkedHashMap<>(); + //循环注解里面的值 填入Link集合 + Field[] declaredFields = c.getDeclaredFields(); + + for (Field declaredField : declaredFields) { + //获取注解对象 + ExportEntityMap declaredAnnotation = declaredField.getDeclaredAnnotation(ExportEntityMap.class); + if (declaredAnnotation != null) { + fieldMap.put(declaredAnnotation.EnName(), declaredAnnotation.CnName()); + } + } + fillSheet(sheet, list, fieldMap, style); + //将文件输出 + OutputStream ouputStream = response.getOutputStream(); + wb.write(ouputStream); + ouputStream.flush(); + ouputStream.close(); + } catch (Exception e) { + System.err.println("导出Excel失败!"); + System.err.println(e.getMessage()); + } + } + + /** + * 根据字段名获取字段对象 + * + * @param fieldName 字段名 + * @param clazz 包含该字段的类 + * @return 字段 + */ + public static Field getFieldByName(String fieldName, Class clazz) { + //logger.info("根据字段名获取字段对象:getFieldByName()"); + // 拿到本类的所有字段 + Field[] selfFields = clazz.getDeclaredFields(); + // 如果本类中存在该字段,则返回 + for (Field field : selfFields) { + //如果本类中存在该字段,则返回 + if (field.getName().equals(fieldName)) { + return field; + } + } + // 否则,查看父类中是否存在此字段,如果有则返回 + Class superClazz = clazz.getSuperclass(); + if (superClazz != null && superClazz != Object.class) { + //递归 + return getFieldByName(fieldName, superClazz); + } + // 如果本类和父类都没有,则返回空 + return null; + } + + /** + * 根据字段名获取字段值 + * + * @param fieldName 字段名 + * @param o 对象 + * @return 字段值 + * @throws Exception 异常 + */ + public static Object getFieldValueByName(String fieldName, Object o) + throws Exception { + //logger.info("根据字段名获取字段值:getFieldValueByName()"); + Object value = null; + //根据字段名得到字段对象 + Field field = getFieldByName(fieldName, o.getClass()); + //如果该字段存在,则取出该字段的值 + if (field != null) { + //类中的成员变量为private,在类外边使用属性值,故必须进行此操作 + field.setAccessible(true); + //获取当前对象中当前Field的value + value = field.get(o); + } else { + throw new Exception(o.getClass().getSimpleName() + "类不存在字段名 " + + fieldName); + } + return value; + } + + /** + * 根据带路径或不带路径的属性名获取属性值,即接受简单属性名, + * 如userName等,又接受带路径的属性名,如student.department.name等 + * + * @param fieldNameSequence 带路径的属性名或简单属性名 + * @param o 对象 + * @return 属性值 + * @throws Exception 异常 + */ + public static Object getFieldValueByNameSequence(String fieldNameSequence, + Object o) throws Exception { + // logger.info("根据带路径或不带路径的属性名获取属性值,即接受简单属性名:getFieldValueByNameSequence()"); + Object value = null; + // 将fieldNameSequence进行拆分 + String[] attributes = fieldNameSequence.split("\\."); + if (attributes.length == 1) { + value = getFieldValueByName(fieldNameSequence, o); + } else { + // 根据数组中第一个连接属性名获取连接属性对象,如student.department.name + Object fieldObj = getFieldValueByName(attributes[0], o); + //截取除第一个属性名之后的路径 + String subFieldNameSequence = fieldNameSequence + .substring(fieldNameSequence.indexOf(".") + 1); + //递归得到最终的属性对象的值 + value = getFieldValueByNameSequence(subFieldNameSequence, fieldObj); + } + return value; + } + + /** + * 向工作表中填充数据 + * + * @param sheet excel的工作表名称 + * @param list 数据源 + * @param fieldMap 中英文字段对应关系的Map + * @param style 表格中的格式 + * @throws Exception 异常 + */ + public static void fillSheet(HSSFSheet sheet, List list, + LinkedHashMap fieldMap, HSSFCellStyle style) throws Exception { + //logger.info("向工作表中填充数据:fillSheet()"); + // 定义存放英文字段名和中文字段名的数组 + String[] enFields = new String[fieldMap.size()]; + String[] cnFields = new String[fieldMap.size()]; + // 填充数组 + int count = 0; + for (Map.Entry entry : fieldMap.entrySet()) { + enFields[count] = entry.getKey(); + cnFields[count] = entry.getValue(); + count++; + } + //存储最大列宽 + Map maxWidth = new HashMap<>(); + HSSFRow row = sheet.createRow((int) 0); + HSSFCell cell = null; + // 填充表头 + for (int i = 0; i < cnFields.length; i++) { + cell = row.createCell(i); + cell.setCellValue(cnFields[i]); + cell.setCellStyle(style); + sheet.autoSizeColumn(i); + //设置自适应宽高 + maxWidth.put(i, cell.getStringCellValue().getBytes().length * 256 + 200); + } + // 填充内容 + for (int index = 0; index < list.size(); index++) { + row = sheet.createRow(index + 1); + // 获取单个对象 + T item = list.get(index); + int j = 0; + for (int i = 0; i < enFields.length; i++) { + HSSFCell createCell = row.createCell(j); + Object objValue = getFieldValueByNameSequence(enFields[i], item); + String fieldValue = objValue == null ? "" : objValue.toString(); + cell = row.createCell(i); + createCell.setCellValue(fieldValue); + + int length = createCell.getStringCellValue().getBytes().length * 256 + 200; + //这里把宽度最大限制到15000 + if (length > 15000) { + length = 15000; + } + maxWidth.put(j, Math.max(length, maxWidth.get(j))); + j++; + createCell.setCellStyle(style); + } + } + + // 列宽自适应 + for (int i = 0; i < cnFields.length; i++) { + sheet.setColumnWidth(i, maxWidth.get(i)); + } + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/HttpUtils.java b/src/main/java/com/zscat/mallplus/utils/HttpUtils.java new file mode 100644 index 0000000..f09f1ab --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/HttpUtils.java @@ -0,0 +1,314 @@ +package com.zscat.mallplus.utils; + +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpDelete; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.conn.ClientConnectionManager; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.ssl.SSLSocketFactory; +import org.apache.http.entity.ByteArrayEntity; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class HttpUtils { + + /** + * get + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @return + * @throws Exception + */ + public static HttpResponse doGet(String host, String path, String method, + Map headers, + Map querys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpGet request = new HttpGet(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + return httpClient.execute(request); + } + + /** + * post form + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param bodys + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + Map bodys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (bodys != null) { + List nameValuePairList = new ArrayList(); + + for (String key : bodys.keySet()) { + nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key))); + } + UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8"); + formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); + request.setEntity(formEntity); + } + + return httpClient.execute(request); + } + + /** + * Post String + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + String body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (ValidatorUtils.notEmpty(body)) { + request.setEntity(new StringEntity(body, "utf-8")); + } + + return httpClient.execute(request); + } + + /** + * Post stream + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + byte[] body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (body != null) { + request.setEntity(new ByteArrayEntity(body)); + } + + return httpClient.execute(request); + } + + /** + * Put String + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPut(String host, String path, String method, + Map headers, + Map querys, + String body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPut request = new HttpPut(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (ValidatorUtils.notEmpty(body)) { + request.setEntity(new StringEntity(body, "utf-8")); + } + + return httpClient.execute(request); + } + + /** + * Put stream + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPut(String host, String path, String method, + Map headers, + Map querys, + byte[] body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPut request = new HttpPut(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (body != null) { + request.setEntity(new ByteArrayEntity(body)); + } + + return httpClient.execute(request); + } + + /** + * Delete + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @return + * @throws Exception + */ + public static HttpResponse doDelete(String host, String path, String method, + Map headers, + Map querys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpDelete request = new HttpDelete(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + return httpClient.execute(request); + } + + private static String buildUrl(String host, String path, Map querys) throws UnsupportedEncodingException { + StringBuilder sbUrl = new StringBuilder(); + sbUrl.append(host); + if (!ValidatorUtils.notEmpty(path)) { + sbUrl.append(path); + } + if (null != querys) { + StringBuilder sbQuery = new StringBuilder(); + for (Map.Entry query : querys.entrySet()) { + if (0 < sbQuery.length()) { + sbQuery.append("&"); + } + if (ValidatorUtils.notEmpty(query.getKey()) && !ValidatorUtils.notEmpty(query.getValue())) { + sbQuery.append(query.getValue()); + } + if (!ValidatorUtils.notEmpty(query.getKey())) { + sbQuery.append(query.getKey()); + if (!ValidatorUtils.notEmpty(query.getValue())) { + sbQuery.append("="); + sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8")); + } + } + } + if (0 < sbQuery.length()) { + sbUrl.append("?").append(sbQuery); + } + } + + return sbUrl.toString(); + } + + private static HttpClient wrapClient(String host) { + HttpClient httpClient = new DefaultHttpClient(); + if (host.startsWith("https://")) { + sslClient(httpClient); + } + + return httpClient; + } + + private static void sslClient(HttpClient httpClient) { + try { + SSLContext ctx = SSLContext.getInstance("TLS"); + X509TrustManager tm = new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return null; + } + + public void checkClientTrusted(X509Certificate[] xcs, String str) { + + } + + public void checkServerTrusted(X509Certificate[] xcs, String str) { + + } + }; + ctx.init(null, new TrustManager[]{tm}, null); + SSLSocketFactory ssf = new SSLSocketFactory(ctx); + ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); + ClientConnectionManager ccm = httpClient.getConnectionManager(); + SchemeRegistry registry = ccm.getSchemeRegistry(); + registry.register(new Scheme("https", 443, ssf)); + } catch (KeyManagementException ex) { + throw new RuntimeException(ex); + } catch (NoSuchAlgorithmException ex) { + throw new RuntimeException(ex); + } + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/IdWorker.java b/src/main/java/com/zscat/mallplus/utils/IdWorker.java new file mode 100644 index 0000000..410b0b7 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/IdWorker.java @@ -0,0 +1,35 @@ +package com.zscat.mallplus.utils; + +import java.util.UUID; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class IdWorker { + private static final Sequence worker = new Sequence(); + + public IdWorker() { + } + + public static void main(String[] args) { + ExecutorService executorService = Executors.newFixedThreadPool(5); + + for (int j = 0; j < 5; ++j) { + executorService.submit(() -> { + for (int i = 0; i < 30000; ++i) { + System.out.println(Thread.currentThread().getId() + "--" + getId()); + } + + }); + } + + executorService.shutdown(); + } + + public static long getId() { + return worker.nextId(); + } + + private static synchronized String get32UUID() { + return UUID.randomUUID().toString().replace("-", ""); + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/InterfaceUrl.java b/src/main/java/com/zscat/mallplus/utils/InterfaceUrl.java new file mode 100644 index 0000000..8ed6487 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/InterfaceUrl.java @@ -0,0 +1,30 @@ +/* +package com.zscat.mallplus.utils; + +*/ +/** + * Created with IntelliJ IDEA. + * + * @Auther: dimengzhe + * @Date: 2020/06/19/10:40 + * @Description:地址管理 + *//* + +public class InterfaceUrl { + +// public static String domain = "http://www.yyundong.com:8083/api"; + public static String domain = "http://2xpk7t.natappfree.cc/api"; + //支付宝授权回调地址 +// public static String apliPayUrl = "http://www.yyundong.com:8083/api/aliPay/notify_url"; + public static String notifyUrl = "http://2xpk7t.natappfree.cc/aliPay/notify_url"; + //应用appId + public static String appId = "2018082761134635";//乒娱网 + //支付宝网关 + public static String serverUrl = "https://openapi.alipay.com/gateway.do";// + //支付宝公钥,由支付宝生成 +// public static String publicKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlOOOOWg4e2deSDMRG2y5EzG7/udMfTzYkn4u/3PWIOlpcUd2ujCztqKY2HdFhIaWE4q8PCLtT5XtBWCq2IVvpCPE8HRzgSZckh6J36SnO0JG1pZe8HajUgIw+T1NM7/b2Nb4OaI5HKNsQ5ei9NlN9RvlIUSpum/nIyk/9CBvNAg8xUlHUFPaPL0WCMJ9zIwRO+aEn2kwA7JQ8AvjuPy390oil0W4fxfHonJYxuzOo6Lx369Vti5N9UmXczXUcOiVwyCveoH05chNr3r8xu5QqpD1o32cO01Zt4EA9j6aM2H09g08VzoLam2OoU3umKOV0vvX+bMmb1GwrkussSvDpQIDAQAB"; + //开发者应用私钥,由开发者自己生成 + public static String privateKey = "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCpYi38h2/25e4mNWo56mmwuwa7QbBbPdgH00rsmPI/+0JkYhda2uZDvtrFXWMLzVJ2ioh9pamcfUbb2LcFgLIJ0KJyTia4sVMHmbk9l8wPf9mE4aOYN8ix6olzkm9ZhDGVekx2niW/hf6bpjnh92+I4EZo4xsK3RAsQ9oDXPjrJzktrrerAP+5MNOY8wLRqOp0KU+bOIcsz4Wz+qD3UxP2PjXPJDvXu7NkYDndOc7G0tVnhzVahFafqAntbgQHMyJENhLl9xdbnYdiKQqZJUwfI9xlRKYk08P4YVYTL7dAGAibQJJamgqmmKo8uibDIMkLsTGNm5WzW3EErWOCl6wlAgMBAAECggEAXfyxgbdxRDHPlHn9KIfO/5a3pH5NqkNFtQnkQCaZ/TChZWwcg3iFXr/vSqaICAt1H3u9QuMCm2fUQrcczzvbDqErEnwU9lTGuqfs5qVtQIhznU1K5nLFtRtsC6oMiUJV9Rh4hzU3wu9KGPoCkkUnKW8xApBJ+Bw0FivMNCOJp4kipif0gXQFxDH14w8n4QAyG3keXYP43DPqlsjmjJm4inHajxNO012Snle5SqA5HaIrZzf9St3ctq1BzqgUaD5yyXPmPyi1sqjrK+A16R4DrbKlY2h3/mo1IIfPjYbjb/uPcHf9pDMxEFwYIZ+kkz0uUjRDNWVX3A7ldav8MvvZ/QKBgQDot2raw93blrEhld3GGY4JNxboi6UZ1guK2nDEjlnpZjDUklSlNsx82NM8g0bm76Q9A3WpuoHQoSGEIy9ElrMuNS7xj+PZe5mNyKFMBG8hKeIV3jx4OIU80aiV9OQLv6+AonavHvOLXu41OJKdoQexyz7q3lu0+i7d9KKbWd2SlwKBgQC6VJxj1KPh3kHtmm/d/5fOZUDLqxTOyexRrEUCj9hGjv5XymxULQPskKxasFKiPyn4TCp2ZOrPO1slu8IUpzaymM4DDQYtTQkbsAT/N6r9efCJTXDdTgm5iyTaILbSbqd01KEnqjmFLOSCpasvM47rARlG4IYXIXD9cXKj12AaowKBgAN7w2C079w6nDopeSFe/o5KwdAHTxhc6N1SOb/ndZcVzYNREW1LrbHsuPS97lDEo4u6Qoeg4BKUZuEIecuoCdSWPTamdb2qqPjDWQ6/Pj6b1uOG6RbPmcb4SHK+MK+wVdsyE165suGSMTSgvSkY4PmbVjzDyVGjMRJneAulQ7jPAoGAViCIDWkbu2q1xLNPJClhrSiGU94nhxI05uefGnkM+khcbo4Flr8cAjw5Ps4j1BUoPDpQolsxYkrIbd+k7VEBanpRN33MriHepOqu1J2RrwqvUXf3RIQu4JHdnenjN8+oHcuvFhuL7O/8TBtxziah2CSw318m/AgcJzpKSEtkg8sCgYB/cr6PuuQ7JpK2kYmwYMSwNvys0v31iSqFmJK6EyPRycGw9Wj/ANiGJrKuVqdnzb2LqSzdNWkKte25hSIv21satgHM2of7oFzjFB2N/hMx5o+nOQgq0zZcA6Mvn0W3GFFZ1YAep3oyrxLh9+5ELi2JGXgJafiEJvr5J3YzSGOWrw=="; + +} +*/ diff --git a/src/main/java/com/zscat/mallplus/utils/IpAddressUtil.java b/src/main/java/com/zscat/mallplus/utils/IpAddressUtil.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/zscat/mallplus/utils/IpUtils.java b/src/main/java/com/zscat/mallplus/utils/IpUtils.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/zscat/mallplus/utils/Lists.java b/src/main/java/com/zscat/mallplus/utils/Lists.java new file mode 100644 index 0000000..e69de29 diff --git a/src/main/java/com/zscat/mallplus/utils/Maps.java b/src/main/java/com/zscat/mallplus/utils/Maps.java new file mode 100644 index 0000000..d2fe278 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/Maps.java @@ -0,0 +1,42 @@ +package com.zscat.mallplus.utils; + + +import java.util.HashMap; + +/** + * Map 工具类 + * + * @author enilu + * + */ +public final class Maps { + + private Maps() { + } + + public static HashMap newHashMap() { + return new HashMap(100); + } + + public static HashMap newHashMap(K k, V v) { + HashMap map = new HashMap(100); + map.put(k, v); + return map; + } + + @SuppressWarnings("unchecked") + public static HashMap newHashMap(K k, V v, + Object... extraKeyValues) { + if (extraKeyValues.length % 2 != 0) { + throw new IllegalArgumentException(); + } + HashMap map = new HashMap(100); + map.put(k, v); + for (int i = 0; i < extraKeyValues.length; i += 2) { + k = (K) extraKeyValues[i]; + v = (V) extraKeyValues[i + 1]; + map.put(k, v); + } + return map; + } +} \ No newline at end of file diff --git a/src/main/java/com/zscat/mallplus/utils/PhoneUtil.java b/src/main/java/com/zscat/mallplus/utils/PhoneUtil.java new file mode 100644 index 0000000..186aa3f --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/PhoneUtil.java @@ -0,0 +1,31 @@ +package com.zscat.mallplus.utils; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * @author 作者 zscat E-mail: 951449465@qq.com + * @version 创建时间:2017年11月12日 上午22:57:51 + * 正则表达式手机号码校验类 + */ +public class PhoneUtil { + + private static String REGEX = "^(1[3-9])\\d{9}$"; +// private static String REGEX = "^((13[0-9])|(14[0-9])|(15([0-9]|[5-9]))|(17[013678])|(18[0,5-9]))\\d{8}$"; + private static Pattern P = Pattern.compile(REGEX); + + /** + * 校验手机号 + * + * @param phone + * @return + */ + public static boolean checkPhone(String phone) { + if (phone == null || phone.length() != 11) { + return Boolean.FALSE; + } + + Matcher m = P.matcher(phone); + return m.matches(); + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/PluginUtils.java b/src/main/java/com/zscat/mallplus/utils/PluginUtils.java new file mode 100644 index 0000000..ff00e00 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/PluginUtils.java @@ -0,0 +1,42 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.zscat.mallplus.utils; + + +import cn.hutool.core.util.StrUtil; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.reflection.MetaObject; +import org.apache.ibatis.reflection.SystemMetaObject; + +import java.lang.reflect.Proxy; +import java.util.Properties; + +public final class PluginUtils { + public static final String DELEGATE_BOUNDSQL_SQL = "delegate.boundSql.sql"; + public static final String DELEGATE_MAPPEDSTATEMENT = "delegate.mappedStatement"; + + private PluginUtils() { + } + + + public static MappedStatement getMappedStatement(MetaObject metaObject) { + return (MappedStatement) metaObject.getValue("delegate.mappedStatement"); + } + + public static Object realTarget(Object target) { + if (Proxy.isProxyClass(target.getClass())) { + MetaObject metaObject = SystemMetaObject.forObject(target); + return realTarget(metaObject.getValue("h.target")); + } else { + return target; + } + } + + public static String getProperty(Properties properties, String key) { + String value = properties.getProperty(key); + return StrUtil.isBlank(value) ? null : value; + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/ReducePriceUtils.java b/src/main/java/com/zscat/mallplus/utils/ReducePriceUtils.java new file mode 100644 index 0000000..3906bc7 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/ReducePriceUtils.java @@ -0,0 +1,107 @@ +package com.zscat.mallplus.utils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @author cc + * @Decription 砍价 + */ +public class ReducePriceUtils { + /** + * 1.总金额不超过总共可砍的价格*100 单位是分 + * 2.每次砍价都能砍到金额,最低不能低于1分,最大金额不能超过(总共可砍的价)*100 + */ + private static final int MINMONEY = 1; + private static final int MAXMONEY = 200 * 100; + + /** + * 这里为了避免某一次砍价占用大量资金,我们需要设定非最后一次砍价的最大金额, + * 我们把他设置为砍价金额平均值的N倍 + */ + private static final double TIMES = 3.1; + + /** + * 砍价合法性校验 + * + * @param money + * @param count + * @return + */ + private static boolean isRight(int money, int count) { + double avg = money / count; + //小于最小金额 + if (avg < MINMONEY) { + return false; + } else if (avg > MAXMONEY) { + return false; + } + return true; + } + + /** + * 随机分配一个金额 + * + * @param money + * @param minS:最小金额 + * @param maxS:最大金额 + * @param count + * @return + */ + private static int randomReducePrice(int money, int minS, int maxS, int count) { + //若只有一个,直接返回 + if (count == 1) { + return money; + } + //如果最大金额和最小金额相等,直接返回金额 + if (minS == maxS) { + return minS; + } + int max = maxS > money ? money : maxS; + //分配砍价正确情况,允许砍价的最大值 + int maxY = money - (count - 1) * minS; + //分配砍价正确情况,允许砍价最小值 + int minY = money - (count - 1) * maxS; + //随机产生砍价的最小值 + int min = minS > minY ? minS : minY; + //随机产生砍价的最大值 + max = max > maxY ? maxY : max; + //随机产生一个砍价 + return (int) Math.rint(Math.random() * (max - min) + min); + } + + /** + * 砍价 + * + * @param money 可砍总价 + * @param count 个数 + * @return + */ + public static List splitReducePrice(int money, int count) { + //红包合法性分析 + if (!isRight(money, count)) { + return new ArrayList<>(); + } + //红包列表 + List list = new ArrayList<>(); + //每个红包的最大的金额为平均金额的TIMES倍 + int max = (int) (money * TIMES / count); + max = max > MAXMONEY ? MAXMONEY : max; + //分配红包 + int sum = 0; + + for (int i = 0; i < count; i++) { + int one = randomReducePrice(money, MINMONEY, max, count - i); + list.add(one / 100.0); + money -= one; + sum += one; + } + System.out.println("sum:" + sum); + return list; + } + + public static void main(String[] args) { + List list = splitReducePrice(19799, 10); + System.out.println(list); + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/Sequence.java b/src/main/java/com/zscat/mallplus/utils/Sequence.java new file mode 100644 index 0000000..e55959a --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/Sequence.java @@ -0,0 +1,129 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.zscat.mallplus.utils; + +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.lang.management.ManagementFactory; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.util.concurrent.ThreadLocalRandom; + +class Sequence { + private static final Logger logger = LoggerFactory.getLogger(Sequence.class); + private final long twepoch = 1288834974657L; + private final long workerIdBits = 5L; + private final long datacenterIdBits = 5L; + private final long maxWorkerId = 31L; + private final long maxDatacenterId = 31L; + private final long sequenceBits = 12L; + private final long workerIdShift = 12L; + private final long datacenterIdShift = 17L; + private final long timestampLeftShift = 22L; + private final long sequenceMask = 4095L; + private long workerId; + private long datacenterId; + private long sequence = 0L; + private long lastTimestamp = -1L; + + public Sequence() { + this.datacenterId = getDatacenterId(31L); + this.workerId = getMaxWorkerId(this.datacenterId, 31L); + } + + public Sequence(long workerId, long datacenterId) { + if (workerId <= 31L && workerId >= 0L) { + if (datacenterId <= 31L && datacenterId >= 0L) { + this.workerId = workerId; + this.datacenterId = datacenterId; + } else { + throw new RuntimeException(String.format("datacenter Id can't be greater than %d or less than 0", 31L)); + } + } else { + throw new RuntimeException(String.format("worker Id can't be greater than %d or less than 0", 31L)); + } + } + + protected static long getMaxWorkerId(long datacenterId, long maxWorkerId) { + StringBuilder mpid = new StringBuilder(); + mpid.append(datacenterId); + String name = ManagementFactory.getRuntimeMXBean().getName(); + if (StringUtils.isNotBlank(name)) { + mpid.append(name.split("@")[0]); + } + + return (long) (mpid.toString().hashCode() & '\uffff') % (maxWorkerId + 1L); + } + + protected static long getDatacenterId(long maxDatacenterId) { + long id = 0L; + + try { + InetAddress ip = InetAddress.getLocalHost(); + NetworkInterface network = NetworkInterface.getByInetAddress(ip); + if (network == null) { + id = 1L; + } else { + byte[] mac = network.getHardwareAddress(); + if (null != mac) { + id = (255L & (long) mac[mac.length - 1] | 65280L & (long) mac[mac.length - 2] << 8) >> 6; + id %= maxDatacenterId + 1L; + } + } + } catch (Exception var7) { + logger.warn(" getDatacenterId: " + var7.getMessage()); + } + + return id; + } + + public synchronized long nextId() { + long timestamp = this.timeGen(); + if (timestamp < this.lastTimestamp) { + long offset = this.lastTimestamp - timestamp; + if (offset > 5L) { + throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", offset)); + } + + try { + this.wait(offset << 1); + timestamp = this.timeGen(); + if (timestamp < this.lastTimestamp) { + throw new RuntimeException(String.format("Clock moved backwards. Refusing to generate id for %d milliseconds", offset)); + } + } catch (Exception var6) { + throw new RuntimeException(var6); + } + } + + if (this.lastTimestamp == timestamp) { + this.sequence = this.sequence + 1L & 4095L; + if (this.sequence == 0L) { + timestamp = this.tilNextMillis(this.lastTimestamp); + } + } else { + this.sequence = ThreadLocalRandom.current().nextLong(1L, 3L); + } + + this.lastTimestamp = timestamp; + return timestamp - 1288834974657L << 22 | this.datacenterId << 17 | this.workerId << 12 | this.sequence; + } + + protected long tilNextMillis(long lastTimestamp) { + long timestamp; + for (timestamp = this.timeGen(); timestamp <= lastTimestamp; timestamp = this.timeGen()) { + } + + return timestamp; + } + + protected long timeGen() { + return SystemClock.now(); + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/SystemClock.java b/src/main/java/com/zscat/mallplus/utils/SystemClock.java new file mode 100644 index 0000000..1e9d464 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/SystemClock.java @@ -0,0 +1,62 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.zscat.mallplus.utils; + +import java.sql.Timestamp; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicLong; + +class SystemClock { + private final long period; + private final AtomicLong now; + + private SystemClock(long period) { + this.period = period; + this.now = new AtomicLong(System.currentTimeMillis()); + this.scheduleClockUpdating(); + } + + private static SystemClock instance() { + return SystemClock.InstanceHolder.INSTANCE; + } + + public static long now() { + return instance().currentTimeMillis(); + } + + public static String nowDate() { + return (new Timestamp(instance().currentTimeMillis())).toString(); + } + + private void scheduleClockUpdating() { + ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new ThreadFactory() { + public Thread newThread(Runnable runnable) { + Thread thread = new Thread(runnable, "System Clock"); + thread.setDaemon(true); + return thread; + } + }); + scheduler.scheduleAtFixedRate(new Runnable() { + public void run() { + SystemClock.this.now.set(System.currentTimeMillis()); + } + }, this.period, this.period, TimeUnit.MILLISECONDS); + } + + private long currentTimeMillis() { + return this.now.get(); + } + + private static class InstanceHolder { + public static final SystemClock INSTANCE = new SystemClock(1L); + + private InstanceHolder() { + } + } +} diff --git a/src/main/java/com/zscat/mallplus/utils/ValidatorUtils.java b/src/main/java/com/zscat/mallplus/utils/ValidatorUtils.java new file mode 100644 index 0000000..a995666 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/utils/ValidatorUtils.java @@ -0,0 +1,201 @@ +package com.zscat.mallplus.utils; + +import com.zscat.mallplus.vo.timeline.TimeSecound; + +import java.math.BigDecimal; +import java.util.Collection; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class ValidatorUtils { + + /** + * 判断内容不为空 + * + * @param str + * @return + */ + public static boolean notEmpty(Object str) { + if (str != null && str.toString().trim().length() > 0) { + return true; + } else { + return false; + } + } + + /** + * 判断内容不为空(包含数组) + * + * @param str + * @return + */ + @SuppressWarnings("unchecked") + public static boolean notEmptyIncludeArray(Object str) { + if (str != null && String.valueOf(str).trim().length() > 0) { + if (str instanceof Object[]) {// 增加了数组长度判断 + Object[] array = (Object[]) str; + if (array.length > 0) + return true; + + return false; + } else if (str instanceof List) {// 增加了数组长度判断 + List list = (List) str; + if (list.size() > 0) + return true; + + return false; + } + + return true; + } else { + return false; + } + } + + /** + * 判断内容是空 + * + * @param str + * @return + */ + public static boolean isEmpty(Object str) { + if (str == null || str.toString().trim().length() == 0) { + return true; + } else { + return false; + } + } + + /** + * 检查对象是否为空 + * + * @param obj 要检查的数据(数据类型: String、Number、Boolean、Collection、Map、Object[]) + * @return true: 为空; false: 不为空
  • String:值为 null、""、"0" 时返回 true
  • + * Number:值为 null、0 时返回 true
  • Boolean:值为 null、false 时返回 true
  • + * Collection:值为 null、size=0 时返回 true
  • Map:值为 null、size=0 时返回 + * true
  • Object[]:值为 null、length=0 时返回 true + */ + @SuppressWarnings("unchecked") + public static boolean empty(Object obj) { + if (obj == null) { + return true; + } else if (obj instanceof String && (obj.equals(""))) { + return true; + } else if (obj instanceof Number && ((Number) obj).doubleValue() == 0) { + return true; + } else if (obj instanceof Boolean && !((Boolean) obj)) { + return true; + } else if (obj instanceof Collection && ((Collection) obj).isEmpty()) { + return true; + } else if (obj instanceof Map && ((Map) obj).isEmpty()) { + return true; + } else if (obj instanceof Object[] && ((Object[]) obj).length == 0) { + return true; + } + return false; + } + + /** + * 判断是否是合法邮箱地址 + * + * @param email + * @return + */ + public static boolean isEmail(String email) { + Pattern p = Pattern + .compile("^\\w+([\\-+.]\\w+)*@\\w+([-.]\\w+)*\\.[a-z]{2,3}"); + Matcher m = p.matcher(email); + return m.matches(); + } + + /** + * 只包含英文字母和数字、下划线 + * + * @param str + * @return + */ + public static boolean onlyNumAndChar(String str) { + String regex = "^[a-zA-Z0-9_]+$"; + Pattern pattern = Pattern.compile(regex); + return pattern.matcher(str).matches(); + } + + /** + * 必须包含字母 + * + * @param str + * @return + */ + public static boolean hasLetterAndNum(String str) { + Pattern pattern = Pattern.compile("^(?=.*[a-zA-Z].*).{6,}$"); + return pattern.matcher(str).matches(); + } + + /** + * 是否长度符合 + * + * @param str + * @param min 最小 + * @param max 最大 + * @return + */ + public static boolean lengthBetween(String str, int min, int max) { + return str.length() >= min && str.length() <= max; + } + + /** + * 判断字符串是否是数字 + * + * @param str + * @return + */ + public static boolean isNumeric(String str) { + Pattern pattern = Pattern.compile("[0-9]*"); + Matcher isNum = pattern.matcher(str); + if (!isNum.matches()) { + return false; + } + return true; + } + + public static Double rountTwo(Double num) { + if (num != null) { + BigDecimal b = new BigDecimal(num); + Double d = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); + return d; + } else { + return null; + } + } + + public static String doubleTrans(double d) { + if (Math.round(d) - d == 0) { + return String.valueOf((long) d); + } + return String.valueOf(d); + } + + /** + * 获取结束时间与当前的时间差 + * + * @param endTime + * @return + */ + public static TimeSecound getTimeSecound(Date endTime) { + + long diff = endTime.getTime() - System.currentTimeMillis();// 这样得到的差值是微秒级别 + + long days = diff / (1000 * 60 * 60 * 24);//天 + + long hours = (diff - days * (1000 * 60 * 60 * 24)) + / (1000 * 60 * 60); //小时 + long mins = (diff - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60); //小时 + long sc = (diff - days * (1000 * 60 * 60 * 24) - hours + * (1000 * 60 * 60) - mins * (1000 * 60)) / (1000); // 秒 + + return new TimeSecound(days, hours, mins, sc); + } +} diff --git a/src/main/java/com/zscat/mallplus/vo/ApplyRefundVo.java b/src/main/java/com/zscat/mallplus/vo/ApplyRefundVo.java new file mode 100644 index 0000000..d8c3ed1 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/ApplyRefundVo.java @@ -0,0 +1,19 @@ +package com.zscat.mallplus.vo; + +import lombok.Getter; +import lombok.Setter; + +import java.math.BigDecimal; + +@Setter +@Getter +public class ApplyRefundVo { + BigDecimal returnAmount; + private Long itemId; + private String items; + private Integer type; + private String desc; + private String[] images; + + private Long companyAddressId; +} diff --git a/src/main/java/com/zscat/mallplus/vo/BalancePayParam.java b/src/main/java/com/zscat/mallplus/vo/BalancePayParam.java new file mode 100644 index 0000000..2eb4505 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/BalancePayParam.java @@ -0,0 +1,18 @@ +package com.zscat.mallplus.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @Auther: shenzhuan + * @Date: 2019/6/19 09:08 + * @Description: + */ +@Data +public class BalancePayParam { + + private Long orderId; + private BigDecimal payAmount; + private BigDecimal balance; +} diff --git a/src/main/java/com/zscat/mallplus/vo/BlobUpload.java b/src/main/java/com/zscat/mallplus/vo/BlobUpload.java new file mode 100644 index 0000000..19dcbe0 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/BlobUpload.java @@ -0,0 +1,16 @@ +package com.zscat.mallplus.vo; + +import lombok.Getter; +import lombok.Setter; + +/** + * Created by Administrator on 2019/11/23. + */ +@Setter +@Getter +public class BlobUpload { + + String fileName; + String fileUrl; + String thumbnailUrl; +} diff --git a/src/main/java/com/zscat/mallplus/vo/IdStatus.java b/src/main/java/com/zscat/mallplus/vo/IdStatus.java new file mode 100644 index 0000000..6fb278d --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/IdStatus.java @@ -0,0 +1,12 @@ +package com.zscat.mallplus.vo; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class IdStatus { + private Long id; + private Integer status; + private Integer type; +} diff --git a/src/main/java/com/zscat/mallplus/vo/LogParam.java b/src/main/java/com/zscat/mallplus/vo/LogParam.java new file mode 100644 index 0000000..fef3800 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/LogParam.java @@ -0,0 +1,17 @@ +package com.zscat.mallplus.vo; + +import lombok.Data; + +/** + * @Auther: shenzhuan + * @Date: 2019/5/22 09:39 + * @Description: + */ +@Data +public class LogParam { + private String startTime; + private String endTime; + private String keyword; + private Integer current = 1; + private Integer size = 10; +} diff --git a/src/main/java/com/zscat/mallplus/vo/LogStatisc.java b/src/main/java/com/zscat/mallplus/vo/LogStatisc.java new file mode 100644 index 0000000..182c570 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/LogStatisc.java @@ -0,0 +1,29 @@ +package com.zscat.mallplus.vo; + +import lombok.Data; + +/** + * @Auther: shenzhuan + * @Date: 2019/5/21 19:15 + * @Description: + */ +@Data +public class LogStatisc { + private String method; + private int count; + private int avgMin; + private int count1; + private int count2; + private int count3; + private int count4; + private int count5; + private int count6; + + private int sum; + private int sum1; + private int sum2; + private int sum3; + private int sum4; + private int sum5; + private int sum6; +} diff --git a/src/main/java/com/zscat/mallplus/vo/MallThreadLocal.java b/src/main/java/com/zscat/mallplus/vo/MallThreadLocal.java new file mode 100644 index 0000000..7a39509 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/MallThreadLocal.java @@ -0,0 +1,37 @@ +package com.zscat.mallplus.vo; + +public class MallThreadLocal { + private static final ThreadLocal threadLocalUser = new ThreadLocal<>(); + private static final ThreadLocal threadLocalB = new ThreadLocal<>(); + + public static String getLocalUser() { + return threadLocalUser.get(); + } + + /** + * 在调用的线程的map中存入key为ThreadLocal本身,value为在该线程设置的值 + * + * @param value + */ + public static void setLocalUser(String value) { + threadLocalUser.set(value); + } + + public static void clearLocalUser() { + threadLocalUser.remove(); + } + + public static String getValueB() { + return threadLocalB.get(); + } + + public static void setValueB(String value) { + threadLocalB.set(value); + } + + public static void clearValueB() { + threadLocalB.remove(); + } + + +} diff --git a/src/main/java/com/zscat/mallplus/vo/OrderStatusCount.java b/src/main/java/com/zscat/mallplus/vo/OrderStatusCount.java new file mode 100644 index 0000000..09d9f98 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/OrderStatusCount.java @@ -0,0 +1,25 @@ +package com.zscat.mallplus.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * @Auther: shenzhuan + * @Date: 2019/2/23 13:12 + * @Description: + */ +@Data +public class OrderStatusCount implements Serializable { + int statusAll = 0; + BigDecimal payAmount = BigDecimal.ZERO; + // 12->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单 + private int status0; + private int status1; + private int status2; + private int status3; + private int status4; + private int status5; + private int status14; +} diff --git a/src/main/java/com/zscat/mallplus/vo/OssAliyunField.java b/src/main/java/com/zscat/mallplus/vo/OssAliyunField.java new file mode 100644 index 0000000..1777430 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/OssAliyunField.java @@ -0,0 +1,70 @@ +package com.zscat.mallplus.vo; + +/** + * 阿里云OSS上传配置类 + * + * @author: Peter + * @date: 2018-4-11 + */ +public class OssAliyunField { + + private String accessKeyId; + + private String accessKeySecret; + + private String bucketName; + + private String endPoint; + + private String styleName; + + private String prefix; + + public String getAccessKeyId() { + return accessKeyId; + } + + public void setAccessKeyId(String accessKeyId) { + this.accessKeyId = accessKeyId; + } + + public String getAccessKeySecret() { + return accessKeySecret; + } + + public void setAccessKeySecret(String accessKeySecret) { + this.accessKeySecret = accessKeySecret; + } + + public String getBucketName() { + return bucketName; + } + + public void setBucketName(String bucketName) { + this.bucketName = bucketName; + } + + public String getEndPoint() { + return endPoint; + } + + public void setEndPoint(String endPoint) { + this.endPoint = endPoint; + } + + public String getStyleName() { + return styleName; + } + + public void setStyleName(String styleName) { + this.styleName = styleName; + } + + public String getPrefix() { + return prefix; + } + + public void setPrefix(String prefix) { + this.prefix = prefix; + } +} diff --git a/src/main/java/com/zscat/mallplus/vo/Rediskey.java b/src/main/java/com/zscat/mallplus/vo/Rediskey.java new file mode 100644 index 0000000..46420ca --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/Rediskey.java @@ -0,0 +1,99 @@ +package com.zscat.mallplus.vo; + +/** + * @Auther: shenzhuan + * @Date: 2019/4/26 17:52 + * @Description: + */ +public class Rediskey { + + public static final String ARTICLE_VIEWCOUNT_CODE = "ARTICLEVIEWCOUNTCODE_"; + public static final String ARTICLE_VIEWCOUNT_KEY = "ARTICLE_VIEWCOUNT_KEY"; + + public static final String STORE_VIEWCOUNT_CODE = "STOREVIEWCOUNTCODE_"; + public static final String STORE_VIEWCOUNT_KEY = "STORE_VIEWCOUNT_KEY"; + + public static final String GOODS_VIEWCOUNT_CODE = "GOODSVIEWCOUNTCODE_"; + public static final String GOODS_VIEWCOUNT_KEY = "GOODS_VIEWCOUNT_KEY"; + public static final String KDWL_INFO_CACHE = "KDWL_INFO_CACHE"; + + public static String appletBannerKey = "appletBannerKey"; + public static String appletCategoryKey = "appletCategoryKey"; + public static String appletNavIconKey = "appletNavIconKey"; + public static String appletHotProductsKey = "appletHotProductsKey"; + public static String appletNewProductsKey = "appletNewProductsKey"; + public static String appletCateProductsKey = "appletCateProductsKey"; + public static String appletsmsFlashPromotionProductKey = "appletsmsFlashPromotionProductKey"; + + + public static String allTreesList = "allTreesList:%s"; + public static String menuTreesList = "menuTreesList:%s"; + public static String permissionTreesList = "permissionTreesList:%s"; + public static String allMenuList = "menuList:%s"; + public static String menuList = "menuList:%s"; + public static String user = "user:%s"; + + public static String HomeContentResult = "HomeContentResult"; + public static String PmsProductResult = "PmsProductResult"; + public static String orderDetailResult = "orderDetailResult"; + + public static String PmsProductConsult = "PmsProductConsult"; + + + public static String GOODSDETAIL = "GOODSDETAIL:%s"; + public static String GOODSDETAIL1 = "GOODSDETAIL1:%s"; + public static String GOODSHISTORY = "GOODSHISTORY:%s"; + + public static String HOMEPAGE = "HomeJsshop"; + + public static String HOMEPAGEMOBILE = "HOMEPAGEMOBILE"; + public static String HOMEPAGEmallplus1 = "HomeMallplus1"; + public static String HOMEPAGEmallplus2 = "HomeMallplus2"; + public static String HOMEPAGE2 = "HomeCrmeb"; + public static String HOMEPAGEPC = "HomePc"; + public static String categoryAndChilds = "categoryAndChilds"; + public static String goodsConsult = "goodsConsult"; + public static String categoryAndGoodsList = "categoryAndGoodsList"; + public static String specialcategoryAndGoodsList = "specialcategoryAndGoodsList"; + public static String goodsCategorys = "goodsCategorys"; + public static String orderDetail = "orderDetail"; + public static String getorderstatusnum = "getorderstatusnum"; + + public static String STOREHOMEPAGEMOBILE = "STOREHOMEPAGEMOBILE:%s"; + /** + * diypage.setStatus(1); + * diypage.setType(2); + */ + public static String EsShopDiypage = "EsShopDiypage12:%s"; + /** + * 会员 + */ + public static String MEMBER = "MEMBER:%s"; + private static String SPLIT = ":"; + private static String BIZ_LIKE = "LIKE"; + private static String BIZ_DISLIKE = "DISLIKE"; + + /** + * 产生key:如在newsId为2上的咨询点赞后会产生key: LIKE:ENTITY_NEWS:2 + * + * @param entityId + * @param entityType + * @return + */ + public static String getLikeKey(int entityId, int entityType) { + return BIZ_LIKE + SPLIT + String.valueOf(entityType) + SPLIT + String.valueOf(entityId); + } + + /** + * 取消赞:如在newsId为2上的资讯取消点赞后会产生key: DISLIKE:ENTITY_NEWS:2 + * + * @param entityId + * @param entityType + * @return + */ + public static String getDisLikeKey(int entityId, int entityType) { + return BIZ_DISLIKE + SPLIT + String.valueOf(entityType) + SPLIT + String.valueOf(entityId); + } + + +} diff --git a/src/main/java/com/zscat/mallplus/vo/SmsCode.java b/src/main/java/com/zscat/mallplus/vo/SmsCode.java new file mode 100644 index 0000000..e9de67a --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/SmsCode.java @@ -0,0 +1,15 @@ +package com.zscat.mallplus.vo; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class SmsCode implements Serializable { + /** + * + */ + private static final long serialVersionUID = 7353129036120185186L; + //短信流水号 + private String key; +} diff --git a/src/main/java/com/zscat/mallplus/vo/home/Configs.java b/src/main/java/com/zscat/mallplus/vo/home/Configs.java new file mode 100644 index 0000000..c7a6090 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/home/Configs.java @@ -0,0 +1,36 @@ +package com.zscat.mallplus.vo.home; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class Configs implements Serializable { + private String version = "mallplus-1.1.1"; + private Integer about_article_id = 5; + private Integer cate_style = 3; + private Integer cate_type = 1; + private String distribution_agreement = "分销商申请协议"; + private String distribution_notes = " 成为Jshop云商分销商后,可以获取佣金,用户只可被推荐一次,越早推荐越返利越多哦。"; + private String distribution_store = "1"; + private Integer ent_id = 10519; + private Integer goods_stocks_warn = 5; + private Integer image_max = 5; + private Integer invoice_switch = 1; + private Integer open_distribution = 1; + private Integer point_switch = 1; + private String[] recommend_keys = {"圆珠笔", "文件夹", "文件袋"}; + private String share_desc = ""; + private String share_image = "https=//demo.jihainet.com/static/poster/1/1-1b867dc28e4bd37e55eaf327b6722fea.jpg"; + private String share_title = "优质好店邀您共享"; + private String shop_default_image = "http=//demo.jihainet.com/static/uploads/images/d6/60/71/5cde803675475.png"; + private String shop_desc = "管易云"; + private String shop_logo = "http=//demo.jihainet.com/static/uploads/images/68/f6/1b/5cde803088e85.png"; + private String shop_mobile = "13146587722"; + private String shop_name = "mallplus多租户商城"; + private String show_inviter = ""; + private String statistics = ""; + private Integer store_switch = 1; + private Integer tocash_money_low = 1; + private Integer tocash_money_rate = 1; +} diff --git a/src/main/java/com/zscat/mallplus/vo/home/Pages.java b/src/main/java/com/zscat/mallplus/vo/home/Pages.java new file mode 100644 index 0000000..e73e52f --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/home/Pages.java @@ -0,0 +1,31 @@ +package com.zscat.mallplus.vo.home; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class Pages implements Serializable { + private Integer id; + private String code; + private String name; + private String desc; + private Integer layout; + private Integer type; + + private List items; + + public Pages() { + } + + public Pages(Integer id, String code, String name, String desc, Integer layout, Integer type, List pagesItemsList) { + this.id = id; + this.code = code; + this.name = name; + this.desc = desc; + this.layout = layout; + this.type = type; + this.items = pagesItemsList; + } +} diff --git a/src/main/java/com/zscat/mallplus/vo/home/PagesItems.java b/src/main/java/com/zscat/mallplus/vo/home/PagesItems.java new file mode 100644 index 0000000..b556cfc --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/home/PagesItems.java @@ -0,0 +1,29 @@ +package com.zscat.mallplus.vo.home; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class PagesItems implements Serializable { + private Integer id; + private String widget_code; + private String page_code; + private Integer position_id; + private Integer sort; + + private Params params; + + public PagesItems() { + + } + + public PagesItems(Integer id, String widget_code, String page_code, Integer position_id, Integer sort, Params params) { + this.id = id; + this.widget_code = widget_code; + this.page_code = page_code; + this.position_id = position_id; + this.sort = sort; + this.params = params; + } +} diff --git a/src/main/java/com/zscat/mallplus/vo/home/Params.java b/src/main/java/com/zscat/mallplus/vo/home/Params.java new file mode 100644 index 0000000..c3f2062 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/home/Params.java @@ -0,0 +1,43 @@ +package com.zscat.mallplus.vo.home; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class Params implements Serializable { + // 视频 video + private String autoplay; + + //搜索 + private String keywords; + private String style; // imgWindow + + // goods + private String title; + private Integer limit; + + private String type; + private String display; // 1 slide 2 list + private String lookMore; + private Integer classifyId; + + private Integer brandId; + private Integer column; + + // blank + private String backgroundColor; + private Integer height; + + // imgSlide + private Integer duration; + //imgWindow + private String margin; + + // articleClassify + private Integer articleClassifyId; + + + private List list; +} diff --git a/src/main/java/com/zscat/mallplus/vo/home/ServiceMenu.java b/src/main/java/com/zscat/mallplus/vo/home/ServiceMenu.java new file mode 100644 index 0000000..7fad3c8 --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/home/ServiceMenu.java @@ -0,0 +1,25 @@ +package com.zscat.mallplus.vo.home; + +import lombok.Data; + +/** + * Created by Administrator on 2019/10/2. + */ +@Data +public class ServiceMenu { + + private String name; + private String pic; + private String url; + private String wapUrl; + + public ServiceMenu() { + } + + public ServiceMenu(String name, String pic, String url, String wapUrl) { + this.name = name; + this.pic = pic; + this.url = url; + this.wapUrl = wapUrl; + } +} diff --git a/src/main/java/com/zscat/mallplus/vo/timeline/TimeSecound.java b/src/main/java/com/zscat/mallplus/vo/timeline/TimeSecound.java new file mode 100644 index 0000000..89aa56b --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/timeline/TimeSecound.java @@ -0,0 +1,23 @@ +package com.zscat.mallplus.vo.timeline; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class TimeSecound implements Serializable { + long days;//天 + long hours; //小时 + long mins; //分钟 + long sc; //秒 + + public TimeSecound() { + } + + public TimeSecound(long days, long hours, long mins, long sc) { + this.days = days; + this.hours = hours; + this.mins = mins; + this.sc = sc; + } +} diff --git a/src/main/java/com/zscat/mallplus/vo/timeline/Timeline.java b/src/main/java/com/zscat/mallplus/vo/timeline/Timeline.java new file mode 100644 index 0000000..d697b7b --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/timeline/Timeline.java @@ -0,0 +1,23 @@ +package com.zscat.mallplus.vo.timeline; + +import lombok.Data; + +import java.util.List; + +/** + * TimeLine + * + * @author bobbi + * @date 2019/02/24 20:33 + * @email 571002217@qq.com + * @description + */ +@Data +public class Timeline { + + private Integer year; + + private Integer count; + + private List months; +} diff --git a/src/main/java/com/zscat/mallplus/vo/timeline/TimelineMonth.java b/src/main/java/com/zscat/mallplus/vo/timeline/TimelineMonth.java new file mode 100644 index 0000000..2397cec --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/timeline/TimelineMonth.java @@ -0,0 +1,24 @@ +package com.zscat.mallplus.vo.timeline; + +import lombok.Data; + +import java.util.List; + +/** + * TimeLineMonh + * + * @author bobbi + * @date 2019/02/24 20:33 + * @email 571002217@qq.com + * @description + */ +@Data +public class TimelineMonth { + + private Integer month; + + private Integer count; + + private List posts; + +} diff --git a/src/main/java/com/zscat/mallplus/vo/timeline/TimelinePost.java b/src/main/java/com/zscat/mallplus/vo/timeline/TimelinePost.java new file mode 100644 index 0000000..4e7dfac --- /dev/null +++ b/src/main/java/com/zscat/mallplus/vo/timeline/TimelinePost.java @@ -0,0 +1,28 @@ +package com.zscat.mallplus.vo.timeline; + +import lombok.Data; + +import java.util.Date; + +/** + * TimeLineData + * + * @author bobbi + * @date 2019/02/24 20:39 + * @email 571002217@qq.com + * @description + */ +@Data +public class TimelinePost { + + private Integer id; + + private String title; + + private String description; + + private String postType; + + private Date createTime; + +} diff --git a/src/main/resources/application-devv.yml b/src/main/resources/application-devv.yml index f4c7a22..9b8d7a1 100644 --- a/src/main/resources/application-devv.yml +++ b/src/main/resources/application-devv.yml @@ -30,9 +30,9 @@ image: xlsxtmpl: D:/works/projects/yxt/yxtgit/lipinka/yxt-yyth-biz/target/classes/static/upload/ upload: # path: E:/code/yxt-yyth/target/classes/static/upload/ - path: D:/works/projects/yxt/yxtgit/lipinka/yxt-yyth-biz/target/classes/static/upload/ + path: D:/works/projects/yxt/yxtgit/lipinka/yxt-yythmall-biz/target/classes/static/upload/ url: - prefix: http:// 192.168.2.103:7201/upload/ + prefix: http://192.168.2.111:7211/upload/ weixin: miniprogram: appid: wx97c0a62c6d65207f