package com.yeshi.fanli.controller.client;
|
|
import java.io.PrintWriter;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.apache.commons.beanutils.PropertyUtils;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.yeshi.utils.IPUtil;
|
import org.yeshi.utils.JsonUtil;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.yeshi.fanli.entity.accept.AcceptData;
|
import com.yeshi.fanli.entity.push.DeviceActive;
|
import com.yeshi.fanli.entity.system.BusinessSystem;
|
import com.yeshi.fanli.entity.system.CustomerContent;
|
import com.yeshi.fanli.entity.system.SystemClientParams;
|
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
|
import com.yeshi.fanli.service.inter.config.ConfigService;
|
import com.yeshi.fanli.service.inter.config.CustomerContentService;
|
import com.yeshi.fanli.service.inter.config.SystemClientParamsService;
|
import com.yeshi.fanli.service.inter.push.DeviceActiveService;
|
import com.yeshi.fanli.service.inter.push.IOSPushService;
|
import com.yeshi.fanli.util.ThreadUtil;
|
|
import net.sf.json.JSONObject;
|
|
@Controller
|
@RequestMapping("api/v1/systemclient")
|
public class SystemClientController {
|
|
@Resource
|
private BusinessSystemService businessSystemService;
|
|
@Resource
|
private SystemClientParamsService systemClientParamsService;
|
|
@Resource
|
private IOSPushService iosPushService;
|
|
@Resource
|
private ConfigService configService;
|
|
@Resource
|
private DeviceActiveService deviceActiveService;
|
|
@Resource
|
private CustomerContentService customerContentService;
|
|
@RequestMapping("getsystemclientparams")
|
public void getSystemClientParams(AcceptData acceptData, HttpServletRequest request, PrintWriter out) {
|
BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
|
acceptData.getPackages());
|
if (system == null) {
|
out.print("系统不存在");
|
return;
|
}
|
List<SystemClientParams> systemClientParamsList = systemClientParamsService
|
.getSystemClientParamsBySystemId(system.getId(), Integer.parseInt(acceptData.getVersion()));
|
if (systemClientParamsList == null || systemClientParamsList.size() == 0) {
|
out.print(JsonUtil.loadFalseResult("暂无数据"));
|
return;
|
}
|
|
// TODO 需要改成数据库控制,暂时写成这样
|
|
List<SystemClientParams> list = new ArrayList<>();
|
for (SystemClientParams sp : systemClientParamsList) {
|
SystemClientParams ssp = new SystemClientParams();
|
try {
|
PropertyUtils.copyProperties(ssp, sp);
|
} catch (Exception e) {
|
|
}
|
|
if (ssp.getKey().equalsIgnoreCase("iosonling") && "ios".equalsIgnoreCase(acceptData.getPlatform())
|
&& configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
|
ssp.setValue("1");
|
} else if (ssp.getKey().equalsIgnoreCase("home_weex_url")) {
|
if (("android".equalsIgnoreCase(acceptData.getPlatform())
|
&& Integer.parseInt(acceptData.getVersion()) < 36)) {
|
// 老版本weex(1.5.1之前的)
|
ssp.setValue("http://ec-1255749512.file.myqcloud.com/resource/weex/flq_index_v2.js");
|
} else if ("ios".equalsIgnoreCase(acceptData.getPlatform())
|
&& Integer.parseInt(acceptData.getVersion()) < 44 && system.getId().longValue() != 5L)
|
ssp.setValue("http://ec-1255749512.file.myqcloud.com/resource/weex/flq_index_v2.js");
|
}
|
list.add(ssp);
|
}
|
|
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
|
JSONObject data = new JSONObject();
|
data.put("count", list.size());
|
data.put("systemClientParamsList", gson.toJson(list));
|
out.print(JsonUtil.loadTrueResult(data));
|
String ipInfo = IPUtil.getRemotIP(request) + ":" + request.getRemotePort();
|
ThreadUtil.run(new Runnable() {
|
@Override
|
public void run() {
|
try {
|
// 安卓平台添加设备活跃记录
|
DeviceActive da = new DeviceActive();
|
da.setDevice(acceptData.getDevice());
|
da.setPlatform("android".equalsIgnoreCase(acceptData.getPlatform()) ? DeviceActive.PLATFORM_ANDROID
|
: DeviceActive.PLATFORM_IOS);
|
da.setVersionCode(Integer.parseInt(acceptData.getVersion()));
|
da.setIpInfo(ipInfo);
|
deviceActiveService.addDeviceActive(da);
|
} catch (Exception e) {
|
}
|
}
|
});
|
|
return;
|
}
|
|
/**
|
*
|
* 方法说明: 联系客服接口
|
*
|
* @author mawurui createTime 2018年4月10日 上午9:02:41
|
*/
|
@RequestMapping("contactCustomerService")
|
public void contactCustomerService(AcceptData acceptData, PrintWriter out) {
|
String title = "联系客服";
|
List<CustomerContent> contentList = customerContentService.contactCustomerService(title);
|
JSONObject data = new JSONObject();
|
data.put("contentList", JsonUtil.getSimpleGsonWithDate().toJson(contentList));
|
out.print(JsonUtil.loadTrueResult(data));
|
}
|
|
}
|