源码获取:俺的博客首页 "资源" 里下载!
项目介绍
本项目为小程序商城系统前后台,前台为普通会员用户登录,后台为管理员登录;
程序功能: 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")@Validatedpublic class AdminGoodsController {private static final Logger logger = LoggerFactory.getLogger(AdminGoodsController.class);@Autowiredprivate 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")@Validatedpublic class AdminOrderController {private static final Logger logger = LoggerFactory.getLogger(AdminOrderController.class);@Autowiredprivate 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")@Validatedpublic class AdminUserController {private static final Logger logger = LoggerFactory.getLogger(AdminUserController.class);@Autowiredprivate DtsUserService userService;@Autowiredprivate 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();}}
源码获取:俺的博客首页 "资源" 里下载!