Căn cứ vào SSM+MVC ba tầng giá cấu thực hiện người dùng quyền hạn quản lý hệ thống

Căn cứ vào SSM+MVC ba tầng giá cấu thực hiện người dùng quyền hạn quản lý hệ thống

Lời mở đầu

Bổn chu vì đại gia mang đến một cái đơn giản người dùng quyền hạn quản lý hệ thống, nên hệ thống chủ yếu chia làm 2 cái mô khối, người dùng quản lý cùng nhân vật quản lý, nhân vật nhưng nhiều tuyển quyền hạn, người dùng nhưng nhiều tuyển diễn viên, logic hơi chút phức tạp, hảo, phía dưới đi vào chủ đề

Người dùng quản lý hệ thống tóm tắt

Hệ thống duy trì phòng nhảy tường, người dùng không đăng nhập không thể tiến vào chủ trang

  1. Nhân vật mô khối,Yêu cầu thực hiện nhân vật bổ sung và cắt bỏ sửa tra, thả nhân vật nhưng nhiều tuyển quyền hạn, thực hiện phục tuyển khung quyền hạn hồi hiện
  2. Người dùng mô khối,Yêu cầu thực hiện người dùng bổ sung và cắt bỏ sửa tra, thực hiện phân trang,Phân trang yêu cầu thực hiện trước 5 sau 4,Thả người dùng nhưng nhiều tuyển diễn viên, thực hiện phục tuyển khung nhân vật hồi hiện

Hiệu quả đồ

在这里插入图片描述

Số liệu biểu chuẩn bị

t_user người dùng biểu

CREATETABLE`t_user`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`username`varchar(32)COLLATEutf8mb4_unicode_ciDEFAULTNULLCOMMENT' username xưng ',
`userpwd`varchar(32)COLLATEutf8mb4_unicode_ciDEFAULTNULLCOMMENT' người dùng mật mã ',
`realname`varchar(32)COLLATEutf8mb4_unicode_ciDEFAULTNULLCOMMENT' người dùng tên họ thật ',
PRIMARYKEY(`id`)
)

t_role nhân vật biểu

CREATETABLE`t_role`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`rolename`varchar(32)COLLATEutf8mb4_unicode_ciDEFAULTNULLCOMMENT' nhân vật tên ',
PRIMARYKEY(`id`)
)

t_user_role người dùng nhân vật liên hệ biểu

CREATETABLE`t_user_role`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`user_id`int(11)DEFAULTNULLCOMMENT' người dùng id',
`role_id`int(11)DEFAULTNULLCOMMENT' nhân vật id',
PRIMARYKEY(`id`)
)

t_permission quyền hạn biểu

CREATETABLE`t_permission`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`perm_code`varchar(128)COLLATEutf8mb4_unicode_ciDEFAULTNULLCOMMENT' quyền hạn mã ',
`perm_name`varchar(128)COLLATEutf8mb4_unicode_ciDEFAULTNULLCOMMENT' quyền hạn tên ',
PRIMARYKEY(`id`)
)

t_role_perm nhân vật quyền hạn liên hệ biểu

CREATETABLE`t_role_perm`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`role_id`int(11)DEFAULTNULLCOMMENT' nhân vật id',
`perm_code`varchar(128)COLLATEutf8mb4_unicode_ciDEFAULTNULLCOMMENT' quyền hạn mã ',
PRIMARYKEY(`id`)
)

Hạng mục kết cấu

在这里插入图片描述

Java nguyên mã kết cấu

在这里插入图片描述

Phối trí văn kiện

在这里插入图片描述

Đằng trước kết cấu

在这里插入图片描述

pom ỷ lại văn kiện

<?xml version= "1.0" encoding= "UTF-8"?>
<projectxmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http:// w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>org.example</groupId>
<artifactId>SSM-UserPermissionManagerSystem</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
<!-- https://mvnrepository /artifact/org.springframework/spring-aop -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>

<!-- https://mvnrepository /artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.4</version>
</dependency>

<!-- https://mvnrepository /artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>

<!-- mybatis ỷ lại tọa độ -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>

