0
点赞
收藏
分享

微信扫一扫

java版Spring Cloud + Spring Boot + Mybatis + Uniapp实现电子招标采购平台


电子招标采购平台源码

package com.honghu.cloud.controller;

@源码地址来源:http://minglisoft.cn/hhcloud
@获取源码+wx: haiwabbc2

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.honghu.cloud.bean.DaDaAppConfig;
import com.honghu.cloud.bean.DaDaService;
import com.honghu.cloud.bean.DadaApiResponse;
import com.honghu.cloud.bean.ShopAddModel;
import com.honghu.cloud.bean.Store;
import com.honghu.cloud.code.ResponseCode;
import com.honghu.cloud.dto.AreaDto;
import com.honghu.cloud.dto.CouponInfoDto;
import com.honghu.cloud.dto.EvaluateDto;
import com.honghu.cloud.dto.ExpressCompanyCommonDto;
import com.honghu.cloud.dto.ExpressCompanyDto;
import com.honghu.cloud.dto.ExpressInfoDto;
import com.honghu.cloud.dto.GoodsDto;
import com.honghu.cloud.dto.MessageDto;
import com.honghu.cloud.dto.OrderFormDto;
import com.honghu.cloud.dto.OrderFormLogDto;
import com.honghu.cloud.dto.RefundApplyFormDto;
import com.honghu.cloud.dto.ReturnGoodsLogDto;
import com.honghu.cloud.dto.ShipAddressDto;
import com.honghu.cloud.dto.SysConfigDto;
import com.honghu.cloud.dto.TransInfoDto;
import com.honghu.cloud.dto.UserDto;
import com.honghu.cloud.feign.AreaFeignClient;
import com.honghu.cloud.feign.CouponInfoFeignClient;
import com.honghu.cloud.feign.EvaluateFeignClient;
import com.honghu.cloud.feign.ExpressCompanyCommonFeignClient;
import com.honghu.cloud.feign.ExpressCompanyFeignClient;
import com.honghu.cloud.feign.ExpressInfoFeignClient;
import com.honghu.cloud.feign.GoodsFeignClient;
import com.honghu.cloud.feign.MessageFeignClient;
import com.honghu.cloud.feign.ModularClassFeignClient;
import com.honghu.cloud.feign.MsgToolsFeignClient;
import com.honghu.cloud.feign.OrderFormFeignClient;
import com.honghu.cloud.feign.OrderFormLogFeignClient;
import com.honghu.cloud.feign.OrderFormToolsFeignClient;
import com.honghu.cloud.feign.RefundApplyFormFeignClient;
import com.honghu.cloud.feign.ReturnGoodsLogFeignClient;
import com.honghu.cloud.feign.ShipAddressFeignClient;
import com.honghu.cloud.feign.ShipToolsFeignClient;
import com.honghu.cloud.feign.SysConfigFeignClient;
import com.honghu.cloud.feign.UserFeignClient;
import com.honghu.cloud.service.IStoreService;
import com.honghu.cloud.tools.DadaRequestClient;
import com.honghu.cloud.tools.JSONUtil;
import com.honghu.cloud.tools.QueryTools;
import com.honghu.cloud.tools.SecurityUserHolder;
import com.honghu.cloud.utils.CommUtil;
import com.honghu.cloud.utils.StringUtils;
import com.honghu.cloud.utils.tools.Md5Encrypt;

import lombok.extern.slf4j.Slf4j;
import net.sf.json.JSONObject;

@CrossOrigin(origins = "*", maxAge = 3600)
@Slf4j
@RestController
@RequestMapping(value = "/applet/storeOrder")
public class AppletStoreOrderController {

private final Logger logger = LoggerFactory.getLogger(AppletStoreOrderController.class);

@Autowired
private IStoreService storeService;

@Autowired
private OrderFormFeignClient orderFormFeignClient;

@Autowired
private UserFeignClient userFeignClient;

@Autowired
private GoodsFeignClient goodsFeignClient;

@Autowired
private QueryTools queryTools;

@Autowired
private RefundApplyFormFeignClient refundapplyformfeignclient;

@Autowired
private MessageFeignClient messagefeignclient;

@Autowired
private ReturnGoodsLogFeignClient returnGoodsLogFeignClient;

@Autowired
private ShipToolsFeignClient shipToolsFeignClient;

@Autowired
private OrderFormToolsFeignClient orderFormToolsFeignClient;

@Autowired
private OrderFormLogFeignClient orderFormLogFeignClient;

@Autowired
private MsgToolsFeignClient msgToolsFeignClient;

@Autowired
private ExpressCompanyCommonFeignClient companyCommonFeignClient;

@Autowired
private ShipAddressFeignClient shipAddressFeignClient;

@Autowired
private SysConfigFeignClient sysConfigFeignClient;

@Autowired
private ExpressInfoFeignClient expressInfoFeignClient;

@Autowired
private EvaluateFeignClient evaluateFeignClient;

@Autowired
private ExpressCompanyFeignClient expressCompanyFeignClient;

@Autowired
private ExpressCompanyCommonFeignClient expressCompanyCommonFeignClient;

@Autowired
private AreaFeignClient areaFeignClient;

@Autowired
private ModularClassFeignClient modularClassFeignClient;
@Autowired
private CouponInfoFeignClient couponInfoFeignClient;


/**
* 卖家订单列表
* @param request
* @param response
* @param currentPage
* @param order_status
* @param order_id
* @param beginTime
* @param endTime
* @param buyer_userName
* @return
*/
@RequestMapping( value = { "/order" } , method = RequestMethod.POST)
public Map<String,Object> order(HttpServletRequest request,
@RequestBody JSONObject json) {

String currentPage = json.optString("currentPage");
String order_status = json.optString("order_status");
String order_id = json.optString("order_id");
/*String beginTime = json.optString("beginTime");
String endTime = json.optString("endTime");*/
String order_id_userName = json.optString("order_id_userName");

Map<String,Object> maps= this.queryTools.getParams(currentPage,"addTime", "desc");

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store != null){
maps.put("store_id", store.getId());
}else{
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}

/* maps.put("order_cat_no", 2);
*/ Map<String, Object> map = Maps.newHashMap();

if (!CommUtil.null2String(order_status).equals("")) {
if (order_status.equals("order_submit")) {//代付款
maps.put("order_status1", Integer.valueOf(10));
maps.put("order_status2", Integer.valueOf(16));
}
if (order_status.equals("order_pay")) { //代发货
maps.put("order_status1", Integer.valueOf(20));
maps.put("order_status2", Integer.valueOf(14));
}
if (order_status.equals("order_shipping")) {//待收货 已发货
//maps.put("order_status", Integer.valueOf(30));
maps.put("order_status_0", Integer.valueOf(30));
maps.put("order_status_1", Integer.valueOf(31));
maps.put("order_status_2", Integer.valueOf(32));

}
if (order_status.equals("order_evaluate")) {// 已收货 待评价
maps.put("order_status", Integer.valueOf(40));
}
if (order_status.equals("order_finish")) { //评论完
maps.put("order_status", Integer.valueOf(50));
}
if (order_status.equals("order_cancel")) {//订单取消
maps.put("order_status", Integer.valueOf(0));
}
if (order_status.equals("order_refund")) {//退款中
maps.put("order_status", Integer.valueOf(21));
}
}
if (!CommUtil.null2String(order_id).equals("")) {
maps.put("order_id_like", order_id);
}
/*if (!CommUtil.null2String(beginTime).equals("")) {
maps.put("add_Time_more_than_equal", CommUtil.formatDate(beginTime));
map.put("beginTime", beginTime);
}
if (!CommUtil.null2String(endTime).equals("")) {
String ends = endTime + " 23:59:59";
maps.put("add_Time_less_than_equal", CommUtil.formatDate(ends,"yyyy-MM-dd hh:mm:ss"));
map.put("endTime", endTime);
}*/
if (!CommUtil.null2String(order_id_userName).equals("")) {
maps.put("order_id_userName", order_id_userName);
}

Map<String, Object> list = this.orderFormFeignClient.list(maps);
map.putAll(list);
/*map.put("list", list);*/
map.put("order_id", order_id);
map.put("order_status", order_status == null ? "all" : order_status);
return ResponseCode.buildSuccessMap(map);
}

