提交 8e5d5e46 编写于 作者: N Nicky

Merge remote-tracking branch 'origin/1.0.0'

......@@ -176,6 +176,113 @@ CREATE TABLE `shop_info` (
insert into `shop_info`(`id`,`shop_name`,`last_modify_time`,`create_time`) values (1,'小米官方旗舰店','2018-07-24 23:31:02','2018-07-24 23:30:58');
/*Table structure for table `sys_menu` */
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
`menuId` int(11) NOT NULL AUTO_INCREMENT COMMENT '菜单Id',
`parentId` int(11) DEFAULT NULL COMMENT '上级Id',
`menuName` varchar(100) DEFAULT NULL COMMENT '菜单名称',
`menuIcon` varchar(30) DEFAULT NULL COMMENT '菜单图标',
`menuUrl` varchar(100) DEFAULT NULL COMMENT '菜单链接',
`menuType` varchar(10) DEFAULT NULL COMMENT '菜单类型',
`menuOrder` varchar(10) DEFAULT NULL COMMENT '菜单排序',
`menuStatus` varchar(10) DEFAULT NULL COMMENT '菜单状态',
PRIMARY KEY (`menuId`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8;
/*Data for the table `sys_menu` */
insert into `sys_menu`(`menuId`,`parentId`,`menuName`,`menuIcon`,`menuUrl`,`menuType`,`menuOrder`,`menuStatus`) values (1,0,'用户管理','&#xe610','#','1','1','1'),(2,1,'管理员管理','&#xe604','user/queryAll.do','2','2','1'),(3,1,'用户统计','&#xe604','test','2','3','1'),(4,0,'在线管理','&#xe610','#','1','4','1'),(5,4,'在线情况','&#xe604',NULL,'2','5','1'),(6,4,'在线聊天','&#xe604','article/list.do','2','6','1'),(7,0,'系统管理','&#xe610','#','1','7','1'),(8,7,'角色管理','&#xe604','role/queryAll.do','2','8','1'),(9,7,'权限管理','&#xe604','permission/queryAll.do','2','9','1'),(10,7,'菜单管理','&#xe604','menu/getMenus.do','2','10','1'),(11,0,'平台资料','&#xe610','#','1','11','1');
/*Table structure for table `sys_operation` */
DROP TABLE IF EXISTS `sys_operation`;
CREATE TABLE `sys_operation` (
`id` int(11) NOT NULL COMMENT '操作Id,主键',
`desc` varchar(100) DEFAULT NULL COMMENT '操作描述',
`name` varchar(100) DEFAULT NULL COMMENT '操作名称',
`operation` varchar(100) DEFAULT NULL COMMENT '操作标志',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_o_1` (`operation`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `sys_operation` */
insert into `sys_operation`(`id`,`desc`,`name`,`operation`) values (1,'创建操作','创建','create'),(2,'编辑权限','编辑','edit'),(3,'删除权限','删除','delete'),(4,'浏览权限','浏览','view');
/*Table structure for table `sys_permission` */
DROP TABLE IF EXISTS `sys_permission`;
CREATE TABLE `sys_permission` (
`id` int(11) NOT NULL COMMENT '权限Id',
`pdesc` varchar(100) DEFAULT NULL COMMENT '权限描述',
`name` varchar(100) DEFAULT NULL COMMENT '权限名称',
`menuId` int(11) DEFAULT NULL COMMENT '菜单Id',
PRIMARY KEY (`id`),
KEY `p_fk_1` (`menuId`),
CONSTRAINT `p_fk_1` FOREIGN KEY (`menuId`) REFERENCES `sys_menu` (`menuId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `sys_permission` */
insert into `sys_permission`(`id`,`pdesc`,`name`,`menuId`) values (1,'用户管理的权限','用户管理',1),(2,'管理员管理的权限','管理员管理',2),(3,'用户统计的权限','用户统计',3),(4,'在线管理的权限','在线管理',4),(5,'在线情况的权限','在线情况',5),(6,'在线聊天的权限','在线聊天',6),(7,'系统管理的权限','系统管理',7),(8,'角色管理的权限','角色管理',8),(9,'权限管理的权限','权限管理',9),(10,'菜单管理的权限','菜单管理',10),(11,'平台资料的权限','平台资料',11);
/*Table structure for table `sys_permission_operation` */
DROP TABLE IF EXISTS `sys_permission_operation`;
CREATE TABLE `sys_permission_operation` (
`permissionId` int(11) NOT NULL,
`operationId` int(11) NOT NULL,
PRIMARY KEY (`permissionId`,`operationId`),
KEY `po_fk_1` (`operationId`),
CONSTRAINT `po_fk_1` FOREIGN KEY (`operationId`) REFERENCES `sys_operation` (`id`),
CONSTRAINT `po_fk_2` FOREIGN KEY (`permissionId`) REFERENCES `sys_permission` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `sys_permission_operation` */
insert into `sys_permission_operation`(`permissionId`,`operationId`) values (1,1),(2,2),(3,3);
/*Table structure for table `sys_role` */
DROP TABLE IF EXISTS `sys_role`;
CREATE TABLE `sys_role` (
`roleId` int(11) NOT NULL AUTO_INCREMENT COMMENT '角色Id',
`roleName` varchar(100) DEFAULT NULL COMMENT '角色名称',
`roleDesc` varchar(100) DEFAULT NULL COMMENT '角色描述',
`role` varchar(100) DEFAULT NULL COMMENT '角色标志',
PRIMARY KEY (`roleId`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
/*Data for the table `sys_role` */
insert into `sys_role`(`roleId`,`roleName`,`roleDesc`,`role`) values (1,'超级管理员','超级管理员拥有所有权限','role'),(2,'用户管理员','用户管理权限','role'),(3,'角色管理员','角色管理权限','role'),(4,'资源管理员','资源管理权限','role'),(6,'操作权限管理员','操作权限管理','role'),(7,'查看员','查看系统权限','role'),(9,'用户','可以查看','role');
/*Table structure for table `sys_role_permission` */
DROP TABLE IF EXISTS `sys_role_permission`;
CREATE TABLE `sys_role_permission` (
`rpId` varchar(12) NOT NULL COMMENT '表Id',
`roleId` int(11) NOT NULL COMMENT '角色Id',
`permissionId` int(11) NOT NULL COMMENT '权限Id',
PRIMARY KEY (`rpId`),
KEY `rp_fk_2` (`permissionId`),
KEY `rp_fk_1` (`roleId`),
CONSTRAINT `rp_fk_1` FOREIGN KEY (`roleId`) REFERENCES `sys_role` (`roleId`),
CONSTRAINT `rp_fk_2` FOREIGN KEY (`permissionId`) REFERENCES `sys_permission` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `sys_role_permission` */
insert into `sys_role_permission`(`rpId`,`roleId`,`permissionId`) values ('02a97146f6f4',2,1),('0bc217ced57a',1,1),('1623edee1d80',1,2),('2897c5ff0aa8',1,3),('421ddf008a05',1,4),('4b76f155fd74',9,1),('4dcadb89531b',1,7),('55eb164457e2',9,2),('59084a9f6914',2,2),('5a2b34b2f1a7',1,10),('63a5d5a8dae6',1,9),('9ad0b2c3be28',1,8),('9fa9725142c1',2,3),('ba83ae853640',1,6),('d5aec431edf6',1,5);
/*Table structure for table `sys_user` */
DROP TABLE IF EXISTS `sys_user`;
......@@ -203,6 +310,36 @@ CREATE TABLE `sys_user` (
insert into `sys_user`(`id`,`username`,`password`,`phone`,`sex`,`email`,`mark`,`rank`,`lastLogin`,`loginIp`,`imageUrl`,`regTime`,`locked`,`rights`) values (1,'admin','28dca2a7b33b7413ad3bce1d58c26dd679c799f1','1552323312','男','313222@foxmail.com','超级管理员','admin','2017-08-12','127.0.0.1','/static/images/','2017-03-15',0,NULL),(2,'sys','e68feeafe796b666a2e21089eb7aae9c678bf82d','1552323312','男','313222@foxmail.com','系统管理员','sys','2017-08-25','127.0.0.1','/static/images/','2017-03-15',0,NULL),(3,'user','adf8e0d0828bde6e90c2bab72e7a2a763d88a0de','1552323312','男','313222@foxmail.com','用户','user','2017-08-18','127.0.0.1','/static/images/','2017-03-15',0,NULL),(9,'test','123','12332233212','保密','2312@qq.com','没有备注','user','2017-11-25','127.0.0.1',NULL,'2017-11-25',0,NULL);
/*Table structure for table `sys_user_role` */
DROP TABLE IF EXISTS `sys_user_role`;
CREATE TABLE `sys_user_role` (
`userId` int(11) NOT NULL COMMENT '用户Id,联合主键',
`roleId` int(11) NOT NULL COMMENT '角色Id,联合主键',
PRIMARY KEY (`userId`,`roleId`),
KEY `ur_fk_2` (`roleId`),
CONSTRAINT `ur_fk_1` FOREIGN KEY (`userId`) REFERENCES `sys_user` (`id`),
CONSTRAINT `ur_fk_2` FOREIGN KEY (`roleId`) REFERENCES `sys_role` (`roleId`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `sys_user_role` */
insert into `sys_user_role`(`userId`,`roleId`) values (1,1),(1,2),(2,2),(1,3),(2,3),(3,3),(1,4),(3,4),(1,6),(1,7),(3,7),(9,9);
/*Table structure for table `tb_user` */
DROP TABLE IF EXISTS `tb_user`;
CREATE TABLE `tb_user` (
`username` varchar(11) DEFAULT NULL,
`password` varchar(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
/*Data for the table `tb_user` */
insert into `tb_user`(`username`,`password`) values ('user','11');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
......
package com.muses.taoshop.manager.web.controller;
package com.muses.taoshop.manager.entity;
import lombok.Data;
/**
* <pre>
* 用户中心控制
* 订单实体
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.08.11 11:06 修改内容:
* 修改后版本: 修改人: 修改日期: 2018.09.22 11:09 修改内容:
* </pre>
*/
public class UserController extends BaseController{
@Data
public class ItemOrders {
}
package com.muses.taoshop.manager.entity;
import lombok.Data;
import java.util.List;
/**
* <pre>
* 菜单信息实体类
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 12:32 修改内容:
* </pre>
*/
@Data
public class Menu {
/**
* 菜单Id
**
*/
private int menuId;
/**
* 上级Id
*
*/
private int parentId;
/**
* 菜单名称
*
*/
private String menuName;
/**
* 菜单图标
*/
private String menuIcon;
/**
* 菜单uri
*/
private String menuUrl;
/**
* 菜单类型
*/
private String menuType;
/** 菜单排序**/
private String menuOrder;
/**
* 菜单排序
*/
private String menuStatus;
/**
* 子级菜单
*/
private List<Menu> subMenu;
private String target;
/**
* 是否有子级菜单
*/
private boolean hasSubMenu = false;
}
package com.muses.taoshop.manager.entity;
import lombok.Data;
/**
* <pre>
* Operation类
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 15:25 修改内容:
* </pre>
*/
@Data
public class Operation {
private int id;
private String desc;
private String name;
private String operation;
private static final long serialVersionUID = 1L;
}
package com.muses.taoshop.manager.entity;
import lombok.Data;
import java.util.HashSet;
import java.util.Set;
/**
* <pre>
* 权限信息实体类
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 14:28 修改内容:
* </pre>
*/
@Data
public class Permission {
private int id;
private String pdesc;
private String name;
private Menu menu;
private Set<Operation> operations = new HashSet<Operation>();
}
package com.muses.taoshop.manager.entity;
import lombok.Data;
import java.util.HashSet;
import java.util.Set;
/**
* <pre>
* 角色信息实体类
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 13:31 修改内容:
* </pre>
*/
@Data
public class SysRole {
/** 角色Id**/
private int roleId;
/** 角色描述**/
private String roleDesc;
/** 角色名称**/
private String roleName;
/** 角色标志**/
private String role;
private Set<Permission> permissions = new HashSet<Permission>();
}
......@@ -3,6 +3,7 @@ package com.muses.taoshop.manager.entity;
import lombok.Data;
import java.util.Date;
import java.util.Set;
/**
* <pre>
......@@ -89,7 +90,7 @@ public class SysUser {
*/
private String rights;
//private Set<Role> roles;
private Set<SysRole> roles;
}
package com.muses.taoshop.manager.service;
/**
* <pre>
* 订单管理
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 11:10 修改内容:
* </pre>
*/
public interface IItemOrdersService {
}
package com.muses.taoshop.manager.service;
/**
* <pre>
* TODO 类说明
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 12:33 修改内容:
* </pre>
*/
public interface IMenuService {
}
......@@ -2,9 +2,11 @@ package com.muses.taoshop.manager.service;
import com.muses.taoshop.manager.entity.SysUser;
import java.util.Set;
/**
* <pre>
* TODO 类说明
* 系统用户信息处理接口类
* </pre>
*
* @author nicky
......@@ -15,5 +17,32 @@ import com.muses.taoshop.manager.entity.SysUser;
* </pre>
*/
public interface ISysUserService {
/**
* 通过用户名和密码获取用户信息
* @param username
* @param password
* @return
*/
SysUser getSysUser(String username , String password);
/**
* 获取用户角色
* @param username
* @return
*/
Set<String> getRoles(String username) ;
/**
* 获取用户权限
* @param username
* @return
*/
Set<String> getPermissions(String username);
/**
* 通过用户名获取用户信息
* @param username
* @return
*/
SysUser getUserInfoByUsername(String username);
}
package com.muses.taoshop.manager.mapper;
/**
* <pre>
* 菜单管理
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 12:33 修改内容:
* </pre>
*/
public interface IMenuServiceImpl {
}
package com.muses.taoshop.manager.mapper;
/**
* <pre>
* 订单管理
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 11:10 修改内容:
* </pre>
*/
public interface ItemOrdersMapper {
}
......@@ -5,10 +5,6 @@ import com.muses.taoshop.manager.entity.SysUser;
import org.apache.ibatis.annotations.Param;
/**
* <pre>
*
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
......@@ -18,5 +14,8 @@ import org.apache.ibatis.annotations.Param;
*/
@MybatisRepository
public interface SysUserMapper {
SysUser getSysUserInfo(@Param("username")String username, @Param("password")String password);
SysUser getUserInfoByUsername(@Param("username") String username);
}
package com.muses.taoshop.manager.service;
import org.springframework.stereotype.Service;
/**
* <pre>
* 订单管理业务接口
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 11:11 修改内容:
* </pre>
*/
@Service
public class ItemOrdersServiceImpl {
}
package com.muses.taoshop.manager.service;
/**
* <pre>
* 菜单管理业务接口
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 12:34 修改内容:
* </pre>
*/
public class MenuServiceImpl {
}
package com.muses.taoshop.manager.service;
import com.muses.taoshop.manager.entity.Operation;
import com.muses.taoshop.manager.entity.Permission;
import com.muses.taoshop.manager.entity.SysRole;
import com.muses.taoshop.manager.mapper.SysUserMapper;
import com.muses.taoshop.manager.entity.SysUser;
import com.muses.taoshop.manager.service.ISysUserService;
import org.apache.catalina.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.management.relation.Role;
import java.util.HashSet;
import java.util.Set;
/**
* <pre>
* TODO 类说明
* 用户信息管理业务类
* </pre>
*
* @author nicky
......@@ -28,4 +36,51 @@ public class SysUserServiceImpl implements ISysUserService{
public SysUser getSysUser(String username , String password) {
return sysUserMapper.getSysUserInfo(username , password);
}
/**
* 获取用户角色
* @param username
* @return
*/
@Override
public Set<String> getRoles(String username) {
SysUser user = this.getUserInfoByUsername(username);
Set<SysRole> roles = user.getRoles();
Set<String> roleStrs = new HashSet<String>();
for(SysRole r : roles){
roleStrs.add(r.getRole());
}
return roleStrs;
}
/**
* 获取用户权限
* @param username
* @return
*/
public Set<String> getPermissions(String username) {
SysUser user = this.getUserInfoByUsername(username);
Set<SysRole> roles = user.getRoles();
/** 创建一个HashSet来存放角色权限信息 **/
Set<String> permissions = new HashSet<String>();
for(SysRole r : roles) {
for (Permission p : r.getPermissions()){
for(Operation o : p.getOperations()){
permissions.add(o.getOperation());
}
}
}
return permissions;
}
/**
* 通过用户名获取用户信息
*
* @param username
* @return
*/
@Override
public SysUser getUserInfoByUsername(String username) {
return sysUserMapper.getUserInfoByUsername(username);
}
}
......@@ -30,5 +30,14 @@
where username = #{username}
and password = #{password}
</select>
<select id="getUserInfoByUsername" parameterType="String" resultType="SysUser">
select
<include refid="BaseColumn" />
from sys_user
where username = #{username}
</select>
</mapper>
\ No newline at end of file
package com.muses.taoshop.manager.config;
import com.muses.taoshop.common.security.core.filter.SysAccessControllerFilter;
import com.muses.taoshop.common.security.core.shiro.realm.ShiroRealm;
import com.muses.taoshop.manager.core.shiro.ShiroRealm;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
......
package com.muses.taoshop.manager.config;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistrar;
import org.springframework.format.FormatterRegistry;
import org.springframework.format.datetime.DateFormatter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
* <pre>
* Thymeleaf模板引擎配置
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 10:50 修改内容:
* </pre>
*/
@Configuration
public class ThymeleafConfig extends WebMvcConfigurerAdapter implements ApplicationContextAware{
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
}
@Override
public void addFormatters(final FormatterRegistry registry){
super.addFormatters(registry);
registry.addFormatter(dateFormatter());
}
@Bean
public DateFormatter dateFormatter(){
return new MyDateFormatter();
}
class MyDateFormatter extends DateFormatter {
@Override
public String print(Date date, Locale locale) {
//return super.print(date, locale);
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
}
}
}
package com.muses.taoshop.manager.core.shiro;
import com.muses.taoshop.manager.entity.SysUser;
import com.muses.taoshop.manager.service.ISysUserService;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.authz.SimpleAuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import javax.annotation.Resource;
/**
* <pre>
* 权限认证和授权
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 12:34 修改内容:
* </pre>
*/
public class ShiroRealm extends AuthorizingRealm {
/**注解引入业务类**/
@Resource
ISysUserService userService;
/**
* 登录信息和用户验证信息验证(non-Javadoc)
* @see org.apache.shiro.realm.AuthenticatingRealm#doGetAuthenticationInfo(AuthenticationToken)
*/
@Override
protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {
String username = (String)token.getPrincipal(); //得到用户名
String password = new String((char[])token.getCredentials()); //得到密码
SysUser user = userService.getUserInfoByUsername(username);
/**检测是否有此用户 **/
if(user == null){
throw new UnknownAccountException();//没有找到账号异常
}
/**检验账号是否被锁定 **/
if(Boolean.TRUE.equals(user.getLocked())){
throw new LockedAccountException();//抛出账号锁定异常
}
/**AuthenticatingRealm使用CredentialsMatcher进行密码匹配**/
if(null != username && null != password){
return new SimpleAuthenticationInfo(username, password, getName());
}else{
return null;
}
}
/**
* 授权查询回调函数, 进行鉴权但缓存中无用户的授权信息时调用,负责在应用程序中决定用户的访问控制的方法(non-Javadoc)
* @see AuthorizingRealm#doGetAuthorizationInfo(PrincipalCollection)
*/
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection pc) {
String username = (String)pc.getPrimaryPrincipal();
SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo();
authorizationInfo.setRoles(userService.getRoles(username));
authorizationInfo.setStringPermissions(userService.getPermissions(username));
return authorizationInfo;
}
@Override
public void clearCachedAuthorizationInfo(PrincipalCollection principals) {
super.clearCachedAuthorizationInfo(principals);
}
@Override
public void clearCachedAuthenticationInfo(PrincipalCollection principals) {
super.clearCachedAuthenticationInfo(principals);
}
@Override
public void clearCache(PrincipalCollection principals) {
super.clearCache(principals);
}
}
package com.muses.taoshop.manager.util;
import com.muses.taoshop.manager.entity.Menu;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
public class MenuTreeUtil {
public List<Menu> menuCommon;
public List<Menu> list = new ArrayList<Menu>();
public List<Menu> menuList(List<Menu> menus){
this.menuCommon = menus;
for (Menu x : menus) {
Menu m = new Menu();
if(x.getParentId()==0){
m.setParentId(x.getParentId());
m.setMenuId(x.getMenuId());
m.setMenuName(x.getMenuName());
m.setMenuIcon(x.getMenuIcon());
m.setMenuUrl(x.getMenuUrl());
m.setSubMenu(menuChild(x.getMenuId()));
list.add(m);
}
}
return list;
}
public List<Menu> menuChild(int id){
List<Menu> lists = new ArrayList<Menu>();
for(Menu a:menuCommon){
Menu m = new Menu();
if(a.getParentId() == id){
m.setParentId(a.getParentId());
m.setMenuId(a.getMenuId());
m.setMenuName(a.getMenuName());
m.setMenuIcon(a.getMenuIcon());
m.setMenuUrl(a.getMenuUrl());
lists.add(m);
}
}
return lists;
}
}
\ No newline at end of file
package com.muses.taoshop.manager.web.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.muses.taoshop.manager.core.Constants;
import com.muses.taoshop.manager.entity.Menu;
import com.muses.taoshop.manager.entity.Permission;
import com.muses.taoshop.manager.entity.SysRole;
import com.muses.taoshop.manager.entity.SysUser;
import com.muses.taoshop.manager.service.ISysUserService;
import com.muses.taoshop.manager.util.MenuTreeUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
......@@ -12,6 +17,7 @@ import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
......@@ -22,15 +28,15 @@ import javax.naming.AuthenticationException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.font.FontRenderContext;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Observable;
import java.util.Observer;
import java.util.Random;
import java.util.*;
import java.util.List;
/**
* <pre>
......@@ -137,34 +143,35 @@ public class LoginController extends BaseController {
SysUser user = (SysUser)session.getAttribute(Constants.SESSION_USER);
if(user != null){
// Set<Role> roles = user.getRoles();
// Set<Permission> permissions = new HashSet<Permission>();
// for(Role r : roles){
// permissions.addAll(r.getPermissions());
// }
//
// /**获取用户可以查看的菜单**/
// List<Menu> menuList = new ArrayList<Menu>();
// for(Permission p : permissions){
// menuList.add(p.getMenu());
// }
// MenuTreeUtil treeUtil = new MenuTreeUtil();
// List<Menu> treemenus= treeUtil.menuList(menuList);
//
// JSONArray jsonArray = JSONArray.fromObject(treemenus);
// String json = jsonArray.toString();
// json = json.replaceAll("menuId","id").replaceAll("parentId","pId").
// replaceAll("menuName","name").replaceAll("hasSubMenu","checked");
// mv.addObject("menus",json);
Set<SysRole> roles = user.getRoles();
Set<Permission> permissions = new HashSet<Permission>();
if(!CollectionUtils.isEmpty(roles)) {
for (SysRole r : roles) {
permissions.addAll(r.getPermissions());
}
}
/**获取用户可以查看的菜单**/
List<Menu> menuList = new ArrayList<Menu>();
for(Permission p : permissions){
menuList.add(p.getMenu());
}
MenuTreeUtil treeUtil = new MenuTreeUtil();
List<Menu> treemenus= treeUtil.menuList(menuList);
String json = JSON.toJSONString(treemenus);
json = json.replaceAll("menuId","id").replaceAll("parentId","pId").
replaceAll("menuName","name").replaceAll("hasSubMenu","checked");
mv.addObject("menus",json);
mv.setViewName("admin/frame/index");
}else{
//会话失效,返回登录界面
mv.setViewName("login");
}
mv.setViewName("admin/frame/index");
return mv;
}
......
package com.muses.taoshop.manager.web.controller.item;
import com.muses.taoshop.manager.web.controller.BaseController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
* <pre>
* 订单管理控制类
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 11:08 修改内容:
* </pre>
*/
@Controller
@RequestMapping("/order")
public class OrderController extends BaseController{
/**
* 跳转订单管理页面
* @return
*/
@GetMapping(value = "/toOrder")
public ModelAndView toOrder() {
ModelAndView mv = this.getModelAndView();
mv.setViewName("admin/order/order_list");
return mv;
}
}
package com.muses.taoshop.manager.web.controller.menu;
import org.springframework.stereotype.Controller;
/**
* <pre>
* 菜单管理
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.09.22 12:34 修改内容:
* </pre>
*/
@Controller
public class MenuController {
}
package com.muses.taoshop.manager.web.controller.userCenter;
import com.muses.taoshop.manager.web.controller.BaseController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
* <pre>
* 用户中心控制类
* </pre>
*
* @author nicky
* @version 1.00.00
* <pre>
* 修改记录
* 修改后版本: 修改人: 修改日期: 2018.08.11 11:06 修改内容:
* </pre>
*/
@Controller
@RequestMapping("/user")
public class UserController extends BaseController {
/**
* 跳转到用户中心
* @return
*/
@GetMapping(value = "/toUserCenter")
public ModelAndView toUserCenter() {
ModelAndView mv = this.getModelAndView();
mv.setViewName("admin/user/user_center");
return mv;
}
}
.basic-info{height:334px;background-color:#fff;padding:0 20px;margin-bottom:20px}.basic-info .info-title{height:60px;line-height:60px;color:#000;font-size:16px;font-weight:bold}.basic-info .info-title .modify{float:right;font-size:12px}.basic-info .search-box{border-bottom:0}.basic-info .form-kv{margin-top:8px}.basic-info .form-kv .form-kv-label{width:110px;text-align:right}.basic-info .form-kv .form-content span{display:inline-block;width:192px}.basic-info .form-kv .form-content span.status{color:#5dad41}.basic-info .form-kv .form-content i{color:#5dad41;margin-right:3px}.safe-setting{height:334px;background-color:#fff;padding:0 20px}.safe-setting .info-title{height:60px;line-height:60px;color:#000;font-size:16px;font-weight:bold}.safe-setting .search-box{border-bottom:0}.safe-setting .form-kv{margin-top:8px;margin-bottom:20px;padding-bottom:20px}.safe-setting .form-kv .form-kv-label{width:110px;text-align:right;font-weight:bold;font-size:16px;color:#000}.safe-setting .form-kv .form-content{font-size:12px}.safe-setting .form-kv .form-content .content-value{float:left;width:472px;line-height:24px;margin-right:70px;margin-top:3px}.safe-setting .form-kv .form-content .content-value span{float:none;color:#008eb7}.safe-setting .form-kv .form-content span{float:left;color:#5dad41;margin-right:10px}.safe-setting .form-kv .form-content span.no{color:#e0492b}.safe-setting .form-kv .form-content i{float:left;color:#5dad41;margin-right:10px}.safe-setting .form-kv .form-content i.no{color:#e0492b}.safe-setting .form-kv .form-content a{float:left}.safe-setting .form-kv:first-child{border-bottom:1px dashed #ddd}
......@@ -6,15 +6,10 @@
<title>电商运营平台</title>
<link th:href="@{../static/css/style.css}" rel="stylesheet" />
<link th:href="@{../static/css/backend.css}" rel="stylesheet" />
<link th:href="@{../static/css/page/backend/order-manage.css}" rel="stylesheet" />
<link th:href="@{../static/css/page/backend/account_center.css}" rel="stylesheet" />
<link th:href="@{../plugins/datepicker/css/bootstrap.css}" rel="stylesheet" />
<link th:href="@{../plugins/datepicker/css/bootstrap-datepicker.css}" rel="stylesheet" />
<link th:href="@{../plugins/select2/css/select2.min.css}" rel="stylesheet" />
<script type="text/javascript" th:src="@{../static/js/jquery.js}"></script>
<script type="text/javascript" th:src="@{../static/js/common.js}"></script>
<script type="text/javascript" th:src="@{../plugins/datepicker/js/bootstrap-datepicker.js}"></script>
<script type="text/javascript" th:src="@{../plugins/datepicker/locales/bootstrap-datepicker.zh-CN.min.js}"></script>
<script type="text/javascript" th:src="@{../static/js/jquery.pagination.js}"></script>
<script type="text/javascript" th:src="@{../plugins/select2/js/select2.min.js}"></script>
</head>
</html>
\ No newline at end of file
......@@ -13,7 +13,8 @@
<div class="main-wrap-bk clearfix">
<!-- 左边菜单栏 -->
<div class="" th:replace="admin/frame/sider_bar_bk :: .sider-bar-bk"></div>
<div class="bd-content-wrap" th:replace="admin/orders/order_content_wrap :: .bd-content-wrap"></div>
<!-- 用户中心 -->
<div class="bd-content-wrap" th:replace="admin/user/user_content_wrap :: .bd-content-wrap"></div>
</div>
</div>
......
<div id="hd">
<div id="hd" xmlns:th="http://www.w3.org/1999/xhtml">
<div class="header-nav">
<div class="navigation-inner">
<div class="logo">
<h1>
<a href="mgt_console.html" class="logo-img">电商运营平台</a>
<a th:href="@{/admin/toIndex}" class="logo-img">电商运营平台</a>
</h1>
</div>
<div class="header-categories" id="nav-con">
......@@ -31,7 +31,7 @@
<div class="user-opt-panel">
<ul class="user-opt">
<li>
<a href="account_center.html">
<a th:href="@{/user/toUserCenter}">
<i class="iconfont">&#xe60d;</i>
<span class="pf-opt-name">账户信息</span>
</a>
......
<div class="sider-bar-bk">
<div class="sider-bar-bk" xmlns:th="http://www.w3.org/1999/xhtml">
<div class="sider-bar-hd">
<i class="iconfont">&#xe616;</i>
<span>云服务</span>
......@@ -8,18 +8,47 @@
<h3>
<a href="javascript:;">
<i class="iconfont">&#xe610;</i>
<span>云服务总览</span>
<span>订单管理</span>
<i class="iconfont arrow-right">&#xe611;</i>
<i class="iconfont arrow-down">&#xe615;</i>
</a>
</h3>
<ul class="sider-nav-s">
<li class="current"><a href="order.html">订单管理</a></li>
<li class="current"><a th:href="@{/order/toOrder}">订单管理</a></li>
<li><a href="order-detail.html">订单详情</a></li>
<li><a href="order-handle.html">订单处理</a></li>
</ul>
</li>
<li class="sider-nav-item">
<h3>
<a href="javascript:;">
<i class="iconfont">&#xe613;</i>
<span>商品管理</span>
<i class="iconfont arrow-right">&#xe611;</i>
<i class="iconfont arrow-down">&#xe615;</i>
</a>
</h3>
<ul class="sider-nav-s">
<li><a href="#">品类管理</a></li>
<li><a href="#">商品管理</a></li>
</ul>
</li>
<li class="sider-nav-item">
<h3>
<a href="javascript:;">
<i class="iconfont">&#xe613;</i>
<span>系统管理</span>
<i class="iconfont arrow-right">&#xe611;</i>
<i class="iconfont arrow-down">&#xe615;</i>
</a>
</h3>
<ul class="sider-nav-s">
<li><a href="#">系统用户管理</a></li>
</ul>
</li>
<li class="sider-nav-item">
<h3>
<a href="javascript:;">
......@@ -31,10 +60,9 @@
</h3>
<ul class="sider-nav-s">
<li><a href="#">WEB网站检测服务</a></li>
<li><a href="#">WEB网站检测服务</a></li>
<li><a href="#">WEB网站检测服务</a></li>
<li><a href="#">WEB网站检测服务</a></li>
</ul>
</li>
</ul>
</div>
\ No newline at end of file
......@@ -2,7 +2,20 @@
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<!-- 引入公共页面的一些样式和脚本-->
<head th:include="admin/frame/common :: header"></head>
<head >
<link th:href="@{../static/css/style.css}" rel="stylesheet" />
<link th:href="@{../static/css/backend.css}" rel="stylesheet" />
<link th:href="@{../static/css/page/backend/order_manage.css}" rel="stylesheet" />
<link th:href="@{../plugins/datepicker/css/bootstrap.css}" rel="stylesheet" />
<link th:href="@{../plugins/datepicker/css/bootstrap-datepicker.css}" rel="stylesheet" />
<link th:href="@{../plugins/select2/css/select2.min.css}" rel="stylesheet" />
<script type="text/javascript" th:src="@{../static/js/jquery.js}"></script>
<script type="text/javascript" th:src="@{../static/js/common.js}"></script>
<script type="text/javascript" th:src="@{../plugins/datepicker/js/bootstrap-datepicker.js}"></script>
<script type="text/javascript" th:src="@{../plugins/datepicker/locales/bootstrap-datepicker.zh-CN.min.js}"></script>
<script type="text/javascript" th:src="@{../static/js/jquery.pagination.js}"></script>
<script type="text/javascript" th:src="@{../plugins/select2/js/select2.min.js}"></script>
</head>
<body>
<!-- 顶部导航栏 -->
......@@ -14,7 +27,7 @@
<!-- 左边菜单栏 -->
<div class="" th:replace="admin/frame/sider_bar_bk :: .sider-bar-bk"></div>
<!-- 订单管理 -->
<div class="bd-content-wrap" th:replace="admin/order/order_content_wrap.html :: .bd-content-wrap"></div>
<div class="bd-content-wrap" th:replace="admin/order/order_content_wrap :: .bd-content-wrap"></div>
</div>
</div>
......
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<!-- 引入公共页面的一些样式和脚本-->
<head>
<meta charset="utf-8" />
<title>订单管理</title>
<link th:href="@{../static/css/page/backend/account_center.css}" rel="stylesheet" />
<link th:href="@{../static/css/style.css}" rel="stylesheet" />
<link th:href="@{../static/css/backend.css}" rel="stylesheet" />
<link th:href="@{../static/css/page/backend/order-manage.css}" rel="stylesheet" />
<link th:href="@{../plugins/datepicker/css/bootstrap.css}" rel="stylesheet" />
<link th:href="@{../plugins/datepicker/css/bootstrap-datepicker.css}" rel="stylesheet" />
<link th:href="@{../plugins/select2/css/select2.min.css}" rel="stylesheet" />
<script type="text/javascript" th:src="@{../static/js/jquery.js}"></script>
<script type="text/javascript" th:src="@{../static/js/common.js}"></script>
</head>
<body>
<div id="hd">
<!-- 顶部导航栏 -->
<div id="hd" th:include="admin/frame/nav :: #hd"></div>
<div class="header-nav">
<div class="navigation-inner">
<div class="logo">
<h1>
<a href="mgt_console.html" class="logo-img">电商运营平台</a>
</h1>
</div>
<div class="header-categories" id="nav-con">
<ul class="menu">
<li class="menu-item selected">
<h2>
<a href="mgt_console.html">安全总览</a>
</h2>
</li>
</ul>
</div>
<div id="bd">
<div class="main-wrap-bk clearfix">
<!-- 左边菜单栏 -->
<div class="" th:replace="admin/frame/sider_bar_bk :: .sider-bar-bk"></div>
<div class="user-message">
<span class="label label-default">32</span>
</div>
<div class="login-user">
<i class="iconfont">&#xe60d;</i>
<a class="javascript:;">您好!系统管理员</a>
<i class="iconfont">&#xe61c;</i>
<div class="user-opt-panel">
<ul class="user-opt">
<li>
<a href="account_center.html">
<i class="iconfont">&#xe60d;</i>
<span class="pf-opt-name">账户信息</span>
</a>
</li>
<li>
<a href="order.html">
<i class="iconfont">&#xe60c;</i>
<span class="pf-opt-name">订单信息</span>
</a>
</li>
<li>
<a href="javascript:;">
<i class="iconfont">&#xe60f;</i>
<span class="pf-opt-name">结算信息</span>
</a>
</li>
<li class="div-line">
<a href="javascript:;">
<i class="iconfont">&#xe60e;</i>
<span class="pf-opt-name">资产信息</span>
</a>
</li>
<li class="div-line">
<a href="login.html">
<i class="iconfont">&#xe60b;</i>
<span class="pf-opt-name">退出</span>
</a>
</li>
</ul>
</div>
</div>
</div>
<!-- 用户中心 -->
<div class="bd-content-wrap" th:replace="admin/user/user_content_wrap :: .bd-content-wrap"></div>
</div>
</div>
<div id="bd">
<div class="main-wrap-bk clearfix">
<div class="sider-bar-bk">
<div class="sider-bar-hd">
<i class="iconfont">&#xe616;</i>
<span>云服务</span>
</div>
<ul class="sider-nav">
<li class="sider-nav-item current">
<h3>
<a href="javascript:;">
<i class="iconfont">&#xe610;</i>
<span>云服务总览</span>
<i class="iconfont arrow-right">&#xe611;</i>
<i class="iconfont arrow-down">&#xe615;</i>
</a>
</h3>
<ul class="sider-nav-s">
<li class="current"><a href="order.html">订单管理</a></li>
<li><a href="order-detail.html">订单详情</a></li>
<li><a href="order-handle.html">订单处理</a></li>
</ul>
</li>
<li class="sider-nav-item">
<h3>
<a href="javascript:;">
<i class="iconfont">&#xe613;</i>
<span>云检测预警</span>
<i class="iconfont arrow-right">&#xe611;</i>
<i class="iconfont arrow-down">&#xe615;</i>
</a>
</h3>
<ul class="sider-nav-s">
<li><a href="#">WEB网站检测服务</a></li>
<li><a href="#">WEB网站检测服务</a></li>
<li><a href="#">WEB网站检测服务</a></li>
<li><a href="#">WEB网站检测服务</a></li>
</ul>
</li>
</ul>
</div>
<div class="bd-content-wrap">
<div class="bd-content">
<div class="title-left-line">账户中心</div>
<div class="basic-info">
<div class="info-title">基本信息<a href="javascript:;" class="modify">[修改]</a></div>
<div class="search-box">
<div class="form-kv clearfix">
<div class="form-kv-label">单位账号:</div>
<div class="form-content">
<span>kie*****@163.com</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">单位名称:</div>
<div class="form-content">
<span>市地税局</span>
<i class="iconfont">&#xe652;</i>
<span class="status">已认证</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">单位管理员:</div>
<div class="form-content">
<span>张华明</span>
<i class="iconfont">&#xe652;</i>
<span class="status">已认证</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">联系电话:</div>
<div class="form-content">
<span>0755-****5678</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">手机号码:</div>
<div class="form-content">
<span>137****8564</span>
<i class="iconfont">&#xe652;</i>
<span class="status">已认证</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">邮箱地址:</div>
<div class="form-content">
<span>kie*****@163.com</span>
<i class="iconfont">&#xe652;</i>
<span class="status">已认证</span>
</div>
</div>
</div>
</div>
<div class="safe-setting">
<div class="info-title">安全设置</div>
<div class="search-box">
<div class="form-kv clearfix">
<div class="form-kv-label">登录密码:</div>
<div class="form-content clearfix">
<p class="content-value">安全性高的密码可以使账号安全,建议您定期更换密码,设置一个包含字母,符号或数字中至少两种且长度超过6位的密码</p>
<i class="iconfont">&#xe652;</i>
<span class="status">已设置</span>
<a href="javascript:;">修改</a>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">手机绑定:</div>
<div class="form-content clearfix">
<p class="content-value">您已绑定了手机<span>137****6789,</span>您的手机号可以直接用户登录、找回密码</p>
<i class="iconfont no">&#xe617;</i>
<span class="status no">未设置</span>
<a href="javascript:;">修改</a>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">邮箱绑定:</div>
<div class="form-content clearfix">
<p class="content-value">您已绑定了 kie****@163.com</p>
<i class="iconfont no">&#xe617;</i>
<span class="status no">未设置</span>
<a href="javascript:;">修改</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript" th:src="@{../static/js/jquery.js}"></script>
<script type="text/javascript" th:src="@{../static/js/common.js}"></script>
<script type="text/javascript" th:src="@{../plugins/datepicker/js/bootstrap-datepicker.js}"></script>
<script type="text/javascript" th:src="@{../plugins/datepicker/locales/bootstrap-datepicker.zh-CN.min.js}"></script>
<script type="text/javascript" th:src="@{../static/js/jquery.pagination.js}"></script>
<script type="text/javascript" th:src="@{../plugins/select2/js/select2.min.js}"></script>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/common.js"></script>
<script type="text/javascript">
$("#starttime").datepicker({
"language":"zh-CN",
"format": 'yyyy-mm-dd'
})
$("#endtime").datepicker({
"language":"zh-CN",
"format": 'yyyy-mm-dd'
})
$(".date-pick .iconfont").click(function(){
$(this).prev().trigger("focus");
});
$('.pagin').pagination(200, {
current_page: 5,
items_per_page: 10,
callback: function(page, panel, evt){
}
});
$('table').on('click', 'a', function() {
$('.s-page').show();
});
$('.s-page').on('click', '.close-spage', function() {
$('.s-page').hide();
});
$('select').select2();
</script>
......
<div class="bd-content-wrap" xmlns:th="http://www.w3.org/1999/xhtml">
<div class="bd-content">
<div class="title-left-line">账户中心</div>
<div class="basic-info">
<div class="info-title">基本信息<a href="javascript:;" class="modify">[修改]</a></div>
<div class="search-box">
<div class="form-kv clearfix">
<div class="form-kv-label">单位账号:</div>
<div class="form-content">
<span th:text="${session.sessionUser.username}">kie*****@163.com</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">单位名称:</div>
<div class="form-content">
<span>市地税局</span>
<i class="iconfont">&#xe652;</i>
<span class="status">已认证</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">单位管理员:</div>
<div class="form-content">
<span th:text="${session.sessionUser.mark}">管理员</span>
<i class="iconfont">&#xe652;</i>
<span class="status">已认证</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">手机号码:</div>
<div class="form-content">
<span th:text="${session.sessionUser.phone}">137****8564</span>
<i class="iconfont">&#xe652;</i>
<span class="status">已认证</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">邮箱地址:</div>
<div class="form-content">
<span th:text="${session.sessionUser.email}">kie*****@163.com</span>
<i class="iconfont">&#xe652;</i>
<span class="status">已认证</span>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">上次登录:</div>
<div class="form-content">
<span th:text="${{session.sessionUser.lastLogin}}">2018-08-08</span>
</div>
</div>
</div>
</div>
<div class="safe-setting">
<div class="info-title">安全设置</div>
<div class="search-box">
<div class="form-kv clearfix">
<div class="form-kv-label">登录密码:</div>
<div class="form-content clearfix">
<p class="content-value">安全性高的密码可以使账号安全,建议您定期更换密码,设置一个包含字母,符号或数字中至少两种且长度超过6位的密码</p>
<i class="iconfont">&#xe652;</i>
<span class="status">已设置</span>
<a href="javascript:;">修改</a>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">手机绑定:</div>
<div class="form-content clearfix">
<p class="content-value">您已绑定了手机<span>137****6789,</span>您的手机号可以直接用户登录、找回密码</p>
<i class="iconfont no">&#xe617;</i>
<span class="status no">未设置</span>
<a href="javascript:;">修改</a>
</div>
</div>
<div class="form-kv clearfix">
<div class="form-kv-label">邮箱绑定:</div>
<div class="form-content clearfix">
<p class="content-value">您已绑定了 kie****@163.com</p>
<i class="iconfont no">&#xe617;</i>
<span class="status no">未设置</span>
<a href="javascript:;">修改</a>
</div>
</div>
</div>
</div>
</div>
</div>
\ No newline at end of file
......@@ -17,4 +17,6 @@ import org.springframework.stereotype.Controller;
@Controller
public class ShopCartController {
}
.zoomPad{
position:relative;
float:left;
z-index:99;
cursor:crosshair;
}
.zoomPreload{
-moz-opacity:0.8;
opacity: 0.8;
filter: alpha(opacity = 80);
color: #333;
font-size: 12px;
font-family: Tahoma;
text-decoration: none;
border: 1px solid #CCC;
background-color: white;
padding: 8px;
text-align:center;
background-image: url(../images/zoomloader.gif);
background-repeat: no-repeat;
background-position: 43px 30px;
z-index:110;
width:90px;
height:43px;
position:absolute;
top:0px;
left:0px;
* width:100px;
* height:49px;
}
.zoomPup{
overflow:hidden;
background-color: #FFF;
-moz-opacity:0.6;
opacity: 0.6;
filter: alpha(opacity = 60);
z-index:120;
position:absolute;
border:1px solid #CCC;
z-index:101;
cursor:crosshair;
}
.zoomOverlay{
position:absolute;
left:0px;
top:0px;
background:#FFF;
/*opacity:0.5;*/
z-index:5000;
width:100%;
height:100%;
display:none;
z-index:101;
}
.zoomWindow{
position:absolute;
left:110%;
top:40px;
background:#FFF;
z-index:6000;
height:auto;
z-index:10000;
z-index:110;
}
.zoomWrapper{
position:relative;
border:1px solid #999;
z-index:110;
}
.zoomWrapperTitle{
display:block;
background:#999;
color:#FFF;
height:18px;
line-height:18px;
width:100%;
overflow:hidden;
text-align:center;
font-size:10px;
position:absolute;
top:0px;
left:0px;
z-index:120;
-moz-opacity:0.6;
opacity: 0.6;
filter: alpha(opacity = 60);
}
.zoomWrapperImage{
display:block;
position:relative;
overflow:hidden;
z-index:110;
}
.zoomWrapperImage img{
border:0px;
display:block;
position:absolute;
z-index:101;
}
.zoomIframe{
z-index: -1;
filter:alpha(opacity=0);
-moz-opacity: 0.80;
opacity: 0.80;
position:absolute;
display:block;
}
/*********************************************************
/ When clicking on thumbs jqzoom will add the class
/ "zoomThumbActive" on the anchor selected
/*********************************************************/
\ No newline at end of file
<footer class="footer">
<div class="layout clearfix">
<!--footService-->
<div class="footer-service">
<dl>
<dt><em class="icon-aq"></em>购物指南</dt>
<dd><a href="#">咨询与投诉</a></dd>
</dl>
<dl>
<dt><em class="icon-service"></em>售后服务</dt>
<dd><a href="#">七天包退</a></dd>
<dd><a href="#">十五天包换</a></dd>
<dd><a href="#">手机维修咨询</a></dd>
</dl>
<dl>
<dt><em class="icon-pay"></em>支付方式</dt>
<dd><a href="#">网上支付</a></dd>
</dl>
</div>
<!--//footService-->
<!--在线咨询-->
<ul class="online">
<li class="line1"><a href="#"></a></li>
<li class="line2"><a href="#"></a></li>
<li class="line3"><a href="#"></a></li>
<li class="line4"><a href="#"></a></li>
<li class="line5"><a href="#"></a></li>
<li class="line6"><a href="#"></a></li>
</ul>
<!--在线咨询-->
</div>
<!--copyright-->
<div class="footer-copyright">
<p class="copyright">版权所有 ©2017 </p>
<s class="cr-icon"></s> </div>
<!--//copyright-->
</footer>
\ No newline at end of file
<div class="headerMain layout clearfix">
<!--logo-->
<h1 class="siteLogo"><a href="#" title="商城" class="siteLogo-homepage"></a><a href="#" title="商城" class="siteLogo-mallpage"></a></h1>
<!--//logo-->
<!--search-->
<div class="search">
<div class="search-area">
<input type="text" placeholder="请输入搜索关键字" class="search-input-text" />
<input type="button" title="搜索" class="search-input-submit" />
<div class="search-suggest" style="display:none;">
<ol>
<li class="search-suggest-key">三星<b>I9500</b></li>
<li class="search-suggest-key">三星<b>I9501</b></li>
<li class="search-suggest-key">三星<b>I9001</b></li>
<li class="search-suggest-key">三星<b>I9505</b></li>
<li class="search-suggest-key">三星<b>I9503</b></li>
</ol>
</div>
</div>
<p class="search-hotkey">热门搜索:<a href="#">三星手机</a><a href="#">手机套</a><a href="#">手机电源线</a></p>
</div>
<!--//search-->
<!--我的翼猫-->
<div class="myYmall"> <em class="icon-user"></em><a href="#">我的翼猫</a> </div>
<!--//我的翼猫-->
<!--去购物车结算-->
<div class="to-cart">
<dl>
<dt> <span class="shop-amount">0</span> <em class="icon-cart"></em> <a href="#">去购物车结算</a> <span class="angle"></span> </dt>
<dd style="display:none;">
<!--购物车为空-->
<div class="nogoods" style="display:none;"> 购物车中还没有商品,赶紧选购吧! </div>
<!--//购物车为空-->
<!--有商品-->
<div class="cart-table">
<div class="cart-table-body">
<ul class="cart-item clearfix">
<li class="item-img"><a href="#"><img th:src="@{/static/picture/img_small_350x350.jpg}" /></a></li>
<li class="item-intro"><a href="#">三星手机NNOTOS9S</a></li>
<li class="item-extra"><em class="item-price"><span>799</span></em>x<span>2</span>
<p><a href="#" class="delete">删除</a></p>
</li>
</ul>
</div>
<div class="cart-info">
<div class="cart-bottom">
<p><span class="f-red2">1</span>件商品,共计<em class="item-price"><span>5399</span></em> <br />
<a href="#" class="cart-goMyCart btn btn-red">去购物车结算</a> </p>
</div>
</div>
</div>
<!--//有商品-->
</dd>
</dl>
</div>
<!--//去购物车结算-->
<script>
$(function(){
$(".to-cart").hover(function(){
$(this).find(".angle").addClass("down").end().find("dt").addClass("selected").end().find("dd").show();
},function(){
$(this).find(".angle").removeClass("down").end().find("dt").removeClass("selected").end().find("dd").hide();
});
if($(".cart-table .cart-item").size()>2){
$(".cart-table .cart-table-body").css("overflow-y","auto");
}
});
</script>
</div>
\ No newline at end of file
<div class="headerNav">
<div class="layout">
<dl class="all-brands">
<dt class="all-brands-head">
<a href="#">全部商品分类</a>
</dt>
<dd class="all-brands-list" style="display:none;">
<div class="all-brands-item">
<h3>合约购机<i>NEW</i></h3>
<p>
<a href="#">三星</a>
<a href="#">Iphone</a>
<a href="#">小米</a>
</p>
<a href="#" class="more">更多</a>
</div>
<div class="all-brands-item">
<h3>手机套<em>91折起</em></h3>
<p>
<a href="#">银联充值</a>
<a href="#">易充值</a>
</p>
<a href="#" class="more">更多</a>
</div>
<div class="all-brands-item">
<h3>手机配件</h3>
<p>
<a href="#">2000元起</a>
<a href="#">3000元起</a>
</p>
<a href="#" class="more">更多</a>
</div>
<div class="all-brands-item">
<h3>杯子照片<em>91折起</em></h3>
<p>
<a href="#">银联充值</a>
<a href="#">易充值</a>
</p>
<a href="#" class="more">更多</a>
</div>
<div class="all-brands-item">
<h3>优惠促销</h3>
<p>
<a href="#">话费服务</a>
<a href="#">话费服务</a>
</p>
<a href="#" class="more">更多</a>
</div>
</dd>
</dl>
<script>
<!--商品分类显示隐藏-->
$(function(){
$(".all-brands").hover(
function(){
$(this).find(".all-brands-list").show();
},function(){
$(this).find(".all-brands-list").hide();
});
});
</script>
<div class="headerNav-main clearfix">
<!--headerNav-nav-->
<nav class="headerNav-nav">
<ul class="clearfix">
<li><a href="#" class="selected">首页</a></li>
<li><a href="#">手机汇</a></li>
<li><a href="#">聚优惠</a></li>
<li><a href="#">商业街</a></li>
</ul>
</nav>
<!--//headerNav-nav-->
</div>
</div>
</div>
\ No newline at end of file
......@@ -24,170 +24,14 @@
<!--header-->
<header class="header">
<!--topBar-->
<div class="topBar">
<div class="layout"> <span class="hello-notice f-orange1 f-b" style="position:absolute;left:50%;margin-left:-600px;top:1px;display:block;font-size:14px;text-align:left;">本商城在试运行阶段,暂不接收任何订单。</span>
<!--welcome-->
<span class="topBar-userWelcome" th:if="${session.sessionUser == null}">您好,欢迎来商城!<a th:href="@{/portal/toLogin.do}" id="loginHref" rel="popbox">[登录]</a> <a id="registerHref" th:href="@{/portal/toLogin.do}">[注册]</a></span>
<!--登录后 -->
<span class="topBar-userWelcome logined" th:if="${session.sessionUser != null}" th:onshow="true">
欢迎您
<span class="user">
<a href="#" class="user-link" th:text="${session.sessionUser}"><em class="icon-arr"></em></a>
<span class="user-cs" style="display:none;">
<span class="user-cs-con">
<s class="icon-arr"></s>
<p><a th:href="@{/templates/admin/user/toUserCenter.do}">个人中心</a></p>
<p><a href="#">退出登录</a></p>
</span>
</span>
</span>
</span>
<script>
$(function(){
$(".user").hover(function(){
$(this).find(".user-cs").show();
},function(){
$(this).find(".user-cs").hide();
});
});
</script>
<!--//welcome-->
<!--topBar-menu-->
<span class="topBar-menu"> <a href="#">商户入驻申请</a>| <a href="#">我的订单</a>| <a href="#">网上营业厅</a> </span>
<!--//topBar-menu-->
</div>
</div>
<div class="topBar" th:replace="/top_bar :: .topBar"></div>
<!--//topBar-->
<!--headerMain-->
<div class="headerMain layout clearfix">
<!--logo-->
<h1 class="siteLogo"><a href="#" title="商城" class="siteLogo-homepage"></a><a href="#" title="商城" class="siteLogo-mallpage"></a></h1>
<!--//logo-->
<!--search-->
<div class="search">
<div class="search-area">
<input type="text" placeholder="请输入搜索关键字" class="search-input-text" />
<input type="button" title="搜索" class="search-input-submit" />
<div class="search-suggest" style="display:none;">
<ol>
<li class="search-suggest-key">三星<b>I9500</b></li>
<li class="search-suggest-key">三星<b>I9501</b></li>
<li class="search-suggest-key">三星<b>I9001</b></li>
<li class="search-suggest-key">三星<b>I9505</b></li>
<li class="search-suggest-key">三星<b>I9503</b></li>
</ol>
</div>
</div>
<p class="search-hotkey">热门搜索:<a href="#">三星手机</a><a href="#">手机套</a><a href="#">手机电源线</a></p>
</div>
<!--//search-->
<!--我的翼猫-->
<div class="myYmall"> <em class="icon-user"></em><a href="#">我的翼猫</a> </div>
<!--//我的翼猫-->
<!--去购物车结算-->
<div class="to-cart">
<dl>
<dt> <span class="shop-amount">0</span> <em class="icon-cart"></em> <a href="#">去购物车结算</a> <span class="angle"></span> </dt>
<dd style="display:none;">
<!--购物车为空-->
<div class="nogoods" style="display:none;"> 购物车中还没有商品,赶紧选购吧! </div>
<!--//购物车为空-->
<!--有商品-->
<div class="cart-table">
<div class="cart-table-body">
<ul class="cart-item clearfix">
<li class="item-img"><a href="#"><img th:src="@{/static/picture/img_small_350x350.jpg}" /></a></li>
<li class="item-intro"><a href="#">三星手机NNOTOS9S</a></li>
<li class="item-extra"><em class="item-price"><span>799</span></em>x<span>2</span>
<p><a href="#" class="delete">删除</a></p>
</li>
</ul>
</div>
<div class="cart-info">
<div class="cart-bottom">
<p><span class="f-red2">1</span>件商品,共计<em class="item-price"><span>5399</span></em> <br />
<a href="#" class="cart-goMyCart btn btn-red">去购物车结算</a> </p>
</div>
</div>
</div>
<!--//有商品-->
</dd>
</dl>
</div>
<!--//去购物车结算-->
<script>
$(function(){
$(".to-cart").hover(function(){
$(this).find(".angle").addClass("down").end().find("dt").addClass("selected").end().find("dd").show();
},function(){
$(this).find(".angle").removeClass("down").end().find("dt").removeClass("selected").end().find("dd").hide();
});
if($(".cart-table .cart-item").size()>2){
$(".cart-table .cart-table-body").css("overflow-y","auto");
}
});
</script>
</div>
<div class="headerMain layout clearfix" th:replace="/header_main :: .headerMain"></div>
<!--//headerMain-->
<!--headerNav-->
<div class="headerNav">
<div class="layout">
<dl class="all-brands">
<dt class="all-brands-head"> <a href="#">全部商品分类</a> </dt>
<dd class="all-brands-list">
<div class="wrap" th:each="c : ${categories}">
<div class="all-sort-list">
<div class="item bo">
<h3>
<a href="" th:text="${c.categoryName}"></a></h3>
<div class="item-list clearfix">
<div class="close">x</div>
<div class="subitem" th:each="s: ${c.subCategorys}">
<dl class="fore1">
<dt th:text="${s.categoryName}"><a href="#"></a></dt>
<dd>
<em th:each="ss : ${s.subCategorys} "><a href="#" th:text="${ss.categoryName}"></a></em>
</dd>
</dl>
</div>
</div>
</div>
</div>
</div>
</dd>
<script type="text/javascript">
$('.all-sort-list > .item').hover(function(){
$(this).addClass('hover');
$(this).children('.item-list').css('display','block');
},function(){
$(this).removeClass('hover');
$(this).children('.item-list').css('display','none');
});
$('.item > .item-list > .close').click(function(){
$(this).parent().parent().removeClass('hover');
$(this).parent().hide();
});
</script>
</dl>
<div class="headerNav-main clearfix">
<!--headerNav-nav-->
<nav class="headerNav-nav">
<ul class="clearfix">
<li><a th:href="@{/portal/toIndex.do}" class="selected">首页</a></li>
<li><a href="#">手机汇</a></li>
<li><a href="#">聚优惠</a></li>
<li><a href="#">商业街</a></li>
</ul>
</nav>
<!--//headerNav-nav-->
</div>
</div>
</div>
<div class="headerNav" th:replace="/index_header_nav :: .headerNav"></div>
<!--//headerNav-->
</header>
<!--//header-->
......@@ -209,45 +53,6 @@
<li></li>
</ul>
</div>
<script type="text/javascript">
//banner
$(document).ready(function(){
var demo = $(".banner");
var btn = $(".banner-btn li");
var slide = $(".banner-img ul");
var slideItem = slide.find("li");
var c = 0, speed = 4000 , t;
btn.each(function(number){
$(this).click(function(){
$(this).addClass("current").siblings().removeClass("current");
slide.animate({"left":-slideItem.width()*number},300);
c = number;
});
});
if(btn.size()>1){
autoSlide();
}
function timedCount()
{
c = c + 1;
if(c>=btn.size())c = 0;
btn.eq(c).click();
}
function autoSlide(){
t = setInterval(function(){timedCount();},speed);
}
//鼠标移入停止播放
demo.mouseover(function(){
clearInterval(t);
});
demo.mouseout(function(){
autoSlide();
});
});
</script>
<!--//banner-->
<!--快捷充值-->
<div class="index-fast-recharge">
......@@ -301,49 +106,47 @@
</div>
<!--//container-->
<!--footer-->
<footer class="footer">
<div class="layout clearfix">
<!--footService-->
<div class="footer-service">
<dl>
<dt><em class="icon-aq"></em>购物指南</dt>
<dd><a href="#">咨询与投诉</a></dd>
</dl>
<dl>
<dt><em class="icon-service"></em>售后服务</dt>
<dd><a href="#">七天包退</a></dd>
<dd><a href="#">十五天包换</a></dd>
<dd><a href="#">手机维修咨询</a></dd>
</dl>
<dl>
<dt><em class="icon-pay"></em>支付方式</dt>
<dd><a href="#">网上支付</a></dd>
</dl>
</div>
<!--//footService-->
<!--在线咨询-->
<ul class="online">
<li class="line1"><a href="#"></a></li>
<li class="line2"><a href="#"></a></li>
<li class="line3"><a href="#"></a></li>
<li class="line4"><a href="#"></a></li>
<li class="line5"><a href="#"></a></li>
<li class="line6"><a href="#"></a></li>
</ul>
<!--在线咨询-->
</div>
<!--copyright-->
<div class="footer-copyright">
<p class="copyright">版权所有 ©2017 </p>
<s class="cr-icon"></s> </div>
<!--//copyright-->
</footer>
<footer class="footer" th:replace="footer :: .footer"></footer>
<!--//footer-->
<script>
<script type="text/javascript">
//banner
$(document).ready(function(){
var demo = $(".banner");
var btn = $(".banner-btn li");
var slide = $(".banner-img ul");
var slideItem = slide.find("li");
var c = 0, speed = 4000 , t;
btn.each(function(number){
$(this).click(function(){
$(this).addClass("current").siblings().removeClass("current");
slide.animate({"left":-slideItem.width()*number},300);
c = number;
});
});
if(btn.size()>1){
autoSlide();
}
function timedCount()
{
c = c + 1;
if(c>=btn.size())c = 0;
btn.eq(c).click();
}
function autoSlide(){
t = setInterval(function(){timedCount();},speed);
}
//鼠标移入停止播放
demo.mouseover(function(){
clearInterval(t);
});
demo.mouseout(function(){
autoSlide();
});
});
</script>
</body>
</html>
<div class="headerNav" xmlns:th="http://www.w3.org/1999/xhtml">
<div class="layout">
<dl class="all-brands">
<dt class="all-brands-head"> <a href="#">全部商品分类</a> </dt>
<dd class="all-brands-list">
<div class="wrap" th:each="c : ${categories}">
<div class="all-sort-list">
<div class="item bo">
<h3>
<a href="" th:text="${c.categoryName}"></a></h3>
<div class="item-list clearfix">
<div class="close">x</div>
<div class="subitem" th:each="s: ${c.subCategorys}">
<dl class="fore1">
<dt th:text="${s.categoryName}"><a href="#"></a></dt>
<dd>
<em th:each="ss : ${s.subCategorys} "><a href="#" th:text="${ss.categoryName}"></a></em>
</dd>
</dl>
</div>
</div>
</div>
</div>
</div>
</dd>
<script type="text/javascript">
$('.all-sort-list > .item').hover(function(){
$(this).addClass('hover');
$(this).children('.item-list').css('display','block');
},function(){
$(this).removeClass('hover');
$(this).children('.item-list').css('display','none');
});
$('.item > .item-list > .close').click(function(){
$(this).parent().parent().removeClass('hover');
$(this).parent().hide();
});
</script>
</dl>
<div class="headerNav-main clearfix">
<!--headerNav-nav-->
<nav class="headerNav-nav">
<ul class="clearfix">
<li><a th:href="@{/portal/toIndex.do}" class="selected">首页</a></li>
<li><a href="#">手机汇</a></li>
<li><a href="#">聚优惠</a></li>
<li><a href="#">商业街</a></li>
</ul>
</nav>
<!--//headerNav-nav-->
</div>
</div>
</div>
\ No newline at end of file
......@@ -16,203 +16,13 @@
<!--header-->
<header class="header">
<!--topBar-->
<div class="topBar">
<div class="layout">
<!--welcome-->
<span class="topBar-userWelcome">您好,欢迎来中国电信翼猫商城!<a href="#">[登录]</a> <a href="#">[注册]</a></span>
<!--登录后
<span class="topBar-userWelcome logined">
欢迎您
<span class="user">
<a href="#" class="user-link">fanyanxia<em class="icon-arr"></em></a>
<span class="user-cs" style="display:none;">
<span class="user-cs-con">
<s class="icon-arr"></s>
<p><a href="#">个人中心</a></p>
<p><a href="#">退出登录</a></p>
</span>
</span>
</span>
|
</span>
<script>
$(function(){
$(".user").hover(function(){
$(this).find(".user-cs").show();
},function(){
$(this).find(".user-cs").hide();
});
});
</script>
-->
<!--//welcome-->
<!--topBar-menu-->
<span class="topBar-menu">
<a href="#">商户入驻申请</a>|
<a href="#">我的订单</a>|
<a href="#">网上营业厅</a>
</span>
<!--//topBar-menu-->
</div>
</div>
<div class="topBar" th:replace="/top_bar :: .topBar"></div>
<!--//topBar-->
<!--headerMain-->
<div class="headerMain layout clearfix">
<!--logo-->
<h1 class="siteLogo"><a href="#" title="中国电信" class="siteLogo-homepage"></a><a href="#" title="翼猫商城" class="siteLogo-mallpage"></a></h1>
<!--//logo-->
<!--search-->
<div class="search">
<div class="search-area">
<input type="text" placeholder="请输入搜索关键字" class="search-input-text" />
<input type="button" title="搜索" class="search-input-submit" />
<div class="search-suggest" style="display:none;">
<ol>
<li class="search-suggest-key">三星<b>I9500</b></li>
<li class="search-suggest-key">三星<b>I9501</b></li>
<li class="search-suggest-key">三星<b>I9001</b></li>
<li class="search-suggest-key">三星<b>I9505</b></li>
<li class="search-suggest-key">三星<b>I9503</b></li>
</ol>
</div>
</div>
<p class="search-hotkey">热门搜索:<a href="#">三星手机</a><a href="#">手机套</a><a href="#">手机电源线</a></p>
</div>
<!--//search-->
<!--我的翼猫-->
<div class="myYmall">
<em class="icon-user"></em><a href="#">我的翼猫</a>
</div>
<!--//我的翼猫-->
<!--去购物车结算-->
<div class="to-cart">
<dl>
<dt>
<span class="shop-amount">0</span>
<em class="icon-cart"></em>
<a href="#">去购物车结算</a>
<span class="angle"></span>
</dt>
<dd style="display:none;">
<!--购物车为空-->
<div class="nogoods" style="display:none;">
购物车中还没有商品,赶紧选购吧!
</div>
<!--//购物车为空-->
<!--有商品-->
<div class="cart-table">
<div class="cart-table-body">
<ul class="cart-item clearfix">
<li class="item-img"><a href="#"><img th:src="@{/static/picture/small_55x55.jpg}" /></a></li>
<li class="item-intro"><a href="#">三星手机NNOTOS9S</a></li>
<li class="item-extra"><em class="item-price"><span>799</span></em>x<span>2</span><p><a href="#" class="delete">删除</a></p></li>
</ul>
</div>
<div class="cart-info">
<div class="cart-bottom">
<p>
<span class="f-red2">2</span>件商品,共计<em class="item-price"><span>5399</span></em>
<br />
<a href="#" class="cart-goMyCart btn btn-red">去购物车结算</a>
</p>
</div>
</div>
</div>
<!--//有商品-->
</dd>
</dl>
</div>
<!--//去购物车结算-->
<script>
$(function(){
$(".to-cart").hover(function(){
$(this).find(".angle").addClass("down").end().find("dt").addClass("selected").end().find("dd").show();
},function(){
$(this).find(".angle").removeClass("down").end().find("dt").removeClass("selected").end().find("dd").hide();
});
if($(".cart-table .cart-item").size()>2){
$(".cart-table .cart-table-body").css("overflow-y","auto");
}
});
</script>
</div>
<div class="headerMain layout clearfix" th:replace="/header_main :: .headerMain"></div>
<!--//headerMain-->
<!--headerNav-->
<div class="headerNav">
<div class="layout">
<dl class="all-brands">
<dt class="all-brands-head">
<a href="#">全部商品分类</a>
</dt>
<dd class="all-brands-list" style="display:none;">
<div class="all-brands-item">
<h3>合约购机<i>NEW</i></h3>
<p>
<a href="#">三星</a>
<a href="#">Iphone</a>
<a href="#">小米</a>
</p>
<a href="#" class="more">更多</a>
</div>
<div class="all-brands-item">
<h3>手机套<em>91折起</em></h3>
<p>
<a href="#">银联充值</a>
<a href="#">易充值</a>
</p>
<a href="#" class="more">更多</a>
</div>
<div class="all-brands-item">
<h3>手机配件</h3>
<p>
<a href="#">2000元起</a>
<a href="#">3000元起</a>
</p>
<a href="#" class="more">更多</a>
</div>
<div class="all-brands-item">
<h3>杯子照片<em>91折起</em></h3>
<p>
<a href="#">银联充值</a>
<a href="#">易充值</a>
</p>
<a href="#" class="more">更多</a>
</div>
<div class="all-brands-item">
<h3>优惠促销</h3>
<p>
<a href="#">话费服务</a>
<a href="#">话费服务</a>
</p>
<a href="#" class="more">更多</a>
</div>
</dd>
</dl>
<script>
<!--商品分类显示隐藏-->
$(function(){
$(".all-brands").hover(
function(){
$(this).find(".all-brands-list").show();
},function(){
$(this).find(".all-brands-list").hide();
});
});
</script>
<div class="headerNav-main clearfix">
<!--headerNav-nav-->
<nav class="headerNav-nav">
<ul class="clearfix">
<li><a href="#" class="selected">首页</a></li>
<li><a href="#">手机汇</a></li>
<li><a href="#">聚优惠</a></li>
<li><a href="#">商业街</a></li>
</ul>
</nav>
<!--//headerNav-nav-->
</div>
</div>
</div>
<div class="headerNav" th:replace="/header_nav :: .headerNav"></div>
<!--//headerNav-->
</header>
<!--//header-->
......@@ -572,45 +382,7 @@
</div>
<!--//container-->
<!--footer-->
<footer class="footer">
<div class="layout clearfix">
<!--footService-->
<div class="footer-service">
<dl>
<dt><em class="icon-aq"></em>购物指南</dt>
<dd><a href="#">咨询与投诉</a></dd>
</dl>
<dl>
<dt><em class="icon-service"></em>售后服务</dt>
<dd><a href="#">七天包退</a></dd>
<dd><a href="#">十五天包换</a></dd>
<dd><a href="#">手机维修咨询</a></dd>
</dl>
<dl>
<dt><em class="icon-pay"></em>支付方式</dt>
<dd><a href="#">网上支付</a></dd>
</dl>
</div>
<!--//footService-->
<!--在线咨询-->
<ul class="online">
<li class="line1"><a href="#"></a></li>
<li class="line2"><a href="#"></a></li>
<li class="line3"><a href="#"></a></li>
<li class="line4"><a href="#"></a></li>
<li class="line5"><a href="#"></a></li>
<li class="line6"><a href="#"></a></li>
</ul>
<!--在线咨询-->
</div>
<!--copyright-->
<div class="footer-copyright">
<p class="footer-nav"><a href="#">关于我们</a> | <a href="#">网厅公告</a> | <a href="#">网站使用帮助</a> | <a href="#">网站导航</a> | <a href="#">业务合作</a> | <a href="#">友情链接</a></p>
<p class="copyright">版权所有 ©2009 中国电信集团公司 [ 增值电信业务经营许可证 A2.B1.B2-20090001 ] ICP证号京ICP备 09031924号</p>
<s class="cr-icon"></s>
</div>
<!--//copyright-->
</footer>
<footer class="footer" th:replace="/footer :: .footer"></footer>
<!--//footer-->
</body>
......
<!DOCTYPE HTML>
<html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8" />
<title>成功加入购物车</title>
......@@ -12,136 +13,10 @@
<!--header-->
<header class="header">
<!--topBar-->
<div class="topBar">
<div class="layout">
<!--welcome-->
<span class="topBar-userWelcome">您好,欢迎来中国电信翼猫商城!<a href="#">[登录]</a> <a href="#">[注册]</a></span>
<!--登录后
<span class="topBar-userWelcome logined">
欢迎您
<span class="user">
<a href="#" class="user-link">fanyanxia<em class="icon-arr"></em></a>
<span class="user-cs" style="display:none;">
<span class="user-cs-con">
<s class="icon-arr"></s>
<p><a href="#">个人中心</a></p>
<p><a href="#">退出登录</a></p>
</span>
</span>
</span>
|
</span>
<script>
$(function(){
$(".user").hover(function(){
$(this).find(".user-cs").show();
},function(){
$(this).find(".user-cs").hide();
});
});
</script>
-->
<!--//welcome-->
<!--topBar-menu-->
<span class="topBar-menu">
<a href="#">商户入驻申请</a>|
<a href="#">我的订单</a>|
<a href="#">网上营业厅</a>
</span>
<!--//topBar-menu-->
</div>
</div>
<div class="topBar" th:replace="top_bar :: .topBar"></div>
<!--//topBar-->
<!--headerMain-->
<div class="headerMain layout clearfix">
<!--logo-->
<h1 class="siteLogo"><a href="#" title="中国电信" class="siteLogo-homepage"></a><a href="#" title="翼猫商城" class="siteLogo-mallpage"></a></h1>
<!--//logo-->
<!--search-->
<div class="search">
<div class="search-area clearfix">
<input type="text" placeholder="请输入搜索关键字" class="search-input-text" />
<input type="button" title="搜索" class="search-input-submit">
</div>
<div class="search-suggest" style="display:none;">
<ol>
<li class="search-suggest-key">三星<b>I9500</b></li>
<li class="search-suggest-key">三星<b>I9501</b></li>
<li class="search-suggest-key">三星<b>I9001</b></li>
<li class="search-suggest-key">三星<b>I9505</b></li>
<li class="search-suggest-key">三星<b>I9503</b></li>
</ol>
</div>
<p class="search-hotkey">热门搜索:<a href="#">三星手机</a><a href="#">手机套</a><a href="#">手机电源线</a></p>
</div>
<!--//search-->
<!--我的翼猫-->
<div class="myYmall">
<em class="icon-user"></em><a href="#">我的翼猫</a>
</div>
<!--//我的翼猫-->
<!--去购物车结算-->
<div class="to-cart">
<dl>
<dt>
<span class="shop-amount">0</span>
<em class="icon-cart"></em>
<a href="#">去购物车结算</a>
<span class="angle"></span>
</dt>
<dd style="display:none;">
<!--购物车为空-->
<div class="nogoods" style="display:none;">
购物车中还没有商品,赶紧选购吧!
</div>
<!--//购物车为空-->
<!--有商品-->
<div class="cart-table">
<div class="cart-table-body">
<ul class="cart-item clearfix">
<li class="item-img"><a href="#"><img src="picture/small_55x55.jpg" /></a></li>
<li class="item-intro"><a href="#">三星手机NNOTOS9S</a></li>
<li class="item-extra"><em class="item-price"><span>799</span></em>x<span>2</span><p><a href="#" class="delete">删除</a></p></li>
</ul>
<ul class="cart-item clearfix">
<li class="item-img"><a href="#"><img src="picture/small_55x55.jpg" /></a></li>
<li class="item-intro"><a href="#">三星手机NNOTOS9S</a></li>
<li class="item-extra"><em class="item-price"><span>799</span></em>x<span>2</span><p><a href="#" class="delete">删除</a></p></li>
</ul>
<ul class="cart-item clearfix">
<li class="item-img"><a href="#"><img src="picture/small_55x55.jpg" /></a></li>
<li class="item-intro"><a href="#">三星手机NNOTOS9S</a></li>
<li class="item-extra"><em class="item-price"><span>799</span></em>x<span>2</span><p><a href="#" class="delete">删除</a></p></li>
</ul>
</div>
<div class="cart-info">
<div class="cart-bottom">
<p>
<span class="f-red2">2</span>件商品,共计<em class="item-price"><span>5399</span></em>
<br />
<a href="#" class="cart-goMyCart btn btn-red">去购物车结算</a>
</p>
</div>
</div>
</div>
<!--//有商品-->
</dd>
</dl>
</div>
<!--//去购物车结算-->
<script>
$(function(){
$(".to-cart").hover(function(){
$(this).find(".angle").addClass("down").end().find("dt").addClass("selected").end().find("dd").show();
},function(){
$(this).find(".angle").removeClass("down").end().find("dt").removeClass("selected").end().find("dd").hide();
});
if($(".cart-table .cart-item").size()>2){
$(".cart-table .cart-table-body").css("overflow-y","auto");
}
});
</script>
</div>
<div class="headerMain layout clearfix" th:replace="/header_main :: .headerMain"></div>
<!--//headerMain-->
<!--headerNav-->
<div class="headerNav">
......
<!--topBar-->
<div class="topBar" xmlns:th="http://www.w3.org/1999/xhtml">
<div class="layout"> <span class="hello-notice f-orange1 f-b" style="position:absolute;left:50%;margin-left:-600px;top:1px;display:block;font-size:14px;text-align:left;">本商城在试运行阶段,暂不接收任何订单。</span>
<!--welcome-->
<span class="topBar-userWelcome" th:if="${session.sessionUser == null}">您好,欢迎来商城!<a th:href="@{/portal/toLogin.do}" id="loginHref" rel="popbox">[登录]</a> <a id="registerHref" th:href="@{/portal/toLogin.do}">[注册]</a></span>
<!--登录后 -->
<span class="topBar-userWelcome logined" th:if="${session.sessionUser != null}" th:onshow="true">
欢迎您
<span class="user">
<a href="#" class="user-link" th:text="${session.sessionUser}"><em class="icon-arr"></em></a>
<span class="user-cs" style="display:none;">
<span class="user-cs-con">
<s class="icon-arr"></s>
<p><a th:href="@{/templates/admin/user/toUserCenter.do}">个人中心</a></p>
<p><a href="#">退出登录</a></p>
</span>
</span>
</span>
</span>
<script>
$(function(){
$(".user").hover(function(){
$(this).find(".user-cs").show();
},function(){
$(this).find(".user-cs").hide();
});
});
</script>
<!--//welcome-->
<!--topBar-menu-->
<span class="topBar-menu"> <a href="#">商户入驻申请</a>| <a href="#">我的订单</a>| <a href="#">网上营业厅</a> </span>
<!--//topBar-menu-->
</div>
</div>
<!--//topBar-->
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册