<!-- java liên tiếp mysql điều khiển tọa độ -->
<!-- https://mvnrepository /artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>

<!-- https://mvnrepository /artifact/com.mchange/c3p0 -->
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>

<!-- https://mvnrepository /artifact/org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.4.RELEASE</version>
</dependency>

<!-- https://mvnrepository /artifact/org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.4</version>
</dependency>

<!-- https://mvnrepository /artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.9.RELEASE</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>

<!-- https://mvnrepository /artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>

<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>

</project>

Dựng hạng mục

Lấy Maven phương thức sáng tạo Web hạng mục

Chỉnh hợp SSM

Trung tâm nguyên mã

RouteController, lộ từ nhảy chuyển loại, chủ yếu dùng cho nhảy chuyển tới chỉ định jsp giao diện cũng mang theo số liệu tiến hành nhuộm đẫm

packagecom.wanshi.controller;

importcom.wanshi.bean.TPermission;
importcom.wanshi.bean.TRole;
importcom.wanshi.bean.TUser;
importcom.wanshi.service.PermissionService;
importcom.wanshi.service.RoleService;
importcom.wanshi.service.UserService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Controller;
importorg.springframework.ui.Model;
importorg.springframework.web.bind.annotation.RequestMapping;

importjavax.servlet.http.HttpServletRequest;
importjava.util.ArrayList;
importjava.util.List;

@Controller
@RequestMapping("/route")
publicclassRouteController{

@Autowired
privatePermissionServicepermissionService;

@Autowired
privateRoleServiceroleService;

@Autowired
privateUserServiceuserService;

@RequestMapping("/index")
publicStringindex(){
return"index";
}

@RequestMapping("/addRole")
publicStringaddRole(Modelmodel){
List<TPermission>list=permissionService.list();
model.addAttribute("permList",list);
return"role/add";
}

@RequestMapping("/addUser")
publicStringaddUser(Modelmodel){
List<TRole>list=roleService.list();
model.addAttribute("roleList",list);
return"user/add";
}

@RequestMapping("/updateRole")
publicStringupdateRole(HttpServletRequestrequest,Modelmodel){
Stringid=request.getParameter("id");
TRolerole=roleService.getByRole(id);
List<TPermission>list=permissionService.list();
List<TPermission>byRolePermList=roleService.getByRolePermList(role.getId());
List<String>permCodes=newArrayList<String>();
for(TPermissiontPermission:byRolePermList){
permCodes.add(tPermission.getPerm_code());
}
model.addAttribute("permCodes",permCodes);
model.addAttribute("permList",list);
model.addAttribute("role",role);
return"role/edit";
}

@RequestMapping("/updateUser")
publicStringupdateUser(HttpServletRequestrequest,Modelmodel){
Stringid=request.getParameter("id");
TUseruser=userService.getByUser(id);
List<TRole>userRoleList=userService.getByRoleList(user.getId());
List<TRole>roleList=roleService.list();

List<Integer>roleIds=newArrayList<Integer>();
for(TRoletRole:userRoleList){
roleIds.add(tRole.getId());
}
model.addAttribute("roleIds",roleIds);
model.addAttribute("roleList",roleList);
model.addAttribute("user",user);
return"user/edit";
}
}

RoleController, nhân vật khống chế khí loại, dùng cho biên soạn nhân vật CRUD

packagecom.wanshi.controller;

importcom.wanshi.bean.TRole;
importcom.wanshi.service.PermissionService;
importcom.wanshi.service.RoleService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Controller;
importorg.springframework.ui.Model;
importorg.springframework.web.bind.annotation.RequestMapping;

importjavax.servlet.http.HttpServletRequest;
importjava.util.List;

@Controller
@RequestMapping("/role")
publicclassRoleController{

@Autowired
privateRoleServiceroleService;

@RequestMapping("/list")
publicStringlist(Modelmodel){
List<TRole>list=roleService.list();
model.addAttribute("roleList",list);
return"role/list";
}

@RequestMapping("addHandle")
publicStringaddHandle(TRolerole,HttpServletRequestrequest){
String[]permCodes=request.getParameterValues("permCodes");
roleService.insert(role,permCodes);
return"redirect:/role/list";
}

@RequestMapping("/updateHandle")
publicStringupdateHandle(TRolerole,HttpServletRequestrequest){
String[]permCodes=request.getParameterValues("permCodes");
roleService.update(role,permCodes);
return"redirect:/role/list";
}

@RequestMapping("/delete")
publicStringdelete(TRolerole){
roleService.delete(role);
return"redirect:/role/list";
}
}