/**
* 卖家订单
* @param request
* @param response
* @param currentPage
* @param order_status
* @param order_id
* @param beginTime
* @param endTime
* @param buyer_userName
* @return
*/
@RequestMapping( value = { "/orderHome" } , method = RequestMethod.POST)
public Map<String,Object> orderHome(HttpServletRequest request) {

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
Map<String, Object> map = Maps.newHashMap();
map.put("store_id", store.getId());
//代付款1
map.put("order_status1", Integer.valueOf(10));
map.put("order_status2", Integer.valueOf(16));
Integer order_submit = this.orderFormFeignClient.selectCount(map);
//代发货1
map.clear();
map.put("store_id", store.getId());
map.put("order_status", Integer.valueOf(20));
Integer order_pay = this.orderFormFeignClient.selectCount(map);
//待收货 已发货 1
map.clear();
map.put("store_id", store.getId());
map.put("order_status", Integer.valueOf(30));
Integer order_shipping = this.orderFormFeignClient.selectCount(map);
// 已收货 待评价1
map.clear();
map.put("store_id", store.getId());
map.put("order_status", Integer.valueOf(40));
Integer order_evaluate = this.orderFormFeignClient.selectCount(map);
//退款中1
map.clear();
map.put("store_id", store.getId());
map.put("refundStatus", 1);
Integer order_refund = this.orderFormFeignClient.selectCount(map);
map.put("selectCount_refund", order_refund);
map.clear();
map.put("store_id", user.getStore_id());
int selectCount = this.returnGoodsLogFeignClient.selectCount(map);
if(order_refund == null){
order_refund = 0;
}
order_refund = order_refund + selectCount;
map.clear();
map.put("order_submit", order_submit);
map.put("order_pay", order_pay);
map.put("order_shipping", order_shipping);
map.put("order_evaluate", order_evaluate);
map.put("order_refund", order_refund);
return ResponseCode.buildSuccessMap(map);
}
/**订单详情
* @param request
* @param json
* @return
*/
@RequestMapping(value = { "/order_view" } , method = RequestMethod.POST)
public Map<String , Object> order_view(HttpServletRequest request,
@RequestBody JSONObject json) {
String id = json.optString("id");
OrderFormDto obj = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}

Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(obj
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
if (user.getStore_id().equals(store.getId())) {
Map<String , Object> maps = Maps.newHashMap();
if(obj.getOrder_status() == 10){
SysConfigDto sys = this.sysConfigFeignClient.getSysConfig();
Integer auto_order_cancel = sys.getAuto_order_cancel();
Date addTime = obj.getAddTime();
Date date = new Date();
/*System.out.println(((addTime.getTime() - date.getTime()) / (24 * 60 * 60 * 1000))/ 365 + "年");
System.out.println((addTime.getTime() - date.getTime()) / (24 * 60 * 60 * 1000) + "天");
System.out.println((((addTime.getTime() - date.getTime()) / (60 * 60 * 1000)) % 24) + "小时");
System.out.println((((addTime.getTime() - date.getTime()) / 1000) % 60) + "分钟");
System.out.println(((addTime.getTime() - date.getTime()) / (60 * 1000)) % 60 + "秒");*/
maps.put("obj", obj);
maps.put("second", (((addTime.getTime() - date.getTime()) / 1000)) + auto_order_cancel*60*60);

}
maps.put("obj", obj);
return ResponseCode.buildSuccessMap(maps);
} else {
return ResponseCode.buildEnumMap(ResponseCode.FAILURE, null);
}
}
/**
* 卖家取消订单
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value ={ "/order_cancel" } ,method = RequestMethod.POST)
public Map<String , Object> order_cancel(HttpServletRequest request , @RequestBody JSONObject jsonv) {
String id = jsonv.optString("id");

if (SecurityUserHolder.getCurrentUserId(request)==null) {
return ResponseCode.buildCodeMap("1111", "userid为空", null);
}

UserDto seller = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
OrderFormDto obj = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));
if(seller == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (seller.getParent_id()!=null) {
seller = this.userFeignClient.selectByPrimaryKey(seller.getParent_id());
}

//user = user.getParent_id() == null ? user : user.getParent();
if(seller.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
//System.out.println("---------user--getStore_id-------------"+seller
//.getStore_id());
Store store = this.storeService.selectByPrimaryKey(seller
.getStore_id());
//System.out.println("---------user---------------"+seller.getId());
//System.out.println("------------obj-------------"+obj.getId());
//System.out.println("---------seller---------------"+seller.getStore_id());
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
System.out.println("-----------store--------------"+store.getId());
if ((seller.getStore_id() != null)&& (CommUtil.null2String(obj.getStore_id()).equals(seller.getStore_id().toString()))) {
return ResponseCode.buildSuccessMap(obj);
} else {
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}

}
/**
* 卖家取消订单保存
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value ={ "/order_cancel_save" } ,method = RequestMethod.POST)
public Map<String , Object> order_cancel_save(HttpServletRequest request , @RequestBody JSONObject jsonv) {
String id = jsonv.optString("id");
String state_info = jsonv.optString("state_info");
String other_state_info = jsonv.optString("other_state_info");
UserDto seller = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
OrderFormDto obj = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));
if(seller == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (seller.getParent_id()!=null) {
seller = this.userFeignClient.selectByPrimaryKey(seller.getParent_id());
}

//user = user.getParent_id() == null ? user : user.getParent();
if(seller.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(seller
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
Date nowDate = new Date();
if ((seller.getStore_id() != null)&& (CommUtil.null2String(obj.getStore_id()).equals(seller.getStore_id().toString()))) {

obj.setOrder_status(0);
if ((obj.getCoupon_info() != null)
&& (!"".equals(obj.getCoupon_info()))) {
Map m = JSON.parseObject(obj.getCoupon_info());
CouponInfoDto cpInfo = this.couponInfoFeignClient.selectByPrimaryKey(CommUtil
.null2Long(m.get("couponinfo_id")));
if (cpInfo != null) {
if (nowDate.before(cpInfo.getEndDate())) {
cpInfo.setStatus(0);
} else {
cpInfo.setStatus(-1);
}
}
}
orderFormFeignClient.updateById(obj);
OrderFormLogDto ofl = new OrderFormLogDto();
ofl.setAddTime(new Date());
ofl.setLog_info("取消订单");
ofl.setLog_user_id(seller.getId());
ofl.setLog_user_name(seller.getUserName());
ofl.setOf_id(obj.getId());
if (state_info.equals("其他原因")) {
ofl.setState_info(other_state_info);
} else {
ofl.setState_info(state_info);
}
this.orderFormLogFeignClient.saveEntity(ofl);
/* UserDto buyer = this.userFeignClient.selectByPrimaryKey(CommUtil.null2Long(obj
.getUser_id()));
Map<String, Object> map = Maps.newHashMap();
map.put("buyer_id", buyer.getId().toString());
map.put("seller_id", store.getUser_id());
map.put("order_id", obj.getId());
String json = JSON.toJSONString(map);*/
/*if (obj.getOrder_form() == 0) {
try {
this.msgToolsFeignClient.sendEmailCharge(CommUtil.getURL(request),
"email_tobuyer_order_cancel_notify", buyer.getEmail(),
json, null, obj.getStore_id());
this.msgToolsFeignClient.sendSmsCharge(CommUtil.getURL(request),
"sms_tobuyer_order_cancel_notify", buyer.getMobile(),
json, null, obj.getStore_id());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
try {
this.msgToolsFeignClient.sendEmailFree(CommUtil.getURL(request),
"email_tobuyer_order_cancel_notify", buyer.getEmail(),
json, null);
this.msgToolsFeignClient.sendSmsFree(CommUtil.getURL(request),
"sms_tobuyer_order_cancel_notify", buyer.getMobile(),
json, null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}*/
return ResponseCode.buildSuccessMap(null);
} else {
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}

}
/**
* 订单退款申请单
* @param request
* @param response
* @param currentPage
* @param orderBy
* @param orderType
* @param status
* @return
*/
@RequestMapping(value = { "/refund_apply_form" } , method = RequestMethod.POST)
public Map<String,Object> refund_apply_form(HttpServletRequest request,
@RequestBody JSONObject json) {

String currentPage = json.optString("currentPage");
String orderType = json.optString("orderType");
String orderBy = json.optString("orderBy");
//状态 0:待审核 5:审核拒绝 10:审核通过待退款 15:已退款
String refundStatus = json.optString("refundStatus");

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
Map<String,Object> maps= this.queryTools.getParams(currentPage, orderBy, orderType);
if ((refundStatus == null) || (refundStatus.equals(""))) {
maps.put("refundStatus", CommUtil.null2Int(Integer.valueOf(0)));
} else {
maps.put("refundStatus", CommUtil.null2Int(Integer.valueOf(refundStatus)));
}
if(store != null){
maps.put("store_id", store.getId());
}else{
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}


Map<String, Object> data = this.orderFormFeignClient.refundApplyFormList(maps);
data.put("refundStatus", refundStatus);
return ResponseCode.buildSuccessMap(data);
}
/**
* 订单退款申请单详情
* @param request
* @param response
* @param order_id
* @return
*/
@RequestMapping(value = { "/refund_orderform_view" } , method = RequestMethod.POST)
public Map<String,Object> refund_orderform_view(HttpServletRequest request, @RequestBody JSONObject json) {
Map<Object, Object> map = Maps.newHashMap();
map.put("reason","");
if (StringUtils.isBlank(json.optString("order_id"))) {
return ResponseCode.buildReturnMap(ResponseCode.PARAM_ERROR, null);
}
String apply_from_id = json.optString("apply_from_id");
if (StringUtils.isBlank(apply_from_id)) {
return ResponseCode.buildReturnMap(ResponseCode.PARAM_ERROR, null);
}
OrderFormDto obj = this.orderFormFeignClient.selectByPrimaryKey(CommUtil.null2Long(json.optString("order_id")));
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(obj.getStore_id()));
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}

