map集合的使用

package com.ins.bcp.menu.controller;


import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;


import javax.annotation.Resource;


import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ins.bcp.base.service.BankOffsetSumService;
import com.ins.bcp.menu.model.BankOffsetSumVO;
import com.ins.bcp.menu.service.BankOffsetSumVOService;
import com.ins.bcp.model.banktext.BankOffsetSum;
import com.ins.core.pub.ExceptionUtils;
import com.ins.core.pub.model.Message;
import com.ins.core.pub.page.PageDataTable;
import com.ins.core.tools.JsonUtils;
import com.ins.core.transaction.Trans;
import com.ins.core.transaction.UserTransaction;


@RestController
@RequestMapping(value = "/bankOffsetSumVO")
public class BankOffsetSumVOController {


Logger logger = Logger.getLogger(BankOffsetSumVOController.class);


@Resource(name = BankOffsetSumVOService.BEAN_NAME)
private BankOffsetSumVOService bankOffsetSumVOService;


@Resource(name = BankOffsetSumService.BEAN_NAME)
private BankOffsetSumService bankOffsetSumService;


/**
* 定义一个全局缓存Map
*/
public static final Map<String, String> usersCache = Collections.synchronizedMap(new HashMap<String, String>());


/**
* 查询汇总费用信息为页面菜单提供
* @param bankOffsetSum
* @param dataTable
* @return
*/
@RequestMapping(value = "/queryBankOffsetSumList.do")
public PageDataTable<BankOffsetSumVO> queryBankOffsetSumList(@ModelAttribute BankOffsetSumVO bankOffsetSumVO
,@ModelAttribute PageDataTable<BankOffsetSumVO> dataTable){


PageHelper.startPage(dataTable.getPageNum(),dataTable.getPageSize());


List<BankOffsetSumVO>  bankOffsetSumList = bankOffsetSumVOService.queryTBankOffsetSumVOList(bankOffsetSumVO);


if(bankOffsetSumList != null){
logger.info("~~~~~~~~~查询费用汇总信息总条数~~~~~~~~~"+bankOffsetSumList.size()+"费用列表信息"+bankOffsetSumList);
PageInfo<BankOffsetSumVO> pageInfo = new PageInfo<BankOffsetSumVO>(bankOffsetSumList);
dataTable.setiTotalDisplayRecords(pageInfo.getTotal());
dataTable.setiTotalRecords(pageInfo.getTotal());
dataTable.setResultData(bankOffsetSumList);
logger.info("&&&&&&&&&&&&&&&信息已查询&&&&&&&&&&&&&&&&");
return dataTable;
}
return null;
}


/**
* 更新费用状态
* @param bankOffsetSumList
* @return
*/
@RequestMapping(value = "/updateBankOffsetStatus.do")
public Message updateBankOffsetStatus(@RequestBody List<BankOffsetSum> bankOffsetSumList){
Message message = new Message();
UserTransaction trans = null;


String offsetSumIdKey  = "";
String offsetSumIdValue = "";
try {
trans = Trans.getTrans();
trans.begin();


/**生成批次号18位**/
String offsetBatchNo = "WB"+ new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
int offsetSumSize =  bankOffsetSumList.size();


/**长度定义为2位**/
String sizeFormat = String.format("%02d", offsetSumSize);
String opBatchNo = offsetBatchNo + sizeFormat;


for(BankOffsetSum bankOffsetSum : bankOffsetSumList){
BankOffsetSum bankOffset = new BankOffsetSum();


/**map键值都使用offsetSumIdKey**/
offsetSumIdKey = bankOffsetSum.getOffsetSumId();
offsetSumIdValue = bankOffsetSum.getOffsetSumId();


//如果缓存中不存在这个键值便放入map中
if(usersCache.get(offsetSumIdKey) == null ){
usersCache.put(offsetSumIdKey, offsetSumIdValue);
bankOffset.setOffsetSumId(usersCache.get(offsetSumIdValue));
/*更新批次号和费用状态*/
bankOffset.setOpBatchNo(opBatchNo);
bankOffset.setFeeStatus("1");
logger.info("*******************更新费用状态*****************");
bankOffsetSumService.updateBankOffsetStatus(bankOffset);
//更新完成之后将键值删除
logger.info("===============offsetSum数据================" + JsonUtils.toJson(usersCache));
}else{
logger.info("map缓存中有数据可能多人同时操作!!!!!!!!!!!!!");
if(trans != null) {
trans.rollback();
}
message.setMessage("可能多人同时操作");
message.setSuccess(false);
return message;
}
message.setMessage("审核成功");
message.setSuccess(true);
}
trans.commit();
//更新提交之后将map键值删除
Iterator<Map.Entry<String, String>> it = usersCache.entrySet().iterator();  
while(it.hasNext()){
Map.Entry<String, String> entry=it.next();  
String key=entry.getKey();  
it.remove();
logger.info("缓存中map的值"+key);
}
// usersCache.remove(offsetSumIdKey);
} catch (Exception e) {
if(trans != null) {
trans.rollback();
}
message.setSuccess(false);
message.setMessage(ExceptionUtils.getFullStackTrace(e));
e.printStackTrace();
}
return message;


}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值