Java项目:(小程序)网上商城系统(weixin-java-mp+VUE+iview+bootstrap)

news/2024/7/10 3:20:50 标签: vue, java, 小程序, bootstrap, weixin-java-mp

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

一、项目简述

本系统功能包括:

一: 商品模块:商品添加、规格设置,商品上下架等

二:订单模块:下单、购物车、支付,发货、收货、评 价、退款等

三:用户模块:登陆、注册、会员卡、充值等

四:其他等

二、项目运行

环境配置: 1.1 springframework4.3.7.RELEASE 1.2 mybatis3.1.0s MyBatis-Plus 3.1.0 1.3 shirol.3.2 1.4 servlet3.1.0 1.5 druid1.0.28 1.6 weixin-java-mp3.2.0 1.7 MybatisPlus3.1.0 1.8 lombok等等。

项目技术: 2.1 Vue2.5.1 2.2 iview 2.3 layer3.0.3 2.4 jquery2.2.4 2.5 bootstrap3.3.7等等。

商品管理控制层:

@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/role")
@Validated
public class AdminRoleController {
	private static final Logger logger = LoggerFactory.getLogger(AdminRoleController.class);

	@Autowired
	private DtsRoleService roleService;
	@Autowired
	private DtsPermissionService permissionService;

	@RequiresPermissions("admin:role:list")
	@RequiresPermissionsDesc(menu = { "系统管理", "角色管理" }, button = "角色查询")
	@GetMapping("/list")
	public Object list(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("【请求开始】系统管理->角色管理->角色查询,请求参数,name:{},page:{}", name, page);

		List<DtsRole> roleList = roleService.querySelective(name, page, limit, sort, order);
		long total = PageInfo.of(roleList).getTotal();
		Map<String, Object> data = new HashMap<>();
		data.put("total", total);
		data.put("items", roleList);

		logger.info("【请求结束】系统管理->角色管理->角色查询,响应结果:{}", JSONObject.toJSONString(data));
		return ResponseUtil.ok(data);
	}

	@GetMapping("/options")
	public Object options() {
		List<DtsRole> roleList = roleService.queryAll();
		logger.info("【请求开始】系统管理->角色管理->查询所有角色");

		List<Map<String, Object>> options = new ArrayList<>(roleList.size());
		for (DtsRole role : roleList) {
			Map<String, Object> option = new HashMap<>(2);
			option.put("value", role.getId());
			option.put("label", role.getName());
			options.add(option);
		}

		logger.info("【请求结束】系统管理->角色管理->查询所有角色,响应结果:{}", JSONObject.toJSONString(options));
		return ResponseUtil.ok(options);
	}

	@RequiresPermissions("admin:role:read")
	@RequiresPermissionsDesc(menu = { "系统管理", "角色管理" }, button = "角色详情")
	@GetMapping("/read")
	public Object read(@NotNull Integer id) {
		logger.info("【请求开始】系统管理->角色管理->角色详情,请求参数,id:{}", id);

		DtsRole role = roleService.findById(id);

		logger.info("【请求结束】系统管理->角色管理->角色详情,响应结果:{}", JSONObject.toJSONString(role));
		return ResponseUtil.ok(role);
	}

	private Object validate(DtsRole role) {
		String name = role.getName();
		if (StringUtils.isEmpty(name)) {
			return ResponseUtil.badArgument();
		}

		return null;
	}

	@RequiresPermissions("admin:role:create")
	@RequiresPermissionsDesc(menu = { "系统管理", "角色管理" }, button = "角色添加")
	@PostMapping("/create")
	public Object create(@RequestBody DtsRole role) {
		logger.info("【请求开始】系统管理->角色管理->角色添加,请求参数:{}", JSONObject.toJSONString(role));

		Object error = validate(role);
		if (error != null) {
			return error;
		}

		if (roleService.checkExist(role.getName())) {
			logger.info("系统管理->角色管理->角色添加错误:{}", ROLE_NAME_EXIST.desc());
			return AdminResponseUtil.fail(ROLE_NAME_EXIST);
		}

		roleService.add(role);

		logger.info("【请求结束】系统管理->角色管理->角色添加,响应结果:{}", JSONObject.toJSONString(role));
		return ResponseUtil.ok(role);
	}