RefundApplyFormDto RefundApplyFormDto = refundapplyformfeignclient.selectByPrimaryKey(CommUtil.null2Long(apply_from_id));
if(RefundApplyFormDto!=null){
map.put("reason",RefundApplyFormDto.getReturn_content()); //退款原因
}

//user = user.getParent_id() == null ? user : user.getParent();
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.REQUEST_FORBIDDEN, null);
}
if(!user.getStore_id().equals(store.getId()) ||store.getStore_status()!=15){ //验证是否是当前商家 , 并且正常营业
return ResponseCode.buildReturnMap(ResponseCode.REQUEST_FORBIDDEN, null);
}


if (obj != null) {
String temp = obj.getSpecial_invoice();
if ((temp != null) && (!"".equals(temp))) {
Map of_va = JSON.parseObject(temp);
map.put("of_va", of_va);
}
}
map.put("obj", obj);
String queryExInfo = this.queryExInfo(obj.getExpress_info(), "express_company_name");
map.put("store", store);
map.put("express_company_name", queryExInfo);
//map.put("express_company_name", this.orderFormTools.queryExInfo(obj.getExpress_info(), "express_company_name"));
ReturnGoodsLogDto returnGoodsLogDto = returnGoodsLogFeignClient.selectByOrderId(obj.getId());

map.put("returnGoodsLogDto", returnGoodsLogDto);
return ResponseCode.buildSuccessMap(map);
}
public String queryExInfo(String json, String key) {
Map<String, Object> map = Maps.newHashMap();
if ((json != null) && (!json.equals(""))) {
map = JSON.parseObject(json);
}
return CommUtil.null2String(map.get(key));
}

/**
* 订单退款申请单审核
* @param request
* @param result
* @param apply_form_id
* @param currentPage
* @return
*/
@RequestMapping({ "/refund_audit" })
public Map<String, Object> refund_audit(HttpServletRequest request, @RequestBody JSONObject json) {

UserDto user = SecurityUserHolder.getCurrentUser(request);
Store store = null ;

if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
RefundApplyFormDto refundApplyForm = this.refundapplyformfeignclient
.selectByPrimaryKey(CommUtil.null2Long(json.optString("apply_from_id")));
//TODO
//Store store = (user.getParent() == null ? user : user.getParent()).getStore();
if ((store != null) && (store.getId().toString().equals(refundApplyForm.getStore_id()))&&refundApplyForm.getOrder_form_id()!=null) {
OrderFormDto orderForm = this.orderFormFeignClient.selectByPrimaryKey(refundApplyForm.getOrder_form_id());
refundApplyForm.setAudit_date(new Date());
refundApplyForm.setAudit_user_name(user.getUserName());
if (StringUtils.isNotBlank(json.optString("result"))) {
refundApplyForm.setStatus(10);
this.refundapplyformfeignclient.updateById(refundApplyForm);
orderForm.setOrder_status(22);
this.orderFormFeignClient.updateById(orderForm);
MessageDto msg = new MessageDto();
String msg_content = "您订单号为:" + orderForm.getOrder_id() + "的订单退款申请已通过,我们会尽快将" + "退款金额打入您的预存款中。";
msg.setAddTime(new Date());
msg.setStatus(0);
msg.setType(0);
msg.setContent(msg_content);
//msg.setFromu(user);
//msg.setToUser(this.userFeignClient.selectByPrimaryKey(CommUtil.null2Long(orderForm.getUser_id())));
msg.setFromUser_id(user.getId());
msg.setToUser_id(CommUtil.null2Long(orderForm.getUser_id()));
this.messagefeignclient.saveEntity(msg);
} else {
refundApplyForm.setStatus(5);
this.refundapplyformfeignclient.updateById(refundApplyForm);
orderForm.setOrder_status(20);
this.orderFormFeignClient.updateById(orderForm);
MessageDto msg = new MessageDto();
String msg_content = "您订单号为:" + orderForm.getOrder_id() + "的订单退款申请未通过。";
msg.setAddTime(new Date());
msg.setStatus(0);
msg.setType(0);
msg.setContent(msg_content);
msg.setFromUser(user);
msg.setToUser_id(CommUtil.null2Long(orderForm.getUser_id()));
this.messagefeignclient.saveEntity(msg);
}
}else {
//店铺不存在, 或者登录用户不为该订单商铺
return ResponseCode.buildReturnMap(ResponseCode.REQUEST_FORBIDDEN, null);
}
return ResponseCode.buildSuccessMap(null);

}

/**
* 退货列表
* @param request
* @param response
* @param currentPage
* @param orderBy
* @param orderType
* @param name
* @param user_name
* @param return_service_id
* @return
*/
@RequestMapping(value = { "/return" } , method = RequestMethod.POST)
public Map<String, Object> seller_return(HttpServletRequest request,@RequestBody JSONObject json) {
String currentPage = json.optString("currentPage");
String orderBy = json.optString("orderBy");
String orderType = json.optString("orderType");
String name = json.optString("name");
String user_name = json.optString("user_name");
String return_service_id = json.optString("return_service_id");
Map<String,Object> maps= this.queryTools.getParams(currentPage, "addTime", "desc");
maps.put("goods_type", 1);

if ((user_name != null) && (!user_name.equals(""))) {
maps.put("user_name", user_name);
}

if ((name != null) && (!name.equals(""))) {
maps.put("goods_name_like", name);
}

if ((return_service_id != null) && (!return_service_id.equals(""))) {
maps.put("return_service_id", return_service_id);
}

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}

