Commit aa94ae197e4053cbacdb1a3c01394067d27dd68b
1 parent
a8542304
ini
Showing
116 changed files
with
2083 additions
and
2032 deletions
titan-api/pom.xml
... | ... | @@ -434,7 +434,7 @@ |
434 | 434 | <dependency> |
435 | 435 | <groupId>com.yqyw.user</groupId> |
436 | 436 | <artifactId>diligrp-user-client</artifactId> |
437 | - <version>0.0.4-SNAPSHOT</version> | |
437 | + <version>0.0.5-SNAPSHOT</version> | |
438 | 438 | <exclusions> |
439 | 439 | <exclusion> |
440 | 440 | <artifactId>diligrp-website-util</artifactId> |
... | ... | @@ -498,12 +498,12 @@ |
498 | 498 | <!-- 数据库 --> |
499 | 499 | <dili_titan.jdbc.driver>com.mysql.jdbc.Driver</dili_titan.jdbc.driver> |
500 | 500 | <!-- 主库配置 --> |
501 | - <dili_titan.master.jdbc.url>jdbc:MySql://10.28.10.188:3306/agriez_titan?useUnicode=true&characterEncoding=utf8</dili_titan.master.jdbc.url> | |
501 | + <dili_titan.master.jdbc.url>jdbc:MySql://10.28.11.162:3306/titan?useUnicode=true&characterEncoding=utf8</dili_titan.master.jdbc.url> | |
502 | 502 | <dili_titan.master.jdbc.username>root</dili_titan.master.jdbc.username> |
503 | 503 | <dili_titan.master.jdbc.password>123456</dili_titan.master.jdbc.password> |
504 | 504 | <!-- 从库配置 --> |
505 | - <dili_titan.slave.jdbc.url>jdbc:MySql://10.28.10.188:3306/agriez_titan?useUnicode=true&characterEncoding=utf8</dili_titan.slave.jdbc.url> | |
506 | - <dili_titan.slave.jdbc.username>du</dili_titan.slave.jdbc.username> | |
505 | + <dili_titan.slave.jdbc.url>jdbc:MySql://10.28.11.162:3306/titan?useUnicode=true&characterEncoding=utf8</dili_titan.slave.jdbc.url> | |
506 | + <dili_titan.slave.jdbc.username>root</dili_titan.slave.jdbc.username> | |
507 | 507 | <dili_titan.slave.jdbc.password>123456</dili_titan.slave.jdbc.password> |
508 | 508 | <!-- crm接口地址 --> |
509 | 509 | <dili_titan.crm.url>supplier.1n4j.com</dili_titan.crm.url> |
... | ... | @@ -514,9 +514,9 @@ |
514 | 514 | <!--shop接口地址,需要测试自己修改 --> |
515 | 515 | <dili_titan.shop.url>http://shop.1n4j.com</dili_titan.shop.url> |
516 | 516 | <!-- redis接口地址 --> |
517 | - <dili_titan.redis.url>10.28.10.208</dili_titan.redis.url> | |
517 | + <dili_titan.redis.url>10.28.11.205</dili_titan.redis.url> | |
518 | 518 | <!--权限管理的redis配置--> |
519 | - <manage.redis.url>10.28.10.208</manage.redis.url> | |
519 | + <manage.redis.url>10.28.11.205</manage.redis.url> | |
520 | 520 | <manage.redis.port>6379</manage.redis.port> |
521 | 521 | <!-- MQ 地址--> |
522 | 522 | <conf.mq.namesrvAddr>10.28.10.209:9876;10.28.10.149:9876</conf.mq.namesrvAddr> |
... | ... | @@ -536,219 +536,6 @@ |
536 | 536 | <titan.aqy.appSecret>f48d2b799f9661acdb6041e4ac7c142f</titan.aqy.appSecret> |
537 | 537 | </properties> |
538 | 538 | </profile> |
539 | - <profile> | |
540 | - <!-- 测试环境 --> | |
541 | - <id>test</id> | |
542 | - <activation> | |
543 | - <activeByDefault>false</activeByDefault> | |
544 | - </activation> | |
545 | - <properties> | |
546 | - <package.env>test</package.env> | |
547 | - <!--jdbc type --> | |
548 | - <dili_titan.jdbc.datasource.type>dbcp</dili_titan.jdbc.datasource.type> | |
549 | - <!-- 数据库 --> | |
550 | - <dili_titan.jdbc.driver>com.mysql.jdbc.Driver</dili_titan.jdbc.driver> | |
551 | - <!-- 主库配置 --> | |
552 | - <dili_titan.master.jdbc.url>jdbc:MySql://10.28.6.156:3306/agriez_titan?useUnicode=true&characterEncoding=utf8</dili_titan.master.jdbc.url> | |
553 | - <dili_titan.master.jdbc.username>root</dili_titan.master.jdbc.username> | |
554 | - <dili_titan.master.jdbc.password>123456</dili_titan.master.jdbc.password> | |
555 | - <!-- 从库配置 --> | |
556 | - <dili_titan.slave.jdbc.url>jdbc:MySql://10.28.6.155:3306/agriez_titan?useUnicode=true&characterEncoding=utf8</dili_titan.slave.jdbc.url> | |
557 | - <dili_titan.slave.jdbc.username>agriez_titan_reader</dili_titan.slave.jdbc.username> | |
558 | - <dili_titan.slave.jdbc.password>123456</dili_titan.slave.jdbc.password> | |
559 | - <!-- crm接口地址 --> | |
560 | - <dili_titan.crm.url>supplier.1n4j.com</dili_titan.crm.url> | |
561 | - <!-- user接口地址,需要测试自己修改 --> | |
562 | - <dili_titan.user.url>user.1n4j.com</dili_titan.user.url> | |
563 | - <!--关键字接口地址--> | |
564 | - <dili_titan.keywords.url>keyword.filter.1n4j.com</dili_titan.keywords.url> | |
565 | - <!--shop接口地址,需要测试自己修改 --> | |
566 | - <dili_titan.shop.url>http://shop.1n4j.com</dili_titan.shop.url> | |
567 | - <!-- redis接口地址 --> | |
568 | - <dili_titan.redis.url>10.28.10.207</dili_titan.redis.url> | |
569 | - <!--权限管理的redis配置--> | |
570 | - <manage.redis.url>10.28.10.207</manage.redis.url> | |
571 | - <manage.redis.port>6379</manage.redis.port> | |
572 | - <!-- MQ 地址--> | |
573 | - <conf.mq.namesrvAddr>10.28.10.230:9876</conf.mq.namesrvAddr> | |
574 | - <conf.mq.producerGroup>titanPNR</conf.mq.producerGroup> | |
575 | - <!-- website接口地址 --> | |
576 | - <dili_titan.website.url>manweb.1n4j.com</dili_titan.website.url> | |
577 | - <!-- 日志 --> | |
578 | - <dili_titan.log.level>INFO</dili_titan.log.level> | |
579 | - <dili_titan.log.path>/home/tomcat/export</dili_titan.log.path> | |
580 | - <dili_titan.log.root.appender>CONSOLE</dili_titan.log.root.appender> | |
581 | - <!--打包编码 --> | |
582 | - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
583 | - <!-- 图片服务器前缀 --> | |
584 | - <project.imageserver.prefix>http://img0.1n4j.com</project.imageserver.prefix> | |
585 | - <!--爱奇艺视频 --> | |
586 | - <titan.aqy.appkey>e64a09bece964bb484e5decc30c0b950</titan.aqy.appkey> | |
587 | - <titan.aqy.appSecret>f48d2b799f9661acdb6041e4ac7c142f</titan.aqy.appSecret> | |
588 | - </properties> | |
589 | - </profile> | |
590 | - | |
591 | - <profile> | |
592 | - <!--预发布环境--> | |
593 | - <id>pre-online</id> | |
594 | - <!-- 默认 --> | |
595 | - <activation> | |
596 | - <activeByDefault>false</activeByDefault> | |
597 | - </activation> | |
598 | - <properties> | |
599 | - <package.env>pre-online</package.env> | |
600 | - | |
601 | - <!--jdbc type --> | |
602 | - <dili_titan.jdbc.datasource.type>dbcp</dili_titan.jdbc.datasource.type> | |
603 | - <!-- 数据库 --> | |
604 | - <dili_titan.jdbc.driver>com.mysql.jdbc.Driver</dili_titan.jdbc.driver> | |
605 | - <!-- 主库配置 --> | |
606 | - <dili_titan.master.jdbc.url>jdbc:MySql://titan.db.1n4j.com:3306/agriez_titan?useUnicode=true&characterEncoding=utf8</dili_titan.master.jdbc.url> | |
607 | - <dili_titan.master.jdbc.username>root</dili_titan.master.jdbc.username> | |
608 | - <dili_titan.master.jdbc.password>123456</dili_titan.master.jdbc.password> | |
609 | - <!-- 从库配置 --> | |
610 | - <dili_titan.slave.jdbc.url>jdbc:MySql://titan.db.1n4j.com:3306/agriez_titan?useUnicode=true&characterEncoding=utf8</dili_titan.slave.jdbc.url> | |
611 | - <dili_titan.slave.jdbc.username>root</dili_titan.slave.jdbc.username> | |
612 | - <dili_titan.slave.jdbc.password>123456</dili_titan.slave.jdbc.password> | |
613 | - <!-- crm接口地址 --> | |
614 | - <dili_titan.crm.url>supplier.1n4j.com</dili_titan.crm.url> | |
615 | - <!-- user接口地址 --> | |
616 | - <dili_titan.user.url>user.1n4j.com</dili_titan.user.url> | |
617 | - <!--关键字接口地址--> | |
618 | - <dili_titan.keywords.url>keyword.filter.1n4j.com</dili_titan.keywords.url> | |
619 | - <!--shop接口地址,需要测试自己修改 --> | |
620 | - <dili_titan.shop.url>http://shop.1n4j.com</dili_titan.shop.url> | |
621 | - <!-- redis接口地址 --> | |
622 | - <dili_titan.redis.url>redis.1n4j.com</dili_titan.redis.url> | |
623 | - <!--权限管理的redis配置--> | |
624 | - <manage.redis.url>redis.1n4j.com</manage.redis.url> | |
625 | - <manage.redis.port>6379</manage.redis.port> | |
626 | - <!-- MQ 地址--> | |
627 | - <conf.mq.namesrvAddr>10.28.6.51:9876</conf.mq.namesrvAddr> | |
628 | - <conf.mq.producerGroup>titanPNR</conf.mq.producerGroup> | |
629 | - <!-- website接口地址 --> | |
630 | - <dili_titan.website.url>manweb.1n4j.com</dili_titan.website.url> | |
631 | - <!-- 日志 --> | |
632 | - <dili_titan.log.level>INFO</dili_titan.log.level> | |
633 | - <dili_titan.log.path>/diliapp/servers/logs</dili_titan.log.path> | |
634 | - <dili_titan.log.root.appender>FILE_ALL</dili_titan.log.root.appender> | |
635 | - <!--打包编码 --> | |
636 | - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
637 | - <!-- 图片服务器前缀 --> | |
638 | - <project.imageserver.prefix>http://img0.1n4j.com</project.imageserver.prefix> | |
639 | - <!--爱奇艺视频 --> | |
640 | - <titan.aqy.appkey>f689d13d9dce48039cae27e6e03940c6</titan.aqy.appkey> | |
641 | - <titan.aqy.appSecret>8633dfebb9f4443d0f1244262bca94f6</titan.aqy.appSecret> | |
642 | - </properties> | |
643 | - </profile> | |
644 | - | |
645 | - <profile> | |
646 | - <!--上线环境--> | |
647 | - <id>online</id> | |
648 | - <!-- 默认 --> | |
649 | - <activation> | |
650 | - <activeByDefault>false</activeByDefault> | |
651 | - </activation> | |
652 | - <properties> | |
653 | - <package.env>online</package.env> | |
654 | - <!--jdbc type --> | |
655 | - <dili_titan.jdbc.datasource.type>dbcp</dili_titan.jdbc.datasource.type> | |
656 | - <!-- 数据库 --> | |
657 | - <dili_titan.jdbc.driver>com.mysql.jdbc.Driver</dili_titan.jdbc.driver> | |
658 | - <!-- 主库配置 --> | |
659 | - <dili_titan.master.jdbc.url>jdbc:MySql://titan.db.1n4j.com:3306/agriez_titan?useUnicode=true&characterEncoding=utf8</dili_titan.master.jdbc.url> | |
660 | - <dili_titan.master.jdbc.username>appAccPayor</dili_titan.master.jdbc.username> | |
661 | - <dili_titan.master.jdbc.password>iTDYVBtI6MX4NQ3Er2Oh</dili_titan.master.jdbc.password> | |
662 | - <!-- 从库配置 --> | |
663 | - <dili_titan.slave.jdbc.url>jdbc:MySql://192.168.60.61:3306/agriez_titan?useUnicode=true&characterEncoding=utf8</dili_titan.slave.jdbc.url> | |
664 | - <dili_titan.slave.jdbc.username>appAccPayor</dili_titan.slave.jdbc.username> | |
665 | - <dili_titan.slave.jdbc.password>iTDYVBtI6MX4NQ3Er2Oh</dili_titan.slave.jdbc.password> | |
666 | - <!-- crm接口地址 --> | |
667 | - <dili_titan.crm.url>supplier.1n4j.com</dili_titan.crm.url> | |
668 | - <!-- user接口地址 --> | |
669 | - <dili_titan.user.url>user.1n4j.com</dili_titan.user.url> | |
670 | - <!--关键字接口地址--> | |
671 | - <dili_titan.keywords.url>keyword.filter.1n4j.com</dili_titan.keywords.url> | |
672 | - <!--shop接口地址,需要测试自己修改 --> | |
673 | - <dili_titan.shop.url>http://shop.1n4j.com</dili_titan.shop.url> | |
674 | - <!-- redis接口地址 --> | |
675 | - <dili_titan.redis.url>redis.1n4j.com</dili_titan.redis.url> | |
676 | - <!--权限管理的redis配置--> | |
677 | - <manage.redis.url>redis.1n4j.com</manage.redis.url> | |
678 | - <manage.redis.port>6379</manage.redis.port> | |
679 | - <!-- MQ 地址--> | |
680 | - <conf.mq.namesrvAddr>192.168.60.62:9876;192.168.60.63:9876</conf.mq.namesrvAddr> | |
681 | - <conf.mq.producerGroup>titanPNR</conf.mq.producerGroup> | |
682 | - <!-- website接口地址 --> | |
683 | - <dili_titan.website.url>manweb.1n4j.com</dili_titan.website.url> | |
684 | - <!-- 日志 --> | |
685 | - <dili_titan.log.level>INFO</dili_titan.log.level> | |
686 | - <dili_titan.log.path>/diliapp/servers/logs</dili_titan.log.path> | |
687 | - <dili_titan.log.root.appender>FILE_ALL</dili_titan.log.root.appender> | |
688 | - <!--打包编码 --> | |
689 | - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
690 | - <!-- 图片服务器前缀 --> | |
691 | - <project.imageserver.prefix>http://img0.1n4j.com</project.imageserver.prefix> | |
692 | - <!--爱奇艺视频 --> | |
693 | - <titan.aqy.appkey>f689d13d9dce48039cae27e6e03940c6</titan.aqy.appkey> | |
694 | - <titan.aqy.appSecret>8633dfebb9f4443d0f1244262bca94f6</titan.aqy.appSecret> | |
695 | - </properties> | |
696 | - </profile> | |
697 | - | |
698 | - <profile> | |
699 | - <!-- 测试环境 --> | |
700 | - <id>pnr-clone</id> | |
701 | - <activation> | |
702 | - <activeByDefault>false</activeByDefault> | |
703 | - </activation> | |
704 | - <properties> | |
705 | - <!--jdbc type --> | |
706 | - <dili_titan.jdbc.datasource.type>dbcp | |
707 | - </dili_titan.jdbc.datasource.type> | |
708 | - <!-- 数据库 --> | |
709 | - <dili_titan.jdbc.driver>com.mysql.jdbc.Driver</dili_titan.jdbc.driver> | |
710 | - <!-- 主库配置 --> | |
711 | - <dili_titan.master.jdbc.url>jdbc:MySql://10.28.5.236:3306/titan?useUnicode=true&characterEncoding=utf8</dili_titan.master.jdbc.url> | |
712 | - <dili_titan.master.jdbc.username>root</dili_titan.master.jdbc.username> | |
713 | - <dili_titan.master.jdbc.password>123456</dili_titan.master.jdbc.password> | |
714 | - <!-- 从库配置 --> | |
715 | - <dili_titan.slave.jdbc.url>jdbc:MySql://10.28.5.235:3306/titan?useUnicode=true&characterEncoding=utf8</dili_titan.slave.jdbc.url> | |
716 | - <dili_titan.slave.jdbc.username>titan_reader</dili_titan.slave.jdbc.username> | |
717 | - <dili_titan.slave.jdbc.password>123456</dili_titan.slave.jdbc.password> | |
718 | - <!-- crm接口地址 --> | |
719 | - <dili_titan.crm.url>supplier.1n4j.com</dili_titan.crm.url> | |
720 | - <!-- user接口地址,需要测试自己修改 --> | |
721 | - <dili_titan.user.url>user.1n4j.com</dili_titan.user.url> | |
722 | - <!--关键字接口地址--> | |
723 | - <dili_titan.keywords.url>keyword.filter.1n4j.com</dili_titan.keywords.url> | |
724 | - <!--shop接口地址,需要测试自己修改 --> | |
725 | - <dili_titan.shop.url>http://shop.1n4j.com</dili_titan.shop.url> | |
726 | - <!-- redis接口地址 --> | |
727 | - <dili_titan.redis.url>10.28.5.200</dili_titan.redis.url> | |
728 | - <!--权限管理的redis配置--> | |
729 | - <manage.redis.url>10.28.5.200</manage.redis.url> | |
730 | - <manage.redis.port>6379</manage.redis.port> | |
731 | - <!-- MQ 地址--> | |
732 | - <conf.mq.namesrvAddr>10.28.5.202:9876;10.28.5.203:9876</conf.mq.namesrvAddr> | |
733 | - <conf.mq.producerGroup>titanPNR</conf.mq.producerGroup> | |
734 | - <!-- website接口地址 --> | |
735 | - <dili_titan.website.url>manweb.1n4j.com | |
736 | - </dili_titan.website.url> | |
737 | - <!-- 日志 --> | |
738 | - <dili_titan.log.level>INFO</dili_titan.log.level> | |
739 | - <dili_titan.log.path>/home/tomcat/export</dili_titan.log.path> | |
740 | - <dili_titan.log.root.appender>CONSOLE | |
741 | - </dili_titan.log.root.appender> | |
742 | - <!--打包编码 --> | |
743 | - <project.build.sourceEncoding>UTF-8 | |
744 | - </project.build.sourceEncoding> | |
745 | - <!-- 图片服务器前缀 --> | |
746 | - <project.imageserver.prefix>http://img0.1n4j.com</project.imageserver.prefix> | |
747 | - <!--爱奇艺视频 --> | |
748 | - <titan.aqy.appkey>f689d13d9dce48039cae27e6e03940c6</titan.aqy.appkey> | |
749 | - <titan.aqy.appSecret>8633dfebb9f4443d0f1244262bca94f6</titan.aqy.appSecret> | |
750 | - </properties> | |
751 | - </profile> | |
752 | 539 | </profiles> |
753 | 540 | |
754 | 541 | </project> | ... | ... |
titan-api/src/main/java/com/diligrp/titan/dao/base/BaseDaoImpl.java
... | ... | @@ -91,7 +91,7 @@ public abstract class BaseDaoImpl<T, KEY extends Serializable> extends MyBatisSu |
91 | 91 | return null; |
92 | 92 | } |
93 | 93 | |
94 | - public List<T> selectEntryList(KEY... key) { | |
94 | + public List<T> selectEntryList(KEY... key) { | |
95 | 95 | if (key == null || key.length <= 0) { |
96 | 96 | return null; |
97 | 97 | } | ... | ... |
titan-api/src/main/java/com/diligrp/titan/dao/category/CategoryDao.java
... | ... | @@ -30,5 +30,13 @@ public interface CategoryDao extends BaseDao<Category,Integer>{ |
30 | 30 | * @author ywd |
31 | 31 | */ |
32 | 32 | public List<CategoryAttr> getCategorySeacherAttrById(int cateId); |
33 | - | |
33 | + | |
34 | + /** | |
35 | + * 创建分类 | |
36 | + * @author xiaoyang@diligrp.com 2014年5月23日 | |
37 | + * | |
38 | + * @param category | |
39 | + * @return 分类id | |
40 | + */ | |
41 | + public Long createCategory(Category category); | |
34 | 42 | } | ... | ... |
titan-api/src/main/java/com/diligrp/titan/dao/category/impl/CategoryDaoImpl.java
... | ... | @@ -8,6 +8,7 @@ import com.diligrp.titan.dao.base.BaseDaoImpl; |
8 | 8 | import com.diligrp.titan.dao.category.CategoryDao; |
9 | 9 | import com.diligrp.titan.domain.Category; |
10 | 10 | import com.diligrp.titan.domain.CategoryAttr; |
11 | +import com.diligrp.titan.domain.common.TitanSequence; | |
11 | 12 | import org.springframework.stereotype.Repository; |
12 | 13 | |
13 | 14 | import java.util.List; |
... | ... | @@ -33,5 +34,16 @@ public class CategoryDaoImpl extends BaseDaoImpl<Category,Integer> implements Ca |
33 | 34 | public List<CategoryAttr> getCategorySeacherAttrById(int cateId) { |
34 | 35 | return this.selectList(getNameSpace("selectCateSeacherAttrById"), cateId); |
35 | 36 | } |
36 | - | |
37 | + | |
38 | + @Override | |
39 | + public Long createCategory(Category category) { | |
40 | + TitanSequence seq = this.getSequence("category", 1, Long.MAX_VALUE, 1); | |
41 | + category.setId(seq.getMinValue()); | |
42 | + int result = this.insert(getNameSpace("insertEntry"), category); | |
43 | + if(result <=0){ | |
44 | + throw new RuntimeException("添加数据失败!"); | |
45 | + } | |
46 | + return category.getId(); | |
47 | + } | |
48 | + | |
37 | 49 | } | ... | ... |
titan-api/src/main/java/com/diligrp/titan/dao/gq/impl/PresaleDaoImpl.java
... | ... | @@ -17,7 +17,7 @@ import org.springframework.stereotype.Repository; |
17 | 17 | */ |
18 | 18 | @Repository("presaleDao") |
19 | 19 | public class PresaleDaoImpl extends BaseDaoImpl<Presale,Long> implements PresaleDao { |
20 | - private final static String NAMESPACE = "com.dili.titan.dao.PresaleDao."; | |
20 | + private final static String NAMESPACE = "com.diligrp.titan.dao.PresaleDao."; | |
21 | 21 | |
22 | 22 | //返回本DAO命名空间,并添加statement |
23 | 23 | public String getNameSpace(String statement) { | ... | ... |
titan-api/src/main/java/com/diligrp/titan/dao/gq/impl/PurchaseDaoImpl.java
... | ... | @@ -17,7 +17,7 @@ import org.springframework.stereotype.Repository; |
17 | 17 | */ |
18 | 18 | @Repository("purchaseDao") |
19 | 19 | public class PurchaseDaoImpl extends BaseDaoImpl<Purchase,Long> implements PurchaseDao { |
20 | - private final static String NAMESPACE = "com.dili.titan.dao.PurchaseDao."; | |
20 | + private final static String NAMESPACE = "com.diligrp.titan.dao.PurchaseDao."; | |
21 | 21 | |
22 | 22 | //返回本DAO命名空间,并添加statement |
23 | 23 | public String getNameSpace(String statement) { | ... | ... |
titan-api/src/main/java/com/diligrp/titan/dao/gq/impl/SupplyDaoImpl.java
... | ... | @@ -17,7 +17,7 @@ import org.springframework.stereotype.Repository; |
17 | 17 | */ |
18 | 18 | @Repository("supplyDao") |
19 | 19 | public class SupplyDaoImpl extends BaseDaoImpl<Supply,Long> implements SupplyDao { |
20 | - private final static String NAMESPACE = "com.dili.titan.dao.SupplyDao."; | |
20 | + private final static String NAMESPACE = "com.diligrp.titan.dao.SupplyDao."; | |
21 | 21 | |
22 | 22 | //返回本DAO命名空间,并添加statement |
23 | 23 | public String getNameSpace(String statement) { | ... | ... |
titan-api/src/main/java/com/diligrp/titan/dao/product/impl/ProductSearchSortDaoImpl.java
... | ... | @@ -20,7 +20,7 @@ import org.springframework.stereotype.Repository; |
20 | 20 | */ |
21 | 21 | @Repository("productSearchSortDao") |
22 | 22 | public class ProductSearchSortDaoImpl extends BaseDaoImpl<ProductSearchSort,Integer> implements ProductSearchSortDao { |
23 | - private final static String NAMESPACE = "com.dili.titan.dao.ProductSearchSortDao."; | |
23 | + private final static String NAMESPACE = "com.diligrp.titan.dao.ProductSearchSortDao."; | |
24 | 24 | |
25 | 25 | //返回本DAO命名空间,并添加statement |
26 | 26 | public String getNameSpace(String statement) { | ... | ... |
titan-api/src/main/java/com/diligrp/titan/dao/product/impl/ProductVideoDaoImpl.java
... | ... | @@ -16,7 +16,7 @@ import org.springframework.stereotype.Repository; |
16 | 16 | */ |
17 | 17 | @Repository("productVideoDao") |
18 | 18 | public class ProductVideoDaoImpl extends BaseDaoImpl<ProductVideo,Long> implements ProductVideoDao { |
19 | - private final static String NAMESPACE = "com.dili.titan.dao.ProductVideoDao."; | |
19 | + private final static String NAMESPACE = "com.diligrp.titan.dao.ProductVideoDao."; | |
20 | 20 | |
21 | 21 | //返回本DAO命名空间,并添加statement |
22 | 22 | public String getNameSpace(String statement) { | ... | ... |
titan-api/src/main/java/com/diligrp/titan/domain/Category.java
... | ... | @@ -55,7 +55,35 @@ public class Category extends BaseDomain implements Comparable<Category>{ |
55 | 55 | private String icon; |
56 | 56 | private boolean hasChild; |
57 | 57 | private Integer dealType; |
58 | - //当前分类包含其父分类的集合 | |
58 | + private Integer shopId; | |
59 | + private String note; | |
60 | + private String productImg; | |
61 | + | |
62 | + public String getNote() { | |
63 | + return note; | |
64 | + } | |
65 | + | |
66 | + public void setNote(String note) { | |
67 | + this.note = note; | |
68 | + } | |
69 | + | |
70 | + public String getProductImg() { | |
71 | + return productImg; | |
72 | + } | |
73 | + | |
74 | + public void setProductImg(String productImg) { | |
75 | + this.productImg = productImg; | |
76 | + } | |
77 | + | |
78 | + public Integer getShopId() { | |
79 | + return shopId; | |
80 | + } | |
81 | + | |
82 | + public void setShopId(Integer shopId) { | |
83 | + this.shopId = shopId; | |
84 | + } | |
85 | + | |
86 | + //当前分类包含其父分类的集合 | |
59 | 87 | private List<Category> allLevelateList; |
60 | 88 | |
61 | 89 | public Category(){ | ... | ... |
titan-api/src/main/java/com/diligrp/titan/rest/domain/output/CategoryOut.java
... | ... | @@ -48,7 +48,37 @@ public class CategoryOut { |
48 | 48 | |
49 | 49 | private String icon; |
50 | 50 | |
51 | - /** | |
51 | + private String note; | |
52 | + | |
53 | + private String productImg; | |
54 | + | |
55 | + private int shopId; | |
56 | + | |
57 | + public String getNote() { | |
58 | + return note; | |
59 | + } | |
60 | + | |
61 | + public void setNote(String note) { | |
62 | + this.note = note; | |
63 | + } | |
64 | + | |
65 | + public String getProductImg() { | |
66 | + return productImg; | |
67 | + } | |
68 | + | |
69 | + public void setProductImg(String productImg) { | |
70 | + this.productImg = productImg; | |
71 | + } | |
72 | + | |
73 | + public int getShopId() { | |
74 | + return shopId; | |
75 | + } | |
76 | + | |
77 | + public void setShopId(int shopId) { | |
78 | + this.shopId = shopId; | |
79 | + } | |
80 | + | |
81 | + /** | |
52 | 82 | * 类目别名,空格分隔 |
53 | 83 | */ |
54 | 84 | private String alias; | ... | ... |
titan-api/src/main/java/com/diligrp/titan/service/category/CategoryService.java
... | ... | @@ -35,7 +35,7 @@ public interface CategoryService extends BaseService<Category,Integer> { |
35 | 35 | * @createTime 2015年3月6日 下午2:12:36 |
36 | 36 | * @author ywd |
37 | 37 | */ |
38 | - public Set<String> getChildCidByParentId(int cid); | |
38 | + public Set<String> getChildCidByParentId(int cid,int shopId); | |
39 | 39 | |
40 | 40 | /** |
41 | 41 | * this method is 根据类目ID获取类目属性 |
... | ... | @@ -65,4 +65,8 @@ public interface CategoryService extends BaseService<Category,Integer> { |
65 | 65 | * @author ywd |
66 | 66 | */ |
67 | 67 | public boolean hasChildren(int cid); |
68 | + | |
69 | + public Long addCategory(Category categoryOut); | |
70 | + | |
71 | + public Boolean updateCategory(Category category); | |
68 | 72 | } | ... | ... |
titan-api/src/main/java/com/diligrp/titan/service/category/impl/CategoryServiceImpl.java
... | ... | @@ -5,13 +5,13 @@ |
5 | 5 | package com.diligrp.titan.service.category.impl; |
6 | 6 | |
7 | 7 | import com.alibaba.fastjson.JSON; |
8 | -import com.diligrp.titan.rpc.redis.JedisClient; | |
9 | 8 | import com.diligrp.titan.dao.base.BaseDao; |
10 | 9 | import com.diligrp.titan.dao.category.CategoryDao; |
11 | 10 | import com.diligrp.titan.domain.Category; |
12 | 11 | import com.diligrp.titan.domain.CategoryAttr; |
13 | 12 | import com.diligrp.titan.domain.base.RedisKeyConstant; |
14 | 13 | import com.diligrp.titan.rest.domain.output.CategoryOut; |
14 | +import com.diligrp.titan.rpc.redis.JedisClient; | |
15 | 15 | import com.diligrp.titan.service.base.BaseServiceImpl; |
16 | 16 | import com.diligrp.titan.service.category.CategoryService; |
17 | 17 | import org.apache.commons.collections.CollectionUtils; |
... | ... | @@ -19,136 +19,209 @@ import org.apache.commons.lang3.StringUtils; |
19 | 19 | import org.springframework.stereotype.Service; |
20 | 20 | |
21 | 21 | import javax.annotation.Resource; |
22 | -import java.util.HashSet; | |
23 | -import java.util.List; | |
24 | -import java.util.Set; | |
22 | +import java.util.*; | |
25 | 23 | |
26 | 24 | /** |
27 | 25 | * CategoryService 实现类 |
26 | + * | |
28 | 27 | * @author dev-center |
29 | 28 | * @since 2014-05-10 |
30 | 29 | */ |
31 | 30 | @Service("categoryService") |
32 | -public class CategoryServiceImpl extends BaseServiceImpl<Category,Integer> implements CategoryService { | |
33 | - | |
34 | - @Resource private CategoryDao categoryDao; | |
35 | - @Resource(name = "jedisClient") | |
36 | - private JedisClient client; | |
37 | - | |
38 | - public BaseDao<Category,Integer> getDao() { | |
39 | - return categoryDao; | |
40 | - } | |
31 | +public class CategoryServiceImpl extends BaseServiceImpl<Category, Integer> implements CategoryService { | |
32 | + | |
33 | + @Resource | |
34 | + private CategoryDao categoryDao; | |
35 | + @Resource(name = "jedisClient") | |
36 | + private JedisClient client; | |
41 | 37 | |
42 | - /** | |
43 | - * this method is 根据类目ID获取类目信息 | |
44 | - * @param cid | |
45 | - * @return | |
46 | - * @createTime 2015年3月6日 下午2:12:54 | |
47 | - * @author ywd | |
48 | - */ | |
49 | - public CategoryOut getCategoryOut(int cid){ | |
50 | - String catJSon = client.hget(RedisKeyConstant.CATEGORY_KEY, String.valueOf(cid)); | |
51 | - CategoryOut cat = null; | |
52 | - if(StringUtils.isNotEmpty(catJSon)){ | |
53 | - cat = JSON.parseObject(catJSon, CategoryOut.class); | |
54 | - return cat; | |
55 | - } | |
56 | - Category cateDB = categoryDao.selectEntry(cid); | |
57 | - if(cateDB !=null){ | |
58 | - cat = JSON.parseObject(JSON.toJSONString(cateDB), CategoryOut.class); | |
59 | - client.hput(RedisKeyConstant.CATEGORY_KEY, String.valueOf(cid), JSON.toJSONString(cat), JedisClient.expireTime); | |
60 | - } | |
61 | - return cat; | |
62 | - } | |
63 | - | |
64 | - /** | |
65 | - * this method is 根据类目ID获取子节点类目ID | |
66 | - * @param cid | |
67 | - * @return | |
68 | - * @createTime 2015年3月6日 下午2:12:36 | |
69 | - * @author ywd | |
70 | - */ | |
71 | - public Set<String> getChildCidByParentId(int cid){ | |
72 | - // 获取子节点id | |
73 | - Set<String> childCids = client.smembers(RedisKeyConstant.CHILD_KEY + cid); | |
74 | - if(CollectionUtils.isEmpty(childCids)){ | |
75 | - Category cg = new Category(); | |
76 | - cg.setParent(cid); | |
77 | - cg.setStatus(1); | |
78 | - List<Category> cateList = categoryDao.selectEntryList(cg); | |
79 | - if(CollectionUtils.isEmpty(cateList)){ | |
80 | - return null; | |
81 | - } | |
82 | - childCids = new HashSet<String>(cateList.size()); | |
83 | - for(Category obj : cateList){ | |
84 | - childCids.add(obj.getId().toString()); | |
85 | - } | |
86 | - String[] a = new String[childCids.size()]; | |
87 | - client.sadd(RedisKeyConstant.CHILD_KEY + cid, JedisClient.expireTime, childCids.toArray(a)); | |
88 | - } | |
89 | - return childCids; | |
90 | - } | |
91 | - | |
38 | + public BaseDao<Category, Integer> getDao() { | |
39 | + return categoryDao; | |
40 | + } | |
41 | + | |
42 | + /** | |
43 | + * this method is 根据类目ID获取类目信息 | |
44 | + * | |
45 | + * @param cid | |
46 | + * @return | |
47 | + * @createTime 2015年3月6日 下午2:12:54 | |
48 | + * @author ywd | |
49 | + */ | |
50 | + public CategoryOut getCategoryOut(int cid) { | |
51 | + String catJSon = client.hget(RedisKeyConstant.CATEGORY_KEY, String.valueOf(cid)); | |
52 | + CategoryOut cat = null; | |
53 | + if (StringUtils.isNotEmpty(catJSon)) { | |
54 | + cat = JSON.parseObject(catJSon, CategoryOut.class); | |
55 | + return cat; | |
56 | + } | |
57 | + Category cateDB = categoryDao.selectEntry(cid); | |
58 | + if (cateDB != null) { | |
59 | + cat = JSON.parseObject(JSON.toJSONString(cateDB), CategoryOut.class); | |
60 | + client.hput(RedisKeyConstant.CATEGORY_KEY, String.valueOf(cid), JSON.toJSONString(cat), JedisClient.expireTime); | |
61 | + } | |
62 | + return cat; | |
63 | + } | |
92 | 64 | |
93 | - /** | |
94 | - * this method is 根据类目ID获取类目属性 | |
95 | - * @param cid | |
96 | - * @return | |
97 | - * @createTime 2015年3月6日 下午2:12:17 | |
98 | - * @author ywd | |
99 | - */ | |
100 | - public List<CategoryAttr> getCategoryAttrByCid(int cid){ | |
101 | - List<CategoryAttr> catAttrs = null; | |
102 | - String categoryAttrJson = client.hget(RedisKeyConstant.CATEGORY_ATTR, String.valueOf(cid)); | |
103 | - if(StringUtils.isNotEmpty(categoryAttrJson)){ | |
104 | - catAttrs = JSON.parseArray(categoryAttrJson, CategoryAttr.class); | |
105 | - return catAttrs; | |
106 | - } | |
65 | + /** | |
66 | + * this method is 根据类目ID获取子节点类目ID | |
67 | + * | |
68 | + * @param cid | |
69 | + * @return | |
70 | + * @createTime 2015年3月6日 下午2:12:36 | |
71 | + * @author ywd | |
72 | + */ | |
73 | + public Set<String> getChildCidByParentId(int cid, int shopId) { | |
74 | + // 获取子节点id | |
75 | + Set<String> childCids; | |
76 | + Category cg = new Category(); | |
77 | + cg.setParent(cid); | |
78 | + cg.setStatus(1); | |
79 | + cg.setShopId(shopId); | |
80 | + List<Category> cateList = categoryDao.selectEntryList(cg); | |
81 | + if (CollectionUtils.isEmpty(cateList)) { | |
82 | + return null; | |
83 | + } | |
84 | + childCids = new HashSet<String>(cateList.size()); | |
85 | + for (Category obj : cateList) { | |
86 | + childCids.add(obj.getId().toString()); | |
87 | + } | |
88 | + String[] a = new String[childCids.size()]; | |
89 | + return childCids; | |
90 | + } | |
91 | + | |
92 | + | |
93 | + /** | |
94 | + * this method is 根据类目ID获取类目属性 | |
95 | + * | |
96 | + * @param cid | |
97 | + * @return | |
98 | + * @createTime 2015年3月6日 下午2:12:17 | |
99 | + * @author ywd | |
100 | + */ | |
101 | + public List<CategoryAttr> getCategoryAttrByCid(int cid) { | |
102 | + List<CategoryAttr> catAttrs = null; | |
103 | + String categoryAttrJson = client.hget(RedisKeyConstant.CATEGORY_ATTR, String.valueOf(cid)); | |
104 | + if (StringUtils.isNotEmpty(categoryAttrJson)) { | |
105 | + catAttrs = JSON.parseArray(categoryAttrJson, CategoryAttr.class); | |
106 | + return catAttrs; | |
107 | + } | |
107 | 108 | catAttrs = categoryDao.getCategoryAttrById(cid); |
108 | - if(CollectionUtils.isNotEmpty(catAttrs)){ | |
109 | - client.hput(RedisKeyConstant.CATEGORY_ATTR, String.valueOf(cid), JSON.toJSONString(catAttrs), JedisClient.expireTime); | |
109 | + if (CollectionUtils.isNotEmpty(catAttrs)) { | |
110 | + client.hput(RedisKeyConstant.CATEGORY_ATTR, String.valueOf(cid), JSON.toJSONString(catAttrs), JedisClient.expireTime); | |
110 | 111 | } |
111 | 112 | return catAttrs; |
112 | - } | |
113 | + } | |
113 | 114 | |
114 | - /** | |
115 | - * this method is 根据类目ID获取可搜索属性 | |
116 | - * @param cid | |
117 | - * @return | |
118 | - * @createTime 2015年3月6日 下午3:51:55 | |
119 | - * @author ywd | |
120 | - */ | |
121 | - public List<CategoryAttr> getCatgorySearchAttrs(int cid){ | |
122 | - List<CategoryAttr> catSearchAttrs = null; | |
123 | - String search_attr =client.hget(RedisKeyConstant.CATE_SEARCH_ATTR, String.valueOf(cid)); //为可搜索属性则设置排序 | |
124 | - if(StringUtils.isNotEmpty(search_attr)){ | |
125 | - catSearchAttrs = JSON.parseArray(search_attr, CategoryAttr.class); | |
126 | - } | |
127 | - if(CollectionUtils.isNotEmpty(catSearchAttrs)){ | |
115 | + /** | |
116 | + * this method is 根据类目ID获取可搜索属性 | |
117 | + * | |
118 | + * @param cid | |
119 | + * @return | |
120 | + * @createTime 2015年3月6日 下午3:51:55 | |
121 | + * @author ywd | |
122 | + */ | |
123 | + public List<CategoryAttr> getCatgorySearchAttrs(int cid) { | |
124 | + List<CategoryAttr> catSearchAttrs = null; | |
125 | + String search_attr = client.hget(RedisKeyConstant.CATE_SEARCH_ATTR, String.valueOf(cid)); //为可搜索属性则设置排序 | |
126 | + if (StringUtils.isNotEmpty(search_attr)) { | |
127 | + catSearchAttrs = JSON.parseArray(search_attr, CategoryAttr.class); | |
128 | + } | |
129 | + if (CollectionUtils.isNotEmpty(catSearchAttrs)) { | |
128 | 130 | catSearchAttrs = categoryDao.getCategorySeacherAttrById(cid); |
129 | - client.hput(RedisKeyConstant.CATE_SEARCH_ATTR, String.valueOf(cid), JSON.toJSONString(catSearchAttrs), JedisClient.expireTime); | |
130 | - } | |
131 | - return catSearchAttrs; | |
132 | - } | |
133 | - | |
134 | - /** | |
135 | - * this method is 根据类目ID判断是否有子类目 | |
136 | - * @param cid | |
137 | - * @return | |
138 | - * @createTime 2015年3月24日 上午11:09:00 | |
139 | - * @author ywd | |
140 | - */ | |
141 | - public boolean hasChildren(int cid) { | |
142 | - boolean isExit = client.exists(RedisKeyConstant.CHILD_KEY + cid); | |
143 | - if(!isExit){ | |
144 | - Category t = new Category(); | |
145 | - t.setParent(cid); | |
146 | - Integer count = categoryDao.selectEntryListCount(t); | |
147 | - if(count != null && count >0){ | |
148 | - isExit = true; | |
149 | - } | |
150 | - } | |
151 | - return isExit; | |
152 | - } | |
153 | - | |
131 | + client.hput(RedisKeyConstant.CATE_SEARCH_ATTR, String.valueOf(cid), JSON.toJSONString(catSearchAttrs), JedisClient.expireTime); | |
132 | + } | |
133 | + return catSearchAttrs; | |
134 | + } | |
135 | + | |
136 | + /** | |
137 | + * this method is 根据类目ID判断是否有子类目 | |
138 | + * | |
139 | + * @param cid | |
140 | + * @return | |
141 | + * @createTime 2015年3月24日 上午11:09:00 | |
142 | + * @author ywd | |
143 | + */ | |
144 | + public boolean hasChildren(int cid) { | |
145 | + boolean isExit = client.exists(RedisKeyConstant.CHILD_KEY + cid); | |
146 | + if (!isExit) { | |
147 | + Category t = new Category(); | |
148 | + t.setParent(cid); | |
149 | + Integer count = categoryDao.selectEntryListCount(t); | |
150 | + if (count != null && count > 0) { | |
151 | + isExit = true; | |
152 | + } | |
153 | + } | |
154 | + return isExit; | |
155 | + } | |
156 | + | |
157 | + @Override | |
158 | + public Long addCategory(Category categoryOut) { | |
159 | + //查询是否存在相同分类名 | |
160 | + Category isExitCate = new Category(); | |
161 | + isExitCate.setName(categoryOut.getName()); | |
162 | + isExitCate.setParent(categoryOut.getParent()); | |
163 | + List<Category> exist = this.selectEntryList(isExitCate); | |
164 | + if (CollectionUtils.isNotEmpty(exist)) { | |
165 | + if (!exist.get(0).getStatus().equals(Category.STATUS_DELETED)) { | |
166 | + throw new IllegalArgumentException("该分类已经被添加,不能再次添加"); | |
167 | + } | |
168 | + isExitCate = exist.get(0); | |
169 | + isExitCate.setIcon(categoryOut.getIcon()); | |
170 | + isExitCate.setStatus(Category.STATUS_NORMAL); | |
171 | + int rt = categoryDao.updateByKey(isExitCate); | |
172 | + if(rt <= 0){ | |
173 | + throw new IllegalArgumentException("创建分类失败"); | |
174 | + } | |
175 | + return isExitCate.getId(); | |
176 | + } else { | |
177 | + categoryOut.setStatus(Category.STATUS_NORMAL); | |
178 | + categoryOut.setDealType(Category.DEALTYPE_ONLINE); | |
179 | + categoryOut.setActivate(Category.SHOW_STATUS_ACTIVE); | |
180 | + categoryOut.setOrder(this.getCategoryEndOrder(categoryOut.getParent())+1); | |
181 | + Long id = categoryDao.createCategory(categoryOut); | |
182 | + return id; | |
183 | + } | |
184 | + } | |
185 | + | |
186 | + @Override | |
187 | + public Boolean updateCategory(Category category) { | |
188 | + Category existCat = this.selectEntry(category.getId().intValue()); | |
189 | + if (existCat == null | |
190 | + || !existCat.getStatus().equals(Category.STATUS_NORMAL)) { | |
191 | + throw new RuntimeException("分类不存在或状态异常,更新失败"); | |
192 | + } | |
193 | + // 判断同一级是否有相同分类名(包含已删除分类名) | |
194 | + if (!existCat.getName().equals(category.getName())) { | |
195 | + Category cateExist = new Category(); | |
196 | + cateExist.setName(category.getName()); | |
197 | +// cateExist.setAlias(category.getAlias()); | |
198 | + cateExist.setParent(existCat.getParent()); | |
199 | + List<Category> exist = this.selectEntryList(cateExist); | |
200 | + if (CollectionUtils.isNotEmpty(exist)) { | |
201 | + if (!exist.get(0).getStatus().equals(Category.STATUS_DELETED)) { | |
202 | + throw new IllegalArgumentException("该分类已经被添加,不能再次添加!"); | |
203 | + } else { | |
204 | + throw new RuntimeException("该分类处于删除状态,请重新添加"); | |
205 | + } | |
206 | + } | |
207 | + } | |
208 | + existCat.setName(category.getName()); | |
209 | + existCat.setIcon(category.getIcon()); | |
210 | + return categoryDao.updateByKey(existCat) >0; | |
211 | + } | |
212 | + | |
213 | + private int getCategoryEndOrder(Integer parentId) { | |
214 | + Category condition = new Category(); | |
215 | + condition.setParent(parentId); | |
216 | + List<Category> list = categoryDao.selectEntryList(condition); | |
217 | + if(CollectionUtils.isEmpty(list)){ | |
218 | + return 0; | |
219 | + } | |
220 | + Collections.sort(list, new Comparator<Category>(){ | |
221 | + public int compare(Category o1, Category o2) { | |
222 | + return o1.getOrder() - o1.getOrder(); | |
223 | + } | |
224 | + }); | |
225 | + return list.get(list.size() - 1).getOrder(); | |
226 | + } | |
154 | 227 | } | ... | ... |
titan-api/src/main/java/com/diligrp/titan/web/ws/category/CategoryWebservice.java
... | ... | @@ -5,6 +5,7 @@ import com.diligrp.titan.common.exception.TitanError; |
5 | 5 | import com.diligrp.titan.common.log.LogHelper; |
6 | 6 | import com.diligrp.titan.common.log.LogTypeEnum; |
7 | 7 | import com.diligrp.titan.common.tools.Tools; |
8 | +import com.diligrp.titan.domain.Category; | |
8 | 9 | import com.diligrp.titan.rest.domain.output.AttributeOut; |
9 | 10 | import com.diligrp.titan.rest.domain.output.BaseOutput; |
10 | 11 | import com.diligrp.titan.rest.domain.output.CategoryOut; |
... | ... | @@ -28,116 +29,169 @@ import java.util.List; |
28 | 29 | * <B>Description</B> 商品类目服务的ws <br /> |
29 | 30 | * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br /> |
30 | 31 | * <B>Company</B> 地利集团 |
31 | - * @createTime 2014年6月10日 下午3:00:56 | |
32 | + * | |
32 | 33 | * @author yangjianjun |
34 | + * @createTime 2014年6月10日 下午3:00:56 | |
33 | 35 | */ |
34 | 36 | @Service |
35 | 37 | @RequestMapping(value = "/category", produces = "application/json; charset=UTF-8") |
36 | 38 | public class CategoryWebservice extends BaseWebservice { |
37 | 39 | |
38 | - @Resource(name = "categoryRestService") | |
39 | - private CategoryRestService categoryRestService; | |
40 | - /** | |
41 | - * 查询分类cid下的所有子类目<br/> | |
42 | - * 1.初始化输出的BaseOutput<List<CategoryOut>>对象<br/> | |
43 | - * 2.将HttpServletRequest对象转为CategoryOut对象,传给categoryRestService.listAll方法<br/> | |
44 | - * 3.取categoryRestService.listAll方法返回的对象,封装在BaseOutput<List<CategoryOut>>里,并返回 | |
45 | - * @return | |
46 | - * @createTime 2014年5月28日 上午1:36:37 | |
47 | - * @author celine | |
48 | - */ | |
49 | - @RequestMapping(value = "/listAll", method = { RequestMethod.POST, | |
50 | - RequestMethod.GET }) | |
51 | - public @ResponseBody | |
52 | - Object listAll(HttpServletRequest request, HttpServletResponse response) { | |
40 | + @Resource(name = "categoryRestService") | |
41 | + private CategoryRestService categoryRestService; | |
42 | + | |
43 | + @RequestMapping(value = "/insertCategory", method = RequestMethod.POST, | |
44 | + produces = "application/json; charset=UTF-8", consumes = "application/json; charset=UTF-8") | |
45 | + @ResponseBody | |
46 | + public Object insertCategory(HttpServletRequest request, HttpServletResponse response) { | |
47 | + long start = System.currentTimeMillis(); | |
48 | + BaseOutput<Long> output = new BaseOutput<Long>(); | |
49 | + try { | |
50 | + Category category = getParamObject(request, Category.class); | |
51 | + | |
52 | + | |
53 | + LogHelper.info(LogTypeEnum.PRODUCT, "调用接口insertCategory参数:{}", JSON.toJSONString(category)); | |
54 | + | |
55 | + categoryRestService.addCategory(category); | |
56 | + | |
57 | + LogHelper.info(LogTypeEnum.PRODUCT, "调用接口insertCategory成功!返回内容={},耗时:{}", | |
58 | + JSON.toJSONString(output.getData()), System.currentTimeMillis() - start); | |
59 | + return output; | |
60 | + } catch (TitanError e) { | |
61 | + LogHelper.error(LogTypeEnum.PRODUCT, e, "调用接口insertCategory异常!耗时:{}", System.currentTimeMillis() - start); | |
62 | + return output.failure(e); | |
63 | + } | |
64 | + } | |
65 | + | |
66 | + @RequestMapping(value = "/updateCategory", method = RequestMethod.POST, | |
67 | + produces = "application/json; charset=UTF-8", consumes = "application/json; charset=UTF-8") | |
68 | + @ResponseBody | |
69 | + public Object updateCategory(HttpServletRequest request){ | |
53 | 70 | long start = System.currentTimeMillis(); |
54 | - BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
55 | - try { | |
56 | - CategoryOut category = getParamObject(request, CategoryOut.class); | |
57 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口listAll参数:{}",category.toString()); | |
58 | - List<CategoryOut> cats = categoryRestService.listAll(category.getCid()); | |
59 | - output.setData(cats); | |
60 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口listAll成功!返回内容={},耗时:{}", | |
61 | - JSON.toJSONString(cats),System.currentTimeMillis() - start); | |
62 | - return output; | |
63 | - } catch (TitanError e) { | |
71 | + BaseOutput<Long> output = new BaseOutput<Long>(); | |
72 | + try { | |
73 | + Category category = getParamObject(request, Category.class); | |
74 | + | |
75 | + | |
76 | + LogHelper.info(LogTypeEnum.PRODUCT, "调用接口updateCategory参数:{}", JSON.toJSONString(category)); | |
77 | + | |
78 | + categoryRestService.updateCategory(category); | |
79 | + | |
80 | + LogHelper.info(LogTypeEnum.PRODUCT, "调用接口updateCategory成功!返回内容={},耗时:{}", | |
81 | + JSON.toJSONString(output.getData()), System.currentTimeMillis() - start); | |
82 | + return output; | |
83 | + } catch (TitanError e) { | |
84 | + LogHelper.error(LogTypeEnum.PRODUCT, e, "调用接口updateCategory异常!耗时:{}", System.currentTimeMillis() - start); | |
85 | + return output.failure(e); | |
86 | + } | |
87 | + } | |
88 | + | |
89 | + /** | |
90 | + * 查询分类cid下的所有子类目<br/> | |
91 | + * 1.初始化输出的BaseOutput<List<CategoryOut>>对象<br/> | |
92 | + * 2.将HttpServletRequest对象转为CategoryOut对象,传给categoryRestService.listAll方法<br/> | |
93 | + * 3.取categoryRestService.listAll方法返回的对象,封装在BaseOutput<List<CategoryOut>>里,并返回 | |
94 | + * | |
95 | + * @return | |
96 | + * @createTime 2014年5月28日 上午1:36:37 | |
97 | + * @author celine | |
98 | + */ | |
99 | + @RequestMapping(value = "/listAll", method = {RequestMethod.POST, | |
100 | + RequestMethod.GET}) | |
101 | + public | |
102 | + @ResponseBody | |
103 | + Object listAll(HttpServletRequest request, HttpServletResponse response) { | |
104 | + long start = System.currentTimeMillis(); | |
105 | + BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
106 | + try { | |
107 | + CategoryOut category = getParamObject(request, CategoryOut.class); | |
108 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口listAll参数:{}", category.toString()); | |
109 | + List<CategoryOut> cats = categoryRestService.listAll(category.getCid(), category.getShopId()); | |
110 | + output.setData(cats); | |
111 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口listAll成功!返回内容={},耗时:{}", | |
112 | + JSON.toJSONString(cats), System.currentTimeMillis() - start); | |
113 | + return output; | |
114 | + } catch (TitanError e) { | |
64 | 115 | LogHelper.error(LogTypeEnum.CATEGORY, e, "调用接口listAll异常!耗时:{}", |
65 | 116 | System.currentTimeMillis() - start); |
66 | - return output.failure(e); | |
67 | - } | |
68 | - } | |
117 | + return output.failure(e); | |
118 | + } | |
119 | + } | |
69 | 120 | |
70 | - /** | |
71 | - * 查询类目面包屑,返回结果进行正序排序 | |
72 | - * @param request | |
73 | - * @param response | |
74 | - * @return | |
75 | - * @createTime 2014年5月29日 上午11:06:34 | |
76 | - * @author celine | |
77 | - */ | |
78 | - @RequestMapping(value = "/listCrumbs", method = { RequestMethod.POST, | |
79 | - RequestMethod.GET }) | |
80 | - @ResponseBody | |
81 | - public Object listCrumbs(HttpServletRequest request, HttpServletResponse response) { | |
121 | + /** | |
122 | + * 查询类目面包屑,返回结果进行正序排序 | |
123 | + * | |
124 | + * @param request | |
125 | + * @param response | |
126 | + * @return | |
127 | + * @createTime 2014年5月29日 上午11:06:34 | |
128 | + * @author celine | |
129 | + */ | |
130 | + @RequestMapping(value = "/listCrumbs", method = {RequestMethod.POST, | |
131 | + RequestMethod.GET}) | |
132 | + @ResponseBody | |
133 | + public Object listCrumbs(HttpServletRequest request, HttpServletResponse response) { | |
82 | 134 | MonitorUtils.startMonitor(); |
83 | 135 | MonitorUtils.flowMonitor(CategoryWebservice.class, "获取面包屑listCrumbs"); |
84 | 136 | long start = System.currentTimeMillis(); |
85 | - BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
86 | - try { | |
87 | - CategoryOut category = getParamObject(request, CategoryOut.class); | |
88 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口listCrumbs参数:{}",category.toString()); | |
89 | - List<CategoryOut> cats = categoryRestService.listCrumbs(category.getCid()); | |
90 | - output.setData(cats); | |
91 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口listCrumbs成功!返回内容={},耗时:{}", | |
92 | - JSON.toJSONString(cats),System.currentTimeMillis() - start); | |
137 | + BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
138 | + try { | |
139 | + CategoryOut category = getParamObject(request, CategoryOut.class); | |
140 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口listCrumbs参数:{}", category.toString()); | |
141 | + List<CategoryOut> cats = categoryRestService.listCrumbs(category.getCid()); | |
142 | + output.setData(cats); | |
143 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口listCrumbs成功!返回内容={},耗时:{}", | |
144 | + JSON.toJSONString(cats), System.currentTimeMillis() - start); | |
93 | 145 | MonitorUtils.endMonitor(CategoryWebservice.class, "获取面包屑listCrumbs"); |
94 | - return output; | |
95 | - } catch (TitanError e) { | |
96 | - LogHelper.error(LogTypeEnum.CATEGORY,e,"调用接口listCrumbs异常!耗时:{}",System.currentTimeMillis() - start); | |
146 | + return output; | |
147 | + } catch (TitanError e) { | |
148 | + LogHelper.error(LogTypeEnum.CATEGORY, e, "调用接口listCrumbs异常!耗时:{}", System.currentTimeMillis() - start); | |
97 | 149 | MonitorUtils.endMonitor(CategoryWebservice.class, "获取面包屑listCrumbs"); |
98 | - MonitorUtils.errorMonitor(CategoryWebservice.class, "获取面包屑listCrumbs","异常:"+e.getMessage()); | |
99 | - return output.failure(e); | |
100 | - } | |
101 | - } | |
150 | + MonitorUtils.errorMonitor(CategoryWebservice.class, "获取面包屑listCrumbs", "异常:" + e.getMessage()); | |
151 | + return output.failure(e); | |
152 | + } | |
153 | + } | |
102 | 154 | |
103 | - /** | |
104 | - * 获取类目属性 | |
105 | - * @param request | |
106 | - * @param response | |
107 | - * @return | |
108 | - * @createTime 2014年5月29日 下午3:27:22 | |
109 | - * @author celine | |
110 | - */ | |
111 | - @RequestMapping(value = "/attributes", method = { RequestMethod.POST, | |
112 | - RequestMethod.GET }) | |
113 | - @ResponseBody | |
114 | - public Object attributes(HttpServletRequest request, HttpServletResponse response) { | |
155 | + /** | |
156 | + * 获取类目属性 | |
157 | + * | |
158 | + * @param request | |
159 | + * @param response | |
160 | + * @return | |
161 | + * @createTime 2014年5月29日 下午3:27:22 | |
162 | + * @author celine | |
163 | + */ | |
164 | + @RequestMapping(value = "/attributes", method = {RequestMethod.POST, | |
165 | + RequestMethod.GET}) | |
166 | + @ResponseBody | |
167 | + public Object attributes(HttpServletRequest request, HttpServletResponse response) { | |
115 | 168 | long start = System.currentTimeMillis(); |
116 | - BaseOutput<HashMap<String, List<AttributeOut>>> output = new BaseOutput<HashMap<String, List<AttributeOut>>>(); | |
117 | - try { | |
118 | - CategoryOut category = getParamObject(request, CategoryOut.class); | |
119 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口attributes参数:{}",category.toString()); | |
120 | - HashMap<String, List<AttributeOut>> attributes = categoryRestService.listAttributes(category.getCid()); | |
121 | - output.setData(attributes); | |
122 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口attributes成功!返回内容={},耗时:{}", | |
123 | - JSON.toJSONString(attributes),System.currentTimeMillis() - start); | |
124 | - return output; | |
125 | - } catch (TitanError e) { | |
126 | - LogHelper.error(LogTypeEnum.CATEGORY,e,"调用接口attributes异常!耗时:{}",System.currentTimeMillis() - start); | |
127 | - return output.failure(e); | |
128 | - } | |
129 | - } | |
169 | + BaseOutput<HashMap<String, List<AttributeOut>>> output = new BaseOutput<HashMap<String, List<AttributeOut>>>(); | |
170 | + try { | |
171 | + CategoryOut category = getParamObject(request, CategoryOut.class); | |
172 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口attributes参数:{}", category.toString()); | |
173 | + HashMap<String, List<AttributeOut>> attributes = categoryRestService.listAttributes(category.getCid()); | |
174 | + output.setData(attributes); | |
175 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口attributes成功!返回内容={},耗时:{}", | |
176 | + JSON.toJSONString(attributes), System.currentTimeMillis() - start); | |
177 | + return output; | |
178 | + } catch (TitanError e) { | |
179 | + LogHelper.error(LogTypeEnum.CATEGORY, e, "调用接口attributes异常!耗时:{}", System.currentTimeMillis() - start); | |
180 | + return output.failure(e); | |
181 | + } | |
182 | + } | |
130 | 183 | |
131 | 184 | /** |
132 | 185 | * 获取类目属性 |
186 | + * | |
133 | 187 | * @param request |
134 | 188 | * @param response |
135 | 189 | * @return |
136 | 190 | * @createTime 2014年5月29日 下午3:27:22 |
137 | 191 | * @author celine |
138 | 192 | */ |
139 | - @RequestMapping(value = "/getAttributes", method = { RequestMethod.POST, | |
140 | - RequestMethod.GET }) | |
193 | + @RequestMapping(value = "/getAttributes", method = {RequestMethod.POST, | |
194 | + RequestMethod.GET}) | |
141 | 195 | @ResponseBody |
142 | 196 | public Object getAttributes(HttpServletRequest request, HttpServletResponse response) { |
143 | 197 | long start = System.currentTimeMillis(); |
... | ... | @@ -145,140 +199,145 @@ public class CategoryWebservice extends BaseWebservice { |
145 | 199 | try { |
146 | 200 | HashMap<String, Object> param = getParamObject(request, new TypeReference<HashMap<String, Object>>() { |
147 | 201 | }); |
148 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口attributes参数:{}",param.toString()); | |
149 | - Integer cid = (Integer)param.get("cid"); | |
150 | - Boolean includeDel = (Boolean)param.get("includeDel"); | |
151 | - HashMap<String, List<AttributeOut>> attributes = categoryRestService.listAttributes(cid,includeDel); | |
202 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口attributes参数:{}", param.toString()); | |
203 | + Integer cid = (Integer) param.get("cid"); | |
204 | + Boolean includeDel = (Boolean) param.get("includeDel"); | |
205 | + HashMap<String, List<AttributeOut>> attributes = categoryRestService.listAttributes(cid, includeDel); | |
152 | 206 | output.setData(attributes); |
153 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口attributes成功!返回内容={},耗时:{}", | |
154 | - JSON.toJSONString(attributes),System.currentTimeMillis() - start); | |
207 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口attributes成功!返回内容={},耗时:{}", | |
208 | + JSON.toJSONString(attributes), System.currentTimeMillis() - start); | |
155 | 209 | return output; |
156 | 210 | } catch (TitanError e) { |
157 | - LogHelper.error(LogTypeEnum.CATEGORY,e,"调用接口attributes异常!耗时:{}",System.currentTimeMillis() - start); | |
211 | + LogHelper.error(LogTypeEnum.CATEGORY, e, "调用接口attributes异常!耗时:{}", System.currentTimeMillis() - start); | |
158 | 212 | return output.failure(e); |
159 | 213 | } |
160 | 214 | } |
161 | 215 | |
162 | - /** | |
163 | - * 批量获取类目信息 | |
164 | - * @param request | |
165 | - * @param response | |
166 | - * @return | |
167 | - * @createTime 2014年5月30日 上午10:03:46 | |
168 | - * @author celine | |
169 | - */ | |
170 | - @RequestMapping(value = "/listCategoriesInfo", method = { | |
216 | + /** | |
217 | + * 批量获取类目信息 | |
218 | + * | |
219 | + * @param request | |
220 | + * @param response | |
221 | + * @return | |
222 | + * @createTime 2014年5月30日 上午10:03:46 | |
223 | + * @author celine | |
224 | + */ | |
225 | + @RequestMapping(value = "/listCategoriesInfo", method = { | |
171 | 226 | RequestMethod.POST, |
172 | - RequestMethod.GET }) | |
173 | - @ResponseBody | |
174 | - public Object listCategoriesInfo(HttpServletRequest request, HttpServletResponse response) { | |
227 | + RequestMethod.GET}) | |
228 | + @ResponseBody | |
229 | + public Object listCategoriesInfo(HttpServletRequest request, HttpServletResponse response) { | |
175 | 230 | long start = System.currentTimeMillis(); |
176 | - BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
177 | - try { | |
178 | - HashMap<String, ArrayList<Integer>> cids = getParamObject(request, new TypeReference<HashMap<String, ArrayList<Integer>>>() { | |
179 | - }); | |
180 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口listCategoriesInfo参数:{}",JSON.toJSONString(cids)); | |
181 | - List<CategoryOut> categories = categoryRestService.listCategoriesInfo(cids.get("cids")); | |
182 | - output.setData(categories); | |
183 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口listCategoriesInfo成功!返回内容={},耗时:{}", | |
184 | - JSON.toJSONString(categories),System.currentTimeMillis() - start); | |
185 | - return output; | |
186 | - } catch (TitanError e) { | |
187 | - LogHelper.error(LogTypeEnum.CATEGORY,e,"调用接口listCategoriesInfo异常!耗时:{}",System.currentTimeMillis() - start); | |
188 | - return output.failure(e); | |
189 | - } | |
190 | - } | |
231 | + BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
232 | + try { | |
233 | + HashMap<String, ArrayList<Integer>> cids = getParamObject(request, new TypeReference<HashMap<String, ArrayList<Integer>>>() { | |
234 | + }); | |
235 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口listCategoriesInfo参数:{}", JSON.toJSONString(cids)); | |
236 | + List<CategoryOut> categories = categoryRestService.listCategoriesInfo(cids.get("cids")); | |
237 | + output.setData(categories); | |
238 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口listCategoriesInfo成功!返回内容={},耗时:{}", | |
239 | + JSON.toJSONString(categories), System.currentTimeMillis() - start); | |
240 | + return output; | |
241 | + } catch (TitanError e) { | |
242 | + LogHelper.error(LogTypeEnum.CATEGORY, e, "调用接口listCategoriesInfo异常!耗时:{}", System.currentTimeMillis() - start); | |
243 | + return output.failure(e); | |
244 | + } | |
245 | + } | |
191 | 246 | |
192 | - /** | |
193 | - * 获取类目信息 | |
194 | - * @param request | |
195 | - * @param response | |
196 | - * @return | |
197 | - * @createTime 2014年5月30日 上午10:03:59 | |
198 | - * @author celine | |
199 | - */ | |
200 | - @RequestMapping(value = "/getCategoryInfo", method = { RequestMethod.POST, | |
201 | - RequestMethod.GET }) | |
202 | - @ResponseBody | |
203 | - public Object getCategoryInfo(HttpServletRequest request, HttpServletResponse response) { | |
247 | + /** | |
248 | + * 获取类目信息 | |
249 | + * | |
250 | + * @param request | |
251 | + * @param response | |
252 | + * @return | |
253 | + * @createTime 2014年5月30日 上午10:03:59 | |
254 | + * @author celine | |
255 | + */ | |
256 | + @RequestMapping(value = "/getCategoryInfo", method = {RequestMethod.POST, | |
257 | + RequestMethod.GET}) | |
258 | + @ResponseBody | |
259 | + public Object getCategoryInfo(HttpServletRequest request, HttpServletResponse response) { | |
204 | 260 | long start = System.currentTimeMillis(); |
205 | - BaseOutput<CategoryOut> output = new BaseOutput<CategoryOut>(); | |
206 | - try { | |
207 | - CategoryOut category = getParamObject(request, CategoryOut.class); | |
208 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口getCategoryInfo参数:{}",category.toString()); | |
209 | - category = categoryRestService.getCatrgoryInfo(category.getCid(),true); | |
210 | - output.setData(category); | |
211 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口getCategoryInfo成功!返回内容={},耗时:{}", | |
212 | - JSON.toJSONString(category),System.currentTimeMillis() - start); | |
213 | - return output; | |
214 | - } catch (TitanError e) { | |
215 | - LogHelper.error(LogTypeEnum.CATEGORY,e,"调用接口getCategoryInfo异常!耗时:{}",System.currentTimeMillis() - start); | |
216 | - return output.failure(e); | |
217 | - } | |
218 | - } | |
219 | - | |
220 | - /** | |
221 | - * this method is 列出运营范围下的子类目 | |
222 | - * @param request | |
223 | - * @param response | |
224 | - * @return | |
225 | - * @createTime 2014年10月27日 下午6:04:41 | |
226 | - * @author yangweidong | |
227 | - */ | |
228 | - @RequestMapping(value = "/listChildren", method = { RequestMethod.POST, | |
261 | + BaseOutput<CategoryOut> output = new BaseOutput<CategoryOut>(); | |
262 | + try { | |
263 | + CategoryOut category = getParamObject(request, CategoryOut.class); | |
264 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口getCategoryInfo参数:{}", category.toString()); | |
265 | + category = categoryRestService.getCatrgoryInfo(category.getCid(), true); | |
266 | + output.setData(category); | |
267 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口getCategoryInfo成功!返回内容={},耗时:{}", | |
268 | + JSON.toJSONString(category), System.currentTimeMillis() - start); | |
269 | + return output; | |
270 | + } catch (TitanError e) { | |
271 | + LogHelper.error(LogTypeEnum.CATEGORY, e, "调用接口getCategoryInfo异常!耗时:{}", System.currentTimeMillis() - start); | |
272 | + return output.failure(e); | |
273 | + } | |
274 | + } | |
275 | + | |
276 | + /** | |
277 | + * this method is 列出运营范围下的子类目 | |
278 | + * | |
279 | + * @param request | |
280 | + * @param response | |
281 | + * @return | |
282 | + * @createTime 2014年10月27日 下午6:04:41 | |
283 | + * @author yangweidong | |
284 | + */ | |
285 | + @RequestMapping(value = "/listChildren", method = {RequestMethod.POST, | |
229 | 286 | RequestMethod.GET}) |
230 | - @ResponseBody | |
231 | - public Object listChildren(HttpServletRequest request, HttpServletResponse response) { | |
287 | + @ResponseBody | |
288 | + public Object listChildren(HttpServletRequest request, HttpServletResponse response) { | |
232 | 289 | long start = System.currentTimeMillis(); |
233 | - BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
234 | - try { | |
235 | - HashMap<String, Integer> param = getParamObject(request, new TypeReference<HashMap<String, Integer>>() { | |
236 | - }); | |
237 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口listChildren参数:{}",JSON.toJSONString(param)); | |
238 | - List<CategoryOut> categoryList = categoryRestService.listChildren(param.get("cid")); | |
239 | - output.setData(categoryList); | |
240 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口listChildren成功!返回内容={},耗时:{}", | |
241 | - JSON.toJSONString(categoryList),System.currentTimeMillis() - start); | |
242 | - return output; | |
243 | - } catch (TitanError e) { | |
244 | - LogHelper.error(LogTypeEnum.CATEGORY,e,"调用接口listChildren异常!耗时:{}",System.currentTimeMillis() - start); | |
245 | - return output.failure(e); | |
246 | - } | |
247 | - } | |
248 | - /** | |
249 | - * this method is 通过分类名字模糊匹配分类 | |
250 | - * @param request | |
251 | - * @param response | |
252 | - * @return | |
253 | - * @createTime 2014年10月27日 下午6:02:54 | |
254 | - * @author yangweidong | |
255 | - */ | |
256 | - @RequestMapping(value="/searchCategoryInfo",method = RequestMethod.POST) | |
257 | - @ResponseBody | |
258 | - public Object searchCategoryInfo(HttpServletRequest request, HttpServletResponse response){ | |
290 | + BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
291 | + try { | |
292 | + HashMap<String, Integer> param = getParamObject(request, new TypeReference<HashMap<String, Integer>>() { | |
293 | + }); | |
294 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口listChildren参数:{}", JSON.toJSONString(param)); | |
295 | + List<CategoryOut> categoryList = categoryRestService.listChildren(param.get("cid"), param.get("shopId")); | |
296 | + output.setData(categoryList); | |
297 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口listChildren成功!返回内容={},耗时:{}", | |
298 | + JSON.toJSONString(categoryList), System.currentTimeMillis() - start); | |
299 | + return output; | |
300 | + } catch (TitanError e) { | |
301 | + LogHelper.error(LogTypeEnum.CATEGORY, e, "调用接口listChildren异常!耗时:{}", System.currentTimeMillis() - start); | |
302 | + return output.failure(e); | |
303 | + } | |
304 | + } | |
305 | + | |
306 | + /** | |
307 | + * this method is 通过分类名字模糊匹配分类 | |
308 | + * | |
309 | + * @param request | |
310 | + * @param response | |
311 | + * @return | |
312 | + * @createTime 2014年10月27日 下午6:02:54 | |
313 | + * @author yangweidong | |
314 | + */ | |
315 | + @RequestMapping(value = "/searchCategoryInfo", method = RequestMethod.POST) | |
316 | + @ResponseBody | |
317 | + public Object searchCategoryInfo(HttpServletRequest request, HttpServletResponse response) { | |
259 | 318 | long start = System.currentTimeMillis(); |
260 | - BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
261 | - List<CategoryOut> cate=new ArrayList<CategoryOut>(); | |
262 | - try { | |
263 | - HashMap<String, String> map = getParamObject(request, new TypeReference<HashMap<String, String>>() { | |
264 | - }); | |
265 | - String cname=map.get("cname"); | |
266 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口searchCategoryInfo参数:{}",cname); | |
267 | - List<CategoryOut> cats = categoryRestService.listAll(0); | |
268 | - if(!Tools.checkListNotNull(cats)){ | |
269 | - for(CategoryOut categoryOut:cats){ | |
270 | - if(categoryOut.getCname().indexOf(cname,0)>=0){ | |
271 | - cate.add(categoryOut); | |
272 | - } | |
273 | - } | |
274 | - output.setData(cate); | |
275 | - } | |
276 | - } catch (TitanError e) { | |
277 | - LogHelper.error(LogTypeEnum.CATEGORY,e,"调用接口searchCategoryInfo异常!耗时:{}",System.currentTimeMillis() - start); | |
278 | - return output.failure(e); | |
279 | - } | |
280 | - LogHelper.info(LogTypeEnum.CATEGORY,"调用接口searchCategoryInfo成功!返回内容={},耗时:{}", | |
281 | - JSON.toJSONString(output.getData()),System.currentTimeMillis() - start); | |
282 | - return output; | |
283 | - } | |
319 | + BaseOutput<List<CategoryOut>> output = new BaseOutput<List<CategoryOut>>(); | |
320 | + List<CategoryOut> cate = new ArrayList<CategoryOut>(); | |
321 | + try { | |
322 | + HashMap<String, String> map = getParamObject(request, new TypeReference<HashMap<String, String>>() { | |
323 | + }); | |
324 | + String cname = map.get("cname"); | |
325 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口searchCategoryInfo参数:{}", cname); | |
326 | + List<CategoryOut> cats = categoryRestService.listAll(0, 0); | |
327 | + if (!Tools.checkListNotNull(cats)) { | |
328 | + for (CategoryOut categoryOut : cats) { | |
329 | + if (categoryOut.getCname().indexOf(cname, 0) >= 0) { | |
330 | + cate.add(categoryOut); | |
331 | + } | |
332 | + } | |
333 | + output.setData(cate); | |
334 | + } | |
335 | + } catch (TitanError e) { | |
336 | + LogHelper.error(LogTypeEnum.CATEGORY, e, "调用接口searchCategoryInfo异常!耗时:{}", System.currentTimeMillis() - start); | |
337 | + return output.failure(e); | |
338 | + } | |
339 | + LogHelper.info(LogTypeEnum.CATEGORY, "调用接口searchCategoryInfo成功!返回内容={},耗时:{}", | |
340 | + JSON.toJSONString(output.getData()), System.currentTimeMillis() - start); | |
341 | + return output; | |
342 | + } | |
284 | 343 | } | ... | ... |
titan-api/src/main/java/com/diligrp/titan/ws/category/CategoryRestService.java
1 | 1 | package com.diligrp.titan.ws.category; |
2 | 2 | |
3 | +import com.diligrp.titan.domain.Category; | |
3 | 4 | import com.diligrp.titan.rest.domain.output.AttributeOut; |
4 | 5 | import com.diligrp.titan.rest.domain.output.CategoryOut; |
5 | 6 | |
... | ... | @@ -15,7 +16,7 @@ public interface CategoryRestService { |
15 | 16 | * @createTime 2014年5月29日 下午2:42:07 |
16 | 17 | * @author celine |
17 | 18 | */ |
18 | - public List<CategoryOut> listAll(int cid); | |
19 | + public List<CategoryOut> listAll(int cid,int shopId); | |
19 | 20 | |
20 | 21 | /** |
21 | 22 | * 获取类目面包屑 |
... | ... | @@ -32,7 +33,7 @@ public interface CategoryRestService { |
32 | 33 | * @param cid 类目ID |
33 | 34 | * @return |
34 | 35 | */ |
35 | - public List<CategoryOut> listChildren(int cid); | |
36 | + public List<CategoryOut> listChildren(int cid,int shopId); | |
36 | 37 | |
37 | 38 | |
38 | 39 | |
... | ... | @@ -81,4 +82,8 @@ public interface CategoryRestService { |
81 | 82 | * @author ywd |
82 | 83 | */ |
83 | 84 | public boolean hasChildren(int cid); |
85 | + | |
86 | + public Long addCategory(Category category); | |
87 | + | |
88 | + Boolean updateCategory(Category category); | |
84 | 89 | } | ... | ... |
titan-api/src/main/java/com/diligrp/titan/ws/category/impl/CategoryRestServiceImpl.java
... | ... | @@ -2,6 +2,7 @@ package com.diligrp.titan.ws.category.impl; |
2 | 2 | |
3 | 3 | import com.diligrp.titan.common.datasource.DynamicSource; |
4 | 4 | import com.diligrp.titan.common.tools.Tools; |
5 | +import com.diligrp.titan.domain.Category; | |
5 | 6 | import com.diligrp.titan.domain.CategoryAttr; |
6 | 7 | import com.diligrp.titan.rest.domain.output.AttributeOut; |
7 | 8 | import com.diligrp.titan.rest.domain.output.CategoryOut; |
... | ... | @@ -34,18 +35,19 @@ public class CategoryRestServiceImpl implements CategoryRestService { |
34 | 35 | |
35 | 36 | /** |
36 | 37 | * 查询类目下的所有子孙类目 |
37 | - * 1.初始化要返回的List<CategoryOut>对象 | |
38 | + * 1.初始化要返回的List<CategoryOut>对象 | |
39 | + * | |
38 | 40 | * @param cid |
39 | 41 | * @return |
40 | 42 | * @createTime 2014年5月29日 下午2:42:07 |
41 | 43 | * @author celine |
42 | 44 | */ |
43 | - public List<CategoryOut> listAll(int cid) { | |
45 | + public List<CategoryOut> listAll(int cid, int shopId) { | |
44 | 46 | List<CategoryOut> cats = new ArrayList<CategoryOut>(); |
45 | 47 | boolean hasChild = categoryService.hasChildren(cid); |
46 | 48 | if (hasChild) { |
47 | 49 | // 获取所有的子节点id |
48 | - Set<String> childCids = categoryService.getChildCidByParentId(cid); | |
50 | + Set<String> childCids = categoryService.getChildCidByParentId(cid,shopId); | |
49 | 51 | if (CollectionUtils.isEmpty(childCids)) { |
50 | 52 | return null; |
51 | 53 | } |
... | ... | @@ -63,8 +65,8 @@ public class CategoryRestServiceImpl implements CategoryRestService { |
63 | 65 | } |
64 | 66 | |
65 | 67 | // 递归获取子节点的子孙,并加入cat |
66 | - List<CategoryOut> childCats = listAll(Integer.parseInt(childCid)); | |
67 | - if(CollectionUtils.isEmpty(childCats)){ | |
68 | + List<CategoryOut> childCats = listAll(Integer.parseInt(childCid),shopId); | |
69 | + if (CollectionUtils.isEmpty(childCats)) { | |
68 | 70 | continue; |
69 | 71 | } |
70 | 72 | for (CategoryOut child : childCats) { |
... | ... | @@ -112,11 +114,11 @@ public class CategoryRestServiceImpl implements CategoryRestService { |
112 | 114 | * @createTime 2014年5月29日 下午2:41:39 |
113 | 115 | * @author celine |
114 | 116 | */ |
115 | - public List<CategoryOut> listChildren(int cid) { | |
117 | + public List<CategoryOut> listChildren(int cid,int shopId) { | |
116 | 118 | List<CategoryOut> cats = new ArrayList<CategoryOut>(); |
117 | 119 | if (categoryService.hasChildren(cid)) { |
118 | 120 | // 获取子节点id |
119 | - Set<String> childCids = categoryService.getChildCidByParentId(cid); | |
121 | + Set<String> childCids = categoryService.getChildCidByParentId(cid,shopId); | |
120 | 122 | if (CollectionUtils.isEmpty(childCids)) { |
121 | 123 | return null; |
122 | 124 | } |
... | ... | @@ -152,7 +154,7 @@ public class CategoryRestServiceImpl implements CategoryRestService { |
152 | 154 | String attrId = String.valueOf(catAttr.getAttrId()); |
153 | 155 | AttributeOut attr = attributeRestService.findAttrAndValueById(attrId); |
154 | 156 | if (Tools.objectIsNotNull(attr)) { |
155 | - if (attr.getStatus() == AttributeOut.STATUS_NORMAL || attr.getStatus()==AttributeOut.STATUS_LOCK) { | |
157 | + if (attr.getStatus() == AttributeOut.STATUS_NORMAL || attr.getStatus() == AttributeOut.STATUS_LOCK) { | |
156 | 158 | if (Tools.objectIsNotNull(attr.getSaleType())) { |
157 | 159 | if (attr.getSaleType().equals(DESC_ATT_TYPE)) { |
158 | 160 | descAtt.add(attr); |
... | ... | @@ -207,6 +209,16 @@ public class CategoryRestServiceImpl implements CategoryRestService { |
207 | 209 | return categoryService.hasChildren(cid); |
208 | 210 | } |
209 | 211 | |
212 | + @Override | |
213 | + public Long addCategory(Category categoryOut) { | |
214 | + return categoryService.addCategory(categoryOut); | |
215 | + } | |
216 | + | |
217 | + @Override | |
218 | + public Boolean updateCategory(Category category) { | |
219 | + return categoryService.updateCategory(category); | |
220 | + } | |
221 | + | |
210 | 222 | public List<CategoryOut> listCategoriesInfo(List<Integer> cids) { |
211 | 223 | List<CategoryOut> categorise = new ArrayList<CategoryOut>(); |
212 | 224 | for (Integer cid : cids) { | ... | ... |
titan-api/src/main/java/com/diligrp/titan/ws/gq/impl/PreSaleRestServiceImpl.java
... | ... | @@ -145,9 +145,9 @@ public class PreSaleRestServiceImpl implements PresaleRestService { |
145 | 145 | if(!(cg.getActivate() == Category.SHOW_STATUS_ACTIVE) || !(cg.getStatus() == Category.STATUS_NORMAL)){ |
146 | 146 | return output.failure(TitanError.CATEGORY_STATE_ERROR); |
147 | 147 | } |
148 | - if(CollectionUtils.isNotEmpty(categoryRestService.listChildren(cg.getCid()))){ | |
149 | - return output.failure(TitanError.CATEGORY_HAS_CHILD); | |
150 | - } | |
148 | + //if(CollectionUtils.isNotEmpty(categoryRestService.listChildren(cg.getCid()))){ | |
149 | + // return output.failure(TitanError.CATEGORY_HAS_CHILD); | |
150 | + //} | |
151 | 151 | return output; |
152 | 152 | } |
153 | 153 | ... | ... |
titan-api/src/main/java/com/diligrp/titan/ws/gq/impl/PurchaseRestServiceImpl.java
... | ... | @@ -158,9 +158,9 @@ public class PurchaseRestServiceImpl implements PurchaseRestService { |
158 | 158 | if(!(cg.getActivate() == Category.SHOW_STATUS_ACTIVE) || !(cg.getStatus() == Category.STATUS_NORMAL)){ |
159 | 159 | return output.failure(TitanError.CATEGORY_STATE_ERROR); |
160 | 160 | } |
161 | - if(CollectionUtils.isNotEmpty(categoryRestService.listChildren(cg.getCid()))){ | |
162 | - return output.failure(TitanError.CATEGORY_HAS_CHILD); | |
163 | - } | |
161 | + //if(CollectionUtils.isNotEmpty(categoryRestService.listChildren(cg.getCid()))){ | |
162 | + // return output.failure(TitanError.CATEGORY_HAS_CHILD); | |
163 | + //} | |
164 | 164 | return output; |
165 | 165 | } |
166 | 166 | ... | ... |
titan-api/src/main/java/com/diligrp/titan/ws/gq/impl/SupplyRestServiceImpl.java
... | ... | @@ -158,9 +158,9 @@ public class SupplyRestServiceImpl implements SupplyRestService { |
158 | 158 | if(!(cg.getActivate() == Category.SHOW_STATUS_ACTIVE) || !(cg.getStatus() == Category.STATUS_NORMAL)){ |
159 | 159 | return output.failure(TitanError.CATEGORY_STATE_ERROR); |
160 | 160 | } |
161 | - if(CollectionUtils.isNotEmpty(categoryRestService.listChildren(cg.getCid()))){ | |
162 | - return output.failure(TitanError.CATEGORY_HAS_CHILD); | |
163 | - } | |
161 | + //if(CollectionUtils.isNotEmpty(categoryRestService.listChildren(cg.getCid()))){ | |
162 | + // return output.failure(TitanError.CATEGORY_HAS_CHILD); | |
163 | + //} | |
164 | 164 | return output; |
165 | 165 | } |
166 | 166 | ... | ... |
titan-api/src/main/resources/log4j.xml
... | ... | @@ -7,209 +7,9 @@ |
7 | 7 | </layout> |
8 | 8 | </appender> |
9 | 9 | |
10 | - <!--默认日志 --> | |
11 | - <appender name="FILE_ALL" class="org.apache.log4j.DailyRollingFileAppender"> | |
12 | - <param name="Encoding" value="UTF-8"/> | |
13 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/all.log"/> | |
14 | - <layout class="org.apache.log4j.PatternLayout"> | |
15 | - <param name="ConversionPattern" value="[%5p] [%d{yyyy-MM-dd HH:mm:ss SSS}] [%t] (%F:%L) %m%n"/> | |
16 | - </layout> | |
17 | - </appender> | |
18 | - | |
19 | - <category name="DEFALUT" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
20 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
21 | - <appender-ref ref="${dili_titan.log.root.appender}"/> | |
22 | - </category> | |
23 | - | |
24 | - <!--商品日志 --> | |
25 | - <appender name="PRODUCT" class="org.apache.log4j.DailyRollingFileAppender"> | |
26 | - <param name="Encoding" value="UTF-8"/> | |
27 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/product.log"/> | |
28 | - <layout class="org.apache.log4j.PatternLayout"> | |
29 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
30 | - </layout> | |
31 | - </appender> | |
32 | - | |
33 | - <category name="TITAN_PRODUCT" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
34 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
35 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
36 | - <appender-ref ref="PRODUCT"/> | |
37 | - </category> | |
38 | - | |
39 | - <!--类目日志 --> | |
40 | - <appender name="CATEGORY" class="org.apache.log4j.DailyRollingFileAppender"> | |
41 | - <param name="Encoding" value="UTF-8"/> | |
42 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/category.log"/> | |
43 | - <layout class="org.apache.log4j.PatternLayout"> | |
44 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
45 | - </layout> | |
46 | - </appender> | |
47 | - | |
48 | - <category name="TITAN_CATEGORY" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
49 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
50 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
51 | - <appender-ref ref="CATEGORY"/> | |
52 | - </category> | |
53 | - | |
54 | - <!--属性日志 --> | |
55 | - <appender name="ATTRIBUTE" class="org.apache.log4j.DailyRollingFileAppender"> | |
56 | - <param name="Encoding" value="UTF-8"/> | |
57 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/attribute.log"/> | |
58 | - <layout class="org.apache.log4j.PatternLayout"> | |
59 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
60 | - </layout> | |
61 | - </appender> | |
62 | - | |
63 | - <category name="TITAN_ATTRIBUTE" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
64 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
65 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
66 | - <appender-ref ref="ATTRIBUTE"/> | |
67 | - </category> | |
68 | - | |
69 | - <!--评论日志 --> | |
70 | - <appender name="COMMENT" class="org.apache.log4j.DailyRollingFileAppender"> | |
71 | - <param name="Encoding" value="UTF-8"/> | |
72 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/comment.log"/> | |
73 | - <layout class="org.apache.log4j.PatternLayout"> | |
74 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
75 | - </layout> | |
76 | - </appender> | |
77 | - | |
78 | - <category name="TITAN_COMMENT" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
79 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
80 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
81 | - <appender-ref ref="COMMENT"/> | |
82 | - </category> | |
83 | - | |
84 | - <!--库存日志 --> | |
85 | - <appender name="STOCK" class="org.apache.log4j.DailyRollingFileAppender"> | |
86 | - <param name="Encoding" value="UTF-8"/> | |
87 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/stock.log"/> | |
88 | - <layout class="org.apache.log4j.PatternLayout"> | |
89 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
90 | - </layout> | |
91 | - </appender> | |
92 | - | |
93 | - <category name="TITAN_STOCK" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
94 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
95 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
96 | - <appender-ref ref="STOCK"/> | |
97 | - </category> | |
98 | - | |
99 | - <!--供应商商品日志 --> | |
100 | - <appender name="SUPPLIER" class="org.apache.log4j.DailyRollingFileAppender"> | |
101 | - <param name="Encoding" value="UTF-8"/> | |
102 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/product_tp.log"/> | |
103 | - <layout class="org.apache.log4j.PatternLayout"> | |
104 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
105 | - </layout> | |
106 | - </appender> | |
107 | - | |
108 | - <category name="TITAN_SUPPLIER" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
109 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
110 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
111 | - <appender-ref ref="SUPPLIER"/> | |
112 | - </category> | |
113 | - <!--商品认证日志 --> | |
114 | - <appender name="AUTH" class="org.apache.log4j.DailyRollingFileAppender"> | |
115 | - <param name="Encoding" value="UTF-8"/> | |
116 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/auth.log"/> | |
117 | - <layout class="org.apache.log4j.PatternLayout"> | |
118 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
119 | - </layout> | |
120 | - </appender> | |
121 | - | |
122 | - <category name="TITAN_AUTH" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
123 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
124 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
125 | - <appender-ref ref="AUTH"/> | |
126 | - </category> | |
127 | - | |
128 | - <!--供应信息日志 --> | |
129 | - <appender name="SUPPLY" class="org.apache.log4j.DailyRollingFileAppender"> | |
130 | - <param name="Encoding" value="UTF-8"/> | |
131 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/supply.log"/> | |
132 | - <layout class="org.apache.log4j.PatternLayout"> | |
133 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
134 | - </layout> | |
135 | - </appender> | |
136 | - | |
137 | - <category name="TITAN_SUPPLY" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
138 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
139 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
140 | - <appender-ref ref="SUPPLY"/> | |
141 | - </category> | |
142 | - | |
143 | - <!--求购信息日志 --> | |
144 | - <appender name="PURCHASE" class="org.apache.log4j.DailyRollingFileAppender"> | |
145 | - <param name="Encoding" value="UTF-8"/> | |
146 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/purchase.log"/> | |
147 | - <layout class="org.apache.log4j.PatternLayout"> | |
148 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
149 | - </layout> | |
150 | - </appender> | |
151 | - | |
152 | - <category name="TITAN_PURCHASE" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
153 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
154 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
155 | - <appender-ref ref="PURCHASE"/> | |
156 | - </category> | |
157 | - | |
158 | - <!--预售信息日志 --> | |
159 | - <appender name="PRESALE" class="org.apache.log4j.DailyRollingFileAppender"> | |
160 | - <param name="Encoding" value="UTF-8"/> | |
161 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/presale.log"/> | |
162 | - <layout class="org.apache.log4j.PatternLayout"> | |
163 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
164 | - </layout> | |
165 | - </appender> | |
166 | - | |
167 | - <category name="TITAN_PRESALE" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
168 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
169 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
170 | - <appender-ref ref="PRESALE"/> | |
171 | - </category> | |
172 | - | |
173 | - <!--指数类目日志 --> | |
174 | - <appender name="INDEXCATEGORY" class="org.apache.log4j.DailyRollingFileAppender"> | |
175 | - <param name="Encoding" value="UTF-8"/> | |
176 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/index_category.log"/> | |
177 | - <layout class="org.apache.log4j.PatternLayout"> | |
178 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
179 | - </layout> | |
180 | - </appender> | |
181 | - | |
182 | - <category name="INDEX_CATEGORY" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
183 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
184 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
185 | - <appender-ref ref="INDEXCATEGORY"/> | |
186 | - </category> | |
187 | - | |
188 | - <!--运行时异常 --> | |
189 | - <appender name="EXCEPTION" class="org.apache.log4j.DailyRollingFileAppender"> | |
190 | - <param name="Encoding" value="UTF-8"/> | |
191 | - <param name="File" value="${dili_titan.log.path}/titan.api.1n4j.com/exception.log"/> | |
192 | - <layout class="org.apache.log4j.PatternLayout"> | |
193 | - <param name="ConversionPattern" value="[%p] [%d] [%r] [%c] - %m %n"/> | |
194 | - </layout> | |
195 | - </appender> | |
196 | - | |
197 | - <category name="EXCEPTION" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
198 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
199 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
200 | - <appender-ref ref="EXCEPTION"/> | |
201 | - </category> | |
202 | - | |
203 | - <category name="com.dili" additivity="false"> <!-- 自定义的日志分类,请根据实际情况调整 --> | |
204 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
205 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
206 | - </category> | |
207 | - | |
208 | - | |
209 | - | |
210 | 10 | <root> |
211 | - <priority value="${dili_titan.log.level}"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
212 | - <appender-ref ref="${dili_titan.log.root.appender}"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
11 | + <priority value="debug"/> <!-- 根据实际情况修改日志级别,一般线上是INFO以上 --> | |
12 | + <appender-ref ref="CONSOLE"/> <!-- 该appender需要在上线时删除,以免输出重复的日志到catalina.out文件 --> | |
213 | 13 | <!--<appender-ref ref="FILE"/>--> |
214 | 14 | </root> |
215 | 15 | </log4j:configuration> |
216 | 16 | \ No newline at end of file | ... | ... |
titan-api/src/main/resources/spring-config-dao.xml
... | ... | @@ -10,7 +10,7 @@ |
10 | 10 | http://www.springframework.org/schema/aop/spring-aop.xsd" |
11 | 11 | default-autowire="byName"> |
12 | 12 | |
13 | - <context:component-scan base-package="com.dili.titan.dao" /> | |
13 | + <context:component-scan base-package="com.diligrp.titan.dao" /> | |
14 | 14 | |
15 | 15 | <bean id="baseDataSource" class="com.alibaba.druid.pool.DruidDataSource"> |
16 | 16 | <property name="filters" value="stat"/> | ... | ... |
titan-api/src/main/resources/spring-config-mq.xml
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 | http://www.springframework.org/schema/context |
7 | 7 | http://www.springframework.org/schema/context/spring-context-3.2.xsd"> |
8 | 8 | |
9 | - <context:component-scan base-package="com.dili.titan.mq" /> | |
9 | + <context:component-scan base-package="com.diligrp.titan.mq" /> | |
10 | 10 | <bean id="diliMQProducer" |
11 | 11 | class="com.diligrp.util.rocketMQUtil.impl.DiliMQProducerImpl"/> |
12 | 12 | <bean id="messageProducerClient" class="com.diligrp.messageCenter.sdk.MessageProducerClient"> | ... | ... |
titan-api/src/main/resources/spring-config-redis.xml
... | ... | @@ -7,7 +7,7 @@ |
7 | 7 | http://www.springframework.org/schema/context/spring-context.xsd" |
8 | 8 | default-autowire="byName"> |
9 | 9 | |
10 | - <context:component-scan base-package="com.dili.titan.redis" /> | |
10 | + | |
11 | 11 | |
12 | 12 | <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> |
13 | 13 | <property name="maxIdle" value="6"></property> | ... | ... |
titan-api/src/main/resources/spring-config-service.xml
... | ... | @@ -11,9 +11,9 @@ |
11 | 11 | http://www.springframework.org/schema/tx/spring-tx.xsd" |
12 | 12 | default-autowire="byName"> |
13 | 13 | |
14 | - <context:component-scan base-package="com.dili.titan.service"/> | |
15 | - <context:component-scan base-package="com.dili.titan.ws"/> | |
16 | - <context:component-scan base-package="com.dili.titan.rpc"/> | |
14 | + <context:component-scan base-package="com.diligrp.titan.service"/> | |
15 | + <context:component-scan base-package="com.diligrp.titan.ws"/> | |
16 | + <context:component-scan base-package="com.diligrp.titan.rpc"/> | |
17 | 17 | <!-- 启用对事务的注解支持 --> |
18 | 18 | <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/> |
19 | 19 | </beans> |
20 | 20 | \ No newline at end of file | ... | ... |
titan-api/src/main/resources/spring-config-servlet.xml
... | ... | @@ -9,7 +9,7 @@ |
9 | 9 | default-autowire="byName"> |
10 | 10 | |
11 | 11 | <!-- mvc controller --> |
12 | - <context:component-scan base-package="com.dili.titan.web.ws" /> | |
12 | + <context:component-scan base-package="com.diligrp.titan.web.ws" /> | |
13 | 13 | <!--<aop:aspectj-autoproxy proxy-target-class="true" />--> |
14 | 14 | <context:annotation-config /> |
15 | 15 | ... | ... |
titan-api/src/main/resources/sqlmap/Attribute.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/AttributeValue.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/Auth.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/AuthScope.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/Category.xml
100755 → 100644
1 | 1 | <?xml version="1.0" encoding="UTF-8" ?> |
2 | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
3 | 3 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
4 | -<mapper namespace="com.diligrp.titan.dao.category.CategoryDao"> | |
4 | +<mapper namespace="CategoryDao"> | |
5 | 5 | |
6 | 6 | <!-- category 所有查询列 --> |
7 | 7 | <sql id="QUERY_COLUMN_LIST"> |
8 | - <![CDATA[id,name,jp,parent,template,icon,deal_type AS dealType,status,activate, `order`]]> | |
8 | + <![CDATA[id,name,jp,parent,template,icon,deal_type AS dealType,status,activate, `order`, note,product_img as productImg, shop_id as shopId]]> | |
9 | 9 | </sql> |
10 | 10 | |
11 | 11 | <!-- category 查询列来源表--> |
... | ... | @@ -23,7 +23,7 @@ |
23 | 23 | <if test="order != null and order != ''"><![CDATA[AND `order` = #{order}]]></if> |
24 | 24 | </where> |
25 | 25 | </sql> |
26 | - | |
26 | + | |
27 | 27 | <!-- 智能排序与分页 --> |
28 | 28 | <sql id="QUERY_ORDER_LIMIT_CONDTION"> |
29 | 29 | <if test="orderField != null and orderField != '' and orderFieldType != null and orderFieldType != ''"><![CDATA[ORDER BY ${orderField} ${orderFieldType}]]></if> |
... | ... | @@ -45,8 +45,8 @@ |
45 | 45 | <!-- 插入category记录 --> |
46 | 46 | <insert id="insertEntry" parameterType="category" > |
47 | 47 | <![CDATA[ |
48 | - INSERT INTO category (id,name,jp,parent,icon,template,status,activate, `order`,ctime) | |
49 | - VALUES (#{id},#{name},#{parent},#{icon},#{template},#{status},#{activate}, #{order} ,now()) | |
48 | + INSERT INTO category (id,name,parent,icon,template,status,activate, `order`,ctime,shop_id,deal_type) | |
49 | + VALUES (#{id},#{name},#{parent},#{icon},#{template},#{status},#{activate}, #{order} ,now(),#{shopId},#{dealType}) | |
50 | 50 | ]]> |
51 | 51 | </insert> |
52 | 52 | ... | ... |
titan-api/src/main/resources/sqlmap/CategoryAttr.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/CategorySearchAttr.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/IndexCategory.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/ProductAuth.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/ProductComment.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/ProductImg.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/ProductPopGroupBuying.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/ProductSample.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/ProductSearchSort.xml
100755 → 100644
1 | 1 | <?xml version="1.0" encoding="UTF-8" ?> |
2 | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
3 | 3 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
4 | -<mapper namespace="com.dili.titan.dao.ProductSearchSortDao"> | |
4 | +<mapper namespace="com.diligrp.titan.dao.ProductSearchSortDao"> | |
5 | 5 | |
6 | 6 | <!-- product_search_sort 所有查询列 --> |
7 | 7 | <sql id="QUERY_COLUMN_LIST"> | ... | ... |
titan-api/src/main/resources/sqlmap/ProductVideo.xml
100755 → 100644
1 | 1 | <?xml version="1.0" encoding="UTF-8" ?> |
2 | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
3 | 3 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
4 | -<mapper namespace="com.dili.titan.dao.ProductVideoDao"> | |
4 | +<mapper namespace="com.diligrp.titan.dao.ProductVideoDao"> | |
5 | 5 | |
6 | 6 | <!-- product_video 所有查询列 --> |
7 | 7 | <sql id="QUERY_COLUMN_LIST"> | ... | ... |
titan-api/src/main/resources/sqlmap/SnapshotSku.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/Stock.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/TitanSequence.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/Video.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/gq/Presale.xml
100755 → 100644
1 | 1 | <?xml version="1.0" encoding="UTF-8" ?> |
2 | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
3 | 3 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
4 | -<mapper namespace="com.dili.titan.dao.PresaleDao"> | |
4 | +<mapper namespace="com.diligrp.titan.dao.PresaleDao"> | |
5 | 5 | |
6 | 6 | <!-- presale 所有查询列 --> |
7 | 7 | <sql id="QUERY_COLUMN_LIST"> | ... | ... |
titan-api/src/main/resources/sqlmap/gq/Purchase.xml
100755 → 100644
1 | 1 | <?xml version="1.0" encoding="UTF-8" ?> |
2 | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
3 | 3 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
4 | -<mapper namespace="com.dili.titan.dao.PurchaseDao"> | |
4 | +<mapper namespace="com.diligrp.titan.dao.PurchaseDao"> | |
5 | 5 | |
6 | 6 | <!-- purchase 所有查询列 --> |
7 | 7 | <sql id="QUERY_COLUMN_LIST"> | ... | ... |
titan-api/src/main/resources/sqlmap/gq/Supply.xml
100755 → 100644
1 | 1 | <?xml version="1.0" encoding="UTF-8" ?> |
2 | 2 | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" |
3 | 3 | "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
4 | -<mapper namespace="com.dili.titan.dao.SupplyDao"> | |
4 | +<mapper namespace="com.diligrp.titan.dao.SupplyDao"> | |
5 | 5 | |
6 | 6 | <!-- supply 所有查询列 --> |
7 | 7 | <sql id="QUERY_COLUMN_LIST"> | ... | ... |
titan-api/src/main/resources/sqlmap/pop/ProductPop.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/pop/ProductPopAttr.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/pop/ProductPopAttrValue.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/pop/ProductPopAudit.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/pop/ProductPopPriceRange.xml
100755 → 100644
titan-api/src/main/resources/sqlmap/pop/ProductSkuPop.xml
100755 → 100644
titan-cache/src/main/resources/sqlmap/Attribute.xml renamed to titan-cache/src/main/resources/com/diligrp/titan/dao/sqlmap/Attribute.xml
titan-cache/src/main/resources/sqlmap/Category.xml renamed to titan-cache/src/main/resources/com/diligrp/titan/dao/sqlmap/Category.xml
titan-cache/src/main/resources/sqlmap/ProductImg.xml renamed to titan-cache/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductImg.xml
titan-cache/src/main/resources/sqlmap/ProductPop.xml renamed to titan-cache/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductPop.xml
titan-cache/src/main/resources/sqlmap/gq/Presale.xml renamed to titan-cache/src/main/resources/com/diligrp/titan/dao/sqlmap/gq/Presale.xml
titan-cache/src/main/resources/sqlmap/gq/Purchase.xml renamed to titan-cache/src/main/resources/com/diligrp/titan/dao/sqlmap/gq/Purchase.xml
titan-cache/src/main/resources/sqlmap/gq/Supply.xml renamed to titan-cache/src/main/resources/com/diligrp/titan/dao/sqlmap/gq/Supply.xml
titan-cache/src/main/resources/sqlmap/sqlmap-config.xml renamed to titan-cache/src/main/resources/com/diligrp/titan/dao/sqlmap/sqlmap-config.xml
... | ... | @@ -25,14 +25,14 @@ |
25 | 25 | </typeAliases> |
26 | 26 | |
27 | 27 | <mappers> |
28 | - <mapper resource="sqlmap/Attribute.xml" /> | |
29 | - <mapper resource="sqlmap/Category.xml" /> | |
28 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Attribute.xml" /> | |
29 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Category.xml" /> | |
30 | 30 | <!--供求需求--> |
31 | - <mapper resource="sqlmap/gq/Purchase.xml"/> | |
32 | - <mapper resource="sqlmap/gq/Presale.xml"/> | |
33 | - <mapper resource="sqlmap/gq/Supply.xml"/> | |
34 | - <mapper resource="sqlmap/ProductImg.xml" /> | |
35 | - <mapper resource="sqlmap/ProductPop.xml" /> | |
31 | + <mapper resource="com.diligrp.titan.dao.sqlmap/gq/Purchase.xml"/> | |
32 | + <mapper resource="com.diligrp.titan.dao.sqlmap/gq/Presale.xml"/> | |
33 | + <mapper resource="com.diligrp.titan.dao.sqlmap/gq/Supply.xml"/> | |
34 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductImg.xml" /> | |
35 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductPop.xml" /> | |
36 | 36 | </mappers> |
37 | 37 | |
38 | 38 | </configuration> |
39 | 39 | \ No newline at end of file | ... | ... |
titan-cache/src/main/resources/spring-config-dao.xml
... | ... | @@ -53,7 +53,7 @@ |
53 | 53 | |
54 | 54 | <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> |
55 | 55 | <property name="dataSource" ref="masterDataSource" /> |
56 | - <property name="configLocation" value="classpath:sqlmap/sqlmap-config.xml" /> | |
56 | + <property name="configLocation" value="classpath:com.diligrp.titan.dao.sqlmap/com.diligrp.titan.dao.sqlmap-config.xml" /> | |
57 | 57 | </bean> |
58 | 58 | |
59 | 59 | <bean id="sqlTemplate" class="org.mybatis.spring.SqlSessionTemplate"> | ... | ... |
titan-sdk/src/main/java/com/diligrp/titan/sdk/domain/Category.java
... | ... | @@ -51,6 +51,36 @@ public class Category { |
51 | 51 | */ |
52 | 52 | private String cname; |
53 | 53 | |
54 | + private String note; | |
55 | + | |
56 | + private String productImg; | |
57 | + | |
58 | + private Long shopId; | |
59 | + | |
60 | + public String getNote() { | |
61 | + return note; | |
62 | + } | |
63 | + | |
64 | + public void setNote(String note) { | |
65 | + this.note = note; | |
66 | + } | |
67 | + | |
68 | + public String getProductImg() { | |
69 | + return productImg; | |
70 | + } | |
71 | + | |
72 | + public void setProductImg(String productImg) { | |
73 | + this.productImg = productImg; | |
74 | + } | |
75 | + | |
76 | + public Long getShopId() { | |
77 | + return shopId; | |
78 | + } | |
79 | + | |
80 | + public void setShopId(Long shopId) { | |
81 | + this.shopId = shopId; | |
82 | + } | |
83 | + | |
54 | 84 | /** |
55 | 85 | * 类目简拼 |
56 | 86 | */ | ... | ... |
titan-sdk/src/main/java/com/diligrp/titan/sdk/input/CategoryInput.java
0 → 100644
1 | +package com.diligrp.titan.sdk.input; | |
2 | + | |
3 | +/** | |
4 | + * Created by yanggang on 2016/12/7. | |
5 | + */ | |
6 | +public class CategoryInput { | |
7 | + | |
8 | + private String name; | |
9 | + private Integer parent; | |
10 | + private Integer shopId; | |
11 | + private Long id; | |
12 | + | |
13 | + public Long getId() { | |
14 | + return id; | |
15 | + } | |
16 | + | |
17 | + public void setId(Long id) { | |
18 | + this.id = id; | |
19 | + } | |
20 | + | |
21 | + public String getName() { | |
22 | + return name; | |
23 | + } | |
24 | + | |
25 | + public void setName(String name) { | |
26 | + this.name = name; | |
27 | + } | |
28 | + | |
29 | + public Integer getParent() { | |
30 | + return parent; | |
31 | + } | |
32 | + | |
33 | + public void setParent(Integer parent) { | |
34 | + this.parent = parent; | |
35 | + } | |
36 | + | |
37 | + public Integer getShopId() { | |
38 | + return shopId; | |
39 | + } | |
40 | + | |
41 | + public void setShopId(Integer shopId) { | |
42 | + this.shopId = shopId; | |
43 | + } | |
44 | +} | ... | ... |
titan-sdk/src/main/java/com/diligrp/titan/sdk/service/CategoryService.java
... | ... | @@ -2,6 +2,7 @@ package com.diligrp.titan.sdk.service; |
2 | 2 | |
3 | 3 | import com.diligrp.titan.sdk.domain.Attribute; |
4 | 4 | import com.diligrp.titan.sdk.domain.Category; |
5 | +import com.diligrp.titan.sdk.input.CategoryInput; | |
5 | 6 | import com.diligrp.titan.sdk.output.BaseOutput; |
6 | 7 | |
7 | 8 | import java.util.HashMap; |
... | ... | @@ -23,7 +24,7 @@ public interface CategoryService { |
23 | 24 | * @param cid 父类目id,0表示根节点 |
24 | 25 | * @return {@link Category} |
25 | 26 | */ |
26 | - public BaseOutput<List<Category>> listAll(int cid); | |
27 | + public BaseOutput<List<Category>> listAll(int cid,int shopId); | |
27 | 28 | |
28 | 29 | /** |
29 | 30 | * 获取类目的面包屑 |
... | ... | @@ -37,7 +38,9 @@ public interface CategoryService { |
37 | 38 | * @param cid 父类目id,0表示根节点 |
38 | 39 | * @return {@link Category} |
39 | 40 | */ |
40 | - public BaseOutput<List<Category>> listChildren(int cid); | |
41 | + public BaseOutput<List<Category>> listChildren(int cid,int shopId); | |
42 | + | |
43 | + public BaseOutput<Object> addCategory(Category category); | |
41 | 44 | |
42 | 45 | /** |
43 | 46 | * 获取类目的属性 |
... | ... | @@ -81,4 +84,8 @@ public interface CategoryService { |
81 | 84 | * @author yangjianjun |
82 | 85 | */ |
83 | 86 | public BaseOutput<List<Category>> searchCategoryInfo(String cname); |
87 | + | |
88 | + BaseOutput<Object> insertCategory(CategoryInput categoryInput); | |
89 | + | |
90 | + BaseOutput<Object> updateCategory(CategoryInput categoryInput); | |
84 | 91 | } | ... | ... |
titan-sdk/src/main/java/com/diligrp/titan/sdk/service/impl/CategoryServiceImpl.java
... | ... | @@ -3,6 +3,7 @@ package com.diligrp.titan.sdk.service.impl; |
3 | 3 | import com.alibaba.fastjson.TypeReference; |
4 | 4 | import com.diligrp.titan.sdk.domain.Attribute; |
5 | 5 | import com.diligrp.titan.sdk.domain.Category; |
6 | +import com.diligrp.titan.sdk.input.CategoryInput; | |
6 | 7 | import com.diligrp.titan.sdk.output.BaseOutput; |
7 | 8 | import com.diligrp.titan.sdk.service.CategoryService; |
8 | 9 | import com.diligrp.titan.sdk.service.ServiceExcutor; |
... | ... | @@ -13,53 +14,63 @@ import java.util.Map; |
13 | 14 | |
14 | 15 | public class CategoryServiceImpl extends ServiceExcutor implements CategoryService { |
15 | 16 | |
16 | - public CategoryServiceImpl(String accesskey, String secretkey) { | |
17 | - super(accesskey, secretkey); | |
18 | - } | |
17 | + public CategoryServiceImpl(String accesskey, String secretkey) { | |
18 | + super(accesskey, secretkey); | |
19 | + } | |
19 | 20 | |
20 | - public CategoryServiceImpl(String accesskey, String secretkey,int timeOut) { | |
21 | - super(accesskey, secretkey,timeOut); | |
21 | + public CategoryServiceImpl(String accesskey, String secretkey, int timeOut) { | |
22 | + super(accesskey, secretkey, timeOut); | |
22 | 23 | } |
23 | 24 | |
24 | - @Override | |
25 | - public BaseOutput<List<Category>> listAll(int cid) { | |
26 | - BaseOutput<List<Category>> output = new BaseOutput<List<Category>>(); | |
27 | - Map<String, Integer> params = new HashMap<String, Integer>(); | |
28 | - params.put("cid", cid); | |
29 | - output = execute("/category/listAll", params, output, new TypeReference<BaseOutput<List<Category>>>() { | |
30 | - }); | |
31 | - return output; | |
32 | - } | |
33 | - | |
34 | - @Override | |
35 | - public BaseOutput<List<Category>> listCrumbs(int cid) { | |
36 | - BaseOutput<List<Category>> outPut = new BaseOutput<List<Category>>(); | |
37 | - Map<String, Integer> params = new HashMap<String, Integer>(); | |
38 | - params.put("cid", cid); | |
39 | - outPut = execute("/category/listCrumbs", params, outPut, new TypeReference<BaseOutput<List<Category>>>() { | |
40 | - }); | |
41 | - return outPut; | |
42 | - } | |
43 | - | |
44 | - @Override | |
45 | - public BaseOutput<List<Category>> listChildren(int cid) { | |
46 | - BaseOutput<List<Category>> output = new BaseOutput<List<Category>>(); | |
47 | - Map<String, Integer> params = new HashMap<String, Integer>(); | |
48 | - params.put("cid", cid); | |
49 | - output = execute("/category/listChildren", params, output, new TypeReference<BaseOutput<List<Category>>>() { | |
50 | - }); | |
51 | - return output; | |
52 | - } | |
53 | - | |
54 | - @Override | |
55 | - public BaseOutput<HashMap<String, List<Attribute>>> listAttributes(int cid) { | |
56 | - BaseOutput<HashMap<String, List<Attribute>>> output = new BaseOutput<HashMap<String, List<Attribute>>>(); | |
57 | - Map<String, Integer> params = new HashMap<String, Integer>(); | |
58 | - params.put("cid", cid); | |
59 | - output = execute("/category/attributes", params, output, new TypeReference<BaseOutput<HashMap<String, List<Attribute>>>>() { | |
60 | - }); | |
61 | - return output; | |
62 | - } | |
25 | + @Override | |
26 | + public BaseOutput<List<Category>> listAll(int cid, int shopId) { | |
27 | + BaseOutput<List<Category>> output = new BaseOutput<List<Category>>(); | |
28 | + Map<String, Integer> params = new HashMap<String, Integer>(); | |
29 | + params.put("cid", cid); | |
30 | + params.put("shopId", shopId); | |
31 | + output = execute("/category/listAll", params, output, new TypeReference<BaseOutput<List<Category>>>() { | |
32 | + }); | |
33 | + return output; | |
34 | + } | |
35 | + | |
36 | + @Override | |
37 | + public BaseOutput<List<Category>> listCrumbs(int cid) { | |
38 | + BaseOutput<List<Category>> outPut = new BaseOutput<List<Category>>(); | |
39 | + Map<String, Integer> params = new HashMap<String, Integer>(); | |
40 | + params.put("cid", cid); | |
41 | + outPut = execute("/category/listCrumbs", params, outPut, new TypeReference<BaseOutput<List<Category>>>() { | |
42 | + }); | |
43 | + return outPut; | |
44 | + } | |
45 | + | |
46 | + @Override | |
47 | + public BaseOutput<List<Category>> listChildren(int cid, int shopId) { | |
48 | + BaseOutput<List<Category>> output = new BaseOutput<List<Category>>(); | |
49 | + Map<String, Integer> params = new HashMap<String, Integer>(); | |
50 | + params.put("cid", cid); | |
51 | + params.put("shopId", shopId); | |
52 | + output = execute("/category/listChildren", params, output, new TypeReference<BaseOutput<List<Category>>>() { | |
53 | + }); | |
54 | + return output; | |
55 | + } | |
56 | + | |
57 | + @Override | |
58 | + public BaseOutput<Object> addCategory(Category category) { | |
59 | + BaseOutput<Object> output = new BaseOutput<Object>(); | |
60 | + output = execute("/category/insertCategory", category, output, new TypeReference<BaseOutput<Object>>() { | |
61 | + }); | |
62 | + return output; | |
63 | + } | |
64 | + | |
65 | + @Override | |
66 | + public BaseOutput<HashMap<String, List<Attribute>>> listAttributes(int cid) { | |
67 | + BaseOutput<HashMap<String, List<Attribute>>> output = new BaseOutput<HashMap<String, List<Attribute>>>(); | |
68 | + Map<String, Integer> params = new HashMap<String, Integer>(); | |
69 | + params.put("cid", cid); | |
70 | + output = execute("/category/attributes", params, output, new TypeReference<BaseOutput<HashMap<String, List<Attribute>>>>() { | |
71 | + }); | |
72 | + return output; | |
73 | + } | |
63 | 74 | |
64 | 75 | @Override |
65 | 76 | public BaseOutput<HashMap<String, List<Attribute>>> listAttributes(int cid, boolean includeDel) { |
... | ... | @@ -73,32 +84,48 @@ public class CategoryServiceImpl extends ServiceExcutor implements CategoryServi |
73 | 84 | } |
74 | 85 | |
75 | 86 | @Override |
76 | - public BaseOutput<List<Category>> listCategoriesInfo(List<Integer> cids) { | |
77 | - BaseOutput<List<Category>> outPut = new BaseOutput<List<Category>>(); | |
78 | - Map<String, List<Integer>> params = new HashMap<String, List<Integer>>(); | |
79 | - params.put("cids", cids); | |
80 | - outPut = execute("/category/listCategoriesInfo", params, outPut, new TypeReference<BaseOutput<List<Category>>>() { | |
87 | + public BaseOutput<List<Category>> listCategoriesInfo(List<Integer> cids) { | |
88 | + BaseOutput<List<Category>> outPut = new BaseOutput<List<Category>>(); | |
89 | + Map<String, List<Integer>> params = new HashMap<String, List<Integer>>(); | |
90 | + params.put("cids", cids); | |
91 | + outPut = execute("/category/listCategoriesInfo", params, outPut, new TypeReference<BaseOutput<List<Category>>>() { | |
92 | + }); | |
93 | + return outPut; | |
94 | + } | |
95 | + | |
96 | + @Override | |
97 | + public BaseOutput<Category> getCategoryInfo(int cid) { | |
98 | + BaseOutput<Category> outPut = new BaseOutput<Category>(); | |
99 | + Map<String, Integer> params = new HashMap<String, Integer>(); | |
100 | + params.put("cid", cid); | |
101 | + outPut = execute("/category/getCategoryInfo", params, outPut, new TypeReference<BaseOutput<Category>>() { | |
102 | + }); | |
103 | + return outPut; | |
104 | + } | |
105 | + | |
106 | + @Override | |
107 | + public BaseOutput<List<Category>> searchCategoryInfo(String cname) { | |
108 | + BaseOutput<List<Category>> output = new BaseOutput<List<Category>>(); | |
109 | + Map<String, String> params = new HashMap<String, String>(); | |
110 | + params.put("cname", cname); | |
111 | + output = execute("/category/searchCategoryInfo", params, output, new TypeReference<BaseOutput<List<Category>>>() { | |
112 | + }); | |
113 | + return output; | |
114 | + } | |
115 | + | |
116 | + @Override | |
117 | + public BaseOutput<Object> insertCategory(CategoryInput categoryInput) { | |
118 | + BaseOutput<Object> output = new BaseOutput<Object>(); | |
119 | + output = execute("/category/insertCategory", categoryInput, output, new TypeReference<BaseOutput<Object>>() { | |
81 | 120 | }); |
82 | - return outPut; | |
83 | - } | |
84 | - | |
85 | - @Override | |
86 | - public BaseOutput<Category> getCategoryInfo(int cid) { | |
87 | - BaseOutput<Category> outPut = new BaseOutput<Category>(); | |
88 | - Map<String, Integer> params = new HashMap<String, Integer>(); | |
89 | - params.put("cid", cid); | |
90 | - outPut = execute("/category/getCategoryInfo", params, outPut, new TypeReference<BaseOutput<Category>>() { | |
121 | + return output; | |
122 | + } | |
123 | + | |
124 | + @Override | |
125 | + public BaseOutput<Object> updateCategory(CategoryInput categoryInput) { | |
126 | + BaseOutput<Object> output = new BaseOutput<Object>(); | |
127 | + output = execute("/category/updateCategory", categoryInput, output, new TypeReference<BaseOutput<Object>>() { | |
91 | 128 | }); |
92 | - return outPut; | |
93 | - } | |
94 | - | |
95 | - @Override | |
96 | - public BaseOutput<List<Category>> searchCategoryInfo(String cname) { | |
97 | - BaseOutput<List<Category>> output = new BaseOutput<List<Category>>(); | |
98 | - Map<String, String> params = new HashMap<String, String>(); | |
99 | - params.put("cname", cname); | |
100 | - output = execute("/category/searchCategoryInfo", params, output, new TypeReference<BaseOutput<List<Category>>>() { | |
101 | - }); | |
102 | - return output; | |
103 | - } | |
129 | + return output; | |
130 | + } | |
104 | 131 | } | ... | ... |
titan-sdk/src/test/java/com/diligrp/titan/sdk/TestCategoryService.java
... | ... | @@ -3,6 +3,7 @@ package com.diligrp.titan.sdk; |
3 | 3 | import com.alibaba.fastjson.JSON; |
4 | 4 | import com.diligrp.titan.sdk.domain.Attribute; |
5 | 5 | import com.diligrp.titan.sdk.domain.Category; |
6 | +import com.diligrp.titan.sdk.input.CategoryInput; | |
6 | 7 | import com.diligrp.titan.sdk.output.BaseOutput; |
7 | 8 | import com.diligrp.titan.sdk.service.CategoryService; |
8 | 9 | import org.apache.log4j.Logger; |
... | ... | @@ -11,131 +12,172 @@ import org.junit.Test; |
11 | 12 | import java.util.ArrayList; |
12 | 13 | import java.util.HashMap; |
13 | 14 | import java.util.List; |
15 | + | |
14 | 16 | public class TestCategoryService { |
15 | - private static Logger logger = Logger.getLogger(TestCategoryService.class); | |
16 | - static String accesskey = "9c379f079214447fad2959c4621cd6feVb797oH1"; | |
17 | - static String secretkey = "5e998dbbafb44ca783099afcdead40fa7A3Vf7Fh"; | |
18 | - static TitanClient client = new TitanClient(accesskey, secretkey,"http://titan.api.1n4j.com"); | |
19 | -// static TitanClient client = new TitanClient(accesskey, secretkey,40000); | |
20 | - static CategoryService categoryService = client.getCategoryService(); | |
21 | - | |
22 | - /** | |
23 | - * this method is 获取类目的所有子类目 | |
24 | - * @createTime 2014年7月22日 下午4:03:02 | |
25 | - * @author yangjianjun | |
26 | - */ | |
27 | - @Test | |
28 | - public void testListAll(){ | |
29 | - BaseOutput<List<Category>> output = categoryService.listAll(1); | |
30 | - logger.info("Test category listAll:" + | |
31 | - JSON.toJSONString(output)); | |
32 | - } | |
33 | - /** | |
34 | - * this method is 列出运营范围下的所有子类目 | |
35 | - * @createTime 2014年7月22日 下午4:02:50 | |
36 | - * @author yangjianjun | |
37 | - */ | |
38 | - @Test | |
39 | - public void testListAllRange(){ | |
40 | - BaseOutput<List<Category>> output = categoryService.listAll(0); | |
41 | - logger.info("Test category listAll:" + | |
42 | - JSON.toJSONString(output)); | |
43 | - } | |
44 | - /** | |
45 | - * this method is 列出运营范围下的子类目 | |
46 | - * @createTime 2014年7月22日 下午4:02:35 | |
47 | - * @author yangjianjun | |
48 | - */ | |
49 | - @Test | |
50 | - public void testListChildrenRange(){ | |
51 | - BaseOutput<List<Category>> output = categoryService.listChildren(3); | |
52 | - logger.info("Test category listChildren:" + | |
53 | - JSON.toJSONString(output)); | |
54 | - } | |
55 | - /** | |
56 | - * this method is 获取类目下一级子类目 | |
57 | - * @createTime 2014年7月22日 下午4:04:30 | |
58 | - * @author yangjianjun | |
59 | - */ | |
60 | - @Test | |
61 | - public void testListChildren(){ | |
62 | - BaseOutput<List<Category>> output = categoryService.listChildren(0); | |
63 | - logger.info("Test category listChildren:" + | |
64 | - JSON.toJSONString(output)); | |
65 | - } | |
66 | - /** | |
67 | - * this method is 获取类目的属性 | |
68 | - * @createTime 2014年7月22日 下午4:06:35 | |
69 | - * @author yangjianjun | |
70 | - */ | |
71 | - @Test | |
72 | - public void testListAttributes(){ | |
73 | - BaseOutput<HashMap<String, List<Attribute>>> output =categoryService.listAttributes(57); | |
74 | - logger.info("Test category testListAttributes:" + | |
75 | - JSON.toJSONString(output)); | |
76 | - } | |
17 | + private static Logger logger = Logger.getLogger(TestCategoryService.class); | |
18 | + static String accesskey = "9c379f079214447fad2959c4621cd6feVb797oH1"; | |
19 | + static String secretkey = "5e998dbbafb44ca783099afcdead40fa7A3Vf7Fh"; | |
20 | + static TitanClient client = new TitanClient(accesskey, secretkey, "http://127.0.0.1"); | |
21 | + // static TitanClient client = new TitanClient(accesskey, secretkey,40000); | |
22 | + static CategoryService categoryService = client.getCategoryService(); | |
23 | + | |
24 | + /** | |
25 | + * this method is 获取类目的所有子类目 | |
26 | + * | |
27 | + * @createTime 2014年7月22日 下午4:03:02 | |
28 | + * @author yangjianjun | |
29 | + */ | |
30 | + @Test | |
31 | + public void testListAll() { | |
32 | + BaseOutput<List<Category>> output = categoryService.listAll(1, 1); | |
33 | + logger.info("Test category listAll:" + | |
34 | + JSON.toJSONString(output)); | |
35 | + } | |
36 | + | |
37 | + /** | |
38 | + * this method is 列出运营范围下的所有子类目 | |
39 | + * | |
40 | + * @createTime 2014年7月22日 下午4:02:50 | |
41 | + * @author yangjianjun | |
42 | + */ | |
43 | + @Test | |
44 | + public void testListAllRange() { | |
45 | + BaseOutput<List<Category>> output = categoryService.listAll(0, 1); | |
46 | + logger.info("Test category listAll:" + | |
47 | + JSON.toJSONString(output)); | |
48 | + } | |
77 | 49 | |
50 | + /** | |
51 | + * this method is 列出运营范围下的子类目 | |
52 | + * | |
53 | + * @createTime 2014年7月22日 下午4:02:35 | |
54 | + * @author yangjianjun | |
55 | + */ | |
78 | 56 | @Test |
79 | - public void testListAttributes1(){ | |
80 | - BaseOutput<HashMap<String, List<Attribute>>> output =categoryService.listAttributes(298,true); | |
57 | + public void testListChildrenRange() { | |
58 | + BaseOutput<List<Category>> output = categoryService.listChildren(3, 1); | |
59 | + logger.info("Test category listChildren:" + | |
60 | + JSON.toJSONString(output)); | |
61 | + } | |
62 | + | |
63 | + /** | |
64 | + * this method is 获取类目下一级子类目 | |
65 | + * | |
66 | + * @createTime 2014年7月22日 下午4:04:30 | |
67 | + * @author yangjianjun | |
68 | + */ | |
69 | + @Test | |
70 | + public void testListChildren() { | |
71 | + BaseOutput<List<Category>> output = categoryService.listChildren(0, 1); | |
72 | + logger.info("Test category listChildren:" + | |
73 | + JSON.toJSONString(output)); | |
74 | + } | |
75 | + | |
76 | + /** | |
77 | + * this method is 获取类目的属性 | |
78 | + * | |
79 | + * @createTime 2014年7月22日 下午4:06:35 | |
80 | + * @author yangjianjun | |
81 | + */ | |
82 | + @Test | |
83 | + public void testListAttributes() { | |
84 | + BaseOutput<HashMap<String, List<Attribute>>> output = categoryService.listAttributes(57); | |
81 | 85 | logger.info("Test category testListAttributes:" + |
82 | 86 | JSON.toJSONString(output)); |
83 | 87 | } |
84 | - /** | |
85 | - * this method is 获取类目的面包屑 | |
86 | - * @createTime 2014年7月22日 下午4:08:55 | |
87 | - * @author yangjianjun | |
88 | - */ | |
89 | - @Test | |
90 | - public void testListCrumbs(){ | |
91 | - BaseOutput<List<Category>> output = categoryService.listCrumbs(1); | |
92 | - logger.info("Test category listCrumbs:" + | |
93 | - JSON.toJSONString(output)); | |
94 | - } | |
95 | - /** | |
96 | - * this method is 批量获取类目的属性与类目信息 | |
97 | - * @createTime 2014年7月22日 下午4:12:33 | |
98 | - * @author yangjianjun | |
99 | - */ | |
100 | - @Test | |
101 | - public void testListCategoriesInfo(){ | |
102 | - List<Integer> cids = new ArrayList<Integer>(); | |
103 | - cids.add(1); | |
104 | - cids.add(2); | |
105 | - BaseOutput<List<Category>> output=categoryService.listCategoriesInfo(cids); | |
106 | - logger.info("Test category listCategoriesInfo:" + | |
107 | - JSON.toJSONString(output)); | |
108 | - } | |
109 | - /** | |
110 | - * this method is 获取单个类目的属性与类目信息 | |
111 | - * @createTime 2014年7月22日 下午4:14:30 | |
112 | - * @author yangjianjun | |
113 | - */ | |
114 | - @Test | |
115 | - public void testGetCategoryInfo(){ | |
116 | - BaseOutput<Category> output=categoryService.getCategoryInfo(75); | |
117 | - logger.info("Test category getCategoryInfo:" + | |
118 | - JSON.toJSONString(output)); | |
119 | - } | |
120 | - /** | |
121 | - * this method is 获取商品类目的SEO设置 | |
122 | - * @createTime 2014年7月22日 下午4:15:41 | |
123 | - * @author yangjianjun | |
124 | - */ | |
88 | + | |
89 | + @Test | |
90 | + public void testListAttributes1() { | |
91 | + BaseOutput<HashMap<String, List<Attribute>>> output = categoryService.listAttributes(298, true); | |
92 | + logger.info("Test category testListAttributes:" + | |
93 | + JSON.toJSONString(output)); | |
94 | + } | |
95 | + | |
96 | + /** | |
97 | + * this method is 获取类目的面包屑 | |
98 | + * | |
99 | + * @createTime 2014年7月22日 下午4:08:55 | |
100 | + * @author yangjianjun | |
101 | + */ | |
102 | + @Test | |
103 | + public void testListCrumbs() { | |
104 | + BaseOutput<List<Category>> output = categoryService.listCrumbs(1); | |
105 | + logger.info("Test category listCrumbs:" + | |
106 | + JSON.toJSONString(output)); | |
107 | + } | |
108 | + | |
109 | + /** | |
110 | + * this method is 批量获取类目的属性与类目信息 | |
111 | + * | |
112 | + * @createTime 2014年7月22日 下午4:12:33 | |
113 | + * @author yangjianjun | |
114 | + */ | |
115 | + @Test | |
116 | + public void testListCategoriesInfo() { | |
117 | + List<Integer> cids = new ArrayList<Integer>(); | |
118 | + cids.add(1); | |
119 | + cids.add(2); | |
120 | + BaseOutput<List<Category>> output = categoryService.listCategoriesInfo(cids); | |
121 | + logger.info("Test category listCategoriesInfo:" + | |
122 | + JSON.toJSONString(output)); | |
123 | + } | |
124 | + | |
125 | + /** | |
126 | + * this method is 获取单个类目的属性与类目信息 | |
127 | + * | |
128 | + * @createTime 2014年7月22日 下午4:14:30 | |
129 | + * @author yangjianjun | |
130 | + */ | |
131 | + @Test | |
132 | + public void testGetCategoryInfo() { | |
133 | + BaseOutput<Category> output = categoryService.getCategoryInfo(75); | |
134 | + logger.info("Test category getCategoryInfo:" + | |
135 | + JSON.toJSONString(output)); | |
136 | + } | |
137 | + /** | |
138 | + * this method is 获取商品类目的SEO设置 | |
139 | + * @createTime 2014年7月22日 下午4:15:41 | |
140 | + * @author yangjianjun | |
141 | + */ | |
125 | 142 | // @Test |
126 | 143 | // public void testGetSeoInfo(){ |
127 | 144 | // BaseOutput<SeoInfo> output=categoryService.getSeoInfo(1); |
128 | 145 | // logger.info("Test category getSeoInfo:" + |
129 | 146 | // JSON.toJSONString(output)); |
130 | 147 | // } |
131 | - /** | |
132 | - * this method is 测试搜索分类 | |
133 | - * @createTime 2014年8月21日 下午4:14:10 | |
134 | - * @author yangjianjun | |
135 | - */ | |
136 | - @Test | |
137 | - public void testSearchCategoryInfo(){ | |
138 | - BaseOutput<List<Category>> output=categoryService.searchCategoryInfo("苔"); | |
139 | - logger.info(JSON.toJSONString(output)); | |
140 | - } | |
148 | + | |
149 | + /** | |
150 | + * this method is 测试搜索分类 | |
151 | + * | |
152 | + * @createTime 2014年8月21日 下午4:14:10 | |
153 | + * @author yangjianjun | |
154 | + */ | |
155 | + @Test | |
156 | + public void testSearchCategoryInfo() { | |
157 | + BaseOutput<List<Category>> output = categoryService.searchCategoryInfo("苔"); | |
158 | + logger.info(JSON.toJSONString(output)); | |
159 | + } | |
160 | + | |
161 | + @Test | |
162 | + public void testInster() { | |
163 | + CategoryInput input = new CategoryInput(); | |
164 | + input.setShopId(1); | |
165 | + input.setName("sdk"); | |
166 | + input.setParent(0); | |
167 | + BaseOutput<Object> objectBaseOutput = categoryService.insertCategory(input); | |
168 | + logger.info(JSON.toJSONString(objectBaseOutput)); | |
169 | + } | |
170 | + | |
171 | + @Test | |
172 | + public void testUpdate() { | |
173 | + CategoryInput input = new CategoryInput(); | |
174 | + input.setShopId(1); | |
175 | + input.setName("sd1"); | |
176 | + input.setParent(0); | |
177 | + input.setId(1456l); | |
178 | + BaseOutput<Object> objectBaseOutput = categoryService.updateCategory(input); | |
179 | + logger.info(JSON.toJSONString(objectBaseOutput)); | |
180 | + } | |
181 | + | |
182 | + | |
141 | 183 | } | ... | ... |
titan-sdk/src/test/java/com/diligrp/titan/sdk/TestSDK.java
... | ... | @@ -27,7 +27,7 @@ public class TestSDK { |
27 | 27 | TitanClient client = new TitanClient(accesskey, secretkey); |
28 | 28 | // Test CategoryService |
29 | 29 | CategoryService categoryService = client.getCategoryService(); |
30 | - BaseOutput<List<Category>> output = categoryService.listAll(0); | |
30 | + BaseOutput<List<Category>> output = categoryService.listAll(0,1); | |
31 | 31 | // logger.info("Test category listAll:" + |
32 | 32 | // JSON.toJSONString(output)); |
33 | 33 | // output = categoryService.listAll(0, 4); | ... | ... |
titan-web/src/main/java/com/dili/titan/domain/Category.java
... | ... | @@ -51,6 +51,9 @@ public class Category extends BaseDomain implements Comparable<Category> { |
51 | 51 | * 分类图标 |
52 | 52 | */ |
53 | 53 | private String icon; |
54 | + | |
55 | + private String productImg; | |
56 | + private String note; | |
54 | 57 | /** |
55 | 58 | * 交易场景 1.线上 2.线下 3,线上和线下 <br/> |
56 | 59 | * CategoryAttr类、Category类、Attribute类有常量表示 |
... | ... | @@ -269,6 +272,22 @@ public class Category extends BaseDomain implements Comparable<Category> { |
269 | 272 | this.jp = jp; |
270 | 273 | } |
271 | 274 | |
275 | + public String getProductImg() { | |
276 | + return productImg; | |
277 | + } | |
278 | + | |
279 | + public void setProductImg(String productImg) { | |
280 | + this.productImg = productImg; | |
281 | + } | |
282 | + | |
283 | + public String getNote() { | |
284 | + return note; | |
285 | + } | |
286 | + | |
287 | + public void setNote(String note) { | |
288 | + this.note = note; | |
289 | + } | |
290 | + | |
272 | 291 | @Override |
273 | 292 | public boolean equals(Object o) { |
274 | 293 | if (this == o) return true; | ... | ... |
titan-web/src/main/java/com/dili/titan/web/controller/CategoryController.java
... | ... | @@ -244,7 +244,7 @@ public class CategoryController extends BaseController { |
244 | 244 | */ |
245 | 245 | @RequestMapping(value = "/add", method = { RequestMethod.PUT }) |
246 | 246 | @ResponseBody |
247 | - public String doSave(Category category, Model view) throws Exception { | |
247 | + public String doSave(Category category, Model view, boolean use) throws Exception { | |
248 | 248 | long start = System.currentTimeMillis(); |
249 | 249 | JSONObject result = new JSONObject(); |
250 | 250 | Long cateId = null; | ... | ... |
titan-web/src/main/resources/sqlmap/Attribute.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/Attribute.xml
titan-web/src/main/resources/sqlmap/AttributeValue.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/AttributeValue.xml
titan-web/src/main/resources/sqlmap/Auth.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/Auth.xml
titan-web/src/main/resources/sqlmap/AuthScope.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/AuthScope.xml
titan-web/src/main/resources/sqlmap/Category.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/Category.xml
... | ... | @@ -51,8 +51,8 @@ |
51 | 51 | <!-- 插入category记录 --> |
52 | 52 | <insert id="insertEntry" parameterType="category" > |
53 | 53 | <![CDATA[ |
54 | - INSERT INTO category (id,`name`,jp,`alias`,parent,status,activate, `order`,icon,deal_type,ctime,utime) | |
55 | - VALUES (#{id},#{name},#{jp},#{alias},#{parent},#{status},#{activate}, #{order},#{icon}, #{dealType},now(),now()) | |
54 | + INSERT INTO category (id,`name`,jp,`alias`,parent,status,activate, `order`,icon,deal_type,ctime,utime,note,product_img) | |
55 | + VALUES (#{id},#{name},#{jp},#{alias},#{parent},#{status},#{activate}, #{order},#{icon}, #{dealType},now(),now(),#{note},#{productImg}) | |
56 | 56 | ]]> |
57 | 57 | </insert> |
58 | 58 | ... | ... |
titan-web/src/main/resources/sqlmap/CategoryAttr.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/CategoryAttr.xml
titan-web/src/main/resources/sqlmap/CategorySearchAttr.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/CategorySearchAttr.xml
titan-web/src/main/resources/sqlmap/CategorySeo.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/CategorySeo.xml
titan-web/src/main/resources/sqlmap/CategoryTemplete.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/CategoryTemplete.xml
titan-web/src/main/resources/sqlmap/Image.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/Image.xml
titan-web/src/main/resources/sqlmap/IndexCategory.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/IndexCategory.xml
titan-web/src/main/resources/sqlmap/ProductAuth.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductAuth.xml
titan-web/src/main/resources/sqlmap/ProductImg.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductImg.xml
titan-web/src/main/resources/sqlmap/ProductOffline.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductOffline.xml
titan-web/src/main/resources/sqlmap/ProductOfflineAttrValue.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductOfflineAttrValue.xml
titan-web/src/main/resources/sqlmap/ProductPop.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductPop.xml
titan-web/src/main/resources/sqlmap/ProductPopAttr.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductPopAttr.xml
titan-web/src/main/resources/sqlmap/ProductPopAttrValue.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductPopAttrValue.xml
titan-web/src/main/resources/sqlmap/ProductPopAudit.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductPopAudit.xml
titan-web/src/main/resources/sqlmap/ProductPopPriceRange.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductPopPriceRange.xml
titan-web/src/main/resources/sqlmap/ProductSearchCate.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductSearchCate.xml
titan-web/src/main/resources/sqlmap/ProductSearchSort.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductSearchSort.xml
titan-web/src/main/resources/sqlmap/ProductSkuPop.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductSkuPop.xml
titan-web/src/main/resources/sqlmap/ProductTemplete.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductTemplete.xml
titan-web/src/main/resources/sqlmap/ProductVideo.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductVideo.xml
titan-web/src/main/resources/sqlmap/SnapshotSku.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/SnapshotSku.xml
titan-web/src/main/resources/sqlmap/SystemConfigure.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/SystemConfigure.xml
titan-web/src/main/resources/sqlmap/Templete.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/Templete.xml
titan-web/src/main/resources/sqlmap/TitanSequence.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/TitanSequence.xml
titan-web/src/main/resources/sqlmap/Video.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/Video.xml
titan-web/src/main/resources/sqlmap/gq/Presale.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/gq/Presale.xml
titan-web/src/main/resources/sqlmap/gq/Purchase.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/gq/Purchase.xml
titan-web/src/main/resources/sqlmap/gq/Supply.xml renamed to titan-web/src/main/resources/com/diligrp/titan/dao/sqlmap/gq/Supply.xml
titan-web/src/main/resources/spring-config-dao.xml
... | ... | @@ -82,7 +82,7 @@ |
82 | 82 | <!-- 集成Mybatis --> |
83 | 83 | <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> |
84 | 84 | <property name="dataSource" ref="dynamicDataSource" /> |
85 | - <property name="configLocation" value="classpath:sqlmap-config.xml" /> | |
85 | + <property name="configLocation" value="classpath:com.diligrp.titan.dao.sqlmap-config.xml" /> | |
86 | 86 | </bean> |
87 | 87 | |
88 | 88 | <bean id="sqlTemplate" class="org.mybatis.spring.SqlSessionTemplate"> | ... | ... |
titan-web/src/main/resources/sqlmap-config.xml
... | ... | @@ -56,42 +56,42 @@ |
56 | 56 | |
57 | 57 | <!-- 映射文件路径 --> |
58 | 58 | <mappers> |
59 | - <mapper resource="sqlmap/Attribute.xml" /> | |
60 | - <mapper resource="sqlmap/AttributeValue.xml" /> | |
61 | - <mapper resource="sqlmap/Category.xml" /> | |
62 | - <mapper resource="sqlmap/CategoryAttr.xml" /> | |
63 | - <mapper resource="sqlmap/CategorySearchAttr.xml" /> | |
64 | - <mapper resource="sqlmap/CategorySeo.xml" /> | |
65 | - <mapper resource="sqlmap/ProductTemplete.xml" /> | |
66 | - <mapper resource="sqlmap/ProductPopAttr.xml" /> | |
67 | - <mapper resource="sqlmap/ProductPopAttrValue.xml" /> | |
68 | - <mapper resource="sqlmap/ProductImg.xml" /> | |
69 | - <mapper resource="sqlmap/ProductPop.xml" /> | |
70 | - <mapper resource="sqlmap/ProductPopAudit.xml" /> | |
71 | - <mapper resource="sqlmap/ProductSkuPop.xml" /> | |
72 | - <mapper resource="sqlmap/Templete.xml" /> | |
73 | - <mapper resource="sqlmap/SystemConfigure.xml" /> | |
74 | - <mapper resource="sqlmap/TitanSequence.xml" /> | |
75 | - <mapper resource="sqlmap/SnapshotSku.xml" /> | |
76 | - <mapper resource="sqlmap/CategoryTemplete.xml" /> | |
77 | - <mapper resource="sqlmap/Image.xml" /> | |
78 | - <mapper resource="sqlmap/ProductPopPriceRange.xml" /> | |
79 | - <mapper resource="sqlmap/ProductSearchSort.xml"/> | |
80 | - <mapper resource="sqlmap/ProductSearchCate.xml"/> | |
59 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Attribute.xml" /> | |
60 | + <mapper resource="com.diligrp.titan.dao.sqlmap/AttributeValue.xml" /> | |
61 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Category.xml" /> | |
62 | + <mapper resource="com.diligrp.titan.dao.sqlmap/CategoryAttr.xml" /> | |
63 | + <mapper resource="com.diligrp.titan.dao.sqlmap/CategorySearchAttr.xml" /> | |
64 | + <mapper resource="com.diligrp.titan.dao.sqlmap/CategorySeo.xml" /> | |
65 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductTemplete.xml" /> | |
66 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductPopAttr.xml" /> | |
67 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductPopAttrValue.xml" /> | |
68 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductImg.xml" /> | |
69 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductPop.xml" /> | |
70 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductPopAudit.xml" /> | |
71 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductSkuPop.xml" /> | |
72 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Templete.xml" /> | |
73 | + <mapper resource="com.diligrp.titan.dao.sqlmap/SystemConfigure.xml" /> | |
74 | + <mapper resource="com.diligrp.titan.dao.sqlmap/TitanSequence.xml" /> | |
75 | + <mapper resource="com.diligrp.titan.dao.sqlmap/SnapshotSku.xml" /> | |
76 | + <mapper resource="com.diligrp.titan.dao.sqlmap/CategoryTemplete.xml" /> | |
77 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Image.xml" /> | |
78 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductPopPriceRange.xml" /> | |
79 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductSearchSort.xml"/> | |
80 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductSearchCate.xml"/> | |
81 | 81 | |
82 | - <mapper resource="sqlmap/Auth.xml"/> | |
83 | - <mapper resource="sqlmap/AuthScope.xml"/> | |
84 | - <mapper resource="sqlmap/ProductAuth.xml"/> | |
85 | - <mapper resource="sqlmap/ProductVideo.xml"/> | |
86 | - <mapper resource="sqlmap/ProductOffline.xml"/> | |
87 | - <mapper resource="sqlmap/ProductOfflineAttrValue.xml"/> | |
88 | - <mapper resource="sqlmap/Video.xml"/> | |
82 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Auth.xml"/> | |
83 | + <mapper resource="com.diligrp.titan.dao.sqlmap/AuthScope.xml"/> | |
84 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductAuth.xml"/> | |
85 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductVideo.xml"/> | |
86 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductOffline.xml"/> | |
87 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductOfflineAttrValue.xml"/> | |
88 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Video.xml"/> | |
89 | 89 | |
90 | - <mapper resource="sqlmap/IndexCategory.xml"/> | |
90 | + <mapper resource="com.diligrp.titan.dao.sqlmap/IndexCategory.xml"/> | |
91 | 91 | |
92 | 92 | <!--供求需求--> |
93 | - <mapper resource="sqlmap/gq/Purchase.xml"/> | |
94 | - <mapper resource="sqlmap/gq/Supply.xml"/> | |
95 | - <mapper resource="sqlmap/gq/Presale.xml"/> | |
93 | + <mapper resource="com.diligrp.titan.dao.sqlmap/gq/Purchase.xml"/> | |
94 | + <mapper resource="com.diligrp.titan.dao.sqlmap/gq/Supply.xml"/> | |
95 | + <mapper resource="com.diligrp.titan.dao.sqlmap/gq/Presale.xml"/> | |
96 | 96 | </mappers> |
97 | 97 | </configuration> |
98 | 98 | \ No newline at end of file | ... | ... |
titan-web/src/main/sql/update.sql
0 → 100644
titan-web/src/main/webapp/WEB-INF/views/category/main.vm
... | ... | @@ -192,15 +192,15 @@ |
192 | 192 | </span> |
193 | 193 | </li> |
194 | 194 | <li> |
195 | - <span class="ar">分类图标:</span> | |
195 | + <span class="ar">分类图片:</span> | |
196 | 196 | <span class="iupld"> |
197 | - <input name="image" type="file" id="uploadAddCategoryImg" | |
197 | + <input name="image" type="file" id="uploadAddProductImg" | |
198 | 198 | value="上传图片" |
199 | 199 | accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp" |
200 | 200 | class="uploadFile uploadBtn"/> |
201 | 201 | <!-- 使用标签请放置在 input 标签之后 --> |
202 | - <img src="" id="addCategoryIcon" width="90" height="90"/> | |
203 | - <p id="error-add-category"></p> | |
202 | + <img src="" id="addProductIcon" width="90" height="90"/> | |
203 | + <p id="error-add-product"></p> | |
204 | 204 | </span> |
205 | 205 | </li> |
206 | 206 | <li> |
... | ... | @@ -225,7 +225,12 @@ |
225 | 225 | <li> |
226 | 226 | <span class="ar">商品描述:</span> |
227 | 227 | <span> |
228 | - <textarea cols="10" rows="10"></textarea> | |
228 | + <textarea id="c_desc" cols="10" rows="10"></textarea> | |
229 | + </span> | |
230 | + </li> | |
231 | + <li id="use_up"> | |
232 | + <span class="ar"><input type="checkbox" id="use"/>使用上级分类秒速和图片</span> | |
233 | + <span> | |
229 | 234 | </span> |
230 | 235 | </li> |
231 | 236 | </ul> | ... | ... |
titan-web/src/main/webapp/assets/products/category.js
... | ... | @@ -2,469 +2,483 @@ Namespace.register("XUI.Category"); |
2 | 2 | tree = null; |
3 | 3 | addCateTree = null; |
4 | 4 | |
5 | -(function(){ | |
6 | - XUI.Category = function(){ | |
7 | - return { | |
8 | - init : function(){ | |
9 | - var self = this; | |
10 | - self.bindEvent(); | |
11 | - self.initTree(); | |
12 | - }, | |
13 | - //初始化树 | |
14 | - initTree : function(){ | |
15 | - var self = this; | |
16 | - tree = new YAHOO.widget.TreeView("treeDiv1"); | |
17 | - tree.subscribe("expand", function(node) { | |
18 | - $(".ygtvcell").find(".tree-view").removeClass("ygtvfocus"); | |
19 | - $("#"+node.contentElId).find(".tree-view").addClass("ygtvfocus"); | |
20 | - initData(node.data.id); | |
21 | - $(".tree-view em[isLeaf=true]").live("click",function(){ | |
22 | - initData($(this).attr("id")); | |
23 | - }); | |
24 | - }); | |
25 | - tree.subscribe("collapse", function(node) { | |
26 | - $(".ygtvcell").find(".tree-view").removeClass("ygtvfocus"); | |
27 | - $("#"+node.contentElId).find(".tree-view").addClass("ygtvfocus"); | |
28 | - initData(node.data.id); | |
29 | - }); | |
30 | - | |
31 | - var node = new YAHOO.widget.TextNode("所有分类", tree.getRoot(), true); | |
32 | - node.data = {parent : 0, id : 0, name : "所有分类"}; | |
33 | - tree.setDynamicLoad(self.dynamic,1); | |
34 | - tree.draw(); | |
35 | - tree.getRoot().expand(); | |
36 | - }, | |
37 | - refreshTree : function(){ | |
38 | - var self = this; | |
39 | - tree.destroy(); | |
40 | - self.initTree(); | |
41 | - }, | |
42 | - //动态加载树 | |
43 | - dynamic : function(node, callback){ | |
44 | - var showDisabled = 1; | |
45 | - if($("#show-disabled-category").is(":checked")){ | |
46 | - showDisabled = 0; | |
47 | - } | |
48 | - var keyword = ""; | |
49 | - if($("#markIsSearchId").val() == 1){ | |
50 | - keyword = $("#search-keyword").val(); | |
51 | - } | |
52 | - $.ajax({ | |
53 | - type : "post", | |
54 | - data : {parent : node.data.id, status : 1, activate : showDisabled,keyword:keyword}, | |
55 | - url : "/titan/category/findByParent", | |
56 | - dataType : "json", | |
57 | - success : function(data){ | |
58 | - var list = data.list; | |
59 | - if(list!=null && list.length!=0){ | |
60 | - var maxOrder = list[list.length-1].order; | |
61 | - $.each(list, function(i, n){ | |
62 | - var activeT = "已激活"; | |
63 | - var activeF = "已停用"; | |
5 | +(function () { | |
6 | + XUI.Category = function () { | |
7 | + return { | |
8 | + init: function () { | |
9 | + var self = this; | |
10 | + self.bindEvent(); | |
11 | + self.initTree(); | |
12 | + }, | |
13 | + //初始化树 | |
14 | + initTree: function () { | |
15 | + var self = this; | |
16 | + tree = new YAHOO.widget.TreeView("treeDiv1"); | |
17 | + tree.subscribe("expand", function (node) { | |
18 | + $(".ygtvcell").find(".tree-view").removeClass("ygtvfocus"); | |
19 | + $("#" + node.contentElId).find(".tree-view").addClass("ygtvfocus"); | |
20 | + initData(node.data.id); | |
21 | + $(".tree-view em[isLeaf=true]").live("click", function () { | |
22 | + initData($(this).attr("id")); | |
23 | + }); | |
24 | + }); | |
25 | + tree.subscribe("collapse", function (node) { | |
26 | + $(".ygtvcell").find(".tree-view").removeClass("ygtvfocus"); | |
27 | + $("#" + node.contentElId).find(".tree-view").addClass("ygtvfocus"); | |
28 | + initData(node.data.id); | |
29 | + }); | |
30 | + | |
31 | + var node = new YAHOO.widget.TextNode("所有分类", tree.getRoot(), true); | |
32 | + node.data = {parent: 0, id: 0, name: "所有分类"}; | |
33 | + tree.setDynamicLoad(self.dynamic, 1); | |
34 | + tree.draw(); | |
35 | + tree.getRoot().expand(); | |
36 | + }, | |
37 | + refreshTree: function () { | |
38 | + var self = this; | |
39 | + tree.destroy(); | |
40 | + self.initTree(); | |
41 | + }, | |
42 | + //动态加载树 | |
43 | + dynamic: function (node, callback) { | |
44 | + var showDisabled = 1; | |
45 | + if ($("#show-disabled-category").is(":checked")) { | |
46 | + showDisabled = 0; | |
47 | + } | |
48 | + var keyword = ""; | |
49 | + if ($("#markIsSearchId").val() == 1) { | |
50 | + keyword = $("#search-keyword").val(); | |
51 | + } | |
52 | + $.ajax({ | |
53 | + type: "post", | |
54 | + data: {parent: node.data.id, status: 1, activate: showDisabled, keyword: keyword}, | |
55 | + url: "/titan/category/findByParent", | |
56 | + dataType: "json", | |
57 | + success: function (data) { | |
58 | + var list = data.list; | |
59 | + if (list != null && list.length != 0) { | |
60 | + var maxOrder = list[list.length - 1].order; | |
61 | + $.each(list, function (i, n) { | |
62 | + var activeT = "已激活"; | |
63 | + var activeF = "已停用"; | |
64 | 64 | var name = ""; |
65 | 65 | /*if(node.data.id==0){ |
66 | - name="<em>" + n.name + "</em>"; | |
67 | - }else{ | |
66 | + name="<em>" + n.name + "</em>"; | |
67 | + }else{ | |
68 | 68 | |
69 | - }*/ | |
69 | + }*/ | |
70 | 70 | var statusHtml = ""; |
71 | - if(data.categoryActive == true){ | |
72 | - statusHtml = "<a onClick='XUI.Category.toggleActivate(\""+ n.id +"\")'>" +(n.activate==0 ? activeF : activeT)+ "</a> </div>"; | |
73 | - }else{ | |
74 | - statusHtml = (n.activate==0 ? activeF : activeT)+ "</div>"; | |
71 | + if (data.categoryActive == true) { | |
72 | + statusHtml = "<a onClick='XUI.Category.toggleActivate(\"" + n.id + "\")'>" + (n.activate == 0 ? activeF : activeT) + "</a> </div>"; | |
73 | + } else { | |
74 | + statusHtml = (n.activate == 0 ? activeF : activeT) + "</div>"; | |
75 | 75 | } |
76 | - if(!n.isClick){ | |
77 | - statusHtml = (n.activate==0 ? activeF : activeT)+"</div>"; | |
76 | + if (!n.isClick) { | |
77 | + statusHtml = (n.activate == 0 ? activeF : activeT) + "</div>"; | |
78 | 78 | } |
79 | 79 | var isLastHtml = ""; |
80 | - if(!n.isLast && data.addCategory == true){ | |
81 | - isLastHtml = "<a href='#cate-fancy' id='addCateFancyId' onClick='XUI.Category.treeOperation(\""+n.id+"\",\"" + n.name+"\", \"add\")' " + | |
82 | - " class='btn btn-minier'>添加</a>"; | |
83 | - } | |
84 | - var showDeleteBtn=""; | |
85 | - if(data.deleteCategory == true){ | |
86 | - showDeleteBtn = "<a onClick='XUI.Category.treeOperation(\""+n.id+"\",\"" + n.name+"\", \"delete\")' class='btn btn-minier' >删除</a>"; | |
87 | - } | |
88 | - var showCateOrder = ""; | |
89 | - if(data.categoryOrder){ | |
90 | - showCateOrder = "<img id='u1_img' class='img' title='向下排序' alt='向下排序' " + | |
91 | - "onClick='XUI.Category.treeOperation(\""+n.id+"\",\"" + n.name+"\",\"down\");' style='cursor: pointer;' src='/assets/image/u61.png'>"+ | |
92 | - "<img id='u1_img' class='img' title='向上排序' alt='向上排序' " + | |
93 | - "onClick='XUI.Category.treeOperation(\""+n.id+"\",\"" + n.name+"\",\"up\");' style='cursor: pointer;' src='/assets/image/u140.png'></span>"; | |
94 | - } | |
95 | - var node1 =new YAHOO.widget.HTMLNode("<div class='tree-view'><em isLeaf="+n.isClick+" id="+n.id+">" + n.name+"("+n.id+")" + "</em><span>" + | |
96 | - isLastHtml+showDeleteBtn+showCateOrder+ | |
80 | + if (!n.isLast && data.addCategory == true) { | |
81 | + isLastHtml = "<a href='#cate-fancy' id='addCateFancyId' onClick='XUI.Category.treeOperation(\"" + n.id + "\",\"" + n.name + "\", \"add\", \"" + n.level + "\")' " + | |
82 | + " class='btn btn-minier'>添加</a>"; | |
83 | + } | |
84 | + var showDeleteBtn = ""; | |
85 | + if (data.deleteCategory == true) { | |
86 | + showDeleteBtn = "<a onClick='XUI.Category.treeOperation(\"" + n.id + "\",\"" + n.name + "\", \"delete\")' class='btn btn-minier' >删除</a>"; | |
87 | + } | |
88 | + var showCateOrder = ""; | |
89 | + if (data.categoryOrder) { | |
90 | + showCateOrder = "<img id='u1_img' class='img' title='向下排序' alt='向下排序' " + | |
91 | + "onClick='XUI.Category.treeOperation(\"" + n.id + "\",\"" + n.name + "\",\"down\");' style='cursor: pointer;' src='/assets/image/u61.png'>" + | |
92 | + "<img id='u1_img' class='img' title='向上排序' alt='向上排序' " + | |
93 | + "onClick='XUI.Category.treeOperation(\"" + n.id + "\",\"" + n.name + "\",\"up\");' style='cursor: pointer;' src='/assets/image/u140.png'></span>"; | |
94 | + } | |
95 | + var node1 = new YAHOO.widget.HTMLNode("<div class='tree-view'><em isLeaf=" + n.isClick + " id=" + n.id + ">" + n.name + "(" + n.id + ")" + "</em><span>" + | |
96 | + isLastHtml + showDeleteBtn + showCateOrder + | |
97 | 97 | statusHtml, node, false); |
98 | - node1.data = {parent : n.parent, name : n.name, id : n.id, order : n.order,maxOrder:maxOrder}; | |
98 | + node1.data = { | |
99 | + parent: n.parent, | |
100 | + name: n.name, | |
101 | + id: n.id, | |
102 | + order: n.order, | |
103 | + maxOrder: maxOrder | |
104 | + }; | |
99 | 105 | // if(n.isClick){ |
100 | 106 | // node1.isLeaf=true; |
101 | 107 | // } |
102 | - node1.id = n.id; | |
103 | - }); | |
104 | - } | |
105 | - callback(); | |
106 | - } | |
107 | - }); | |
108 | - }, | |
109 | - toggleActivate : function(id){ | |
110 | - var self = this; | |
111 | - $.ajax({ | |
112 | - type : "post", | |
113 | - url : "/titan/category/toggleActivate", | |
114 | - data : {id : id}, | |
115 | - dataType : "json", | |
116 | - success : function(data){ | |
117 | - if(data.success){ | |
118 | - XUI.window.alert(data.msg, function(){ | |
119 | - self.refreshTree(); | |
120 | - }); | |
121 | - }else{ | |
122 | - XUI.window.alert(data.msg); | |
123 | - } | |
124 | - }, | |
125 | - error : function(){ | |
126 | - XUI.window.alert("网络错误,请稍后重试"); | |
127 | - } | |
128 | - }); | |
129 | - }, | |
130 | - //树操作 | |
131 | - treeOperation : function(id, parentName, operation){ | |
132 | - var self = this; | |
133 | - var node= tree.getNodeByProperty("id", id); | |
134 | - if(operation =="add"){ | |
135 | - XUI.Category.common.addCategory(id,parentName); | |
136 | - //self.refreshTree(); | |
137 | - } | |
138 | - if(operation =="up"){ | |
139 | - if(node.data.order == 0){ | |
140 | - XUI.window.alert("分类已经处于最顶端,无法上移"); | |
141 | - return false; | |
142 | - } | |
143 | - var activate = 0; | |
144 | - if(!document.getElementById("show-disabled-category").checked){ | |
145 | - activate = 1; | |
146 | - } | |
147 | - self.order({id : id, operation : "up",activate:activate}); | |
148 | - } | |
149 | - if(operation == "down"){ | |
150 | - if(node.data.order == (node.data.maxOrder )){ | |
151 | - XUI.window.alert("分类已经处于最末端,无法下移"); | |
152 | - return false; | |
153 | - } | |
154 | - var activate = 0; | |
155 | - if(!document.getElementById("show-disabled-category").checked){ | |
156 | - activate = 1; | |
157 | - } | |
158 | - self.order({id : id , operation : "down",activate:activate}); | |
159 | - } | |
160 | - if(operation == "delete"){ | |
161 | - XUI.Category.common.deleteCategory(id); | |
162 | - } | |
163 | - }, | |
164 | - bindEvent : function(){ | |
165 | - var self = this; | |
166 | - | |
167 | - //点击添加一级分类按钮 | |
168 | - $("#add-first-category").unbind().bind("click", function(){ | |
169 | - XUI.Category.common.addFirstCategory(""); | |
170 | - }); | |
171 | - | |
172 | - //显示未激活分类 | |
173 | - $("#show-disabled-category").unbind().bind("click", function(){ | |
174 | - self.refreshTree(); | |
175 | - }); | |
176 | - //搜索按钮 | |
177 | - $("#search-category-button").unbind().bind("click", function(){ | |
178 | - $("#markIsSearchId").val(1); | |
179 | - self.refreshTree(); | |
180 | - }); | |
181 | - }, | |
182 | - //分类排序 | |
183 | - order : function(param){ | |
184 | - var self = this; | |
185 | - $.ajax({ | |
186 | - type : "post", | |
187 | - url : "/titan/category/changeCateOrder", | |
188 | - dataType : "json", | |
189 | - data : param, | |
190 | - success : function(data){ | |
191 | - console.log(data); | |
192 | - if(data){ | |
193 | - if(data.success){ | |
194 | - XUI.window.alert(data.msg, function(){ | |
195 | - self.refreshTree(); | |
196 | - }); | |
197 | - }else{ | |
198 | - XUI.window.alert(data.msg); | |
199 | - } | |
200 | - } | |
201 | - }, | |
202 | - error : function(){ | |
203 | - XUI.window.alert("网络错误,请稍后重试"); | |
204 | - } | |
205 | - }); | |
206 | - } | |
207 | - }; | |
208 | - }(); | |
209 | - | |
210 | - //分类模块公共方法 | |
211 | - XUI.Category.common = function(){ | |
212 | - return { | |
213 | - //删除分类 | |
214 | - deleteCategory : function(id){ | |
215 | - XUI.window.confirm("确定删除该类别吗?","确认删除", function(){ | |
216 | - $.ajax({ | |
217 | - type : "delete", | |
218 | - dataType : "json", | |
219 | - url : "/titan/category/delete/" + id, | |
220 | - success : function(data){ | |
221 | - if(data.success){ | |
222 | - XUI.window.alert(data.msg, function(){ | |
223 | - window.location.href = "/titan/category"; | |
224 | - }); | |
225 | - }else{ | |
226 | - XUI.window.alert(data.msg); | |
227 | - } | |
228 | - }, | |
229 | - error : function(){ | |
230 | - XUI.window.alert("网络错误,请稍后重试"); | |
231 | - } | |
232 | - }); | |
233 | - }); | |
234 | - }, | |
235 | - //激活 | |
236 | - toggleActivate : function(id){ | |
237 | - $.ajax({ | |
238 | - type : "post", | |
239 | - url : "/titan/category/toggleActivate", | |
240 | - data : {id : id}, | |
241 | - dataType : "json", | |
242 | - success : function(data){ | |
243 | - if(data.success){ | |
244 | - XUI.window.alert(data.msg, function(){ | |
245 | - window.location.href = "/titan/category"; | |
246 | - }); | |
247 | - }else{ | |
248 | - XUI.window.alert(data.msg); | |
249 | - } | |
250 | - }, | |
251 | - error : function(){ | |
252 | - XUI.window.alert("网络错误,请稍后重试"); | |
253 | - } | |
254 | - }); | |
255 | - }, | |
256 | - //添加分类 | |
257 | - addCategory : function(id, parentName){ | |
258 | - $("input[name='add-cate-name']").val(""); | |
259 | - $("input[name='add-cate-alias']").val(""); | |
260 | - $("input[name='add-cate-parent']").val(""); | |
261 | - $("#addCategoryIcon").attr("src",""); | |
262 | - $("#addCateFancyId").fancybox({ | |
263 | - helpers: { | |
264 | - overlay: { | |
265 | - closeClick: false | |
266 | - } | |
267 | - }, | |
268 | - beforeShow: function(){ | |
269 | - if(parentName == null || parentName == ""){ | |
270 | - parentName = "无"; | |
271 | - } | |
272 | - $("input[name='add-cate-parent']").val(parentName); | |
273 | - $("input[name='firstFlag']").val(id); | |
274 | - } | |
275 | - }); | |
276 | - }, | |
277 | - //添加分类 | |
278 | - addFirstCategory : function(parentName){ | |
279 | - $("input[name='add-cate-name']").val(""); | |
280 | - $("input[name='add-cate-alias']").val(""); | |
281 | - $("input[name='add-cate-parent']").val(""); | |
282 | - $("#addCategoryIcon").attr("src",""); | |
283 | - $("#add-first-category").fancybox({ | |
284 | - helpers: { | |
285 | - overlay: { | |
286 | - closeClick: false | |
287 | - } | |
288 | - }, | |
289 | - beforeShow: function(){ | |
290 | - if(parentName == null || parentName == ""){ | |
291 | - parentName = "无"; | |
292 | - } | |
293 | - $("input[name='add-cate-parent']").val(parentName); | |
294 | - $("input[name='firstFlag']").val("0"); | |
295 | - } | |
296 | - }); | |
297 | - } | |
298 | - }; | |
299 | - }(); | |
300 | - | |
301 | - //添加和修改分类页面对象 | |
302 | - XUI.Category.add = function(){ | |
303 | - return { | |
304 | - init : function(){ | |
305 | - var self = this; | |
306 | - self.bindEvent(); | |
307 | - }, | |
308 | - //绑定事件 | |
309 | - bindEvent : function(){ | |
310 | - var self = this; | |
311 | - //修改分类信息 | |
312 | - $("#save-category-item").unbind().bind("click",function(){ | |
313 | - self.submit(); | |
314 | - }); | |
315 | - }, | |
316 | - //提交保存 | |
317 | - submit : function(){ | |
318 | - var parent = $("input[name='parent']").val(); | |
319 | - var name = $("input[name='category-name']").val(); | |
320 | - if(name!=""){ | |
108 | + node1.id = n.id; | |
109 | + }); | |
110 | + } | |
111 | + callback(); | |
112 | + } | |
113 | + }); | |
114 | + }, | |
115 | + toggleActivate: function (id) { | |
116 | + var self = this; | |
117 | + $.ajax({ | |
118 | + type: "post", | |
119 | + url: "/titan/category/toggleActivate", | |
120 | + data: {id: id}, | |
121 | + dataType: "json", | |
122 | + success: function (data) { | |
123 | + if (data.success) { | |
124 | + XUI.window.alert(data.msg, function () { | |
125 | + self.refreshTree(); | |
126 | + }); | |
127 | + } else { | |
128 | + XUI.window.alert(data.msg); | |
129 | + } | |
130 | + }, | |
131 | + error: function () { | |
132 | + XUI.window.alert("网络错误,请稍后重试"); | |
133 | + } | |
134 | + }); | |
135 | + }, | |
136 | + //树操作 | |
137 | + treeOperation: function (id, parentName, operation, level) { | |
138 | + if (level == 1) { | |
139 | + $("#use_up").hide(); | |
140 | + $("#use").attr("checked", false); | |
141 | + } | |
142 | + | |
143 | + if (level == 2) { | |
144 | + $("#use_up").show(); | |
145 | + $("#use").attr("checked", false); | |
146 | + } | |
147 | + var self = this; | |
148 | + var node = tree.getNodeByProperty("id", id); | |
149 | + if (operation == "add") { | |
150 | + XUI.Category.common.addCategory(id, parentName); | |
151 | + //self.refreshTree(); | |
152 | + } | |
153 | + if (operation == "up") { | |
154 | + if (node.data.order == 0) { | |
155 | + XUI.window.alert("分类已经处于最顶端,无法上移"); | |
156 | + return false; | |
157 | + } | |
158 | + var activate = 0; | |
159 | + if (!document.getElementById("show-disabled-category").checked) { | |
160 | + activate = 1; | |
161 | + } | |
162 | + self.order({id: id, operation: "up", activate: activate}); | |
163 | + } | |
164 | + if (operation == "down") { | |
165 | + if (node.data.order == (node.data.maxOrder )) { | |
166 | + XUI.window.alert("分类已经处于最末端,无法下移"); | |
167 | + return false; | |
168 | + } | |
169 | + var activate = 0; | |
170 | + if (!document.getElementById("show-disabled-category").checked) { | |
171 | + activate = 1; | |
172 | + } | |
173 | + self.order({id: id, operation: "down", activate: activate}); | |
174 | + } | |
175 | + if (operation == "delete") { | |
176 | + XUI.Category.common.deleteCategory(id); | |
177 | + } | |
178 | + }, | |
179 | + bindEvent: function () { | |
180 | + var self = this; | |
181 | + | |
182 | + //点击添加一级分类按钮 | |
183 | + $("#add-first-category").unbind().bind("click", function () { | |
184 | + XUI.Category.common.addFirstCategory(""); | |
185 | + }); | |
186 | + | |
187 | + //显示未激活分类 | |
188 | + $("#show-disabled-category").unbind().bind("click", function () { | |
189 | + self.refreshTree(); | |
190 | + }); | |
191 | + //搜索按钮 | |
192 | + $("#search-category-button").unbind().bind("click", function () { | |
193 | + $("#markIsSearchId").val(1); | |
194 | + self.refreshTree(); | |
195 | + }); | |
196 | + }, | |
197 | + //分类排序 | |
198 | + order: function (param) { | |
199 | + var self = this; | |
200 | + $.ajax({ | |
201 | + type: "post", | |
202 | + url: "/titan/category/changeCateOrder", | |
203 | + dataType: "json", | |
204 | + data: param, | |
205 | + success: function (data) { | |
206 | + console.log(data); | |
207 | + if (data) { | |
208 | + if (data.success) { | |
209 | + XUI.window.alert(data.msg, function () { | |
210 | + self.refreshTree(); | |
211 | + }); | |
212 | + } else { | |
213 | + XUI.window.alert(data.msg); | |
214 | + } | |
215 | + } | |
216 | + }, | |
217 | + error: function () { | |
218 | + XUI.window.alert("网络错误,请稍后重试"); | |
219 | + } | |
220 | + }); | |
221 | + } | |
222 | + }; | |
223 | + }(); | |
224 | + | |
225 | + //分类模块公共方法 | |
226 | + XUI.Category.common = function () { | |
227 | + return { | |
228 | + //删除分类 | |
229 | + deleteCategory: function (id) { | |
230 | + XUI.window.confirm("确定删除该类别吗?", "确认删除", function () { | |
231 | + $.ajax({ | |
232 | + type: "delete", | |
233 | + dataType: "json", | |
234 | + url: "/titan/category/delete/" + id, | |
235 | + success: function (data) { | |
236 | + if (data.success) { | |
237 | + XUI.window.alert(data.msg, function () { | |
238 | + window.location.href = "/titan/category"; | |
239 | + }); | |
240 | + } else { | |
241 | + XUI.window.alert(data.msg); | |
242 | + } | |
243 | + }, | |
244 | + error: function () { | |
245 | + XUI.window.alert("网络错误,请稍后重试"); | |
246 | + } | |
247 | + }); | |
248 | + }); | |
249 | + }, | |
250 | + //激活 | |
251 | + toggleActivate: function (id) { | |
252 | + $.ajax({ | |
253 | + type: "post", | |
254 | + url: "/titan/category/toggleActivate", | |
255 | + data: {id: id}, | |
256 | + dataType: "json", | |
257 | + success: function (data) { | |
258 | + if (data.success) { | |
259 | + XUI.window.alert(data.msg, function () { | |
260 | + window.location.href = "/titan/category"; | |
261 | + }); | |
262 | + } else { | |
263 | + XUI.window.alert(data.msg); | |
264 | + } | |
265 | + }, | |
266 | + error: function () { | |
267 | + XUI.window.alert("网络错误,请稍后重试"); | |
268 | + } | |
269 | + }); | |
270 | + }, | |
271 | + //添加分类 | |
272 | + addCategory: function (id, parentName) { | |
273 | + $("input[name='add-cate-name']").val(""); | |
274 | + $("input[name='add-cate-alias']").val(""); | |
275 | + $("input[name='add-cate-parent']").val(""); | |
276 | + $("#addCategoryIcon").attr("src", ""); | |
277 | + $("#addCateFancyId").fancybox({ | |
278 | + helpers: { | |
279 | + overlay: { | |
280 | + closeClick: false | |
281 | + } | |
282 | + }, | |
283 | + beforeShow: function () { | |
284 | + if (parentName == null || parentName == "") { | |
285 | + parentName = "无"; | |
286 | + } | |
287 | + $("input[name='add-cate-parent']").val(parentName); | |
288 | + $("input[name='firstFlag']").val(id); | |
289 | + } | |
290 | + }); | |
291 | + }, | |
292 | + //添加分类 | |
293 | + addFirstCategory: function (parentName) { | |
294 | + $("input[name='add-cate-name']").val(""); | |
295 | + $("input[name='add-cate-alias']").val(""); | |
296 | + $("input[name='add-cate-parent']").val(""); | |
297 | + $("#addCategoryIcon").attr("src", ""); | |
298 | + $("#add-first-category").fancybox({ | |
299 | + helpers: { | |
300 | + overlay: { | |
301 | + closeClick: false | |
302 | + } | |
303 | + }, | |
304 | + beforeShow: function () { | |
305 | + if (parentName == null || parentName == "") { | |
306 | + parentName = "无"; | |
307 | + } | |
308 | + $("input[name='add-cate-parent']").val(parentName); | |
309 | + $("input[name='firstFlag']").val("0"); | |
310 | + } | |
311 | + }); | |
312 | + } | |
313 | + }; | |
314 | + }(); | |
315 | + | |
316 | + //添加和修改分类页面对象 | |
317 | + XUI.Category.add = function () { | |
318 | + return { | |
319 | + init: function () { | |
320 | + var self = this; | |
321 | + self.bindEvent(); | |
322 | + }, | |
323 | + //绑定事件 | |
324 | + bindEvent: function () { | |
325 | + var self = this; | |
326 | + //修改分类信息 | |
327 | + $("#save-category-item").unbind().bind("click", function () { | |
328 | + self.submit(); | |
329 | + }); | |
330 | + }, | |
331 | + //提交保存 | |
332 | + submit: function () { | |
333 | + var parent = $("input[name='parent']").val(); | |
334 | + var name = $("input[name='category-name']").val(); | |
335 | + if (name != "") { | |
321 | 336 | name = name.replace(/(^\s*)|(\s*$)/g, ""); |
322 | 337 | } |
323 | - if(name.length > 20){ | |
324 | - XUI.window.alert("分类名字长度不能超过20个字符!"); | |
325 | - return false; | |
338 | + if (name.length > 20) { | |
339 | + XUI.window.alert("分类名字长度不能超过20个字符!"); | |
340 | + return false; | |
326 | 341 | } |
327 | - $("input[name='category-name']").val(name); | |
342 | + $("input[name='category-name']").val(name); | |
328 | 343 | var alias = $("input[name='category-alias']").val(); |
329 | - if(alias!=""){ | |
330 | - alias = alias.replace(/(^\s*)|(\s*$)/g, "").replaceAll(",",","); | |
344 | + if (alias != "") { | |
345 | + alias = alias.replace(/(^\s*)|(\s*$)/g, "").replaceAll(",", ","); | |
346 | + } | |
347 | + if (alias.length > 100) { | |
348 | + XUI.window.alert("分类别名长度不能超过100个字符!"); | |
349 | + return false; | |
331 | 350 | } |
332 | - if(alias.length > 100){ | |
333 | - XUI.window.alert("分类别名长度不能超过100个字符!"); | |
334 | - return false; | |
335 | - } | |
336 | 351 | var icon = $("#categoryIcon").attr("src"); |
337 | - if(icon==""){ | |
352 | + if (icon == "") { | |
338 | 353 | XUI.window.alert("分类图标必须上传!"); |
339 | 354 | return false; |
340 | 355 | } |
341 | - // $("input[name='category-alias']").val(alias); | |
342 | - var regex=/^[0-9a-zA-Z\u4e00-\u9fa5/()()&《》【】\+=\]\[]+$/g; | |
343 | - var message="请输入合法的分类名称(中文汉字、英文字母(含大小写)、数字、“/,(),&,《》,【】,[],=,+”)"; | |
344 | - var message1="请输入合法的分类别名(中文汉字、英文字母(含大小写)、数字、“/,(),&,《》,【】,[],=,+”)"; | |
345 | - var regex1=/^[0-9a-zA-Z\u4e00-\u9fa5/()()&《》【】\+=\]\[,]+$/g; | |
346 | - if (name=="" || !regex.test(name)) { | |
356 | + // $("input[name='category-alias']").val(alias); | |
357 | + var regex = /^[0-9a-zA-Z\u4e00-\u9fa5/()()&《》【】\+=\]\[]+$/g; | |
358 | + var message = "请输入合法的分类名称(中文汉字、英文字母(含大小写)、数字、“/,(),&,《》,【】,[],=,+”)"; | |
359 | + var message1 = "请输入合法的分类别名(中文汉字、英文字母(含大小写)、数字、“/,(),&,《》,【】,[],=,+”)"; | |
360 | + var regex1 = /^[0-9a-zA-Z\u4e00-\u9fa5/()()&《》【】\+=\]\[,]+$/g; | |
361 | + if (name == "" || !regex.test(name)) { | |
347 | 362 | XUI.window.alert(message); |
348 | - return false; | |
349 | - } | |
350 | - if (alias!=""&&!regex1.test(alias)) { | |
363 | + return false; | |
364 | + } | |
365 | + if (alias != "" && !regex1.test(alias)) { | |
351 | 366 | XUI.window.alert(message1); |
352 | 367 | return false; |
353 | 368 | } |
354 | - var id = $("input[name='id']").val(); | |
355 | - $.ajax({ | |
356 | - type : "post", | |
357 | - dataType : "json", | |
358 | - url : "/titan/category/editSave", | |
359 | - data : { | |
360 | - name : name, | |
361 | - alias : alias, | |
362 | - id : id, | |
363 | - parent :parent, | |
364 | - icon :icon | |
365 | - }, | |
366 | - success : function(data){ | |
367 | - console.log(data); | |
368 | - if(data){ | |
369 | - if(data.success){ | |
370 | - XUI.window.alert(data.msg, function(){ | |
371 | - window.location.href = "/titan/category"; | |
372 | - }); | |
373 | - }else{ | |
374 | - XUI.window.alert(data.msg); | |
375 | - } | |
376 | - } | |
377 | - }, | |
378 | - error : function(){ | |
379 | - XUI.window.alert("网络错误,请稍后重试"); | |
380 | - } | |
381 | - }); | |
382 | - }, | |
383 | - | |
369 | + var id = $("input[name='id']").val(); | |
370 | + $.ajax({ | |
371 | + type: "post", | |
372 | + dataType: "json", | |
373 | + url: "/titan/category/editSave", | |
374 | + data: { | |
375 | + name: name, | |
376 | + alias: alias, | |
377 | + id: id, | |
378 | + parent: parent, | |
379 | + icon: icon | |
380 | + }, | |
381 | + success: function (data) { | |
382 | + console.log(data); | |
383 | + if (data) { | |
384 | + if (data.success) { | |
385 | + XUI.window.alert(data.msg, function () { | |
386 | + window.location.href = "/titan/category"; | |
387 | + }); | |
388 | + } else { | |
389 | + XUI.window.alert(data.msg); | |
390 | + } | |
391 | + } | |
392 | + }, | |
393 | + error: function () { | |
394 | + XUI.window.alert("网络错误,请稍后重试"); | |
395 | + } | |
396 | + }); | |
397 | + }, | |
398 | + | |
384 | 399 | }; |
385 | - }(); | |
386 | - | |
387 | - //seo的修改 | |
388 | - XUI.Category.seo = function(){ | |
389 | - return { | |
390 | - init : function(){ | |
391 | - var self = this; | |
392 | - self.bindEvent(); | |
393 | - }, | |
394 | - bindEvent : function(){ | |
400 | + }(); | |
401 | + | |
402 | + //seo的修改 | |
403 | + XUI.Category.seo = function () { | |
404 | + return { | |
405 | + init: function () { | |
406 | + var self = this; | |
407 | + self.bindEvent(); | |
408 | + }, | |
409 | + bindEvent: function () { | |
395 | 410 | var self = this; |
396 | - $("#submit-seo-info").unbind().bind("click", function(){ | |
411 | + $("#submit-seo-info").unbind().bind("click", function () { | |
397 | 412 | self.submit(); |
398 | 413 | }); |
399 | - $("#resetCategoryData").unbind().bind("click", function(){ | |
400 | - resetCategoryData(); | |
414 | + $("#resetCategoryData").unbind().bind("click", function () { | |
415 | + resetCategoryData(); | |
416 | + }); | |
417 | + $("#resetCategorySeoData").unbind().bind("click", function () { | |
418 | + resetCategoryData(); | |
419 | + }); | |
420 | + $("#clearSearchDataId").unbind().bind("click", function () { | |
421 | + $("#search-keyword").val(""); | |
401 | 422 | }); |
402 | - $("#resetCategorySeoData").unbind().bind("click", function(){ | |
403 | - resetCategoryData(); | |
404 | - }); | |
405 | - $("#clearSearchDataId").unbind().bind("click", function(){ | |
406 | - $("#search-keyword").val(""); | |
407 | - }); | |
408 | 423 | }, |
409 | - submit : function(){ | |
410 | - var param = new Object(); | |
411 | - param.cateId = $("#categoryId").val(); | |
412 | - param.seoTitle = $("#seo-title").val(); | |
413 | - if(param.seoTitle.trim()==""){ | |
424 | + submit: function () { | |
425 | + var param = new Object(); | |
426 | + param.cateId = $("#categoryId").val(); | |
427 | + param.seoTitle = $("#seo-title").val(); | |
428 | + if (param.seoTitle.trim() == "") { | |
414 | 429 | XUI.window.alert("请输入title"); |
415 | 430 | return false; |
416 | 431 | } |
417 | - if(param.seoTitle.length > 50){ | |
418 | - XUI.window.alert("seo的title长度不能超过50个字符!"); | |
419 | - return false; | |
432 | + if (param.seoTitle.length > 50) { | |
433 | + XUI.window.alert("seo的title长度不能超过50个字符!"); | |
434 | + return false; | |
420 | 435 | } |
421 | - param.seoKeyword = $("#seo-keyword").val(); | |
422 | - if(param.seoKeyword.trim()==""){ | |
436 | + param.seoKeyword = $("#seo-keyword").val(); | |
437 | + if (param.seoKeyword.trim() == "") { | |
423 | 438 | XUI.window.alert("请输入keyword"); |
424 | 439 | return false; |
425 | 440 | } |
426 | - if(param.seoKeyword.length > 50){ | |
427 | - XUI.window.alert("seo的seoKeyword长度不能超过50个字符!"); | |
428 | - return false; | |
441 | + if (param.seoKeyword.length > 50) { | |
442 | + XUI.window.alert("seo的seoKeyword长度不能超过50个字符!"); | |
443 | + return false; | |
429 | 444 | } |
430 | - param.seoDesc = $("#seo-desc").val(); | |
431 | - if(param.seoDesc.trim()==""){ | |
445 | + param.seoDesc = $("#seo-desc").val(); | |
446 | + if (param.seoDesc.trim() == "") { | |
432 | 447 | XUI.window.alert("请输入description"); |
433 | 448 | return false; |
434 | 449 | } |
435 | - if(param.seoDesc.length > 50){ | |
436 | - XUI.window.alert("seo的seoDesc长度不能超过50个字符!"); | |
437 | - return false; | |
450 | + if (param.seoDesc.length > 50) { | |
451 | + XUI.window.alert("seo的seoDesc长度不能超过50个字符!"); | |
452 | + return false; | |
438 | 453 | } |
439 | - console.log(JSON.stringify(param)); | |
440 | - $.ajax({ | |
441 | - type : "put", | |
442 | - url : "/titan/category/seo", | |
443 | - dataType : "json", | |
444 | - data : param, | |
445 | - success : function(data){ | |
446 | - console.log(data); | |
447 | - if(data){ | |
448 | - if(data.success){ | |
449 | - XUI.window.alert(data.msg, function(){ | |
450 | - window.location.href = "/titan/category"; | |
451 | - }); | |
452 | - }else{ | |
453 | - XUI.window.alert(data.msg); | |
454 | - } | |
455 | - } | |
456 | - }, | |
457 | - error : function(){ | |
458 | - XUI.window.alert("网络错误,请稍后重试"); | |
459 | - } | |
460 | - }); | |
461 | - } | |
462 | - }; | |
463 | - }(); | |
464 | - | |
454 | + console.log(JSON.stringify(param)); | |
455 | + $.ajax({ | |
456 | + type: "put", | |
457 | + url: "/titan/category/seo", | |
458 | + dataType: "json", | |
459 | + data: param, | |
460 | + success: function (data) { | |
461 | + console.log(data); | |
462 | + if (data) { | |
463 | + if (data.success) { | |
464 | + XUI.window.alert(data.msg, function () { | |
465 | + window.location.href = "/titan/category"; | |
466 | + }); | |
467 | + } else { | |
468 | + XUI.window.alert(data.msg); | |
469 | + } | |
470 | + } | |
471 | + }, | |
472 | + error: function () { | |
473 | + XUI.window.alert("网络错误,请稍后重试"); | |
474 | + } | |
475 | + }); | |
476 | + } | |
477 | + }; | |
478 | + }(); | |
479 | + | |
465 | 480 | //验证图片 |
466 | - var checkImage = function (elementId, maxsize) | |
467 | - { | |
481 | + var checkImage = function (elementId, maxsize) { | |
468 | 482 | var ua = window.navigator.userAgent.toLowerCase(); |
469 | 483 | var obj_file = document.getElementById(elementId); |
470 | 484 | var AllImgExt = ".jpg|.jpeg|.gif|.bmp|.png|"; |
... | ... | @@ -487,601 +501,643 @@ addCateTree = null; |
487 | 501 | } |
488 | 502 | return true; |
489 | 503 | }; |
490 | - //分类图片上传 | |
491 | - $('#uploadCategoryImg').live('change', function(){ | |
492 | - if(!checkImage("uploadCategoryImg", 1024 * 100)){ | |
493 | - return false; | |
494 | - } | |
495 | - //图片上传 | |
496 | - $.ajaxFileUpload({ | |
497 | - url: "/common/uploadCategoryIcon", | |
498 | - secureuri: false, | |
499 | - fileElementId: $(this), | |
500 | - dataType: 'json', | |
501 | - success: function (data) { | |
502 | - var errorMsg = null; | |
503 | - console.log(data); | |
504 | - if (data.success) { | |
505 | - $("#categoryIcon").attr("src",data.message); | |
506 | - } else { | |
507 | - errorMsg = result.message; | |
508 | - } | |
509 | - if (errorMsg) { | |
510 | - $('#error-place-category').css({"color": "red"}).html(errorMsg); | |
511 | - } | |
512 | - }, | |
513 | - error: function (data) { | |
514 | - console.log(data); | |
515 | - $('#error-place-category').css({"color": "red"}).html(data.message); | |
516 | - } | |
517 | - }); | |
518 | - }); | |
519 | - $('#uploadAddCategoryImg').live('change', function(){ | |
520 | - if(!checkImage("uploadAddCategoryImg", 1024 * 100)){ | |
521 | - return false; | |
522 | - } | |
523 | - //图片上传 | |
524 | - $.ajaxFileUpload({ | |
525 | - url: "/common/uploadCategoryIcon", | |
526 | - secureuri: false, | |
527 | - fileElementId: $(this), | |
528 | - dataType: 'json', | |
529 | - success: function (data) { | |
530 | - var errorMsg = null; | |
531 | - console.log(data); | |
532 | - if (data.success) { | |
533 | - $("#addCategoryIcon").attr("src",data.message); | |
534 | - } else { | |
535 | - errorMsg = result.message; | |
536 | - } | |
537 | - if (errorMsg) { | |
538 | - $('#error-add-category').css({"color": "red"}).html(errorMsg); | |
539 | - } | |
540 | - }, | |
541 | - error: function (data) { | |
542 | - console.log(data); | |
543 | - $('#error-add-category').css({"color": "red"}).html(data.message); | |
544 | - } | |
545 | - }); | |
546 | - }); | |
547 | - | |
504 | + //分类图片上传 | |
505 | + $('#uploadCategoryImg').live('change', function () { | |
506 | + if (!checkImage("uploadCategoryImg", 1024 * 100)) { | |
507 | + return false; | |
508 | + } | |
509 | + //图片上传 | |
510 | + $.ajaxFileUpload({ | |
511 | + url: "/common/uploadCategoryIcon", | |
512 | + secureuri: false, | |
513 | + fileElementId: $(this), | |
514 | + dataType: 'json', | |
515 | + success: function (data) { | |
516 | + var errorMsg = null; | |
517 | + console.log(data); | |
518 | + if (data.success) { | |
519 | + $("#categoryIcon").attr("src", data.message); | |
520 | + } else { | |
521 | + errorMsg = result.message; | |
522 | + } | |
523 | + if (errorMsg) { | |
524 | + $('#error-place-category').css({"color": "red"}).html(errorMsg); | |
525 | + } | |
526 | + }, | |
527 | + error: function (data) { | |
528 | + console.log(data); | |
529 | + $('#error-place-category').css({"color": "red"}).html(data.message); | |
530 | + } | |
531 | + }); | |
532 | + }); | |
533 | + $('#uploadAddCategoryImg').live('change', function () { | |
534 | + if (!checkImage("uploadAddCategoryImg", 1024 * 100)) { | |
535 | + return false; | |
536 | + } | |
537 | + //图片上传 | |
538 | + $.ajaxFileUpload({ | |
539 | + url: "/common/uploadCategoryIcon", | |
540 | + secureuri: false, | |
541 | + fileElementId: $(this), | |
542 | + dataType: 'json', | |
543 | + success: function (data) { | |
544 | + var errorMsg = null; | |
545 | + console.log(data); | |
546 | + if (data.success) { | |
547 | + $("#addCategoryIcon").attr("src", data.message); | |
548 | + } else { | |
549 | + errorMsg = result.message; | |
550 | + } | |
551 | + if (errorMsg) { | |
552 | + $('#error-add-category').css({"color": "red"}).html(errorMsg); | |
553 | + } | |
554 | + }, | |
555 | + error: function (data) { | |
556 | + console.log(data); | |
557 | + $('#error-add-category').css({"color": "red"}).html(data.message); | |
558 | + } | |
559 | + }); | |
560 | + }); | |
561 | + | |
562 | + $('#uploadAddProductImg').live('change', function () { | |
563 | + if (!checkImage("uploadAddProductImg", 1024 * 1000)) { | |
564 | + return false; | |
565 | + } | |
566 | + //图片上传 | |
567 | + $.ajaxFileUpload({ | |
568 | + url: "/common/uploadCategoryIcon", | |
569 | + secureuri: false, | |
570 | + fileElementId: $(this), | |
571 | + dataType: 'json', | |
572 | + success: function (data) { | |
573 | + var errorMsg = null; | |
574 | + console.log(data); | |
575 | + if (data.success) { | |
576 | + $("#addProductIcon").attr("src", data.message); | |
577 | + } else { | |
578 | + errorMsg = result.message; | |
579 | + } | |
580 | + if (errorMsg) { | |
581 | + $('#error-add-product').css({"color": "red"}).html(errorMsg); | |
582 | + } | |
583 | + }, | |
584 | + error: function (data) { | |
585 | + console.log(data); | |
586 | + $('#error-add-product').css({"color": "red"}).html(data.message); | |
587 | + } | |
588 | + }); | |
589 | + }); | |
590 | + | |
548 | 591 | })(); |
549 | 592 | |
550 | 593 | |
551 | -function resetCategoryData(){ | |
552 | - var cateId = $("#categoryId").val(); | |
553 | - $.ajax({ | |
554 | - type : "post", | |
555 | - data : {id:cateId}, | |
556 | - url : "/titan/category/edit", | |
557 | - dataType : "json", | |
558 | - success : function(data){ | |
559 | - $("#categoryName").val(data.category.name); | |
560 | - $("#categoryAlias").val(data.category.alias); | |
561 | - if(data.isChild){ | |
562 | - $("#categoryAlias").attr("disabled",true); | |
563 | - }else{ | |
564 | - $("#categoryAlias").attr("disabled",false); | |
565 | - } | |
566 | - $("#parentCateName").val(data.parentName); | |
567 | - $("#categoryIcon").attr("src",data.category.icon); | |
568 | - if(data.seo != null && data.seo != ""){ | |
569 | - $("#seo-title").val(data.seo.seoTitle); | |
570 | - $("#seo-keyword").val(data.seo.seoKeyword); | |
571 | - $("#seo-desc").val(data.seo.seoDesc); | |
572 | - }else{ | |
573 | - $("#seo-title").val(""); | |
574 | - $("#seo-keyword").val(""); | |
575 | - $("#seo-desc").val(""); | |
576 | - } | |
577 | - } | |
578 | - }); | |
594 | +function resetCategoryData() { | |
595 | + var cateId = $("#categoryId").val(); | |
596 | + $.ajax({ | |
597 | + type: "post", | |
598 | + data: {id: cateId}, | |
599 | + url: "/titan/category/edit", | |
600 | + dataType: "json", | |
601 | + success: function (data) { | |
602 | + $("#categoryName").val(data.category.name); | |
603 | + $("#categoryAlias").val(data.category.alias); | |
604 | + if (data.isChild) { | |
605 | + $("#categoryAlias").attr("disabled", true); | |
606 | + } else { | |
607 | + $("#categoryAlias").attr("disabled", false); | |
608 | + } | |
609 | + $("#parentCateName").val(data.parentName); | |
610 | + $("#categoryIcon").attr("src", data.category.icon); | |
611 | + if (data.seo != null && data.seo != "") { | |
612 | + $("#seo-title").val(data.seo.seoTitle); | |
613 | + $("#seo-keyword").val(data.seo.seoKeyword); | |
614 | + $("#seo-desc").val(data.seo.seoDesc); | |
615 | + } else { | |
616 | + $("#seo-title").val(""); | |
617 | + $("#seo-keyword").val(""); | |
618 | + $("#seo-desc").val(""); | |
619 | + } | |
620 | + } | |
621 | + }); | |
579 | 622 | } |
580 | 623 | |
581 | 624 | /** |
582 | 625 | * 点击树节点,加载右侧数据 |
583 | 626 | * @param node |
584 | 627 | */ |
585 | -function initData(id){ | |
586 | - if(id != 0){ | |
587 | - $.ajax({ | |
588 | - type : "post", | |
589 | - data : {id:id}, | |
590 | - url : "/titan/category/edit", | |
591 | - dataType : "json", | |
592 | - success : function(data){ | |
593 | - $("#showAttrBtonId").css("display", "block"); | |
594 | - if(data.updateCategory == true){ | |
595 | - $("#showCateInfoBtonId").css("display", "block"); | |
596 | - }else{ | |
597 | - $("#showCateInfoBtonId").css("display", "none"); | |
598 | - } | |
599 | - if(data.updateCateSeo == true){ | |
600 | - $("#showCateSeoBtonId").css("display", "block"); | |
601 | - }else{ | |
602 | - $("#showCateSeoBtonId").css("display", "none"); | |
603 | - } | |
604 | - if(data.addAttribute == true){ | |
605 | - $("#addCategoryAttrId").css("display", ""); | |
606 | - }else{ | |
607 | - $("#addCategoryAttrId").css("display", "none"); | |
608 | - } | |
609 | - if(data.copyParentCateAttr == true){ | |
610 | - $("#copyParentCateAttr").css("display", ""); | |
611 | - }else{ | |
612 | - $("#copyParentCateAttr").css("display", "none"); | |
613 | - } | |
614 | - $("#cateSearchAttrList").html(""); | |
615 | - $("#cateAttrList").html(""); | |
616 | - $("#categoryName").val(data.category.name); | |
617 | - $("#categoryAlias").val(data.category.alias); | |
618 | - if(data.isChild){ | |
619 | - $("#categoryAlias").attr("disabled",true); | |
620 | - }else{ | |
621 | - $("#categoryAlias").attr("disabled",false); | |
622 | - } | |
623 | - $("#parentCateName").val(data.parentName); | |
624 | - $("#categoryId").val(data.category.id); | |
625 | - $("#categoryIcon").attr("src",data.category.icon); | |
626 | - if(data.seo != null && data.seo != ""){ | |
627 | - $("#seo-title").val(data.seo.seoTitle); | |
628 | - $("#seo-keyword").val(data.seo.seoKeyword); | |
629 | - $("#seo-desc").val(data.seo.seoDesc); | |
630 | - }else{ | |
631 | - $("#seo-title").val(""); | |
632 | - $("#seo-keyword").val(""); | |
633 | - $("#seo-desc").val(""); | |
634 | - } | |
635 | - setCategoryAttrData(data); | |
636 | - setCategorySearchAttrData(data); | |
637 | - } | |
638 | - }); | |
639 | - | |
640 | - } | |
641 | -} | |
628 | +function initData(id) { | |
629 | + if (id != 0) { | |
630 | + $.ajax({ | |
631 | + type: "post", | |
632 | + data: {id: id}, | |
633 | + url: "/titan/category/edit", | |
634 | + dataType: "json", | |
635 | + success: function (data) { | |
636 | + $("#showAttrBtonId").css("display", "block"); | |
637 | + if (data.updateCategory == true) { | |
638 | + $("#showCateInfoBtonId").css("display", "block"); | |
639 | + } else { | |
640 | + $("#showCateInfoBtonId").css("display", "none"); | |
641 | + } | |
642 | + if (data.updateCateSeo == true) { | |
643 | + $("#showCateSeoBtonId").css("display", "block"); | |
644 | + } else { | |
645 | + $("#showCateSeoBtonId").css("display", "none"); | |
646 | + } | |
647 | + if (data.addAttribute == true) { | |
648 | + $("#addCategoryAttrId").css("display", ""); | |
649 | + } else { | |
650 | + $("#addCategoryAttrId").css("display", "none"); | |
651 | + } | |
652 | + if (data.copyParentCateAttr == true) { | |
653 | + $("#copyParentCateAttr").css("display", ""); | |
654 | + } else { | |
655 | + $("#copyParentCateAttr").css("display", "none"); | |
656 | + } | |
657 | + $("#cateSearchAttrList").html(""); | |
658 | + $("#cateAttrList").html(""); | |
659 | + $("#categoryName").val(data.category.name); | |
660 | + $("#categoryAlias").val(data.category.alias); | |
661 | + if (data.isChild) { | |
662 | + $("#categoryAlias").attr("disabled", true); | |
663 | + } else { | |
664 | + $("#categoryAlias").attr("disabled", false); | |
665 | + } | |
666 | + $("#parentCateName").val(data.parentName); | |
667 | + $("#categoryId").val(data.category.id); | |
668 | + $("#categoryIcon").attr("src", data.category.icon); | |
669 | + if (data.seo != null && data.seo != "") { | |
670 | + $("#seo-title").val(data.seo.seoTitle); | |
671 | + $("#seo-keyword").val(data.seo.seoKeyword); | |
672 | + $("#seo-desc").val(data.seo.seoDesc); | |
673 | + } else { | |
674 | + $("#seo-title").val(""); | |
675 | + $("#seo-keyword").val(""); | |
676 | + $("#seo-desc").val(""); | |
677 | + } | |
678 | + setCategoryAttrData(data); | |
679 | + setCategorySearchAttrData(data); | |
680 | + } | |
681 | + }); | |
642 | 682 | |
643 | - /** | |
644 | - * 设置属性是否为搜索属性 | |
645 | - * @param id | |
646 | - * @param flag | |
647 | - */ | |
648 | - function setCateSearchAttr(id,cateId,attrId){ | |
649 | - var isChecked = $("#cateAttrId"+id).attr("checked"); | |
650 | - if(isChecked == "checked"){ | |
651 | - flag = 1; | |
652 | - }else{ | |
653 | - flag = 0; | |
654 | - } | |
655 | - $.ajax({ | |
656 | - type : "post", | |
657 | - data : {id:id,cateId:cateId,attrId:attrId,searchable:flag}, | |
658 | - url : "/titan/category/changeCateSearchAttr", | |
659 | - dataType : "json", | |
660 | - success : function(data){ | |
661 | - if(data.success == false){ | |
662 | - XUI.window.alert(data.msg); | |
663 | - } | |
664 | - } | |
665 | - }); | |
666 | - } | |
667 | - | |
668 | - /** | |
669 | - * 搜索属性 | |
670 | - * @param callback | |
671 | - */ | |
672 | - function searchCateAttr(callback){ | |
673 | - var keyword = $("#keyword-input").val(); | |
674 | - var cateId = $("#categoryId").val(); | |
675 | - if(!keyword){ | |
676 | - keyword = ""; | |
677 | - } | |
678 | - var attrs = new Array(); | |
679 | - var attrSelect = $("#selAttrs li"); | |
680 | - if(attrSelect != null && attrSelect.length >0){ | |
681 | - $.each(attrSelect , function(i, n){ | |
682 | - var li = $(n); | |
683 | - var temp = new Object(); | |
684 | - var attrId = li.attr("attr-id"); | |
685 | - temp.attrId = attrId; | |
686 | - attrs.push(JSON.stringify(temp)); | |
687 | - }); | |
688 | - } | |
683 | + } | |
684 | +} | |
689 | 685 | |
690 | - $.ajax({ | |
691 | - type : "post", | |
692 | - dataType : "json", | |
693 | - url : "/titan/attribute/searchByAjax", | |
694 | - data : {keyword : keyword,cateId:cateId,list:JSON.stringify(attrs)}, | |
695 | - success : function(data){ | |
696 | - if(data.success == false){ | |
697 | - XUI.window.alert(data.msg); | |
698 | - } | |
699 | - $("#allAttrs").html(""); | |
700 | - if(data.list != null && data.list != "" && data.list.length >0){ | |
701 | - for(var i=0;i<data.list.length;i++){ | |
702 | - var li = "<li attr-id="+data.list[i].id+"><span class='inline'>"+data.list[i].show+"</span></li>"; | |
703 | - $("#allAttrs").append(li); | |
704 | - //var temp ="<option attr-id="+n.id+" dealtype="+ n.dealType+ " attrtypeId="+ n.attrTypeId+" title=\""+ n.show +"\">" + n.show + "</option>"; | |
705 | - } | |
706 | - if(data.success){ | |
707 | - if(data.success == false){ | |
708 | - XUI.window.alert(data.msg); | |
709 | - } | |
710 | - if(callback){ | |
711 | - callback(); | |
712 | - } | |
713 | - }else{ | |
714 | - XUI.window.alert(data.msg); | |
715 | - } | |
716 | - } | |
717 | - }, | |
718 | - error : function(){ | |
719 | - XUI.window.alert("网络错误,请稍后重试"); | |
720 | - } | |
721 | - }); | |
686 | +/** | |
687 | + * 设置属性是否为搜索属性 | |
688 | + * @param id | |
689 | + * @param flag | |
690 | + */ | |
691 | +function setCateSearchAttr(id, cateId, attrId) { | |
692 | + var isChecked = $("#cateAttrId" + id).attr("checked"); | |
693 | + if (isChecked == "checked") { | |
694 | + flag = 1; | |
695 | + } else { | |
696 | + flag = 0; | |
722 | 697 | } |
723 | - | |
724 | - /** | |
725 | - * 搜索属性 | |
726 | - */ | |
727 | - $(document).ready(function(){ | |
728 | - $(".btn-addAttr").click(function(){ | |
729 | - $("#allAttrs").html(""); | |
730 | - $("#selAttrs").html(""); | |
731 | - $("#keyword-input").val(""); | |
732 | - searchCateAttr(function(){ | |
733 | - $("#btn-spanlink").fancybox({ | |
734 | - helpers: { | |
735 | - overlay: { | |
736 | - closeClick: false | |
737 | - } | |
738 | - } | |
739 | - }); | |
740 | - $("#btn-spanlink").click(); | |
741 | - }); | |
742 | - }); | |
743 | - $("#search-attr").click(function(){ | |
744 | - searchCateAttr(); | |
745 | - }); | |
746 | - | |
747 | - $("#delCategoryAttrOk").live({click: function(){ | |
748 | - var attrId = $(this).attr("attrId"); | |
749 | - var flag = $(this).attr("flag"); | |
750 | - var cateId = $("#categoryId").val(); | |
751 | - if(attrId == "" || attrId == null){ | |
752 | - alert("传入的属性ID为空!"); | |
753 | - return false; | |
754 | - } | |
755 | - if(cateId == "" || cateId == null){ | |
756 | - alert("传入的类目ID为空!"); | |
757 | - return false; | |
758 | - } | |
759 | - $(this).attr("attrId",""); | |
760 | - $(this).attr("flag",""); | |
761 | - $.ajax({ | |
762 | - type : "post", | |
763 | - data : {cateId:cateId,attrId:attrId,flag:flag}, | |
764 | - url : "/titan/category/delCategoryAttr", | |
765 | - dataType : "json", | |
766 | - success : function(data){ | |
767 | - if(data.success == false){ | |
768 | - XUI.window.alert(data.msg); | |
769 | - }else{ | |
770 | - if(flag == 1){ | |
771 | - getCategoryAttr(); | |
772 | - }else if(flag == 2){ | |
773 | - getCategorySearchAttr(); | |
774 | - } | |
775 | - } | |
776 | - } | |
777 | - }); | |
778 | - $.fancybox.close(); | |
779 | - } | |
780 | - }); | |
698 | + $.ajax({ | |
699 | + type: "post", | |
700 | + data: {id: id, cateId: cateId, attrId: attrId, searchable: flag}, | |
701 | + url: "/titan/category/changeCateSearchAttr", | |
702 | + dataType: "json", | |
703 | + success: function (data) { | |
704 | + if (data.success == false) { | |
705 | + XUI.window.alert(data.msg); | |
706 | + } | |
707 | + } | |
781 | 708 | }); |
782 | - | |
783 | - | |
784 | - /** | |
785 | - * 取消添加属性 | |
786 | - */ | |
787 | - function cancelAddAttr(){ | |
788 | - $("#allAttrs").html(""); | |
789 | - $("#selAttrs").html(""); | |
790 | - $("#keyword-input").val(""); | |
791 | - $.fancybox.close(); | |
709 | +} | |
710 | + | |
711 | +/** | |
712 | + * 搜索属性 | |
713 | + * @param callback | |
714 | + */ | |
715 | +function searchCateAttr(callback) { | |
716 | + var keyword = $("#keyword-input").val(); | |
717 | + var cateId = $("#categoryId").val(); | |
718 | + if (!keyword) { | |
719 | + keyword = ""; | |
792 | 720 | } |
793 | - | |
794 | - /** | |
795 | - * 删除分类属性 | |
721 | + var attrs = new Array(); | |
722 | + var attrSelect = $("#selAttrs li"); | |
723 | + if (attrSelect != null && attrSelect.length > 0) { | |
724 | + $.each(attrSelect, function (i, n) { | |
725 | + var li = $(n); | |
726 | + var temp = new Object(); | |
727 | + var attrId = li.attr("attr-id"); | |
728 | + temp.attrId = attrId; | |
729 | + attrs.push(JSON.stringify(temp)); | |
730 | + }); | |
731 | + } | |
732 | + | |
733 | + $.ajax({ | |
734 | + type: "post", | |
735 | + dataType: "json", | |
736 | + url: "/titan/attribute/searchByAjax", | |
737 | + data: {keyword: keyword, cateId: cateId, list: JSON.stringify(attrs)}, | |
738 | + success: function (data) { | |
739 | + if (data.success == false) { | |
740 | + XUI.window.alert(data.msg); | |
741 | + } | |
742 | + $("#allAttrs").html(""); | |
743 | + if (data.list != null && data.list != "" && data.list.length > 0) { | |
744 | + for (var i = 0; i < data.list.length; i++) { | |
745 | + var li = "<li attr-id=" + data.list[i].id + "><span class='inline'>" + data.list[i].show + "</span></li>"; | |
746 | + $("#allAttrs").append(li); | |
747 | + //var temp ="<option attr-id="+n.id+" dealtype="+ n.dealType+ " attrtypeId="+ n.attrTypeId+" title=\""+ n.show +"\">" + n.show + "</option>"; | |
748 | + } | |
749 | + if (data.success) { | |
750 | + if (data.success == false) { | |
751 | + XUI.window.alert(data.msg); | |
752 | + } | |
753 | + if (callback) { | |
754 | + callback(); | |
755 | + } | |
756 | + } else { | |
757 | + XUI.window.alert(data.msg); | |
758 | + } | |
759 | + } | |
760 | + }, | |
761 | + error: function () { | |
762 | + XUI.window.alert("网络错误,请稍后重试"); | |
763 | + } | |
764 | + }); | |
765 | +} | |
766 | + | |
767 | +/** | |
768 | + * 搜索属性 | |
769 | + */ | |
770 | +$(document).ready(function () { | |
771 | + $(".btn-addAttr").click(function () { | |
772 | + $("#allAttrs").html(""); | |
773 | + $("#selAttrs").html(""); | |
774 | + $("#keyword-input").val(""); | |
775 | + searchCateAttr(function () { | |
776 | + $("#btn-spanlink").fancybox({ | |
777 | + helpers: { | |
778 | + overlay: { | |
779 | + closeClick: false | |
780 | + } | |
781 | + } | |
782 | + }); | |
783 | + $("#btn-spanlink").click(); | |
784 | + }); | |
785 | + }); | |
786 | + $("#search-attr").click(function () { | |
787 | + searchCateAttr(); | |
788 | + }); | |
789 | + | |
790 | + $("#delCategoryAttrOk").live({ | |
791 | + click: function () { | |
792 | + var attrId = $(this).attr("attrId"); | |
793 | + var flag = $(this).attr("flag"); | |
794 | + var cateId = $("#categoryId").val(); | |
795 | + if (attrId == "" || attrId == null) { | |
796 | + alert("传入的属性ID为空!"); | |
797 | + return false; | |
798 | + } | |
799 | + if (cateId == "" || cateId == null) { | |
800 | + alert("传入的类目ID为空!"); | |
801 | + return false; | |
802 | + } | |
803 | + $(this).attr("attrId", ""); | |
804 | + $(this).attr("flag", ""); | |
805 | + $.ajax({ | |
806 | + type: "post", | |
807 | + data: {cateId: cateId, attrId: attrId, flag: flag}, | |
808 | + url: "/titan/category/delCategoryAttr", | |
809 | + dataType: "json", | |
810 | + success: function (data) { | |
811 | + if (data.success == false) { | |
812 | + XUI.window.alert(data.msg); | |
813 | + } else { | |
814 | + if (flag == 1) { | |
815 | + getCategoryAttr(); | |
816 | + } else if (flag == 2) { | |
817 | + getCategorySearchAttr(); | |
818 | + } | |
819 | + } | |
820 | + } | |
821 | + }); | |
822 | + $.fancybox.close(); | |
823 | + } | |
824 | + }); | |
825 | +}); | |
826 | + | |
827 | + | |
828 | +/** | |
829 | + * 取消添加属性 | |
830 | + */ | |
831 | +function cancelAddAttr() { | |
832 | + $("#allAttrs").html(""); | |
833 | + $("#selAttrs").html(""); | |
834 | + $("#keyword-input").val(""); | |
835 | + $.fancybox.close(); | |
836 | +} | |
837 | + | |
838 | +/** | |
839 | + * 删除分类属性 | |
796 | 840 | * @param id |
797 | 841 | */ |
798 | -function delCateAttr(attrId){ | |
799 | - $(".showDialog").fancybox({ | |
800 | - helpers: { | |
801 | - overlay: { | |
802 | - closeClick: false | |
803 | - } | |
804 | - }, | |
805 | - content: $(".fancy-close")[0].outerHTML, | |
806 | - beforeShow: function(){ | |
807 | - $(".fancybox-wrap .fancy-close").show(); | |
808 | - $(".close-ensure").attr('attrId',attrId); | |
809 | - $(".close-ensure").attr('flag',1); | |
810 | - } | |
811 | - }); | |
812 | - } | |
813 | - | |
814 | - /** | |
815 | - * 删除分类搜索属性 | |
816 | - * @param id | |
817 | - */ | |
818 | - function delCateSearchAttr(attrId){ | |
819 | - $(".showDialog").fancybox({ | |
820 | - helpers: { | |
821 | - overlay: { | |
822 | - closeClick: false | |
823 | - } | |
824 | - }, | |
825 | - content: $(".fancy-close")[0].outerHTML, | |
826 | - beforeShow: function(){ | |
827 | - $(".fancybox-wrap .fancy-close").show(); | |
828 | - $(".close-ensure").attr('attrId',attrId); | |
829 | - $(".close-ensure").attr('flag',2); | |
830 | - } | |
831 | - }); | |
832 | - } | |
833 | - | |
834 | - /** | |
835 | - * 添加属性 | |
836 | - */ | |
837 | - function btnAddAttr(){ | |
838 | - var cateId = $("#categoryId").val(); | |
839 | - var attrs = new Array(); | |
840 | - var attrSelect = $("#selAttrs li"); | |
841 | - if(attrSelect == null || attrSelect.length ==0){ | |
842 | - XUI.window.alert("请选择需要添加的属性!"); | |
843 | - return; | |
844 | - } | |
845 | - $.each(attrSelect , function(i, n){ | |
846 | - var li = $(n); | |
847 | - var temp = new Object(); | |
848 | - var attrId = li.attr("attr-id"); | |
849 | - temp.attrId = attrId; | |
850 | - temp.searchable = 0; | |
851 | - attrs.push(JSON.stringify(temp)); | |
852 | - }); | |
853 | - $.ajax({ | |
854 | - type : "post", | |
855 | - data : {cateId:cateId,list:JSON.stringify(attrs)}, | |
856 | - url : "/titan/category/addCategoryAttr", | |
857 | - dataType : "json", | |
858 | - success : function(data){ | |
859 | - if(data.success == false){ | |
860 | - XUI.window.alert(data.msg); | |
861 | - }else{ | |
862 | - cancelAddAttr(); | |
863 | - getCategoryAttr(); | |
864 | - } | |
865 | - } | |
866 | - }); | |
842 | +function delCateAttr(attrId) { | |
843 | + $(".showDialog").fancybox({ | |
844 | + helpers: { | |
845 | + overlay: { | |
846 | + closeClick: false | |
847 | + } | |
848 | + }, | |
849 | + content: $(".fancy-close")[0].outerHTML, | |
850 | + beforeShow: function () { | |
851 | + $(".fancybox-wrap .fancy-close").show(); | |
852 | + $(".close-ensure").attr('attrId', attrId); | |
853 | + $(".close-ensure").attr('flag', 1); | |
854 | + } | |
855 | + }); | |
856 | +} | |
857 | + | |
858 | +/** | |
859 | + * 删除分类搜索属性 | |
860 | + * @param id | |
861 | + */ | |
862 | +function delCateSearchAttr(attrId) { | |
863 | + $(".showDialog").fancybox({ | |
864 | + helpers: { | |
865 | + overlay: { | |
866 | + closeClick: false | |
867 | + } | |
868 | + }, | |
869 | + content: $(".fancy-close")[0].outerHTML, | |
870 | + beforeShow: function () { | |
871 | + $(".fancybox-wrap .fancy-close").show(); | |
872 | + $(".close-ensure").attr('attrId', attrId); | |
873 | + $(".close-ensure").attr('flag', 2); | |
874 | + } | |
875 | + }); | |
876 | +} | |
877 | + | |
878 | +/** | |
879 | + * 添加属性 | |
880 | + */ | |
881 | +function btnAddAttr() { | |
882 | + var cateId = $("#categoryId").val(); | |
883 | + var attrs = new Array(); | |
884 | + var attrSelect = $("#selAttrs li"); | |
885 | + if (attrSelect == null || attrSelect.length == 0) { | |
886 | + XUI.window.alert("请选择需要添加的属性!"); | |
887 | + return; | |
888 | + } | |
889 | + $.each(attrSelect, function (i, n) { | |
890 | + var li = $(n); | |
891 | + var temp = new Object(); | |
892 | + var attrId = li.attr("attr-id"); | |
893 | + temp.attrId = attrId; | |
894 | + temp.searchable = 0; | |
895 | + attrs.push(JSON.stringify(temp)); | |
896 | + }); | |
897 | + $.ajax({ | |
898 | + type: "post", | |
899 | + data: {cateId: cateId, list: JSON.stringify(attrs)}, | |
900 | + url: "/titan/category/addCategoryAttr", | |
901 | + dataType: "json", | |
902 | + success: function (data) { | |
903 | + if (data.success == false) { | |
904 | + XUI.window.alert(data.msg); | |
905 | + } else { | |
906 | + cancelAddAttr(); | |
907 | + getCategoryAttr(); | |
908 | + } | |
909 | + } | |
910 | + }); | |
911 | +} | |
912 | + | |
913 | +/** | |
914 | + * 获取类目属性 | |
915 | + */ | |
916 | +function getCategoryAttr() { | |
917 | + var cateId = $("#categoryId").val(); | |
918 | + $.ajax({ | |
919 | + type: "post", | |
920 | + data: {cateId: cateId}, | |
921 | + url: "/titan/category/getCategoryAttr", | |
922 | + dataType: "json", | |
923 | + success: function (data) { | |
924 | + if (data.success == false) { | |
925 | + XUI.window.alert(data.msg); | |
926 | + } else { | |
927 | + setCategoryAttrData(data); | |
928 | + } | |
929 | + } | |
930 | + }); | |
931 | +} | |
932 | + | |
933 | +/** | |
934 | + * 获取类目搜索属性 | |
935 | + */ | |
936 | +function getCategorySearchAttr() { | |
937 | + var cateId = $("#categoryId").val(); | |
938 | + $.ajax({ | |
939 | + type: "post", | |
940 | + data: {cateId: cateId}, | |
941 | + url: "/titan/category/getCategorySearchAttr", | |
942 | + dataType: "json", | |
943 | + success: function (data) { | |
944 | + if (data.success == false) { | |
945 | + alert(data.msg); | |
946 | + } else { | |
947 | + setCategorySearchAttrData(data); | |
948 | + } | |
949 | + } | |
950 | + }); | |
951 | +} | |
952 | + | |
953 | +/** | |
954 | + * 分类属性排序 | |
955 | + * @param attrId | |
956 | + * @param operation | |
957 | + */ | |
958 | +function changeCateAttrOrder(attrId, operation, flag) { | |
959 | + var cateId = $("#categoryId").val(); | |
960 | + if (attrId == "" || attrId == null) { | |
961 | + alert("传入的属性ID为空!"); | |
962 | + return false; | |
867 | 963 | } |
868 | - | |
869 | - /** | |
870 | - * 获取类目属性 | |
871 | - */ | |
872 | - function getCategoryAttr(){ | |
873 | - var cateId = $("#categoryId").val(); | |
874 | - $.ajax({ | |
875 | - type : "post", | |
876 | - data : {cateId:cateId}, | |
877 | - url : "/titan/category/getCategoryAttr", | |
878 | - dataType : "json", | |
879 | - success : function(data){ | |
880 | - if(data.success == false){ | |
881 | - XUI.window.alert(data.msg); | |
882 | - }else{ | |
883 | - setCategoryAttrData(data); | |
884 | - } | |
885 | - } | |
886 | - }); | |
964 | + if (cateId == "" || cateId == null) { | |
965 | + alert("传入的类目ID为空!"); | |
966 | + return false; | |
887 | 967 | } |
888 | - | |
889 | - /** | |
890 | - * 获取类目搜索属性 | |
891 | - */ | |
892 | - function getCategorySearchAttr(){ | |
893 | - var cateId = $("#categoryId").val(); | |
894 | - $.ajax({ | |
895 | - type : "post", | |
896 | - data : {cateId:cateId}, | |
897 | - url : "/titan/category/getCategorySearchAttr", | |
898 | - dataType : "json", | |
899 | - success : function(data){ | |
900 | - if(data.success == false){ | |
901 | - alert(data.msg); | |
902 | - }else{ | |
903 | - setCategorySearchAttrData(data); | |
904 | - } | |
905 | - } | |
906 | - }); | |
907 | - } | |
908 | - | |
909 | - /** | |
910 | - * 分类属性排序 | |
911 | - * @param attrId | |
912 | - * @param operation | |
913 | - */ | |
914 | - function changeCateAttrOrder(attrId,operation,flag){ | |
915 | - var cateId = $("#categoryId").val(); | |
916 | - if(attrId == "" || attrId == null){ | |
917 | - alert("传入的属性ID为空!"); | |
918 | - return false; | |
919 | - } | |
920 | - if(cateId == "" || cateId == null){ | |
921 | - alert("传入的类目ID为空!"); | |
922 | - return false; | |
923 | - } | |
924 | - $.ajax({ | |
925 | - type : "post", | |
926 | - data : {cateId:cateId,attrId:attrId,operation:operation,flag:flag}, | |
927 | - url : "/titan/category/changeCateAtrOrder", | |
928 | - dataType : "json", | |
929 | - success : function(data){ | |
930 | - if(data.success == false){ | |
931 | - XUI.window.alert(data.msg); | |
932 | - }else{ | |
933 | - if(flag == 1){ | |
934 | - getCategoryAttr(); | |
935 | - }else if(flag == 2){ | |
936 | - getCategorySearchAttr(); | |
937 | - } | |
938 | - } | |
939 | - } | |
940 | - }); | |
941 | - } | |
942 | - | |
943 | - /** | |
944 | - * 复制父级分类属性 | |
945 | - * @param attrId | |
946 | - * @param operation | |
947 | - */ | |
948 | - function copyParentCategoryAttr(){ | |
949 | - var cateId = $("#categoryId").val(); | |
950 | - if(cateId == "" || cateId == null){ | |
951 | - alert("传入的类目ID为空!"); | |
952 | - return false; | |
953 | - } | |
954 | - $.ajax({ | |
955 | - type : "post", | |
956 | - data : {cateId:cateId}, | |
957 | - url : "/titan/category/copyParentCategoryAttr", | |
958 | - dataType : "json", | |
959 | - success : function(data){ | |
960 | - if(data.success == false){ | |
961 | - XUI.window.alert(data.msg); | |
962 | - }else{ | |
963 | - getCategoryAttr(); | |
964 | - //getCategorySearchAttr(); | |
965 | - } | |
966 | - } | |
967 | - }); | |
968 | - } | |
969 | - | |
970 | - function addCategoryData(){ | |
971 | - var name = $("input[name='add-cate-name']").val(); | |
972 | - if(name!=""){ | |
973 | - name = name.replace(/(^\s*)|(\s*$)/g, ""); | |
968 | + $.ajax({ | |
969 | + type: "post", | |
970 | + data: {cateId: cateId, attrId: attrId, operation: operation, flag: flag}, | |
971 | + url: "/titan/category/changeCateAtrOrder", | |
972 | + dataType: "json", | |
973 | + success: function (data) { | |
974 | + if (data.success == false) { | |
975 | + XUI.window.alert(data.msg); | |
976 | + } else { | |
977 | + if (flag == 1) { | |
978 | + getCategoryAttr(); | |
979 | + } else if (flag == 2) { | |
980 | + getCategorySearchAttr(); | |
981 | + } | |
982 | + } | |
974 | 983 | } |
975 | - if(name.length > 20){ | |
976 | - XUI.window.alert("分类名字长度不能超过20个字符!"); | |
977 | - return false; | |
978 | - } | |
979 | - var alias = $("input[name='add-cate-alias']").val(); | |
980 | - if(alias!=""){ | |
981 | - alias = alias.replace(/(^\s*)|(\s*$)/g, "").replaceAll(",",","); | |
984 | + }); | |
985 | +} | |
986 | + | |
987 | +/** | |
988 | + * 复制父级分类属性 | |
989 | + * @param attrId | |
990 | + * @param operation | |
991 | + */ | |
992 | +function copyParentCategoryAttr() { | |
993 | + var cateId = $("#categoryId").val(); | |
994 | + if (cateId == "" || cateId == null) { | |
995 | + alert("传入的类目ID为空!"); | |
996 | + return false; | |
997 | + } | |
998 | + $.ajax({ | |
999 | + type: "post", | |
1000 | + data: {cateId: cateId}, | |
1001 | + url: "/titan/category/copyParentCategoryAttr", | |
1002 | + dataType: "json", | |
1003 | + success: function (data) { | |
1004 | + if (data.success == false) { | |
1005 | + XUI.window.alert(data.msg); | |
1006 | + } else { | |
1007 | + getCategoryAttr(); | |
1008 | + //getCategorySearchAttr(); | |
1009 | + } | |
982 | 1010 | } |
983 | - if(alias.length > 100){ | |
984 | - XUI.window.alert("分类别名长度不能超过100个字符!"); | |
985 | - return false; | |
986 | - } | |
987 | - var icon = $("#addCategoryIcon").attr("src"); | |
988 | - if(icon==""){ | |
989 | - XUI.window.alert("分类图标必须上传!"); | |
990 | - return false; | |
1011 | + }); | |
1012 | +} | |
1013 | + | |
1014 | +function addCategoryData() { | |
1015 | + var name = $("input[name='add-cate-name']").val(); | |
1016 | + if (name != "") { | |
1017 | + name = name.replace(/(^\s*)|(\s*$)/g, ""); | |
1018 | + } | |
1019 | + if (name.length > 20) { | |
1020 | + XUI.window.alert("分类名字长度不能超过20个字符!"); | |
1021 | + return false; | |
1022 | + } | |
1023 | + var alias = $("input[name='add-cate-alias']").val(); | |
1024 | + if (alias != "") { | |
1025 | + alias = alias.replace(/(^\s*)|(\s*$)/g, "").replaceAll(",", ","); | |
1026 | + } | |
1027 | + if (alias.length > 100) { | |
1028 | + XUI.window.alert("分类别名长度不能超过100个字符!"); | |
1029 | + return false; | |
1030 | + } | |
1031 | + var icon = $("#addCategoryIcon").attr("src"); | |
1032 | + | |
1033 | + var img = $("#addProductIcon").attr("src"); | |
1034 | + if (icon == "") { | |
1035 | + XUI.window.alert("分类图标必须上传!"); | |
1036 | + return false; | |
1037 | + } | |
1038 | + var regex = /^[0-9a-zA-Z\u4e00-\u9fa5/()()&《》【】\+=\]\[]+$/g; | |
1039 | + var message = "请输入合法的分类名称(中文汉字、英文字母(含大小写)、数字、“/,(),&,《》,【】,[],=,+”)"; | |
1040 | + var message1 = "请输入合法的分类别名(中文汉字、英文字母(含大小写)、数字、“/,(),&,《》,【】,[],=,+”)"; | |
1041 | + var regex1 = /^[0-9a-zA-Z\u4e00-\u9fa5/()()&《》【】\+=\]\[,]+$/g; | |
1042 | + if (name == "" || !regex.test(name)) { | |
1043 | + XUI.window.alert(message); | |
1044 | + return false; | |
1045 | + } | |
1046 | + if (alias != "" && !regex1.test(alias)) { | |
1047 | + XUI.window.alert(message1); | |
1048 | + return false; | |
1049 | + } | |
1050 | + var desc = $("#c_desc").val(); | |
1051 | + if (desc.length > 200) { | |
1052 | + XUI.window.alert("描述长度不能超过200个字符!"); | |
1053 | + return false; | |
1054 | + } | |
1055 | + var id = $("input[name='firstFlag']").val(); | |
1056 | + var use = $("#use").is(':checked'); | |
1057 | + | |
1058 | + $.ajax({ | |
1059 | + type: "put", | |
1060 | + dataType: "json", | |
1061 | + url: "/titan/category/add", | |
1062 | + data: { | |
1063 | + name: name, | |
1064 | + alias: alias, | |
1065 | + parent: id, | |
1066 | + icon: icon, | |
1067 | + productImg: img, | |
1068 | + note: desc, | |
1069 | + use: use | |
1070 | + }, | |
1071 | + success: function (data) { | |
1072 | + console.log(data); | |
1073 | + if (data) { | |
1074 | + if (data.success) { | |
1075 | + window.location.href = "/titan/category"; | |
1076 | + } else { | |
1077 | + alert(data.msg); | |
1078 | + } | |
1079 | + } | |
1080 | + }, | |
1081 | + error: function () { | |
1082 | + alert("网络错误,请稍后重试"); | |
991 | 1083 | } |
992 | - var regex=/^[0-9a-zA-Z\u4e00-\u9fa5/()()&《》【】\+=\]\[]+$/g; | |
993 | - var message="请输入合法的分类名称(中文汉字、英文字母(含大小写)、数字、“/,(),&,《》,【】,[],=,+”)"; | |
994 | - var message1="请输入合法的分类别名(中文汉字、英文字母(含大小写)、数字、“/,(),&,《》,【】,[],=,+”)"; | |
995 | - var regex1=/^[0-9a-zA-Z\u4e00-\u9fa5/()()&《》【】\+=\]\[,]+$/g; | |
996 | - if (name=="" || !regex.test(name)) { | |
997 | - XUI.window.alert(message); | |
998 | - return false; | |
999 | - } | |
1000 | - if (alias!=""&&!regex1.test(alias)) { | |
1001 | - XUI.window.alert(message1); | |
1002 | - return false; | |
1084 | + }); | |
1085 | +} | |
1086 | + | |
1087 | +function setCategoryAttrData(result) { | |
1088 | + var data = result.attrs; | |
1089 | + $("#cateAttrList").html(""); | |
1090 | + if (data != null && data != "" && data.length > 0) { | |
1091 | + for (var i = 0; i < data.length; i++) { | |
1092 | + var isSearch = data[i].searchable == 1 ? "checked='checked'" : ""; | |
1093 | + var isDisable = ""; | |
1094 | + if ("复选框" == data[i].inputTypeText) { | |
1095 | + isDisable = ""; | |
1096 | + } else { | |
1097 | + isDisable = "disabled"; | |
1098 | + } | |
1099 | + var tr = "<tr><td>" + data[i].name + "</td><td>" + data[i].requiredText + "</td><td>"; | |
1100 | + if (result.setCateSearchAttr == true) { | |
1101 | + if (isDisable == "") { | |
1102 | + tr = tr + "<input type='checkbox' " + isDisable + " " + isSearch + " id='cateAttrId" + data[i].id + "' onClick='setCateSearchAttr(" + data[i].id + "," + data[i].catId + "," + data[i].attrId + ")'/>"; | |
1103 | + } else { | |
1104 | + tr = tr + "-"; | |
1105 | + } | |
1106 | + } else if (data[i].searchable == 1) { | |
1107 | + tr = tr + "是"; | |
1108 | + } else { | |
1109 | + tr = tr + "否"; | |
1110 | + } | |
1111 | + tr = tr + "</td><td>" + data[i].inputTypeText + "</td><td>" + data[i].attrTypeText + "</td><td>"; | |
1112 | + if (result.deleteCateAttr == true) { | |
1113 | + tr = tr + " <a class='backLink showDialog' onClick=delCateAttr(" + data[i].attrId + ") attrId='" + data[i].attrId + "'>删除</a>"; | |
1114 | + } | |
1115 | + if (result.CateAttrOrder == true) { | |
1116 | + tr = tr + "<span class='downarrow' style='margin-left:5px' onClick=changeCateAttrOrder(" + data[i].attrId + ",'down',1) ></span> <span class='uparrow' onClick=changeCateAttrOrder(" + data[i].attrId + ",'up',1)></span>"; | |
1117 | + } | |
1118 | + tr = tr + "</td></tr>"; | |
1119 | + $("#cateAttrList").append(tr); | |
1003 | 1120 | } |
1004 | - var id = $("input[name='firstFlag']").val(); | |
1005 | - $.ajax({ | |
1006 | - type : "put", | |
1007 | - dataType : "json", | |
1008 | - url : "/titan/category/add", | |
1009 | - data : { | |
1010 | - name : name, | |
1011 | - alias : alias, | |
1012 | - parent : id, | |
1013 | - icon :icon | |
1014 | - }, | |
1015 | - success : function(data){ | |
1016 | - console.log(data); | |
1017 | - if(data){ | |
1018 | - if(data.success){ | |
1019 | - window.location.href = "/titan/category"; | |
1020 | - }else{ | |
1021 | - alert(data.msg); | |
1022 | - } | |
1023 | - } | |
1024 | - }, | |
1025 | - error : function(){ | |
1026 | - alert("网络错误,请稍后重试"); | |
1027 | - } | |
1028 | - }); | |
1029 | - } | |
1030 | - | |
1031 | - function setCategoryAttrData(result){ | |
1032 | - var data = result.attrs; | |
1033 | - $("#cateAttrList").html(""); | |
1034 | - if(data != null && data != "" && data.length >0){ | |
1035 | - for(var i=0;i<data.length;i++){ | |
1036 | - var isSearch = data[i].searchable == 1 ? "checked='checked'" : ""; | |
1037 | - var isDisable = ""; | |
1038 | - if("复选框" == data[i].inputTypeText){ | |
1039 | - isDisable = ""; | |
1040 | - }else{ | |
1041 | - isDisable = "disabled"; | |
1042 | - } | |
1043 | - var tr = "<tr><td>"+data[i].name+"</td><td>"+data[i].requiredText+"</td><td>"; | |
1044 | - if(result.setCateSearchAttr == true){ | |
1045 | - if(isDisable == ""){ | |
1046 | - tr = tr +"<input type='checkbox' "+isDisable+" "+isSearch+" id='cateAttrId"+data[i].id+"' onClick='setCateSearchAttr("+data[i].id+","+data[i].catId+","+data[i].attrId+")'/>"; | |
1047 | - }else{ | |
1048 | - tr = tr +"-"; | |
1049 | - } | |
1050 | - }else if(data[i].searchable == 1){ | |
1051 | - tr = tr +"是"; | |
1052 | - }else{ | |
1053 | - tr = tr +"否"; | |
1054 | - } | |
1055 | - tr =tr + "</td><td>"+data[i].inputTypeText+"</td><td>"+data[i].attrTypeText+"</td><td>"; | |
1056 | - if(result.deleteCateAttr == true){ | |
1057 | - tr = tr + " <a class='backLink showDialog' onClick=delCateAttr("+data[i].attrId+") attrId='"+data[i].attrId+"'>删除</a>"; | |
1058 | - } | |
1059 | - if(result.CateAttrOrder == true){ | |
1060 | - tr = tr + "<span class='downarrow' style='margin-left:5px' onClick=changeCateAttrOrder("+data[i].attrId+",'down',1) ></span> <span class='uparrow' onClick=changeCateAttrOrder("+data[i].attrId+",'up',1)></span>"; | |
1061 | - } | |
1062 | - tr = tr + "</td></tr>"; | |
1063 | - $("#cateAttrList").append(tr); | |
1064 | - } | |
1065 | - } | |
1066 | - } | |
1067 | - | |
1068 | - function setCategorySearchAttrData(result){ | |
1069 | - var data = result.searchable; | |
1070 | - $("#cateSearchAttrList").html(""); | |
1071 | - if(data != null && data != "" && data.length >0){ | |
1072 | - for(var i=0;i<data.length;i++){ | |
1073 | - var tr = "<tr><td>"+data[i].name+"</td><td>"+data[i].requiredText+"</td>" + | |
1074 | - "<td>"+data[i].inputTypeText+"</td><td>"+data[i].attrTypeText+"</td><td>"; | |
1075 | - if(result.deleteCateAttr == true){ | |
1076 | - tr = tr + "<a class='backLink showDialog' style='margin-right: 5px;' onClick=delCateSearchAttr("+data[i].attrId+") attrId='"+data[i].attrId+"' id='delCateSearchAttr'>删除</a>"; | |
1077 | - } | |
1078 | - if(result.CateAttrOrder == true){ | |
1079 | - tr = tr + "<span class='downarrow' onClick=changeCateAttrOrder("+data[i].attrId+",'down',2)></span> <span class='uparrow' onClick=changeCateAttrOrder("+data[i].attrId+",'up',2)></span>"; | |
1080 | - } | |
1081 | - tr = tr +"</td></tr>"; | |
1082 | - $("#cateSearchAttrList").append(tr); | |
1083 | - } | |
1084 | - } | |
1085 | - } | |
1121 | + } | |
1122 | +} | |
1123 | + | |
1124 | +function setCategorySearchAttrData(result) { | |
1125 | + var data = result.searchable; | |
1126 | + $("#cateSearchAttrList").html(""); | |
1127 | + if (data != null && data != "" && data.length > 0) { | |
1128 | + for (var i = 0; i < data.length; i++) { | |
1129 | + var tr = "<tr><td>" + data[i].name + "</td><td>" + data[i].requiredText + "</td>" + | |
1130 | + "<td>" + data[i].inputTypeText + "</td><td>" + data[i].attrTypeText + "</td><td>"; | |
1131 | + if (result.deleteCateAttr == true) { | |
1132 | + tr = tr + "<a class='backLink showDialog' style='margin-right: 5px;' onClick=delCateSearchAttr(" + data[i].attrId + ") attrId='" + data[i].attrId + "' id='delCateSearchAttr'>删除</a>"; | |
1133 | + } | |
1134 | + if (result.CateAttrOrder == true) { | |
1135 | + tr = tr + "<span class='downarrow' onClick=changeCateAttrOrder(" + data[i].attrId + ",'down',2)></span> <span class='uparrow' onClick=changeCateAttrOrder(" + data[i].attrId + ",'up',2)></span>"; | |
1136 | + } | |
1137 | + tr = tr + "</td></tr>"; | |
1138 | + $("#cateSearchAttrList").append(tr); | |
1139 | + } | |
1140 | + } | |
1141 | +} | |
1086 | 1142 | |
1087 | 1143 | |
1088 | 1144 | \ No newline at end of file | ... | ... |
titan-worker/src/main/resources/sqlmap/Presale.xml renamed to titan-worker/src/main/resources/com/diligrp/titan/dao/sqlmap/Presale.xml
titan-worker/src/main/resources/sqlmap/ProductAuth.xml renamed to titan-worker/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductAuth.xml
titan-worker/src/main/resources/sqlmap/ProductPop.xml renamed to titan-worker/src/main/resources/com/diligrp/titan/dao/sqlmap/ProductPop.xml
titan-worker/src/main/resources/sqlmap/Purchase.xml renamed to titan-worker/src/main/resources/com/diligrp/titan/dao/sqlmap/Purchase.xml
titan-worker/src/main/resources/sqlmap/Supply.xml renamed to titan-worker/src/main/resources/com/diligrp/titan/dao/sqlmap/Supply.xml
titan-worker/src/main/resources/sqlmap/Video.xml renamed to titan-worker/src/main/resources/com/diligrp/titan/dao/sqlmap/Video.xml
titan-worker/src/main/resources/sqlmap/sqlmap-config.xml renamed to titan-worker/src/main/resources/com/diligrp/titan/dao/sqlmap/sqlmap-config.xml
... | ... | @@ -20,12 +20,12 @@ |
20 | 20 | </typeAliases> |
21 | 21 | |
22 | 22 | <mappers> |
23 | - <mapper resource="sqlmap/ProductPop.xml" /> | |
24 | - <mapper resource="sqlmap/ProductAuth.xml" /> | |
25 | - <mapper resource="sqlmap/Purchase.xml" /> | |
26 | - <mapper resource="sqlmap/Supply.xml" /> | |
27 | - <mapper resource="sqlmap/Presale.xml" /> | |
28 | - <mapper resource="sqlmap/Video.xml"/> | |
23 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductPop.xml" /> | |
24 | + <mapper resource="com.diligrp.titan.dao.sqlmap/ProductAuth.xml" /> | |
25 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Purchase.xml" /> | |
26 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Supply.xml" /> | |
27 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Presale.xml" /> | |
28 | + <mapper resource="com.diligrp.titan.dao.sqlmap/Video.xml"/> | |
29 | 29 | </mappers> |
30 | 30 | |
31 | 31 | </configuration> |
32 | 32 | \ No newline at end of file | ... | ... |
titan-worker/src/main/resources/spring-config-dao.xml
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 | </bean> |
52 | 52 | <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> |
53 | 53 | <property name="dataSource" ref="masterDataSource" /> |
54 | - <property name="configLocation" value="classpath:sqlmap/sqlmap-config.xml" /> | |
54 | + <property name="configLocation" value="classpath:com.diligrp.titan.dao.sqlmap/com.diligrp.titan.dao.sqlmap-config.xml" /> | |
55 | 55 | </bean> |
56 | 56 | |
57 | 57 | <bean id="sqlTemplate" class="org.mybatis.spring.SqlSessionTemplate"> | ... | ... |