团队做网站的收获微博官网入口

当前位置: 首页 > news >正文

团队做网站的收获,微博官网入口,最新网站信息,wordpress o2o目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍#xff1a;CSDN认证博客专家#xff0c;CSDN平… 目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍CSDN认证博客专家CSDN平台Java领域优质创作者全网30w粉丝超300w访问量专注于大学生项目实战开发、讲解和答疑辅导对于专业性数据证明一切 主要项目javaweb、ssm、springboot、vue、小程序、python、安卓、uniapp等设计与开发,万套源码成品可供选择学习。 文末获取源码 SprinBootVue在线商城小程序的设计与实现(源码数据库文档) 项目描述 近几年来,网络事业特别是Internet发展速度之快是任何人都始料不及的。目前由于Internet表现出来的便捷快速等诸多优势已经使它成为社会各行各业甚至是平民大众工作生活不可缺少的一个重要组成部分。 随着社会的发展线下管理的方式已经不可避免的显示出它在时间与空间等方面的局限性广大的人民群众迫切的需要打破这种局限性。在这种要求下基于网络的电子商务产生了。它的出现不但解决了传统管理方式的缺点而且给了广大用户更大的选择空间促进了面向品牌会员的在线商城的优化管理有效的避免了面向品牌会员的在线商城缭乱的局面。所以像面向品牌会员的在线商城小程序这种电子商务的发展壮大也是不可避免的。 面向品牌会员的在线商城小程序作为一种典型的电子商务系统也迅速的发展并深入人们的日常生活中它使用户足不出户就可以管理自己的商品信息等最大化减缩了用户的管理时间提高了管理效率。 2 项目截图 springbootvue面向品牌会员的在线商城微信小程序-微信端演示 springbootvue面向品牌会员的在线商城微信小程序-后台 3 核心代码 3.1 Controller package com.controller;import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.entity.TokenEntity; import com.entity.UserEntity; import com.service.TokenService; import com.service.UserService; import com.utils.CommonUtil; import com.utils.MPUtil; import com.utils.PageUtils; import com.utils.R; import com.utils.ValidatorUtils;/*** 登录相关/ RequestMapping(users) RestController public class UserController{Autowiredprivate UserService userService;Autowiredprivate TokenService tokenService;/** 登录/IgnoreAuthPostMapping(value /login)public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user userService.selectOne(new EntityWrapperUserEntity().eq(username, username));if(usernull || !user.getPassword().equals(password)) {return R.error(账号或密码不正确);}String token tokenService.generateToken(user.getId(),username, users, user.getRole());return R.ok().put(token, token);}/** 注册/IgnoreAuthPostMapping(value /register)public R register(RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapperUserEntity().eq(username, user.getUsername())) !null) {return R.error(用户已存在);}userService.insert(user);return R.ok();}/** 退出/GetMapping(value logout)public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok(退出成功);}/** 密码重置/IgnoreAuthRequestMapping(value /resetPass)public R resetPass(String username, HttpServletRequest request){UserEntity user userService.selectOne(new EntityWrapperUserEntity().eq(username, username));if(usernull) {return R.error(账号不存在);}user.setPassword(123456);userService.update(user,null);return R.ok(密码已重置为123456);}/** 列表/RequestMapping(/page)public R page(RequestParam MapString, Object params,UserEntity user){EntityWrapperUserEntity ew new EntityWrapperUserEntity();PageUtils page userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put(data, page);}/** 列表/RequestMapping(/list)public R list( UserEntity user){EntityWrapperUserEntity ew new EntityWrapperUserEntity();ew.allEq(MPUtil.allEQMapPre( user, user)); return R.ok().put(data, userService.selectListView(ew));}/** 信息/RequestMapping(/info/{id})public R info(PathVariable(id) String id){UserEntity user userService.selectById(id);return R.ok().put(data, user);}/** 获取用户的session用户信息/RequestMapping(/session)public R getCurrUser(HttpServletRequest request){Integer id (Integer)request.getSession().getAttribute(userId);UserEntity user userService.selectById(id);return R.ok().put(data, user);}/** 保存/PostMapping(/save)public R save(RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapperUserEntity().eq(username, user.getUsername())) !null) {return R.error(用户已存在);}userService.insert(user);return R.ok();}/** 修改/RequestMapping(/update)public R update(RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user);UserEntity u userService.selectOne(new EntityWrapperUserEntity().eq(username, user.getUsername()));if(u!null u.getId()!user.getId() u.getUsername().equals(user.getUsername())) {return R.error(用户名已存在。);}userService.updateById(user);//全部更新return R.ok();}/** 删除/RequestMapping(/delete)public R delete(RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();} } 3.2 Service /** 系统用户/ public interface UserService extends IServiceUserEntity {PageUtils queryPage(MapString, Object params);ListUserEntity selectListView(WrapperUserEntity wrapper);PageUtils queryPage(MapString, Object params,WrapperUserEntity wrapper);} 3.3 Dao /** 用户*/ public interface UserDao extends BaseMapperUserEntity {ListUserEntity selectListView(Param(ew) WrapperUserEntity wrapper);ListUserEntity selectListView(Pagination page,Param(ew) WrapperUserEntity wrapper);} 3.4 application.yml

