前言
✨ **博主介绍:**一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码,帮你把毕设做成作品集。👍👍
👇精彩专栏 推荐订阅👇
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️
系统实现
收银员功能实现
用户登录模块
用户在登录界面点击"登录"按钮后,需输入用户名、密码以及验证码以完成身份验证操作。系统在前端会自动对所输入信息进行有效性校验,同时检查该用户是否已通过后台审核流程。若审核通过且信息无误,则系统将允许用户成功登录并跳转至相应的功能界面;反之页面会弹出相应的提示信息,提醒用户重新输入或检查相关信息的正确性。登录界面如下图所示。

登录界面
收银员首页模块
收银员首页模块作为系统的重要入口,主要承担着信息展示与功能引导的核心功能。该模块不仅提供了系统搜索功能和主要功能模块的导航菜单,实时展示今日销售总额、当前排队人数、热销商品Top榜及待处理异常订单,帮助收银员快速掌握收银员运营态势。用户可以快速了解系统的主要服务内容,并便捷地进入相应功能界面进行操作。界面如下图所示。

首页界面
商品信息管理模块
商品信息管理,提供基于条形码或名称的毫秒级商品查询,支持快速录入新品基础参数(如价格、产地),确保前台扫码结算的准确性。界面如下图所示。

商品信息管理界面
购物订单管理模块
购物订单管理,支持从购物车生成正式销售订单,完成支付闭环,同时可追溯查询历史订单详情以处理顾客退换货或发票补打需求。界面如下图所示。

购物订单管理界面
采购员功能实现
后台首页模块
后台首页直观呈现库存预警列表(低库存/临期商品)、待审批采购单状态及供应商供货准时率,辅助采购员科学制定进货策略。界面如下图所示。

后台首页界面
供应商信息管理模块
供应商信息管理,建立并维护供应商全生命周期档案,涵盖资质审核、联系方式、供货品类及历史合作评级,支持新增优质供应商入库。界面如下图所示。

供应商信息管理界面
管理员功能实现
系统用户管理模块
系统管理,统一配置和维护管理员、收银员及采购员的账号生命周期,支持岗位调整、密码重置及离职账号冻结,确保人员架构清晰安全。界面如下图所示。

系统用户管理界面
普通用户信息管理模块
普通用户信息管理,统筹管理普通消费者档案及其积分累计规则配置,保障用户权益计算的公平性,并分析散客转化为会员的趋势。界面如下图所示。

普通用户信息管理界面
权限管理模块
权限管理,基于RBAC模型精细化分配各角色功能模块的操作权限与数据可见范围,构建严密的系统安全防线以防越权操作。界面如下图所示。

