NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

package com.ge.controller.playWeb.group;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import net.sf.json.JSONObject;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.ge.common.DataUtil;
import com.ge.common.StaticMap;
import com.ge.entity.client.baseUser.BaseUserPo;
import com.ge.entity.playWeb.basic.goods.PlaygoodsPo;
import com.ge.entity.playWeb.group.privil.GroupPrivilWebPo;
import com.ge.entity.playWeb.group.record.GroupUserRecordWebPo;
import com.ge.entity.playWeb.group.user.GroupUserWebPo;
import com.ge.service.playWeb.basic.goods.IPlaygoodsService;
import com.ge.service.playWeb.group.log.IGroupLogWebService;
import com.ge.service.playWeb.group.privil.IGroupPrivilWebService;
import com.ge.service.playWeb.group.record.IGroupUserRecordWebService;
import com.ge.service.playWeb.group.user.IGroupUserWebService;

/**
* @Title GroupController
* @Package com.ge.controller.playWeb.group
* @Description 用户成长体系
* @author liuhy
* @date 2017-10-11 10:49:22
*/
@Controller
@RequestMapping("playWeb/group")
@Scope("prototype")
public class GroupController {

@Autowired
private IGroupUserWebService groupUserWebService;

@Autowired
private IGroupPrivilWebService groupPrivilWebService;

@Autowired
private IGroupUserRecordWebService groupUserRecordWebService;

@Autowired
private IPlaygoodsService playgoodsService;

@Autowired
private IGroupLogWebService groupLogWebService;

public static final String SUCCESS_JSON = "{"result":"success"}";

public static final String ERROR_JSON = "{"result":"error","msg":"操作失败!"}";

/**
* 主页旧
*/
@RequestMapping("index")
public String index(Model model, String param, HttpServletRequest request) {
try {
BaseUserPo baseUser = (BaseUserPo) request.getSession()
.getAttribute("baseUser");
GroupUserWebPo groupUser = new GroupUserWebPo();
groupUser.setPhone(baseUser.getPhone());
groupUser.setPlayNo(Long.parseLong(param));

// 根据 手机号,活动号 查寻用户等级信息
groupUser = groupUserWebService.findGroupUser(groupUser);

if (groupUser == null) {
// 此手机号没有找到相应信息

// 添加一条数据

GroupUserWebPo newGroupUser = new GroupUserWebPo();
newGroupUser.setNo(new DataUtil().getSequence());
newGroupUser.setInputName(baseUser.getNo());
newGroupUser.setLevel(0L);
newGroupUser.setPlayNo(Long.parseLong(param));
newGroupUser.setPhone(baseUser.getPhone());
groupUserWebService.addGroupUser(newGroupUser);

// 再次查询一遍
groupUser = new GroupUserWebPo();
groupUser.setPhone(baseUser.getPhone());
groupUser.setPlayNo(Long.parseLong(param));
groupUser = groupUserWebService.findGroupUser(groupUser);
}
model.addAttribute("groupUser", groupUser);

// 根据当前用户等级查询可领取奖品
GroupPrivilWebPo groupPrivil = new GroupPrivilWebPo();
groupPrivil.setLevel(groupUser.getLevel());
List<GroupPrivilWebPo> privilList = groupPrivilWebService
.findGroupPrivilList(groupPrivil);

// 在特权中找 包含 [流量] 跟 [金币] 的数据
if (privilList != null) {
for (int i = 0; i < privilList.size(); i++) {
if (privilList.get(i).getPrivilName().contains("流量")) {
// 流量包
model.addAttribute("privilFlow", privilList.get(i));
}
if (privilList.get(i).getPrivilName().contains("金币")) {
// 签到金币
model.addAttribute("privilGold", privilList.get(i));
}
}
}

// 查询该用户的订购记录,根据手机号跟当前等级
GroupUserRecordWebPo groupUserRecord = new GroupUserRecordWebPo();
// groupUserRecord.setGroupUserNo(groupUser.getNo());// 这行有点多余
groupUserRecord.setPhone(baseUser.getPhone());
groupUserRecord.setLevel(groupUser.getLevel());
List<GroupUserRecordWebPo> recordList = groupUserRecordWebService
.findGroupUserRecordList(groupUserRecord);

// 判断是否领取过这个等级的礼包
if (recordList == null || recordList.size() == 0) {
model.addAttribute("isOrdered", false);
} else {
model.addAttribute("isOrdered", true);
}

return "playWeb/group/index";
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}

/**
* 主页新
*/
@RequestMapping("view")
public String view(Model model, String param, HttpServletRequest request) {

/**
* 20180307改逻辑
* <1> controller查看该用户在不在成长体系表里
* <2> 先不判断在不在,调用service根据 手机号,查询入网时间和月表计算等级
* <3> 判断<1>,如果不存在,添加一条数据,sign设为,未提醒,并且返回页面
* 如果存在,修改等级,返回页面。 // 其实根本不需要修改等级,也可能作为统计有用
*/
// 页面等级,在月初 月文件未生成的时候怎么办, 隔一个月显示,还是不给显示
// 或者每次进来先看一下上个月月文件在不在,上个月月文件不在,默认提示在更新,可能问题, 在导数据时候点进来, 可能等级不准,然后领取了两个不同等级的特权

try {
BaseUserPo baseUser = (BaseUserPo) request.getSession()
.getAttribute("baseUser");
DataUtil du = new DataUtil();
Date date = new Date();
Integer dd = Integer.valueOf(du.dateToString(date, "dd"));
Integer HH = Integer.valueOf(du.dateToString(date, "HH"));
System.out.println(dd + "【】" + HH);
// 4(dd)号 凌晨 4(HH)点开放
if (dd < 4 || (dd == 4 && HH < 4)) {
return "playWeb/group/blocked";
}

// <1> 查看该用户在不在成长体系表里
GroupUserWebPo groupUser = new GroupUserWebPo();
groupUser.setPhone(baseUser.getPhone());
groupUser.setPlayNo(Long.parseLong(param));
groupUser = groupUserWebService.findGroupUser(groupUser);

// <2> 根据手机号查询该用户等级
if (!groupLogWebService.findLastMonthTable()) {
// 如果上个月月表不存在,则返回还在维护页面
System.out.println("上个月月文件表不存在" + du.dateToString(date, "yyyy-MM-dd HH:mm:ss"));
return "playWeb/group/blocked";
}
Integer level = Integer.valueOf(groupUserWebService.findUserLevel(baseUser.getPhone(), 5));

// <3> 判断 <1>
// 如果不存在,添加一条数据,sign设为,未提醒,并且返回页面
// 如果存在,修改等级,返回页面。
if (groupUser == null) {
GroupUserWebPo newGroupUser = new GroupUserWebPo();
newGroupUser.setNo(new DataUtil().getSequence());
newGroupUser.setInputName(baseUser.getNo());
newGroupUser.setLevel(level.longValue());
newGroupUser.setPlayNo(Long.parseLong(param));
newGroupUser.setPhone(baseUser.getPhone());
groupUserWebService.addGroupUser(newGroupUser);

groupUser = newGroupUser;
// // 再次查询一遍
// groupUser = new GroupUserWebPo();
// groupUser.setPhone(baseUser.getPhone());
// groupUser.setPlayNo(Long.parseLong(param));
// groupUser = groupUserWebService.findGroupUser(groupUser);
} else {
groupUser.setLevel(level.longValue());
}

model.addAttribute("groupUser", groupUser);

// 根据当前用户等级查询可领取奖品
GroupPrivilWebPo groupPrivil = new GroupPrivilWebPo();
groupPrivil.setLevel(groupUser.getLevel());
List<GroupPrivilWebPo> privilList = groupPrivilWebService
.findGroupPrivilList(groupPrivil);

// 在特权中找 包含 [流量] 跟 [金币] 的数据
if (privilList != null) {
for (int i = 0; i < privilList.size(); i++) {
if (privilList.get(i).getPrivilName().contains("流量")) {
// 流量包
model.addAttribute("privilFlow", privilList.get(i));
}
if (privilList.get(i).getPrivilName().contains("金币")) {
// 签到金币
model.addAttribute("privilGold", privilList.get(i));
}
}
}

// 查询该用户的订购记录,根据手机号跟当前等级
GroupUserRecordWebPo groupUserRecord = new GroupUserRecordWebPo();
// groupUserRecord.setGroupUserNo(groupUser.getNo());// 这行有点多余
groupUserRecord.setPhone(baseUser.getPhone());
groupUserRecord.setLevel(groupUser.getLevel());
List<GroupUserRecordWebPo> recordList = groupUserRecordWebService
.findGroupUserRecordList(groupUserRecord);

// 应该修改为最近一次的领取记录
// 并且拿INPUT_DATE 与 当前月份比较。
// 规则应该是每个月一次


// 判断是否领取过这个等级的礼包
if (recordList == null || recordList.size() == 0) {
model.addAttribute("isOrdered", false);
} else {
model.addAttribute("isOrdered", true);
}

return "playWeb/group/view";
} catch (Exception e) {
e.printStackTrace();
return "error";
}
}

/**
* 将变更提醒修改为已提醒
*/
@RequestMapping("user/levelRemind")
@ResponseBody
public String levelRemind(Model model, HttpServletRequest request) {
try {
BaseUserPo baseUser = (BaseUserPo) request.getSession()
.getAttribute("baseUser");
// 修改 变更标识为 1:已提醒
GroupUserWebPo groupUser = new GroupUserWebPo();
groupUser.setPhone(baseUser.getPhone());
groupUser.setSign(1L);
groupUser.setUpdateName(baseUser.getNo());
groupUserWebService.updGroupUser(groupUser);
return SUCCESS_JSON;
} catch (Exception e) {
e.printStackTrace();
return ERROR_JSON;
}

}

/**
* 领取奖品
*/
@RequestMapping("getPrize")
@ResponseBody
public String getPrize(GroupPrivilWebPo groupPrivil,
HttpServletRequest request) {
try {
BaseUserPo baseUser = (BaseUserPo) request.getSession()
.getAttribute("baseUser");
// 根据手机号查寻用户等级信息
GroupUserWebPo groupUser = new GroupUserWebPo();
groupUser.setPhone(baseUser.getPhone());
groupUser = groupUserWebService.findGroupUser(groupUser);

// 根据 用户手机号 跟 当前等级
// 查询用户是否在该等级领取过奖品
GroupUserRecordWebPo groupUserRecord = new GroupUserRecordWebPo();
// groupUserRecord.setGroupUserNo(groupUser.getNo());// 这行有点多余
groupUserRecord.setPhone(baseUser.getPhone());
groupUserRecord.setLevel(groupUser.getLevel());
List<GroupUserRecordWebPo> recordList = groupUserRecordWebService
.findGroupUserRecordList(groupUserRecord);

// 如果用户已经领取过
if (recordList != null && recordList.size() > 0) {
return "{"result":"error","msg":"您已经领取过了","code":"0"}";
}

// 根据用户提交的no号,查询是否有该特权
if (groupPrivil.getNo() == null) {
System.out.println("客户端传来数据有错误");
}

groupPrivil = groupPrivilWebService.findGroupPrivil(groupPrivil);
if (groupPrivil == null) {
System.out.println("查询不到该特权");
}

// 用户领取的是否是 系统实时类(日流量)产品
if (groupPrivil.getFlag() == 1L) {
PlaygoodsPo playgoods = new PlaygoodsPo();
playgoods.setInputName(baseUser.getPhone());
playgoods.setPhone(baseUser.getPhone());
playgoods.setSign(4L); // 日流量
playgoods.setNo(groupPrivil.getGoodsNo());

BaseUserPo po = baseUser;
JSONObject json = playgoodsService.setNetType(baseUser
.getPhone());
if (null != json.get("nettype")
&& (json.get("nettype").equals("10")
|| json.get("nettype").equals("16")
|| json.get("nettype").equals("17") || json
.get("nettype").equals("33"))) {
po.setNettype("23g");
} else if (null != json.get("nettype")
&& (json.get("nettype").equals("50")
|| json.get("nettype").equals("19") || json
.get("nettype").equals(""))) {
po.setNettype("4g");
}
po.setCitycode(StaticMap.getCityCodeMap().get(
json.get("city").toString()));

po.setIpaddress(request.getRemoteAddr());

// 领取奖品
// @param(playgoods)good 、 @param(statue)0:订购
// @param(po) 、 @param(key)空
JSONObject interResult = playgoodsService.addDayFlow(playgoods,
"0", po, "");

// 订购不成功
if (!(new DataUtil().getNoNull(interResult.get("RespCode"))
.equals("00"))) {
return ERROR_JSON;
}
}

// 写入领取记录
groupUserRecord = new GroupUserRecordWebPo();
groupUserRecord.setNo(new DataUtil().getSequence()); // no号
groupUserRecord.setInputName(baseUser.getPhone()); // 录入人
groupUserRecord.setLevel(groupPrivil.getLevel()); // 等级
groupUserRecord.setPhone(baseUser.getPhone()); // 电话
groupUserRecord.setGroupUserNo(groupUser.getNo()); // 成长体系编号
groupUserRecord.setPrivilNo(groupPrivil.getNo()); // 特权编号
groupUserRecord.setPrivilName(groupPrivil.getPrivilName()); // 特权名称
groupUserRecordWebService.addGroupUserRecord(groupUserRecord);

return SUCCESS_JSON;
} catch (Exception e) {
e.printStackTrace();
return "{"result":"error","code":"1"}";
}
}

@RequestMapping("getLog")
@ResponseBody
public String getLog(HttpServletRequest request) {
try {
BaseUserPo baseUser = (BaseUserPo) request.getSession()
.getAttribute("baseUser");
JSONObject result = new JSONObject();

result.put("logList",
groupLogWebService.findLogList(baseUser.getPhone(), 5));
result.put("result", "success");
return result.toString();
} catch (Exception e) {
e.printStackTrace();
return "{"result":"error"}";
}
}

}
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.