UserController, người dùng khống chế khí loại, dùng cho biên soạn người dùng CRUD, phân trang, cùng với đăng nhập

packagecom.wanshi.controller;

importcom.wanshi.bean.Page;
importcom.wanshi.bean.TPermission;
importcom.wanshi.bean.TRole;
importcom.wanshi.bean.TUser;
importcom.wanshi.service.PermissionService;
importcom.wanshi.service.RoleService;
importcom.wanshi.service.UserService;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Controller;
importorg.springframework.ui.Model;
importorg.springframework.web.bind.annotation.RequestMapping;

importjavax.servlet.http.HttpServletRequest;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.Set;

@Controller
@RequestMapping("/user")
publicclassUserController{

@Autowired
privateUserServiceuserService;

@Autowired
privatePermissionServicepermissionService;

privatestaticfinalIntegerPageSize=2;

@RequestMapping("/login")
publicStringlogin(TUseruser,HttpServletRequestrequest){
TUseruser1=userService.exam(user);
if(user1!=null){
request.getSession().setAttribute("user",user1);
return"redirect:/route/index";
}
return"login";
}


@RequestMapping("/logout")
publicStringlogout(HttpServletRequestrequest){
request.getSession().invalidate();
return"login";
}

@RequestMapping("/page")
publicStringpage(HttpServletRequestrequest,Modelmodel){
StringpageNumb=request.getParameter("pageNumb");
IntegercurrPage=1;
if(pageNumb!=null&&!pageNumb.equals("")){
currPage=Integer.valueOf(pageNumb);
}
Page<TUser>page=userService.page(currPage,PageSize);
model.addAttribute("pager",page);
return"user/list";
}

@RequestMapping("/addHandle")
publicStringaddHandle(TUseruser,HttpServletRequestrequest){
String[]roleIds=request.getParameterValues("roleIds");
userService.insert(user,roleIds);
return"redirect:/user/page";
}

@RequestMapping("/updateHandle")
publicStringupdateHandle(TUseruser,HttpServletRequestrequest){
String[]roleIds=request.getParameterValues("roleIds");
userService.update(user,roleIds);
return"redirect:/user/page";
}

@RequestMapping("/delete")
publicStringdelete(HttpServletRequestrequest){
Stringid=request.getParameter("id");
userService.delete(id);
return"redirect:/user/page";
}

@RequestMapping("/detail")
publicStringdetail(HttpServletRequestrequest,Modelmodel){
Stringid=request.getParameter("id");
TUseruser=userService.getByUser(id);
List<TRole>roleList=userService.getByRoleList(user.getId());
List<Integer>roleIds=newArrayList<Integer>();
for(TRoletRole:roleList){
roleIds.add(tRole.getId());
}
Set<TPermission>permList=permissionService.getDetail(roleIds);

model.addAttribute("user",user);
model.addAttribute("roleList",roleList);
model.addAttribute("permList",permList);
return"user/detail";
}

}

LoginInterceptor chặn lại khí, dùng cho chặn lại chưa đăng nhập người dùng, nếu chưa đăng nhập, tắc không thể phỏng vấn chủ trang, đạt tới an toàn hiệu quả

packagecom.wanshi.interceptor;

importorg.springframework.web.servlet.HandlerInterceptor;

importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

publicclassLoginInterceptorimplementsHandlerInterceptor{

publicbooleanpreHandle(HttpServletRequestrequest,HttpServletResponseresponse,Objecthandler)throwsException{
//1. Đối đăng nhập, đăng ký, phong cách trực tiếp cho đi
// thu hoạch thỉnh cầu uri địa chỉ
Stringuri=request.getRequestURI();
if(uri.contains("login")){
returntrue;
}

//2. Tiến hành session nghiệm chứng
Objectuser=request.getSession().getAttribute("user");
if(user==null){
request.getRequestDispatcher("/WEB-INF/pages/login.jsp")
.forward(request,response);
returnfalse;
}
returntrue;
}
}