//user = user.getParent_id() == null ? user : user.getParent();
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store != null){
maps.put("store_id", store.getId());
}else{
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
maps.put("store_id", user.getStore_id());

Map<String , Object> data = this.returnGoodsLogFeignClient.list(maps);
data.put("name", name);
data.put("user_name", user_name);
data.put("return_service_id", return_service_id);
data.put("store", store);
return ResponseCode.buildSuccessMap(data);
}
/**
* 退货详情数据
* @param request
* @param response
* @param currentPage
* @param id
* @return
*/
@RequestMapping(value = { "/return_check" } , method = RequestMethod.POST)
public Map<String, Object> return_check(HttpServletRequest request,
@RequestBody JSONObject json) {
String id = json.optString("id");
ReturnGoodsLogDto obj = this.returnGoodsLogFeignClient.selectByPrimaryKey(CommUtil
.null2Long(id));
Map<String, Object> map = Maps.newHashMap();
if (obj.getGoods_return_status().equals("7")) {
TransInfoDto transInfo = this.shipToolsFeignClient.query_Ordership_getData(CommUtil.null2String(obj.getId()));
map.put("transInfo", transInfo);
Map<String, Object> mapa = JSON.parseObject(obj
.getReturn_express_info());
//物流名称
map.put("express_company_name",mapa.get("express_company_name"));
}
map.put("obj", obj);
return ResponseCode.buildSuccessMap(map);
}
/**
* 退货订单 审核or拒绝
* @param request
* @param id
* @param goods_return_status
* @param self_address
*/
@RequestMapping( value = { "/return_check_save" } , method = RequestMethod.POST)
public Map<String , Object> return_check_saveEntity(HttpServletRequest request,@RequestBody JSONObject jsonv) {
String id = jsonv.optString("id");
/*String currentPage = jsonv.optString("currentPage");*/
/*String cmd = jsonv.optString("cmd");*/
// 退货商品状态 -2为超过退货时间未能输入退货物流 -1为申请被拒绝 1为可以退货 5为退货申请中 6为审核通过可进行退货 7为退货中 10为退货完成,等待退款,11为平台退款完成
String goods_return_status = jsonv.optString("goods_return_status");
// 收货时向买家发送的收货地址,买家通过此将货物发送给卖家
String self_address = jsonv.optString("self_address");
UserDto seller = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
// UserDto seller = this.userFeignClient.selectByPrimaryKey(445L);
if(seller == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (seller.getParent_id()!=null) {
seller = this.userFeignClient.selectByPrimaryKey(seller.getParent_id());
}

//user = user.getParent_id() == null ? user : user.getParent();
if(seller.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(seller
.getStore_id()));

// Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(62));

if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
ReturnGoodsLogDto obj = this.returnGoodsLogFeignClient.selectByPrimaryKey(Long.valueOf(Long.parseLong(id)));
String message = "审核为未通过";
String code = "10001";
if ((seller.getStore_id() != null)&& (CommUtil.null2String(obj.getStore_id()).equals(seller.getStore_id().toString()))) {
obj.setGoods_return_status(goods_return_status);
obj.setSelf_address(self_address);
obj.setRefund_time(new Date()); //审核时间
this.returnGoodsLogFeignClient.updateById(obj);
UserDto user = this.userFeignClient.selectByPrimaryKey(obj.getUser_id());
String msg_content =null;

if (goods_return_status.equals("6")) {
message = "审核通过";
code = "10000";
msg_content = "退货申请审核通过,请在'退货/退款'-'查看返修/退换记录'中提交退货物流信息。";

} else {
/* OrderFormDto of = this.orderFormFeignClient.selectByPrimaryKey(Long.valueOf(obj.getReturn_order_id()));
of.setOrder_status(18); //申请未通过, 用户取消退款确认收货/人工仲裁
this.orderFormFeignClient.updateById(of);*/
message = "提交成功";
code = "10000";
msg_content = "订单号:" + obj.getReturn_service_id()
+ "退货申请审核未通过,请在'退货/退款'-'查看返修/退换记录'中提交退货物流信息。";
}

MessageDto msg = new MessageDto();
msg.setAddTime(new Date());
msg.setStatus(0);
msg.setType(0);
msg.setContent(msg_content);
msg.setFromUser(SecurityUserHolder.getCurrentUser(request));
msg.setToUser(user);
this.messagefeignclient.saveEntity(msg);
} else {
message = "信息有误";
code = "10001";

}
return ResponseCode.buildCodeMap(code,message, null);
}

/**
* 确认退货收货
* @param request
* @param response
* @param id
* @return
*/
@RequestMapping( value = { "/return_confirm" } , method = RequestMethod.POST)
public Map<String , Object> return_confirm(HttpServletRequest request , @RequestBody JSONObject jsonv) {
String id = jsonv.optString("id");
UserDto seller = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
ReturnGoodsLogDto obj = this.returnGoodsLogFeignClient.selectByPrimaryKey(Long.valueOf(Long.parseLong(id)));
if(seller == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (seller.getParent_id()!=null) {
seller = this.userFeignClient.selectByPrimaryKey(seller.getParent_id());
}

//user = user.getParent_id() == null ? user : user.getParent();
if(seller.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
// Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(seller
// .getStore_id()));
Store store = this.storeService.selectByPrimaryKey(seller.getStore_id());
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
if ((seller.getStore_id() != null)&& (CommUtil.null2String(obj.getStore_id()).equals(seller.getStore_id().toString()))) {
obj.setGoods_return_status("10");
this.returnGoodsLogFeignClient.updateById(obj);

}
return ResponseCode.buildSuccessMap(null);
}
/**
* 卖家调整订单费用
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value = { "/order_fee" } , method = RequestMethod.POST)
public Map<String , Object> order_fee(HttpServletRequest request,
@RequestBody JSONObject json) {
String id = json.optString("id");
OrderFormDto obj = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}

Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(obj
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
//user = user.getParent_id() == null ? user : user.getParent();
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
if (user.getStore_id().equals(store.getId())) {
return ResponseCode.buildSuccessMap(obj);
} else {
return ResponseCode.buildEnumMap(ResponseCode.FAILURE, null);
}
}

/**
* 卖家调整订单费用保存
* @param request
* @param response
* @param id
* @param currentPage
* @param goods_amount
* @param ship_price
* @param totalPrice
* @return
* @throws Exception
*/
@RequestMapping( value = { "/order_fee_save" } , method = RequestMethod.POST)
public Map<String, Object> order_fee_saveEntity(HttpServletRequest request,@RequestBody JSONObject jsonv)
{
String id = jsonv.optString("id");
String goods_amount = jsonv.optString("goods_amount"); //商品总价格
String ship_price = jsonv.optString("ship_price"); // 配送价格
String totalPrice = jsonv.optString("totalPrice"); // 订单总价格
OrderFormDto obj = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));
if (CommUtil.null2Double(obj.getCommission_amount()) <= CommUtil
.null2Double(goods_amount)) {
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE,null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE,null);
}
//user = user.getParent_id() == null ? user : user.getParent();
if (user.getStore_id().toString().equals(store.getId().toString())) {
obj.setGoods_amount(BigDecimal.valueOf(CommUtil
.null2Double(goods_amount)));
obj.setShip_price(BigDecimal.valueOf(CommUtil
.null2Double(ship_price)));
obj.setTotalPrice(BigDecimal.valueOf(CommUtil
.null2Double(totalPrice)));
obj.setOperation_price_count(obj.getOperation_price_count() + 1);
this.orderFormFeignClient.updateById(obj);
OrderFormLogDto ofl = new OrderFormLogDto();
ofl.setAddTime(new Date());
ofl.setLog_info("调整订单费用");
ofl.setState_info("调整订单总金额为:" + totalPrice + ",调整运费金额为:"
+ ship_price);
ofl.setLog_user_id(SecurityUserHolder.getCurrentUser(request).getId());
ofl.setLog_user_name(SecurityUserHolder.getCurrentUser(request)
.getUserName());
ofl.setOf_id(obj.getId());
this.orderFormLogFeignClient.saveEntity(ofl);
/* UserDto buyer = this.userFeignClient.selectByPrimaryKey(CommUtil.null2Long(obj
.getUser_id()));
Map<String, Object> map = Maps.newHashMap();
map.put("buyer_id", buyer.getId().toString());
map.put("seller_id", store.getUser_id());
map.put("order_id", obj.getId());
String json = JSON.toJSONString(map);
if (obj.getOrder_form() == 0) {
this.msgToolsFeignClient.sendEmailCharge(CommUtil.getURL(request),
"email_tobuyer_order_update_fee_notify",
buyer.getEmail(), json, null, obj.getStore_id());
this.msgToolsFeignClient.sendSmsCharge(CommUtil.getURL(request),
"sms_tobuyer_order_fee_notify", buyer.getMobile(),
json, null, obj.getStore_id());
} else {
this.msgToolsFeignClient.sendEmailFree(CommUtil.getURL(request),
"email_tobuyer_order_update_fee_notify",
buyer.getEmail(), json, null);
this.msgToolsFeignClient.sendSmsFree(CommUtil.getURL(request),
"sms_tobuyer_order_fee_notify", buyer.getMobile(),
json, null);
}*/
}else{
return ResponseCode.buildReturnMap(ResponseCode.FAILURE,null);
}
}else{
return ResponseCode.buildReturnMap(ResponseCode.FAILURE,null);
}
return ResponseCode.buildSuccessMap(null);
}
/**
* 卖家发货
* @param request
* @param response
* @param id
* @param currentPage
* @param page_status
* @return
*/
@RequestMapping(value = { "/order_shipping" } , method = RequestMethod.POST)
public Map<String, Object> order_shipping(HttpServletRequest request,@RequestBody JSONObject json) {
String id = json.optString("id");
String page_status = json.optString("page_status");
OrderFormDto obj = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(obj
.getStore_id()));