	@RequiresPermissions("admin:role:update")
	@RequiresPermissionsDesc(menu = { "系统管理", "角色管理" }, button = "角色编辑")
	@PostMapping("/update")
	public Object update(@RequestBody DtsRole role) {
		logger.info("【请求开始】系统管理->角色管理->角色编辑,请求参数:{}", JSONObject.toJSONString(role));

		Object error = validate(role);
		if (error != null) {
			return error;
		}

		roleService.updateById(role);
		logger.info("【请求结束】系统管理->角色管理->角色编辑,响应结果:{}", "成功!");
		return ResponseUtil.ok();
	}

	@RequiresPermissions("admin:role:delete")
	@RequiresPermissionsDesc(menu = { "系统管理", "角色管理" }, button = "角色删除")
	@PostMapping("/delete")
	public Object delete(@RequestBody DtsRole role) {
		logger.info("【请求开始】系统管理->角色管理->角色删除,请求参数,id:{}", JSONObject.toJSONString(role));

		Integer id = role.getId();
		if (id == null) {
			return ResponseUtil.badArgument();
		}
		roleService.deleteById(id);

		logger.info("【请求结束】系统管理->角色管理->角色删除,响应结果:{}", "成功!");
		return ResponseUtil.ok();
	}

	@Autowired
	private ApplicationContext context;
	private List<PermVo> systemPermissions = null;
	private Set<String> systemPermissionsString = null;

	private List<PermVo> getSystemPermissions() {
		final String basicPackage = "com.qiguliuxing.dts.admin";
		if (systemPermissions == null) {
			List<Permission> permissions = PermissionUtil.listPermission(context, basicPackage);
			systemPermissions = PermissionUtil.listPermVo(permissions);
			systemPermissionsString = PermissionUtil.listPermissionString(permissions);
		}
		return systemPermissions;
	}

	private Set<String> getAssignedPermissions(Integer roleId) {
		// 这里需要注意的是,如果存在超级权限*,那么这里需要转化成当前所有系统权限。
		// 之所以这么做,是因为前端不能识别超级权限,所以这里需要转换一下。
		Set<String> assignedPermissions = null;
		if (permissionService.checkSuperPermission(roleId)) {
			getSystemPermissions();
			assignedPermissions = systemPermissionsString;
		} else {
			assignedPermissions = permissionService.queryByRoleId(roleId);
		}

		return assignedPermissions;
	}

	/**
	 * 管理员的权限情况
	 *
	 * @return 系统所有权限列表和管理员已分配权限
	 */
	@RequiresPermissions("admin:role:permission:get")
	@RequiresPermissionsDesc(menu = { "系统管理", "角色管理" }, button = "权限详情")
	@GetMapping("/permissions")
	public Object getPermissions(Integer roleId) {
		logger.info("【请求开始】系统管理->角色管理->权限详情,请求参数,roleId:{}", roleId);

		List<PermVo> systemPermissions = getSystemPermissions();
		Set<String> assignedPermissions = getAssignedPermissions(roleId);

		Map<String, Object> data = new HashMap<>();
		data.put("systemPermissions", systemPermissions);
		data.put("assignedPermissions", assignedPermissions);

		logger.info("【请求结束】系统管理->角色管理->权限详情,响应结果:{}", JSONObject.toJSONString(data));
		return ResponseUtil.ok(data);
	}

	/**
	 * 更新管理员的权限
	 *
	 * @param body
	 * @return
	 */
	@RequiresPermissions("admin:role:permission:update")
	@RequiresPermissionsDesc(menu = { "系统管理", "角色管理" }, button = "权限变更")
	@PostMapping("/permissions")
	public Object updatePermissions(@RequestBody String body) {
		logger.info("【请求开始】系统管理->角色管理->权限变更,请求参数,body:{}", body);

		Integer roleId = JacksonUtil.parseInteger(body, "roleId");
		List<String> permissions = JacksonUtil.parseStringList(body, "permissions");
		if (roleId == null || permissions == null) {
			return ResponseUtil.badArgument();
		}

		// 如果修改的角色是超级权限,则拒绝修改。
		if (permissionService.checkSuperPermission(roleId)) {
			logger.error("系统管理->角色管理->权限变更 错误:{}", AdminResponseCode.ROLE_SUPER_SUPERMISSION.desc());
			return AdminResponseUtil.fail(AdminResponseCode.ROLE_SUPER_SUPERMISSION);
		}

		// 先删除旧的权限,再更新新的权限
		permissionService.deleteByRoleId(roleId);
		for (String permission : permissions) {
			DtsPermission DtsPermission = new DtsPermission();
			DtsPermission.setRoleId(roleId);
			DtsPermission.setPermission(permission);
			permissionService.add(DtsPermission);
		}

		logger.info("【请求结束】系统管理->角色管理->权限变更,响应结果:{}", "成功!");
		return ResponseUtil.ok();
	}

}

 

管理员用户控制层:

@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/1554443.html

相关文章

linux显示文件后缀名命令,Linux学习笔记(ctrl命令find命令文件后缀名)

Linux学习笔记(ctrl命令find命令文件后缀名)Linux学习笔记(ctrl命令&#xff0c;find命令&#xff0c;文件后缀名)一、Ctrl命令1.ctrl 一些用法。ctrl d 退出一个终端ctrl c 退出一个命令ctrl a 光标从头开始ctrl u 光标前面的命令全部删除ctrl d 光标后的命令一个一个字符删除…

linux系统编程实训总结,Linux下C编程基础之实验内容及小结

标签&#xff1a;c编程(73)Linux(1545)1&#xff0e;实验目的通过指定指令的vi操作练习&#xff0c;使读者能够熟练使用vi中的常见操作&#xff0c;并且熟悉vi的3种模式&#xff0c;如果读者能够熟练掌握实验内容中所要求的内容&#xff0c;则表明对vi的操作已经很熟练了。2&am…

Java项目:(小程序)前台+后台相结合水果商城系统(spring+spring mvc+mybatis+layui+微信小程)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a; 水果商城系统前台展示&#xff0c;分类后买&#xff0c;下单&#xff0c;支付&#xff0c;发货&#xff0c; 地址等等&#xff0c;后台商品上传&#xff0c;用户管…

Linux系统输入i的意思,Linux I/O (输入/输出)重定向的基本工作原理

欢迎&#xff0c;来自IP地址为&#xff1a;223.242.15.15 的朋友Linux系统管理有一个十分重要又非常有趣的话题&#xff0c;那就是输入/输出重定向。这一命令行特性可以让输入或者输出重新定向到文件&#xff0c;也可把多条命令通过被称为“命令管道”的管道连接起来。我们在系…

Java项目:(小程序)前台+后台相结合在线点餐系统(spring+spring mvc+mybatis+layui+微信小程)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a; 1 .微信小程序扫码点单 2 .微信小程序外卖点单 3 .后台可对微信小程序主页进行自定义&#xff08;如颜色、布局、 图片等&#xff09; 4 .支持微信支付与…

springboot医院挂号小程序

医院挂号系统 springboot医院挂号系统小程序 java医院挂号小程序 技术&#xff1a; 基于springbootvue小程序医院挂号系统的设计与实现 运行环境&#xff1a; JAVA版本&#xff1a;JDK1.8 IDE类型&#xff1a;IDEA、Eclipse都可运行 数据库类型&#xff1a;MySql&#xff08;…

linux系统新加了一块硬盘,linux新加了一块硬盘怎么挂载

推荐回答挂载好新硬盘后输入fdisk-l命令看当前磁盘信息可以看到除了当前的第一块硬盘外还有一块sdb的第二块硬盘&#xff0c;然后用fdisk/dev/sdb进行分区进入fdisk命令&#xff0c;输入h可以看到该命令的帮助&#xff0c;按n进行分区这里输入e即分为逻辑分区&#xff0c;按p即…

Java项目:(小程序)物业管理系统(spring+spring mvc+mybatis+layui+微信小程)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a; 微信小程序物业管理系统&#xff0c;微信朝胞括以下几个模 块&#xff1a; 社区公告、报修、信息采集、生活缴费、二手置换 微信小程序后台管理界面可以增删改查社…