软件功能及核心代码
4.1.1 用户登录注册
首先是在用户进入平台时获取用户微信昵称,保存作为用户名。至于用户ID,是通过java中的UUID方法随机分配一唯一值。最后将这两项必填信息写入数据库完成注册
核心代码如下:
(1)获取用户微信昵称
// 登录
letthat =this
wx.login({
success:res=>{
// 发送 res.code 到后台换取 openId, sessionKey, unionId
},
})
// 获取用户信息
wx.getSetting({
success:res=>{
if(res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
success:res=>{
// 可以将 res 发送给后台解码出 unionId
that.globalData.userInfo = res.userInfo//获取用户基本信息并保存为全局变量
that.globalData.userName = res.userInfo.nickName//获取用户微信昵称并保存为全局变量
(2)UUID方法随机分配一唯一值
//获取UUID生成的32位数的前8位作为用户ID
Stringuid = UUID.randomUUID().toString().substring(0,8);
4.1.2 商品分类导航
商品总共有4中分类,系统为每种分类分配一ID值,内容栏将会根据不同ID值显示不同类型的商品。
核心代码如下:
//商品类别标签切换事件
switchTab:function(e){
letid = e.currentTarget.dataset.id//获取前端商品类别的ID值
lettype//定义商品类别变量
letnum =0//定义保存商品类别的数组初始下标
claArray = []//定义保存商品类别数组的临时变量
varthat =this
this.setData({
curNavId: id,//给前端商品类别赋值
})
//通过id分类List页面内容
switch(id){
case1:
type="推荐"
break;
case2:
type="学习"
break;
case3:
type="运动"
break;
case4:
type="生活"
break;
case5:
type="智能"
break;
}
if(GoodContent.length >0){
for(leti =0; i < GoodContent.length; i++) {
letcontent = GoodContent[i]
if(content.GoodType ==type||type=="推荐") {//content.GoodType很关键
claArray[num++] = content
}
}
this.setData({
listContent: claArray
})
4.1.3 热门商品展示
热门商品展示主要是本系统会根据商城各商品的点击浏览量,自动推荐浏览量最高的前5款商品展示在主页。
核心代码如下:
//连接数据库获取商品信息
wx.request({
url:'http://localhost:8080/Ajax-Servlet-Test1/StoreMsg',//服务器地址
data: {
xx:'selectAll',
},
header: {
'Content-Type':'application/json'
},
success:function(res){
that.globalData.GoodMessage = res.data//将获取的数据保存在GoodMessage 全局变量
}
})
varurlList =newArray()//定义保存热门商品图片Url地址的数组
for(leti =0; i <5; i++) {
urlList[i] = app.globalData.GoodMessage[i].GoodImgUrl
}
4.1.4 模糊搜索商品
模糊搜索商品主要是根据用户输入的关键字进行检索,用户输入商品信息关键字,与已发布的商品信息进行匹配,搜索到符合要求的商品
核心代码如下:
//获取服务器数据
getdata:function(){
letthat =this
wx.request({
url:'http://localhost:8080/Ajax-Servlet-Test1/inputMsg',
data: {
xx:'select',
//用户输入的关键字
yy: that.data.inputValue
},
header: {
'Content-Type':'application/json'
},
success:function(res){
that.setData({
//将服务器返回的匹配信息保存
list:res.data
})
}
})
},
//服务器端与数据库进行交互
if(str.equals(goodName)){
Stringsql ="SELECT * From good WHERE GoodTitle LIKE '%"+goodName+"'%";
PreparedStatement prep =null;
try{
prep = (PreparedStatement) connection.prepareStatement(sql);
ResultSet result = prep.executeQuery();
while(result.next()){
Good good =newGood();
StringGoodTitle = result.getString("GoodTitle");
good.setUserName(GoodTitle);
goodList.add(good);
}
}catch(SQLException e) {
e.printStackTrace();
}
}
Gson gson =newGson();
Stringgoods = gson.toJson(goodList);
write.write(goods);
4.1.5 发布商品
有效用户在发布商品信息时,填写商品名称、商品图片、商品类别、商品介绍、联系人ID、联系人姓名等信息,然后通过request访问服务器将数据写进数据库。
核心代码如下:
(1)获取本地图片,并将图片临时地址保存在数据库
//上传图片
bindSendImage:function(res){
letthat =this
wx.chooseImage({
count:1,//定义本地选择图片时只能选择一张
sizeType:['original','compressed'],//定义选择的图片可以被压缩
sourceType:['album','camera'],//图片既可以从相册中选择也可以拍照获取
success:function(res){
that.setData({
imgUrl:res.tempFilePaths[0]//获取本地图片url地址
})
4.1.6 商品收藏
用户在进入商品的详细信息界面时,如果喜欢该物品但是又不想立刻购买的话,可以收藏该物品,收藏好的商品也可以点击取消。
核心代码如下:
//收藏事件
switchSC:function(id){
letthat =this
letuserId = app.globalData.userId//获取登录用户ID
switch(id){
case0:
this.setData({
shoucang:"收藏"
})
//连接数据库删除用户收藏信息
wx.request({
url:'http://localhost:8080/Ajax-Servlet-Test1/StoreMsg',
data: {
xx:'deleteSC',
//用户ID
yy: userId,
//商品ID
zz: that.data.GoodId,
//店家ID
ss: that.data.DjId
},
header: {
'Content-Type':'application/json'
},
success:function(res){
console.log("删除成功")
}
})
break;
case1:
this.setData({
shoucang:"收藏成功"
})
//连接数据库添加用户收藏信息
wx.request({
url:'http://localhost:8080/Ajax-Servlet-Test1/StoreMsg',
data: {
xx:'insertSC',
//用户ID
yy: userId,
//商品ID
zz: that.data.GoodId,
//店家ID
ss: that.data.DjId
},
header: {
'Content-Type':'application/json'
},
success:function(res){
console.log("收藏成功")
}
})
break;
}
}
案例展示