if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store1 = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store1 == null ||store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
//user = user.getParent_id() == null ? user : user.getParent();
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
Map<String, Object> map = Maps.newHashMap();
if (user.getStore_id().equals(store.getId())) {
map.put("obj", obj);

List<GoodsDto> list_goods = queryOfGoods(obj);
List<GoodsDto> deliveryGoods = Lists.newArrayList();
boolean physicalGoods = false;
for (GoodsDto g : list_goods) {
if (g.getGoods_choice_type() == 1) {
deliveryGoods.add(g);
} else {
physicalGoods = true;
}
}
Map<String, Object> params = Maps.newHashMap();
params.put("ecc_type", Integer.valueOf(0));
params.put("ecc_store_id", store.getId());
List<ExpressCompanyCommonDto> eccs = this.companyCommonFeignClient.queryPages(params);

params.clear();
params.put("sa_type", Integer.valueOf(0));
params.put("sa_user_id", user.getId());
params.put("orderBy", "obj.sa_default desc,obj.sa_sequence");
params.put("orderType", "asc");
List<ShipAddressDto> shipAddrs = this.shipAddressFeignClient.queryPages(params);

map.put("eccs", eccs);
map.put("shipAddrs", shipAddrs);
map.put("physicalGoods", Boolean.valueOf(physicalGoods));
map.put("deliveryGoods", deliveryGoods);
map.put("page_status", page_status);
//用改方法查询虚拟商品的数量
/*map.put("queryOfGoodsCount", this.queryOfGoodsCount);*/

} else {
return ResponseCode.buildEnumMap(ResponseCode.PARAM_ERROR, null);
}
return ResponseCode.buildSuccessMap(map);
}
/**
* 根据订单id和商品id查询该商品在该订单中的数量
* @param order_id
* @param goods_id
* @return
*/
public int queryOfGoodsCount(String order_id, String goods_id) {
int count = 0;
OrderFormDto of = this.orderFormFeignClient.selectByPrimaryKey(CommUtil
.null2Long(order_id));
List<Map> map_list = this.orderFormToolsFeignClient.queryGoodsInfo(of.getGoods_info());
for (Map map : map_list) {
if (CommUtil.null2String(map.get("goods_id")).equals(goods_id)) {
count = CommUtil.null2Int(map.get("goods_count"));
break;
}
}
if ((count == 0)
&& (!CommUtil.null2String(of.getChild_order_detail())
.equals(""))) { // 主订单无数量信息,继续从子订单中查询
List<Map> maps = this.orderFormToolsFeignClient.queryGoodsInfo(of.getChild_order_detail());
for (Map map : maps) {
OrderFormDto child_order = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(map
.get("order_id")));
map_list.clear();
map_list = this.orderFormToolsFeignClient.queryGoodsInfo(child_order.getGoods_info());
for (Map map1 : map_list) {
if (CommUtil.null2String(map1.get("goods_id")).equals(
goods_id)) {
count = CommUtil.null2Int(map1.get("goods_count"));
break;
}
}
}
}
return count;
}
/**
* 根据订单id查询该订单中所有商品,包括子订单中的商品
* @param main_order
* @return
*/
public List<GoodsDto> queryOfGoods(OrderFormDto main_order) {
List<Map> map_list =this.orderFormToolsFeignClient.queryGoodsInfo(main_order.getGoods_info());
List<GoodsDto> goods_list = Lists.newArrayList();
for (Map map : map_list) {
GoodsDto goods = this.goodsFeignClient.selectByPrimaryKey(CommUtil
.null2Long(map.get("goods_id")));
if(goods != null){
goods_list.add(goods);
}
}
if (!CommUtil.null2String(main_order.getChild_order_detail())
.equals("")) {
List<Map> maps = this.orderFormToolsFeignClient.queryGoodsInfo(main_order.getChild_order_detail());

for (Map<String, Object> map : maps) {
OrderFormDto child_order = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(map
.get("order_id")));
map_list.clear();
map_list =this.orderFormToolsFeignClient.queryGoodsInfo(child_order.getGoods_info());
for (Map map1 : map_list) {
GoodsDto good = this.goodsFeignClient.selectByPrimaryKey(CommUtil
.null2Long(map1.get("goods_id")));
goods_list.add(good);
}
}
}
return goods_list;
}
/**
* 卖家修改物流
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value = { "/order_shipping_code" } , method = RequestMethod.POST)
public Map<String , Object> order_shipping_code(HttpServletRequest request,@RequestBody JSONObject json) {
String id = json.optString("id");
OrderFormDto obj = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(obj
.getStore_id()));
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}

//user = user.getParent_id() == null ? user : user.getParent();
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
Store store1 = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store1 == null || store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
if (user.getStore_id().equals(store.getId())) {
return ResponseCode.buildSuccessMap(obj);
} else {
return ResponseCode.buildEnumMap(ResponseCode.FAILURE, null);
}
}
/**
* 卖家修改物流保存
* @param request
* @param response
* @param id
* @param currentPage
* @param shipCode
* @param state_info
* @return
*/
@RequestMapping(value = { "/order_shipping_code_save" } , method = RequestMethod.POST)
public Map<String , Object> order_shipping_code_saveEntity(HttpServletRequest request,@RequestBody JSONObject json) {
String id = json.optString("id");
String shipCode = json.optString("shipCode");
String state_info = json.optString("state_info");

OrderFormDto obj = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(obj
.getStore_id()));
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store1 = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store1 == null || store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
//user = user.getParent_id() == null ? user : user.getParent();
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
Map<String, Object> map = Maps.newHashMap();
if (user.getStore_id().equals(store.getId())) {
obj.setShipCode(shipCode);
this.orderFormFeignClient.updateById(obj);
OrderFormLogDto ofl = new OrderFormLogDto();
ofl.setAddTime(new Date());
ofl.setLog_info("修改物流信息");
ofl.setState_info(state_info);
ofl.setLog_user_id(SecurityUserHolder.getCurrentUser(request).getId());
ofl.setLog_user_name(SecurityUserHolder.getCurrentUser(request)
.getUserName());
ofl.setOf(obj);
this.orderFormLogFeignClient.saveEntity(ofl);
if (this.sysConfigFeignClient.getSysConfig().getKuaidi_type() == 1) {
JSONObject info = new JSONObject();
Map express_map = JSON.parseObject(obj.getExpress_info());
info.put("company", CommUtil.null2String(express_map
.get("express_company_mark")));
info.put("number", obj.getShipCode());
info.put("from", CommUtil.null2String(obj.getShip_addr()));
info.put("to", obj.getReceiver_area());
info.put("key", this.sysConfigFeignClient.getSysConfig()
.getKuaidi_id2());
JSONObject param_info = new JSONObject();
param_info.put("callbackurl", CommUtil.getURL(request)
+ "/kuaidi_callback?order_id=" + obj.getId()
+ "&orderType=0");
param_info.put("salt",
Md5Encrypt.md5(CommUtil.null2String(obj.getId()))
.substring(0, 16));
info.put("parameters", param_info);
try {
String result = Post(
"http://highapi.kuaidi.com/openapi-receive.html",
info.toString());
Map remap = JSON.parseObject(result);
if ("success".equals(CommUtil.null2String(remap
.get("message")))) {
ExpressInfoDto ei = new ExpressInfoDto();
ei.setAddTime(new Date());
ei.setOrder_id(obj.getId());
ei.setOrder_express_id(obj.getShipCode());
ei.setOrder_type(0);
Map ec_map = JSON.parseObject(CommUtil.null2String(obj
.getExpress_info()));
if (ec_map != null) {
ei.setOrder_express_name(CommUtil
.null2String(ec_map
.get("express_company_name")));
}
this.expressInfoFeignClient.saveEntity(ei);
System.out.println("订阅成功");
} else {
System.out.println("订阅失败");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
return ResponseCode.buildSuccessMap(null);
}
/**
* 快递Post请求
* @param url
* @param param
* @return
*/
@SuppressWarnings("resource")
public static String Post(String url, String param) {

try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost method = new HttpPost(url);
StringEntity entity = new StringEntity(param, "utf-8");// 解决中文乱码问题
entity.setContentEncoding("UTF-8");
entity.setContentType("application/json");
method.setEntity(entity);
HttpResponse result = httpClient.execute(method);
// 请求结束,返回结果
return EntityUtils.toString(result.getEntity());
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
}

}
/**
* 卖家物流详情
* @param request
* @param response
* @param id
* @return
*/
@RequestMapping( value = { "/ship_view" } , method = RequestMethod.POST)
public Map<String , Object> order_ship_view(HttpServletRequest request,@RequestBody JSONObject json) {

String id = json.optString("id");

OrderFormDto obj = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(obj
.getStore_id()));
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store1 = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store1 == null || store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
//user = user.getParent_id() == null ? user : user.getParent();
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
Map<String, Object> map = Maps.newHashMap();
if (user.getStore_id().equals(store.getId())) {
map.put("obj", obj);
TransInfoDto transInfo = this.shipToolsFeignClient
.query_Ordership_getData(CommUtil.null2String(obj.getId()));
map.put("transInfo", transInfo);
return ResponseCode.buildSuccessMap(map);
} else {
return ResponseCode.buildEnumMap(ResponseCode.FAILURE, null);
}
}
/**
* 商品评价列表
* @param request
* @param response
* @param currentPage
* @param orderBy
* @param orderType
* @param status
* @return
*/
@RequestMapping({ "/evaluate_list" })
public Map<String , Object> evaluate_list(HttpServletRequest request,@RequestBody JSONObject json) {

String currentPage = json.getString("currentPage");
String orderBy = json.getString("orderBy");
String orderType = json.getString("orderType");
String status = json.getString("status");
String evaluate_buyer_val = json.getString("evaluate_buyer_val");
Map<String,Object> maps= this.queryTools.getParams(currentPage, orderBy, orderType);

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}

maps.put("evaluate_goods_goods_store_id", store.getId());
maps.put("evaluate_status", 0);
maps.put("evaluate_type", "goods");

if ("yes".equals(status)) {
maps.put("reply_status", 1);
maps.put("status", status);
}

if ("no".equals(status)) {
maps.put("reply_status", 0);
maps.put("status", status);
}
//买家评价,评价类型,1为好评,0为中评,-1为差评
if(StringUtils.isNotBlank(evaluate_buyer_val)){
maps.put("evaluate_buyer_val", evaluate_buyer_val);
}

Map<String, Object> map = this.evaluateFeignClient.list(maps);
map.put("status", status);
return ResponseCode.buildSuccessMap(map);
}
/**
* 商品评价内容查看
* @param request
* @param response
* @param id
* @return
*/
@RequestMapping( value = { "/evaluate_info" } ,method = RequestMethod.POST)
public Map<String , Object> evaluate_info(HttpServletRequest request,@RequestBody JSONObject json) {
String id = json.optString("id");
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
EvaluateDto evl = this.evaluateFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));
//TODO
if (evl != null){
OrderFormDto of = this.orderFormFeignClient.selectByPrimaryKey(evl.getOf_id());
UserDto euser = userFeignClient.selectByPrimaryKey(evl.getEvaluate_user_id());
if((of.getStore_id().equals(user.getStore_id()+""))) {
/*mv.addObject("evl", evl);*/
/*mv.addObject("imageTools", this.imageTools);*/
Map<String , Object> maps = Maps.newHashMap();
maps.put("evl", evl);
maps.put("euser", euser);
return ResponseCode.buildSuccessMap(maps);
} else {
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
}else{
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
}


/**
* 商品评价内容回复
* @param request
* @param response
* @param id
* @param reply
*/
@RequestMapping( value = { "/evaluate_reply_save" } , method = RequestMethod.POST)
public Map<String, Object> evaluate_reply_saveEntity(HttpServletRequest request,@RequestBody JSONObject json) {
String id = json.optString("id");
String reply = json.optString("reply");
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
EvaluateDto evl = this.evaluateFeignClient.selectByPrimaryKey(CommUtil.null2Long(id));
if (evl != null){
OrderFormDto of = this.orderFormFeignClient.selectByPrimaryKey(evl.getOf_id());
if((of.getStore_id().equals(user.getStore_id()+""))) {
/*mv.addObject("evl", evl);*/
/*mv.addObject("imageTools", this.imageTools);*/
evl.setReply(reply);
evl.setReply_status(1);
this.evaluateFeignClient.updateById(evl);
return ResponseCode.buildSuccessMap(evl);
} else {
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
}else{
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}

}

/**
* 常用快递公司
* @param request
* @param response
* @param currentPage
* @param orderBy
* @param orderType
* @return
*/
@RequestMapping(value = { "/ecc_set" } ,method = RequestMethod.POST)
public Map<String , Object> ecc_set(HttpServletRequest request) {
Map<String, Object> params = Maps.newHashMap();

/*List<ExpressCompanyDto> ecs = this.expressCompanyFeignClient.queryPageList(params);*/
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildEnumMap(ResponseCode.TOKEN_EXPIRE, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildEnumMap(ResponseCode.NOTSTORE, null);
}
List<ExpressCompanyCommonDto> eccs = Lists.newArrayList();
if ((store != null) && (user.getUserRole().indexOf("SELLER") >= 0)) {
params.put("ecc_type", Integer.valueOf(0));
params.put("ecc_store_id", store.getId());
eccs = this.expressCompanyCommonFeignClient.queryPages(params);
}
/*mv.addObject("ecs", ecs);
mv.addObject("transportTools", this.transportTools);*/
return ResponseCode.buildSuccessMap(eccs);
}
// public int query_common_ec(HttpServletRequest request,String id) {
// int ret = 0;
// if (!CommUtil.null2String(id).equals("")) {
// Map<String, Object> params = Maps.newHashMap();
// UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
// .getCurrentUser(request).getId());
// if(user == null){
// return ret;
// }
// if (user.getParent_id()!=null) {
// user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
// }
// Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
// .getStore_id()));
// if(store == null){
// return ret;
// }
// List<ExpressCompanyCommonDto> eccs = Lists.newArrayList();
// if ((store != null) && (user.getUserRole().indexOf("SELLER") >= 0)) {
// params.put("ecc_type", Integer.valueOf(0));
// params.put("ecc_store_id", store.getId());
// eccs = this.expressCompanyCommon.queryPageList(params);
//
// for (ExpressCompanyCommonDto ecc : eccs) {
// if (ecc.getEcc_ec_id().equals(CommUtil.null2Long(id))) {
// ret = 1;
// }
// }
// } else {
// params.put("ecc_type", Integer.valueOf(1));
// eccs = this.expressCompanyCommon.queryPageList(params);
//
// for (ExpressCompanyCommonDto ecc : eccs) {
// if (ecc.getEcc_ec_id().equals(CommUtil.null2Long(id))) {
// ret = 1;
// }
// }
// }
// }
// return ret;
// }

/**
* 常用快递公司删除
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value = { "/ecc_delete" } , method = RequestMethod.POST)
public Map<String, Object> ecc_deleteById(HttpServletRequest request,@RequestBody JSONObject json) {

String id = json.optString("id");

ExpressCompanyCommonDto ecc = this.expressCompanyCommonFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.TOKEN_EXPIRE, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
if (ecc.getEcc_store_id().equals(store.getId())) {
this.expressCompanyCommonFeignClient.deleteById(CommUtil.null2Long(id));
return ResponseCode.buildSuccessMap(null);
}else{
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
}
/**
* 所有未选择的常用快递公司
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value = { "/ecc_saveEntityView" } , method = RequestMethod.POST)
public Map<String, Object> ecc_saveEntityView(HttpServletRequest request,@RequestBody JSONObject json) {


UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildEnumMap( ResponseCode.TOKEN_EXPIRE, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildEnumMap(ResponseCode.NOTSTORE,null);
}
Map<String, Object> params = Maps.newHashMap();
params.put("company_status", Integer.valueOf(0));
params.put("orderBy", "company_sequence");
params.put("orderType", "asc");
List<ExpressCompanyDto> excs = this.expressCompanyFeignClient.queryPages(params);
List<ExpressCompanyCommonDto> eccs = Lists.newArrayList();
List<ExpressCompanyDto> execs = Lists.newArrayList();
if ((store != null) && (user.getUserRole().indexOf("SELLER") >= 0)) {
params.clear();
params.put("ecc_type", Integer.valueOf(0));
params.put("ecc_store_id", store.getId());
eccs = this.expressCompanyCommonFeignClient.queryPages(params);

for (ExpressCompanyDto exc : excs) {
int i= 0;
for (ExpressCompanyCommonDto ecc : eccs) {
if (ecc.getEcc_ec_id().equals(CommUtil.null2Long(exc.getId()))) {
i=1;
break;
}
}
if(i == 0){
execs.add(exc);
}

}

}
return ResponseCode.buildSuccessMap(execs);
}

/**
* 常用快递公司添加
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value = { "/ecc_saveEntity" } , method = RequestMethod.POST)
public Map<String, Object> ecc_saveEntity(HttpServletRequest request,@RequestBody JSONObject json) {

String ids = json.optString("ids");
String[] ec_ids= null;
if(ids != null){
ec_ids = ids.split(",");
}
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.TOKEN_EXPIRE, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}

for (String ec_id : ec_ids) {
if (!CommUtil.null2String(ec_id).equals("")) {
ExpressCompanyDto ec = this.expressCompanyFeignClient.selectByPrimaryKey(CommUtil.null2Long(ec_id));
ExpressCompanyCommonDto ecc = new ExpressCompanyCommonDto();
ecc.setAddTime(new Date());
ecc.setEcc_code(ec.getCompany_mark());
ecc.setEcc_ec_id(ec.getId());
ecc.setEcc_name(ec.getCompany_name());
ecc.setEcc_store_id(store.getId());
ecc.setEcc_template(ec.getCompany_template());
ecc.setEcc_template_heigh(ec.getCompany_template_heigh());
ecc.setEcc_template_width(ec.getCompany_template_width());
ecc.setEcc_template_offset(ec.getCompany_template_offset());
ecc.setEcc_type(0);
ecc.setEcc_ec_type(ec.getCompany_type());
this.expressCompanyCommonFeignClient.saveEntity(ecc);
}
}
return ResponseCode.buildSuccessMap(null);
}

/**
* 发货地址列表
* @param request
* @param response
* @param currentPage
* @param orderBy
* @param orderType
* @return
*/
@RequestMapping(value = { "/ship_address" } ,method = RequestMethod.POST)
public Map<String,Object> ship_address(HttpServletRequest request,@RequestBody JSONObject json) {
String currentPage = json.optString("currentPage");
String orderBy = json.optString("orderBy");
String orderType = json.optString("orderType");
Map<String,Object> maps= this.queryTools.getParams(currentPage, orderBy, orderType);
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder.getCurrentUser(request).getId());
List<Long> sa_user_ids = Lists.newArrayList();
sa_user_ids.add(user.getId());
if(user!=null && user.getParent_id()!=null){
UserDto userParent = this.userFeignClient.selectByPrimaryKey(user.getParent().getId());
sa_user_ids.add(userParent.getId());
List<UserDto> childs = userParent.getChilds();
for (UserDto uc : childs) {
sa_user_ids.add(uc.getId());
}
}

if(user!=null && user.getChilds()!=null && user.getChilds().size()>0){
List<UserDto> childs = user.getChilds();
for (UserDto uc : childs) {
sa_user_ids.add(uc.getId());
}
}

maps.put("sa_type", 0);
maps.put("sa_user_ids", sa_user_ids);

Map<String, Object> data = this.shipAddressFeignClient.list(maps);
HashMap<Object, Object> result = new HashMap<>();
result.put("data", data);
Store store = storeService.selectByPrimaryKey(user.getStore_id());
if (store!=null) {
List<Map> ms_list = Lists.newArrayList();
if (store.getStore_service_info() != null) {
ms_list = JSON.parseArray(store.getStore_service_info(),Map.class);
}
result.put("ms_list", ms_list);
if (store.getMc_id()!=null&&store.getMc_id()==22) {
result.put("scenic", 1); //为景点商品
}else{
result.put("scenic", 0); //普通商品
}

}

return ResponseCode.buildSuccessMap(result);
}

/**
* 新增发货地址的地区
* @param request
* @param response
* @param currentPage
* @return
*/
@RequestMapping(value = { "/ship_address_add" } , method = RequestMethod.POST)
public Map<String , Object> ship_address_add(HttpServletRequest request, @RequestBody JSONObject json) {
String parent_id = json.optString("parent_id");
Map<String, Object> maps = Maps.newHashMap();
if(StringUtils.isNotBlank(parent_id)){
maps.put("parent_id", parent_id);
}else{
maps.put("parent_id", -1);
}
/*List<AreaDto> areas = this.areaFeignClient.queryPageList(maps);*/
List<AreaDto> areas = this.areaFeignClient.queryPages(maps);
return ResponseCode.buildSuccessMap(areas);
}

/**
* 编辑发货地址
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value = { "/ship_address_edit" } , method = RequestMethod.POST)
public Map<String , Object> ship_address_edit(HttpServletRequest request,@RequestBody JSONObject json) {

String id = json.optString("id");

ShipAddressDto obj = this.shipAddressFeignClient.selectByPrimaryKey(CommUtil
.null2Long(id));
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildEnumMap(ResponseCode.TOKEN_EXPIRE,null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildEnumMap(ResponseCode.NOTSTORE,null);
}
if ((obj != null) && (obj.getSa_user_id().equals(user.getId()))) {
Map<String, Object> maps = Maps.newHashMap();
AreaDto sa_area = this.areaFeignClient.selectByPrimaryKeyFullParent(obj.getSa_area_id());
obj.setSa_area_name(sa_area.getParent().getParent().getAreaName()+sa_area.getParent().getAreaName()+sa_area.getAreaName());
maps.put("obj", obj);
return ResponseCode.buildSuccessMap(maps);
} else {
return ResponseCode.buildEnumMap(ResponseCode.PARAM_ERROR, null);
}
}
/**
* 保存发货地址
* @param request
* @param response
* @param id
* @param currentPage
*/
@RequestMapping( value = { "/ship_address_save" } ,method = RequestMethod.POST)
public Map<String , Object> ship_address_saveEntity(HttpServletRequest request,@RequestBody ShipAddressDto shipaddress) {

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildEnumMap(ResponseCode.TOKEN_EXPIRE,null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildEnumMap(ResponseCode.NOTSTORE,null);
}
if(shipaddress == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
if (StringUtils.isBlank(shipaddress.getId()+"")) {
shipaddress.setAddTime(new Date());
shipaddress.setDeleteStatus(0);
} else {
ShipAddressDto obj = this.shipAddressFeignClient.selectByPrimaryKey(shipaddress.getId());
shipaddress.setAddTime(obj.getAddTime());
shipaddress.setDeleteStatus(obj.getDeleteStatus());
}
//判断是不是第一个发货地址 如果是则设置成默认的
Map< String , Object> maps = Maps.newHashMap();
List<Long> sa_user_ids = Lists.newArrayList();
sa_user_ids.add(user.getId());
if(user!=null && user.getParent_id()!=null){
UserDto userParent = this.userFeignClient.selectByPrimaryKey(user.getParent().getId());
sa_user_ids.add(userParent.getId());
List<UserDto> childs = userParent.getChilds();
for (UserDto uc : childs) {
sa_user_ids.add(uc.getId());
}
}

if(user!=null && user.getChilds()!=null && user.getChilds().size()>0){
List<UserDto> childs = user.getChilds();
for (UserDto uc : childs) {
sa_user_ids.add(uc.getId());
}
}

maps.put("sa_type", 0);
maps.put("sa_user_ids", sa_user_ids);

List<ShipAddressDto> queryPages = this.shipAddressFeignClient.queryPages(maps);
if(queryPages.size()>0){
shipaddress.setSa_default(0);
}else{
shipaddress.setSa_default(1);
}
shipaddress.setStore_id(store.getId());
shipaddress.setSa_type(0);
shipaddress.setSa_user_id(SecurityUserHolder.getCurrentUser(request).getId());
shipaddress.setSa_user_name(SecurityUserHolder.getCurrentUser(request)
.getUsername());

// 根据行业 决定是否需要创建达达门店
if (modularClassFeignClient.selectByPrimaryKey(store.getMc_id()).isTimely()) { // 若为附近配送,
SysConfigDto sysConfig = sysConfigFeignClient.getSysConfig();
if (sysConfig.getDada_appkey()!=null&& sysConfig.getDada_appsecret()!=null) {
// 1.初始化配置(isOnline表示是否测试环境)
DaDaAppConfig appConfig = new DaDaAppConfig(store.getSource_id() + "", sysConfig.getDada_appkey(), sysConfig.getDada_appsecret());

// 2.初始化model
ShopAddModel shopAddModel = new ShopAddModel();
if (StringUtils.isBlank(shipaddress.getId()+"")) { //不存在走更新
// 根据实际信息来填写门店地址
String order_suffix = CommUtil.formatTime("yyyyMMddHHmmss", new Date());
shopAddModel.setOriginShopId(order_suffix + store.getId()); // 门店编码,可自定义,但必须唯一;若不填写,则系统自动生成
shipaddress.setShop_no(order_suffix + store.getId()); // 保存门店编码
}else{
shopAddModel.setOriginShopId(shipaddress.getShop_no());
}
shopAddModel.setStationName(shipaddress.getSa_name()); // 门店名称
shopAddModel.setBusiness(13); // 业务类型, 13 水果生鲜
AreaDto area = areaFeignClient.selectByPrimaryKeyFullParent(shipaddress.getSa_area_id());
// shipaddress
shopAddModel.setCityName(area.getParent().getAreaName()); // 城市名称
shopAddModel.setAreaName(area.getAreaName()); // 区域名称
shopAddModel.setStationAddress(shipaddress.getSa_addr()); // 详细地址
shopAddModel.setLng(BigDecimal.valueOf(shipaddress.getSa_lng())); // 经纬度
shopAddModel.setLat(BigDecimal.valueOf(shipaddress.getSa_lat()));
shopAddModel.setContactName(shipaddress.getSa_user());
shopAddModel.setPhone(shipaddress.getSa_telephone());

// 3.初始化service (门店新增比较特殊,是一个批量新增接口)
List<ShopAddModel> shopAddList = new ArrayList<ShopAddModel>();
shopAddList.add(shopAddModel);
String dadaUrl = null;
if (StringUtils.isBlank(shipaddress.getId()+"")) {
dadaUrl = "/api/shop/add";
} else {
// 更新门店信息
dadaUrl = "/api/shop/update";
}
DaDaService shopAddService = new DaDaService(dadaUrl, JSONUtil.toJson(shopAddList));

// 4.初始化客户端
DadaRequestClient dadaClient = new DadaRequestClient(shopAddService, appConfig);
DadaApiResponse callRpc = dadaClient.callRpc();
if (callRpc.getCode() != 0) { // 不成功 ,返回错误信息
return ResponseCode.buildCodeMap("100", callRpc.getMsg(), null);
}

}
}

if (StringUtils.isBlank(shipaddress.getId()+"")) {
this.shipAddressFeignClient.saveEntity(shipaddress);
} else {
this.shipAddressFeignClient.updateById(shipaddress);
}
return ResponseCode.buildSuccessMap(null);
}
/**
* 发货地址删除
* @param request
* @param response
* @param mulitId
* @param currentPage
* @return
*/
@RequestMapping(value = { "/ship_address_del" } , method = RequestMethod.POST)
public Map<String , Object> ship_address_del(HttpServletRequest request,@RequestBody JSONObject json) {
String id = json.optString("id");
UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.TOKEN_EXPIRE, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}

if (StringUtils.isNotBlank(id)) {
ShipAddressDto obj = this.shipAddressFeignClient.selectByPrimaryKey(CommUtil
.null2Long(id));
if ((obj != null) && (obj.getSa_type() == 0)
&& (obj.getSa_user_id().equals(user.getId()))) {
this.shipAddressFeignClient.deleteById(obj.getId());
}
}
return ResponseCode.buildSuccessMap(null);
}


/**
* 设置默认发货地址
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/

@RequestMapping( value = { "/ship_address_default" } , method = RequestMethod.POST)
public Map<String , Object> ship_address_default(HttpServletRequest request, @RequestBody JSONObject json) {

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.TOKEN_EXPIRE, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}
Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(user
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}

Map<String, Object> params = Maps.newHashMap();
params.put("sa_default", Integer.valueOf(1));
params.put("sa_user_id", user.getId());

List<ShipAddressDto> sa_list = this.shipAddressFeignClient.queryPages(params);

for (ShipAddressDto sa : sa_list) {
sa.setSa_default(0);
this.shipAddressFeignClient.updateById(sa);
}
String id = json.optString("id");
ShipAddressDto obj = this.shipAddressFeignClient.selectByPrimaryKey(CommUtil
.null2Long(id));
if (obj.getSa_user_id().equals(user.getId())) {
obj.setSa_default(1);
this.shipAddressFeignClient.updateById(obj);
}
return ResponseCode.buildSuccessMap(null);
}
/**
* 设置修改收货地址
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value = { "/upShippingAddress" } , method = RequestMethod.POST)
public Map<String , Object> upShippingAddress(HttpServletRequest request,
@RequestBody JSONObject json) {
String id = json.optString("id");
OrderFormDto obj = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}

Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(obj
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
//user = user.getParent_id() == null ? user : user.getParent();
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
if (user.getStore_id().equals(store.getId())) {
return ResponseCode.buildSuccessMap(obj);
} else {
return ResponseCode.buildEnumMap(ResponseCode.FAILURE, null);
}
}
/**
* 设置修改收货地址保存
* @param request
* @param response
* @param id
* @param currentPage
* @return
*/
@RequestMapping(value = { "/upShippingAddress_save" } , method = RequestMethod.POST)
public Map<String , Object> upShippingAddress_save(HttpServletRequest request,
@RequestBody JSONObject json) {
String id = json.optString("id");
String receiver_name = json.optString("receiver_name");// 收货人姓名,确认订单后,将买家的收货地址所有信息添加到订单中,该订单与买家收货地址没有任何关联
String receiver_area = json.optString("receiver_area");// 收货人地区,例如:福建省厦门市海沧区
String receiver_area_info = json.optString("receiver_area_info");// 收货人详细地址,例如:凌空二街56-1号,4单元2楼1号
//String receiver_zip = json.optString("receiver_zip");// 收货人邮政编码
String receiver_telephone = json.optString("receiver_telephone");// 收货人联系电话
String receiver_mobile = json.optString("receiver_mobile");// 收货人手机号码
String lat = json.optString("lat");// 经纬度
String lng = json.optString("lng");//

OrderFormDto obj = this.orderFormFeignClient
.selectByPrimaryKey(CommUtil.null2Long(id));
if(obj == null){
return ResponseCode.buildReturnMap(ResponseCode.PARAM_ERROR, null);
}

UserDto user = this.userFeignClient.selectByPrimaryKey(SecurityUserHolder
.getCurrentUser(request).getId());
if(user == null){
return ResponseCode.buildReturnMap(ResponseCode.USER_DOES_NOT_EXIST, null);
}
if (user.getParent_id()!=null) {
user = this.userFeignClient.selectByPrimaryKey(user.getParent_id());
}

Store store = this.storeService.selectByPrimaryKey(CommUtil.null2Long(obj
.getStore_id()));
if(store == null){
return ResponseCode.buildReturnMap(ResponseCode.NOTSTORE, null);
}
//user = user.getParent_id() == null ? user : user.getParent();
if(user.getStore_id() == null){
return ResponseCode.buildReturnMap(ResponseCode.FAILURE, null);
}
if (CommUtil.null2String(user.getStore_id()).equals(CommUtil.null2String(store.getId()))) {
obj.setReceiver_Name(receiver_name);
obj.setReceiver_area(receiver_area);
obj.setReceiver_area_info(receiver_area_info);
//obj.setReceiver_zip(receiver_zip);
obj.setReceiver_telephone(receiver_telephone);
obj.setReceiver_mobile(receiver_mobile);
if (StringUtils.isNotBlank(lat)&&StringUtils.isNotBlank(lng)) {
obj.setUser_lat(CommUtil.null2Double(lat));
obj.setUser_lng(CommUtil.null2Double(lng));
}
orderFormFeignClient.updateById(obj);
return ResponseCode.buildSuccessMap(obj);
} else {
return ResponseCode.buildEnumMap(ResponseCode.FAILURE, null);
}
}


}


举报

相关推荐

0 条评论