Java项目:微信小程序商城+后台管理系统(java+SSH+JSP+jQuery+Mysql)

news/2024/7/10 23:41:37 标签: mysql, java, jquery, SSH, jsp

源码获取:俺的博客首页 "资源" 里下载!

项目介绍

本项目为小程序商城系统前后台,前台为普通会员用户登录,后台为管理员登录;

程序功能:
1.小程序前台:用户注册登录、首页、轮播图、新品推荐、分类、购物车、我的订单。
2.网站后台:管理员登录、用户管理、商品类别管理、商品管理、订单管理、公告管理;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
6.是否Maven项目: 否;


技术栈

1. 后端:spring+struts+hibernate
2. 前端:JSP+css+javascript+jquery


使用说明

后台运行:
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中config/jdbc.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/shop
管理员:admin/111111

前台小程序运行:
1.使用微信开发者工具导入项目;
2.导入成功后编译运行;
3.运行成功后登录账号;
普通用户:ceshi/111111

 

 

 

 

 

 

商品管理控制层: 

@RestController
@RequestMapping("/admin/goods")
@Validated
public class AdminGoodsController {
	private static final Logger logger = LoggerFactory.getLogger(AdminGoodsController.class);

	@Autowired
	private AdminGoodsService adminGoodsService;

	/**
	 * 查询商品
	 *
	 * @param goodsSn
	 * @param name
	 * @param page
	 * @param limit
	 * @param sort
	 * @param order
	 * @return
	 */
	@RequiresPermissions("admin:goods:list")
	@RequiresPermissionsDesc(menu = { "商品管理", "商品管理" }, button = "查询")
	@GetMapping("/list")
	public Object list(String goodsSn, String name, @RequestParam(defaultValue = "1") Integer page,
			@RequestParam(defaultValue = "10") Integer limit,
			@Sort @RequestParam(defaultValue = "add_time") String sort,
			@Order @RequestParam(defaultValue = "desc") String order) {
		logger.info("【请求开始】商品管理->商品管理->查询,请求参数:goodsSn:{},name:{},page:{}", goodsSn, name, page);

		return adminGoodsService.list(goodsSn, name, page, limit, sort, order);
	}

	@GetMapping("/catAndBrand")
	public Object list2() {
		return adminGoodsService.list2();
	}

	/**
	 * 编辑商品
	 *
	 * @param goodsAllinone
	 * @return
	 */
	@RequiresPermissions("admin:goods:update")
	@RequiresPermissionsDesc(menu = { "商品管理", "商品管理" }, button = "编辑")
	@PostMapping("/update")
	public Object update(@RequestBody GoodsAllinone goodsAllinone) {
		logger.info("【请求开始】商品管理->商品管理->编辑,请求参数:{}", JSONObject.toJSONString(goodsAllinone));

		return adminGoodsService.update(goodsAllinone);
	}

	/**
	 * 删除商品
	 *
	 * @param goods
	 * @return
	 */
	@RequiresPermissions("admin:goods:delete")
	@RequiresPermissionsDesc(menu = { "商品管理", "商品管理" }, button = "删除")
	@PostMapping("/delete")
	public Object delete(@RequestBody DtsGoods goods) {
		logger.info("【请求开始】商品管理->商品管理->删除,请求参数:{}", JSONObject.toJSONString(goods));

		return adminGoodsService.delete(goods);
	}

	/**
	 * 添加商品
	 *
	 * @param goodsAllinone
	 * @return
	 */
	@RequiresPermissions("admin:goods:create")
	@RequiresPermissionsDesc(menu = { "商品管理", "商品管理" }, button = "上架")
	@PostMapping("/create")
	public Object create(@RequestBody GoodsAllinone goodsAllinone) {
		logger.info("【请求开始】商品管理->商品管理->上架,请求参数:{}", JSONObject.toJSONString(goodsAllinone));

		return adminGoodsService.create(goodsAllinone);
	}

	/**
	 * 商品详情
	 *
	 * @param id
	 * @return
	 */
	@RequiresPermissions("admin:goods:read")
	@RequiresPermissionsDesc(menu = { "商品管理", "商品管理" }, button = "详情")
	@GetMapping("/detail")
	public Object detail(@NotNull Integer id) {
		logger.info("【请求开始】商品管理->商品管理->详情,请求参数,id:{}", id);

		return adminGoodsService.detail(id);
	}

}

订单管理控制层:

