广州网站建,内容营销策略,做h5页面的网站有哪些,卖设计图的网站锋哥原创的uniapp微信小程序投票系统实战#xff1a;
uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…锋哥原创的uniapp微信小程序投票系统实战
uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频包括uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )、第2讲 投票项目后端架构搭建、第3讲 小程序端 TabBar搭建等UP主更多精彩视频请关注UP账号。https://www.bilibili.com/video/BV1ea4y137xf/新建用户投票详情表t_vote_detail:
create table t_vote_detail (id int (11),vote_id int (11),vote_item_id int (11),vote_date datetime ,openid varchar (600)
);
新建VoteDetail实体
package com.java1234.entity;import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;import java.util.Date;/**投票详情* author java1234_小锋 公众号java1234* site www.java1234.vip* company 南通小锋网络科技有限公司*/
TableName(t_vote_detail)
Data
public class VoteDetail {private Integer id; // 编号private Integer voteId; // 投票IDprivate Integer voteItemId; // 投票选项IDprivate String openid; // 投票人openidTableField(selectfalse,exist false)private WxUserInfo wxUserInfo;JsonSerialize(usingCustomDateTimeSerializer.class)private Date voteDate; // 投票时间}新建VoteDetailMapper
package com.java1234.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.java1234.entity.VoteDetail;/*** 投票详情Mapper接口* author java1234_小锋* site www.java1234.com* company 南通小锋网络科技有限公司* create 2022-02-23 22:00*/
public interface VoteDetailMapper extends BaseMapperVoteDetail{}
新建IVoteDetailService
package com.java1234.service;import com.baomidou.mybatisplus.extension.service.IService;
import com.java1234.entity.VoteDetail;/*** 投票详情Service接口* author java1234_小锋* site www.java1234.com* company 南通小锋网络科技有限公司* create 2022-02-23 22:01*/
public interface IVoteDetailService extends IServiceVoteDetail {
}
新建IVoteDetailServiceImpl
package com.java1234.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.java1234.entity.VoteDetail;
import com.java1234.mapper.VoteDetailMapper;
import com.java1234.service.IVoteDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;/*** 投票详情Service实现类* author java1234_小锋* site www.java1234.com* company 南通小锋网络科技有限公司* create 2022-02-23 22:02*/
Service(voteDetailService)
public class IVoteDetailServiceImpl extends ServiceImplVoteDetailMapper, VoteDetail implements IVoteDetailService {Autowiredprivate VoteDetailMapper voteDetailMapper;
}
新建VoteDetailController
package com.java1234.controller;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.java1234.entity.R;
import com.java1234.entity.VoteDetail;
import com.java1234.entity.VoteItem;
import com.java1234.service.IVoteDetailService;
import com.java1234.service.IVoteItemService;
import com.java1234.util.JwtUtils;
import io.jsonwebtoken.Claims;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;import java.util.Date;
import java.util.HashMap;
import java.util.Map;/*** 投票详情Controller控制器* author java1234_小锋 公众号java1234* site www.java1234.vip* company 南通小锋网络科技有限公司*/
RestController
RequestMapping(/voteDetail)
public class VoteDetailController {Autowiredprivate IVoteDetailService voteDetailService;Autowiredprivate IVoteItemService voteItemService;/*** 添加投票* param voteDetail* param token* return*/RequestMapping(/add)Transactionalpublic R add(RequestBody VoteDetail voteDetail, RequestHeader String token){System.out.println(tokentoken);Claims claims JwtUtils.validateJWT(token).getClaims();System.out.println(openidclaims.getId());String openidclaims.getId();int count voteDetailService.count(new QueryWrapperVoteDetail().eq(openid, openid).eq(vote_id, voteDetail.getVoteId()));MapString,Object resultMapnew HashMap();if(count0){resultMap.put(info,您已经投票过不能重复投票);}else {resultMap.put(info, 投票成功);voteDetail.setOpenid(openid);voteDetail.setVoteDate(new Date());// 对指定投票项的number1操作VoteItem voteItemnew VoteItem();voteItem.setId(voteDetail.getVoteItemId());voteItemService.update(new UpdateWrapperVoteItem().setSql(numbernumber1).eq(id,voteDetail.getVoteItemId()));voteDetailService.save(voteDetail);}return R.ok(resultMap);}}
前端投票提交
submitVote:async function(e){let form{voteItemId:this.sItem,voteId:this.vote.id}const resultawait requestUtil({url:/voteDetail/add,data:form,method:post});if(result.code0){uni.showToast({icon:success,title:result.info})}}