package com.yc.web.servlets.admin;
import com.yc.bean.Product;
import com.yc.commons.DBHelper;
import com.yc.utils.HtmlSanitizer;
import com.yc.utils.PicUrl;
import com.yc.web.model.AdminJsonModel;
import com.yc.web.servlets.BaseServlet;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 后台产品测试类
* @author SLGRoutine
* @date 2024/6/21
*/
@WebServlet("/admin/product.action")
public class AdminProductServlet extends BaseServlet {
DBHelper db = new DBHelper();
/**
* 获取指定商品的商品描述,但是是反转义为html
* pid 前端发送的请求参数
*
* @param req
* @param resp
*/
public void getHtmlDescription(HttpServletRequest req, HttpServletResponse resp) throws IOException {
AdminJsonModel jm = new AdminJsonModel();
// 前端发送的请求参数
int pid = Integer.parseInt(req.getParameter("pid"));
String sql = "select * from product where pid = ?";
List<Map<String,Object>> list = db.select(sql, pid);
if (list == null || list.size() <= 0) {
jm.setCode(1);
jm.setMsg("商品详情查看失败");
super.writeObj(jm, resp);
return;
}
String translation = (String) list.get(0).get("description");
// 这里获取到反编译的HTMl商品详情
String backTranslation = HtmlSanitizer.backTranslation(translation);
jm.setCode(0);
jm.setMsg("用户详情查询成功");
jm.setData(backTranslation);
super.writeObj(jm, resp);
}
/**
* 查询商品图片
* @param req
* @param resp
*/
public void getProductPic(HttpServletRequest req, HttpServletResponse resp) throws IOException {
AdminJsonModel jm = new AdminJsonModel();
// 从前台拿数据
int pid = Integer.parseInt(req.getParameter("pid"));
String sql = "select url from product_pic where pid = ?";
List list = db.select(sql, pid);
if (list.size() <= 0 || list == null) {
jm.setCode(1);
jm.setMsg("图片查询失败");
super.writeObj(jm, resp);
return;
}
jm.setCode(0);
jm.setMsg("图片查询成功");
jm.setData(list);
super.writeObj(jm, resp);
}
/**
* 添加商品
*
* @param req
* @param resp
*/
public void addProduct(HttpServletRequest req, HttpServletResponse resp) throws InvocationTargetException, InstantiationException, IllegalAccessException, IOException {
// 回传前端对象
AdminJsonModel jm = new AdminJsonModel();
/**
* 第一部分,执行商品的上传
*/
int aid = 1;//默认一号管理员为超级管理员
// 获取前端发送数据
Product p = super.parseObjectFromRequest(req, Product.class);
// apache转义方法,将商品描述中的标签转义一下
p.setDescription(HtmlSanitizer.translation(p.getDescription()));
String pname = p.getPname();//商品名
String type = p.getType();//商品类型
System.out.println(type);
String firm = p.getFirm();//厂商
String description = p.getDescription();//商品详细地址
int normprice = (int) p.getNormprice();//初始价格
String sql1 = "insert into product(aid,pname, description, type, firm, normprice,realprice) values (?,?,?,?,?,?,?)";//执行商品添加
List params = new ArrayList<>();
params.add(aid);
params.add(pname);
params.add(description);
params.add(type);
params.add(firm);
params.add(normprice);
params.add(normprice);
//执行操作
int result = 0;
try {
result = db.doUpdate(sql1, params.toArray());
} catch (Exception e) {
e.printStackTrace();
jm.setMsg(e.getMessage());
jm.setCode(1);
}
if (result <= 0) {
jm.setMsg("商品添加失败");
jm.setCode(1);
}
// 到目前为止,我们还只进行了商品的增加
// 下面还要执行图片的添加
/**
* 第二部分,执行图片的上传
* 此时图片其实已经传到OSS
*/
//刚刚插入的商品的pid
int pid = (int) db.select("select pid from product order by pid desc limit 1").get(0).get("pid");
//上传的图片地址
List<String> picList = PicUrl.getaUrls();
//添加图片的sql
String sql2 = "insert into product_pic( pid, url, is_primary) values (?,?,?)";//执行商品图片上传
//sql集合
List<String> sqls = new ArrayList<>();
//sql对应的参数集合
List<List<Object>> paramsList = new ArrayList<>();
for (int i = 0; i < picList.size(); i++) {
if (!picList.get(i).equals("0")) {
sqls.add(sql2);
List<Object> picParams = new ArrayList<>();
picParams.add(pid);
picParams.add(picList.get(i));
if (i == 0) picParams.add(1);
else picParams.add(0);
paramsList.add(picParams);
}
}
// 正式执行批处理操作
int endResult = db.adminUpdate(sqls, paramsList);
if (endResult <= 0) {
jm.setCode(1);//后端1是失败
jm.setMsg("插入批处理更新失败");
super.writeObj(jm, resp);
return;
}
jm.setCode(0);
jm.setMsg("添加商品成功");
super.writeObj(jm, resp);
}
/**
* 更新所有商品列表
*
* @param req
* @param resp
*/
public void updateProduct(HttpServletRequest req, HttpServletResponse resp) throws IOException, InvocationTargetException, InstantiationException, IllegalAccessException {
// 回传前端对象
AdminJsonModel jm = new AdminJsonModel();
// 获取前端参数(这是固定参数,一定会传)
Product p = super.parseObjectFromRequest(req, Product.class);
int pid = p.getPid();//产品ID
String pname = p.getPname();//产品名
String type = p.getType();//产品类型
String firm = p.getFirm();//生产厂商
String description = p.getDescription();//详情
description = HtmlSanitizer.translation(description);
System.out.println(description);
int status = p.getStatus();//状态
double normprice = p.getNormprice();//正常价格
double realprice = p.getRealprice();//优惠价格
/* HttpSession session =req.getSession();
Admin admin = (Admin) session.getAttribute("admin");
int aid = admin.getAid();//商家ID*/
String sql = "UPDATE product SET pname = ? , type = ? , firm = ? , description = ?, status = ? , normprice = ? , realprice = ? WHERE pid = ? ";//sql语句
List params = new ArrayList();//参数列表
params.add(pname);
params.add(type);
params.add(firm);
params.add(description);
params.add(status);
params.add(normprice);
params.add(realprice);
params.add(pid);
int result = 0;
try {
result = db.doUpdate(sql, params.toArray());
if (result <= 0) {
jm.setCode(1);
jm.setMsg("商品更新失败");
super.writeObj(jm, resp);
return;
}
} catch (Exception e) {
e.printStackTrace();
jm.setCode(1);
jm.setMsg("异常信�
没有合适的资源?快使用搜索试试~ 我知道了~
基于Java与多语言融合的数码电商平台二期项目设计源码
共1181个文件
js:324个
html:196个
css:144个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 190 浏览量
2024-10-03
05:31:53
上传
评论
收藏 34.53MB ZIP 举报
温馨提示
该平台源码是以Java为核心,融合了JavaScript、HTML、CSS等前端技术,专为数码电商平台设计的二期项目。项目包含1171个文件,涵盖324个JavaScript文件、196个HTML文件、134个CSS文件、121个GIF和PNG图片文件、89个Java源文件、47个JPG图片文件、46个JSON文件、9个XML文件、7个JSP文件,旨在打造一个功能齐全、界面友好的在线购物体验。
资源推荐
资源详情
资源评论
收起资源包目录
基于Java与多语言融合的数码电商平台二期项目设计源码 (1181个子文件)
btn_suivant.bmp 1KB
btn_precedent_max.bmp 1KB
btn_suivant_max.bmp 1KB
btn_precedent.bmp 1KB
CHANGE-LOG 8KB
style.gold.css 221KB
style.default.css 221KB
style.violet.css 221KB
style.pink.css 221KB
style.sea.css 221KB
style.blue.css 221KB
style.red.css 221KB
style.green.css 221KB
bootstrap.css 201KB
bootstrap.rtl.css 200KB
style.gold.min.css 174KB
style.violet.min.css 174KB
style.pink.min.css 174KB
style.blue.min.css 174KB
style.sea.min.css 174KB
style.green.min.css 174KB
style.red.min.css 174KB
bootstrap.rtl.min.css 160KB
bootstrap.min.css 160KB
bootstrap.min.css 104KB
okadmin.animate.css 86KB
layui.css 73KB
iconfont.css 72KB
bootstrap-grid.rtl.css 71KB
bootstrap-grid.css 71KB
bootstrap-utilities.css 70KB
bootstrap-utilities.rtl.css 70KB
all.css 67KB
bootstrap-utilities.min.css 52KB
bootstrap-utilities.rtl.min.css 52KB
bootstrap-grid.rtl.min.css 52KB
bootstrap-grid.min.css 52KB
okadmin.css 20KB
swiper-bundle.css 18KB
glightbox.css 17KB
bootstrap-responsive.min.css 16KB
swiper-bundle.min.css 15KB
layer.css 14KB
glightbox.min.css 13KB
layer.css 11KB
layx.min.css 11KB
layui.mobile.css 10KB
demo.css 8KB
choices.css 8KB
bsgrid.all.min.css 7KB
bootstrap-reboot.css 7KB
bootstrap-reboot.rtl.css 7KB
laydate.css 7KB
blue.css 7KB
toastr.min.css 7KB
choices.min.css 7KB
grid.all.min.css 7KB
bootstrap-reboot.rtl.min.css 6KB
bootstrap-reboot.min.css 6KB
laydate.css 6KB
nouislider.css 6KB
swiper.min.css 5KB
oksub.css 5KB
address.css 5KB
pagination.min.css 5KB
order.css 4KB
common.css 4KB
nouislider.min.css 4KB
grid.simple.min.css 4KB
form.all.min.css 3KB
styles.css 3KB
laydate.css 3KB
icon.css 3KB
validationEngine.jquery.css 3KB
layer.ext.css 3KB
okadmin.theme.css 3KB
grid.css 3KB
grid_bootstrap.css 3KB
icon.min.css 3KB
websocket.css 3KB
okLoading.css 2KB
login.css 2KB
jqpagination.css 2KB
login.css 2KB
smartpaginator.css 2KB
grid.paging.css 2KB
base.css 2KB
style.css 2KB
grid_bootstrap.min.css 2KB
grid_easyui.css 2KB
grid.min.css 2KB
grid.paging.min.css 2KB
grid_jqgrid.css 2KB
base.min.css 2KB
laypage.css 1KB
nprogress.css 1KB
grid_easyui.min.css 1KB
arrowsidemenu.css 1KB
grid_jqgrid.min.css 1KB
sample.css 1KB
共 1181 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
lly202406
- 粉丝: 2602
- 资源: 5440
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功