package com.nationalelectric.greenH5; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import java.util.concurrent.locks.ReentrantLock; import javax.annotation.Resource; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.TypeReference; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import com.jysoft.weChat.service.WechatService; import com.jysoft.weChat.vo.ContentVo; import com.nationalelectirc.Constant.Constant; import com.nationalelectirc.utils.RestResult; import com.nationalelectric.greenH5.bizc.BaseServiceImpl; import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc; import com.nationalelectric.greenH5.enums.OrderStatus; import com.nationalelectric.greenH5.enums.TakeStatus; import com.nationalelectric.greenH5.po.GreenActiveInfo; import com.nationalelectric.greenH5.po.GreenActiveSign; import com.nationalelectric.greenH5.po.GreenUserInfo; import com.nationalelectric.greenH5.utils.DateTime; import com.nationalelectric.greenH5.utils.DateUtil; import com.sgcc.uap.persistence.IHibernateDao; import com.sgcc.uap.service.validator.ServiceValidatorBaseException; import net.sf.json.JSONObject; import net.sf.json.JSONArray; /** * 概述
*

* 功能
* * @author chenweikang */ @Controller @RequestMapping("/greenActiveInfo") public class GreenActiveInfoController extends GreenBaseController { @Resource private IHibernateDao hibernateDao; @Autowired private BaseServiceImpl baseService; @Resource private WechatService wService; /** * greenfoodorderdetail GreenFoodOrderDetail逻辑构件 */ @Resource private IGreenOperateLogBizc greenOperateLogBizc; private ReentrantLock lock = new ReentrantLock(); /**用户订单列表*/ @RequestMapping(value="/getActiveInfoList", method = RequestMethod.POST) @ResponseBody public RestResult getActiveInfoList(@RequestBody Map map){ String userId = (String) map.get("userId"); GreenUserInfo info = getUserInfo(userId); if(info==null){ return new RestResult(Constant.FAILED, "非法用户"); } try { Integer signUp = (Integer) map.get("signUp"); //分页信息 Integer pageSize = (Integer) map.get("pageSize"); Integer page = (Integer) map.get("pageNum"); page = (page-1) * pageSize; int limit = ((page > 0 ? page : 1) -1) * pageSize; String sql = "SELECT ID AS \"id\",title AS \"title\", des_info AS \"des_info\",author AS \"author\", " + " start_time AS \"start_time\",end_time AS \"end_time\",signup_endtime AS \"signup_endtime\", " + " create_time AS \"create_time\" FROM( SELECT rn.*, ROWNUM AS rw FROM (" + " select a.id,a.title,a.des_info,a.author,a.start_time,a.end_time,a.signup_endtime,a.create_time from green_active_info a " + " where "; if(signUp==0){ sql+= " not "; } sql+= " EXISTS(select 1 from green_active_sign s where s.user_id = ? and s.active_id=a.id) and a.is_del='1' and a.status = '1' order by a.create_time desc " + " ) rn ) WHERE rw > ? and rw <= ? "; List> avtiveInfoList = hibernateDao.queryForListWithSql(sql,new Object[]{ userId,limit, pageSize}); List> list = new ArrayList>(); for(Map avtiveInfo:avtiveInfoList){ //Long id = (Long)avtiveInfo.get("id"); Long id = Long.parseLong(String.valueOf(avtiveInfo.get("id"))); String itemSql = "select id as \"id\",active_id as \"active_id\",k_val as \"k_val\",item as \"item\" from green_active_item_info where active_id="+id; List> itemList = hibernateDao.queryForListWithSql(itemSql); avtiveInfo.put("itemList", itemList); list.add(avtiveInfo); } return new RestResult(Constant.SUCCESS,"成功",list); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED,"返回异常"); } } /**用户订单列表*/ @RequestMapping(value="/getActiveInfo", method = RequestMethod.POST) @ResponseBody public RestResult getActiveInfo(@RequestBody Map map){ // String userId = greenReport.getCreateBy(); // GreenUserInfo info = getUserInfo(userId); // if(info==null){ // return new RestResult(Constant.FAILED, "非法用户"); // } try { String id = (String) map.get("id"); String userId = (String) map.get("userId"); String sql = "SELECT a. ID AS \"id\",a.title AS \"title\", a.des_info AS \"des_info\",a.author AS \"author\", " + " a.start_time AS \"start_time\",a.end_time AS \"end_time\",a.signup_endtime AS \"signup_endtime\", " + " a.create_time AS \"create_time\", " + "s. STATUS AS \"sign_status\" FROM green_active_info a " + "LEFT JOIN ( SELECT * FROM green_active_sign WHERE user_id = ? ) s ON a.id = s.active_id WHERE a.id = ?"; List> avtiveInfoList = hibernateDao.queryForListWithSql(sql,new Object[]{userId,id}); if(avtiveInfoList.size()<=0){ return new RestResult(Constant.FAILED,"查无该数据"); } Map activeInfo = avtiveInfoList.get(0); String itemSql = "select id as \"id\",active_id as \"active_id\",k_val as \"k_val\",item as \"item\" from green_active_item_info where active_id="+id; List> itemList = hibernateDao.queryForListWithSql(itemSql); activeInfo.put("itemList", itemList); return new RestResult(Constant.SUCCESS,"成功",activeInfo); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED,"返回异常"); } } /**用户订单列表*/ @RequestMapping(value="/signUpActive", method = RequestMethod.POST) @ResponseBody public RestResult signUpActive(@RequestBody GreenActiveSign greenActiveSign){ try { hibernateDao.saveObject(greenActiveSign); return new RestResult(Constant.SUCCESS,"报名成功"); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED,"报名失败"); } } /**用户订单列表*/ @RequestMapping(value="/signInActive", method = RequestMethod.POST) @ResponseBody public RestResult signInActive(@RequestBody GreenActiveSign greenActiveSign){ try { Long activeId = greenActiveSign.getActiveId(); String userId = greenActiveSign.getUserId(); Integer status = greenActiveSign.getStatus(); // String getSql = "select status from green_active_sign where active_id=? and user_id = ?"; // List> list = hibernateDao.queryForListWithSql(getSql, new Object[]{activeId,userId}); // Integer status = (Integer) list.get(0).get("status"); if(status==1){ String sql = "update green_active_sign set status=1,sign_in_time = ? where active_id=? and user_id = ?"; hibernateDao.updateWithSql(sql, new Object[]{new Date(),activeId,userId}); return new RestResult(Constant.SUCCESS,"已签到"); }else if(status==2){ String sql = "update green_active_sign set status=2,sign_out_time= ? where active_id=? and user_id = ?"; hibernateDao.updateWithSql(sql, new Object[]{new Date(),activeId,userId}); return new RestResult(Constant.SUCCESS,"已签退"); } return new RestResult(Constant.SUCCESS,"已签退"); }catch (ServiceValidatorBaseException e) { throw e; }catch (Exception e) { e.printStackTrace(); return new RestResult(Constant.FAILED,"签到失败"); } } }