新网站怎么做才能让搜狗收录,临海市建设局网站,wordpress页面不要菜单,百度关键词推广作者简介#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验#xff0c;被多个学校常年聘为校外企业导师#xff0c;指导学生毕业设计并参与学生毕业答辩指导#xff0c;… 作者简介Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验被多个学校常年聘为校外企业导师指导学生毕业设计并参与学生毕业答辩指导有较为丰富的相关经验。期待与各位高校教师、企业讲师以及同行交流合作 主要内容Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能与大数据、单片机开发、物联网设计与开发设计、简历模板、学习资料、面试题库、技术互助、就业指导等 业务范围免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文降重、长期答辩答疑辅导、腾讯会议一对一专业讲解辅导答辩、模拟答辩演练、和理解代码逻辑思路等。 收藏点赞不迷路 关注作者有好处 文末获取源码 项目编号BS-XCX-068
一环境介绍
语言环境微信小程序
数据库Mysql: mysql5.7
WEB框架SpringBootVue
开发工具IDEA和微信开发者工具
二项目简介
基于微信小程序实现信阳毛尖茶叶商城系统的设计与实现选题背景源于当前电子商务的快速发展以及消费者对高品质茶叶日益增长的需求。信阳毛尖作为中国十大名茶之一以其独特的色、香、味、形和丰富的营养成分深受消费者喜爱。然而传统的茶叶销售模式存在成本高、效率低等问题难以满足现代消费者便捷、高效的购物需求。因此开发一款基于微信小程序的信阳毛尖茶叶商城系统不仅有助于提升茶叶的销售效率还能为消费者提供更为便捷、个性化的购物体验。
该系统的主要功能包括茶叶产品展示通过精美的图片、视频和详细介绍帮助用户全面了解信阳毛尖的品质和特色分类筛选功能用户可按茶叶种类、产地、品牌等分类快速找到所需茶叶购物车功能支持用户将多种茶叶添加至购物车统一结算多种支付方式如微信支付、支付宝等方便用户完成支付会员等级制度和积分系统激励用户成为忠实客户实时物流跟踪和自动通知系统确保用户能够随时查看订单状态和物流信息用户评价和商家回复功能帮助其他用户更好地选择茶叶同时提升用户满意度。
此外该系统还引入了人工智能技术根据用户的购买记录和浏览习惯推荐个性化的茶叶产品提高转化率。同时通过与微信平台和其他社交平台的整合实现跨平台的销售和推广进一步扩大市场覆盖面。通过茶叶小程序商城结合茶文化知识普及和茶艺展示提升用户对信阳毛尖的认知和兴趣促进茶叶消费推动茶叶产业的持续发展。 三系统展示 四核心代码展示 package com.controller;import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;/*** 购物车* 后端接口* author* email
*/
RestController
Controller
RequestMapping(/cart)
public class CartController {private static final Logger logger LoggerFactory.getLogger(CartController.class);private static final String TABLE_NAME cart;Autowiredprivate CartService cartService;Autowiredprivate TokenService tokenService;Autowiredprivate AddressService addressService;//收货地址Autowiredprivate ChayeService chayeService;//茶叶Autowiredprivate ChayeCollectionService chayeCollectionService;//茶叶收藏Autowiredprivate ChayeCommentbackService chayeCommentbackService;//茶叶评价Autowiredprivate ChayeOrderService chayeOrderService;//茶叶订单Autowiredprivate DictionaryService dictionaryService;//字典Autowiredprivate ForumService forumService;//论坛Autowiredprivate GonggaoService gonggaoService;//公告Autowiredprivate LishijieshaoService lishijieshaoService;//茗茶历史Autowiredprivate YonghuService yonghuService;//用户Autowiredprivate UsersService usersService;//管理员/*** 后端列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params, HttpServletRequest request){logger.debug(page方法:,,Controller:{},,params:{},this.getClass().getName(),JSONObject.toJSONString(params));String role String.valueOf(request.getSession().getAttribute(role));if(false)return R.error(511,永不会进入);else if(用户.equals(role))params.put(yonghuId,request.getSession().getAttribute(userId));CommonUtil.checkMap(params);PageUtils page cartService.queryPage(params);//字典表数据转换ListCartView list (ListCartView)page.getList();for(CartView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put(data, page);}/*** 后端详情*/RequestMapping(/info/{id})public R info(PathVariable(id) Long id, HttpServletRequest request){logger.debug(info方法:,,Controller:{},,id:{},this.getClass().getName(),id);CartEntity cart cartService.selectById(id);if(cart !null){//entity转viewCartView view new CartView();BeanUtils.copyProperties( cart , view );//把实体数据重构到view中//级联表 用户//级联表YonghuEntity yonghu yonghuService.selectById(cart.getYonghuId());if(yonghu ! null){BeanUtils.copyProperties( yonghu , view ,new String[]{ id, createTime, insertTime, updateTime, yonghuId});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表view.setYonghuId(yonghu.getId());}//级联表 茶叶//级联表ChayeEntity chaye chayeService.selectById(cart.getChayeId());if(chaye ! null){BeanUtils.copyProperties( chaye , view ,new String[]{ id, createTime, insertTime, updateTime, yonghuId});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表view.setChayeId(chaye.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put(data, view);}else {return R.error(511,查不到数据);}}/*** 后端保存*/RequestMapping(/save)public R save(RequestBody CartEntity cart, HttpServletRequest request){logger.debug(save方法:,,Controller:{},,cart:{},this.getClass().getName(),cart.toString());String role String.valueOf(request.getSession().getAttribute(role));if(false)return R.error(511,永远不会进入);else if(用户.equals(role))cart.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute(userId))));WrapperCartEntity queryWrapper new EntityWrapperCartEntity().eq(yonghu_id, cart.getYonghuId()).eq(chaye_id, cart.getChayeId()).eq(buy_number, cart.getBuyNumber());logger.info(sql语句:queryWrapper.getSqlSegment());CartEntity cartEntity cartService.selectOne(queryWrapper);if(cartEntitynull){cart.setCreateTime(new Date());cart.setInsertTime(new Date());cartService.insert(cart);return R.ok();}else {return R.error(511,商品已添加到购物车);}}/*** 后端修改*/RequestMapping(/update)public R update(RequestBody CartEntity cart, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {logger.debug(update方法:,,Controller:{},,cart:{},this.getClass().getName(),cart.toString());CartEntity oldCartEntity cartService.selectById(cart.getId());//查询原先数据String role String.valueOf(request.getSession().getAttribute(role));
// if(false)
// return R.error(511,永远不会进入);
// else if(用户.equals(role))
// cart.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute(userId))));cart.setUpdateTime(new Date());cartService.updateById(cart);//根据id更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Integer[] ids, HttpServletRequest request){logger.debug(delete:,,Controller:{},,ids:{},this.getClass().getName(),ids.toString());ListCartEntity oldCartList cartService.selectBatchIds(Arrays.asList(ids));//要删除的数据cartService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 批量上传*/RequestMapping(/batchInsert)public R save( String fileName, HttpServletRequest request){logger.debug(batchInsert方法:,,Controller:{},,fileName:{},this.getClass().getName(),fileName);Integer yonghuId Integer.valueOf(String.valueOf(request.getSession().getAttribute(userId)));SimpleDateFormat sdf new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);//.eq(time, new SimpleDateFormat(yyyy-MM-dd).format(new Date()))try {ListCartEntity cartList new ArrayList();//上传的东西MapString, ListString seachFields new HashMap();//要查询的字段Date date new Date();int lastIndexOf fileName.lastIndexOf(.);if(lastIndexOf -1){return R.error(511,该文件没有后缀);}else{String suffix fileName.substring(lastIndexOf);if(!.xls.equals(suffix)){return R.error(511,只支持后缀为xls的excel文件);}else{URL resource this.getClass().getClassLoader().getResource(static/upload/ fileName);//获取文件路径File file new File(resource.getFile());if(!file.exists()){return R.error(511,找不到上传文件请联系管理员);}else{ListListString dataList PoiUtil.poiImport(file.getPath());//读取xls文件dataList.remove(0);//删除第一行因为第一行是提示for(ListString data:dataList){//循环CartEntity cartEntity new CartEntity();
// cartEntity.setYonghuId(Integer.valueOf(data.get(0))); //所属用户 要改的
// cartEntity.setChayeId(Integer.valueOf(data.get(0))); //茶叶 要改的
// cartEntity.setBuyNumber(Integer.valueOf(data.get(0))); //购买数量 要改的
// cartEntity.setCreateTime(date);//时间
// cartEntity.setUpdateTime(sdf.parse(data.get(0))); //更新时间 要改的
// cartEntity.setInsertTime(date);//时间cartList.add(cartEntity);//把要查询是否重复的字段放入map中}//查询是否重复cartService.insertBatch(cartList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,批量插入数据异常请联系管理员);}}/*** 前端列表*/IgnoreAuthRequestMapping(/list)public R list(RequestParam MapString, Object params, HttpServletRequest request){logger.debug(list方法:,,Controller:{},,params:{},this.getClass().getName(),JSONObject.toJSONString(params));CommonUtil.checkMap(params);PageUtils page cartService.queryPage(params);//字典表数据转换ListCartView list (ListCartView)page.getList();for(CartView c:list)dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段return R.ok().put(data, page);}/*** 前端详情*/RequestMapping(/detail/{id})public R detail(PathVariable(id) Integer id, HttpServletRequest request){logger.debug(detail方法:,,Controller:{},,id:{},this.getClass().getName(),id);CartEntity cart cartService.selectById(id);if(cart !null){//entity转viewCartView view new CartView();BeanUtils.copyProperties( cart , view );//把实体数据重构到view中//级联表YonghuEntity yonghu yonghuService.selectById(cart.getYonghuId());if(yonghu ! null){BeanUtils.copyProperties( yonghu , view ,new String[]{ id, createDate});//把级联的数据添加到view中,并排除id和创建时间字段view.setYonghuId(yonghu.getId());}//级联表ChayeEntity chaye chayeService.selectById(cart.getChayeId());if(chaye ! null){BeanUtils.copyProperties( chaye , view ,new String[]{ id, createDate});//把级联的数据添加到view中,并排除id和创建时间字段view.setChayeId(chaye.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put(data, view);}else {return R.error(511,查不到数据);}}/*** 前端保存*/RequestMapping(/add)public R add(RequestBody CartEntity cart, HttpServletRequest request){logger.debug(add方法:,,Controller:{},,cart:{},this.getClass().getName(),cart.toString());WrapperCartEntity queryWrapper new EntityWrapperCartEntity().eq(yonghu_id, cart.getYonghuId()).eq(chaye_id, cart.getChayeId()).eq(buy_number, cart.getBuyNumber())
// .notIn(cart_types, new Integer[]{102});logger.info(sql语句:queryWrapper.getSqlSegment());CartEntity cartEntity cartService.selectOne(queryWrapper);if(cartEntitynull){cart.setCreateTime(new Date());cart.setInsertTime(new Date());cartService.insert(cart);return R.ok();}else {return R.error(511,表中有相同数据);}}} 五相关作品展示
基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目
基于Nodejs、Vue等前端技术开发的前端实战项目
基于微信小程序和安卓APP应用开发的相关作品
基于51单片机等嵌入式物联网开发应用
基于各类算法实现的AI智能应用
基于大数据实现的各类数据管理和推荐系统