客户管理系统(SSM版):创建交易,并返回主页面查找所有的交易

客户需求:

用户在交易主页面,点击”创建”按钮,跳转到创建交易的页面;

用户在创建交易的页面填写表单,点击”保存”按钮,完成创建交易的功能。

*所有者、阶段、类型、来源 都是动态的

*市场活动源是可搜索的

*联系人也是可搜索的

*可能性是可配置的

*客户名称支持自动补全

*表单验证

*保存成功之后,跳转到交易主页面

*保存失败,提示信息,页面不跳转

功能实现:

一、创建交易

1.调用了3个mapper层

1)CustomerMapper接口

 

 

CustomerMapper.xml文件

  <select id="selectCustomerByName" parameterType="string" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"></include>
from tbl_customer
where name =#{name}
  </select>

 

<insert id="insertCustomer" parameterType="com.it.crm.workbench.entity.Customer">
    insert into tbl_customer(id, owner, name, website, phone, create_by, create_time, contact_summary,next_contact_time, description, address)
values (#{id},#{owner},#{name},#{website},#{phone},#{createBy},#{createTime},#{contactSummary},#{nextContactTime},#{description},#{address})
  </insert>

2)TranMapper接口

 

TranMapper.xml

<insert id="insertTran" parameterType="com.it.crm.workbench.entity.Tran">
    insert into tbl_tran(id, owner, money, name, expected_date, customer_id, stage, type, source, activity_id,
    contacts_id, create_by, create_time, description, contact_summary,next_contact_time)
    values (#{id},#{owner},#{money},#{name},#{expectedDate},#{customerId},#{stage},#{type},#{source},#{activityId},
    #{contactsId},#{createBy},#{createTime},#{description},#{contactSummary},#{nextContactTime})
  </insert>

3)TranHistory接口

 

