yujian
2019-05-20 c4d752a1d340652d9c7d2abb5abff65cdee40d69
fanli/src/main/java/com/yeshi/fanli/controller/client/SystemClientController.java
@@ -5,20 +5,26 @@
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.System;
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.config.SystemService;
import com.yeshi.fanli.service.inter.push.DeviceActiveService;
import com.yeshi.fanli.service.inter.push.IOSPushService;
import com.yeshi.fanli.util.ThreadUtil;
@@ -29,7 +35,7 @@
public class SystemClientController {
   @Resource
   private SystemService systemService;
   private BusinessSystemService businessSystemService;
   @Resource
   private SystemClientParamsService systemClientParamsService;
@@ -40,15 +46,22 @@
   @Resource
   private ConfigService configService;
   @Resource
   private DeviceActiveService deviceActiveService;
   @Resource
   private CustomerContentService customerContentService;
   @RequestMapping("getsystemclientparams")
   public void getSystemClientParams(AcceptData acceptData, PrintWriter out) {
      System system = systemService.getSystemCache(acceptData.getPlatform(), acceptData.getPackages());
   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());
            .getSystemClientParamsBySystemId(system.getId(), Integer.parseInt(acceptData.getVersion()));
      if (systemClientParamsList == null || systemClientParamsList.size() == 0) {
         out.print(JsonUtil.loadFalseResult("暂无数据"));
         return;
@@ -57,13 +70,27 @@
      // TODO 需要改成数据库控制,暂时写成这样
      List<SystemClientParams> list = new ArrayList<>();
      list.addAll(systemClientParamsList);
      for (SystemClientParams sp : list) {
         if (sp.getKey().equalsIgnoreCase("iosonling") && "ios".equalsIgnoreCase(acceptData.getPlatform())
               && configService.iosOnLining(Integer.parseInt(acceptData.getVersion()))) {
            sp.setValue("1");
            break;
      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();
@@ -71,17 +98,23 @@
      data.put("count", list.size());
      data.put("systemClientParamsList", gson.toJson(list));
      out.print(JsonUtil.loadTrueResult(data));
//      ThreadUtil.run(new Runnable() {
//         @Override
//         public void run() {
//            try {
//               if ("ios".equalsIgnoreCase(acceptData.getPlatform()))
//                  iosPushService.addDeviceToken(null, Integer.parseInt(acceptData.getVersion()), null,
//                        acceptData.getDevice());
//            } catch (Exception e) {
//            }
//         }
//      });
      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;
   }
@@ -95,7 +128,7 @@
   @RequestMapping("contactCustomerService")
   public void contactCustomerService(AcceptData acceptData, PrintWriter out) {
      String title = "联系客服";
      List<CustomerContent> contentList = systemClientParamsService.contactCustomerService(title);
      List<CustomerContent> contentList = customerContentService.contactCustomerService(title);
      JSONObject data = new JSONObject();
      data.put("contentList", JsonUtil.getSimpleGsonWithDate().toJson(contentList));
      out.print(JsonUtil.loadTrueResult(data));