Tomcat

server:tomcat:uri-encoding: UTF-8port: 8080servlet:context-path: /springbootpkh49spring:datasource:driverClassName: com.mysql.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/springbootpkh49?useUnicodetruecharacterEncodingutf-8useJDBCCompliantTimezoneShifttrueuseLegacyDatetimeCodefalseserverTimezoneGMT%2B8username: rootpassword: root# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver

url: jdbc:sqlserver://127.0.0.1:1433;DatabaseNamespringbootpkh49

username: sa

password: 123456servlet:multipart:max-file-size: 10MBmax-request-size: 10MBresources:static-locations: classpath:static/,file:static/#mybatis

mybatis-plus:mapper-locations: classpath:mapper/.xml#实体扫描多个package用逗号或者分号分隔typeAliasesPackage: com.entityglobal-config:#主键类型 0:数据库ID自增, 1:用户输入ID,2:全局唯一ID (数字类型唯一ID), 3:全局唯一ID UUID;id-type: 1#字段策略 0:忽略判断,1:非 NULL 判断),2:非空判断field-strategy: 2#驼峰下划线转换db-column-underline: true#刷新mapper 调试神器refresh-mapper: true#逻辑删除配置logic-delete-value: -1logic-not-delete-value: 0#自定义SQL注入器sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjectorconfiguration:map-underscore-to-camel-case: truecache-enabled: falsecall-setters-on-nulls: true#springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)jdbc-type-for-null: null
3.5 SpringbootApplication SpringBootApplication MapperScan(basePackages {com.dao}) public class SpringbootSchemaApplication extends SpringBootServletInitializer{public static void main(String[] args) {SpringApplication.run(SpringbootSchemaApplication.class, args);}Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) {return applicationBuilder.sources(SpringbootSchemaApplication.class);} } 3.5 Vue templatedivdiv classcontainer loginIn stylebackgroundImage: url(http://codegen.caihongy.cn/20201206/eaa69c2b4fa742f2b5acefd921a772fc.jpg)div :class2 1 ? left : 2 2 ? left center : left right stylebackgroundColor: rgba(255, 255, 255, 0.71)el-form classlogin-form label-positionleft :label-width1 3 ? 56px : 0pxdiv classtitle-containerh3 classtitle stylecolor: rgba(84, 88, 179, 1)在线文档管理系统登录/h3/divel-form-item :label1 3 ? 用户名 : :classstyle1span v-if1 ! 3 classsvg-container stylecolor:rgba(89, 97, 102, 1);line-height:44pxsvg-icon icon-classuser //spanel-input placeholder请输入用户名 nameusername typetext v-modelrulesForm.username //el-form-itemel-form-item :label1 3 ? 密码 : :classstyle1span v-if1 ! 3 classsvg-container stylecolor:rgba(89, 97, 102, 1);line-height:44pxsvg-icon icon-classpassword //spanel-input placeholder请输入密码 namepassword typepassword v-modelrulesForm.password //el-form-itemel-form-item v-if0 1 classcode :label1 3 ? 验证码 : :classstyle1span v-if1 ! 3 classsvg-container stylecolor:rgba(89, 97, 102, 1);line-height:44pxsvg-icon icon-classcode //spanel-input placeholder请输入验证码 namecode typetext v-modelrulesForm.code /div classgetCodeBt clickgetRandCode(4) styleheight:44px;line-height:44pxspan v-for(item, index) in codes :keyindex :style{color:item.color,transform:item.rotate,fontSize:item.size}{{ item.num }}/span/div/el-form-itemel-form-item label角色 proploginInRole classroleel-radiov-foritem in menusv-ifitem.hasBackLogin是v-bind:keyitem.roleNamev-modelrulesForm.role:labelitem.roleName{{item.roleName}}/el-radio/el-form-itemel-button typeprimary clicklogin() classloginInBt stylepadding:0;font-size:16px;border-radius:4px;height:44px;line-height:44px;width:100%;backgroundColor:rgba(84, 88, 179, 1); borderColor:rgba(84, 88, 179, 1); color:rgba(255, 255, 255, 1){{1 1 ? 登录 : login}}/el-buttonel-form-item classsetting!– div stylecolor:rgba(255, 255, 255, 1) classreset修改密码/div –/el-form-item/el-form/div/div/div /template script import menu from /utils/menu; export default {data() {return {rulesForm: {username: ,password: ,role: ,code: ,},menus: [],tableName: ,codes: [{num: 1,color: #000,rotate: 10deg,size: 16px},{num: 2,color: #000,rotate: 10deg,size: 16px},{num: 3,color: #000,rotate: 10deg,size: 16px},{num: 4,color: #000,rotate: 10deg,size: 16px}],};},mounted() {let menus menu.list();this.menus menus;},created() {this.setInputColor()this.getRandCode()},methods: {setInputColor(){this.\(nextTick((){document.querySelectorAll(.loginIn .el-input__inner).forEach(el{el.style.backgroundColor rgba(255, 255, 255, 1)el.style.color rgba(0, 0, 0, 1)el.style.height 44pxel.style.lineHeight 44pxel.style.borderRadius 2px})document.querySelectorAll(.loginIn .style3 .el-form-item__label).forEach(el{el.style.height 44pxel.style.lineHeight 44px})document.querySelectorAll(.loginIn .el-form-item__label).forEach(el{el.style.color rgba(89, 97, 102, 1)})setTimeout((){document.querySelectorAll(.loginIn .role .el-radio__label).forEach(el{el.style.color rgba(84, 88, 179, 1)})},350)})},register(tableName){this.\)storage.set(loginTable, tableName);this.\(router.push({path:/register})},// 登陆login() {let code for(let i in this.codes) {code this.codes[i].num}if (0 1 !this.rulesForm.code) {this.\)message.error(请输入验证码);return;}if (0 1 this.rulesForm.code.toLowerCase() ! code.toLowerCase()) {this.\(message.error(验证码输入有误);this.getRandCode()return;}if (!this.rulesForm.username) {this.\)message.error(请输入用户名);return;}if (!this.rulesForm.password) {this.\(message.error(请输入密码);return;}if (!this.rulesForm.role) {this.\)message.error(请选择角色);return;}let menus this.menus;for (let i 0; i menus.length; i) {if (menus[i].roleName this.rulesForm.role) {this.tableName menus[i].tableName;}}this.\(http({url: \){this.tableName}/login?username\({this.rulesForm.username}password\){this.rulesForm.password},method: post}).then(({ data }) {if (data data.code 0) {this.\(storage.set(Token, data.token);this.\)storage.set(role, this.rulesForm.role);this.\(storage.set(sessionTable, this.tableName);this.\)storage.set(adminName, this.rulesForm.username);this.\(router.replace({ path: /index/ });} else {this.\)message.error(data.msg);}});},getRandCode(len 4){this.randomString(len)},randomString(len 4) {let chars [a, b, c, d, e, f, g, h, i, j, k,l, m, n, o, p, q, r, s, t, u, v,w, x, y, z, A, B, C, D, E, F, G,H, I, J, K, L, M, N, O, P, Q, R,S, T, U, V, W, X, Y, Z, 0, 1, 2,3, 4, 5, 6, 7, 8, 9]let colors [0, 1, 2,3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f]let sizes [14, 15, 16, 17, 18]let output [];for (let i 0; i len; i) {// 随机验证码let key Math.floor(Math.random()*chars.length)this.codes[i].num chars[key]// 随机验证码颜色let code #for (let j 0; j 6; j) {let key Math.floor(Math.random()*colors.length)code colors[key]}this.codes[i].color code// 随机验证码方向let rotate Math.floor(Math.random()*60)let plus Math.floor(Math.random()*2)if(plus 1) rotate -rotatethis.codes[i].rotate rotate(rotatedeg)// 随机验证码字体大小let size Math.floor(Math.random()*sizes.length)this.codes[i].size sizes[size]px}},} }; /script style langscss scoped .loginIn {min-height: 100vh;position: relative;background-repeat: no-repeat;background-position: center center;background-size: cover;.left {position: absolute;left: 0;top: 0;width: 360px;height: 100%;.login-form {background-color: transparent;width: 100%;right: inherit;padding: 0 12px;box-sizing: border-box;display: flex;justify-content: center;flex-direction: column;}.title-container {text-align: center;font-size: 24px;.title {margin: 20px 0;}}.el-form-item {position: relative;.svg-container {padding: 6px 5px 6px 15px;color: #889aa4;vertical-align: middle;display: inline-block;position: absolute;left: 0;top: 0;z-index: 1;padding: 0;line-height: 40px;width: 30px;text-align: center;}.el-input {display: inline-block;height: 40px;width: 100%; /deep/ input {background: transparent;border: 0px;-webkit-appearance: none;padding: 0 15px 0 30px;color: #fff;height: 40px;}}}}.center {position: absolute;left: 50%;top: 50%;width: 360px;transform: translate3d(-50%,-50%,0);height: 446px;border-radius: 8px;}.right {position: absolute;left: inherit;right: 0;top: 0;width: 360px;height: 100%;}.code {.el-form-itemcontent {position: relative;.getCodeBt {position: absolute;right: 0;top: 0;line-height: 40px;width: 100px;background-color: rgba(51,51,51,0.4);color: #fff;text-align: center;border-radius: 0 4px 4px 0;height: 40px;overflow: hidden;span {padding: 0 5px;display: inline-block;font-size: 16px;font-weight: 600;}}.el-input { /deep/ input {padding: 0 130px 0 30px;}}}}.setting { /deep/ .el-form-itemcontent {padding: 0 15px;box-sizing: border-box;line-height: 32px;height: 32px;font-size: 14px;color: #999;margin: 0 !important;.register {float: left;width: 50%;}.reset {float: right;width: 50%;text-align: right;}}}.style2 {padding-left: 30px;.svg-container {left: -30px !important;}.el-input { /deep/ input {padding: 0 15px !important;}}}.code.style2, .code.style3 {.el-input { /deep/ input {padding: 0 115px 0 15px;}}}.style3 { /deep/ .el-form-itemlabel {padding-right: 6px;}.el-input { /deep/ input {padding: 0 15px !important;}}}.role { /deep/ .el-form-itemlabel {width: 56px !important;} /deep/ .el-radio {margin-right: 12px;}}} /style 3.6 uniapp代码 templateview classcontentview classbox :style{padding:24rpx,background:url(http://codegen.caihongy.cn/20231129/b245d02724c846eb81ec48ed8ffd3ba3.png),width:100%,backgroundSize:cover,backgroundPosition:center center,backgroundRepeat:no-repeat,height:100%}view :style{width:100%,padding:24rpx 24rpx,position:relative,flexWrap:wrap,display:flex,height:auto}image :style{width:120rpx,margin:0 auto 24rpx,borderRadius:50%,display:block,height:120rpx,order:1} srchttp://codegen.caihongy.cn/20231129/60e9e3dac4104b1a8fa52d7c3a726a45.webp modeaspectFill/imageview v-ifloginType1 :style{width:100%,margin:0 0 0,flexWrap:wrap,display:flex,height:auto,order:2} classuni-form-item uni-columnview :style{width:100%,lineHeight:88rpx,fontSize:26rpx,color:#000,textAlign:left,fontWeight:bold} classlabel账号/viewinput v-modelusername :style{border:2rpx solid #aaa,padding:0px 24rpx,margin:0px,color:rgb(0, 0, 0),borderRadius:0,flex:1,background:none,borderWidth:0 0 2rpx,fontSize:28rpx,height:88rpx} typetext classuni-input name placeholder请输入账号 //viewview v-ifloginType1 :style{width:100%,margin:0 0 0,flexWrap:wrap,display:flex,height:auto,order:2} classuni-form-item uni-columnview :style{width:100%,lineHeight:88rpx,fontSize:26rpx,color:#000,textAlign:left,fontWeight:bold} classlabel密码/viewinput v-modelpassword :style{border:2rpx solid #aaa,padding:0px 24rpx,margin:0px,color:rgb(0, 0, 0),borderRadius:0,flex:1,background:none,borderWidth:0 0 2rpx,fontSize:28rpx,height:88rpx} typepassword classuni-input name placeholder请输入密码 //viewview v-ifroleNum1 :style{width:100%,margin:0 0 24rpx 0,display:block,height:auto,order:4}view :style{width:100%,lineHeight:88rpx,fontSize:26rpx,color:#000,textAlign:left,fontWeight:bold} classlabel用户类型/viewpicker changeoptionsChange :valueindex :rangeoptions :style{width:100%,lineHeight:48rpx,fontSize:24rpx,textDecoration:underline,color:#424EF0,textAlign:left}view classuni-picker-type{{options[index]}}/view/picker/viewbutton v-ifloginType1 classbtn-submit taponLoginTap typeprimary :style{border:0,padding:0px,margin:24rpx auto ,color:rgb(255, 255, 255),borderRadius:8rpx,background:url(http://codegen.caihongy.cn/20231129/e83626e1e97e489099693ee9348afd12.png),width:120rpx,lineHeight:120rpx,fontSize:0,backgroundSize:cover,backgroundPosition:center center,backgroundRepeat:no-repeat,fontWeight:bold,height:120rpx,order:7}→/buttonbutton v-ifloginType2 classbtn-submit taponFaceLoginTap typeprimary :style{border:0,padding:0px,margin:24rpx auto ,color:rgb(255, 255, 255),borderRadius:8rpx,background:url(http://codegen.caihongy.cn/20231129/e83626e1e97e489099693ee9348afd12.png),width:120rpx,lineHeight:120rpx,fontSize:0,backgroundSize:cover,backgroundPosition:center center,backgroundRepeat:no-repeat,fontWeight:bold,height:120rpx,order:7}人脸识别登录/buttonview classlinks :style{margin:0 0 24rpx 0,flexWrap:wrap,display:flex,width:100%,justifyContent:flex-end,height:auto,order:6}view classlink-highlight taponRegisterTap(xuesheng) :style{color:#9E9E9E,padding:0 12rpx,fontSize:24rpx}注册学生/viewview classlink-highlight taponRegisterTap(jiaoshi) :style{color:#9E9E9E,padding:0 12rpx,fontSize:24rpx}注册教师/view/viewview classidea1 :style{width:100%,background:red,display:none,height:80rpx}idea1/viewview classidea2 :style{width:100%,background:red,display:none,height:80rpx}idea2/viewview classidea3 :style{width:100%,background:red,display:none,height:80rpx}idea3/view/view/view/view /templatescriptimport menu from /utils/menuexport default {data() {return {username: ,password: ,loginType:1,codes: [{num: 1,color: #000,rotate: 10deg,size: 16px}, {num: 2,color: #000,rotate: 10deg,size: 16px}, {num: 3,color: #000,rotate: 10deg,size: 16px}, {num: 4,color: #000,rotate: 10deg,size: 16px}],options: [请选择登录用户类型,],optionsValues: [,xuesheng,jiaoshi,],index: 0,roleNum:0,}},onLoad() {let options [请选择登录用户类型];let menus menu.list();this.menuList menus;for(let i0;ithis.menuList.length;i){if(this.menuList[i].hasFrontLogin是){options.push(this.menuList[i].roleName);this.roleNum;}}if(this.roleNum1) {this.index 1;} this.options options;this.styleChange()},onShow() {},mounted() {},methods: {styleChange() {this.\(nextTick((){// document.querySelectorAll(.uni-input .uni-input-input).forEach(el{// el.style.backgroundColor this.loginFrom.content.input.backgroundColor// })})},onRegisterTap(tableName) {uni.setStorageSync(loginTable, tableName);this.\)utils.jump(../register/register)},async onLoginTap() {if (!this.username) {this.\(utils.msg(请输入用户名)return}if (!this.password) {this.\)utils.msg(请输入用户密码)return}if (!this.optionsValues[this.index]) {this.\(utils.msg(请选择登录用户类型)return}this.loginPost()},async loginPost() {let res await this.\)api.login(\({this.optionsValues[this.index]}, {username: this.username,password: this.password});uni.removeStorageSync(useridTag);uni.setStorageSync(appToken, res.token);uni.setStorageSync(nickname,this.username);uni.setStorageSync(nowTable, \){this.optionsValues[this.index]});res await this.\(api.session(\){this.optionsValues[this.index]});if(res.data.touxiang) {uni.setStorageSync(headportrait, res.data.touxiang);} else if(res.data.headportrait) {uni.setStorageSync(headportrait, res.data.headportrait);}uni.setStorageSync(userSession,JSON.stringify(res.data))// 保存用户iduni.setStorageSync(appUserid, res.data.id);if(res.data.vip) {uni.setStorageSync(vip, res.data.vip);}uni.setStorageSync(appRole, \({this.options[this.index]});this.\)utils.tab(../index/index);},optionsChange(e) {this.index e.target.value}}} /scriptstyle langscss scopedpage {height: 100%;}.content {height: 100%;box-sizing: border-box;}/style 4 数据库表设计 用户注册实体图如图所示
数据库表的设计如下表
5 文档参考 6 计算机毕设选题推荐 最新计算机软件毕业设计选题大全整理中… 7 源码获取 获取联系方式在文章末尾 如果想入行提升技术的可以看我专栏其他内容