基于javaweb的客户关系管理系统CRM(Springboot+Maven+MySQL)

基于javaweb的客户关系管理系统CRM(Springboot+Maven+MySQL)

Springboot项目CRM客户关系管理系统:
系统实现了CRM客户关系系统的基本功能,主要有看板(当月参与的业务机会、当月转化情况、将要结束的业务机会等)、业务机会(初步接触中、需求分析中、协商方案中、商业谈判中的业务机会)、客户管理、联系人管理、个人日报管理、查看团队日报、主数据管理(组织架构管理)、系统管理(用户管理、角色管理、菜单管理)。

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

																												javax.swing.GroupLayout.Alignment.TRAILING,
																												false)
																												.addGroup(
																														javax.swing.GroupLayout.Alignment.LEADING,
																														layout.createSequentialGroup()
																																.addComponent(
																																		jtf_check,
																																		javax.swing.GroupLayout.PREFERRED_SIZE,
																																		71,
																																		javax.swing.GroupLayout.PREFERRED_SIZE)
																																.addPreferredGap(
																																		javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
																																.addComponent(
																																		jl_checkImage))
																												.addComponent(
																														jpw_password,
																														javax.swing.GroupLayout.Alignment.LEADING,
																														javax.swing.GroupLayout.DEFAULT_SIZE,
																.addGap(78, 78,
																		78)
																.addGroup(
																		layout.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.LEADING,
																				false)
																				.addGroup(
																						layout.createSequentialGroup()
																								.addGroup(
																										layout.createParallelGroup(
																												javax.swing.GroupLayout.Alignment.TRAILING)
																												.addComponent(
																														jLabel2)
																												.addComponent(
																														jLabel3)
			}
		});
		jb_add.setText("\u65b0\u5efa");
		jb_add.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_addActionPerformed(evt);
			}
		});
		jLabel4.setText("jLabel4");
		javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
				getContentPane());
		getContentPane().setLayout(layout);
		layout.setHorizontalGroup(layout
		info.setPagesize(PAGESIZE);
		fillTable(info, id);
	}
	private void jb_nextpageActionPerformed(java.awt.event.ActionEvent evt) {
		QueryInfo info = new QueryInfo();
		info.setCurrentpage(bean.getNextpage());
		info.setPagesize(PAGESIZE);
		fillTable(info, id);
	}
	private void jb_previouspageActionPerformed(java.awt.event.ActionEvent evt) {
		QueryInfo info = new QueryInfo();
		info.setCurrentpage(bean.getPreviouspage());
		info.setPagesize(PAGESIZE);
		fillTable(info, id);
	}
	private void jb_startActionPerformed(java.awt.event.ActionEvent evt) {
																						jLabel2)
																				.addPreferredGap(
																						javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
																				.addComponent(
																						jtf_cusname,
																						javax.swing.GroupLayout.PREFERRED_SIZE,
																						176,
																						javax.swing.GroupLayout.PREFERRED_SIZE))))
								.addContainerGap(36, Short.MAX_VALUE)));
		layout.setVerticalGroup(layout
		jcb_role.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
				"Item 1", "Item 2", "Item 3", "Item 4" }));
		jb_modify.setText("\u4fee\u6539");
		jb_modify.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_modifyActionPerformed(evt);
			}
		});
		jb_del.setText("\u5220\u9664");
		jb_del.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_delActionPerformed(evt);
			}
		});
		jb_end.setText("\u672b\u9875");
		jb_end.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_endActionPerformed(evt);
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																.addComponent(
																		jb_modify)
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																.addComponent(
																		jb_del)))
								.addContainerGap(20, Short.MAX_VALUE)));
		layout.setVerticalGroup(layout
				.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(
						layout.createSequentialGroup()
								.addContainerGap()
								.addComponent(jScrollPane1,
										javax.swing.GroupLayout.PREFERRED_SIZE,
										199,
										javax.swing.GroupLayout.PREFERRED_SIZE)
								.addPreferredGap(
										javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
								.addComponent(jLabel4)
												false)
												.addGroup(
														javax.swing.GroupLayout.Alignment.TRAILING,
														layout.createSequentialGroup()
																.addComponent(
																		jLabel9,
																		javax.swing.GroupLayout.PREFERRED_SIZE,
																		162,
																		javax.swing.GroupLayout.PREFERRED_SIZE)
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																.addComponent(
																		jb_info)
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED,
																		javax.swing.GroupLayout.DEFAULT_SIZE,
																		Short.MAX_VALUE)
																.addComponent(
																		jb_start)
																.addPreferredGap(
																						125,
																						javax.swing.GroupLayout.PREFERRED_SIZE))
																.addGroup(
																		layout.createSequentialGroup()
																				.addComponent(
																						jLabel2)
																				.addPreferredGap(
																						javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																				.addComponent(
																						jtf_password))
	/**
	 * 填充验证码图片
	 */
	private void fillImageCode() {
		// this.jl_checkImage.setIcon(new ImageIcon("images/check.png"));
		// this.repaint();
		// jl_checkImage.setIcon(new ImageIcon(ImageIO.read(new
		// File("images/check.png"))));
		ImageCodeUtil imageCodeUtil = ImageCodeUtil.getImageCodeUtil();
		jl_checkImage.setIcon(new ImageIcon(imageCodeUtil.getBufferedImage()));
		imageCode =imageCodeUtil.sRand;
		});
		jb_nextpage.setText("\u4e0b\u4e00\u9875");
		jb_nextpage.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_nextpageActionPerformed(evt);
			}
		});
		jb_previouspage.setText("\u4e0a\u4e00\u9875");
		jb_previouspage.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_previouspageActionPerformed(evt);
			}
		});
		jb_start.setText("\u9996\u9875");
		jb_start.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_startActionPerformed(evt);
			}
		});
		jb_add.setText("\u65b0\u5efa");
			boolean[] canEdit = new boolean[] { false, false, false, false };
			public boolean isCellEditable(int rowIndex, int columnIndex) {
				return canEdit[columnIndex];
			}
		});
		jScrollPane1.setViewportView(jtb_order);
		jb_start.setText("\u9996\u9875");
		jb_start.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_startActionPerformed(evt);
			}
		});
		jb_end.setText("\u672b\u9875");
		jb_end.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_endActionPerformed(evt);
			}
				"Item 1", "Item 2", "Item 3", "Item 4" }));
		jb_modify.setText("\u4fee\u6539");
		jb_modify.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_modifyActionPerformed(evt);
			}
		});
		jb_del.setText("\u5220\u9664");
		jb_del.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_delActionPerformed(evt);
			}
		});
		jb_end.setText("\u672b\u9875");
		jb_end.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_endActionPerformed(evt);
			}
		});
		jb_nextpage.setText("\u4e0b\u4e00\u9875");
		jb_start = new javax.swing.JButton();
		jb_end = new javax.swing.JButton();
		jb_previouspage = new javax.swing.JButton();
		jb_nextpage = new javax.swing.JButton();
		jLabel9 = new javax.swing.JLabel();
		jb_info = new javax.swing.JButton();
		setClosable(true);
		setIconifiable(true);
		setTitle("\u5386\u53f2\u8ba2\u5355");
		jLabel1.setText("\u5ba2\u6237\u7f16\u53f7\uff1a");
		jtf_cusid.setEditable(false);
		jLabel2.setText("\u5ba2\u6237\u540d\u79f0\uff1a");
		jtf_cusname.setEditable(false);
		jtb_order.setModel(new javax.swing.table.DefaultTableModel(
				new Object[][] {
				}, new String[] { "订单编号", "日期", "送货地址", "状态" }) {
			boolean[] canEdit = new boolean[] { false, false, false, false };
			public boolean isCellEditable(int rowIndex, int columnIndex) {
				return canEdit[columnIndex];
			}
		});
		});
		jScrollPane1.setViewportView(jtb_user);
		jLabel1.setText("\u7528\u6237\u540d\uff1a");
		jLabel2.setText("\u5bc6   \u7801\uff1a");
		jLabel3.setText("\u89d2   \u8272\uff1a");
		jcb_role.setModel(new javax.swing.DefaultComboBoxModel(new String[] {
				"Item 1", "Item 2", "Item 3", "Item 4" }));
		jb_modify.setText("\u4fee\u6539");
		jb_modify.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_modifyActionPerformed(evt);
			}
		});
		jb_del.setText("\u5220\u9664");
		jb_del.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_delActionPerformed(evt);
			}
		});
		jb_end.setText("\u672b\u9875");
		jb_end.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_endActionPerformed(evt);
																														jtf_username,
																														javax.swing.GroupLayout.Alignment.LEADING)))
																				.addGroup(
																						layout.createSequentialGroup()
																								.addComponent(
																										jb_login)
																								.addPreferredGap(
																										javax.swing.LayoutStyle.ComponentPlacement.RELATED,
																										javax.swing.GroupLayout.DEFAULT_SIZE,
																										Short.MAX_VALUE)
																								.addComponent(
																										jb_cancle)))))
				.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
				.addGroup(
						layout.createSequentialGroup()
								.addGap(34, 34, 34)
								.addComponent(jLabel1)
								.addGap(53, 53, 53)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.BASELINE)
												.addComponent(jLabel2)
												.addComponent(
														jtf_username,
														javax.swing.GroupLayout.PREFERRED_SIZE,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														javax.swing.GroupLayout.PREFERRED_SIZE))
								.addGap(18, 18, 18)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.BASELINE)
												.addComponent(jLabel3)
						layout.createSequentialGroup()
								.addContainerGap()
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.BASELINE)
												.addComponent(jLabel1)
												.addComponent(
														jtf_cusid,
														javax.swing.GroupLayout.PREFERRED_SIZE,
														javax.swing.GroupLayout.DEFAULT_SIZE,
		}
		if (!checkCode.equals(imageCode)) {
			JOptionPane.showMessageDialog(this, "验证码错误");
			// this.fillImageCode();
			// this.jl_checkImage.updateUI();
			// this.pack();
			return;
		}
		User user = new User(userName, password);
		UserEbi userEbi = UserEbiFactory.getUserEbi();
		User currentUser = userEbi.login(user);
		if (currentUser == null) {
			JOptionPane.showMessageDialog(this, "用户名或密码错误!");
			return;
		}
		// System.out.println("登录成功");
		this.dispose();
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																.addComponent(
																		jb_nextpage)
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																.addComponent(
																		jb_end)
																.addGap(39, 39,
																		39))
												.addGroup(
														layout.createSequentialGroup()
																.addContainerGap()
																.addGroup(
																		layout.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.LEADING)
																				.addComponent(
																						jScrollPane1,
																						javax.swing.GroupLayout.PREFERRED_SIZE,
																						359,
																						javax.swing.GroupLayout.PREFERRED_SIZE)
																				.addComponent(
																						jLabel4,
																						javax.swing.GroupLayout.PREFERRED_SIZE,
		jtf_password = new javax.swing.JTextField();
		jcb_role = new javax.swing.JComboBox();
		jb_modify = new javax.swing.JButton();
		jb_del = new javax.swing.JButton();
		jb_end = new javax.swing.JButton();
		jb_nextpage = new javax.swing.JButton();
		jb_previouspage = new javax.swing.JButton();
		jb_start = new javax.swing.JButton();
		jb_add = new javax.swing.JButton();
		jLabel4 = new javax.swing.JLabel();
		setClosable(true);
		setIconifiable(true);
		setTitle("\u7528\u6237\u7ba1\u7406");
			}
		});
		jb_start.setText("\u9996\u9875");
		jb_start.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_startActionPerformed(evt);
			}
		});
		jb_add.setText("\u65b0\u5efa");
		jb_add.addActionListener(new java.awt.event.ActionListener() {
			public void actionPerformed(java.awt.event.ActionEvent evt) {
				jb_addActionPerformed(evt);
			}
		});
		jLabel4.setText("jLabel4");
																						jLabel2)
																				.addPreferredGap(
																						javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																				.addComponent(
																						jtf_password))
																.addGroup(
																		layout.createSequentialGroup()
																				.addComponent(
																						jLabel3)
																				.addPreferredGap(
																						javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																				.addComponent(
																						jcb_role,
	}
	@SuppressWarnings({ "unchecked", "rawtypes" })
	private void fillTable(QueryInfo info, String id) {
		DefaultTableModel dtm = (DefaultTableModel) this.jtb_order.getModel();
		dtm.setRowCount(0);
		bean = CustomerEbiFactory.getCustomerEbi().searchOrder(id, info);
		List<CusOrder> list = bean.getList();
		for (CusOrder cusOrder : list) {
			Vector v = new Vector();
			v.add(cusOrder.getOrderid());
			v.add(cusOrder.getOrder_date());
			v.add(cusOrder.getOrder_address());
												.addComponent(jLabel2)
												.addComponent(
														jtf_password,
														javax.swing.GroupLayout.PREFERRED_SIZE,
														javax.swing.GroupLayout.DEFAULT_SIZE,
														javax.swing.GroupLayout.PREFERRED_SIZE))
								.addGap(26, 26, 26)
								.addGroup(
										layout.createParallelGroup(
												javax.swing.GroupLayout.Alignment.BASELINE)
																		jb_nextpage)
																.addPreferredGap(
																		javax.swing.LayoutStyle.ComponentPlacement.RELATED)
																.addComponent(
																		jb_end)
																.addGap(39, 39,
																		39))
												.addGroup(
														layout.createSequentialGroup()
																.addContainerGap()
																.addGroup(
																		layout.createParallelGroup(
																				javax.swing.GroupLayout.Alignment.LEADING)
																				.addComponent(
																						jScrollPane1,
																						javax.swing.GroupLayout.PREFERRED_SIZE,
																						359,
																						javax.swing.GroupLayout.PREFERRED_SIZE)
																				.addComponent(
																						jLabel4,
																						javax.swing.GroupLayout.PREFERRED_SIZE,
																						271,
																						javax.swing.GroupLayout.PREFERRED_SIZE))
		info.setCurrentpage(bean.getNextpage());
		info.setPagesize(PAGESIZE);
		fillTable(info, id);
	}
	private void jb_previouspageActionPerformed(java.awt.event.ActionEvent evt) {
		QueryInfo info = new QueryInfo();
		info.setCurrentpage(bean.getPreviouspage());
		info.setPagesize(PAGESIZE);
		fillTable(info, id);
	}
	private void jb_startActionPerformed(java.awt.event.ActionEvent evt) {
		QueryInfo info = new QueryInfo();
		info.setCurrentpage(1);
		info.setPagesize(PAGESIZE);
		fillTable(info, id);
	}
	//GEN-BEGIN:variables
	// Variables declaration - do not modify
	private javax.swing.JLabel jLabel1;
	private javax.swing.JLabel jLabel2;
	private javax.swing.JLabel jLabel9;
	private javax.swing.JScrollPane jScrollPane1;
	private javax.swing.JTextField jtf_username;
	// End of variables declaration//GEN-END:variables
}
用户服务类:
public class UserSerInterFrm extends javax.swing.JInternalFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = -8462503234613628488L;
	private PageBean bean = null;
	/** Creates new form UserSerInterFrm */
	public UserSerInterFrm() {
		initComponents();

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值