Lời kết thúc

Hạng mục liền đến này kết thúc, nếu đối bổn hạng mục cảm thấy hứng thú lão thiết, nhưng tại hạ phương thu hoạch hoàn chỉnh hạng mục

Hoàn chỉnh hạng mục liên tiếpNgười dùng quyền hạn quản lý hệ thống

Lấy ra mã: hbpj

Có bất luận vấn đề gì đều nhưng ở bình luận khu nhắn lại hoặc tin nhắn ta

Chỉ cầu ngài có thể lưu lại ngài quý giá dấu chân, chờ gì đâu, đều nhìn đến này lạp, còn chưa tới cái một kiện tam liền sao == ( cất chứa + chú ý + bình luận ) ==

Cảm tạ ngài duy trì, chúng ta hạ thiên thấy ~

  • 14
    Điểm tán
  • Dẫm
  • 23
    Cất chứa
    Cảm thấy cũng không tệ lắm? Một kiện cất chứa
  • 打赏
    Đánh thưởng
  • 20
    Bình luận
Căn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùngQuản lý hệ thốngCăn cứ vàoSSMNgười dùng
Công năng giới thiệu: Bổn hệ thống thông qua đốiMVC4 Simplemembership cam chịu cơ sở dữ liệu tiến hành mở rộngThực hiệnHậu trườngQuản lý người dùng, nhân vật cùngQuyền hạn.Thông qua nhân vậtQuyền hạnPhối tríThực hiệnĐối trước đài Controller cùng ActionQuyền hạnQuản lý. Sử dụng phương pháp: Bước đầu tiên: Sửa chữa Web.config văn kiện. Cái này văn kiện trung chỉ cần TYStudioUsersConnectionString trung username cùng mật mã, sửa chữa vì ngươi bản địa có sáng tạo cơ sở dữ liệuQuyền hạnUsername cùng mật mã. Sửa chữa hoàn thành vận hành trình tự sẽ hệ thống sẽ tự động sáng tạo mở rộng sau Membership cơ sở dữ liệu. Bước thứ hai: Thành lập hệ thống quản lý viên nhân vật cùng người dùng. Suy xét tới tay động tăng thêm hệ thống quản lý viên nhân vật cùng người dùng tương đối phiền toái, mới bắt đầu trình tự đều là có thể nặc danh phỏng vấn, lúc này ngươi yêu cầu vận hành hệ thống tăng thêm một hệ thống quản lý viên nhân vật, cũng tăng thêm một người dùng phú cấp hệ thống quản lý viênQuyền hạn.Thêm nữa thêm xong hệ thống quản lý viên nhân vật cùng người dùng lúc sau ngươi yêu cầu sửa chữa một chút Controllers phía dưới các Controller, chú thích rớt [AllowAnonymous] cũng đem //[Authorize(Roles = "Hệ thống quản lý viên" )] chú thích mở ra. Biên dịch một lần nữa vận hành trình tự, lúc nàyHậu trườngQuản lý hệ thốngChỉ có thể cho phép hệ thống quản lý viên nhân vật người dùng đổ bộ. Bước thứ ba: Thí nghiệm sản phẩm mô khối ( ProductController ) Controller hạ có một cái ProductController là dùng để thí nghiệm chúng taQuyền hạnQuản lý hay không thành công có tác dụng, đồng thời cũng là đối trước đài Controller cùng Action tiến hành toàn tuyến khống chế phương pháp. Nơi này sử dụng [TYStudioAuthorize( "Tuần tra sản phẩm" )] phương thức đối Action tiến hành phỏng vấn khống chế. Sở hữu về Membership loại đều ở Models/Membership folder phía dưới. Tương lai ngươi yêu cầu đem này đó class nhổ trồng đến ngươi công cộng project trung đi, như vậy liền có thể sử dụngMVC4 Simplemembership đối với ngươi trước đài tiến hànhQuyền hạnKhống chế. Chú ý: Khai phá hoàn cảnh vì Visual Studio 2012
Tốt, phía dưới là một cái căn cứ vàoSSM+Vue dàn giáo giá giáoQuản lý hệ thốngĐơn giảnThực hiện: ## kỹ thuật tuyển hình Sau đoan: Spring + SpringMVC+ MyBatis Đằng trước: Vue + ElementUI Cơ sở dữ liệu: MySQL ## công năng mô khối - học viên quản lý: Học viên tin tức bổ sung và cắt bỏ sửa tra, học viên hẹn trước, hủy bỏ hẹn trước chờ công năng. - huấn luyện viên quản lý: Huấn luyện viên tin tức bổ sung và cắt bỏ sửa tra, huấn luyện viên chia ban, hủy bỏ chia ban chờ công năng. - chiếc xe quản lý: Chiếc xe tin tức bổ sung và cắt bỏ sửa tra, chiếc xe hẹn trước, hủy bỏ hẹn trước chờ công năng. - chương trình học quản lý: Chương trình học tin tức bổ sung và cắt bỏ sửa tra, chương trình học an bài, hủy bỏ an bài chờ công năng. - thống kê phân tích: Học viên, huấn luyện viên, chiếc xe, chương trình học thống kê phân tích công năng. ##Thực hiệnBước đi ### 1. Cơ sở dữ liệu thiết kế Căn cứ trở lên công năng mô khối, thiết kế cơ sở dữ liệu biểu kết cấu. ### 2. Sau đoanThực hiện Sử dụng Spring + SpringMVC+ MyBatisThực hiệnCác loại công năng mô khối sau đoan tiếp lời. ### 3. Đằng trướcThực hiện Sử dụng Vue + ElementUIThực hiệnCác loại công năng mô khối đằng trước giao diện. ### 4. Tổng thể Đem trước sau đoan tổng thể,Thực hiệnHoàn chỉnh giá giáoQuản lý hệ thống. ## tổng kết Trở lên là một cái đơn giản căn cứ vàoSSM+Vue dàn giáo giá giáoQuản lý hệ thốngThực hiệnBước đi. Đương nhiên, thực tế khai phá trong quá trình còn cần suy xét rất nhiều mặt khác nhân tố, tỷ như tính năng ưu hoá, an toàn tính chờ.

