mybatis+struts2+html(jstl)+css

从10月8号到今天23号,来到工作已经半个月了,这是我人生中真正意义上的一次步入社会,用自己20年的坚持和努力取得的人生第一步,说实话,感觉自己真的是个lucky dog,好像是在眷顾我,所有的事情都是那么顺利,让我没有理由不珍惜现在的所有,谢谢老师,一次次的满足我的请求,这半月我收货到的不管是从为人处世,团队管理,还是技术方面都很多,所以每天晚上睡觉都会一躺就着,因为一睁开眼就会忙碌一天,不过真的真的很充实,下面先说说我从技术上的收获。

最近这段时间一直接触的是后台,咋说呢?最大的感受就是在学校的实践对我的影响是毋庸置疑的,加上后来参加java3.1和4.0,s让我能够比较快的接受现在的框架,说一下我最近做的一个模块:邀请管理。

需求:我们公司是一个理财公司,大家都知道邀请码,,如果一个人邀请了另一个人会让被邀请人在注册时输入邀请码,如下图:

那在后来呢,在没有升级之前是没有对邀请人和被邀请人进行关联的,只有一个实体,那就有人给客服打电话说我明明已经输入邀请码了呀,为什么没有显示,那为什么邀请人会这么想要别人输入邀请码呢,因为如果被邀请人投资了,那么邀请人会有提成,所以需求就这么产生了,我们需要添加邀请人和被邀请人的关系,并且可以禁用,但是不可以修改,因为如果可以修改,操作后台的人就发财了,他可以随便把邀请人换成自己,所以这个是不可以的,而且还需要可以导出,其实还是挺简单的。下面我们先来说说查询功能:

MyBatis:

在这里我们需要写入查询语句,这个语句真的很庞大,需要从客户表中查出邀请人和被邀请人的信息,然后去投资表中查出被邀请人投资金额,在邀请人和被邀请人的关系表中查出该邀请人和被邀请人的关系:

T_CUST_USER:客户表;T_LOAN_BID:投资表;T_CUST_USER_INVITE:邀请表

下面看下我的sql语句:

