package com.yc.sdk.shopping.action.jiazhuang; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.yc.action.BaseAction; import com.yc.entity.DataSourceEntity; import com.yc.multiData.MultiDataSource; import com.yc.multiData.SpObserver; import com.yc.sdk.shopping.entity.BalanceDetailEntity; import com.yc.sdk.shopping.entity.BalanceEntity; import com.yc.sdk.shopping.entity.CurrencyEntity; import com.yc.sdk.shopping.service.CurrencyIfc; import com.yc.sdk.shopping.service.SettingIfc; import com.yc.sdk.shopping.service.balance.BalanceIfc; import com.yc.sdk.shopping.service.panicBuying.PanicBuyingBalanceIfc; import com.yc.sdk.shopping.util.SettingKey; import com.yc.utils.SessionKey; @Controller @RequestMapping("/shopping/panicBuyingBalance.do") public class PanicBuyingBalance extends BaseAction{ @Autowired SettingIfc settingIfc; @Autowired CurrencyIfc currencyIfc; @Autowired BalanceIfc balanceIfc; @Autowired PanicBuyingBalanceIfc panicBuyingBalanceIfc; @RequestMapping(params = "m=getBalance") public void getBalance(HttpServletRequest request,HttpServletResponse response) { HttpSession session=request.getSession(); String userCode = (session.getAttribute(SessionKey.USERCODE) == null ? "" : (String)session.getAttribute(SessionKey.USERCODE)); String cltCode = (session.getAttribute(SettingKey.CLTCODE)==null?"":(String)session.getAttribute(SettingKey.CLTCODE)); String openId = (session.getAttribute(SessionKey.WEIXIN_OPENID) == null ? "": (String) session.getAttribute(SessionKey.WEIXIN_OPENID)); JsonObject json = new JsonObject(); JsonObject errJson = new JsonObject(); try { DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap( request) ; SpObserver.setDBtoInstance("_"+dataSourceEntity.getDbId());//切换数据源 CurrencyEntity currencyEntity = new CurrencyEntity(request); String currency = currencyEntity.getCurrency(); BalanceEntity balanceEntity = balanceIfc.getBalance(currency, cltCode) ; json.addProperty("balance", balanceEntity != null?0.00 - balanceEntity.getBalance():0); //余额 //累计余额 json.addProperty("accumulationAmount", balanceEntity != null ? balanceEntity.getAccumulationAmount():0); //累计余额 json.addProperty("todayOrderTimes", balanceEntity != null ? balanceEntity.getTodayOrderTimes():0); //今日订单次数 json.addProperty("todayPayableAmount", balanceEntity != null ? balanceEntity.getTodayPayableAmount():0); //今日订单金额 json.addProperty("curentPeriodId", balanceEntity != null ? balanceEntity.getCurrentPeriodId():""); //当前期间 //首页显示汇总数 BalanceEntity balanceCountEntity = balanceIfc.getSummaryForHomePage(openId) ; json.addProperty("heXiaoCount", balanceCountEntity != null ? balanceCountEntity.getHeXiaoCount():0); //可核销订单数量 json.addProperty("orderCount", balanceCountEntity != null ? balanceCountEntity.getOrderCount():0); // 我的订单次数(活动订单) json.addProperty("myVisiteTraceCount", balanceCountEntity != null ? balanceCountEntity.getMyVisiteTraceCount():0); //我的足迹 次数,即访问了哪些活动 json.addProperty("myPanicBuyingTraceCount", balanceCountEntity != null ? balanceCountEntity.getMyPanicBuyingTraceCount():0); //客户轨迹 未读的记录数 json.addProperty("myFeedbackUnreadTimes", balanceCountEntity != null ? balanceCountEntity.getMyFeedbackUnreadTimes():0); //意见反馈,还未查看的已回复次数 this.printJson(response, json.toString()); return; }catch(DataAccessException e ) { errJson.addProperty("warning",( e.getCause() != null ?e.getCause().getMessage():e.getMessage())); json.add("error", errJson); this.printJson(response, json.toString()); return; }catch(Exception e){ errJson.addProperty("warning", ( e.getCause() != null ?e.getCause().getMessage():e.getMessage())); json.add("error", errJson); this.printJson(response, json.toString()); return; }finally { SpObserver.setDBtoInstance(); } } @RequestMapping(params = "m=getBalanceList") public void getBalanceList(HttpServletRequest request,HttpServletResponse response) { HttpSession session=request.getSession(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm") ; DecimalFormat df = new DecimalFormat("0.00") ; String periodId = request.getParameter("periodId"); String userCode = (session.getAttribute(SessionKey.USERCODE) == null ? "" : (String)session.getAttribute(SessionKey.USERCODE)); String cltCode = (session.getAttribute(SettingKey.CLTCODE)==null?"":(String)session.getAttribute(SettingKey.CLTCODE)); JsonObject json = new JsonObject(); JsonObject errJson = new JsonObject(); try { DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap( request) ; SpObserver.setDBtoInstance("_"+dataSourceEntity.getDbId());//切换数据源 CurrencyEntity currencyEntity = new CurrencyEntity(request); String currency = currencyEntity.getCurrency(); //BalanceEntity balanceEntity = balanceIfc.getBalance(currency, cltCode) ; BalanceEntity balanceEntity = panicBuyingBalanceIfc.getBalanceAndTodaySoldSummary(currency, cltCode); //余额 json.addProperty("balance", balanceEntity != null?0.00 - balanceEntity.getBalance():0); //累计余额 json.addProperty("accumulationAmount", balanceEntity != null ? balanceEntity.getAccumulationAmount():0); json.addProperty("todayOrderTimes", balanceEntity != null ? balanceEntity.getTodayOrderTimes():0); //今日订单次数 json.addProperty("todayPayableAmount", balanceEntity != null ? balanceEntity.getTodayPayableAmount():0); //今日订单金额 json.addProperty("currentPeriodId", balanceEntity != null ? balanceEntity.getCurrentPeriodId():""); //当前期间 JsonArray balanceListJsonArray = new JsonArray(); List balanceDetailList = panicBuyingBalanceIfc.getBalanceList(currency, cltCode,periodId!=null&&!"".equals(periodId)?periodId:(balanceEntity != null ? balanceEntity.getCurrentPeriodId():"")) ; for (int i = 0 ;balanceDetailList != null && i < balanceDetailList.size();i++) { BalanceDetailEntity balanceDetailEntity = balanceDetailList.get(i) ; double balanceAmount = 0L - balanceDetailEntity.getBalanceAmount() ; //必须转换为正负方向 JsonObject balanceDetailEntityJson = new JsonObject(); balanceDetailEntityJson.addProperty("formName",balanceDetailEntity.getFormName()) ; //业务名称 balanceDetailEntityJson.addProperty("subCltName",balanceDetailEntity.getSubCltName()) ; //对方人员 balanceDetailEntityJson.addProperty("insertTime",balanceDetailEntity.getInsertTime()==null?"":sdf.format(balanceDetailEntity.getInsertTime())); //业务发生的时间 balanceDetailEntityJson.addProperty("amountCredit",balanceDetailEntity.getAmountCredit()) ; //余额增加(如:充值) balanceDetailEntityJson.addProperty("amountDebit",balanceDetailEntity.getAmountDebit()) ; //余额减少(如:消费) balanceDetailEntityJson.addProperty("balanceAmount",balanceAmount) ; //余额(正数表示充值或退货,负数表示:消费或提现) //余额 String amountFlag = "" ; if (balanceAmount > 0) { amountFlag = "+" + df.format(balanceAmount) ; } else { amountFlag = "-" + df.format(0L - balanceAmount) ; } balanceDetailEntityJson.addProperty("amountFlag",amountFlag) ; balanceDetailEntityJson.addProperty("docCode",balanceDetailEntity.getDocCode()) ; balanceDetailEntityJson.addProperty("formId",balanceDetailEntity.getFormId()) ; balanceDetailEntityJson.addProperty("periodId",balanceDetailEntity.getPeriodId()) ; balanceDetailEntityJson.addProperty("periodId",balanceDetailEntity.getPeriodId()) ; balanceDetailEntityJson.addProperty("enterCode",balanceDetailEntity.getEnterCode()) ; balanceDetailEntityJson.addProperty("enterName",balanceDetailEntity.getEnterName()) ; balanceListJsonArray.add(balanceDetailEntityJson) ; } json.add("list",balanceListJsonArray) ; this.printJson(response, json.toString()); return; }catch(DataAccessException e ) { errJson.addProperty("warning",( e.getCause() != null ?e.getCause().getMessage():e.getMessage())); json.add("error", errJson); this.printJson(response, json.toString()); return; }catch(Exception e){ errJson.addProperty("warning", ( e.getCause() != null ?e.getCause().getMessage():e.getMessage())); json.add("error", errJson); this.printJson(response, json.toString()); return; }finally { SpObserver.setDBtoInstance(); } } }