同步操作将从 java110/RedPacket 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
package com.java110.util;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.ServletContext;import org.springframework.web.context.ContextLoader;import org.springframework.web.context.WebApplicationContext;import com.java110.common.Global;import com.java110.common.SpringAppFactory;import com.java110.service.redpacket.GetPacketService;import com.java110.service.redpacket.SendPacketService;import com.java110.thread.redpacket.UpdateAccountAmountThread;import com.sun.xml.internal.ws.util.UtilException;/*** 初始化信息加载** @author wuxw* @date 2016年1月26日* version 1.0*/public class StaticMapUtil {private static List<Map> codeMapBeans;//获取配置表(td_s_code_mapping)中数据public StaticMapUtil() {}public StaticMapUtil(String dbDefaultAreaCodex, String dbDefaultAreaIdx) {}public void init() throws UtilException {//加载配置表数据// GetCodeMapping();// //启动数据处理线程startUpdateAccountAmountThread();//加载没有抢完的红包loadSendRedPacket();}public static List<Map> getCodeMapBeans() {return codeMapBeans;}public static void setCodeMapBeans(List<Map> codeMapBeans) {StaticMapUtil.codeMapBeans = codeMapBeans;}/*** 启动数据处理线程** add by wuxw 2016年2月22日*/private void startUpdateAccountAmountThread(){UpdateAccountAmountThread uaat = new UpdateAccountAmountThread();Thread t = new Thread(uaat);t.start();}/*** 加载还没有抢完的红包** add by wuxw 2016年2月23日*/private void loadSendRedPacket(){SendPacketService sendPacketServiceImpl = (SendPacketService) SpringAppFactory.getBean("SendPacketServiceImpl");GetPacketService getPacketServiceImpl = (GetPacketService) SpringAppFactory.getBean("GetPacketServiceImpl");Map info = new HashMap();info.put("page", 1);info.put("rows", 1000);//查询所有发了1000条发了的红包List<Map> sendPacketMaps = sendPacketServiceImpl.getSendPacketList(info);for(Map sendPacketMap : sendPacketMaps){String sendRedPacketId = sendPacketMap.get("sendRedPacketId").toString();Map paramIn = new HashMap();paramIn.put("sendRedPacketId", sendRedPacketId);List<Map> getPacketMaps = getPacketServiceImpl.getPacketListBySendPacketId(paramIn);String redType = sendPacketMap.get("redType") == null ? null : sendPacketMap.get("redType").toString();int copies = Integer.parseInt(sendPacketMap.get("copies").toString());double money = Double.parseDouble(sendPacketMap.get("money").toString());String userOrMerchant = sendPacketMap.get("userOrMerchant") == null ? Global.U :sendPacketMap.get("userOrMerchant").toString();if(getPacketMaps == null || getPacketMaps.size() == 0){//发送红包重新随机 放入至内存中//判断是随机红包 还是 平均红包List<Map> moneyList = new ArrayList<Map>();if(Global.RED_TYPE_01.equals(redType)){moneyList = Utility.randomRedPacket(copies, money);}else{// 平均红包moneyList = new ArrayList<Map>();Map<String, Double> moneyMap = null;for (int i = 1; i <= copies; i++) {moneyMap = new HashMap<String, Double>();moneyMap.put(Global.RED_MONEY, money);moneyList.add(moneyMap);}}WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();ServletContext servletContext = webApplicationContext.getServletContext();servletContext.setAttribute(sendRedPacketId, moneyList);//判断红包类型是商家红包还是用户红包if(Global.M.equals(userOrMerchant)){//商家红包 加载商家信息Map merchantMap = sendPacketServiceImpl.getMerchantSendRedPacketBySendRedPacketId(sendPacketMap);servletContext.setAttribute(Global.MERCHANT+sendRedPacketId, merchantMap);}continue;}double moneyed = 0.0;List<String> getPacketPerson = new ArrayList<String>();for(Map getPacketMap : getPacketMaps){moneyed += Double.parseDouble(getPacketMap.get("money")==null?"0":getPacketMap.get("money").toString());getPacketPerson.add(getPacketMap.get("userId")==null?"":getPacketMap.get("userId").toString());}int getPacketCount = getPacketMaps.size();List<Map> moneyList = new ArrayList<Map>();//减去 已经发出去的红包数量和金额,重新计算copies = copies-getPacketCount;money = Amount.sub(money, moneyed);if(Global.RED_TYPE_01.equals(redType)){moneyList = Utility.randomRedPacket(copies, money);}else{// 平均红包moneyList = new ArrayList<Map>();Map<String, Double> moneyMap = null;for (int i = 1; i <= copies; i++) {moneyMap = new HashMap<String, Double>();moneyMap.put(Global.RED_MONEY, money);moneyList.add(moneyMap);}}WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();ServletContext servletContext = webApplicationContext.getServletContext();servletContext.setAttribute(sendRedPacketId, moneyList);//将已经抢了红包的用户导入至 内存中servletContext.setAttribute(Global.GET_PACKET_USER+sendRedPacketId, getPacketPerson);//判断红包类型是商家红包还是用户红包if(Global.M.equals(userOrMerchant)){//商家红包 加载商家信息Map merchantMap = sendPacketServiceImpl.getMerchantSendRedPacketBySendRedPacketId(sendPacketMap);servletContext.setAttribute(Global.MERCHANT+sendRedPacketId, merchantMap);}}}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。