@RestController
@RequestMapping("/admin/order")
@Validated
public class AdminOrderController {
	private static final Logger logger = LoggerFactory.getLogger(AdminOrderController.class);

	@Autowired
	private AdminOrderService adminOrderService;

	/**
	 * 查询订单
	 *
	 * @param userId
	 * @param orderSn
	 * @param orderStatusArray
	 * @param page
	 * @param limit
	 * @param sort
	 * @param order
	 * @return
	 */
	@RequiresPermissions("admin:order:list")
	@RequiresPermissionsDesc(menu = { "商场管理", "订单管理" }, button = "查询")
	@GetMapping("/list")
	public Object list(Integer userId, String orderSn, @RequestParam(required = false) List<Short> orderStatusArray,
			@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer limit,
			@Sort @RequestParam(defaultValue = "add_time") String sort,
			@Order @RequestParam(defaultValue = "desc") String order) {
		logger.info("【请求开始】商场管理->订单管理->查询,请求参数:userId:{},orderSn:{},page:{}", userId, orderSn, page);

		return adminOrderService.list(userId, orderSn, orderStatusArray, page, limit, sort, order);
	}

	/**
	 * 订单详情
	 *
	 * @param id
	 * @return
	 */
	@RequiresPermissions("admin:order:read")
	@RequiresPermissionsDesc(menu = { "商场管理", "订单管理" }, button = "详情")
	@GetMapping("/detail")
	public Object detail(@NotNull Integer id) {
		logger.info("【请求开始】商场管理->订单管理->详情,请求参数:id:{}", id);

		return adminOrderService.detail(id);
	}

	/**
	 * 订单退款
	 *
	 * @param body 订单信息,{ orderId:xxx }
	 * @return 订单退款操作结果
	 */
	@RequiresPermissions("admin:order:refund")
	@RequiresPermissionsDesc(menu = { "商场管理", "订单管理" }, button = "订单退款")
	@PostMapping("/refund")
	public Object refund(@RequestBody String body) {
		logger.info("【请求开始】商场管理->订单管理->订单退款,请求参数,body:{}", body);

		return adminOrderService.refund(body);
	}

	/**
	 * 发货
	 *
	 * @param body 订单信息,{ orderId:xxx, shipSn: xxx, shipChannel: xxx }
	 * @return 订单操作结果
	 */
	@RequiresPermissions("admin:order:ship")
	@RequiresPermissionsDesc(menu = { "商场管理", "订单管理" }, button = "订单发货")
	@PostMapping("/ship")
	public Object ship(@RequestBody String body) {
		logger.info("【请求开始】商场管理->订单管理->订单发货,请求参数,body:{}", body);

		return adminOrderService.ship(body);
	}

	/**
	 * 回复订单商品
	 *
	 * @param body 订单信息,{ orderId:xxx }
	 * @return 订单操作结果
	 */
	@RequiresPermissions("admin:order:reply")
	@RequiresPermissionsDesc(menu = { "商场管理", "订单管理" }, button = "订单商品回复")
	@PostMapping("/reply")
	public Object reply(@RequestBody String body) {
		logger.info("【请求开始】商场管理->订单管理->订单商品回复,请求参数,body:{}", body);

		return adminOrderService.reply(body);
	}

}

用户管理控制层:

@RestController
@RequestMapping("/admin/user")
@Validated
public class AdminUserController {
	private static final Logger logger = LoggerFactory.getLogger(AdminUserController.class);

	@Autowired
	private DtsUserService userService;
	
	@Autowired
	private QCodeService qCodeService;

	@RequiresPermissions("admin:user:list")
	@RequiresPermissionsDesc(menu = { "用户管理", "会员管理" }, button = "查询")
	@GetMapping("/list")
	public Object list(String username, String mobile, @RequestParam(defaultValue = "1") Integer page,
			@RequestParam(defaultValue = "10") Integer limit,
			@Sort @RequestParam(defaultValue = "add_time") String sort,
			@Order @RequestParam(defaultValue = "desc") String order) {
		logger.info("【请求开始】用户管理->会员管理->查询,请求参数,username:{},code:{},page:{}", username, mobile, page);

		List<DtsUser> userList = userService.querySelective(username, mobile, page, limit, sort, order);
		long total = PageInfo.of(userList).getTotal();
		Map<String, Object> data = new HashMap<>();
		data.put("total", total);
		data.put("items", userList);

		logger.info("【请求结束】用户管理->会员管理->查询:响应结果:{}", JSONObject.toJSONString(data));
		return ResponseUtil.ok(data);
	}
	
