package com.sp2p.action.front; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.HashMap; import java.util.List; import java.util.Map; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import com.hehenian.biz.common.account.dataobject.AccountUserDo; import com.hehenian.biz.common.invite.IRecommandRateService; import com.hehenian.biz.common.invite.IRecommandRewardService; import com.hehenian.biz.common.invite.InviteFriendService; import com.hehenian.biz.common.invite.dataobject.RecommondRewardDo; import com.hehenian.web.common.util.ServletUtils; import com.sp2p.constants.IConstants; import com.sp2p.util.JsonDateValueProcessor; public class FrontRecommandRewardAction extends BaseFrontAction { /** * */ private static final long serialVersionUID = 1L; public static Log log = LogFactory.getLog(FrontRecommandRewardAction.class); @Autowired private IRecommandRewardService recommandRewardService; @Autowired private IRecommandRateService recommandRateService; @Autowired private InviteFriendService inviteFriendService; public String queryReferRewardList(){ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM"); Map<String, Object> map = new HashMap<String, Object>(); /* Integer pageNow = Integer.parseInt(request().getParameter("pageNow")); Integer pageSize = Integer.parseInt(request().getParameter("pageSize")); if(pageNow==null || pageNow.toString().length()==0){ }else { map.put("pageNow", pageNow); } if(pageSize==null || pageSize.toString().length()==0){ }else { map.put("pageSize", pageSize); } if(pageNow>1){ map.put("pageNow", (pageNow-1) * pageSize); }else{ map.put("pageNow", 0); } */ // 获取用户的信息 AccountUserDo user = (AccountUserDo) session().getAttribute(IConstants.SESSION_USER); Map<String, Date> dateMap =new HashMap<String, Date>(); String time = request().getParameter("time"); Date date; try { if(time==null||time.equals("")){ date = new Date(); }else{ date = df.parse(time); } dateMap = this.getFirstday_Lastday_Month(date); } catch (ParseException e) { map.put("returnCode",-1); map.put("message", "日期解析异常"); ServletUtils.writeJson(JSONObject.fromObject(map).toString()); return null; } Date startDate = dateMap.get("first"); Date endDate = dateMap.get("last"); Map<String, Object> mapParms = new HashMap<String, Object>(); mapParms.put("startDate", startDate); mapParms.put("endDate",endDate); mapParms.put("userId",user.getId().toString()); //mapParms.put("pageNow", map.get("pageNow")); //mapParms.put("pageSize", pageSize); List<RecommondRewardDo> rewardList = recommandRewardService.listRecommandReward(mapParms); map.put("totalCount", rewardList.size()); if(rewardList.size()==0){ map.put("sumInvestNum", 0); map.put("sumRewardAmount", 0.00); map.put("sumTradeAmount", 0.00); }else{ RecommondRewardDo rrd = recommandRewardService.getSumRewardAmount(user.getId().toString(), startDate, endDate); map.put("sumRewardAmount", rrd.getReward_amount()); map.put("sumTradeAmount", rrd.getTrade_amount()); double num = recommandRewardService.getRewardNum(user.getId().toString(), startDate, endDate); map.put("sumInvestNum", num); } //好友注册数 //TODO Map<String, Object> mapParam = new HashMap<String, Object>(); mapParam.put("userId", user.getId().toString()); //TODO long regnum = inviteFriendService.countInviteFriend(mapParam); map.put("sumRegNum",regnum); map.put("returnCode",0); map.put("data", rewardList); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); ServletUtils.writeJson(JSONObject.fromObject(map,jsonConfig).toString()); return null; } /** * 某一个月第一天和最后一天 * @param date * @return */ private Map<String, Date> getFirstday_Lastday_Month(Date date)throws ParseException { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); //第一天 GregorianCalendar gcLast = (GregorianCalendar) Calendar.getInstance(); gcLast.setTime(date); gcLast.set(Calendar.DAY_OF_MONTH, 1); String day_first = df.format(gcLast.getTime()); StringBuffer str = new StringBuffer().append(day_first).append(" 00:00:00"); day_first = str.toString(); //最后一天 calendar.add(Calendar.MONTH, 1); //加一个月 calendar.set(Calendar.DATE, 1); //设置为该月第一天 calendar.add(Calendar.DATE, -1); //再减一天即为上个月最后一天 String day_last = df.format(calendar.getTime()); StringBuffer endStr = new StringBuffer().append(day_last).append(" 23:59:59"); day_last = endStr.toString(); Map<String, Date> map = new HashMap<String, Date>(); map.put("first", df.parse(day_first)); map.put("last", df.parse(day_last)); return map; } }