• SSH便利店管理系统


    作者主页:夜未央5788

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    便利店管理系统共分为两个角色:管理员和销售人员

    管理员功能包含:
    系统管理、用户管理、商品管理、采购管理、库存管理、销售管理、财务管理(成本报表、收入报表、利润报表)
     

    销售人员主要是销售管理,其中主要是对销售记录的添加、删除、修改;

    环境需要

    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+structs+hibernate

    2. 前端:JSP+css+javascript+bootstrap+jQuery+easyui+echarts

    使用说明

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

    销售人员账号密码:user/123456

    运行截图

    管理员界面

     

     

     

     

     

    销售角色

     

     

     

     

     

    相关代码

    登录Action

    1. @Controller("loginAction")
    2. @Scope("prototype")
    3. public class LoginAction extends ActionSupport {
    4. //============依赖注入start================
    5. @Autowired
    6. private ManageService manageService;//管理
    7. @Autowired
    8. private UserService userService;//用户
    9. //===========依赖注入end==================
    10. //-------------------------华丽分割线---------------------------------------------
    11. //============自定义参数start=============
    12. private Integer role;
    13. public Integer getRole() {
    14. return role;
    15. }
    16. public void setRole(Integer role) {
    17. this.role = role;
    18. }
    19. private String userName;//用户名
    20. private String passWord;//密码
    21. private String code;//统一社会信用代码:
    22. private Integer type;//1新型材料、2生物医药、3富硒食品、4安康丝绸、5清洁能源、6装备制造
    23. private String zczb;//注册资本
    24. private String name;//企业名称
    25. private String djjg;//登记机关
    26. private String address;//地址
    27. private String fr;//法定代表人
    28. private String info;//企业简介包含 经营内容和数据分析
    29. private Integer isSh;//是否审核 0否 1是
    30. //============自定义参数end=============
    31. //-------------------------华丽分割线---------------------------------------------
    32. public String getUserName() {
    33. return userName;
    34. }
    35. public void setUserName(String userName) {
    36. this.userName = userName;
    37. }
    38. public String getPassWord() {
    39. return passWord;
    40. }
    41. public void setPassWord(String passWord) {
    42. this.passWord = passWord;
    43. }
    44. public String getCode() {
    45. return code;
    46. }
    47. public void setCode(String code) {
    48. this.code = code;
    49. }
    50. public Integer getType() {
    51. return type;
    52. }
    53. public void setType(Integer type) {
    54. this.type = type;
    55. }
    56. public String getZczb() {
    57. return zczb;
    58. }
    59. public void setZczb(String zczb) {
    60. this.zczb = zczb;
    61. }
    62. public String getName() {
    63. return name;
    64. }
    65. public void setName(String name) {
    66. this.name = name;
    67. }
    68. public String getDjjg() {
    69. return djjg;
    70. }
    71. public void setDjjg(String djjg) {
    72. this.djjg = djjg;
    73. }
    74. public String getAddress() {
    75. return address;
    76. }
    77. public void setAddress(String address) {
    78. this.address = address;
    79. }
    80. public String getFr() {
    81. return fr;
    82. }
    83. public void setFr(String fr) {
    84. this.fr = fr;
    85. }
    86. public String getInfo() {
    87. return info;
    88. }
    89. public void setInfo(String info) {
    90. this.info = info;
    91. }
    92. public Integer getIsSh() {
    93. return isSh;
    94. }
    95. public void setIsSh(Integer isSh) {
    96. this.isSh = isSh;
    97. }
    98. //============文件上传start=============
    99. private File file;
    100. //提交过来的file的名字
    101. private String fileFileName;
    102. //提交过来的file的MIME类型
    103. private String fileContentType;
    104. public File getFile() {
    105. return file;
    106. }
    107. public void setFile(File file) {
    108. this.file = file;
    109. }
    110. public String getFileFileName() {
    111. return fileFileName;
    112. }
    113. public void setFileFileName(String fileFileName) {
    114. this.fileFileName = fileFileName;
    115. }
    116. public String getFileContentType() {
    117. return fileContentType;
    118. }
    119. public void setFileContentType(String fileContentType) {
    120. this.fileContentType = fileContentType;
    121. }
    122. //============文件上传end=============
    123. //-------------------------华丽分割线---------------------------------------------
    124. public String login() {
    125. return "login";
    126. }
    127. public String home() {
    128. return "success";
    129. }
    130. //登录
    131. public String toLogin(){
    132. if(role==2){//销售
    133. String hql = "from User where userName = :userName and passWord = :passWord and isDelete = 0 ";
    134. Map<String,Object> alias = new HashMap<String,Object>();
    135. alias.put("userName",userName);
    136. alias.put("passWord", passWord);
    137. List<User> userList= userService.getByHQL(hql, alias);
    138. if(userList.size()>0){
    139. //将用户信息放入session
    140. HttpSession session = ServletActionContext.getRequest()
    141. .getSession();
    142. session.setAttribute("userId",userList.get(0).getId() );
    143. session.setAttribute("user", userList.get(0));
    144. session.setAttribute("role", 1);
    145. return "index";
    146. }else{
    147. return "login";
    148. }
    149. }else{
    150. String hql = "from Manage where name = :userName and passWord = :passWord";
    151. Map<String,Object> alias = new HashMap<String,Object>();
    152. alias.put("userName",userName);
    153. alias.put("passWord", passWord);
    154. List<Manage> manageList=manageService.getByHQL(hql, alias);
    155. if(manageList.size()>0){
    156. //将用户信息放入session
    157. HttpSession session = ServletActionContext.getRequest()
    158. .getSession();
    159. session.setAttribute("role", 2);
    160. session.setAttribute("userName", manageList.get(0).getRealName());
    161. session.setAttribute("userId2",manageList.get(0).getId() );
    162. session.setAttribute("manage", manageList.get(0));
    163. session.setAttribute("roleId", role);
    164. return "index";
    165. }else{
    166. return "login";
    167. }
    168. }
    169. }

    管理Action

    1. @Controller("manageAction")
    2. @Scope("prototype")
    3. public class ManageAction extends ActionSupport implements ModelDriven<Manage>{
    4. private static final long serialVersionUID = 1L;
    5. //==========model==============
    6. private Manage manage;
    7. @Override
    8. public Manage getModel() {
    9. if(manage==null) manage = new Manage();
    10. return manage;
    11. }
    12. //==========model==============
    13. /**
    14. * 依赖注入 start dao/service/===
    15. */
    16. @Autowired
    17. private ManageService manageService;
    18. //依赖注入 end dao/service/===
    19. //-------------------------华丽分割线---------------------------------------------
    20. //============自定义参数start=============
    21. //============自定义参数end=============
    22. //-------------------------华丽分割线---------------------------------------------
    23. //============文件上传start=======================================================
    24. private File file;
    25. //提交过来的file的名字
    26. private String fileFileName;
    27. //提交过来的file的MIME类型
    28. private String fileContentType;
    29. public File getFile() {
    30. return file;
    31. }
    32. public void setFile(File file) {
    33. this.file = file;
    34. }
    35. public String getFileFileName() {
    36. return fileFileName;
    37. }
    38. public void setFileFileName(String fileFileName) {
    39. this.fileFileName = fileFileName;
    40. }
    41. public String getFileContentType() {
    42. return fileContentType;
    43. }
    44. public void setFileContentType(String fileContentType) {
    45. this.fileContentType = fileContentType;
    46. }
    47. //============文件上传end=========================================================
    48. //-------------------------华丽分割线---------------------------------------------//
    49. //=============公=======共=======方=======法==========区=========start============//
    50. /**
    51. * 列表分页查询
    52. * private String name;
    53. private String passWord;
    54. private String realName;//真实名
    55. private int type;//管理员类型 1 是超级管理员 2 是普通管理员
    56. */
    57. public String manage(){
    58. Map<String,Object> alias = new HashMap<String,Object>();
    59. StringBuffer sb = new StringBuffer();
    60. sb = sb.append("from Manage where 1=1 and type = 2");
    61. if(manage!=null && manage.getName() !=null && !"".equals(manage.getName())){
    62. sb.append(" and name like :name");
    63. alias.put("name", "%" +manage.getName()+ "%");
    64. }
    65. sb = sb.append(" order by id desc");
    66. Pager<Manage> pagers = manageService.findByAlias(sb.toString(),alias);
    67. ActionContext.getContext().put("pagers", pagers);
    68. ActionContext.getContext().put("Manage", manage);
    69. return SUCCESS;
    70. }
    71. /**
    72. * 跳转到添加页面
    73. * @return
    74. */
    75. public String add(){
    76. return SUCCESS;
    77. }
    78. /**
    79. * 执行添加
    80. * @return
    81. */
    82. public String exAdd(){
    83. manage.setType(2);
    84. manageService.save(manage);
    85. ActionContext.getContext().put("url", "/manage_manage.do");
    86. return "redirect";
    87. }
    88. /**
    89. * 查看详情页面
    90. * @return
    91. */
    92. public String view(){
    93. Manage n = manageService.getById(manage.getId());
    94. ActionContext.getContext().put("Manage", n);
    95. return SUCCESS;
    96. }
    97. /**
    98. * 跳转修改页面
    99. * @return
    100. */
    101. public String update(){
    102. Manage n = manageService.getById(manage.getId());
    103. ActionContext.getContext().put("Manage", n);
    104. return SUCCESS;
    105. }
    106. /**
    107. * 执行修改
    108. * @return
    109. */
    110. public String exUpdate(){
    111. //Manage n = manageService.getById(manage.getId());
    112. manage.setType(2);
    113. manageService.update(manage);
    114. ActionContext.getContext().put("url", "/manage_manage.do");
    115. return "redirect";
    116. }

    ShopAction

    1. @Controller("shopAction")
    2. @Scope("prototype")
    3. public class ShopAction extends ActionSupport implements ModelDriven<Shop>{
    4. private static final long serialVersionUID = 1L;
    5. //==========model==============
    6. private Shop shop;
    7. @Override
    8. public Shop getModel() {
    9. if(shop==null) shop = new Shop();
    10. return shop;
    11. }
    12. //==========model==============
    13. /**
    14. * 依赖注入 start dao/service/===
    15. */
    16. @Autowired
    17. private ShopService shopService;
    18. //依赖注入 end dao/service/===
    19. //-------------------------华丽分割线---------------------------------------------
    20. //============自定义参数start=============
    21. //============自定义参数end=============
    22. //-------------------------华丽分割线---------------------------------------------
    23. //============文件上传start=======================================================
    24. private File file;
    25. //提交过来的file的名字
    26. private String fileFileName;
    27. //提交过来的file的MIME类型
    28. private String fileContentType;
    29. public File getFile() {
    30. return file;
    31. }
    32. public void setFile(File file) {
    33. this.file = file;
    34. }
    35. public String getFileFileName() {
    36. return fileFileName;
    37. }
    38. public void setFileFileName(String fileFileName) {
    39. this.fileFileName = fileFileName;
    40. }
    41. public String getFileContentType() {
    42. return fileContentType;
    43. }
    44. public void setFileContentType(String fileContentType) {
    45. this.fileContentType = fileContentType;
    46. }
    47. //============文件上传end=========================================================
    48. //-------------------------华丽分割线---------------------------------------------//
    49. //=============公=======共=======方=======法==========区=========start============//
    50. /**
    51. * 列表分页查询
    52. */
    53. public String shop(){
    54. Map<String,Object> alias = new HashMap<String,Object>();
    55. StringBuffer sb = new StringBuffer();
    56. sb = sb.append("from Shop where 1=1 and isDelete = 0 ");
    57. if(shop!=null && shop.getName() !=null && !"".equals(shop.getName() )){
    58. sb.append(" and name like :name ");
    59. alias.put("name", "%" +shop.getName() + "%" );
    60. }
    61. sb = sb.append("order by id desc");
    62. Pager<Shop> pagers = shopService.findByAlias(sb.toString(),alias);
    63. ActionContext.getContext().put("pagers", pagers);
    64. ActionContext.getContext().put("Obj", shop);
    65. return SUCCESS;
    66. }
    67. /**
    68. * 跳转到添加页面
    69. * @return
    70. */
    71. public String add(){
    72. return SUCCESS;
    73. }
    74. /**
    75. * 执行添加
    76. * @return
    77. */
    78. public String exAdd(){
    79. shop.setIsDelete(0);
    80. shopService.save(shop);
    81. ActionContext.getContext().put("url", "/shop_shop.do");
    82. return "redirect";
    83. }

    如果也想学习本系统,下面领取。回复:112ssh

  • 相关阅读:
    蓝桥杯官网练习题(愤怒的小鸟)
    微服务治理浅谈
    用ARM进行汇编语言编程(1)介绍与寻址模式
    微信个人号如何实现自动回复客户消息?
    ED BOARD 灯板 T431 电量显示
    【算法题】LeetCode691、贴纸拼词(剪枝+记忆化搜索)
    MetaBase连接presto的hive(比官网还要详细)
    js 去除字符串空格
    红 黑 树
    光标签使能的车路协同现状与展望
  • 原文地址:https://blog.csdn.net/hanyunlong1989/article/details/125633307