	/**
	 * 订单详情
	 *
	 * @param id
	 * @return
	 */
	@RequiresPermissions("admin:user:read")
	@RequiresPermissionsDesc(menu = { "用户管理", "会员管理" }, button = "代理详情")
	@GetMapping("/detailApprove")
	public Object detailApprove(@NotNull Integer id) {
		logger.info("【请求开始】用户管理->会员管理->代理详情,请求参数:id:{}", id);
		
		DtsUserAccount dbAccount = userService.detailApproveByUserId(id);
		if (dbAccount == null) {
			logger.error("用户管理->会员管理->代理详情 错误:userID:{},{}",id,"代理账号信息不存在");
			ResponseUtil.badArgumentValue();
		}
		logger.info("【请求结束】用户管理->会员管理->代理详情:响应结果:{}", JSONObject.toJSONString(dbAccount));
		return ResponseUtil.ok(dbAccount);
	}
	
	@RequiresPermissions("admin:user:approveAgency")
	@RequiresPermissionsDesc(menu = { "用户管理", "会员管理" }, button = "代理审批")
	@PostMapping("/approveAgency")
	public Object approveAgency(@RequestBody String body) {
		logger.info("【请求开始】用户管理->会员管理->代理审批,请求参数:{}",body);
		
		Integer userId = JacksonUtil.parseInteger(body, "userId");
		Integer settlementRate = JacksonUtil.parseInteger(body, "settlementRate");
		
		if (userId == null || settlementRate == null || settlementRate.intValue() <= 0 ){
			return ResponseUtil.badArgument();
		}
		try {
			/*
			 * 生成代理用户独有分享的二维码需要小程序已经上线,所以未上线小程序这里调用会异常
			 * 建议通过后台参数控制,因为定制用户对这里的特殊性要求,本程序暂不做调整
			 */
			String shareUrl = qCodeService.createShareUserImage(userId);
			
			userService.approveAgency(userId,settlementRate,shareUrl);
		}catch (Exception e) {
			logger.error("用户管理->会员管理->代理审批 出错:{}",e.getMessage());
			e.printStackTrace();
		}
		
		logger.info("【请求结束】用户管理->会员管理->代理审批:响应结果:{}", "成功!");
		return ResponseUtil.ok();
	}
	
}

 源码获取:俺的博客首页 "资源" 里下载!


http://www.niftyadmin.cn/n/1553463.html

相关文章

Java项目:酒店预订管理系统(java+SpringBoot+Vue+Maven+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

Java项目:学生考勤系统(java+SpringBoot+Vue+mybatis+Maven+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

AIX 系统软件 32bit与64bit转换详解(转)

一、修改kernel首先用如下命令確定當前的所使用的kernel&#xff1a; (也可用bootinfo -k)# ls -l /unix lrwxrwxrwx 1 root system 21 May 06 2001 /unix -> /usr/lib/boot/unix_mp 為32位內核。 # ls -l /unix lrwxrwxrwx 1 root system 21 May 06 2001 /unix -> /usr/…

修改online redo日志文件大小

要将日志文件组1&#xff0c;2&#xff0c;3从100M修改到200M方法如下$ lscontrol01.ctl drsys01.dbf redo01.log temp01.dbf xdb01.dbfcontrol02.ctl example01.dbf redo02.log tools01.dbfcontrol03.ctl indx01.dbf redo03.log undotbs01.dbfcwml…

Java项目:物资管理系统(java+SpringBoot+Vue+Maven+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

RAC的时间同步问题

今天在两个节点上面安装RAC,在安装clusterware的时候OUI总是提示失败.查到资料的得知:特此记录:需要在在所有的集群节点上设置正确的日期和时间 在安装 Oracle 集群件、数据库以及随附 CD 期间&#xff0c;Oracle Universal Installer (OUI) 将首先安装运行该安装程序的本地节…

Java项目:在线旅游系统(java+SpringBoot+Vue+Maven+mybatis+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

RAC带给自己的郁闷

周末用了2天的时间,在vmware server上成功安装了10g的RAC,由于是基于CentOS的,而且我的硬件资源环境有限,MMD,害的自己总是在装clusterware和数据库的时候发生vmware的崩溃.哎,一边装,还以便观察我的内存使用情况,提心吊胆的,比装我们的Record Manager Enabler还挑战心里.一次次…