Commit eaabae4c by manxiaoqiang

adi

parent 0e91d6b6
package adi.controller;
import adi.model.ADIUser;
import adi.service.ADIAccountService;
import common.model.*;
import dic.OperateObjectTypeEnum;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import security.annotation.CurrentAccount;
import userio.service.IOAccountService;
import util.ResultModel;
import util.ResultStatus;
import util.UserLogThread;
import javax.servlet.http.HttpServletRequest;
/**
* Created by mxq on 2017/12/21.
*/
@Controller
@RequestMapping("adi/marketing/accountmng")
public class ADIAccountController {
@Autowired
ADIAccountService tkioAccountService;
//sale
@RequestMapping(value = "/findSale", method = RequestMethod.GET)
@ResponseBody
public ResultModel findSale(@CurrentAccount User loginAccount, @RequestParam(required = false) Long sale) {
return ResultModel.OK(tkioAccountService.findSale(loginAccount, sale));
}
//sale
@RequestMapping(value = "/findSaleInfo", method = RequestMethod.GET)
@ResponseBody
public ResultModel findSale( @RequestParam String email) {
return ResultModel.OK(tkioAccountService.findSale(email));
}
//sale
@RequestMapping(value = "/update/sale", method = RequestMethod.PUT)
@ResponseBody
public ResultModel updateSale(@CurrentAccount User loginAccount,
@RequestParam String email, @RequestParam String accountEmail, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), accountEmail, "tkio修改销售为 " + email, request,loginAccount.getRole());
userlog.start();
return ResultModel.OK(tkioAccountService.updateSale(email, accountEmail));
}
//客户列表
@RequestMapping(value = "/findAll", method = RequestMethod.GET)
@ResponseBody
public ResultModel find(@CurrentAccount User loginAccount) {
return ResultModel.OK(tkioAccountService.findAll(loginAccount));
}
@RequestMapping(value = "/findone", method = RequestMethod.GET)
@ResponseBody
public ResultModel findOne(@CurrentAccount User loginAccount, @RequestParam String email) {
ADIUser account4Web = tkioAccountService.findOne(email);
if(null == account4Web){
return ResultModel.ERROR(ResultStatus.USER_EMPTY);
}
return ResultModel.OK(account4Web);
}
@RequestMapping(value = "/find/reminderlevel", method = RequestMethod.GET)
@ResponseBody
public ResultModel findReminderlevel() {
return ResultModel.OK(tkioAccountService.findReminderlevel());
}
//关闭缴费提醒
@RequestMapping(value = "/forbidenpress", method = RequestMethod.PUT)
@ResponseBody
public ResultModel forbidenPress(@CurrentAccount User loginAccount, @RequestBody PressMoney resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "关闭异常状态跟进", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK(tkioAccountService.forbidenPress(loginAccount, resource));
}
//开启缴费提醒
@RequestMapping(value = "/enablepress", method = RequestMethod.PUT)
@ResponseBody
public ResultModel enablePress(@CurrentAccount User loginAccount, @RequestBody PressMoney resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "开启异常状态跟进", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK(tkioAccountService.enablePress(loginAccount, resource));
}
//回访
@RequestMapping(value = "/visit", method = RequestMethod.PUT)
@ResponseBody
public ResultModel visit(@CurrentAccount User loginAccount, @RequestBody BackVisit resource, HttpServletRequest request) {
UserLogThread userlog = new UserLogThread(loginAccount.getEmail(), loginAccount.getName(), OperateObjectTypeEnum.CUSTOMER.getKey(), resource.getEmail(), "回访", request,loginAccount.getRole());
userlog.start();
return ResultModel.OK( tkioAccountService.visit(loginAccount, resource));
}
//回访查询
@RequestMapping(value = "/find/visit/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel findVisit(@CurrentAccount User loginAccount, @RequestParam String startDate,
@RequestParam String endDate, @PathVariable Long accountId) {
return ResultModel.OK(tkioAccountService.findVisit(accountId,startDate,endDate));
}
//缴费查询
@RequestMapping(value = "/find/pay/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel findPay(@CurrentAccount User loginAccount, @RequestParam String startDate,
@RequestParam String endDate, @RequestParam String email, @PathVariable Long accountId) {
return ResultModel.OK(tkioAccountService.findPay(email,startDate,endDate));
}
//合同查询
@RequestMapping(value = "/find/contract/{accountId}", method = RequestMethod.GET)
@ResponseBody
public ResultModel findContract(@CurrentAccount User loginAccount, @RequestParam(required =false) String startDate,
@RequestParam(required =false) String endDate, @RequestParam String email) {
return ResultModel.OK(tkioAccountService.findContractChange(email,startDate,endDate));
}
}
package adi.dic;
public enum PackageEnum {
PROBATION(1,"试用套餐"),
FORMAL(2,"正式套餐");
private Integer key;
private String value;
PackageEnum(Integer key, String value) {
this.key = key;
this.value = value;
}
public Integer getKey() {
return key;
}
public String getValue() {
return value;
}
}
package adi.dic;
public enum StatusEnum {
INIT(0,"未激活"),
ACTIVE(1,"已开通"),
PAST(2,"已过期"),
FORBIDEN(3,"已停用");
private Integer key;
private String value;
StatusEnum(Integer key, String value) {
this.key = key;
this.value = value;
}
public Integer getKey() {
return key;
}
public String getValue() {
return value;
}
}
package adi.dic;
public enum TypeEnum {
COMPANY(1,"企业用户"),
OWNER(2,"个人用户");
private Integer key;
private String value;
TypeEnum(Integer key, String value) {
this.key = key;
this.value = value;
}
public Integer getKey() {
return key;
}
public String getValue() {
return value;
}
}
package adi.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class ADIUser implements Serializable{
private Long id;
private Long accountId;
private String email;
private String password;
private String name;
private String company;
private String phone;
private String qq;
private String wechat;
private String status;//是否激活: true-激活
private Long modifyAccount;
private Long createAccount;
private Date modifyTime = new Date();
private Date createTime;
private Boolean delFlag;
private String regIpAddr;
private String regIpLocation;
private Long activeTime;//激活时间
private Boolean whetherCompany;//是否企业用户
private Boolean onMedia;//是否选择媒体
private Boolean onTrial;//是否试用账户
private Date expriedTime;//账户到期时间
private Boolean closeFloat;//是否已关闭“试用”提示框
private String packageType;
private String bussinessManEmail;
private List<String> mediaList;
private Date constractStartTime;//合同开始时间
private Long bussinessMan;
private String contractStatus;
private Integer contractTime;
private String saleName;
private Boolean pressStatus;
private String saleEamil;
private Long sale;
private Long money;
private Integer backTime;
private String pastDate;
public Long getAccountId() {
return accountId;
}
public void setAccountId(Long accountId) {
this.accountId = accountId;
}
public String getPastDate() {
return pastDate;
}
public void setPastDate(String pastDate) {
this.pastDate = pastDate;
}
public List<String> getMediaList() {
return mediaList;
}
public Integer getBackTime() {
return backTime;
}
public void setBackTime(Integer backTime) {
this.backTime = backTime;
}
public void setMediaList(List<String> mediaList) {
this.mediaList = mediaList;
}
public String getContractStatus() {
return contractStatus;
}
public void setContractStatus(String contractStatus) {
this.contractStatus = contractStatus;
}
public Integer getContractTime() {
return contractTime;
}
public void setContractTime(Integer contractTime) {
this.contractTime = contractTime;
}
public String getSaleName() {
return saleName;
}
public void setSaleName(String saleName) {
this.saleName = saleName;
}
public Boolean getPressStatus() {
return pressStatus;
}
public void setPressStatus(Boolean pressStatus) {
this.pressStatus = pressStatus;
}
public String getSaleEamil() {
return saleEamil;
}
public void setSaleEamil(String saleEamil) {
this.saleEamil = saleEamil;
}
public Long getSale() {
return sale;
}
public void setSale(Long sale) {
this.sale = sale;
}
public Long getMoney() {
return money;
}
public void setMoney(Long money) {
this.money = money;
}
public String getBussinessManEmail() {
return bussinessManEmail;
}
public void setBussinessManEmail(String bussinessManEmail) {
this.bussinessManEmail = bussinessManEmail;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getModifyAccount() {
return modifyAccount;
}
public void setModifyAccount(Long modifyAccount) {
this.modifyAccount = modifyAccount;
}
public Long getCreateAccount() {
return createAccount;
}
public void setCreateAccount(Long createAccount) {
this.createAccount = createAccount;
}
public Date getModifyTime() {
return modifyTime;
}
public void setModifyTime(Date modifyTime) {
this.modifyTime = modifyTime;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Boolean getDelFlag() {
return delFlag;
}
public void setDelFlag(Boolean delFlag) {
this.delFlag = delFlag;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCompany() {
return company;
}
public void setCompany(String company) {
this.company = company;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getQq() {
return qq;
}
public void setQq(String qq) {
this.qq = qq;
}
public String getWechat() {
return wechat;
}
public void setWechat(String wechat) {
this.wechat = wechat;
}
public String getRegIpAddr() {
return regIpAddr;
}
public void setRegIpAddr(String regIpAddr) {
this.regIpAddr = regIpAddr;
}
public String getRegIpLocation() {
return regIpLocation;
}
public void setRegIpLocation(String regIpLocation) {
this.regIpLocation = regIpLocation;
}
public Long getActiveTime() {
return activeTime;
}
public void setActiveTime(Long activeTime) {
this.activeTime = activeTime;
}
public Boolean getOnMedia() {
return onMedia;
}
public void setOnMedia(Boolean onMedia) {
this.onMedia = onMedia;
}
public Boolean getOnTrial() {
return onTrial;
}
public void setOnTrial(Boolean onTrial) {
this.onTrial = onTrial;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getExpriedTime() {
return expriedTime;
}
public void setExpriedTime(Date expriedTime) {
this.expriedTime = expriedTime;
}
public Boolean getWhetherCompany() {
return whetherCompany;
}
public void setWhetherCompany(Boolean whetherCompany) {
this.whetherCompany = whetherCompany;
}
public Boolean getCloseFloat() {
return closeFloat;
}
public void setCloseFloat(Boolean closeFloat) {
this.closeFloat = closeFloat;
}
public String getPackageType() {
return packageType;
}
public void setPackageType(String packageType) {
this.packageType = packageType;
}
public Long getBussinessMan() {
return bussinessMan;
}
public void setBussinessMan(Long bussinessMan) {
this.bussinessMan = bussinessMan;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Date getConstractStartTime() {
return constractStartTime;
}
public void setConstractStartTime(Date constractStartTime) {
this.constractStartTime = constractStartTime;
}
@Override
public String toString() {
return "ADIUser{" +
"id=" + id +
", email='" + email + '\'' +
", password='" + password + '\'' +
", name='" + name + '\'' +
", company='" + company + '\'' +
", phone='" + phone + '\'' +
", qq='" + qq + '\'' +
", wechat='" + wechat + '\'' +
", status=" + status +
", modifyAccount=" + modifyAccount +
", createAccount=" + createAccount +
", modifyTime=" + modifyTime +
", createTime=" + createTime +
", delFlag=" + delFlag +
", regIpAddr='" + regIpAddr + '\'' +
", regIpLocation='" + regIpLocation + '\'' +
", activeTime=" + activeTime +
", whetherCompany=" + whetherCompany +
", onMedia=" + onMedia +
", onTrial=" + onTrial +
", expriedTime=" + expriedTime +
", closeFloat=" + closeFloat +
", packageType='" + packageType + '\'' +
", bussinessMan=" + bussinessMan +
", mediaList=" + mediaList +
'}';
}
}
package adi.service;
import adi.model.ADIUser;
import common.model.*;
import java.util.List;
import java.util.Map;
/**
* Created by mxq on 2017/12/26.
*/
public interface ADIAccountService {
Map<String, Object> findSale(User user, Long sale);
Map<String, String> findSale(String email);
IOAccount4Web updateSale(String email, String account);
List<ADIUser> findAll(User user);
ADIUser findOne(String email);
List<ReminderLevel> findReminderlevel();
void updateAccount(Contract contract);
//催款提醒关闭
PressMoney forbidenPress(User user, PressMoney resource);
//催款提醒开启
PressMoney enablePress(User user, PressMoney resource);
//回访
BackVisit visit(User user, BackVisit resource);
List<BackVisit> findVisit(Long account, String startDate, String endDate);
List<ContractMoney> findPay(String email, String startDate, String endDate);
List<Contract> findContract(String email);
List<Contract> findContractChange(String email, String startDate, String endDate);
}
package adi.service.impl;
import adi.model.ADIUser;
import adi.service.ADIAccountService;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.base.Function;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Maps;
import common.model.*;
import common.repository.*;
import common.service.UserService;
import dic.ContractTypeEnum;
import dic.RoleEnum;
import dic.RoleTypeEnum;
import office.model.ADISaleMap;
import office.model.BussinessMan;
import office.repository.ADISaleMapRepository;
import office.repository.BussinessManRepository;
import org.apache.commons.collections4.list.TreeList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import tkio.model.PackageType;
import userio.repository.IOPackageTypeRepository;
import userio.repository.IOSalesManLeaderRepository;
import util.DateUtil;
import util.HttpClientUtil;
import util.ValidateUtil;
import javax.annotation.Nullable;
import java.io.IOException;
import java.util.*;
/**
* Created by mxq on 2017/12/26.
*/
@Service
public class ADIAccountServiceImpl implements ADIAccountService {
//查询URI
private final static String URI_REPORT_BY_SQL = "/api/trackingio/bysql";
@Autowired
IOAccount4WebRepository account4WebRepository;
@Autowired
IOSalesManLeaderRepository salesManLeaderRepository;
@Autowired
BackVisitRepository backVisitRepository;
@Autowired
PaymentRepository paymentRepository;
@Autowired
BussinessManRepository bussinessManRepository;
@Autowired
ADISaleMapRepository adiSaleMapRepository;
@Autowired
UserRepository userRepository;
@Autowired
ContractMoneyRepository contractMoneyRepository;
@Autowired
ContractRepository contractRepository;
@Autowired
ContractChangeRepository contractChangeRepository;
@Autowired
IOPackageTypeRepository packageTypeRepository;
@Autowired
UserService userService;
@Autowired
ReminderLevelRepository reminderLevelRepository;
@Autowired
PressMoneyRepository pressMoneyRepository;
@Override
public Map<String, Object> findSale(User user, Long sale) {
Map<String, Object> map = new HashMap();
String email = null;
if(null != sale){
User user1 = userRepository.findOne(sale);
if (null != user1)
map.put("old", user1.getName());
}
List<User> list = new ArrayList<>();
if(user.getRole().equals(RoleEnum.NORTH_BUSSINUSS.getKey()) || user.getRole().equals(RoleEnum.SOUTH_BUSSINUSS.getKey())){
list = userService.findbyRole(user.getRole());
}else {
list = userRepository.findSales();
}
map.put("new", list);
return map;
}
@Override
public Map<String, String> findSale(String email) {
Map<String, String> map = new HashMap<>();
System.out.println(email);
ADISaleMap adiSaleMap = adiSaleMapRepository.findByAccountEmail(email);
System.out.println(adiSaleMap);
if(null != adiSaleMap && null != adiSaleMap.getSaleEmail()){
User user = userRepository.findByEmail(adiSaleMap.getSaleEmail());
System.out.println(user);
map.put("name",user.getName());
map.put("phone","");
}
System.out.println(map);
return map;
}
@Override
public IOAccount4Web updateSale(String email, String account) {
BussinessMan bussinessMan = bussinessManRepository.findByEmail(email);
ADISaleMap adiSaleMap = adiSaleMapRepository.findByAccountEmail(account);
System.out.println(account + "==" + (null == adiSaleMap));
if(null == adiSaleMap){
adiSaleMap = new ADISaleMap();
adiSaleMap.setAccountEmail(account);
adiSaleMap.setSaleEmail(email);
adiSaleMap.setSale(bussinessMan.getId());
adiSaleMap.setModifeTime(new Date());
}else {
adiSaleMap.setSaleEmail(email);
adiSaleMap.setSale(bussinessMan.getId());
}
adiSaleMapRepository.save(adiSaleMap);
return null;
}
@Override
public void updateAccount(Contract contract) {
ADIUser adiUser = findOne(contract.getEmail());
if(null != adiUser){
String url = "http://localhost:8081/adi/api/user/web/update";
Map<String,String> conditions = new HashMap<>();
conditions.put("expriedTime", contract.getEndDate() + " 00:00:00");
conditions.put("constractStartTime",contract.getStartDate() + " 00:00:00");
conditions.put("id", adiUser.getId().toString());
String request = HttpClientUtil.doHttpPostRequest(url, "",conditions,"utf-8");
if(!contract.getSale().equals(adiUser.getBussinessMan())){
User user = userRepository.findOne(contract.getSale());
updateSale(user.getEmail(), adiUser.getEmail());
}
}
}
private List<ADIUser> getAllAccount() throws JSONException {
List<ADIUser> list = new ArrayList<>();
String url = "http://localhost:8081/adi/api/user/web/list";
Map<String,String> conditions = new HashMap<>();
conditions.put("type","");
conditions.put("status","");
// conditions.put("keyw","");
String request = HttpClientUtil.doHttpPostRequest(url, "",conditions,"utf-8");
JSONObject rs = new JSONObject(request);
List<Contract> contractList = contractRepository.findByPlatform("adi");
Map<String, Contract> dicContract = new HashMap<>();
if(ValidateUtil.isValid(contractList)){
for(Contract co : contractList){
dicContract.put(co.getEmail(), co);
}
}
List<ADISaleMap> saleMaps = adiSaleMapRepository.findAll();
final Map<String, ADISaleMap> dicSale = Maps.uniqueIndex(saleMaps, new Function<ADISaleMap, String>() {
@Override
public String apply(@Nullable ADISaleMap adiSaleMap)
{
return adiSaleMap.getAccountEmail();
}
});
JSONArray rsJSONArray = rs.getJSONArray("content");
if(rsJSONArray.length() > 0 && !rsJSONArray.isNull(0)){
for(int i = 0; i < rsJSONArray.length(); i++){
String object = rsJSONArray.get(i).toString();
ADIUser val = null;
try {
System.out.println(object);
val = new ObjectMapper().readValue(object, ADIUser.class);
System.out.println(val);
if(dicContract.containsKey(val.getEmail())){
Contract contract = dicContract.get(val.getEmail());
String date = DateUtil.format(val.getExpriedTime(), "yyyy-MM-dd");
if(null != date && contract.getPayMoney() > 0 && contract.getEndDate().compareTo(date) >= 0){
val.setPackageType("正式套餐");
}else{
val.setPackageType("试用套餐");
}
}
if(null != dicSale.get(val.getEmail().toString())){
ADISaleMap saleMap = dicSale.get(val.getEmail());
val.setBussinessMan(saleMap.getSale());
val.setBussinessManEmail(saleMap.getSaleName());
}else{
val.setBussinessMan(null);
}
list.add(val);
} catch (IOException e) {
e.printStackTrace();
}
}
}
return list;
}
private List<ADIUser> transAccount(List<ADIUser> list, List<String> emailList){
List<ADIUser> result = new ArrayList<>();
if(ValidateUtil.isValid(list)){
for(ADIUser aw : list){
if(null != emailList && !emailList.contains(aw.getBussinessManEmail())){
continue;
}
Map<String, String> statusMap = ImmutableMap.of("0", "未激活",
"1", "已开通",
"2", "已过期",
"3","已停用");
List<ADISaleMap> saleMapList = adiSaleMapRepository.findAll();
Map<String, String> busAccMap = new HashMap<>();
for(ADISaleMap u : saleMapList){
busAccMap.put(u.getAccountEmail(),u.getSaleEmail());
}
List<PressMoney> allPress = pressMoneyRepository.findAllPress("adi");
Map<Long, Boolean> pressMap = new HashMap<>();
if(ValidateUtil.isValid(allPress)){
for(PressMoney re : allPress){
pressMap.put(re.getAccountId(), re.getPressStatus());
}
}
List<BussinessMan> roles = bussinessManRepository.findAll();
Map<String, String> busMap = new HashMap<>();
for(BussinessMan u : roles){
busMap.put(u.getEmail(),u.getName());
}
List<User> users = userRepository.findAll();
Map<String, Long> saleMap = new HashMap<>();
for(User u : users){
saleMap.put(u.getEmail(),u.getId());
}
Map<String, Integer> backTimeMap = getBackTime();
Map<String, List<Contract>> payMap = getPay();
if (backTimeMap.containsKey(aw.getEmail())) {
aw.setBackTime(backTimeMap.get(aw.getEmail()));
} else {
aw.setBackTime(0);
}
if (busAccMap.containsKey(aw.getEmail())) {
aw.setSaleName(busMap.get(busAccMap.get(aw.getEmail())));
aw.setSaleEamil(busAccMap.get(aw.getEmail()));
} else {
aw.setSaleName("");
}
if (pressMap.containsKey(aw.getId())) {
aw.setPressStatus(true);
aw.setContractStatus("stop");
} else {
aw.setPressStatus(false);
}
if (payMap.containsKey(aw.getEmail())) {
List<Contract> contractList = payMap.get(aw.getEmail());
aw.setMoney(contractList.get(contractList.size() - 1).getPayMoney());
aw.setContractStatus(contractRepository.findByPlatformAndEmailLimit1("adi", aw.getEmail(), ContractTypeEnum.MAIN.getKey()).getStatus());
aw.setContractTime(contractList.size());
} else {
aw.setContractTime(0);
aw.setContractStatus("empty");
aw.setMoney(0L);
}
if (saleMap.containsKey(aw.getSaleEamil())) {
aw.setSale(saleMap.get(aw.getSaleEamil()));
}
aw.setStatus(statusMap.get(aw.getStatus()));
aw.setPastDate(null == aw.getExpriedTime() ? "" :DateUtil.getFormatDate(aw.getExpriedTime()));
aw.setAccountId(aw.getId());
result.add(aw);
}
}
return result;
}
@Override
public List<ADIUser> findAll(User user) {
List<ADIUser> result = new ArrayList<>();
List<ADIUser> account4WebList = null;
List<String> emialList = null;
try {
account4WebList = getAllAccount();
} catch (JSONException e) {
e.printStackTrace();
}
if(user.getRole().equals(RoleEnum.MANAGER.getKey())){
} else{
if(user.getRoleType().equals(RoleTypeEnum.MANAGER.getKey())){
List<User> userList = userRepository.findAllUserByRole(user.getRole());
emialList = new ArrayList<>();
for(User u : userList){
emialList.add(u.getEmail());
}
}else{
List<String> emailList = new ArrayList<>();
emailList.add(user.getEmail());
List<User> userList = userService.findAllSons(user.getId());
if(ValidateUtil.isValid(userList)){
for(User u : userList){
emailList.add(u.getEmail());
}
}
}
}
result = transAccount(account4WebList, emialList);
return result;
}
@Override
public ADIUser findOne(String email) {
String url = "http://localhost:8081/adi/api/user/web/one";
Map<String,String> conditions = new HashMap<>();
conditions.put("field", "email");
conditions.put("value",email);
String request = HttpClientUtil.doHttpPostRequest(url, "",conditions,"utf-8");
ADIUser adiUser =null;
try {
JSONObject rs = new JSONObject(request);
String content = rs.get("content").toString();
if(!"null".equals(content)){
try {
adiUser = new ObjectMapper().readValue(content, ADIUser.class);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
if(null != adiUser){
List<ADIUser> list = new ArrayList<>();
list.add(adiUser);
List<ADIUser> adiUsers = transAccount(list, null);
adiUser = adiUsers.get(0);
}
return adiUser;
}
@Override
public List<ReminderLevel> findReminderlevel() {
return reminderLevelRepository.findAll();
}
@Override
public PressMoney forbidenPress(User user, PressMoney resource) {
PressMoney pressMoney = pressMoneyRepository.findOne("adi", resource.getAccountId());
pressMoney.setUser(user.getId());
pressMoney.setModifyTime(new Date());
pressMoney.setPressStatus(false);
pressMoney.setDs(DateUtil.getBeforeDays(0));
Contract contract = contractRepository.findByPlatformAndEmailLimit1("adi", resource.getEmail(), ContractTypeEnum.MAIN.getKey());
if(null != contract){
contract.setStatus("executing");
contractRepository.save(contract);
}
String url = "http://localhost:8081/adi/api/user/web/update";
Map<String,String> conditions = new HashMap<>();
conditions.put("expriedTime", null);
conditions.put("constractStartTime",null);
conditions.put("status","1");
conditions.put("id", resource.getAccountId().toString());
// conditions.put("keyw","");
String request = HttpClientUtil.doHttpPostRequest(url, "",conditions,"utf-8");
pressMoneyRepository.save(pressMoney);
return null;
}
@Override
public PressMoney enablePress(User user, PressMoney resource) {
PressMoney pressMoney = pressMoneyRepository.findOne("adi", resource.getAccountId());
if(null == pressMoney){
resource.setUser(user.getId());
resource.setModifyTime(new Date());
resource.setPlatform("adi");
resource.setPressStatus(true);
resource.setDs(DateUtil.getBeforeDays(0));
pressMoneyRepository.save(resource);
}else{
pressMoney.setUser(user.getId());
pressMoney.setModifyTime(new Date());
pressMoney.setPressStatus(true);
pressMoney.setDs(DateUtil.getBeforeDays(0));
pressMoneyRepository.save(pressMoney);
}
Contract contract = contractRepository.findByPlatformAndEmailLimit1("adi", resource.getEmail(), ContractTypeEnum.MAIN.getKey());
if(null != contract){
contract.setStatus("stop");
contractRepository.save(contract);
}
String url = "http://localhost:8081/adi/api/user/web/update";
Map<String,String> conditions = new HashMap<>();
conditions.put("expriedTime", null);
conditions.put("constractStartTime",null);
conditions.put("status","3");
conditions.put("id", resource.getAccountId().toString());
// conditions.put("keyw","");
String request = HttpClientUtil.doHttpPostRequest(url, "",conditions,"utf-8");
return null;
}
@Override
public BackVisit visit(User user, BackVisit resource) {
resource.setUser(user.getId());
resource.setVisitDate(new Date());
resource.setPlatform("adi");
resource.setDs(DateUtil.getBeforeDays(0));
return backVisitRepository.save(resource);
}
@Override
public List<BackVisit> findVisit(Long account, String startDate, String endDate) {
List<BackVisit> result = new ArrayList<>();
List<User> userList = userRepository.findAll();
Map<Long, String> userMap = new HashMap<>();
for(User u : userList){
userMap.put(u.getId(), u.getName());
}
List<BackVisit> list = backVisitRepository.findAll(account, startDate, endDate, "adi");
if (ValidateUtil.isValid(list)) {
for(BackVisit re : list){
re.setUserName(userMap.get(re.getUser()));
result.add(re);
}
}
return result;
}
@Override
public List<ContractMoney> findPay(String email, String startDate, String endDate) {
List<ContractMoney> result = new ArrayList<>();
List<User> userList = userRepository.findAll();
Map<Long, String> userMap = new HashMap<>();
for(User u : userList){
userMap.put(u.getId(), u.getName());
}
List<ContractMoney> list = contractMoneyRepository.findByDs(startDate, endDate, email,"adi");
if(ValidateUtil.isValid(list)){
for(ContractMoney cm : list){
Long user = null == cm.getModifyAccount() ? cm.getUser() : cm.getModifyAccount();
cm.setCreateName(userMap.containsKey(user) ? userMap.get(user) : "");
result.add(cm);
}
}
return result;
}
@Override
public List<Contract> findContract(String email) {
List<Contract> result = new ArrayList<>();
List<User> userList = userRepository.findAll();
Map<Long, String> userMap = new HashMap<>();
for(User u : userList){
userMap.put(u.getId(), u.getName());
}
List<Contract> contractList = contractRepository.findByPlatformAndEmail("adi", email,ContractTypeEnum.MAIN.getKey());
if(ValidateUtil.isValid(contractList)){
for(Contract cm : contractList){
cm.setSaleName(userMap.containsKey(cm.getSale()) ? userMap.get(cm.getSale()) : "");
// cm.setPriceLevelName(typeMap.containsKey(cm.getPriceLevel()) ? typeMap.get(cm.getPriceLevel()) : "");
result.add(cm);
}
}
return result;
}
@Override
public List<Contract> findContractChange(String email, String startDate, String endDate) {
List<Contract> result = new ArrayList<>();
List<User> userList = userRepository.findAll();
Map<Long, String> userMap = new HashMap<>();
for(User u : userList){
userMap.put(u.getId(), u.getName());
}
List<Contract> contractList = contractRepository.findByPlatformAndEmail("adi", email,ContractTypeEnum.MAIN.getKey());
if(ValidateUtil.isValid(contractList)){
for(Contract cm : contractList){
cm.setSaleName(userMap.containsKey(cm.getSale()) ? userMap.get(cm.getSale()) : "");
//cm.setPriceLevelName(typeMap.containsKey(cm.getPriceLevel()) ? typeMap.get(cm.getPriceLevel()) : "");
result.add(cm);
}
}
return result;
}
public Map<String, Integer> getBackTime(){
Map<String, Integer> map = new HashMap<>();
List<BackVisit> all = backVisitRepository.findAllByPlatform("adi");
if (ValidateUtil.isValid(all)){
for(BackVisit bv : all){
if(map.containsKey(bv.getEmail())){
map.put(bv.getEmail(), map.get(bv.getEmail()) + 1);
} else{
map.put(bv.getEmail(), 1);
}
}
}
return map;
}
public Map<String, List<Contract>> getPay(){
Map<String, List<Contract>> map = new HashMap<>();
List<Contract> contractList = contractRepository.findByPlatform("adi");
if (ValidateUtil.isValid(contractList)){
for(Contract pa : contractList){
if(map.containsKey(pa.getEmail())){
List<Contract> list = map.get(pa.getEmail());
list.add(pa);
map.put(pa.getEmail(), list);
} else{
List<Contract> list = new TreeList<>();
list.add(pa);
map.put(pa.getEmail(), list);
}
}
}
return map;
}
public static void main(String[] args) {
String url = "http://localhost:8081/adi/api/user/web/one";
Map<String,String> conditions = new HashMap<>();
conditions.put("field", "email");
conditions.put("value","zhangshaoyou@reyun.com");
String request = HttpClientUtil.doHttpPostRequest(url, "",conditions,"utf-8");
System.out.println(request);
ADIUser adiUser =null;
try {
JSONObject rs = new JSONObject(request);
String content = rs.get("content").toString();
if(!"null".equals(content)){
try {
adiUser = new ObjectMapper().readValue(content, ADIUser.class);
System.out.println(adiUser);
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
// String url2 = "http://localhost:8081/adi/api/user/web/update";
// Map<String,String> conditions2 = new HashMap<>();
// conditions2.put("expriedTime", null);
// conditions2.put("constractStartTime",null);
// conditions2.put("status","3");
// conditions2.put("id", "2");
// // conditions.put("keyw","");
// String request2 = HttpClientUtil.doHttpPostRequest(url2, "",conditions2,"utf-8");
}
}
package office.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.util.Date;
/**
* Created by nolan on 06/06/2017.
* description:
*/
@Entity
public class ADISaleMap {
private Long id;
private Long account;
private String accountEmail;
private Long sale;
private String saleEmail;
private String saleName;
private Date createTime;
private Date modifeTime;
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getAccount() {
return account;
}
public void setAccount(Long account) {
this.account = account;
}
public String getAccountEmail() {
return accountEmail;
}
public void setAccountEmail(String accountEmail) {
this.accountEmail = accountEmail;
}
public Long getSale() {
return sale;
}
public void setSale(Long sale) {
this.sale = sale;
}
public String getSaleEmail() {
return saleEmail;
}
public void setSaleEmail(String saleEmail) {
this.saleEmail = saleEmail;
}
public String getSaleName() {
return saleName;
}
public void setSaleName(String saleName) {
this.saleName = saleName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getModifeTime() {
return modifeTime;
}
public void setModifeTime(Date modifeTime) {
this.modifeTime = modifeTime;
}
@Override
public String toString() {
return "ADISaleMap{" +
"id=" + id +
", account=" + account +
", accountEmail='" + accountEmail + '\'' +
", sale=" + sale +
", saleEmail='" + saleEmail + '\'' +
", saleName='" + saleName + '\'' +
", createTime=" + createTime +
", modifeTime=" + modifeTime +
'}';
}
}
package office.repository;
import office.model.ADISaleMap;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
/**
* Created by nolan on 06/06/2017.
* description:
*/
public interface ADISaleMapRepository
extends JpaRepository<ADISaleMap, Long>
{
@Query(value = "select * from adisale_map where account=?1", nativeQuery = true)
ADISaleMap findByAccountId(Long account);
@Query(value = "select * from adisale_map where account_email=?1", nativeQuery = true)
ADISaleMap findByAccountEmail(String email);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment