基于javaweb+mysql的springbootcrm客户关系管理系统(java+springboot+maven+mysql)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBootcrm客户关系管理系统(java+springboot+maven+mysql)
Springboot项目CRM客户关系管理系统:
系统实现了CRM客户关系系统的基本功能,主要有看板(当月参与的业务机会、当月转化情况、将要结束的业务机会等)、业务机会(初步接触中、需求分析中、协商方案中、商业谈判中的业务机会)、客户管理、联系人管理、个人日报管理、查看团队日报、主数据管理(组织架构管理)、系统管理(用户管理、角色管理、菜单管理)。
199,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel4)
.addGap(4, 4, 4)
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jb_end)
.addComponent(jb_nextpage)
.addComponent(jb_previouspage)
.addContainerGap()));
pack();
}// </editor-fold>
// GEN-END:initComponents
private void jb_cancleActionPerformed(java.awt.event.ActionEvent evt) {
int i = JOptionPane.showConfirmDialog(this, "确定退出系统?", "确认信息",
JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE);
if (i == 0) {
this.dispose();
private void jb_loginActionPerformed(java.awt.event.ActionEvent evt) {
String userName = this.jtf_username.getText();
String password = new String(this.jpw_password.getPassword());
.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)
.addComponent(
jpw_password,
javax.swing.GroupLayout.PREFERRED_SIZE,
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JButton jb_add;
private javax.swing.JButton jb_del;
private javax.swing.JButton jb_end;
private javax.swing.JButton jb_modify;
private javax.swing.JButton jb_nextpage;
private javax.swing.JButton jb_previouspage;
private javax.swing.JButton jb_start;
private javax.swing.JComboBox jcb_role;
private javax.swing.JTable jtb_user;
private javax.swing.JTextField jtf_password;
private javax.swing.JTextField jtf_username;
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,
157,
private String id;
private String name;
private PageBean bean;
/** Creates new form CusOrderInterFrm */
public CusOrderInterFrm(String id, String name) {
this.id = id;
this.name = name;
initComponents();
this.setLocation(330, 80);
initData();
private void initData() {
this.jtf_cusid.setText(id);
this.jtf_cusname.setText(name);
jb_nextpage)
.addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(
jb_end))
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(
jScrollPane1,
javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE)
.addComponent(
jb_cancle)))))
.addContainerGap(79, Short.MAX_VALUE)));
layout.setVerticalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addGap(34, 34, 34)
.addComponent(jLabel1)
.addGap(53, 53, 53)
javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jb_end)
.addComponent(jb_nextpage)
.addComponent(jb_previouspage)
.addComponent(jb_start)
.addComponent(jLabel9)
.addComponent(jb_info))
.addGap(24, 24, 24)));
pack();
}// </editor-fold>
//GEN-END:initComponents
private void jb_infoActionPerformed(java.awt.event.ActionEvent evt) {
JOptionPane.showMessageDialog(this, "用户名不能为空!");
return;
if (StringUtil.isEmpty(password)) {
JOptionPane.showMessageDialog(this, "密码不能为空");
return;
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();
.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,
layout.setHorizontalGroup(layout
.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addGroup(
layout.createParallelGroup(
javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(
layout.createSequentialGroup()
.addGap(108,
108,
int selectRows = jtb_user.getSelectedRows().length;// 取得用户所选行的行数
int selectedRowIndex = jtb_user.getSelectedRow(); // 取得用户所选单行
if (selectRows == 1) {
BigDecimal userId = (BigDecimal) tableModel.getValueAt(
selectedRowIndex, 0);
String username = this.jtf_username.getText();
String password = this.jtf_password.getText();
Role role = (Role) this.jcb_role.getSelectedItem();
BigDecimal roleId = role.getId();
User user = new User(userId, username, password, roleId);
boolean b = UserEbiFactory.getUserEbi().update(user);
if (b) {
dtm.addRow(v);
this.jLabel9.setText("共" + bean.getTotalrecord() + "条记录-共"
+ bean.getTotalpage() + "页-当前第" + bean.getCurrentpage() + "页");
//GEN-BEGIN:initComponents
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jtf_cusid = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jtf_cusname = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
jtb_order = new javax.swing.JTable();
jb_start = new javax.swing.JButton();
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JButton jb_cancle;
private javax.swing.JButton jb_login;
private javax.swing.JLabel jl_checkImage;
private javax.swing.JPasswordField jpw_password;
private javax.swing.JTextField jtf_check;
private javax.swing.JTextField jtf_username;
// End of variables declaration//GEN-END:variables
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_nextpage.setText("\u4e0b\u4e00\u9875");
jb_nextpage.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jb_nextpageActionPerformed(evt);
});
jLabel9.setText("jLabel9");
jb_info.setText("\u660e\u7ec6");
jb_info.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jb_infoActionPerformed(evt);