洞察探索如何利用兼容微信生态的小程序容器,实现跨平台开发,助力金融和车联网行业的数字化转型。
1112
2023-01-24
SpringBoot实现物品收藏功能
前后端分离项目–二手交易平台小程序
SpringBoot----物品点赞功能实现
SpringBoot----评论回复功能实现(数据库设计)
SpringBoot----文件(图片)上传与显示(-)
收藏
数据库设计:使用了第三张表来存储哪个用户收藏了哪个物品
写这个的时候压根没想到怎么判断用户是否已经收藏,一开始是前端发一次请求我后台就添加数据到数据表中。这样只是用户可以在我的收藏中查看到收藏了的物品,但是点击进去无法让收藏按钮亮起来。
第一次点击以后会亮,之后第二次进来怎么判断是否收藏这是个问题。
解决:在全局js中写了一个请求,就是小程序刚进入就发请求获取当前用户收藏信息(是一个数组)。然后进入详情页时进行判断。并且当用户再次收藏或者取消收藏后更改数组信息。当用户退出详情页切换到我的界面将这个数组发送到后台更新数据库
后台代码:这个你就必须去判断前端返回的数组和你数据库当前数组有哪些区别,你是增加还是删除信息,或者既要新增又要删除
数据库原有id【1,2,3】
前端返回id【1,4,5】
这个时候你既要找出2,3去删除,又要找出4,5去新增。
@Override
public int addGoodsInCar(@RequestBody JSONObject sums) {
String openid = sums.getString("openid");
http:// JSONArray gid = sums.getJSONArray("gid");
if (openid==null||gid==null){
return 0;
}
JSONArray gidf = (JSONArray)gid.clone();//深拷贝
ArrayList
int a = 1;
if (integers.size()==0 ){
ShoppingCar car = new ShoppingCar();
car.setOpenid(openid);
car.setGid(gid.getInteger(0));
a = shoppingCarMapper.insert(car);
}
if (!integers.isEmpty()){
//去重
Iterator
while(it.hasNext()){
Integer gid1 =(OcnRVaInteger) it.next();
integers.forEach(item -> {
if(item == gid1){
it.remove();
}
});
}
Iterator
while (it1.hasNext() && a==1){
int next = (int)it1.next();
ShoppingCar car = new ShoppingCar();
car.setOpenid(openid);
car.setGid(next);
a = shoppingCarMapper.insert(car);
}
Iterator
while(integers0.hasNext()){
Integer gid1 =integers0.next();
gidf.forEach(item -> {
if(item == gid1){
integers0.remove();
}
});
}
Iterator
while (iterator2.hasNext() && a==1){
int next = iterator2.next();
ShoppingCar car = new ShoppingCar();
car.setOpenid(openid);
car.setGid(next);
a = shoppingCarMapper.deleteCar(car);
}
if (a==0){
return 0;
}else {
return 1;
}
}
return 0;
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~