TranHistory.xml文件

  <insert id="insertTranHistory" parameterType="com.it.crm.workbench.entity.TranHistory">
    insert into tbl_tran_history(id, stage, money, expected_date, create_time, create_by, tran_id)
    values (#{id},#{stage},#{money},#{expectedDate},#{createTime},#{createBy},#{tranId})
  </insert>

2.调用service层

TranService接口

 

TranServiceImpl实现类

  @Override
    public void saveCreateTransaction(Map<String, Object> map) {
        String customerName = (String) map.get("customerName");
        User user = (User) map.get(Contants.SESSION_USER);
        //根据name,精确查询客户
        Customer customer = customerMapper.selectCustomerByName(customerName);
        //判断客户是否存在,如果客户不存在,则新建用户
        if (customer==null){
            customer=new Customer();
            customer.setOwner(user.getId());
            customer.setName(customerName);
            customer.setId(UUIDUtils.getUUID());
            customer.setCreateTime(DateUtils.formateDateTime(new Date()));
            customer.setCreateBy(user.getId());
            customerMapper.insertCustomer(customer);
        }
        //保存创建的交易
        Tran tran=new Tran();
        tran.setStage((String) map.get("stage"));
        tran.setOwner((String) map.get("owner"));
        tran.setNextContactTime((String) map.get("nextContactTime"));
        tran.setName((String) map.get("name"));
        tran.setMoney((String) map.get("money"));
        tran.setId(UUIDUtils.getUUID());
        tran.setExpectedDate((String) map.get("expectedDate"));
        tran.setCustomerId(customer.getId());
        tran.setCreateTime(DateUtils.formateDateTime(new Date()));
        tran.setCreateBy(user.getId());
        tran.setContactSummary((String) map.get("contactSummary"));
        tran.setContactsId((String) map.get("contactsId"));
        tran.setActivityId((String) map.get("activityId"));
        tran.setDescription((String) map.get("description"));
        tran.setSource((String) map.get("source"));
        tran.setType((String) map.get("type"));
        tranMapper.insertTran(tran);
        //保存交易历史
        TranHistory tranHistory=new TranHistory();
        tranHistory.setCreateBy(user.getId());
        tranHistory.setCreateTime(DateUtils.formateDateTime(new Date()));
        tranHistory.setExpectedDate(tran.getExpectedDate());
        tranHistory.setId(UUIDUtils.getUUID());
        tranHistory.setMoney(tran.getMoney());
        tranHistory.setStage(tran.getStage());
        tranHistory.setTranId(tran.getId());
        tranHistoryMapper.insertTranHistory(tranHistory);
    }

3.调用controller层

 @RequestMapping("/workbench/transaction/saveCreateTran.do")
    @ResponseBody
    public Object saveCreateTran(@RequestParam Map<String,Object> map, HttpSession session){
        //封装参数
        map.put(Contants.SESSION_USER,session.getAttribute(Contants.SESSION_USER));
        ReturnObject returnObject=new ReturnObject();
        try{
            //调用service层方法,保存创建的交易
            tranService.saveCreateTransaction(map);
            returnObject.setCode(Contants.RETURN_OBJECT_CODE_SUCCESS);
        }catch (Exception e){
            e.printStackTrace();
            returnObject.setCode(Contants.RETURN_OBJECT_CODE_FAIL);
            returnObject.setMessage("系统忙,请稍后重试!");
        }
        return returnObject;
    }

save.jsp页面

//给保存按钮添加单击事件
			$("#createTransactionBtn").click(function () {
				//收集参数
				var owner=$("#create-transactionOwner").val();
				var money=$.trim($("#create-amountOfMoney").val());
				var name=$.trim($("#create-transactionName").val());
				var expectedDate=$("#create-expectedClosingDate").val();
				var customerName=$.trim($("#create-accountName").val());
				var stage=$("#create-transactionStage").val();
				var type=$("#create-transactionType").val();
				var source =$("#create-clueSource").val();
				var activityId=$("#create-activitySrc").val();
				var contactsId=$("#create-contactsName").val();
				var description=$.trim($("#create-describe").val());
				var contactSummary=$.trim($("#create-contactSummary").val());
				var nextContactTime=$("#create-nextContactTime").val();
				//表单验证
                if (owner=="" ) {
                    alert("所有者不能为空!");
                    return;
                }
                if (name==""){
                    alert("名称不能为空!");
                    return;
                }
                if (expectedDate==""){
                    alert("预计成交日期不能为空!");
                    return;
                }
                if (customerName==""){
                    alert("客户名称不能为空!");
                    return;
                }
                if (stage==""){
                    alert("阶段不能为空!")
                    return;
                }
                //发送请求
                $.ajax({
                   url:'workbench/transaction/saveCreateTran.do',
                    type:'post',
                    dataType:'json',
                    data:{
                        owner:owner,
                        money:money,
                        name:name,
                        expectedDate:expectedDate,
                        customerName:customerName,
                        stage:stage,
                        type:type,
                        source:source,
                        activityId:activityId,
                        contactsId:contactsId,
                        description:description,
                        contactSummary:contactSummary,
                        nextContactTime:nextContactTime
                    },
                    success:function (data) {
                        if (data.code==1){
                            //跳转到交易主页面
                            window.location.href="workbench/transaction/index.do";
                        }else {
                            alert(data.message)
                        }
                    }

                });

			});

 

二、查找交易

TranMapper接口

 

TranMapper.xml文件

<select id="selectAllTran" resultMap="BaseResultMap">
   select
    tt.id, u1.name as owner, tt.money, tt.name, tt.expected_date,tc.name as customer_id,
    tdv.value as stage,tdv2.value as type,tdv3.value as source,ta.name as activity_id,
    tc1.fullname as contacts_id,u2.name as create_by, tt.create_time,u3.name as edit_by, tt.edit_time,
    tt.description, tt.contact_summary,tt.next_contact_time
    from tbl_tran tt
    join tbl_user u1 on tt.owner=u1.id
    join tbl_customer tc on tt.customer_id=tc.id
    join tbl_dic_value tdv on tt.stage=tdv.id
    left join tbl_dic_value tdv2 on tt.type=tdv2.id
    left join tbl_dic_value tdv3 on tt.source=tdv3.id
    left join tbl_activity ta on tt.activity_id=ta.id
    join tbl_contacts tc1 on tt.contacts_id=tc1.id
    join tbl_user u2 on tt.create_by=u2.id
    left join tbl_user u3 on tt.edit_by=u3.id
  </select>

TranService接口

 

TranServiceImpl实现类

 

TransactionController类

 @RequestMapping("/workbench/transaction/index.do")
    public String index(HttpServletRequest request){
        List<Tran> trans = tranService.queryAllTran();
        request.setAttribute("trans",trans);
        //返回交易主页面
        return "workbench/transaction/index";
    }

index.jsp

	<table class="table table-hover">
					<thead>
						<tr style="color: #B3B3B3;">
							<td><input type="checkbox" /></td>
							<td>名称</td>
							<td>客户名称</td>
							<td>阶段</td>
							<td>类型</td>
							<td>所有者</td>
							<td>来源</td>
							<td>联系人名称</td>
						</tr>
					</thead>
					<tbody>
					<c:forEach items="${trans}" var="tran">
						<tr>
							<td><input type="checkbox" /></td>
							<td><a style="text-decoration: none; cursor: pointer;" onclick="window.location.href='detail.html';">${tran.name}</a></td>
							<td>${tran.customerId}</td>
							<td>${tran.stage}</td>
							<td>${tran.type}</td>
							<td>${tran.owner}</td>
							<td>${tran.source}</td>
							<td>${tran.contactsId}</td>
						</tr>
					</c:forEach>

					</tbody>
				</table>

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一道光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值