权限管理界面
数据库参考
sql
CREATE TABLE `operation_log` (
`operation_log_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '操作日志ID',
`user_group` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户角色',
`user_name` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户账号',
`routes` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '模块名称',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`operation_log_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='操作日志表';
DROP TABLE IF EXISTS `hits`;
CREATE TABLE `hits` (
`hits_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '点赞ID',
`user_id` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '点赞人',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`source_table` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '来源表',
`source_field` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '来源字段',
`source_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '来源ID',
PRIMARY KEY (`hits_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户点击';
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`user_id` int(8) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`state` smallint(1) unsigned NOT NULL DEFAULT '1' COMMENT '账户状态:(1可用|2异常|3已冻结|4已注销)',
`user_group` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '所在用户组',
`login_time` timestamp NULL DEFAULT NULL COMMENT '上次登录时间',
`phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号码',
`phone_state` smallint(1) unsigned NOT NULL DEFAULT '0' COMMENT '手机认证:(0未认证|1审核中|2已认证)',
`username` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '用户名',
`nickname` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '昵称',
`password` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '密码',
`email` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '邮箱',
`email_state` smallint(1) unsigned NOT NULL DEFAULT '0' COMMENT '邮箱认证:(0未认证|1审核中|2已认证)',
`avatar` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '头像地址',
`open_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '针对获取用户信息字段',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`vip_level` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '会员等级',
`vip_discount` double(10,2) DEFAULT '0.00' COMMENT '会员折扣',
`integral` int(11) DEFAULT '0' COMMENT '积分',
`balance` double(10,2) DEFAULT '0.00' COMMENT '余额',
`ip` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'IPv4/IPv6地址',
`device_hash` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '设备指纹',
`emergency_name` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '紧急联系人',
`emergency_mobile` varchar(32) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '紧急联系电话',
PRIMARY KEY (`user_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户账户';
代码参考
java
package com.project.demo.controller;
import com.project.demo.entity.CommodityInformation;
import com.project.demo.service.CommodityInformationService;
import com.alibaba.fastjson.JSON;
import com.project.demo.controller.base.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.util.StringUtils;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 商品信息:(CommodityInformation)表控制层
*
*/
@RestController
@RequestMapping("/commodity_information")
public class CommodityInformationController extends BaseController<CommodityInformation, CommodityInformationService> {
/**
* 商品信息对象
*/
@Autowired
public CommodityInformationController(CommodityInformationService service) {
setService(service);
}
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
Map<String,Object> paramMap = service.readBody(request.getReader());
paramMap.entrySet().removeIf(entry -> {
Object value = entry.getValue();
return value instanceof String && ((String) value).isEmpty();
});
CommodityInformation commodity_information = new CommodityInformation();
commodity_information.setCommodity_inventory(paramMap.get("commodity_inventory")==null?null:Double.valueOf(String.valueOf(paramMap.get("commodity_inventory"))));
commodity_information.setCommodity_number(paramMap.get("commodity_number")==null?null:String.valueOf(paramMap.get("commodity_number")));
commodity_information.setName_of_commodity(paramMap.get("name_of_commodity")==null?null:String.valueOf(paramMap.get("name_of_commodity")));
commodity_information.setCommodity_picture(paramMap.get("commodity_picture")==null?null:String.valueOf(paramMap.get("commodity_picture")));
commodity_information.setCommodity_type(paramMap.get("commodity_type")==null?null:String.valueOf(paramMap.get("commodity_type")));
commodity_information.setCommodity_price(paramMap.get("commodity_price")==null?null:String.valueOf(paramMap.get("commodity_price")));
commodity_information.setCommodity_purchase_price(paramMap.get("commodity_purchase_price")==null?null:String.valueOf(paramMap.get("commodity_purchase_price")));
commodity_information.setPurchasing_information_limit_times(paramMap.get("purchasing_information_limit_times")==null?null:String.valueOf(paramMap.get("purchasing_information_limit_times")));
commodity_information.setCommodity_plan_limit_times(paramMap.get("commodity_plan_limit_times")==null?null:String.valueOf(paramMap.get("commodity_plan_limit_times")));
commodity_information.setShopping_cart_limit_times(paramMap.get("shopping_cart_limit_times")==null?null:String.valueOf(paramMap.get("shopping_cart_limit_times")));
commodity_information.setCreate_by(paramMap.get("create_by")==null?null:Integer.valueOf(String.valueOf(paramMap.get("create_by"))));
this.addEntity(commodity_information);
System.out.println("商品信息新增成功");
return success(1);
}
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
Map<String,String> queryMap = service.readQuery(request);
Map<String,String> configMap = service.readConfig(request);
Map<String,Object> paramMap = service.readBody(request.getReader());
paramMap.entrySet().removeIf(entry -> {
Object value = entry.getValue();
return value instanceof String && ((String) value).isEmpty();
});
CommodityInformation commodity_information = new CommodityInformation();
commodity_information.setCommodity_inventory(paramMap.get("commodity_inventory")==null?null:Double.valueOf(String.valueOf(paramMap.get("commodity_inventory"))));
commodity_information.setCommodity_number(paramMap.get("commodity_number")==null?null:String.valueOf(paramMap.get("commodity_number")));
commodity_information.setName_of_commodity(paramMap.get("name_of_commodity")==null?null:String.valueOf(paramMap.get("name_of_commodity")));
commodity_information.setCommodity_picture(paramMap.get("commodity_picture")==null?null:String.valueOf(paramMap.get("commodity_picture")));
commodity_information.setCommodity_type(paramMap.get("commodity_type")==null?null:String.valueOf(paramMap.get("commodity_type")));
commodity_information.setCommodity_price(paramMap.get("commodity_price")==null?null:String.valueOf(paramMap.get("commodity_price")));
commodity_information.setCommodity_purchase_price(paramMap.get("commodity_purchase_price")==null?null:String.valueOf(paramMap.get("commodity_purchase_price")));
commodity_information.setPurchasing_information_limit_times(paramMap.get("purchasing_information_limit_times")==null?null:String.valueOf(paramMap.get("purchasing_information_limit_times")));
commodity_information.setCommodity_plan_limit_times(paramMap.get("commodity_plan_limit_times")==null?null:String.valueOf(paramMap.get("commodity_plan_limit_times")));
commodity_information.setShopping_cart_limit_times(paramMap.get("shopping_cart_limit_times")==null?null:String.valueOf(paramMap.get("shopping_cart_limit_times")));
this.setEntity(queryMap,configMap,commodity_information);
System.out.println("商品信息修改成功");
return success(1);
}
}
package com.project.demo.controller;
import com.project.demo.entity.PurchasingInformation;
import com.project.demo.service.PurchasingInformationService;
import com.alibaba.fastjson.JSON;
import com.project.demo.controller.base.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.util.StringUtils;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 采购信息:(PurchasingInformation)表控制层
*
*/
@RestController
@RequestMapping("/purchasing_information")
public class PurchasingInformationController extends BaseController<PurchasingInformation, PurchasingInformationService> {
/**
* 采购信息对象
*/
@Autowired
public PurchasingInformationController(PurchasingInformationService service) {
setService(service);
}
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
Map<String,Object> paramMap = service.readBody(request.getReader());
paramMap.entrySet().removeIf(entry -> {
Object value = entry.getValue();
return value instanceof String && ((String) value).isEmpty();
});
PurchasingInformation purchasing_information = new PurchasingInformation();
purchasing_information.setCommodity_number(paramMap.get("commodity_number")==null?null:String.valueOf(paramMap.get("commodity_number")));
purchasing_information.setName_of_commodity(paramMap.get("name_of_commodity")==null?null:String.valueOf(paramMap.get("name_of_commodity")));
purchasing_information.setCommodity_type(paramMap.get("commodity_type")==null?null:String.valueOf(paramMap.get("commodity_type")));
purchasing_information.setCommodity_inventory(paramMap.get("commodity_inventory")==null?null:String.valueOf(paramMap.get("commodity_inventory")));
purchasing_information.setPurchase_quantity(paramMap.get("purchase_quantity")==null?null:Double.valueOf(String.valueOf(paramMap.get("purchase_quantity"))));
purchasing_information.setPurchase_unit_price(paramMap.get("purchase_unit_price")==null?null:String.valueOf(paramMap.get("purchase_unit_price")));
purchasing_information.setSupplier_name(paramMap.get("supplier_name")==null?null:String.valueOf(paramMap.get("supplier_name")));
purchasing_information.setBuyer(paramMap.get("buyer")==null?null:Integer.valueOf(String.valueOf(paramMap.get("buyer"))));
purchasing_information.setTotal_amount_of_procurement(paramMap.get("total_amount_of_procurement")==null?null:Double.valueOf(String.valueOf(paramMap.get("total_amount_of_procurement"))));
purchasing_information.setExamine_state(paramMap.get("examine_state")==null?null:String.valueOf(paramMap.get("examine_state")));
purchasing_information.setCommodity_warehousing_limit_times(paramMap.get("commodity_warehousing_limit_times")==null?null:String.valueOf(paramMap.get("commodity_warehousing_limit_times")));
purchasing_information.setExtra(paramMap.get("extra")==null?null:String.valueOf(paramMap.get("extra")));
purchasing_information.setSource_table(paramMap.get("source_table")==null?null:String.valueOf(paramMap.get("source_table")));
purchasing_information.setSource_id(paramMap.get("source_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("source_id"))));
purchasing_information.setSource_user_id(paramMap.get("source_user_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("source_user_id"))));
purchasing_information.setCreate_by(paramMap.get("create_by")==null?null:Integer.valueOf(String.valueOf(paramMap.get("create_by"))));
this.addEntity(purchasing_information);
System.out.println("采购信息新增成功");
return success(1);
}
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
Map<String,String> queryMap = service.readQuery(request);
Map<String,String> configMap = service.readConfig(request);
Map<String,Object> paramMap = service.readBody(request.getReader());
paramMap.entrySet().removeIf(entry -> {
Object value = entry.getValue();
return value instanceof String && ((String) value).isEmpty();
});
PurchasingInformation purchasing_information = new PurchasingInformation();
purchasing_information.setCommodity_number(paramMap.get("commodity_number")==null?null:String.valueOf(paramMap.get("commodity_number")));
purchasing_information.setName_of_commodity(paramMap.get("name_of_commodity")==null?null:String.valueOf(paramMap.get("name_of_commodity")));
purchasing_information.setCommodity_type(paramMap.get("commodity_type")==null?null:String.valueOf(paramMap.get("commodity_type")));
purchasing_information.setCommodity_inventory(paramMap.get("commodity_inventory")==null?null:String.valueOf(paramMap.get("commodity_inventory")));
purchasing_information.setPurchase_quantity(paramMap.get("purchase_quantity")==null?null:Double.valueOf(String.valueOf(paramMap.get("purchase_quantity"))));
purchasing_information.setPurchase_unit_price(paramMap.get("purchase_unit_price")==null?null:String.valueOf(paramMap.get("purchase_unit_price")));
purchasing_information.setSupplier_name(paramMap.get("supplier_name")==null?null:String.valueOf(paramMap.get("supplier_name")));
purchasing_information.setBuyer(paramMap.get("buyer")==null?null:Integer.valueOf(String.valueOf(paramMap.get("buyer"))));
purchasing_information.setTotal_amount_of_procurement(paramMap.get("total_amount_of_procurement")==null?null:Double.valueOf(String.valueOf(paramMap.get("total_amount_of_procurement"))));
purchasing_information.setExamine_state(paramMap.get("examine_state")==null?null:String.valueOf(paramMap.get("examine_state")));
purchasing_information.setCommodity_warehousing_limit_times(paramMap.get("commodity_warehousing_limit_times")==null?null:String.valueOf(paramMap.get("commodity_warehousing_limit_times")));
purchasing_information.setSource_table(paramMap.get("source_table")==null?null:String.valueOf(paramMap.get("source_table")));
purchasing_information.setSource_id(paramMap.get("source_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("source_id"))));
purchasing_information.setSource_user_id(paramMap.get("source_user_id")==null?null:Integer.valueOf(String.valueOf(paramMap.get("source_user_id"))));
this.setEntity(queryMap,configMap,purchasing_information);
System.out.println("采购信息修改成功");
return success(1);
}
/**
* 修改审核状态
*
* @param id 要修改的记录ID
* @param newState 新的审核状态
* @return 提示信息:审核成功/失败
*/
@Transactional
@GetMapping("/update_examine_state")
public String updateExamineState(Long id, String newState) throws IOException {
// 检查传入的状态是否合法
if (!newState.equals("未审核") && !newState.equals("已通过") && !newState.equals("未通过")) {
return "非法的审核状态";
}
Map<String,String> queryMap = new HashMap<>();
queryMap.put("id",String.valueOf(id));
// 根据ID查找记录
PurchasingInformation purchasing_information = service.findOne(queryMap);
if (purchasing_information!=null) {
// 更新审核状态
purchasing_information.setExamine_state(newState);
this.setEntity(queryMap,new HashMap<>(),purchasing_information);
return "审核成功";
} else {
return "审核失败:记录不存在";
}
}
}
package com.project.demo.controller;
import com.project.demo.entity.SupplierInformation;
import com.project.demo.service.SupplierInformationService;
import com.alibaba.fastjson.JSON;
import com.project.demo.controller.base.BaseController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.util.StringUtils;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 供应商信息:(SupplierInformation)表控制层
*
*/
@RestController
@RequestMapping("/supplier_information")
public class SupplierInformationController extends BaseController<SupplierInformation, SupplierInformationService> {
/**
* 供应商信息对象
*/
@Autowired
public SupplierInformationController(SupplierInformationService service) {
setService(service);
}
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
Map<String,Object> paramMap = service.readBody(request.getReader());
paramMap.entrySet().removeIf(entry -> {
Object value = entry.getValue();
return value instanceof String && ((String) value).isEmpty();
});
SupplierInformation supplier_information = new SupplierInformation();
supplier_information.setSupplier_name(paramMap.get("supplier_name")==null?null:String.valueOf(paramMap.get("supplier_name")));
supplier_information.setDocking_personnel(paramMap.get("docking_personnel")==null?null:String.valueOf(paramMap.get("docking_personnel")));
supplier_information.setMerchant_mobile_phone(paramMap.get("merchant_mobile_phone")==null?null:String.valueOf(paramMap.get("merchant_mobile_phone")));
supplier_information.setSupplier_address(paramMap.get("supplier_address")==null?null:String.valueOf(paramMap.get("supplier_address")));
supplier_information.setType_of_supply(paramMap.get("type_of_supply")==null?null:String.valueOf(paramMap.get("type_of_supply")));
supplier_information.setAdd_user(paramMap.get("add_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("add_user"))));
supplier_information.setExamine_state(paramMap.get("examine_state")==null?null:String.valueOf(paramMap.get("examine_state")));
supplier_information.setCreate_by(paramMap.get("create_by")==null?null:Integer.valueOf(String.valueOf(paramMap.get("create_by"))));
this.addEntity(supplier_information);
System.out.println("供应商信息新增成功");
return success(1);
}
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
Map<String,String> queryMap = service.readQuery(request);
Map<String,String> configMap = service.readConfig(request);
Map<String,Object> paramMap = service.readBody(request.getReader());
paramMap.entrySet().removeIf(entry -> {
Object value = entry.getValue();
return value instanceof String && ((String) value).isEmpty();
});
SupplierInformation supplier_information = new SupplierInformation();
supplier_information.setSupplier_name(paramMap.get("supplier_name")==null?null:String.valueOf(paramMap.get("supplier_name")));
supplier_information.setDocking_personnel(paramMap.get("docking_personnel")==null?null:String.valueOf(paramMap.get("docking_personnel")));
supplier_information.setMerchant_mobile_phone(paramMap.get("merchant_mobile_phone")==null?null:String.valueOf(paramMap.get("merchant_mobile_phone")));
supplier_information.setSupplier_address(paramMap.get("supplier_address")==null?null:String.valueOf(paramMap.get("supplier_address")));
supplier_information.setType_of_supply(paramMap.get("type_of_supply")==null?null:String.valueOf(paramMap.get("type_of_supply")));
supplier_information.setAdd_user(paramMap.get("add_user")==null?null:Integer.valueOf(String.valueOf(paramMap.get("add_user"))));
supplier_information.setExamine_state(paramMap.get("examine_state")==null?null:String.valueOf(paramMap.get("examine_state")));
this.setEntity(queryMap,configMap,supplier_information);
System.out.println("供应商信息修改成功");
return success(1);
}
/**
* 修改审核状态
*
* @param id 要修改的记录ID
* @param newState 新的审核状态
* @return 提示信息:审核成功/失败
*/
@Transactional
@GetMapping("/update_examine_state")
public String updateExamineState(Long id, String newState) throws IOException {
// 检查传入的状态是否合法
if (!newState.equals("未审核") && !newState.equals("已通过") && !newState.equals("未通过")) {
return "非法的审核状态";
}
Map<String,String> queryMap = new HashMap<>();
queryMap.put("id",String.valueOf(id));
// 根据ID查找记录
SupplierInformation supplier_information = service.findOne(queryMap);
if (supplier_information!=null) {
// 更新审核状态
supplier_information.setExamine_state(newState);
this.setEntity(queryMap,new HashMap<>(),supplier_information);
return "审核成功";
} else {
return "审核失败:记录不存在";
}
}
}
前端: 基于Vue.js框架构建用户界面,使用HTML5、CSS3和JavaScript实现页面结构与交互逻辑,通过Vue Router管理路由,Vuex或Pinia维护全局状态。采用Element UI或Vant组件库快速搭建界面,Axios封装HTTP请求实现与后端的数据通信。
后端: 基于springboot框架搭建,遵循Controller-Service-Mapper三层架构。Controller层接收前端请求并校验参数,Service层处理核心业务逻辑,Mapper层通过MyBatis或MyBatis-Plus完成数据库操作。使用Spring Security或Shiro结合JWT实现用户认证与权限控制。
数据库: 采用MySQL存储持久化数据,Redis缓存热点信息以提升系统性能。
**开发工具:**使用IDEA开发后端,VSCode或HBuilderX开发前端,Git进行版本管理,Maven和npm分别管理前后端依赖。
源码获取
私信联系我即可~
大家点赞、收藏、关注、评论啦
👇精彩专栏 推荐订阅👇
✅获取源码请私信✅
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人❤️