<span style="font-family: Arial, Helvetica, sans-serif;"><sqlMap namespace="<strong>CustomerUserInvite</strong>"></span><select id="<strong>queryInviterList</strong>" parameterClass="map" resultClass="java.util.HashMap"><![CDATA[SELECT t8.*,T9."NAME" FROM(SELECT t7.* FROM(SELECTt5.USER_ID,t5.USER_NAME,t5.INVITE_USER_ID,t6.USER_NAME AS INVITE_USER_NAME,t5.BID_AMOUNT,T5.operator_,T5.STATUS,t5.BID_STATUS,TO_CHAR(T6.CREATE_TIME, 'yyyy-mm-dd hh24:mi:ss') CREATE_TIME,T5."ID"FROM(SELECTt3.USER_ID,T4.USER_NAME,t3.INVITE_USER_ID,t3.BID_AMOUNT,T3.operator_,t3.BID_STATUS,T3.STATUS,T3."ID"FROM(SELECTt1.USER_ID,t1.INVITE_USER_ID,t1.OPERATOR_,t2.BID_AMOUNT,t2.BID_STATUS,t1."ID",T1.STATUSFROMT_CUST_USER_INVITE t1LEFT JOIN T_LOAN_BID t2 ON t1.INVITE_USER_ID = t2.USER_ID) t3LEFT JOIN T_CUST_USER t4 ON t3.USER_ID = t4.ID) t5LEFT JOIN T_CUST_USER t6 ON t5.INVITE_USER_ID = t6. ID) t7WHERE 1=1)t8 LEFT JOIN T_USER_USER t9 ON t8.operator_=T9.id ]]><isNotEmpty prepend="" property="searchContent">WHERE (T8.USER_NAME LIKE'%$searchContent$%'OR T8.INVITE_USER_NAME LIKE '%$searchContent$%' )</isNotEmpty><![CDATA[ORDER BY t8.STATUS DESC,t8.CREATE_TIME DESC]]></select></sqlMap> D层: public class InviterDAO extends AbstractBaseDAO<CustomerUserInviteBean> {public InviterDAO(SqlMapClient sqlMap) {super(sqlMap);}//对应xml中的命名空间@Overridepublic String getNameSpace() {return "CustomerUserInvite";}//对应数据表@Overridepublic String getTableName() {return "T_CUST_USER_INVITE";}/** * 查询全部-王丹 ** @param paramMap * @return * @throws Exception */public DataWrap pageQuery(Map paramMap) throws Exception {return (DataWrap) DataAccessor.query(getNameSpace()+ ".<strong>queryInviterList</strong>", paramMap, RS_TYPE.PAGED);}} Service: /** * 分页查询全部-王丹-2015年10月14日16:43:38 * * @param paramMap * @return * @throws Exception */public DataWrap pagingQuery(Map inputMap) throws Exception {return new InviterDAO(null).pageQuery(inputMap);} controller这儿需要注意一下:

我们不是直接去找controller,而是放到配置文件中,通过name去查,用的是struts:

<!– 邀请人管理 –><service name="InviterService" class="com.voiinnov.puhuilicai.customer.controller.InviterController"></service> 下面看下controller: public class InviterController extends AService {private static Logger logger = Logger.getLogger(InviterController.class);private InviterService inviterService = new InviterService();@SuppressWarnings({ "unchecked", "rawtypes" })public void listInviter(Context context) {List errorList = context.errList;//用于存放返回结果,并用json返回到界面Map outputMap = inviterService.outputMap;try {DataWrap dataWarp = this.inviterService.pagingQuery(context.contextMap);// 结果集outputMap.put("dw", dataWarp);outputMap.put("searchContent",context.contextMap.get("searchContent"));} catch (Exception e) {e.printStackTrace();errorList.add("系统错误,请联系系统管理员!");logger.error(this.getClass().getName() + ":", e);e.printStackTrace();}if (context.errList.isEmpty()) {Output.jspOutput(outputMap, context,"/puhuilicai/customer/InviterList.jsp");} else {outputMap.put("errList", context.errList);Output.jspOutput(outputMap, context, "/error.jsp");}} jsp中: <body onload="setAction();"><form name="form1" id="form1"<strong> action="../servlet/defaultDispatcher"</strong>method="post"><input name="__action" value="<strong>InviterService.listInviter</strong>"type="hidden" /> <input name="statusShow" value="${statusShow }"type="hidden" /><!–头部开始–><div id="fixedLayer"><div class="main"><div class="main_c main_bg"><div class="main_nav"><div class="nav_pic"><a href="javascript:void(0)" title="新增" onclick="initInviter()"><imgsrc="${ctx }/commons/images/system/table_create1.gif" /></a><a href="javascript:void(0);" title="导出" onclick="exportInviter()"><img src="../commons/images/system/ta_download1.jpg"></a><ul style="float: right; margin-right: 5px; text-align: left;"><li><a href="javascript:void(0)" title="启用"onclick="updateStatus(0)">  启  用</a></li><li><a href="javascript:void(0)" title="停用"onclick="updateStatus(-2)">  禁  用</a></li></ul></div></div></div></div></div><!–头部结束–><!-模糊查询开始–><div class="margintop40"></div><div class="main"><div class="main_c main_bg"><!–自适应宽度 -start–><div class="table_scroll"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td align="center" valign="top"><table width="100%" border="0" align="center" cellpadding="0"cellspacing="0" class=""><tr align="center" valign="middle"><td height="35" align="left" valign="middle"class="table_title_td_bg"><div style="float: left; line-height: 30px;"><span class=" margin_left10 font_white"><strong></strong></span></div> <%@ include file="/commons/pageControl.jsp"%><!– 搜索和排序 -start–><div style="float: right; line-height: 30px; width: 450px;"><div class="tsearch-panel-fields" style="margin-top: 6px;"><label for="searchContent">邀请人,被邀请人</label> <inputname="searchContent" id="searchContent" type="text"class="span3" value="${searchContent }" /></div><input type="image" onclick="doSearch();"src="${ctx }/commons/images/system/btn_search.png"style="width: 50px; height: 23px; margin-top: 6px; margin-left: 5px;" /></div> <!– 搜索和排序 -end–></tr></table></td></tr></table></div><!–查询表格 –><table width="100%" border="1" align="center" cellpadding="0"cellspacing="0" class="table_style table2"><tr><th style="text-align: center;" class="table_th_bg">序号</td><th style="text-align: center;" class="table_th_bg">邀请人</th><th style="text-align: center;" class="table_th_bg">被邀请人</th><th style="text-align: center;" class="table_th_bg">注册时间</th><th style="text-align: center;" class="table_th_bg">操作员</th><th style="text-align: center;" class="table_th_bg">投资金额</th><th style="text-align: center;" class="table_th_bg">投资状态</th><th style="text-align: center;" class="table_th_bg">状态</th></tr><!–遍历查询结果 –><c:forEach items="${dw.rs }" var="lists" varStatus="status"><tr id="${lists.ID}" USER_ID="${lists.USER_ID}"onclick="changeTrColor(this);" style="cursor: pointer;"<c:if test="${status.count % 2 == 0 }">bgcolor="#F5F5F5"</c:if>><td style="text-align: center;">${status.count + dw.pageSize * (dw.currentPage – 1)}</td><td height="24">${lists.USER_NAME}</td><td height="24">${lists.INVITE_USER_NAME}</td><td height="26px" >${lists.CREATE_TIME}</td><td height="24">${lists.NAME}</td><td height="24"><c:choose><c:when test="${empty lists.BID_AMOUNT }">0</c:when><c:otherwise>${lists.BID_AMOUNT}</c:otherwise></c:choose></td><td height="24"><c:choose><c:when test="${lists.BID_STATUS eq -1}">待付款</c:when><c:when test="${lists.BID_STATUS eq 1}">投资中</c:when><c:when test="${lists.BID_STATUS eq 2}">还款中</c:when><c:when test="${lists.BID_STATUS eq 5}">债权转让</c:when><c:when test="${empty lists.BID_STATUS }">未投资</c:when><c:otherwise>未知</c:otherwise></c:choose></td><td><c:choose><c:when test="${lists.STATUS eq 0}">启用</c:when><c:otherwise>禁用</c:otherwise></c:choose></td></tr></c:forEach></table><%@ include file="/commons/pageControlBottom.jsp"%></div></div><!–内容结束–><div class="space"></div></form></body> 下面是出来的效果:带着感恩的心启程,学会爱,爱父母,爱自己,爱朋友,爱他人。

mybatis+struts2+html(jstl)+css

相关文章:

你感兴趣的文章:

标签云: