From bb0a8ba2fba9f22d66a3db7f194493f7f0a96ae0 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 09 十月 2023 10:20:36 +0800
Subject: [PATCH] 111

---
 server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java |  398 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 394 insertions(+), 4 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index 1ec5fd0..9ad6314 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -4,21 +4,54 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.core.constants.Constants;
+import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.Constants;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.ID;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.GoodsorderMapper;
+import com.doumee.core.wx.WxMiniConfig;
+import com.doumee.dao.business.*;
+import com.doumee.dao.business.MemberRidesMapper;
 import com.doumee.dao.business.join.GoodsorderJoinMapper;
 import com.doumee.dao.business.model.Bikes;
 import com.doumee.dao.business.model.Goodsorder;
 import com.doumee.dao.business.model.Member;
+import com.doumee.dao.business.model.MemberRides;
+import com.doumee.dao.business.web.response.*;
+import com.doumee.dao.business.join.MemberRidesJoinMapper;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.GoodsorderService;
+import com.doumee.service.business.PricingRuleService;
+import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse;
+import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
+import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
+import com.github.binarywang.wxpay.exception.WxPayException;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
 
 @Service
 public class GoodsorderServiceImpl implements GoodsorderService {
@@ -30,6 +63,26 @@
 
     @Autowired
     GoodsorderJoinMapper goodsorderJoinMapper;
+
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
+
+    @Autowired
+    private MemberRidesMapper memberRidesMapper;
+
+    @Autowired
+    private MemberMapper memberMapper;
+    @Autowired
+    private BaseParamMapper baseParamMapper;
+
+    @Autowired
+    private RefundMapper refundMapper;
+
+    @Autowired
+    private MemberRidesJoinMapper memberRidesJoinMapper;
+
+    @Autowired
+    PricingRuleService pricingRuleService;
 
     @Override
     public String create(Goodsorder goodsorder) {
@@ -94,7 +147,6 @@
         MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
 
-
         if (pageWrap.getModel().getCode() != null) {
             queryWrapper.like(Goodsorder::getCode, pageWrap.getModel().getCode());
         }
@@ -102,7 +154,6 @@
         if (pageWrap.getModel().getStatus() != null) {
             queryWrapper.eq(Goodsorder::getStatus, pageWrap.getModel().getStatus());
         }
-
 
         if (pageWrap.getModel().getOnlineOrderid() != null) {
             queryWrapper.eq(Goodsorder::getOnlineOrderid, pageWrap.getModel().getOnlineOrderid());
@@ -118,7 +169,6 @@
                     .selectAs(Member::getName,Goodsorder::getMemberName)
                     .leftJoin(Member.class,Member::getId,Goodsorder::getMemberId)
                     .like(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()),Member::getName,pageWrap.getModel().getMemberName());
-
         return PageData.from(goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class,queryWrapper));
     }
 
@@ -127,4 +177,344 @@
         QueryWrapper<Goodsorder> wrapper = new QueryWrapper<>(goodsorder);
         return goodsorderMapper.selectCount(wrapper);
     }
+
+
+
+    @Override
+    public HomeResponse getHome(String memberId){
+        HomeResponse homeResponse = new HomeResponse();
+        homeResponse.setParkName(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.PROJECT_NAME).getCode());
+        homeResponse.setServerPhone(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.SERVER_PHONE).getCode());
+        homeResponse.setLeaseNoticeUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE_URL).getCode());
+        homeResponse.setLeaseNotice(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.LEASE_NOTICE).getCode());
+        homeResponse.setDeposit(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()));
+        homeResponse.setTips(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.TIPS).getCode());
+        homeResponse.setLeaseVideoUrl(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_TIPS_VIDEO).getCode());
+        homeResponse.setPricingRules(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRICING_RULE).getCode());
+        //鏌ヨ鏄惁瀛樺湪 宸叉敮浠樼殑 鎶奸噾璁㈠崟
+        Integer status = this.goodsorderMapper.selectCount(new QueryWrapper<Goodsorder>()
+                .eq("member_id",memberId)
+                .eq("status",Constants.goodsorderStatus.pay));
+        homeResponse.setDepositStatus(status);
+        homeResponse.setRideStatus(-1);
+        if(homeResponse.getDepositStatus()==Constants.goodsorderStatus.pay) {
+            //鏌ヨ褰撳墠楠戣鐘舵��
+            MemberRides memberRides = memberRidesMapper.selectOne(new QueryWrapper<MemberRides>().eq("member_id", memberId)
+                    .orderByDesc(" create_date ")
+                    .last(" limit 1  "));
+            if (!Objects.isNull(memberRides)) {
+                homeResponse.setRideStatus(memberRides.getStatus());
+                MemberRidesResponse memberRidesResponse = new MemberRidesResponse();
+                BaseParam baseParam = baseParamMapper.selectById(memberRides.getParamId());
+                if(!Objects.isNull(baseParam)){
+                    memberRidesResponse.setBikeType(baseParam.getName());
+                }
+                memberRidesResponse.setRideStartTime(memberRides.getRentDate());
+                memberRidesResponse.setRideEndTime(memberRides.getBackDate());
+                memberRidesResponse.setRideTime(DateUtil.betweenMin(memberRidesResponse.getRideStartTime(),memberRidesResponse.getRideEndTime()));
+                memberRidesResponse.setBikeCode(memberRides.getBikeCode());
+                memberRidesResponse.setBasePrice(memberRides.getBasePrice());
+                memberRidesResponse.setBaseTime(memberRides.getBaseTime());
+                memberRidesResponse.setUnitTime(memberRidesResponse.getUnitTime());
+                memberRidesResponse.setUnitPrice(memberRidesResponse.getUnitPrice());
+                homeResponse.setMemberRidesResponse(memberRidesResponse);
+            }
+        }
+        return homeResponse;
+    }
+    @Autowired
+    private TransactionsMapper transactionsMapper;
+
+
+    @Override
+    public GoodsorderDetailDTO getGoodsorderDetailDTO(String id) {
+
+        List<PayOrderDTO> payOrderDTOList = new ArrayList<>();
+        Goodsorder goodsorder = goodsorderMapper.selectById(id);
+        QueryWrapper<Refund> refundQuery = new QueryWrapper<>();
+        refundQuery.lambda()
+                    .eq(Refund::getObjId,id);
+        List<Refund> refunds = refundMapper.selectList(refundQuery);
+
+        PayOrderDTO payOrderDTO = new PayOrderDTO();
+        payOrderDTO.setOrderCode(goodsorder.getCode());
+        payOrderDTO.setPayWay(goodsorder.getPayWay());
+        payOrderDTO.setMoney(goodsorder.getMoney());
+        payOrderDTO.setPayDate(goodsorder.getPayDate());
+        payOrderDTOList.add(0,payOrderDTO);
+        if (!CollectionUtils.isEmpty(refunds)){
+            refunds.forEach(s->{
+                PayOrderDTO refundOrderDTO = new PayOrderDTO();
+                refundOrderDTO.setOrderCode(s.getCode());
+                refundOrderDTO.setPayWay(s.getPayWay());
+                refundOrderDTO.setRefundType(s.getType());
+                refundOrderDTO.setMoney(s.getMoney());
+                refundOrderDTO.setPayDate(s.getDoneDate());
+                payOrderDTOList.add(refundOrderDTO);
+            });
+        }
+        MPJLambdaWrapper<MemberRides> wrapper = new MPJLambdaWrapper<>();
+        wrapper.leftJoin(BaseParam.class,BaseParam::getId,MemberRides::getParamId)
+                .eq(BaseParam::getType, Constants.THREE);
+        List<MemberRides> memberRides = memberRidesJoinMapper.selectJoinList(MemberRides.class, wrapper);
+        GoodsorderDetailDTO goodsorderDetailDTO = new GoodsorderDetailDTO();
+        goodsorderDetailDTO.setPayOrderDTOList(payOrderDTOList);
+        goodsorderDetailDTO.setMemberRidesList(memberRides);
+        return goodsorderDetailDTO;
+    }
+
+    @Override
+    public void closerGoodsorder(String id) {
+
+
+        LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        Goodsorder goodsorder = goodsorderMapper.selectById(id);
+        QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .eq(MemberRides::getOrdreId,id);
+        List<MemberRides> memberRides = memberRidesMapper.selectList(wrapper);
+        if (!CollectionUtils.isEmpty(memberRides)){
+            boolean exitUnBack = memberRides.stream().anyMatch(s -> !Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey().equals(s.getStatus()));
+            if (exitUnBack){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璁㈠崟鏈夋湭瀹屾垚鐨勯獞琛岋紝鏃犳硶寮哄埗缁撶畻");
+            }
+
+            PricingRuleDTO pricingRule = pricingRuleService.getPricingRule(memberRides);
+            RidesDetailResponse ridesDetailResponse = new RidesDetailResponse();
+            List<MemberRidesResponse> collect = memberRides.stream().map(s -> {
+                MemberRidesResponse memberRidesResponse = new MemberRidesResponse();
+                memberRidesResponse.setRideStartTime(s.getRentDate());
+                memberRidesResponse.setRideEndTime(s.getBackDate());
+                memberRidesResponse.setRideTime(DateUtil.betweenMin(memberRidesResponse.getRideStartTime(), memberRidesResponse.getRideEndTime()));
+                memberRidesResponse.setDuration(s.getDuration());
+                memberRidesResponse.setBikeType(s.getParamName());
+                memberRidesResponse.setBikeCode(s.getBikeCode());
+                memberRidesResponse.setBasePrice(s.getBasePrice());
+                memberRidesResponse.setBaseTime(s.getBaseTime());
+                memberRidesResponse.setUnitPrice(s.getUnitTime());
+                memberRidesResponse.setUnitTime(s.getUnitTime());
+                return memberRidesResponse;
+            }).collect(Collectors.toList());
+
+            Integer durationSum = memberRides.stream().filter(s -> s.getDuration() > 0).mapToInt(s -> s.getDuration()).sum();
+            if (durationSum > pricingRule.getMemberRides().getBaseTime()){
+                BigDecimal basePrice = pricingRule.getMemberRides().getBasePrice();
+                BigDecimal multiply = pricingRule.getMemberRides().getUnitPrice().multiply(new BigDecimal((durationSum - pricingRule.getMemberRides().getBaseTime())));
+                ridesDetailResponse.setAmount(basePrice.add(multiply));
+            }else {
+                ridesDetailResponse.setAmount(pricingRule.getMemberRides().getBasePrice());
+            }
+            ridesDetailResponse.setBikeType(pricingRule.getBikeType());
+            ridesDetailResponse.setDuration(durationSum);
+            ridesDetailResponse.setMemberRidesResponseList(collect);
+
+
+            Refund refund = new Refund();
+            refund.setCreateDate(new Date());
+            refund.setCreator(principal.getId());
+            refund.setEditDate(new Date());
+            refund.setEditor(principal.getId());
+            refund.setIsdeleted(Constants.ZERO);
+            refund.setInfo("绯荤粺缁撶畻鍚庤鍗曡嚜鍔ㄥ畬缁�");
+//            refund.setCode();
+            refund.setMemberId(goodsorder.getMemberId());
+            refund.setMoney(goodsorder.getMoney().subtract(ridesDetailResponse.getAmount()));
+//            refund.setStatus();
+//            refund.setPreOrderid();
+//            refund.setOnlineOrderid();
+            refund.setPayWay(goodsorder.getPayWay());
+            refund.setDoneDate(new Date());
+            refund.setType(Constants.ONE);
+            refund.setObjId(goodsorder.getId());
+            refund.setReason("纭畾寮哄埗缁撶畻鍚楋紵缁撶畻鍚庤鍗曡嚜鍔ㄥ畬缁�");
+            refundMapper.insert(refund);
+            Goodsorder update = new Goodsorder();
+            update.setId(goodsorder.getId());
+            update.setStatus(Constants.GOODSORDER_STATUS.CLOSE.getKey());
+            update.setCloseMoney(goodsorder.getMoney().subtract(ridesDetailResponse.getAmount()));
+            update.setCloseId(refund.getId());
+            update.setCloseDate(refund.getDoneDate());
+            update.setCloseInfo(refund.getInfo());
+            update.setCloseUserId(principal.getId());
+            update.setCloseType(Constants.ONE);
+            goodsorderMapper.updateById(update);
+        }
+    }
+
+
+    @Override
+    public RidesDetailResponse getRidesDetailResponse(String id) {
+
+        QueryWrapper<MemberRides> wrapper = new QueryWrapper<>();
+        wrapper.lambda()
+                .eq(MemberRides::getOrdreId,id);
+        List<MemberRides> memberRides = memberRidesMapper.selectList(wrapper);
+        if (!CollectionUtils.isEmpty(memberRides)){
+            boolean exitUnBack = memberRides.stream().anyMatch(s -> !Constants.MEMBER_RIDES_STATUS.BACK_CYCLING.getKey().equals(s.getStatus()));
+            if (exitUnBack){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"褰撳墠璁㈠崟鏈夋湭瀹屾垚鐨勯獞琛岋紝鏃犳硶寮哄埗缁撶畻");
+            }
+
+            PricingRuleDTO pricingRule = pricingRuleService.getPricingRule(memberRides);
+            RidesDetailResponse ridesDetailResponse = new RidesDetailResponse();
+            List<MemberRidesResponse> collect = memberRides.stream().map(s -> {
+                MemberRidesResponse memberRidesResponse = new MemberRidesResponse();
+                memberRidesResponse.setRideStartTime(s.getRentDate());
+                memberRidesResponse.setRideEndTime(s.getBackDate());
+                memberRidesResponse.setRideTime(DateUtil.betweenMin(memberRidesResponse.getRideStartTime(), memberRidesResponse.getRideEndTime()));
+                memberRidesResponse.setDuration(s.getDuration());
+                memberRidesResponse.setBikeType(s.getParamName());
+                memberRidesResponse.setBikeCode(s.getBikeCode());
+                memberRidesResponse.setBasePrice(s.getBasePrice());
+                memberRidesResponse.setBaseTime(s.getBaseTime());
+                memberRidesResponse.setUnitPrice(s.getUnitTime());
+                memberRidesResponse.setUnitTime(s.getUnitTime());
+                return memberRidesResponse;
+            }).collect(Collectors.toList());
+
+            Integer durationSum = memberRides.stream().filter(s -> s.getDuration() > 0).mapToInt(s -> s.getDuration()).sum();
+            if (durationSum > pricingRule.getMemberRides().getBaseTime()){
+                BigDecimal basePrice = pricingRule.getMemberRides().getBasePrice();
+                BigDecimal multiply = pricingRule.getMemberRides().getUnitPrice().multiply(new BigDecimal((durationSum - pricingRule.getMemberRides().getBaseTime())));
+                ridesDetailResponse.setAmount(basePrice.add(multiply));
+            }else {
+                ridesDetailResponse.setAmount(pricingRule.getMemberRides().getBasePrice());
+            }
+            ridesDetailResponse.setBikeType(pricingRule.getBikeType());
+            ridesDetailResponse.setDuration(durationSum);
+            ridesDetailResponse.setMemberRidesResponseList(collect);
+            return ridesDetailResponse;
+        }
+
+        return new RidesDetailResponse();
+    }
+
+    @Override
+    public Object createGoodsOrderPay(String memberId){
+        Member member = memberMapper.selectById(memberId);
+        if(Objects.isNull(member)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鐢ㄦ埛瀵硅薄淇℃伅");
+        }
+        Goodsorder qry = new Goodsorder();
+        qry.setStatus(Constants.goodsorderStatus.pay);
+        qry.setMemberId(memberId);
+        qry.setIsdeleted(Constants.ZERO);
+        if(goodsorderMapper.selectCount(new QueryWrapper<>(qry))>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"宸叉敮浠樿繃瀹氶噾锛屾棤娉曢噸澶嶈鎿嶄綔");
+        }
+        Goodsorder goodsorder = new Goodsorder();
+        goodsorder.setId(Constants.getUUID());
+        goodsorder.setCreateDate(new Date());
+        goodsorder.setIsdeleted(Constants.ZERO);
+        goodsorder.setMemberId(memberId);
+        goodsorder.setMoney(new BigDecimal(systemDictDataBiz.queryByCode(Constants.MINI_PROGRAMME,Constants.RENT_DEPOSIT).getCode()));
+        goodsorder.setStatus(Constants.goodsorderStatus.waitPay);
+        goodsorder.setPreOrderid(goodsorder.getId());
+        goodsorder.setPayStatus(Constants.goodsorderPayStatus.waitPay);
+        goodsorder.setPayWay(Constants.ZERO);
+        this.goodsorderMapper.insert(goodsorder);
+        //璋冭捣鏀粯
+        try {
+            Object response = null;
+            WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();
+            request.setBody("鏀粯鎶奸噾");
+            request.setAttach("createGoodsOrder");
+            request.setOutTradeNo(goodsorder.getId());
+//            request.setTotalFee(BaseWxPayRequest.yuanToFen(goodsorder.getMoney().toString()));
+            request.setTotalFee(1);
+            request.setSpbillCreateIp(this.getIpAddr());
+            request.setTimeStart(DateUtil.DateToString(new Date(), "yyyyMMddHHmmss"));
+            request.setOpenid(member.getOpenid());
+            response = WxMiniConfig.wxPayService.createOrder(request);
+            return response;
+        } catch (WxPayException e) {
+            e.printStackTrace();
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),e.getMessage());
+        }
+    }
+
+    @Override
+    public String payNotify(String preOrderId,String paymentNo){
+        Goodsorder goodsorder = this.goodsorderMapper.selectById(preOrderId);
+        if(goodsorder.getStatus()==Constants.goodsorderStatus.pay){
+            return WxPayNotifyResponse.success("澶勭悊鎴愬姛!");
+        }
+        goodsorder.setOnlineOrderid(paymentNo);
+        goodsorder.setPayStatus(Constants.goodsorderPayStatus.pay);
+        goodsorder.setStatus(Constants.goodsorderStatus.pay);
+        goodsorder.setPayDate(new Date());
+        goodsorder.setEditDate(new Date());
+        goodsorderMapper.updateById(goodsorder);
+        //瀛樺偍浜ゆ槗娴佹按琛�
+        Transactions transactions = new Transactions();
+        transactions.setMemberId(goodsorder.getMemberId());
+        transactions.setCreateDate(new Date());
+        transactions.setIsdeleted(Constants.ZERO);
+        transactions.setOrderId(goodsorder.getId());
+        transactions.setMoney(goodsorder.getMoney());
+        transactions.setType(Constants.transactionsType.deposit);
+        transactions.setPreOrderid(goodsorder.getPreOrderid());
+        transactions.setOnlineOrderid(goodsorder.getOnlineOrderid());
+        transactions.setDoneDate(new Date());
+        transactions.setTitle("鏀粯");
+        transactions.setContent("鎶奸噾鏀粯");
+        transactions.setBalance(goodsorder.getMoney());
+        transactions.setObjId(goodsorder.getId());
+        transactions.setObjType(Constants.ZERO);
+        transactionsMapper.insert(transactions);
+        return WxPayNotifyResponse.success("澶勭悊鎴愬姛!");
+    }
+
+
+
+    /**
+     * 寰楀埌request瀵硅薄
+     *
+     * @return
+     */
+    public HttpServletRequest getRequest() {
+        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+        return request;
+    }
+
+    public String getIpAddr() {
+        HttpServletRequest request = this.getRequest();
+        String ipAddress = null;
+        try {
+            ipAddress = request.getHeader("x-forwarded-for");
+            if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                ipAddress = request.getHeader("Proxy-Client-IP");
+            }
+            if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                ipAddress = request.getHeader("WL-Proxy-Client-IP");
+            }
+            if (ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
+                ipAddress = request.getRemoteAddr();
+                if (ipAddress.equals("127.0.0.1")) {
+                    // 鏍规嵁缃戝崱鍙栨湰鏈洪厤缃殑IP
+                    InetAddress inet = null;
+                    try {
+                        inet = InetAddress.getLocalHost();
+                    } catch (UnknownHostException e) {
+                        e.printStackTrace();
+                    }
+                    ipAddress = inet.getHostAddress();
+                }
+            }
+            // 瀵逛簬閫氳繃澶氫釜浠g悊鐨勬儏鍐碉紝绗竴涓狪P涓哄鎴风鐪熷疄IP,澶氫釜IP鎸夌収','鍒嗗壊
+            if (ipAddress != null && ipAddress.length() > 15) { // "***.***.***.***".length()
+                // = 15
+                if (ipAddress.indexOf(",") > 0) {
+                    ipAddress = ipAddress.substring(0, ipAddress.indexOf(","));
+                }
+            }
+        } catch (Exception e) {
+            ipAddress = "47.111.178.164";
+        }
+        // ipAddress = this.getRequest().getRemoteAddr();
+
+        return ipAddress;
+    }
+
+
 }

--
Gitblit v1.9.3