“Tương quan đề cử” đối với ngươi có trợ giúp sao?

  • Phi thường không trợ giúp
  • Không trợ giúp
  • Giống nhau
  • Có trợ giúp
  • Phi thường có trợ giúp
Đệ trình
Bình luận20
Tăng thêm bao lì xì

Thỉnh điền bao lì xì chúc phúc ngữ hoặc tiêu đề

Cái

Bao lì xì cái số nhỏ nhất vì 10 cái

Nguyên

Bao lì xì kim ngạch thấp nhất 5 nguyên

Trước mặt ngạch trống3.43Nguyên Đi trước nạp phí >
Cần chi trả:10.00Nguyên
Thành tựu một trăm triệu kỹ thuật người!
Lĩnh sau ngươi sẽ tự động trở thành bác chủ cùng bao lì xì chủ fans Quy tắc
hope_wisdom
Phát ra bao lì xì

Đánh thưởng tác giả

Bug chung kết giả

Ngươi cổ vũ sẽ là ta sáng tác lớn nhất động lực

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
Quét mã chi trả:¥1
Thu hoạch trung
Quét mã chi trả

Ngài ngạch trống không đủ, thỉnh đổi mới quét mã chi trả hoặcNạp phí

Đánh thưởng tác giả

Thật phóNguyên
Sử dụng ngạch trống chi trả
Điểm đánh một lần nữa thu hoạch
Quét mã chi trả
Tiền bao ngạch trống 0

Để khấu thuyết minh:

1. Ngạch trống là tiền bao nạp phí giả thuyết tiền, dựa theo 1:1 tỉ lệ tiến hành chi trả kim ngạch để khấu.
2. Ngạch trống vô pháp trực tiếp mua sắm download, có thể mua sắm VIP, trả phí chuyên mục cập chương trình học.

Ngạch trống nạp phí