Files
2026-08-28 12:30:48 +08:00

5186 lines
227 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using AllBase;
using AllBase.Helper;
using AllBase.Model.Result;
using NaiBa.Util.Extension;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using TemuKJD.Extension;
using TemuKJD.BaseForms;
using TemuKJD.ToolForms;
using Work;
using TemuKJD.BLL;
using System.Text.RegularExpressions;
using TemuKJD.PDDForms.ProductSelectForms;
using TemuKJD.WXForms.ShopForms;
using AllBase.Model.Result.PDDResult;
using AllBase.Model.Param.WXParam;
using AllBase.Model.Result.WXResult;
using Newtonsoft.Json;
using NaiBa.Util;
using AllBase.Model.Config;
using TemuKJD.BLL.Wx;
using AllBase.Model.Data;
using NaiBa.CefHelper;
using TemuKJD.Helper;
using NaiBa.CefHelper.Handler;
using CefSharp;
using TemuKJD.WXForms.ProductForms;
using CefSharp.WinForms;
namespace TemuKJD.WXForms.OrderForms
{
public partial class WXOrderListForm : BaseForm
{
int PageBegin = 1;
int PageEnd = 9999;
List<string> lstPrintLog = new List<string>();
bool isOnlineWayBill = false;
public CancellationTokenSource cancellationTokenSource { get; set; } = null;
public bool IsLoadComplate { get; set; } = false;
bool isInit = false;
CheckBox chkSelectAll = null;
ConcurrentList<WxConsignmentOrderInfo> lstWXConsignmentOrderInfo = new ConcurrentList<WxConsignmentOrderInfo>();
public Dictionary<string, bool> dicCheckedShopId = new Dictionary<string, bool>();
public WXOrderListForm()
{
InitializeComponent();
}
private void UserSelectDbProductForm_Load(object sender, EventArgs e)
{
btnClearFilter_Click(null, null);
dgvOrder.AddMergeColumn(new List<string>() { "colOrderStatus" , "colUpdateStatus" });
dgvOrder.AddMergeColumnHeader(new List<string>() { "colOrderStatus" , "colUpdateStatus" }, "订单状态");
this.splitContainer1.Dock = DockStyle.Fill;
pnlEditReceiveInfo.Location = new Point(pnlUpdateNotes.Location.X, pnlUpdateNotes.Location.Y);
pnlBuyUrl.Location = new Point(pnlUpdateNotes.Location.X, pnlUpdateNotes.Location.Y);
dtpFilterBeginTime.Value = DateTime.Now.AddDays(-1);
dtpFilterEndTime.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
pbLoading.Visible = true;
Task.Run(() =>
{
GetRefreshPrintId();
Invoke(new Action(() => {
pbLoading.Visible = false;
}));
});
dicCheckedShopId = NaiBa.Util.Helper.ConfigHelper.LoadConfig<Dictionary<string, bool>>("wx_checked_shop_dic");
if (dicCheckedShopId == null)
dicCheckedShopId = new Dictionary<string, bool>();
chkSelectAll = dgvShop.Columns["colSelect"].AddHeaderCheckBox(HorizontalAlignment.Center, 0, 0, null, null, false);
dgvShop.Columns["colSelect"].HeaderText = "";
chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged;
this.dgvOrder.AddSelectorColumn("colCheck");
dgvOrder.AddImgColumn("colProductSkcPic", "colImgUrl");
if (BaseClass.UserAuthority.Contains("在线寄件") || BaseClass.ParentAuthority.Contains("在线寄件"))
{
this.dgvOrder.Columns["colPrintId"].Visible = true;
this.dgvOrder.Columns["colOnlineWaybillOrderId"].Visible = true;
this.dgvOrder.Columns["colOnlineWaybill"].Visible = true;
this.btnRefreshPrintId.Visible = true;
//this.btnBatchOnlieWaybill.Visible = true;
//this.btnStopBatchOnlieWaybill.Visible = true;
}
else
{
this.dgvOrder.Columns["colPrintId"].Visible = false;
this.dgvOrder.Columns["colOnlineWaybillOrderId"].Visible = false;
this.dgvOrder.Columns["colOnlineWaybill"].Visible = false;
this.btnRefreshPrintId.Visible = false;
this.btnBatchOnlieWaybill.Visible = false;
this.btnStopBatchOnlieWaybill.Visible = false;
}
IsLoadComplate = true;
}
private void chkSelectAll_CheckedChanged(object sender, EventArgs e)
{
if (!chkSelectAll.Checked)
{
foreach (DataGridViewRow row in dgvShop.Rows)
{
row.Cells["colSelect"].Value = false;
}
}
else
{
//var list = GlobalConfig.ShopLoginList.Where(s => s.LoginStatus == "登录成功").Select(ss => ss.ShopId);
foreach (DataGridViewRow row in dgvShop.Rows)
{
//if (list.Any(l => l == row.Cells["colShopId"]?.Value?.ToString()))
if (row.Visible == true)
row.Cells["colSelect"].Value = true;
}
}
foreach (var r in dgvShop.Rows.Cast<DataGridViewRow>())
{
dicCheckedShopId[r.Cells["colShopId"].Value.ParseToString()] = r.Cells["colSelect"].Value.ParseToBool();
}
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId);
}
private void btnRefreshShop_Click(object sender, EventArgs e)
{
pbLoadingShop.Visible = true;
RefreshShopLogin();
pbLoadingShop.Visible = false;
}
private void UserSelectDbProductForm_VisibleChanged(object sender, EventArgs e)
{
if (Visible == true)
{
RefreshShopLogin();
//updateAuthor();
if (!isInit)
{
}
isInit = true;
}
}
private void RefreshShopLogin()
{
// 店铺Id
var selectIds = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList();
// 获取被删除的店铺
List<DataGridViewRow> dgvRowList = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
=> !GlobalConfig.ShopLoginList.Any(s => s.ShopId == row.Cells["colShopId"]?.Value?.ToString())).ToList();
// 更新被删除的店铺列表
foreach (var row in dgvRowList)
{
dgvShop.Rows.Remove(row);
}
// 绑定其他店铺(含新导入的店铺)
foreach (ShopLoginInfo shopEntity in GlobalConfig.ShopLoginList)
{
if (!string.IsNullOrEmpty(shopEntity.ShopId))
BindShop(shopEntity, selectIds);
}
cmbFilterShopNotes.Items.Clear();
foreach (var note in GlobalConfig.ShopLoginList.Select(s => s.Notes).Where(s => !s.IsNullOrEmpty()).Distinct())
{
cmbFilterShopNotes.Items.Add(note);
}
cmbFilterShopGroup.Items.Clear();
foreach (var group in GlobalConfig.ShopLoginList.Select(s => s.GroupName).Where(s => !s.IsNullOrEmpty()).Distinct())
{
cmbFilterShopGroup.Items.Add(group);
}
cmbFilterOrderShopGroup.Items.Clear();
foreach (var group in GlobalConfig.ShopLoginList.Select(s => s.GroupName).Where(s => !s.IsNullOrEmpty()).Distinct())
{
cmbFilterOrderShopGroup.Items.Add(group);
}
}
private void BindShop(ShopLoginInfo shopEntity, List<string> selectShopId = null, string msg = "")
{
if (shopEntity == null)
return;
if (shopEntity.is_point_shop_expire)
return;
if (selectShopId == null)
selectShopId = new List<string>();
bool canUse = shopEntity.LoginStatus == "登录成功";
var rows = dgvShop.Rows.Cast<DataGridViewRow>().Where(p => p.Cells.GetCellValueFromColumnName("colShopId").ParseToString() == shopEntity.ShopId).ToList();
var day = DateTime.Now.ToString("yyyyMMdd").ParseToInt();
if (rows.Count == 0)
{
this.dgvShop.Rows.Add(
dicCheckedShopId.Keys.Contains(shopEntity.ShopId) && dicCheckedShopId[shopEntity.ShopId] == true,
shopEntity.LoginName,
shopEntity.ShopId,
shopEntity.ShopAccount,
shopEntity.Notes,
shopEntity.GroupName,
"选择商品",
canUse ? "在线" : "掉线",
GlobalConfig.lstWxShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shopEntity.ShopId)?.ExpiresTime > DateTime.Now.AddMinutes(5) ? "可用" : "过期",
canUse,
GlobalConfig.dicWxShopUploadInfo.ContainsKey(shopEntity.ShopId) ? GlobalConfig.dicWxShopUploadInfo[shopEntity.ShopId].DicDayUploadCount[day] : 0,
GlobalConfig.dicWxShopUploadInfo.ContainsKey(shopEntity.ShopId) ? GlobalConfig.dicWxShopUploadInfo[shopEntity.ShopId].OnSaleCount : 0,
shopEntity.AddProductRemaining,
msg
);
}
else
{
foreach (var row in rows)
{
row.Cells["colSelect"].Value = !isInit || (selectShopId.Contains(shopEntity.ShopId) && canUse);
row.Cells["colShopLoginName"].Value = shopEntity.LoginName;
row.Cells["colShopName"].Value = shopEntity.ShopAccount;
row.Cells["colShopNotes"].Value = shopEntity.Notes;
row.Cells["colGroup"].Value = shopEntity.GroupName;
row.Cells["colLoginStatus"].Value = canUse ? "在线" : "掉线";
row.Cells["colLoginStatus"].Style.ForeColor = canUse ? Color.Green : Color.Red;
row.Cells["colCanUse"].Value = canUse;
row.Cells["colApi"].Value = GlobalConfig.lstWxShopAuthInfo.FirstOrDefault(sa => sa.ShopId == shopEntity.ShopId)?.ExpiresTime > DateTime.Now.AddMinutes(5) ? "可用" : "过期";
row.Cells["colRemaining"].Value = shopEntity.AddProductRemaining;
row.Cells["colUploadCount"].Value = GlobalConfig.dicWxShopUploadInfo.ContainsKey(shopEntity.ShopId) ? GlobalConfig.dicWxShopUploadInfo[shopEntity.ShopId].DicDayUploadCount[day] : 0;
row.Cells["colOnSaleNum"].Value = GlobalConfig.dicWxShopUploadInfo.ContainsKey(shopEntity.ShopId) ? GlobalConfig.dicWxShopUploadInfo[shopEntity.ShopId].OnSaleCount : 0;
row.Cells["colMessage"].Value = msg;
}
}
displayAuthStatus(shopEntity);
}
void displayAuthStatus(ShopLoginInfo shop)
{
var rows = this.dgvShop.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colShopId"].Value.ParseToString() == shop?.ShopId);
foreach (var row in rows)
{
bool canUse = row.Cells["colLoginStatus"].Value.ParseToString() == "在线";
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Blue : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Blue : Color.Red;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightBlue : Color.OrangeRed;
(row.Cells["colLoginStatus"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkBlue : Color.DarkRed;
canUse = row.Cells["colApi"].Value.ParseToString() == "可用";
(row.Cells["colApi"] as DataGridViewLinkCell).Style.ForeColor = canUse ? Color.Blue : Color.Red;
(row.Cells["colApi"] as DataGridViewLinkCell).LinkColor = canUse ? Color.Blue : Color.Red;
(row.Cells["colApi"] as DataGridViewLinkCell).ActiveLinkColor = canUse ? Color.LightBlue : Color.OrangeRed;
(row.Cells["colApi"] as DataGridViewLinkCell).VisitedLinkColor = canUse ? Color.DarkBlue : Color.DarkRed;
}
}
private void dgvShop_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvShop.Columns[e.ColumnIndex].HeaderText;
string columnName = dgvShop.Columns[e.ColumnIndex].Name;
string shopId = dgvShop.Rows[e.RowIndex].Cells["colShopId"].Value.ParseToString();
string shopAccount = dgvShop.Rows[e.RowIndex].Cells["colShopName"].Value.ToString();
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId.ToString());
var row = dgvShop.Rows[e.RowIndex];
switch (columnName)
{
case "colSelect":
//if (row.Cells["colCanUse"].Value.ParseToBool())
{
row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool();
chkSelectAll.CheckedChanged -= chkSelectAll_CheckedChanged;
if (dgvShop.Rows.Cast<DataGridViewRow>().All(r => r.Cells["colSelect"].Value.ParseToBool()))
chkSelectAll.Checked = true;
else
chkSelectAll.Checked = false;
chkSelectAll.CheckedChanged += chkSelectAll_CheckedChanged;
}
//else
{
//BaseMsgForm.ShowInfo("店铺未登录!");
}
dicCheckedShopId[row.Cells["colShopId"].Value.ParseToString()] = row.Cells["colSelect"].Value.ParseToBool();
NaiBa.Util.Helper.ConfigHelper.SaveConfig("wx_checked_shop_dic", dicCheckedShopId);
break;
case "colLoginStatus":
{
if (WXShopListForm.Instance == null)
WXShopListForm.Instance = new WXShopListForm();
WXShopListForm.Instance.CheckShopLogin(new string[] { shop.LoginName }, false);
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
//shopLoginForm.prodUserSelectForm = this;
if (shop.LoginStatus != "登录成功")
{
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
else
{
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.WindowState = FormWindowState.Maximized;
shopLoginForm.Show();
}
}
break;
case "colApi":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.WindowState = FormWindowState.Maximized;
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/servicemarket/detail?serviceId=3984039898079707139";
shopLoginForm.Show();
}
break;
}
}
private void btnSearch_Click(object sender, EventArgs e)
{
var lstShopId = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList();
if (lstShopId.Count == 0)
{
BaseMsgForm.ShowInfo("请选择店铺!");
return;
}
}
private void dgvOrder_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvOrder.Columns[e.ColumnIndex].HeaderText;
var shopId = dgvOrder.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString();
var spuId = dgvOrder.Rows[e.RowIndex].Cells["colSpuId"].Value.ParseToString();
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
var row = dgvOrder.Rows[e.RowIndex];
var cell = row.Cells[e.ColumnIndex];
var orderId = row.Cells["colOrderId"].Value.ParseToString();
switch (headerText)
{
case "采购地址":
string buyUrl = row.Cells["colBuyUrl"].Value.ParseToString();
if (!string.IsNullOrEmpty(buyUrl))
{
Clipboard.SetText(buyUrl);
statusBar.lblTaskStatus.Text = "店铺 " + shop.ShopAccount + " 订单 " + orderId + " 采购地址复制成功";
}
break;
case "收货信息":
string receiveInfo = row.Cells["colReceiveInfo"].Value.ParseToString();
if (!string.IsNullOrEmpty(receiveInfo))
{
Clipboard.SetText(row.Cells["colReceiveInfo"].Value.ParseToString());
statusBar.lblTaskStatus.Text = "店铺 " + shop.ShopAccount + " 订单 " + orderId + " 收货信息复制成功";
}
break;
}
}
private void dgvSelectProduct_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0)
return;
string headerText = dgvOrder.Columns[e.ColumnIndex].HeaderText;
var shopId = dgvOrder.Rows[e.RowIndex].Cells["colSupplierId"].Value.ParseToString();
var spuId = dgvOrder.Rows[e.RowIndex].Cells["colSpuId"].Value.ParseToString();
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
var row = dgvOrder.Rows[e.RowIndex];
var cell = row.Cells[e.ColumnIndex];
var orderId = row.Cells["colOrderId"].Value.ParseToString();
switch (headerText)
{
case "删除":
break;
case "登录":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
break;
case "进店":
{
WXShopLoginForm shopLoginForm = new WXShopLoginForm(shop);
WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
if (shop.LoginStatus == "登录成功")
{
shopLoginForm.openType = EnumOpenType.manage;
shopLoginForm.WindowState = FormWindowState.Maximized;
//shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/home";
shopLoginForm.InitUrl = "https://store.weixin.qq.com/shop/order/list";
shopLoginForm.Show();
}
else
{
shopLoginForm.openType = EnumOpenType.login;
shopLoginForm.ShowDialog();
RefreshShopLogin();
}
}
break;
case "图片":
{
ShowImgForm imgFrom = new ShowImgForm(dgvOrder.Rows[e.RowIndex].Cells["colImgUrl"].Value.ParseToString());
imgFrom.ShowDialog();
break;
}
case "礼":
case "优化":
{
WXOrderListOptimizeForm form = new WXOrderListOptimizeForm(shop);
form.lblOrderId.Text = orderId;
form.lblSpuId.Text = row.Cells["colSpuId"].Value.ParseToString(); // goodsId
form.lblSkuId.Text = row.Cells["colSkuId"].Value.ParseToString(); // skuId
form.txtGoodsName.Text = row.Cells["colProductName"].Value.ParseToString(); // 商品名称
form.txtSkuName.Text = row.Cells["colSkuSpec"].Value.ParseToString(); // sku规格名称
form.txtCurrentPrice.Text = row.Cells["colCurrentPrice"].Value.ParseToString(); // 当前商品价格
form.txtOrderPrice.Text = row.Cells["colSalePrice"].Value.ParseToString(); // 订单价格
form.txtCurrentStock.Text = row.Cells["colCurrentStock"].Value.ParseToString(); // 当前库存;
form.numAddPrice.Value = 0;
form.ShowDialog();
if (form.EditPriceSuccess == true)
{
if (form.prodObj != null)
{
foreach (var rw in this.dgvOrder.Rows.Cast<DataGridViewRow>())
{
if (rw.Cells["colSpuId"].Value.ParseToString() != spuId)
continue;
foreach (var sku in form.prodObj["skuList"])
{
if (rw.Cells["colSkuId"].Value.ParseToString() == sku["skuId"].ParseToString())
{
rw.Cells["colCurrentPrice"].Value = sku["price"].ParseToInt() * 0.01m + form.numAddPrice.Value;
break;
}
}
}
}
}
if (form.SendGiftSuccess == true)
{
foreach (var rw in this.dgvOrder.Rows.Cast<DataGridViewRow>())
{
if (rw.Cells["colOrderId"].Value.ParseToString() != orderId)
continue;
rw.Cells["colOpResult"].Value = "礼物单已发送";
}
}
if (form.ClearStock == true)
{
foreach (var rw in this.dgvOrder.Rows.Cast<DataGridViewRow>())
{
if (rw.Cells["colSpuId"].Value.ParseToString() != spuId)
continue;
if (rw.Cells["colSkuId"].Value.ParseToString() != row.Cells["colSkuId"].Value.ParseToString())
continue;
rw.Cells["colOpResult"].Value = "清除库存成功";
rw.Cells["colCurrentStock"].Value = 0;
}
}
if (form.IsDownProd == true)
{
foreach (var rw in this.dgvOrder.Rows.Cast<DataGridViewRow>())
{
if (rw.Cells["colSpuId"].Value.ParseToString() != spuId)
continue;
rw.Cells["colOpResult"].Value = "商品下架成功";
//rw.Cells["colCurrentStock"].Value = 0;
}
}
}
break;
case "取消优惠":
{
int onSaleStatusCode = -1;
int pageSize = 50;
var getProdOnSaleRst = WXClearNoVisit.searchProduct(shop, 1, pageSize, spuId, onSaleStatusCode);
Thread.Sleep(Randomx.GetId(50, 100));
if (!getProdOnSaleRst.Contains("\"success\":true"))
{
ShowShopError(shop, getProdOnSaleRst, true);
break;
}
var prodObjs = JsonHelper.JObjectParse(getProdOnSaleRst)["productList"].FirstOrDefault();
if (prodObjs != null)
{
var str = JsonHelper.SerializeObject(prodObjs);
}
var skuId = row.Cells["colSkuId"].Value.ParseToString();
var price = (row.Cells["colCurrentPrice"].Value.ParseToDecimal() * 100).ParseToInt();
var deltaPrice = 0;
while (!price.ToString().EndsWith("66"))
{
deltaPrice++;
price++;
}
JObject changePriceObj = new JObject();
JArray skuArr = new JArray();
foreach (var sku in prodObjs["skuList"])
{
JObject obj = new JObject();
obj["spuId"] = spuId;
obj["skuId"] = sku["skuId"];
obj["salePrice"] = sku["price"].ParseToInt() + deltaPrice;
skuArr.Add(obj);
}
changePriceObj["skuList"] = skuArr;
changePriceObj["uploadSource"] = 6;
// string body = @"{""skuList"":[{""spuId"":" + spuId + @",""skuId"":""" + skuId + @""",""salePrice"":" + newPrice + @"}],""uploadSource"":6}";
var rst = WXOrderList.EditPrice(shop, changePriceObj);
if (!rst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg");
BaseMsgForm.ShowError("修改优惠商品价格失败 " + error);
return;
}
JObject endActivityObj = new JObject();
endActivityObj["platformActivityId"] = "1016";
JArray arr = new JArray();
foreach (var sku in prodObjs["skuList"])
{
JObject obj = new JObject();
obj["productId"] = spuId;
obj["skuId"] = sku["skuId"];
arr.Add(obj);
}
endActivityObj["productList"] = arr;
endActivityObj["actionType"] = 1;
//{ "platformActivityId":"1016","productList":[{ "productId":"10000879673464","skuId":"15601266074"},{ "productId":"10000879673464","skuId":"15601240593"}],"actionType":1}
rst = WXOrderList.cancelActivity(shop, endActivityObj);
if (!rst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "err_msg", "error_msg", "errMsg", "errorMsg");
BaseMsgForm.ShowError("取消优惠失败 " + error);
return;
}
else
{
foreach (var rw in this.dgvOrder.Rows.Cast<DataGridViewRow>())
{
if (rw.Cells["colSpuId"].Value.ParseToString() != spuId)
continue;
rw.Cells["colOpResult"].Value = "取消优惠成功";
foreach (var sku in prodObjs["skuList"])
{
if (rw.Cells["colSkuId"].Value.ParseToString() == sku["skuId"].ParseToString())
{
rw.Cells["colCurrentPrice"].Value = sku["price"].ParseToInt() * 0.01m + deltaPrice * 0.01m;
break;
}
}
}
BaseMsgForm.ShowInfo("取消优惠成功");
}
}
break;
case "修改":
{
pnlUpdateNotes.Visible = true;
pnlEditReceiveInfo.Visible = false;
pnlBuyUrl.Visible = false;
lblShopName.Text = shop.ShopAccount;
lblOrderId.Text = orderId;
txtNotes.Text = row.Cells["colNotes"].Value.ParseToString();
lblColorTag.Text = row.Cells["colNotesColor"].Value.ParseToString();
ucCheckBox1.CheckBoxCheckColor = Color.Gray;
ucCheckBox1.CheckBoxBorderColor = Color.Gray;
ucCheckBox2.CheckBoxCheckColor = Color.Red;
ucCheckBox2.CheckBoxBorderColor = Color.Red;
ucCheckBox3.CheckBoxCheckColor = Color.Orange;
ucCheckBox3.CheckBoxBorderColor = Color.Orange;
ucCheckBox4.CheckBoxCheckColor = Color.Green;
ucCheckBox4.CheckBoxBorderColor = Color.Green;
ucCheckBox5.CheckBoxCheckColor = Color.Blue;
ucCheckBox5.CheckBoxBorderColor = Color.Blue;
ucCheckBox1.Checked = lblColorTag.Text == "0";
ucCheckBox2.Checked = lblColorTag.Text == "1";
ucCheckBox3.Checked = lblColorTag.Text == "2";
ucCheckBox4.Checked = lblColorTag.Text == "3";
ucCheckBox5.Checked = lblColorTag.Text == "4";
}
break;
case "👁":
{
//cell.Value = "查询中…";
pbLoading.Visible = true;
Task.Run(() =>
{
var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colOrderId"].Value.ParseToString() == orderId);
var currentStatus = UpdateOrderStatus(shop, orderId);
Invoke(new Action(() =>
{
foreach (var rw in rows)
{
rw.Cells["colOrderStatus"].Value = currentStatus;
}
}));
if (currentStatus != "待发货" && currentStatus != "已发货" && currentStatus != "超时未发货")
{
Invoke(new Action(() => { pbLoading.Visible = false; }));
BaseMsgForm.ShowError("订单状态已变化,请勿拍单");
return;
}
ShowOrderAddress(shop, orderId, row);
Invoke(new Action(() => { pbLoading.Visible = false; }));
});
}
break;
case "填":
{
pnlUpdateNotes.Visible = false;
pnlEditReceiveInfo.Visible = true;
pnlBuyUrl.Visible = false;
lblEditReceiveInfoShopName.Text = shop.ShopAccount;
lblEditReceiveInfoShopId.Text = shop.ShopId;
lblEditReceiveInfoOrderId.Text = orderId;
txtEditReceiveInfoAddress.TextChanged -= txtEditReceiveInfoAddress_TextChanged;
txtEditReceiveInfoAddress.Text = ""; // row.Cells["colReceiveInfo"].Value.ParseToString();
txtEditReceiveInfoAddress.TextChanged += txtEditReceiveInfoAddress_TextChanged;
txtEditReceiveInfoOldAddress.Text = row.Cells["colReceiveInfo"].Value.ParseToString();
}
break;
case "编辑":
{
pnlUpdateNotes.Visible = false;
pnlEditReceiveInfo.Visible = false;
pnlBuyUrl.Visible = true;
lblBuyUrlShopName.Text = shop.ShopAccount;
lblBuyUrlShopId.Text = shop.ShopId;
lblBuyUrlOrderId.Text = orderId;
lblBuyUrlSpuCode.Text = row.Cells["colSpuCode"].Value.ParseToString();
txtBuyUrl.Text = row.Cells["colBuyUrl"].Value.ParseToString();
}
break;
case "打印":
{
Task.Run(() =>
{
var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colOrderId"].Value.ParseToString() == orderId);
if (!row.Cells["colReceiveInfo"].Value.ParseToString().Contains("未查看地址"))
{
Invoke(new Action(() =>
{
foreach (var rw in rows)
{
rw.Cells["colOpResult"].Value = "已获取地址,请勿重复打印";
}
}));
return;
}
var currentStatus = UpdateOrderStatus(shop, orderId);
Invoke(new Action(() =>
{
foreach (var rw in rows)
{
rw.Cells["colOrderStatus"].Value = currentStatus;
}
}));
if (currentStatus != "待发货" && currentStatus != "已发货" && currentStatus != "超时未发货")
{
BaseMsgForm.ShowError("订单状态已变化,请勿拍单");
return;
}
if (row.Cells["colDecrypt"].Value.ParseToString() != "❌")
{
// 点小眼睛查看地址
ShowOrderAddress(shop, orderId, row, false);
}
if (!row.Cells["colReceiveInfo"].Value.ParseToString().Contains("未查看地址"))
{
Invoke(new Action(() =>
{
foreach (var rw in rows)
{
rw.Cells["colOpResult"].Value = "已获取地址,请勿重复打印";
}
}));
return;
}
// 在线寄件
GetOnlineWayBill(shop, row);
});
}
break;
case "刷新":
{
pbLoading.Visible = true;
Task.Run(() =>
{
var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colOrderId"].Value.ParseToString() == orderId);
var currentStatus = UpdateOrderStatus(shop, orderId);
Invoke(new Action(() =>
{
foreach (var rw in rows)
{
rw.Cells["colOrderStatus"].Value = currentStatus;
rw.Cells["colOpResult"].Value = "订单刷新:" + DateTime.Now.ToString("HH:mm:ss");
}
pbLoading.Visible = false;
}));
if (currentStatus != "待发货" && currentStatus != "已发货" && currentStatus != "超时未发货")
{
BaseMsgForm.ShowError("订单状态已变化,请勿拍单");
return;
}
});
}
break;
case "":
dgvOrder.Rows[e.RowIndex].Cells["colCheck"].Value = !(bool)dgvOrder.Rows[e.RowIndex].Cells["colCheck"].Value;
break;
default:
break;
}
}
void ShowOrderAddress(ShopLoginInfo shop, string orderId, DataGridViewRow row, bool ShowErrorDialog = true)
{
var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colOrderId"].Value.ParseToString() == orderId);
var deRst = "测试地址写入{\"code\"0}";
deRst = WXOrderList.decryptOrder(shop, orderId);
if (deRst.Contains("\"code\":0"))
{
var url = BaseClass.BuildObjString("shop/wx_add_mdy_order_address");
var data = UserLogin.GetSignaturex();
data += "&shop_id=" + shop.ShopId;
data += "&order_id=" + orderId;
data += "&order_address=" + GetHtml.UrlEncodeUtf8(deRst);
var html = GetHtml.PostUtf8(url, data);
if (!html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (!html.Contains("\"code\":200"))
{
var errMsg = BaseRegex.GetStringJsonByRegs(ref html, html, "msg");
Invoke(new Action(() =>
{
foreach (var rw in rows)
{
rw.Cells["colOpResult"].Value = errMsg;
rw.Cells["colReceiveInfo"].Value = GetDecryptOrder(deRst);
rw.Cells["colReceiveInfo"].Style.ForeColor = DefaultForeColor;
}
if (ShowErrorDialog)
BaseMsgForm.ShowError("查看地址成功但保存到服务端失败:" + errMsg);
}));
}
else
{
Invoke(new Action(() =>
{
foreach (var rw in rows)
{
rw.Cells["colReceiveInfo"].Value = GetDecryptOrder(deRst);
rw.Cells["colReceiveInfo"].Style.ForeColor = DefaultForeColor;
rw.Cells["colOpResult"].Value = "查看地址成功";
}
}));
}
}
else
{
var error = BaseRegex.GetStringJsonByRegs(ref deRst, deRst, "err_msg", "error_msg", "errMsg", "errorMsg", "msg");
if (error.Contains("\"code\":17899002") || error.Contains("\"code\":10020123"))
{
if (error.Contains("\"code\":17899002"))
error = "基于用户隐私保护,无法查看收货信息";
if (error.Contains("\"code\":10020123"))
error = "今日查看次数已用完";
Invoke(new Action(() =>
{
foreach (var rw in dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colSupplierId"].Value.ParseToString() == shop.ShopId).ToList())
{
rw.Cells["colDecrypt"].Value = "❌";
if (rw.Cells["colReceiveInfo"].Value.ParseToString().Contains("未查看地址"))
rw.Cells["colOpResult"].Value = "查看地址失败:" + error;
}
row.Cells["colOpResult"].Value = "查看地址失败:" + error;
if (ShowErrorDialog)
BaseMsgForm.ShowError("查看地址失败:" + error);
}));
}
else
{
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "查看地址失败:" + error;
if (ShowErrorDialog)
BaseMsgForm.ShowError("查看地址失败:" + error);
}));
}
}
//Invoke(new Action(() => { cell.Value = "👁"; }));
}
void GetOnlineWayBill(ShopLoginInfo shop, DataGridViewRow row)
{
var orderId = row.Cells["colOrderId"].Value.ParseToString();
for (int i = 0; i < 50 && isOnlineWayBill; i++)
Thread.Sleep(200);
Invoke(new Action(() => { pbLoading.Visible = true; }));
isOnlineWayBill = true;
WXPreCreateOrderWaybillOnlineParam preWaybillOnlineparam = new WXPreCreateOrderWaybillOnlineParam();
preWaybillOnlineparam.req.requestContent.Add(new preWaybillOnlineRequestContentParam()
{
ecOrderList = new List<ecOrderParam>(),
uuid = Guid.NewGuid().ParseToString(),
});
//#if DEBUG
var rst = WXOrderList.searchOnlineWaybill(shop, orderId);
if (!rst.Contains("\"code\":0"))
{
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "errMsg", "errorMsg", "err_msg", "error_msg");
//BaseMsgForm.ShowError("打印失败:" + error, "错误", FormLevel.LARGE);
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "打印失败:" + error;
pbLoading.Visible = false;
}));
isOnlineWayBill = false;
return;
}
if (rst.Contains("\"orderList\":[]"))
{
var url = BaseClass.BuildObjString("product/wx_get_random_after_sale_list");
var data = Work.UserLogin.GetSignaturex();
data += "&page_size=1";
var html = GetHtml.PostUtf8(url, data);
if (string.IsNullOrEmpty(html) || !html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (html.Contains("\"code\":200") && !html.Contains("\"data\":[]"))
{
var obj = JsonHelper.JObjectParse(html)["data"].FirstOrDefault()["after_sale_json"];
string addressJson = obj.ParseToString();
var senderInfo = preWaybillOnlineparam.req.requestContent.FirstOrDefault().sender;
senderInfo.province = BaseRegex.GetStringJson(ref addressJson, "province_name");
senderInfo.city = BaseRegex.GetStringJson(ref addressJson, "city_name");
senderInfo.county = BaseRegex.GetStringJson(ref addressJson, "county_name");
senderInfo.street = BaseRegex.GetStringJson(ref addressJson, "street_name").ParseToString();
senderInfo.mobile = BaseRegex.GetStringJson(ref addressJson, "tel_number");
senderInfo.name = BaseRegex.GetStringJson(ref addressJson, "user_name");
var detailAddressLst = new WXOrderList().detailAddress.Split(new string[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();
var detailAddress = detailAddressLst[Randomx.GetId(detailAddressLst.Count)];
detailAddress += Randomx.GetId(1, 21) + WXOrderList.quantifiers1[Randomx.GetId(WXOrderList.quantifiers1.Count)];
detailAddress += Randomx.GetId(1, 35) + Randomx.GetId(1, 9).ToString().PadLeft(2, '0') + WXOrderList.quantifiers2[Randomx.GetId(WXOrderList.quantifiers2.Count)];
senderInfo.address = detailAddress;
//senderInfo.address = BaseRegex.GetStringJson(ref addressJson, "detail_info");
senderInfo.mobile = WaybillHelper.MobileHead[Randomx.GetId(WaybillHelper.MobileHead.Count)] + Randomx.GetNumber(8);
senderInfo.name = WaybillHelper.LastName[Randomx.GetId(WaybillHelper.LastName.Count)] + (Randomx.GetId(2) == 1 ? "先生" : "女士");
}
ecOrderParam orderParam = new ecOrderParam();
orderParam.ecOrderId = orderId;
var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colOrderId"].Value.ParseToString() == orderId);
foreach (var rw in rows)
{
orderParam.goodsList.Add(new orderGoodsParam
{
goodCount = rw.Cells["colCnt"].Value.ParseToInt(),
goodName = rw.Cells["colProductName"].Value.ParseToString(),
productId = rw.Cells["colSpuId"].Value.ParseToString(),
skuId = rw.Cells["colSkuId"].Value.ParseToString(),
});
}
preWaybillOnlineparam.req.requestContent.FirstOrDefault().ecOrderList.Add(orderParam);
var result = WXOrderList.preCreateOrderWaybillOnline(shop, preWaybillOnlineparam);
if (result.Contains("账号未开通在线寄件服务"))
{
//BaseMsgForm.ShowError("账号未开通在线寄件服务");
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "账号未开通在线寄件服务,无法打印";
pbLoading.Visible = false;
}));
isOnlineWayBill = false;
return;
}
if (result.Contains("订单已分配给供货商,商家无需发货"))
{
//BaseMsgForm.ShowError("订单已分配给供货商,商家无需发货");
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "订单已分配给供货商,商家无需发货";
pbLoading.Visible = false;
}));
isOnlineWayBill = false;
return;
}
if (result.Contains("订单商品已全部发货"))
{
//BaseMsgForm.ShowError("订单商品已全部发货");
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "订单商品已全部发货";
pbLoading.Visible = false;
}));
isOnlineWayBill = false;
return;
}
if (!result.Contains("\"ret\":0,"))
{
//BaseMsgForm.ShowError("打印失败:" + result, "错误", FormLevel.LARGE);
var error = BaseRegex.GetStringJsonByRegs(ref result, result, "errMsg", "errorMsg", "err_msg", "error_msg");
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "打印失败:" + error;
pbLoading.Visible = false;
}));
isOnlineWayBill = false;
return;
}
List<WxOnlineWaybillDeliveryInfo> deliverInfoLst = new List<WxOnlineWaybillDeliveryInfo>();
var jObj = JsonHelper.JObjectParse(result)["list"];
deliverInfoLst = JsonHelper.DeserializeJsonToList<WxOnlineWaybillDeliveryInfo>(jObj.ParseToString())
.Where(d => d.responseContent.FirstOrDefault()?.deliveryId == "YTO" || d.responseContent.FirstOrDefault()?.deliveryId == "YUNDA" ||
d.responseContent.FirstOrDefault()?.deliveryId == "ZTO" || d.responseContent.FirstOrDefault()?.deliveryId == "STO").ToList()
.Where(d => d.responseContent.FirstOrDefault()?.deliveryErrorMsg == "success").ToList();
var deliverInfo = deliverInfoLst[Randomx.GetId(deliverInfoLst.Count)];
WXCreateOrderWaybillOnlineParam waybillOnlineparam = new WXCreateOrderWaybillOnlineParam();
waybillOnlineparam.requestContent.Add(new WaybillOnlineRequestContentParam()
{
deliveryId = deliverInfo.responseContent.FirstOrDefault().deliveryId,
deliveryInfo = preWaybillOnlineparam.req.requestContent.FirstOrDefault().deliveryInfo,
ecOrderList = preWaybillOnlineparam.req.requestContent.FirstOrDefault().ecOrderList,
ewaybillOrderId = deliverInfo.responseContent.FirstOrDefault().ewaybillOrderId,
extInfo = preWaybillOnlineparam.req.requestContent.FirstOrDefault().extInfo,
orderVasList = preWaybillOnlineparam.req.requestContent.FirstOrDefault().orderVasList,
sender = preWaybillOnlineparam.req.requestContent.FirstOrDefault().sender,
source = preWaybillOnlineparam.req.requestContent.FirstOrDefault().source,
uuid = preWaybillOnlineparam.req.requestContent.FirstOrDefault().uuid,
});
result = WXOrderList.createOrderWaybillOnline(shop, waybillOnlineparam);
if (!result.Contains("\"ret\":0,"))
{
var error = BaseRegex.GetStringJsonByRegs(ref result, result, "errMsg", "errorMsg", "err_msg", "error_msg");
//BaseMsgForm.ShowError("打印失败:" + error, "错误", FormLevel.LARGE);
Invoke(new Action(() =>
{
row.Cells["colOpResult"].Value = "打印失败:" + error;
pbLoading.Visible = false;
}));
isOnlineWayBill = false;
return;
}
else
{
Invoke(new Action(() =>
{
row.Cells["colOnlineWaybillOrderId"].Value = BaseRegex.GetStringJson(ref result, "ewaybillOrderId");
row.Cells["colOnlineWaybill"].Value = "再次\r\n打印";
ShowDgvRow(row);
}));
}
}
WXShopLoginForm form = null;
Invoke(new Action(() =>
{
//if (shop.Chat == null)
//{
// shop.Chat = CEFBrowser.CreateChromiumWebBrowser("https://store.weixin.qq.com/shop/waybill/allToAll", false);
// CustomResourceRequestHandlerLocal resourceRequestHandler = new CustomResourceRequestHandlerLocal();
// resourceRequestHandler.ResourceLoadCompleteEvent += RequestHandler_ResourceLoadComplete;
// resourceRequestHandler.BeforeResourceLoadEvent += RequestHandler_BeforeResourceLoad;
// shop.Chat.RequestHandler = new CustomRequestHandler(resourceRequestHandler);
// var lifeSapnHandler = new LifeSpanHandlerLocal(PopWindowType.SelfWindow);
// shop.Chat.LifeSpanHandler = lifeSapnHandler;
// shop.Chat.KeyboardHandler = new KeyboardHandler();
// shop.Chat.FrameLoadEnd += CefWebBrowser_FrameLoadEnd;
// shop.Chat.AddressChanged += CefWebBrowser_AddressChanged;
// shop.Chat.LoadError += CefWebBrowser_LoadError;
// shop.Chat.Dock = DockStyle.Fill;
// MainForm.instance.cefPanel.Controls.Add(shop.Chat);
//}
//shop.Chat.SendToBack();
form = new WXShopLoginForm(shop);
form.openType = EnumOpenType.manage;
form.InitUrl = "https://store.weixin.qq.com/shop/waybill/allToAll";
form.TopLevel = false;
MainForm.instance.cefPanel.Controls.Add(form);
form.Show();
//MainForm.instance.cefPanel.BringToFront();
MainForm.instance.cefPanel.SendToBack();
MainForm.instance.cefPanel.Visible = true;
}));
while (form.cefWebBrowser == null || !form.cefWebBrowser.IsBrowserInitialized)
Thread.Sleep(100);
CEFBrowser.DeleteCookie(form.cefWebBrowser.GetCookieManager(null));
var cookieLst = JsonHelper.DeserializeJsonToList<CefSharp.Cookie>(shop.Cookies);
var t = CEFBrowser.SetCookieAsync(JsonHelper.SerializeObject(cookieLst), form.cefWebBrowser.GetCookieManager(null));
form.cefWebBrowser.Load("https://store.weixin.qq.com/shop/waybill/allToAll");
var jsStr = @"(function() {
const element = document.getElementsByName('waybill')[0];
const shadowRoot = element.shadowRoot;
//var aElements = document.getElementsByTagName('a');
//var aElements = shadowRoot.querySelector('micro-app-body').getElementsByClassName('goods_info')
var aElements = shadowRoot.querySelector('micro-app-body').getElementsByTagName('a')
for (i = 0; i <aElements.length; i++) {
var aElement = aElements[i];
if (aElement.innerHTML.indexOf('待揽收') >= 0) {
var rect = aElement.getBoundingClientRect();
aElement.click();
return rect.left + ',' + rect.top;
}
}
return '0,0';
})();";
var resultStr = "";
for (int i = 0; i < 10; i++)
{
Thread.Sleep(250);
var client = form.cefWebBrowser.GetDevToolsClient();
if (client != null)
{
var result = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
result.Wait(5000);
resultStr = result.Result.Result.Value.ParseToString();
if (!resultStr.IsNullOrEmpty() && !resultStr.Contains("0,0"))
{
break;
}
}
}
Thread.Sleep(500);
jsStr = @"(function() {
const element = document.getElementsByName('waybill')[0];
const shadowRoot = element.shadowRoot;
var aElements = shadowRoot.querySelector('micro-app-body').getElementsByTagName('tr');
for (i = 0; i <aElements.length; i++) {
var aElement = aElements[i];
if (aElement.innerHTML.indexOf('" + orderId + @"') >= 0) {
var chk = aElement.getElementsByClassName('weui-desktop-table_flex')[0].children[0];
var rect = chk.getBoundingClientRect();
chk.click();
return rect.left + ',' + rect.top;
}
}
return '0,0';
})();";
resultStr = "";
for (int i = 0; i < 10; i++)
{
Thread.Sleep(250);
var client = form.cefWebBrowser.GetDevToolsClient();
if (client != null)
{
var result = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
result.Wait(5000);
resultStr = result.Result.Result.Value.ParseToString();
if (!resultStr.IsNullOrEmpty() && !resultStr.Contains("0,0"))
{
break;
}
}
}
Thread.Sleep(1000);
jsStr = @"(function() {
const element = document.getElementsByName('waybill')[0];
const shadowRoot = element.shadowRoot;
var aElements = shadowRoot.querySelector('micro-app-body').getElementsByTagName('button');
//var aElements = document.getElementsByTagName('button');
for (i = 0; i <aElements.length; i++) {
var aElement = aElements[i];
if (aElement.innerHTML.indexOf('打印快递单') >= 0) {
var rect = aElement.getBoundingClientRect();
aElement.click();
return rect.left + ',' + rect.top;
}
}
return '0,0';
})();";
resultStr = "";
int count = 0;
for (int i = 0; i < 5; i++)
{
Thread.Sleep(500);
var client = form.cefWebBrowser.GetDevToolsClient();
if (client != null)
{
var result = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
result.Wait(5000);
resultStr = result.Result.Result.Value.ParseToString();
if (!resultStr.IsNullOrEmpty() && !resultStr.Contains("0,0"))
{
count++;
if (count > 1)
break;
}
}
}
Thread.Sleep(500);
jsStr = @"(function() {
const element = document.getElementsByName('waybill')[0];
const shadowRoot = element.shadowRoot;
var aElements = shadowRoot.querySelector('micro-app-body').getElementsByTagName('button');
for (i = 0; i <aElements.length; i++) {
var aElement = aElements[i];
if (aElement.innerHTML.indexOf('确认打印') >= 0) {
var rect = aElement.getBoundingClientRect();
if (rect.left > 0) {
aElement.click();
return rect.left + ',' + rect.top;
}
}
}
return '0,0';
})();";
resultStr = "";
for (int i = 0; i < 5; i++)
{
Thread.Sleep(500);
var client = form.cefWebBrowser.GetDevToolsClient();
if (client != null)
{
var result = client.Runtime.EvaluateAsync(jsStr, null, true, null, null, true, null, true);
result.Wait(5000);
resultStr = result.Result.Result.Value.ParseToString();
if (!resultStr.IsNullOrEmpty() && !resultStr.Contains("0,0"))
{
break;
}
}
}
Thread.Sleep(500);
GetRefreshPrintId();
Invoke(new Action(() => { ShowRefreshPrintId(row); }));
isOnlineWayBill = false;
Invoke(new Action(() =>
{
form.Close();
pbLoading.Visible = false;
}));
}
private void RequestHandler_ResourceLoadComplete(object sender, string url, string postData, string responseData, IRequest request)
{
}
private bool RequestHandler_BeforeResourceLoad(object sender, string url, string postData, IRequest request)
{
return false;
}
private void CefWebBrowser_FrameLoadEnd(object sender, CefSharp.FrameLoadEndEventArgs e)
{
}
private void CefWebBrowser_LoadError(object sender, CefSharp.LoadErrorEventArgs e)
{
}
private void CefWebBrowser_AddressChanged(object sender, CefSharp.AddressChangedEventArgs e)
{
}
public string GetDecryptOrder(string sourceOrderAddressStr)
{
//黄颖飞(4559),18466134204-4559,广西壮族自治区柳州市柳南区福柳宏都8-1-701 (拨打请输入分机号4559)
var userName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "userName"); // 黄颖飞
var extension = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "extension"); // 4559
var virtualNumber = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "virtualNumber"); // 18466134204
var provinceName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "provinceName"); // 广西壮族自治区
var cityName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "cityName"); // 柳州市
var countyName = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "countyName"); // 柳南区
var detailInfo = BaseRegex.GetStringJson(ref sourceOrderAddressStr, "detailInfo"); // 福柳宏都8-1-701
if (userName.IsNullOrEmpty() || extension.IsNullOrEmpty() || virtualNumber.IsNullOrEmpty() || provinceName.IsNullOrEmpty() || cityName.IsNullOrEmpty() ||
countyName.IsNullOrEmpty() || detailInfo.IsNullOrEmpty())
{
return sourceOrderAddressStr;
}
//return userName + "(" + extension + ")," + virtualNumber + "-" + extension + "," + provinceName + cityName + countyName + detailInfo + "(拨打请输入分机号" + extension + ")";
return userName + "" + extension + "," + virtualNumber + "-" + extension + "," + provinceName + cityName + countyName + detailInfo + "拨打请输入分机号" + extension + "";
}
private void btnStop_Click(object sender, EventArgs e)
{
if (this.cancellationTokenSource != null)
this.cancellationTokenSource.Cancel();
}
private void btnSearchProd_Click(object sender, EventArgs e)
{
var shopIdLst = dgvShop.Rows.Cast<DataGridViewRow>().Where(row
=> row.Cells["colSelect"]?.Value.ParseToBool() == true).Select(r => r.Cells["colShopId"]?.Value.ToString()).ToList();
if (shopIdLst.Count <= 0)
{
BaseMsgForm.ShowError("未勾选查询店铺!");
return;
}
btnSearchOrder.Enabled = false;
pbLoading.Visible = true;
if (cancellationTokenSource != null)
cancellationTokenSource.Cancel();
cancellationTokenSource = new CancellationTokenSource();
dgvOrder.Rows.Clear();
Task.Run(() =>
{
GetOrderList(shopIdLst);
Invoke(new Action(() =>
{
if (cancellationTokenSource.IsCancellationRequested)
{
this.statusBar.lblTaskStatus.Text = "订单查询停止";
BaseMsgForm.ShowInfo("订单查询停止");
}
else
{
this.statusBar.lblTaskStatus.Text = "订单查询完毕";
BaseMsgForm.ShowInfo("订单查询完毕");
}
pbLoading.Visible = false;
btnSearchOrder.Enabled = true;
}));
}, cancellationTokenSource.Token);
}
void GetOrderList(List<string> shopIdLst)
{
List<ShopLoginInfo> shopLst = GlobalConfig.ShopLoginList.Where(s => shopIdLst.Contains(s.ShopId)).ToList();
Invoke(new Action(() =>
{
this.pbLoading.Visible = true;
this.statusBar.lblTaskStatus.Text = "正在查询店铺";
this.statusBar.pgbTaskProgress.Maximum = shopIdLst.Count;
this.statusBar.UpdateProgressBar(0);
}));
foreach (var shop in shopLst)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
Invoke(new Action(() =>
{
this.statusBar.UpdateProgressBar(this.statusBar.pgbTaskProgress.Value + 1);
}));
if (shop.LoginStatus != "登录成功")
{
continue;
}
for (int orderStatus = 20; orderStatus <= 30; orderStatus += 10)
{
int page = PageBegin - 1;
int totalPage = 1;
int pageSize = 30;
while (page < totalPage && page < PageEnd)
{
page++;
if (orderStatus == 20 && !chkWaitSend.Checked)
break;
if (orderStatus == 30 && !chkHasSend.Checked)
break;
if (cancellationTokenSource.IsCancellationRequested)
break;
// 查找订单
pageSize = 30;
long? startTime = null;
long? endTime = null;
if (chkTimeDuration.Checked)
Invoke(new Action(() =>
{
startTime = BaseClass.DateTimeToTimestampMilliseconds(dtpStartTime.Value);
endTime = BaseClass.DateTimeToTimestampMilliseconds(dtpEndTime.Value);
}));
var result = WXOrderList.orderListSearch(shop, orderStatus, page, pageSize, startTime, endTime);
if (!result.Contains("\"code\":0"))
{
ShowShopError(shop, result);
break;
}
if (result.Contains("4527181286223364098"))
{
}
totalPage = Math.Ceiling(BaseRegex.GetIntJson(ref result, "totalNum") * 1m / pageSize).ParseToInt();
List<WxOrderInfoLite> orderLst = new List<WxOrderInfoLite>();
try
{
var jArr = JsonHelper.JObjectParse(result)["orderList"];
orderLst = JsonHelper.DeserializeJsonToList<WxOrderInfoLite>(JsonHelper.SerializeObject(jArr));
}
catch (Exception ex)
{
ShowShopError(shop, ex.Message);
break;
}
Thread.Sleep(Randomx.GetId(200, 1000));
try
{
Invoke(new Action(() =>
{
this.pbLoading.Visible = true;
this.statusBar.lblTaskStatus.Text = "正在查询店铺:" + shop.ShopAccount + " " + page + "/" + Math.Min(PageEnd, totalPage);
}));
var url = BaseClass.BuildObjString("shop/wx_get_order_address");
var data = UserLogin.GetSignaturex() + "&shop_id=" + shop.ShopId;
data += "&order_ids=" + string.Join(",", orderLst.Select(o => o.commonInfo.orderId));
data += "&not_count=true";
var html = GetHtml.PostUtf8(url, data);
if (!html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
List<WXOrderDecryptAddressInfo> orderDecryptAddressLst = new List<WXOrderDecryptAddressInfo>();
if (html.Contains("\"code\":200"))
{
var jObj = JsonHelper.JObjectParse(html)["data"];
orderDecryptAddressLst = JsonHelper.DeserializeJsonToList<WXOrderDecryptAddressInfo>(jObj.ParseToString());
}
url = BaseClass.BuildObjString("shop/wx_get_buy_url_notes");
data = UserLogin.GetSignaturex() + "&shop_id=" + shop.ShopId;
data += "&spu_codes=" + GetHtml.UrlEncodeUtf8(string.Join(",", orderLst.SelectMany(o => o.orderProductInfo.Select(p => p.spuCode)).Distinct()));
data += "&main_user_name=" + (BaseClass.GroupId == 3 ? BaseClass.UserName : BaseClass.ParentUserName);
data += "&not_count=true";
html = GetHtml.PostUtf8(url, data);
if (!html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
List<WXBuyUrlNotesInfo> buyUrlNotesInfoLst = new List<WXBuyUrlNotesInfo>();
if (html.Contains("\"code\":200"))
{
var jObj = JsonHelper.JObjectParse(html)["data"];
buyUrlNotesInfoLst = JsonHelper.DeserializeJsonToList<WXBuyUrlNotesInfo>(jObj.ParseToString());
}
// 查找对应商品
string getProdRst = "";
JObject prodObjs = new JObject();
try
{
if (orderLst.Count > 0)
{
int onSaleStatusCode = -1;
pageSize = 50;
string spuIds = GetHtml.UrlEncodeUtf8(string.Join(",", orderLst.SelectMany(o => o.orderProductInfo.Select(p => p.productId)).Distinct()));
//getProdRst = WXClearNoVisit.searchProduct(shop, 1, pageSize, spuIds, onSaleStatusCode);
getProdRst = WXOrderList.getSkuBySpu(shop, GetHtml.UrlDecode(spuIds));
Thread.Sleep(Randomx.GetId(50, 100));
if (!getProdRst.Contains("\"success\":true") && !getProdRst.Contains("\"code\":0"))
{
ShowShopError(shop, getProdRst);
break;
}
}
prodObjs = JsonHelper.JObjectParse(getProdRst);
}
catch { }
foreach (var order in orderLst)
{
var orStr = JsonHelper.SerializeObject(order);
if (orStr.Contains("4527181286223364098") || orStr.Contains("4527546611026165767"))
{
}
foreach (var orderProd in order.orderProductInfo)
{
decimal? currentPrice = null;
int? currentStock = null;
try
{
//var prod = prodObjs["productList"].FirstOrDefault(p => p["productId"].ParseToString() == orderProd.productId);
//if (prod != null)
//{
// var prodStr = prod.ParseToString();
// var sku = prod["skuList"].FirstOrDefault(p => p["skuId"].ParseToString() == orderProd.skuId);
// if (sku != null)
// {
// currentPrice = sku["price"].ParseToDecimal() * 0.01m;
// }
//}
var prod = prodObjs["products"].FirstOrDefault(p => p["productKey"]["productId"].ParseToString() == orderProd.productId);
if (prod != null)
{
var prodStr = prod.ParseToString();
var sku = prod["productSkus"].FirstOrDefault(p => p["skuKey"]["skuId"].ParseToString() == orderProd.skuId);
if (sku != null)
{
var skuStr = JsonHelper.SerializeObject(sku);
currentPrice = BaseRegex.GetIntJson(ref skuStr, "salePrice") * 0.01m;
currentStock = BaseRegex.GetIntJson(ref skuStr, "stockNum");
}
}
}
catch { }
var discount = orderProd.salePrice.ParseToInt() * orderProd.productCnt - orderProd.realPrice;
var orderAddresss = orderDecryptAddressLst.FirstOrDefault(a => a.order_id == order.commonInfo.orderId);
var buyUrlNotes = buyUrlNotesInfoLst.FirstOrDefault(b => b.spu_code == orderProd.spuCode);
var DecryptAddress = this.GetDecryptOrder((orderAddresss?.order_address).ParseToString());
Invoke(new Action(() =>
{
var rowIndex = this.dgvOrder.Rows.Add(
false,
shop.ShopId,
shop.ShopAccount,
shop.Notes,
shop.GroupName,
"登录",
"进店",
order.commonInfo.orderId,
order.commonInfo.createTimeStr,
order.commonInfo.createTimeStr.ParseToDateTime().ToString("M/d HH:mm"),
orderProd.thumbImg,
DataGridViewExtension.defaultBitmap,
//orderProd.productId + "\r\n" + string.Join("", orderProd.title.Take(30)) + (orderProd.title.Length > 30 ? "…" : "") +
// "\r\n-----\r\n" + string.Join(";", orderProd.saleParam), // 商品信息合集
orderProd.productId + "\r\n" + orderProd.title + "\r\n-----\r\n" + string.Join(";", orderProd.saleParam), // 商品信息合集
orderProd.productId, // 商品Id
orderProd.title, // 商品名称
orderProd.spuCode, // 商品编码
orderProd.skuId, // skuId
string.Join(";", orderProd.saleParam), // sku规格
orderProd.skuCode, // sku编码
"商品编码:\r\n" + orderProd.spuCode + "\r\n" + "规格编码:\r\n" + orderProd.skuCode, // 编码信息合集
orderProd.salePrice.ParseToInt() * 0.01m,
orderProd.productCnt, // 商品数量
orderProd.salePrice.ParseToInt() * 0.01m + "\r\nx" + orderProd.productCnt, // 商品单价/数量
orderProd.realPrice * 0.01m + (discount > 0 ? "\r\n优惠\r\n-" + discount * 0.01m : ""), // 商品总价/优惠
discount > 0 ? discount * 0.01m : null, // 商品优惠
orderProd.productSource?.commissionFee * 0.01m, // 达人佣金
currentPrice, // 当前价
currentStock, // 库存
"礼",
"优化",
"取消优惠",
order.commonInfo.statusStr, // 订单状态
"刷新",
buyUrlNotes?.buy_url_notes, // 采购地址
"编辑",
string.IsNullOrWhiteSpace(DecryptAddress) ? (order.acceptInfo.addressInfo.userName + " " + order.acceptInfo.addressInfo.telNumber + " " +
order.acceptInfo.addressInfo.provinceName + " " + order.acceptInfo.addressInfo.cityName + " " +
order.acceptInfo.addressInfo.countyName + " " + order.acceptInfo.addressInfo.detailInfo + " " +
" 未查看地址") : DecryptAddress, // 收件地址解密
"👁",
"填",
"", // 在线寄件打印单号
order.expressData?.type == 3 && order.expressData?.status != 1 ? order.expressData?.jumpPath?.Substring((order.expressData?.jumpPath).ParseToString().IndexOf("ewaybillOrderId=")).Replace("ewaybillOrderId=", "") : "",
order.expressData?.type == 3 && order.expressData?.status != 1 ? "再次\r\n打印" : "打印",
order.flagInfo.flagNotes, // 卖家备注
order.flagInfo.flagColor, // 卖家备注颜色
"修改\r\n备注",
""
);
var row = dgvOrder.Rows[rowIndex];
ShowDgvRow(row, order);
ShowRefreshPrintId(row);
}));
}
}
}
catch (Exception ex)
{
ShowShopError(shop, ex.Message);
}
}
}
}
}
private void ShowDgvRow(DataGridViewRow row, WxOrderInfoLite order = null)
{
SizeF textSize1 = TextRenderer.MeasureText(row.Cells["colProdInfo"].Value.ParseToString(), row.Cells["colProdInfo"].Style.Font,
new Size(row.Cells["colProdInfo"].ContentBounds.Width, 500), TextFormatFlags.WordBreak);
SizeF textSize2 = TextRenderer.MeasureText(row.Cells["colReceiveInfo"].Value.ParseToString(), row.Cells["colReceiveInfo"].Style.Font,
new Size(row.Cells["colReceiveInfo"].ContentBounds.Width, 500), TextFormatFlags.WordBreak);
row.Height = Math.Max(textSize2.Height, Math.Max(textSize1.Height, 80)).ParseToInt() + 20;
if (order != null)
{
// 根据卖家备注颜色显示文字颜色
row.Cells["colNotes"].Style.ForeColor = DefaultForeColor;
if (order.flagInfo.flagColor == 1)
row.Cells["colNotes"].Style.ForeColor = Color.Red;
if (order.flagInfo.flagColor == 2)
row.Cells["colNotes"].Style.ForeColor = Color.Orange;
if (order.flagInfo.flagColor == 3)
row.Cells["colNotes"].Style.ForeColor = Color.Green;
if (order.flagInfo.flagColor == 4)
row.Cells["colNotes"].Style.ForeColor = Color.Blue;
}
if (row.Cells["colReceiveInfo"].Value.ParseToString().Contains("未查看地址"))
row.Cells["colReceiveInfo"].Style.ForeColor = Color.DarkGray;
if (row.Cells["colOnlineWaybill"].Value.ParseToString() == "再次\r\n打印")
{
(row.Cells["colOnlineWaybill"] as DataGridViewLinkCell).LinkColor = Color.Red; // Color.Blue
(row.Cells["colOnlineWaybill"] as DataGridViewLinkCell).VisitedLinkColor = Color.DarkRed; // Color.FromArgb(255, 128, 0, 128)
(row.Cells["colOnlineWaybill"] as DataGridViewLinkCell).ActiveLinkColor = Color.Orange; // Color.Red;
}
else
{
(row.Cells["colOnlineWaybill"] as DataGridViewLinkCell).LinkColor = Color.Blue;
(row.Cells["colOnlineWaybill"] as DataGridViewLinkCell).VisitedLinkColor = Color.FromArgb(255, 128, 0, 128);
(row.Cells["colOnlineWaybill"] as DataGridViewLinkCell).ActiveLinkColor = Color.Red;
}
}
private void btnClearDgv_Click(object sender, EventArgs e)
{
var rows = this.dgvOrder.Rows.Cast<DataGridViewRow>().ToList(); //Cast后Rows做foreach循环时仍会夹花跳过,所以要ToList转一个新的数组。
foreach (var row in rows)
{
if (row.Cells["colCheck"].Value.ParseToBool() == true)
{
this.dgvOrder.Rows.Remove(row);
}
}
}
private void btnClearFilter_Click(object sender, EventArgs e)
{
chkHasSend.Checked = true;
chkWaitSend.Checked = true;
chkTimeDuration.Checked = false;
dtpStartTime.Value = DateTime.Now.Date;
dtpEndTime.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
}
private void btnFilterShop_Click(object sender, EventArgs e)
{
string notes = cmbFilterShopNotes.Text.Trim().Trim(';');
if (notes == "全部")
notes = "";
List<string> notesLst = notes.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
string group = cmbFilterShopGroup.Text.Trim().Trim(';');
if (group == "全部")
group = "";
List<string> groupLst = group.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (!row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()))
{
row.Visible = false;
row.Cells["colSelect"].Value = false;
continue;
}
if (!string.IsNullOrWhiteSpace(notes) && !notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString()))
{
row.Visible = false;
row.Cells["colSelect"].Value = false;
continue;
}
if (!string.IsNullOrWhiteSpace(group) && !groupLst.Contains(row.Cells["colGroup"].Value.ParseToString()))
{
row.Visible = false;
row.Cells["colSelect"].Value = false;
continue;
}
row.Visible = true;
}
}
private void btnEmptyShop_Click(object sender, EventArgs e)
{
txtFilterShopName.Text = "";
cmbFilterShopNotes.Text = "全部";
cmbFilterShopGroup.Text = "全部";
btnFilterShop_Click(null, null);
}
private void btnReverse_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == true)
row.Cells["colSelect"].Value = !row.Cells["colSelect"].Value.ParseToBool();
}
}
private void btnAddSelect_Click(object sender, EventArgs e)
{
string notes = cmbFilterShopNotes.Text.Trim().Trim(';');
if (notes == "全部")
notes = "";
List<string> notesLst = notes.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
string group = cmbFilterShopGroup.Text.Trim().Trim(';');
if (group == "全部")
group = "";
List<string> groupLst = group.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == false)
continue;
if (!row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()))
continue;
if (!string.IsNullOrWhiteSpace(notes) && !notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString()))
continue;
if (!string.IsNullOrWhiteSpace(group) && !groupLst.Contains(row.Cells["colGroup"].Value.ParseToString()))
continue;
row.Cells["colSelect"].Value = true;
}
}
private void btnAddUnSelect_Click(object sender, EventArgs e)
{
string notes = cmbFilterShopNotes.Text.Trim().Trim(';');
if (notes == "全部")
notes = "";
List<string> notesLst = notes.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
string group = cmbFilterShopGroup.Text.Trim().Trim(';');
if (group == "全部")
group = "";
List<string> groupLst = group.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == false)
continue;
if (!row.Cells["colShopName"].Value.ParseToString().Contains(txtFilterShopName.Text.Trim()))
continue;
if (!string.IsNullOrWhiteSpace(notes) && !notesLst.Contains(row.Cells["colShopNotes"].Value.ParseToString()))
continue;
if (!string.IsNullOrWhiteSpace(group) && !groupLst.Contains(row.Cells["colGroup"].Value.ParseToString()))
continue;
row.Cells["colSelect"].Value = false;
}
}
private void btnSelectOnline_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == true)
{
if (row.Cells["colLoginStatus"].Value.ParseToString() == "在线")
{
row.Cells["colSelect"].Value = true;
}
else
{
row.Cells["colSelect"].Value = false;
}
}
}
}
private void btnSelectOffline_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvShop.Rows)
{
if (row.Visible == true)
{
if (row.Cells["colLoginStatus"].Value.ParseToString() != "在线")
{
row.Cells["colSelect"].Value = true;
}
else
{
row.Cells["colSelect"].Value = false;
}
}
}
}
private void btnFiltSelect_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvOrder.Rows)
{
// 2,3拼多多 6抖音
if (!row.Cells["colNotes"].Value.ParseToString().StartsWith("2") && !row.Cells["colNotes"].Value.ParseToString().StartsWith("3") &&
!row.Cells["colNotes"].Value.ParseToString().StartsWith("6"))
{
row.Cells["colCheck"].Value = false;
continue;
}
// ^\d{6}.*$
string pattern1 = @"^\d{6}-\d{15}.*$"; // 定义正则表达式模式
string pattern2 = @"^\d{19}.*$"; // 定义正则表达式模式
Regex regex1 = new Regex(pattern1);
Regex regex2 = new Regex(pattern2);
if (!regex1.IsMatch(row.Cells["colNotes"].Value.ParseToString()) && !regex2.IsMatch(row.Cells["colNotes"].Value.ParseToString()))
{
row.Cells["colCheck"].Value = false;
continue;
}
row.Cells["colCheck"].Value = true;
}
}
void ShowShopError(ShopLoginInfo shop, string operateResult, bool isShowDialog = false)
{
var error = BaseRegex.GetStringJson(ref operateResult, "msg");
if (string.IsNullOrEmpty(error))
error = BaseRegex.GetStringJson(ref operateResult, "errMsg");
if (string.IsNullOrEmpty(error))
error = BaseRegex.GetStringJson(ref operateResult, "errorMsg");
if (string.IsNullOrEmpty(error))
error = operateResult;
WXShopListForm.Instance.CheckShopLogin(new ShopLoginInfo[] { shop }, false);
if (shop.LoginStatus != "登录成功")
{
error = "店铺掉线";
}
Invoke(new Action(() => { BindShop(shop, new List<string> { shop.ShopId }, error); }));
if (isShowDialog)
BaseMsgForm.ShowError(error);
}
private void ucCheckBox_Click(object sender, EventArgs e)
{
ucCheckBox1.Checked = false;
ucCheckBox2.Checked = false;
ucCheckBox3.Checked = false;
ucCheckBox4.Checked = false;
ucCheckBox5.Checked = false;
if (sender is UserComponent.UcCheckBox)
{
(sender as UserComponent.UcCheckBox).Checked = true;
if (sender == ucCheckBox1) lblColorTag.Text = "0";
if (sender == ucCheckBox2) lblColorTag.Text = "1";
if (sender == ucCheckBox3) lblColorTag.Text = "2";
if (sender == ucCheckBox4) lblColorTag.Text = "3";
if (sender == ucCheckBox5) lblColorTag.Text = "4";
}
}
private void btnNotesCancel_Click(object sender, EventArgs e)
{
pnlUpdateNotes.Visible = false;
}
private void btnNotesOK_Click(object sender, EventArgs e)
{
var orderIds = lblOrderId.Text.Split(';');
var orderIdStr = lblOrderId.Text;
if (cancellationTokenSource != null)
cancellationTokenSource.Cancel();
cancellationTokenSource = new CancellationTokenSource();
Task.Run(() =>
{
int index = 0;
foreach (var orderId in orderIds)
{
index++;
if (orderIdStr.Contains(";"))
Invoke(new Action(() =>
{
this.statusBar.lblTaskStatus.Text = "正在修改备注 " + index + "/" + orderIds.Length;
}));
if (cancellationTokenSource.IsCancellationRequested)
break;
var notes = txtNotes.Text.Trim();
var tagColor = lblColorTag.Text.ParseToInt();
var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colOrderId"].Value.ParseToString() == orderId).ToList();
if (rows.Count == 0)
continue;
// 批量备注跳过已备注内容
if (chkSkipHasNotesOrder.Checked && orderIdStr.Contains(";") && !rows[0].Cells["colNotes"].Value.ParseToString().IsNullOrEmpty())
{
continue;
}
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == rows[0].Cells["colSupplierId"].Value.ParseToString());
if (shop != null)
{
var notesRst = WXOrderList.addNotes(shop, orderId, notes, tagColor);
{
if (notesRst.Contains("请求超过频率限制"))
{
Thread.Sleep(8000);
notesRst = WXOrderList.addNotes(shop, orderId, notes, tagColor);
}
}
Thread.Sleep(Randomx.GetId(300, 500));
if (notesRst.Contains("\"code\":0"))
{
Invoke(new Action(() =>
{
foreach (var row in rows)
{
row.Cells["colNotes"].Value = notes;
row.Cells["colNotesColor"].Value = tagColor;
row.Cells["colOpResult"].Value = "修改备注成功";
row.Cells["colNotes"].Style.ForeColor = DefaultForeColor;
if (tagColor == 1)
row.Cells["colNotes"].Style.ForeColor = Color.Red;
if (tagColor == 2)
row.Cells["colNotes"].Style.ForeColor = Color.Orange;
if (tagColor == 3)
row.Cells["colNotes"].Style.ForeColor = Color.Green;
if (tagColor == 4)
row.Cells["colNotes"].Style.ForeColor = Color.Blue;
}
pnlUpdateNotes.Visible = false;
}));
}
else
{
foreach (var row in rows)
{
var err = BaseRegex.GetStringJsonByRegs(ref notesRst, notesRst, "msg", "errMsg", "err_msg", "errorMsg", "error_msg");
row.Cells["colOpResult"].Value = "修改备注失败 " + err;
}
}
}
}
Invoke(new Action(() =>
{
pnlUpdateNotes.Visible = false;
if (orderIdStr.Contains(";"))
this.statusBar.lblTaskStatus.Text = "备注已修改" + index + "/" + orderIds.Length;
}));
}, cancellationTokenSource.Token);
}
private void btnEditReceiveInfoCancel_Click(object sender, EventArgs e)
{
pnlEditReceiveInfo.Visible = false;
}
private void btnEditReceiveInfoOk_Click(object sender, EventArgs e)
{
var orderId = lblEditReceiveInfoOrderId.Text;
var address = txtEditReceiveInfoAddress.Text.Trim();
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == lblEditReceiveInfoShopId.Text);
var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colOrderId"].Value.ParseToString() == orderId);
var url = BaseClass.BuildObjString("shop/wx_add_mdy_order_address");
var data = UserLogin.GetSignaturex() + "&shop_id=" + shop.ShopId;
data += "&order_id=" + orderId;
data += "&order_address=" + GetHtml.UrlEncodeUtf8(address);
var html = GetHtml.PostUtf8(url, data);
if (!html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (!html.Contains("\"code\":200"))
{
var errMsg = BaseRegex.GetStringJson(ref html, "msg");
if (errMsg.IsNullOrEmpty())
errMsg = html;
foreach (var row in rows)
{
row.Cells["colOpResult"].Value = errMsg;
}
}
else
{
pnlEditReceiveInfo.Visible = false;
foreach (var row in rows)
{
row.Cells["colOpResult"].Value = "填写收货地址成功";
row.Cells["colReceiveInfo"].Value = address;
row.Cells["colReceiveInfo"].Style.ForeColor = DefaultForeColor;
}
if (rows.FirstOrDefault() != null && rows.FirstOrDefault().Cells["colOnlineWaybillOrderId"].Value.ParseToString() != null &&
(BaseClass.UserAuthority.Contains("在线寄件") || BaseClass.ParentAuthority.Contains("在线寄件")))
{
var rst = WXOrderList.searchOnlineWaybill(shop, orderId);
if (!rst.Contains("\"code\":0"))
{
//BaseMsgForm.ShowError("打印失败:" + rst, "错误", FormLevel.LARGE);
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "errMsg", "errorMsg", "err_msg", "error_msg");
Invoke(new Action(() =>
{
foreach (var row in rows)
row.Cells["colOpResult"].Value = "填写收货地址成功, 但查询打印失败:" + error;
pbLoading.Visible = false;
}));
return;
}
var ewaybillOrderId = BaseRegex.GetStringJson(ref rst, "ewaybillOrderId");
var waybillId = BaseRegex.GetStringJson(ref rst, "waybillId");
if (!ewaybillOrderId.IsNullOrEmpty() && !waybillId.IsNullOrEmpty() && ewaybillOrderId == rows.FirstOrDefault().Cells["colOnlineWaybillOrderId"].Value.ParseToString())
{
rst = WXOrderList.cancelOnlineWaybill(shop, ewaybillOrderId, waybillId);
if (!rst.Contains("\"code\":0"))
{
//BaseMsgForm.ShowError("打印失败:" + rst, "错误", FormLevel.LARGE);
var error = BaseRegex.GetStringJsonByRegs(ref rst, rst, "errMsg", "errorMsg", "err_msg", "error_msg");
Invoke(new Action(() =>
{
foreach (var row in rows)
row.Cells["colOpResult"].Value = "填写收货地址成功, 但取消打印失败:" + error;
pbLoading.Visible = false;
}));
return;
}
else
{
Invoke(new Action(() =>
{
foreach (var row in rows)
{
row.Cells["colOpResult"].Value = "填写收货地址成功, 取消打印成功";
row.Cells["colOnlineWaybill"].Value = "打印";
ShowDgvRow(row);
}
pbLoading.Visible = false;
}));
}
}
}
}
}
private void btnBuyUrlCancel_Click(object sender, EventArgs e)
{
pnlBuyUrl.Visible = false;
}
private void btnBuyUrlOk_Click(object sender, EventArgs e)
{
var orderId = lblBuyUrlOrderId.Text;
var buyUrl = txtBuyUrl.Text.Trim();
var spuCode = lblBuyUrlSpuCode.Text;
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == lblEditReceiveInfoShopId.Text);
var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colSpuCode"].Value.ParseToString() == spuCode);
var url = BaseClass.BuildObjString("shop/wx_add_mdy_buy_url_notes");
var data = UserLogin.GetSignaturex();
data += "&main_user_name=" + (BaseClass.GroupId == 3 ? BaseClass.UserName : BaseClass.ParentUserName);
data += "&spu_code=" + spuCode;
data += "&buy_url_notes=" + GetHtml.UrlEncodeUtf8(buyUrl);
var html = GetHtml.PostUtf8(url, data);
if (!html.Contains("\"code\":200"))
html = GetHtml.PostUtf8(url, data);
if (!html.Contains("\"code\":200"))
{
var errMsg = BaseRegex.GetStringJson(ref html, "msg");
if (errMsg.IsNullOrEmpty())
errMsg = html;
foreach (var row in rows)
{
row.Cells["colOpResult"].Value = errMsg;
}
}
else
{
pnlBuyUrl.Visible = false;
foreach (var row in rows)
{
row.Cells["colOpResult"].Value = "编辑采购地址成功";
row.Cells["colBuyUrl"].Value = buyUrl;
}
}
}
private void btnFilterOrder_Click(object sender, EventArgs e)
{
var filterOrderId = txtFilterOrderId.Text.Trim();
var filterProdInfo = txtFilterOrderProdInfo.Text.Trim();
var filterStatus = cmbFilterOrderStatus.Text.Trim();
var filterNotesNotContainWords = txtFilterNotesNotContainWords.Text.Trim().Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList();
var filterTitleNotContainWords = txtFilterTitleNotContainWords.Text.Trim().Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList();
var filterPriceNotContainWords = txtFilterPriceNotContainWords.Text.Trim().Split(new string[] { ",", ",", " " }, StringSplitOptions.RemoveEmptyEntries).ToList();
string group = cmbFilterOrderShopGroup.Text.Trim().Trim(';');
if (group == "全部")
group = "";
List<string> groupLst = group.Split(new string[] { ";", ";", ",", "," }, StringSplitOptions.RemoveEmptyEntries).ToList();
foreach (DataGridViewRow row in dgvOrder.Rows)
{
if (!row.Cells["colSupplierName"].Value.ParseToString().Contains(txtFilterOrderShopName.Text.Trim()))
{
row.Visible = false;
row.Cells["colCheck"].Value = false;
continue;
}
if (!string.IsNullOrWhiteSpace(group) && !groupLst.Contains(row.Cells["colOrderShopGroup"].Value.ParseToString()))
{
row.Visible = false;
row.Cells["colCheck"].Value = false;
continue;
}
string orderId = row.Cells["colOrderId"].Value.ParseToString();
if (!string.IsNullOrEmpty(filterOrderId) && !orderId.Contains(filterOrderId))
{
row.Cells["colCheck"].Value = false;
row.Visible = false;
continue;
}
string prodInfo = row.Cells["colProdInfo"].Value.ParseToString();
if (!string.IsNullOrEmpty(filterProdInfo) && !prodInfo.Contains(filterProdInfo))
{
row.Cells["colCheck"].Value = false;
row.Visible = false;
continue;
}
string orderStatus = row.Cells["colOrderStatus"].Value.ParseToString();
if (!string.IsNullOrEmpty(filterStatus) && !orderStatus.Contains(filterStatus))
{
row.Cells["colCheck"].Value = false;
row.Visible = false;
continue;
}
string orderNotes = row.Cells["colNotes"].Value.ParseToString();
if (filterNotesNotContainWords.Count > 0 && filterNotesNotContainWords.Any(w => orderNotes.Contains(w)))
{
row.Cells["colCheck"].Value = false;
row.Visible = false;
continue;
}
string goodsName = row.Cells["colProductName"].Value.ParseToString();
if (filterTitleNotContainWords.Count > 0 && filterTitleNotContainWords.Any(w => goodsName.Contains(w)))
{
row.Cells["colCheck"].Value = false;
row.Visible = false;
continue;
}
string orderGoodsPrice = row.Cells["colSalePrice"].Value.ParseToString();
if (filterPriceNotContainWords.Count > 0 && filterPriceNotContainWords.Any(w => orderGoodsPrice.ParseToDecimal() == w.ParseToDecimal()))
{
row.Cells["colCheck"].Value = false;
row.Visible = false;
continue;
}
if (chkFilterBeginTime.Checked && row.Cells["colOrderTimeFull"].Value.ParseToString().ParseToDateTime() < dtpFilterBeginTime.Value)
{
row.Cells["colCheck"].Value = false;
row.Visible = false;
continue;
}
if (chkFilterEndTime.Checked && row.Cells["colOrderTimeFull"].Value.ParseToString().ParseToDateTime() > dtpFilterEndTime.Value)
{
row.Cells["colCheck"].Value = false;
row.Visible = false;
continue;
}
row.Visible = true;
}
this.lblOrderCount.Text = "当前展示订单:" + this.dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Visible == true).Count().ToString() + " 条";
}
private void btnRestore_Click(object sender, EventArgs e)
{
txtFilterOrderId.Text = "";
txtFilterOrderProdInfo.Text = "";
cmbFilterOrderStatus.Text = "";
txtFilterNotesNotContainWords.Text = "";
txtFilterTitleNotContainWords.Text = "";
txtFilterOrderShopName.Text = "";
txtFilterPriceNotContainWords.Text = "";
cmbFilterOrderShopGroup.Text = "全部";
chkFilterEndTime.Checked = false;
chkFilterBeginTime.Checked = false;
dtpFilterBeginTime.Value = DateTime.Now.AddDays(-1);
dtpFilterEndTime.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
btnFilterOrder_Click(null, null);
}
private void btnRefreshPrintId_Click(object sender, EventArgs e)
{
GetRefreshPrintId();
foreach (DataGridViewRow row in dgvOrder.Rows)
{
ShowRefreshPrintId(row);
}
BaseMsgForm.ShowInfo("已刷新");
}
void GetRefreshPrintId()
{
try
{
lstPrintLog.Clear();
string logPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "WeChatShopPrintClient\\log");
DirectoryInfo dirInfo = new DirectoryInfo(logPath); // 创建DirectoryInfo对象
FileInfo[] files = dirInfo.GetFiles();
foreach (FileInfo file in files)
{
if (file.FullName.EndsWith(".log"))
{
string content = File.ReadAllText(file.FullName);
lstPrintLog.Add(content);
}
}
}
catch (Exception ex)
{
BaseMsgForm.ShowError("读取打印单号失败 " + ex.Message);
}
}
void ShowRefreshPrintId(DataGridViewRow row)
{
var waybillOrderId = row.Cells["colOnlineWaybillOrderId"].Value.ParseToString();
if (!waybillOrderId.IsNullOrEmpty())
{
foreach (var fileStr in lstPrintLog)
{
//task 4527181286223364098
var index = fileStr.IndexOf("task " + waybillOrderId);
if (index > 50)
{
var str = fileStr.Substring(index - 50, 50 + ("task " + waybillOrderId).Length);
str = str.Replace("task " + waybillOrderId, "").Replace("printPage", "").Replace("requestID", "").Trim();
if (str.ParseToLong() > 0)
row.Cells["colPrintId"].Value = str;
break;
}
}
}
}
private void btnBatchOnlieWaybill_Click(object sender, EventArgs e)
{
var rows = this.dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList();
if (rows.Count == 0)
{
BaseMsgForm.ShowError("请选择订单");
return;
}
if (cancellationTokenSource != null)
cancellationTokenSource.Cancel();
cancellationTokenSource = new CancellationTokenSource();
Task.Run(() =>
{
foreach (var row in rows)
{
var shopId = row.Cells["colSupplierId"].Value.ParseToString();
var shop = GlobalConfig.ShopLoginList.FirstOrDefault(s => s.ShopId == shopId);
if (shop != null)
{
if (cancellationTokenSource.IsCancellationRequested)
break;
if (!row.Cells["colPrintId"].Value.ParseToString().IsNullOrEmpty())
{
row.Cells["colOpResult"].Value = "已打印,跳过";
continue;
}
Thread.Sleep(6000);
GetOnlineWayBill(shop, row);
}
}
Invoke(new Action(() =>
{
if (cancellationTokenSource.IsCancellationRequested)
BaseMsgForm.ShowInfo("批量打印终止");
else
BaseMsgForm.ShowInfo("批量打印完成");
}));
}, cancellationTokenSource.Token);
}
private void txtEditReceiveInfoAddress_TextChanged(object sender, EventArgs e)
{
txtEditReceiveInfoAddress.TextChanged -= txtEditReceiveInfoAddress_TextChanged;
if (txtEditReceiveInfoAddress.Text.Length > 25 && txtEditReceiveInfoAddress.Text.Substring(0, 25).Contains("*******"))
{
txtEditReceiveInfoAddress.Text = txtEditReceiveInfoAddress.Text.Substring(0, 25).Replace("*******", WaybillHelper.MobileHead[Randomx.GetId(WaybillHelper.MobileHead.Count)] + Randomx.GetNumber(4)) + txtEditReceiveInfoAddress.Text.Substring(25);
}
if (txtEditReceiveInfoAddress.Text.Length > 25 && txtEditReceiveInfoAddress.Text.Substring(0, 25).Contains("****"))
{
txtEditReceiveInfoAddress.Text = txtEditReceiveInfoAddress.Text.Substring(0, 25).Replace("****", Randomx.GetNumber(4)) + txtEditReceiveInfoAddress.Text.Substring(25);
}
if (txtEditReceiveInfoAddress.Text.Length > 5 && txtEditReceiveInfoAddress.Text.Substring(0, 5).Contains("**"))
{
txtEditReceiveInfoAddress.Text = txtEditReceiveInfoAddress.Text.Substring(0, 5).Replace("**", "") + txtEditReceiveInfoAddress.Text.Substring(5);
}
if (txtEditReceiveInfoAddress.Text.Length > 4 && txtEditReceiveInfoAddress.Text.Substring(0, 4).Contains("*"))
{
txtEditReceiveInfoAddress.Text = txtEditReceiveInfoAddress.Text.Substring(0, 4).Replace("*", "") + txtEditReceiveInfoAddress.Text.Substring(4);
}
txtEditReceiveInfoAddress.Text = txtEditReceiveInfoAddress.Text.Replace("\r", " ").Replace("\n", " ").Replace(" ", " ").Replace(" ", " ").Replace(" ", " ").Replace(" ", " ");
txtEditReceiveInfoAddress.TextChanged += txtEditReceiveInfoAddress_TextChanged;
}
private void btnStopBatchOnlineWaybill_Click(object sender, EventArgs e)
{
if (this.cancellationTokenSource != null)
this.cancellationTokenSource.Cancel();
isOnlineWayBill = false;
}
string UpdateOrderStatus(ShopLoginInfo shop, string orderId)
{
var rst = WXOrderList.orderSearch(shop, orderId);
if (!rst.Contains("\"code\":0"))
{
ShowShopError(shop, rst);
return "获取\r\n失败";
}
try
{
// 更新备注信息
var jArr = JsonHelper.JObjectParse(rst)["orderList"];
var orderLst = JsonHelper.DeserializeJsonToList<WxOrderInfoLite>(JsonHelper.SerializeObject(jArr));
var row = dgvOrder.Rows.Cast<DataGridViewRow>().ToList().FirstOrDefault(r => r.Cells["colOrderId"].Value.ParseToString() == orderId);
if (row != null)
{
row.Cells["colNotes"].Value = BaseRegex.GetStringJson(ref rst, "flagNotes").ParseToString();
row.Cells["colNotesColor"].Value = BaseRegex.GetStringJson(ref rst, "flagColor").ParseToInt();
ShowDgvRow(row, orderLst.FirstOrDefault());
}
}
catch (Exception ex)
{
ShowShopError(shop, ex.Message);
}
var statusStr = BaseRegex.GetStringJson(ref rst, "statusStr");
if (string.IsNullOrEmpty(statusStr))
statusStr = "不存在";
return statusStr;
}
private void btnBatchNotes_Click(object sender, EventArgs e)
{
var rows = dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Cells["colCheck"].Value.ParseToBool() == true).ToList();
if (rows.Count == 0)
{
BaseMsgForm.ShowError("请选择订单");
return;
}
pnlUpdateNotes.Visible = true;
pnlEditReceiveInfo.Visible = false;
pnlBuyUrl.Visible = false;
lblShopName.Text = string.Join(";", rows.Select(r => r.Cells["colSupplierName"].Value.ParseToString()).Distinct().ToList());
lblOrderId.Text = string.Join(";", rows.Select(r => r.Cells["colOrderId"].Value.ParseToString()).Distinct().ToList());
txtNotes.Text = rows[0].Cells["colNotes"].Value.ParseToString();
lblColorTag.Text = rows[0].Cells["colNotesColor"].Value.ParseToString();
ucCheckBox1.CheckBoxCheckColor = Color.Gray;
ucCheckBox1.CheckBoxBorderColor = Color.Gray;
ucCheckBox2.CheckBoxCheckColor = Color.Red;
ucCheckBox2.CheckBoxBorderColor = Color.Red;
ucCheckBox3.CheckBoxCheckColor = Color.Orange;
ucCheckBox3.CheckBoxBorderColor = Color.Orange;
ucCheckBox4.CheckBoxCheckColor = Color.Green;
ucCheckBox4.CheckBoxBorderColor = Color.Green;
ucCheckBox5.CheckBoxCheckColor = Color.Blue;
ucCheckBox5.CheckBoxBorderColor = Color.Blue;
ucCheckBox1.Checked = lblColorTag.Text == "0";
ucCheckBox2.Checked = lblColorTag.Text == "1";
ucCheckBox3.Checked = lblColorTag.Text == "2";
ucCheckBox4.Checked = lblColorTag.Text == "3";
ucCheckBox5.Checked = lblColorTag.Text == "4";
}
private void dgvOrder_RowsAdded(object sender, DataGridViewRowsAddedEventArgs e)
{
this.lblOrderCount.Text = "当前展示订单:" + this.dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Visible == true).Count().ToString() + " 条";
}
private void dgvOrder_RowsRemoved(object sender, DataGridViewRowsRemovedEventArgs e)
{
this.lblOrderCount.Text = "当前展示订单:" + this.dgvOrder.Rows.Cast<DataGridViewRow>().Where(r => r.Visible == true).Count().ToString() + " 条";
}
}
public class WXOrderList
{
/// <summary>
///
/// </summary>
/// <param name="shop"></param>
/// <param name="orderStatus">订单状态 20待发货 30已发货</param>
/// <returns></returns>
public static string orderListSearch(ShopLoginInfo shop, int orderStatus = 20, int pageNum = 1, int pageSize = 30, long? timeStart = null, long? timeEnd = null)
{
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/list/cgi/orderSearch?token=&lang=zh_CN";
string body = @"{""isSearch"":false,""pageSize"":" + pageSize +
@",""overTime"":0,""pengingShipOneDay"":0,""pengingShipSixHour"":0,""expediteDelivery"":0,""stockoutPunishAlert"":0,""waybillStatus"":0,""pageNum"":1" +
@",""onAftersaleOrderExist"":0,""orderStatus"":" + orderStatus + @"}";
if (pageNum > 1)
body = @"{""isSearch"":false,""pageSize"":" + pageSize +
@",""overTime"":0,""pengingShipOneDay"":0,""pengingShipSixHour"":0,""expediteDelivery"":0,""stockoutPunishAlert"":0,""waybillStatus"":0,""pageNum"":1" +
@",""onAftersaleOrderExist"":0,""orderStatus"":" + orderStatus + @",""page"":" + pageNum + @"}";
//@"{""isSearch"":true,""pageSize"":30,""orderId"":"""",""orderTime"":{""type"":0,""time"":[1777564800000,1779379200000]},""telNumber"":"""",""title"":"""",""receiverName"":"""",""finderNickName"":"""",""merchantNotes"":"""",""merchantNotesTagColor"":0,""waybillId"":"""",""productCode"":"""",""inspectStatus"":"""",""finderWay"":0,""searchOrderType"":0,""payMethod"":0,""orderChannel"":0,""bulkbuyActivityId"":"""",""deliveryNegotiationFlag"":0,""transactionId"":"""",""page"":1,""overTime"":0,""pengingShipOneDay"":0,""pengingShipSixHour"":0,""expediteDelivery"":0,""stockoutPunishAlert"":0,""waybillStatus"":0,""pageNum"":1,""onAftersaleOrderExist"":0,""orderStatus"":30,""startCreateTime"":1777564800000,""endCreateTime"":1779379200000}";
if (timeStart != null && timeEnd != null)
body = @"{""isSearch"":true,""pageSize"":30,""orderId"":"""",""orderTime"":{""type"":0,""time"":[" + timeStart + @"," + timeEnd + @"]},
""telNumber"":"""",""title"":"""",""receiverName"":"""",""finderNickName"":"""",""merchantNotes"":"""",""merchantNotesTagColor"":0,
""waybillId"":"""",""productCode"":"""",""inspectStatus"":"""",""finderWay"":0,""searchOrderType"":0,""payMethod"":0,""orderChannel"":0,
""bulkbuyActivityId"":"""",""deliveryNegotiationFlag"":0,""transactionId"":"""",""page"":" + pageNum + @",""overTime"":0,""pengingShipOneDay"":0,
""pengingShipSixHour"":0,""expediteDelivery"":0,""stockoutPunishAlert"":0,""waybillStatus"":0,""pageNum"":1,""onAftersaleOrderExist"":0,
""orderStatus"":" + orderStatus + @",""startCreateTime"":" + timeStart + @",""endCreateTime"":" + timeEnd + @"}";
string refere = "https://store.weixin.qq.com/shop/order/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string orderSearch(ShopLoginInfo shop, string orderId)
{
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/list/cgi/orderSearch?token=&lang=zh_CN";
string body = @"{""isSearch"":true,""pageSize"":30,""overTime"":0,""pengingShipOneDay"":0,""pengingShipSixHour"":0,""expediteDelivery"":0,""stockoutPunishAlert"":0,
""waybillStatus"":0,""pageNum"":1,""onAftersaleOrderExist"":0,""orderStatus"":0,""orderId"":""" + orderId + @""",
""orderTime"":{""type"":0,""time"":[null,null]},""telNumber"":"""",""title"":"""",""receiverName"":"""",""finderNickName"":"""",
""merchantNotes"":"""",""merchantNotesTagColor"":0,""waybillId"":"""",""productCode"":"""",""inspectStatus"":"""",""finderWay"":0,
""searchOrderType"":0,""payMethod"":0,""orderChannel"":0,""bulkbuyActivityId"":"""",""deliveryNegotiationFlag"":0,""transactionId"":"""",
""page"":1,""startCreateTime"":null,""endCreateTime"":null}";
string refere = "https://store.weixin.qq.com/shop/order/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string addNotes(ShopLoginInfo shop, string orderId, string notes, int tagColor = 0)
{
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/common/cgi/batchMerchantNotes?token=&lang=zh_CN";
string body = @"{""items"":[{""orderId"":""" + orderId + @""",""merchantNotes"":""" + notes + @""",""merchantNotesTagColor"":" + tagColor + @"}]}";
string refere = "https://store.weixin.qq.com/shop/order/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string EditPrice(ShopLoginInfo shop, string spuId, string skuId, int newPrice)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/listingUpdatePrice?token=&lang=zh_CN";
string body = @"{""skuList"":[{""spuId"":" + spuId + @",""skuId"":""" + skuId + @""",""salePrice"":" + newPrice + @"}],""uploadSource"":6}";
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
/// <summary>
/// 编辑商品价格
/// </summary>
/// <param name="shop"></param>
/// <param name="priceData">@"{""skuList"":[{""spuId"":" + spuId + @",""skuId"":""" + skuId + @""",""salePrice"":" + newPrice + @"}],""uploadSource"":6}";</param>
/// <returns></returns>
public static string EditPrice(ShopLoginInfo shop, JObject priceData)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/listingUpdatePrice?token=&lang=zh_CN";
//string body = @"{""skuList"":[{""spuId"":" + spuId + @",""skuId"":""" + skuId + @""",""salePrice"":" + newPrice + @"}],""uploadSource"":6}";
string body = JsonHelper.SerializeObject(priceData);
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string decryptOrder(ShopLoginInfo shop, string orderId)
{
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/common/cgi/decryptOrder?token=&lang=zh_CN";
string body = @"{""id"":""" + orderId + @"""}";
string refere = "https://store.weixin.qq.com/shop/order/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
// 预在线寄件
public static string preCreateOrderWaybillOnline(ShopLoginInfo shop, WXPreCreateOrderWaybillOnlineParam preWaybillOnlineparam)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodewaybill/alltoall/platPreCreateOrder?token=&lang=zh_CN";
//string body = @"{""deliveryIds"":[""JTSD"",""YTO"",""YUNDA"",""ZTO"",""STO"",""JD"",""DBKD"",""CNSD"",""SF""],""req"":{""requestContent"":[{""deliveryId"":"""",""orderType"":1,""ecOrderList"":[{""ecOrderId"":""3736506990289905920"",""goodsList"":[{""goodCount"":1,""goodName"":""【抢限量印签】信任养育:你的孩子本来就很好 白瑞家庭教育作品,千万父母追随,20余年经验沉淀"",""productId"":""10000852376968"",""skuId"":""15057811153""}]}],""sender"":{""name"":""陈图书"",""mobile"":""13023098035"",""province"":""安徽省"",""city"":""合肥市"",""county"":""肥西县"",""street"":"""",""address"":""上派镇中盟电子产业园8栋一单元(东电梯3楼快递指定存放点)"",""lat"":"""",""lng"":""""},""deliveryInfo"":{""appointmentType"":1,""datetime"":""20260521""},""extInfo"":{""packageWeightG"":1000},""uuid"":""37f59ae7-32fb-4e7a-89af-1d228c9d933f"",""orderVasList"":[],""source"":3}]}}";
string body = JsonHelper.SerializeObject(preWaybillOnlineparam);
string refere = "https://store.weixin.qq.com/shop/waybill/allToAll";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
//{"ret":0,"list":[{"code":0,"responseContent":[{"retcode":0,"errorMsg":"","deliveryErrorMsg":"success","totalFee":"390","feeDetail":{"totalShippingFee":"390","totalVasFee":0,"otherFee":0,"otherFeeName":""},"predictedArrivedTime":0,"uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","deliveryId":"JTSD","orderType":1,"ewaybillOrderId":"4525894130917130247","deliveryResultCode":"0","errorType":0,"blockExplainUrl":{},"showInsufficientBalance":true}],"showInsufficientBalance":true},{"code":0,"responseContent":[{"retcode":0,"errorMsg":"","deliveryErrorMsg":"success","totalFee":"440","feeDetail":{"totalShippingFee":"440","totalVasFee":0,"otherFee":0,"otherFeeName":""},"predictedArrivedTime":0,"uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","deliveryId":"YTO","orderType":1,"ewaybillOrderId":"4525894132274036739","deliveryResultCode":"0","errorType":0,"blockExplainUrl":{},"showInsufficientBalance":true}],"showInsufficientBalance":true},{"code":0,"responseContent":[{"retcode":0,"errorMsg":"","deliveryErrorMsg":"success","totalFee":"440","feeDetail":{"totalShippingFee":"440","vasPriceDetail":[{"vasType":"","vasDetail":"","vasPrice":0}],"totalVasFee":0,"otherFee":0,"otherFeeName":""},"predictedArrivedTime":1779537600,"uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","deliveryId":"YUNDA","orderType":1,"ewaybillOrderId":"4525894133585330193","deliveryResultCode":"0","errorType":0,"blockExplainUrl":{},"showInsufficientBalance":true}],"showInsufficientBalance":true},{"code":0,"responseContent":[{"retcode":0,"errorMsg":"","deliveryErrorMsg":"成功","totalFee":"499","feeDetail":{"totalShippingFee":"499","totalVasFee":0,"otherFee":0,"otherFeeName":""},"predictedArrivedTime":0,"uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","deliveryId":"ZTO","orderType":1,"ewaybillOrderId":"4525894130125225990","deliveryResultCode":"0","errorType":0,"blockExplainUrl":{},"showInsufficientBalance":true}],"showInsufficientBalance":true},{"code":0,"responseContent":[{"retcode":0,"errorMsg":"","deliveryErrorMsg":"success","totalFee":"440","feeDetail":{"totalShippingFee":"440","totalVasFee":0,"otherFee":0,"otherFeeName":""},"predictedArrivedTime":0,"uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","deliveryId":"STO","orderType":1,"ewaybillOrderId":"4525894133215215616","deliveryResultCode":"0","errorType":0,"blockExplainUrl":{},"showInsufficientBalance":true}],"showInsufficientBalance":true},{"code":0,"responseContent":[{"retcode":0,"errorMsg":"","deliveryErrorMsg":"成功","totalFee":"600","feeDetail":{"totalShippingFee":"600","totalVasFee":0,"otherFee":0,"otherFeeName":"其他费用"},"predictedArrivedTime":0,"uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","deliveryId":"JD","orderType":1,"ewaybillOrderId":"4525894136920145936","deliveryResultCode":"0","errorType":0,"blockExplainUrl":{},"showInsufficientBalance":true}],"showInsufficientBalance":true},{"code":0,"responseContent":[{"retcode":0,"errorMsg":"","deliveryErrorMsg":"success","totalFee":"1100","feeDetail":{"totalShippingFee":"1100","totalVasFee":0,"otherFee":0,"otherFeeName":""},"predictedArrivedTime":1779445800,"uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","deliveryId":"DBKD","orderType":1,"ewaybillOrderId":"4525894139054424087","deliveryResultCode":"0","errorType":0,"blockExplainUrl":{},"showInsufficientBalance":true}],"showInsufficientBalance":true},{"code":0,"responseContent":[{"retcode":1000000,"errorMsg":"","deliveryErrorMsg":"获取预估价格失败","uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","deliveryId":"CNSD","orderType":1,"deliveryResultCode":"10002","errorType":0,"blockExplainUrl":{},"showInsufficientBalance":false}],"showInsufficientBalance":false},{"code":0,"responseContent":[{"retcode":0,"errorMsg":"","deliveryErrorMsg":"success","totalFee":"1100","feeDetail":{"totalShippingFee":"1100","totalVasFee":0,"otherFee":0,"otherFeeName":""},"predictedArrivedTime":1779530400,"uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","deliveryId":"SF","orderType":231,"ewaybillOrderId":"4525894132961951757","deliveryResultCode":"0","errorType":0,"blockExplainUrl":{},"showInsufficientBalance":true}],"showInsufficientBalance":true}]}
return result;
}
// 设置在线寄件
public static string createOrderWaybillOnline(ShopLoginInfo shop, WXCreateOrderWaybillOnlineParam waybillOnlineparam)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodewaybill/alltoall/platCreateOrder?token=&lang=zh_CN";
//string body = @"{""payMethod"":2,""requestContent"":[{""deliveryId"":""YTO"",""ewaybillOrderId"":""4525894132274036739"",""ecOrderList"":[{""ecOrderId"":""3736528290099110144"",""goodsList"":[{""goodCount"":1,""goodName"":""荣恒教育[青春期男孩要知道的45件事]10-16岁必读告别迷茫与尴尬青春期枕边书送给孩子的成长礼物"",""productId"":""10000826945183"",""skuId"":""14514725990""}]}],""sender"":{""name"":""李"",""mobile"":""17855123321"",""province"":""江苏省"",""city"":""常州市"",""county"":""天宁区"",""street"":"""",""address"":""九洲环宇大酒店(常州青果巷火车站店)201"",""lat"":""31.779615"",""lng"":""119.974997""},""deliveryInfo"":{""appointmentType"":1,""datetime"":""20260522""},""extInfo"":{""packageWeightG"":1000},""remark"":"""",""uuid"":""1ef8b9e2-d68e-4e12-8bda-e188e246d5ae"",""orderVasList"":[],""source"":3}]}";
string body = JsonHelper.SerializeObject(waybillOnlineparam);
string refere = "https://store.weixin.qq.com/shop/waybill/allToAll";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
//{"ret":0,"code":0,"responseContent":[{"ewaybillOrderId":"4525894132274036739","retcode":0,"errorMsg":"","deliveryErrorMsg":"success","waybillId":"YT2547223870618","deliveryId":"YTO","uuid":"1ef8b9e2-d68e-4e12-8bda-e188e246d5ae","errorType":0,"deliveryResultCode":"0","blockExplainUrl":{}}],"displayNewuserTips":false,"createSuccTips":"预计 明天上门取件"}
return result;
}
public static string searchOnlineWaybill(ShopLoginInfo shop, string orderId)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodewaybill/alltoall/searchBill?token=&lang=zh_CN";
string body = @"{""createMode"":1,""orderId"":""" + orderId + @""",""cosignmentOrderId"":"""",""goodsTitle"":"""",""receiverPhone"":"""",""receiverName"":"""",""billStatus"":null,""orderStatus"":null,""offset"":0,""limit"":20,""waybillId"":"""",""payMethodList"":[],""platDisplayOrderStatusList"":[],""cosignmentOrderTime"":[],""cosignmentAssignTime"":[],""storeName"":"""",""orderNote"":"""",""deliveryOrderStatusList"":[10,20,40]}";
string refere = "https://store.weixin.qq.com/shop/waybill/allToAll";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string cancelOnlineWaybill(ShopLoginInfo shop, string ewaybillOrderId, string waybillId)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodewaybill/alltoall/platCancelOrder?token=&lang=zh_CN";
string body = @"{""requestContent"":[{""ewaybillOrderId"":""" + ewaybillOrderId + @""",""waybillId"":""" + waybillId + @""",""source"":1,""merchCancelReason"":""临时缺货,库存不足""}]}";
string refere = "https://store.weixin.qq.com/shop/waybill/allToAll";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string cancelActivity(ShopLoginInfo shop, JObject activityData)
{
string url = "https://store.weixin.qq.com/shop-faas/mmeckolmarketingnode/activity/cgi/updateRequestProductList?token=&lang=zh_CN";
string body = JsonHelper.SerializeObject(activityData);
string refere = "https://store.weixin.qq.com/shop/marketingkol/activity/detail?id=1016&curTab=2";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string orderSendOut(ShopLoginInfo shop, string orderId, string waybillId)
{
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/ship/cgi/orderSendOut?token=&lang=zh_CN";
string body = @"{""orderId"":""" + orderId + @""",""deliveryProduct"":{""deliveryId"":""OTHER"",""waybillId"":""" + waybillId + @""",""isAllProduct"":true,""deliverType"":1}}";
string refere = "https://store.weixin.qq.com/shop/order/list?type=3";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string updateDeliveryInfo(ShopLoginInfo shop, UpdateDeliverInfoParam param)
{
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/ship/cgi/updateDeliveryInfo?token=&lang=zh_CN";
string body = JsonHelper.SerializeObject(param);
string refere = "https://store.weixin.qq.com/shop/order/list?type=3";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string initDeliveryInfo(ShopLoginInfo shop, string orderId)
{
string url = "https://store.weixin.qq.com/shop-faas/mmchannelstradeorder/ship/cgi/initShipData?token=&lang=zh_CN";
string body = @"{""id"":""" + orderId + @"""}";
string refere = "https://store.weixin.qq.com/shop/order/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string getSkuBySpu(ShopLoginInfo shop, string spuIds)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/getStockBySpu?token=&lang=zh_CN";
string body = @"{""productIdList"":[" + spuIds + @"]}";
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string batchUpdateStockAdd(ShopLoginInfo shop, string spuId, string skuId, string num)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/batchUpdateStock?token=&lang=zh_CN";
string body = @"{""skuList"":[{""spuId"":""" + spuId + @""",""skuId"":""" + skuId + @""",""diffType"":1,""num"":" + num + "}]}";
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static string batchUpdateStockReduce(ShopLoginInfo shop, string spuId, string skuId, string num)
{
string url = "https://store.weixin.qq.com/shop-faas/mmecnodeproductlist/cgi/goods/batchUpdateStock?token=&lang=zh_CN";
string body = @"{""skuList"":[{""spuId"":""" + spuId + @""",""skuId"":""" + skuId + @""",""diffType"":2,""num"":" + num + "}]}";
string refere = "https://store.weixin.qq.com/shop/goods/list";
var result = WXHttpResponseBLL.WeiXinPostResponse(shop, url, body, refere);
return result;
}
public static List<string> quantifiers1 = new List<string> { "栋", "楼", "幢", "号", "弄", "巷" };
public static List<string> quantifiers2 = new List<string> { "", "", "", "", "", "", "", "", "", "", "", "", "室", "室", "室", "室", "室", "室", "室", "房间" };
public string detailAddress { get; set; } = @"晨辉东路金茂家园栋西侧附房
云栖巷老供销社后院平房第间
星桥南路丽景公寓B座顶层复式
松竹里便民市场北侧临街铺面
望月路农机大院排号院落
丹枫街翰林雅居沿街二层商铺
清荷路水岸人家南区独立小院
古柏巷原粮管所宿舍西户
长庚西路天悦花园栋架空层旁住宅
翠柳街红枫小区北门旁自建房
石泉路山泉新村中心位置宅院
烟柳巷纺织厂老宿舍楼东侧
锦华中路锦绣庭院独栋民居
柏杨路阳光里小区步梯六楼
梅香街梅园新村后排平房
桐荫巷木器厂旧址院内住房
润和路和乐家园东区一单元
秋实街丰收大院前排临街房
兰馨巷兰花苑底层储物间改住房
洪波东路浪潮公寓临街单间
青槐路槐香里老宅东厢房
杏园街杏树园片区自建小楼
竹溪巷溪畔民居联排住宅
盛景路盛和府邸小高层中户
永宁街安宁里老街区临街宅院
荷风巷荷苑小区边角独立房
凌霄路凌霄花园顶楼带露台
梧叶街梧桐大院后排住房
花溪巷花溪雅居一楼带小院
景阳西路景阳小区电梯楼西户
松涛街松涛里老式单元楼
柳泉巷泉柳民居联排平房
朝阳里东街号院栋西侧平房
凤鸣巷中段便民楼后巷
青槐路辅路老粮站旁独院
荷风街南支巷铁皮房片区
松园后街花木市场深处院落
柳泉巷北口杂货铺隔壁内院
锦华里二巷三层自建小楼
玉泉路西巷排水渠旁民居
丹枫街北头农机站后侧
紫竹巷中段围墙内老宅
广福里三巷临街复式宅院
云溪路东支巷仓储区旁住房
红梅巷南段果蔬摊后方小院
翠园后街苗圃园边上住宅
安和巷南口修车铺内侧院落
星耀路西二巷老式联排民房
兰馨里一巷阁楼式民居
响水街北巷石桥旁农家院
梧桐巷中段老戏台后方住所
顺达路南支巷废品站隔壁小院
福临里四巷坡地自建房屋
月河路东巷码头旁临街房
金桂巷北段木器厂后侧民居
怡园后街假山旁独立院落
静宁巷中段围墙拐角老宅
通达路西三巷货运站旁住房
海棠里二巷台阶上方宅院
清流街南巷古井边上民房
白杨巷南段预制板老式楼房
隆兴路东支巷饲料店后院内宅
瑞祥里一巷矮墙围合小院
镜湖路北巷游船码头后侧房
丁香巷中段裁缝铺深处院落
桃园后街果林边上自建屋
平和巷北口理发店内侧住宅
远航路南二巷物流点旁民房
茉莉里三巷坡路两侧宅院
寒溪街西巷河岸边联排房
古柏巷北段祠堂旁老式民居
兴盛路东三巷五金店后方小院
泰和里二巷架空层上方住房
碧泉路南巷泉眼旁农家院
蔷薇巷南段花店后侧内院
枣园后街枣树林深处宅院
永宁巷中段路牙边小平房
昌盛路西四巷建材市场旁房
木槿里一巷跨巷小楼院落
沙河街北巷河滩边自建房屋
石榴巷北段糕点铺内侧住宅
康乐路南支巷诊所后方小院
吉庆里四巷竹林边上老宅
寒山路东巷山脚临街民房
紫薇巷中段书画店深处院落
梨园后街梨园深处联排房
崇安巷南口鞋店后方内宅
鸿达路北三巷货运堆场旁房
菖蒲里二巷水塘边小平房
长溪街西巷溪流旁农家院
腊梅巷南段酱菜铺内侧院落
杏园后街杏树旁老式民居
定安巷中段丁字路口内院
广盛路东四巷农资店后方房
菱荷里三巷荷塘边上宅院
岩泉路南巷山石旁自建房屋
迎春巷北段果蔬市场深处院
枫香路北支巷木材站后侧房
顺安里一巷窄巷深处老宅
渔舟街东巷渔船码头旁民房
连翘巷中段药铺内侧小院
梅园后街梅林边上住宅
泰安巷北口修车行后方内院
恒通路南四巷中转仓旁房屋
芦花里二巷芦苇荡边小平房
深溪街北巷深沟旁农家院
素馨巷南段杂货摊后方院落
李园后街李树旁老式民房
广安巷中段弯道内侧宅院
汇盛路西五巷钢材市场旁房
浮萍里三巷池塘边自建小屋
石泉路东巷石磨旁临街住宅
探春巷北段农贸市场深处院
香樟路南支巷苗圃后方房屋
久安里一巷高墙围合小院
归舟街西巷渡口边上民房
忍冬巷中段茶饮店内侧院落
槐园后街古槐旁老宅宅院
福安巷南口熟食铺后方内宅
盛达路北四巷快递站点旁房
荻花里二巷河湾边小平房
曲溪街东巷弯道溪流旁院
晚香巷南段粮油店内侧院落
橘园后街橘林深处联排房
乐安巷中段十字路内小院
宏通路南五巷汽修厂后方房
菖蒲湾三巷浅滩边自建屋
冷泉路西巷凉泉旁农家院
寻芳巷北段花卉市场深处院
楠木巷北支巷木料厂后侧房
长安里一巷窄道深处老宅
泊船街北巷停泊区旁民房
络石巷中段编织铺内侧院落
檀园后街檀木树旁老式房
民安巷北口洗车行后方内院
万顺路西六巷仓储中心旁房
萍叶里二巷浅塘边小平房
环溪街南巷环水区域宅院
落英巷南段干货店内侧院落
柚园后街柚树旁自建房屋
新安巷中段斜坡内侧小院
卓盛路东六巷水暖店后方房
荷尖里三巷荷塘浅处住宅
沸泉路东巷热泉边农家院
撷翠巷北段花鸟市场深处院
梓树巷南支巷板材站后侧房
静安里一巷矮巷深处老宅
行舟街西巷航道旁临街房
云苓巷中段草药铺内侧院落
栎园后街柞树旁老式民居
裕安巷南口卤味铺后方内宅
捷通路北五巷配送站旁房屋
苇叶里二巷苇丛边小平房
叠溪街东巷叠水景观旁院
凝香巷南段日杂店内侧院落
栗园后街栗树林深处房
熙安巷中段岔路内侧小院
隆通路南六巷铁艺店后方房
菱角里三巷菱塘边上住宅
灵泉路西巷灵泉井旁农家院
拾翠巷北段宠物市场深处院
椿树巷北支巷木器加工房后
泰安里一巷暗巷深处老宅
系舟街北巷系船桩旁民房
玉竹巷中段竹编铺内侧院落
桦园后街桦树旁自建房屋
淳安巷北口摩配行后方内院
广顺路西七巷五金仓储旁房
蒲草里二巷蒲草丛边小平房
连溪街南巷连河区域宅院
留香巷南段烟酒铺内侧院落
枣林后街老枣树旁老式房
淳和巷中段陡坡内侧小院
锦盛路东七巷玻璃店后方房
藕叶里三巷藕塘边上住宅
甘泉路东巷甜泉旁农家院
揽芳巷北段生鲜市场深处院
楝树巷南支巷木材堆场后侧
清安里一巷曲巷深处老宅
泛舟街西巷游船泊位旁房
麦冬巷中段杂粮铺内侧院落
杨园后街白杨树旁民居
惠安巷南口炸货铺后方内宅
畅通路北六巷货运门店旁房
茅草里二巷茅草丛边小平房
分支溪街东巷支流旁宅院
沁香巷南段熟食摊内侧院落
枫林后街红枫林深处房屋
仁和巷中段巷口内小院
鸿盛路南七巷门窗店后方房
芡实里三巷芡塘边上住宅
清泉路西巷清潭旁农家院
采芳巷北段水产市场深处院
槐树巷北支巷木作坊后侧房
和安里一巷深巷深处老宅
停舟街北巷停船区旁民房
黄精巷中段山货铺内侧院落
柳园后街垂柳旁自建房屋
顺和巷北口修理铺后方内院
通远路西八巷物流仓库旁房
灯草里二巷草棚边小平房
汇溪街南巷汇流口旁宅院
溢香巷南段果蔬店内侧院落
桃林后街桃林深处老式房
德和巷中段窄坡内侧小院
鼎盛路东八巷石材店后方房
慈姑里三巷浅塘边上住宅
冷潭路东巷寒潭旁农家院
撷芳巷北段肉禽市场深处院
榆树巷南支巷木料加工房后
睦安里一巷绕巷深处老宅
渡舟街西巷渡口码头旁房
首乌巷中段干货摊内侧院落
樟园后街香樟旁民居宅院
祥和巷南口面点铺后方内宅
致远路北七巷中转库房旁房
蒿草里二巷蒿丛边小平房
溪口街东巷溪口边上宅院
飘香巷南段服饰店内侧院落
杏林后街杏林深处联排房
谦和巷中段弯道内侧小院
强盛路南八巷广告店后方房
荸荠里三巷水田边自建屋
幽泉路西巷幽泉旁农家院
寻翠巷北段土产市场深处院
梧桐巷北支巷家具坊后侧房
静安里二巷叠巷深处老宅
摇舟街北巷摇橹船停泊区
百合巷中段花店摊内侧院落
杉园后街水杉旁老式民居
温和巷北口缝纫铺后方内院
恒远路西九巷货物堆场旁房
莎草里二巷湿地边小平房
溪尾街南巷溪尾滩旁宅院
浓香巷南段鞋靴店内侧院落
竹林后街翠竹深处房屋
恭和巷中段岔坡内侧小院
伟盛路东九巷铁艺加工后房
慈莲里三巷莲池边上住宅
深潭路东巷深潭边农家院
觅芳巷北段熟食市场深处院
朴树巷南支巷板材堆放区后
宁安里二巷回廊巷深处老宅
撑舟街西巷撑船码头旁房
贝母巷中段山珍铺内侧院落
枫园后街枫树旁自建房屋
协和巷北口修鞋铺后方内院
辽远路北八巷大件物流旁房
菅草里二巷荒草边小平房
溪腰街东巷溪流中段宅院
醇香巷南段箱包店内侧院落
松林后街松林深处老式房
善和巷中段墙根内侧小院
卓盛路南九巷汽配店后方房
水芹里三巷浅水沟边住宅
静泉路西巷静井旁农家院
访翠巷北段日杂市场深处院
椿芽巷北支巷苗木场后侧房
永安里二巷夹缝巷深处老宅
放舟街北巷放船水域旁民房
石斛巷中段药草摊内侧院落
桧园后街圆柏旁民居宅院
怡和巷南口蔬果铺后方内宅
悠远路北九巷快运站点旁房
蓑草里二巷坡地边小平房
岔溪街南巷岔流处旁宅院
鲜香巷南段家纺店内侧院落
柏林后街侧柏深处联排房
乐和巷中段石阶内侧小院
冠盛路东十巷水暖加工后房
水葱里三巷湿洼地边住宅
浅潭路东巷浅潭旁农家院
探芳巷北段水产摊市深处院
皂角巷南支巷旧木料区后侧
康安里二巷盘旋巷深处老宅
游舟街西巷游船航道旁房屋
芍药巷中段花艺铺内侧院落
槐林后街国槐旁自建房屋
泰和巷北口配锁铺后方内院
旷远路西十巷大型仓库旁房
苎草里二巷田埂边小平房
弯溪街东巷弯流处旁宅院
清香巷南段文具店内侧院落
杨林后街白杨深处老式房
淳和巷南段矮墙内侧小院
鼎盛路南十巷灯饰店后方房
泽泻里三巷沟渠边住宅
冷泉路东巷冷井旁农家院
撷芳巷南段肉品市场深处院
桑枝巷北支巷养蚕坊后侧房
福安里二巷绕墙巷深处老宅
泊舟街南巷泊船港湾旁民房
郁金巷中段香品铺内侧院落
榆园后街榆树旁民居宅院
永和巷南口面食铺后方内宅
迢远路北十巷零担物流旁房
蔺草里二巷塘埂边小平房
双溪街西巷双河交汇旁宅院
淡香巷南段玩具店内侧院落
柳林后街垂柳深处联排房
清和巷中段土坡内侧小院
隆盛路东十一巷五金加工后房
灯芯里三巷低洼地边住宅
温泉路西巷温池旁农家院
寻芳巷南段果蔬摊市深处院
桃枝巷南支巷果木场后侧房
吉安里二巷转角巷深处老宅
行舟街南巷行船航道旁房屋
牵牛巷中段藤蔓铺内侧院落
枣园后街酸枣旁自建房屋
祥和巷北口修表铺后方内院
广远路西十一巷仓储园区旁房
席草里二巷场院边小平房
长溪街东巷长流河道旁宅院
微香巷南段饰品店内侧院落
杏林后街杏树深处老式房
安和巷南段石墙内侧小院
宏盛路南十一巷化工店后方房
浮萍里四巷积水塘边住宅
暖泉路东巷暖井旁农家院
采翠巷南段花鸟摊市深处院
梅枝巷北支巷花木场后侧房
瑞安里二巷穿墙巷深处老宅
系舟街南巷系船码头旁民房
凤仙巷中段盆栽铺内侧院落
栗园后街板栗旁民居宅院
顺和巷南段木栏内侧小院
怀远路北十一巷配送仓库旁房
茅草里三巷沟坎边小平房
短溪街西巷短流河段旁宅院
余香巷南段皮具店内侧院落
枫林后街青枫深处联排房
平和巷北段土坎内侧小院
锦盛路东十二巷门窗加工后房
菱叶里四巷河塘边住宅
冰泉路西巷冰池旁农家院
访芳巷南段生鲜摊市深处院
竹枝巷南支巷竹器坊后侧房
兴安里二巷穿巷深处老宅
泛舟街南巷泛舟水域旁房屋
鸡冠巷中段种苗铺内侧院落
栎园后街青栎旁自建房屋
温和巷北口弹棉花铺后方院
超远路西十二巷货运园区旁房
蒲草里三巷渠边小平房
曲溪街西巷曲流河道旁宅院
留香巷南段眼镜店内侧院落
槐园后街刺槐深处老式房
仁和巷南段砖垛内侧小院
鸿盛路南十二巷钢材店后方房
荷叶里四巷藕塘边住宅
寒潭路东巷寒池旁农家院
探翠巷南段水产摊市深处院
柳枝巷北支巷柳条坊后侧房
乐安里二巷隐巷深处老宅
停舟街南巷停船港湾旁民房
茉莉巷中段香花铺内侧院落
杨园后街青杨旁民居宅院
谦和巷北段石栏内侧小院
腾远路北十二巷中转货场旁房
菅草里三巷坡埂边小平房
环溪街东巷环流水域旁宅院
溢香巷南段钟表店内侧院落
桑林后街桑树深处联排房
德和巷南段土墙内侧小院
强盛路东十二巷广告加工后房
芡实里四巷水田边住宅
灵泉路东巷灵池旁农家院
觅芳巷南段干货摊市深处院
榆枝巷南支巷木器坊后侧房
熙安里二巷暗巷深处老宅
渡舟街南巷渡船码头旁房屋
紫薇巷中段花苗铺内侧院落
樟园后街香樟旁自建房屋
恭和巷北段石坎内侧小院
逸远路西十三巷大件仓储旁房
蓑草里三巷垄边小平房
叠溪街西巷叠流水域旁宅院
飘香巷南段童装店内侧院落
柳林后街旱柳深处老式房
善和巷南段泥墙内侧小院
伟盛路南十二巷石材店后方房
慈姑里四巷浅塘边住宅
幽潭路西巷幽池旁农家院
寻翠巷南段土产摊市深处院
松枝巷北支巷木作坊后侧房
淳安里二巷深隐巷深处老宅
摇舟街南巷摇船泊位旁民房
木槿巷中段盆栽铺内侧院落
杉园后街冷杉旁民居宅院
睦和巷北段土坡内侧小院
悠远路北十三巷快运货场旁房
苎草里三巷地头小平房
汇溪街东巷汇流河道旁宅院
浓香巷南段男装店内侧院落
柏林后街圆柏深处联排房
谦和巷南段矮坎内侧小院
冠盛路东十三巷铁艺加工后房
荸荠里四巷沟渠边住宅
清泉路东巷清池旁农家院
撷翠巷南段宠物摊市深处院
柏枝巷南支巷板材坊后侧房
惠安里二巷窄隐巷深处老宅
撑舟街南巷撑船渡口旁房屋
海棠巷中段鲜果铺内侧院落
枫园后街红枫旁自建房屋
怡和巷北段石埂内侧小院
辽远路西十三巷零担仓储旁房
蔺草里三巷塘边小平房
分溪街西巷分流河道旁宅院
醇香巷南段女装店内侧院落
杨林后街青杨深处老式房
温和巷南段砖坎内侧小院
卓盛路南十三巷汽配店后方房
水芹里四巷湿地边住宅
静潭路西巷静池旁农家院
访芳巷南段熟食摊市深处院
椿枝巷北支巷苗木坊后侧房
顺安里二巷曲隐巷深处老宅
放舟街南巷放船水域旁民房
丁香巷中段香包铺内侧院落
桧园后街刺柏旁民居宅院
祥和巷北段土埂内侧小院
旷远路北十三巷配送货场旁房
席草里三巷场边小平房
合溪街东巷合流河道旁宅院
鲜香巷南段内衣店内侧院落
枣林后街灰枣深处联排房
泰和巷南段泥坎内侧小院
隆盛路东十四巷灯饰加工后房
水葱里四巷洼地处住宅
甘泉路西巷甘池旁农家院
探芳巷南段肉品摊市深处院
槐枝巷南支巷木货坊后侧房
广安里二巷绕隐巷深处老宅
游舟街南巷游船航道旁房屋
蔷薇巷中段花艺铺内侧院落
桑园后街桑树旁自建房屋
永和巷北段石坡内侧小院
迢远路西十四巷综合仓储旁房
灯草里三巷沟边小平房
支流溪街西巷支流河道旁宅院
淡香巷南段童鞋店内侧院落
榆林后街榆树深处老式房
淳和巷北段砖坡内侧小院
宏盛路南十四巷化工店后方房
泽泻里四巷渠塘边住宅
温泉路东巷温潭旁农家院
觅翠巷南段果蔬摊市深处院
柳枝巷北支巷柳货坊后侧房
福安里三巷穿隐巷深处老宅
泊舟街西巷泊船航道旁民房
牡丹巷中段盆花铺内侧院落
柳园后街杞柳旁民居宅院
祥和巷北段土坡内侧小院
广远路北十四巷大型货场旁房
莎草里三巷滩边小平房
干流溪街东巷干流河道旁宅院
微香巷南段箱包店内侧院落
桃林后街碧桃深处联排房
安和巷北段泥坡内侧小院
锦盛路东十四巷门窗加工后房
灯芯里四巷低洼塘边住宅
冷潭路西巷冷池旁农家院
寻芳巷北段水产摊市深处院
桃枝巷南支巷果货坊后侧房
吉安里三巷转角隐巷老宅
系舟街西巷系船航道旁房屋
芍药巷中段花束铺内侧院落
栗园后街锥栗旁自建房屋
平和巷北段石坡内侧小院
怀远路西十四巷快递仓储旁房
茅草里四巷崖边小平房
浅溪街西巷浅流河道旁宅院
余香巷南段帽饰店内侧院落
杏林后街山杏深处老式房
清和巷北段砖坡内侧小院
鸿盛路南十四巷钢材店后方房
菱角里四巷河湾边住宅
冰泉路东巷冰潭旁农家院
采芳巷北段花鸟摊市深处院
竹枝巷北支巷竹货坊后侧房
瑞安里三巷穿墙隐巷老宅
泛舟街西巷泛舟航道旁民房
凤仙巷中段花籽铺内侧院落
栎园后街麻栎旁民居宅院
乐和巷北段土坡内侧小院
腾远路北十四巷快运货场旁房
蒲草里四堰边小平房
深溪街东巷深流河道旁宅院
留香巷南段袜品店内侧院落
枫林后街五角枫深处联排房
仁和巷北段泥坡内侧小院
强盛路东十四巷广告加工后房
荷叶里五巷塘湾边住宅
幽泉路东巷幽潭旁农家院
访翠巷北段生鲜摊市深处院
桑枝巷南支巷桑货坊后侧房
熙安里三巷回廊隐巷老宅
停舟街西巷停船航道旁房屋
牵牛巷中段花藤铺内侧院落
枣园后街圆枣旁自建房屋
德和巷北段石坡内侧小院
逸远路西十五巷大件货场旁房
菅草里四埂边小平房
急溪街西巷急流河道旁宅院
溢香巷南段围巾店内侧院落
槐林后街龙爪槐深处老式房
谦和巷北段砖坡内侧小院
伟盛路南十四巷石材店后方房
芡实里五巷滩田边住宅
灵潭路西巷灵池旁农家院
撷芳巷北段干货摊市深处院
榆枝巷北支巷榆货坊后侧房
淳安里三巷夹缝隐巷老宅
渡舟街西巷渡船航道旁民房
茉莉巷中段花干铺内侧院落
杨园后街钻天杨旁民居宅院
善和巷北段土坡内侧小院
悠远路北十五巷零担货场旁房
蓑草里四垄边小平房
缓溪街东巷缓流河道旁宅院
飘香巷南段手套店内侧院落
柳林后街馒头柳深处联排房
恭和巷北段泥坡内侧小院
冠盛路东十五巷铁艺加工后房
慈姑里五巷浅滩边住宅
静泉路东巷静潭旁农家院
寻翠巷北段土产摊市深处院
松枝巷南支巷松货坊后侧房
睦安里三巷盘旋隐巷老宅
摇舟街西巷摇船航道旁房屋
紫薇巷中段花根铺内侧院落
樟园后街黄樟旁自建房屋
温和巷北段石坡内侧小院
辽远路西十五巷配送仓储旁房
苎草里四畦边小平房
静溪街西巷静流河道旁宅院
浓香巷南段皮带店内侧院落
柏林后街侧柏丛深处老式房
怡和巷北段砖坡内侧小院
卓盛路南十五巷汽配店后方房
荸荠里五巷浅沟边住宅
清泉路西巷清潭旁农家院
探翠巷北段宠物摊市深处院
柏枝巷北支巷柏货坊后侧房
惠安里三巷盘旋隐巷老宅
撑舟街西巷撑船航道旁民房
海棠巷中段果干铺内侧院落
枫园后街三角枫旁民居宅院
祥和巷北段土坡内侧小院
旷远路北十五巷综合货场旁房
蔺草里四塘埂小平房
动溪街东巷流动河道旁宅院
醇香巷南段鞋帽店内侧院落
杨林后街银白杨深处联排房
泰和巷北段泥坡内侧小院
隆盛路东十五巷灯饰加工后房
水芹里五巷浅湿地住宅
甘泉路东巷甘潭旁农家院
觅芳巷北段熟食摊市深处院
椿枝巷南支巷椿货坊后侧房
顺安里三巷穿墙隐巷老宅
放舟街西巷放船航道旁房屋
丁香巷中段花籽铺内侧院落
桧园后街铺地柏旁自建房屋
祥和巷北段石坡内侧小院
迢远路西十五巷快运仓储旁房
席草里四场边小平房
幽溪街西巷幽流河道旁宅院
鲜香巷南段袜饰店内侧院落
枣林后街酸枣丛深处老式房
永和巷北段砖坡内侧小院
宏盛路南十五巷化工店后方房
水葱里五巷浅洼地住宅
温泉路西巷温泉池旁农家院
访芳巷北段肉品摊市深处院
槐枝巷北支巷槐货坊后侧房
广安里三巷绕墙隐巷老宅
游舟街西巷游船航道旁民房
蔷薇巷中段花肥铺内侧院落
桑园后街龙桑旁民居宅院
淳和巷北段土坡内侧小院
广远路北十五巷大型仓储旁房
灯草里四渠边小平房
明溪街东巷明流河道旁宅院
淡香巷南段童装铺内侧院落
榆林后街垂枝榆深处联排房
安和巷北段泥坡内侧小院
锦盛路东十五巷门窗加工后房
泽泻里五巷浅渠边住宅
冷泉路西巷冷泉池旁农家院
撷翠巷北段果蔬摊市深处院
柳枝巷南支巷柳货坊后侧房
福安里四巷暗巷深处老宅
泊舟街东巷泊船码头旁房屋
牡丹巷中段花盆铺内侧院落
柳园后街龙爪柳旁自建房屋
平和巷北段石坎内侧小院
怀远路西十六巷快递货场旁房
莎草里四滩埂小平房
暗溪街西巷暗流河道旁宅院
微香巷南段箱包铺内侧院落
桃林后街垂枝桃深处老式房
清和巷北段砖坎内侧小院
鸿盛路南十六巷钢材店后方房
灯芯里五巷浅塘边住宅
寒潭路西巷寒潭池旁农家院
寻芳巷中段水产摊市深处院
桃枝巷北支巷桃货坊后侧房
吉安里四巷转角深巷老宅
系舟街东巷系船码头旁民房
芍药巷中段花土铺内侧院落
栗园后街欧洲栗旁民居宅院
仁和巷北段土坎内侧小院
腾远路北十六巷零担货场旁房
茅草里五崖埂小平房
清溪街东巷清流河道旁宅院
余香巷南段帽饰铺内侧院落
杏林后街垂枝杏深处联排房
德和巷北段泥坎内侧小院
强盛路东十六巷广告加工后房
菱角里五巷河浅湾住宅
冰泉路西巷冰泉池旁农家院
采芳巷中段花鸟摊市深处院
竹枝巷南支巷竹货坊后侧房
瑞安里四巷穿墙深巷老宅
泛舟街东巷泛舟码头旁房屋
凤仙巷中段花铲铺内侧院落
栎园后街白栎旁自建房屋
谦和巷北段石坎内侧小院
逸远路西十六巷大件货场旁房
蒲草里五堰埂小平房
浊溪街西巷浊流河道旁宅院
留香巷南段手套铺内侧院落
枫林后街鸡爪槭深处老式房
善和巷北段砖坎内侧小院
伟盛路南十六巷石材店后方房
荷叶里六巷塘浅湾住宅
幽泉路西巷幽泉池旁农家院
访翠巷中段生鲜摊市深处院
桑枝巷北支巷桑货坊后侧房
熙安里四巷回廊深巷老宅
停舟街东巷停船码头旁民房
牵牛巷中段花架铺内侧院落
枣园后街扁枣旁民居宅院
恭和巷北段土坎内侧小院
悠远路北十六巷配送货场旁房
菅草里五垄埂小平房
甘溪街东巷甘流河道旁宅院
溢香巷南段围巾铺内侧院落
槐林后街紫穗槐深处联排房
温和巷北段泥坎内侧小院
冠盛路东十六巷铁艺加工后房
芡实里六巷滩浅田住宅
灵潭路东巷灵潭池旁农家院
觅芳巷中段干货摊市深处院
榆枝巷南支巷榆货坊后侧房
淳安里四巷夹缝深巷老宅
渡舟街东巷渡船码头旁房屋
茉莉巷中段花剪铺内侧院落
杨园后街新疆杨旁自建房屋
怡和巷北段石坎内侧小院
辽远路西十六巷综合仓储旁房
蓑草里五畦埂小平房
苦溪街西巷苦流河道旁宅院
飘香巷南段皮带铺内侧院落
柳林后街龙柳深处老式房
祥和巷北段砖坎内侧小院
卓盛路南十六巷汽配店后方房
慈姑里六巷滩浅洼住宅
静泉路东巷静泉池旁农家院
寻翠巷中段土产摊市深处院
松枝巷北支巷松货坊后侧房
睦安里四巷盘旋深巷老宅
摇舟街东巷摇船码头旁民房
紫薇巷中段花壶铺内侧院落
樟园后街红樟旁民居宅院
泰和巷北段土坎内侧小院
旷远路北十六巷快运货场旁房
苎草里五地头小平房
乐溪街东巷乐流河道旁宅院
浓香巷南段鞋袜铺内侧院落
柏林后街圆柏苗深处联排房
祥和巷北段泥坎内侧小院
隆盛路东十六巷灯饰加工后房
荸荠里六巷沟浅洼住宅
清泉路东巷清泉池旁农家院
探翠巷中段宠物摊市深处院
柏枝巷南支巷柏货坊后侧房
惠安里四巷绕墙深巷老宅
撑舟街东巷撑船码头旁房屋
海棠巷中段果篮铺内侧院落
枫园后街元宝枫旁自建房屋
永和巷北段石坎内侧小院
迢远路西十六巷快递仓储旁房
蔺草里五塘边小平房
喜溪街西巷喜流河道旁宅院
醇香巷南段服饰铺内侧院落
杨林后街胡杨深处老式房
淳和巷北段砖坎内侧小院
宏盛路南十六巷化工店后方房
水芹里六巷湿浅地住宅
甘泉路西巷甘泉池旁农家院
撷芳巷中段熟食摊市深处院
椿枝巷北支巷椿货坊后侧房
顺安里四巷穿墙深巷老宅
放舟街东巷放船码头旁民房
丁香巷中段花肥铺内侧院落
桧园后街真柏旁民居宅院
安和巷北段土坎内侧小院
广远路北十六巷大型货场旁房
席草里五场边小平房
思溪街东巷思流河道旁宅院
鲜香巷南段内衣铺内侧院落
枣林后街壶枣深处联排房
清和巷北段泥坎内侧小院
锦盛路东十六巷门窗加工后房
水葱里六巷洼浅地住宅
温泉路东巷温泉潭旁农家院
访芳巷中段肉品摊市深处院
槐枝巷南支巷槐货坊后侧房
广安里四巷暗巷深宅院落
游舟街东巷游船码头旁房屋
蔷薇巷中段花架铺内侧院落
桑园后街鸡桑旁自建房屋
仁和巷北段石坎内侧小院
怀远路西十七巷零担仓储旁房
灯草里五沟边小平房
忆溪街西巷忆流河道旁宅院
淡香巷南段玩具铺内侧院落
榆林后街榔榆深处老式房
德和巷北段砖坎内侧小院
鸿盛路南十七巷钢材门店后方院
泽泻里六渠浅洼处住宅
冷泉路东巷冷泉潭旁农家院
觅翠巷中段果蔬摊市深处院落
柳枝巷北支巷柳编坊后侧民居
福安里五巷转角深巷老宅
泊船街中段旧码头旁联排房
牡丹巷中段花土铺内侧小院
柳园后街簸箕柳旁自建宅院
谦和巷北段土坎内侧小院
腾远路北十七巷大件物流货场
莎草里五滩边小平房
寻溪街东巷寻流河道旁院落
微香巷南段饰品铺内侧小院
桃林后街寿星桃深处联排房
善和巷北段泥坎内侧小院
强盛路东十七巷广告制作后场
灯芯里六塘浅洼处住宅
寒潭路东巷寒泉潭旁农家院
寻芳巷后段水产摊市深处院落
桃枝巷南支巷桃编坊后侧民居
吉安里五巷回廊深巷老宅
系船街中段老泊位旁住房
芍药巷中段花铲铺内侧小院
栗园后街毛栗旁自建宅院
恭和巷北段石坎内侧小院
逸远路西十七巷综合仓储园区
茅草里六崖边小平房
望溪街西巷望流河道旁院落
余香巷南段皮具铺内侧小院
杏林后街山桃深处老式民房
温和巷北段砖坎内侧小院
伟盛路南十七巷石材加工后场
菱角里六河浅滩处住宅
冰泉路东巷冰泉潭旁农家院
采芳巷后段花鸟摊市深处院落
竹枝巷北支巷竹编坊后侧民居
瑞安里五巷盘旋深巷老宅
泛舟街中段新码头旁住房
凤仙巷中段花壶铺内侧小院
栎园后街栓皮栎旁自建宅院
怡和巷北段土坎内侧小院
悠远路北十七巷快运中转货场
蒲草里六堰边小平房
听溪街东巷听流河道旁院落
留香巷南段鞋靴铺内侧小院
枫林后街红槭深处联排民房
祥和巷北段泥坎内侧小院
冠盛路东十七巷铁艺制作后场
荷叶里七塘浅滩处住宅
幽泉路东巷幽泉潭旁农家院
访翠巷后段生鲜摊市深处院落
桑枝巷南支巷桑编坊后侧民居
熙安里五巷夹缝深巷老宅
停船街中段旧泊位旁住房
牵牛巷中段花剪铺内侧小院
枣园后街葫芦枣旁自建宅院
泰和巷北段石坎内侧小院
辽远路西十七巷配送仓储中心
菅草里六垄边小平房
观溪街西巷观流河道旁院落
溢香巷南段服饰铺内侧小院
槐林后街紫槐深处老式民房
祥和巷北段砖坎内侧小院
卓盛路南十七巷汽配维修后场
芡实里七滩浅田处住宅
灵潭路西巷灵泉潭旁农家院
觅芳巷后段干货摊市深处院落
榆枝巷北支巷榆编坊后侧民居
淳安里五巷穿墙深巷老宅
渡船街中段老渡口旁住房
茉莉巷中段花籽铺内侧小院
杨园后街箭杆杨旁自建宅院
永和巷北段土坎内侧小院
旷远路北十七巷零担货运货场
蓑草里六畦边小平房
探溪街东巷探流河道旁院落
飘香巷南段箱包铺内侧小院
柳林后街金丝柳深处联排民房
淳和巷北段泥坎内侧小院
隆盛路东十七巷灯饰制作后场
慈姑里七滩浅洼处住宅
静泉路西巷静泉潭旁农家院
寻翠巷后段土产摊市深处院落
松枝巷南支巷松编坊后侧民居
睦安里五巷绕墙深巷老宅
摇船街中段新渡口旁住房
紫薇巷中段花肥铺内侧小院
樟园后街香樟苗旁自建宅院
安和巷北段石坎内侧小院
迢远路西十七巷快递分拣仓储
苎草里六地头小平房
寻泉街西巷寻泉溪流旁院落
浓香巷南段帽饰铺内侧小院
柏林后街翠柏深处老式民房
清和巷北段砖坎内侧小院
宏盛路南十七巷化工原料后场
荸荠里七沟浅洼处住宅
清泉路西巷清泉潭旁农家院
探翠巷后段宠物摊市深处院落
柏枝巷北支巷柏编坊后侧民居
惠安里五巷暗巷深巷老宅
撑船街中段老码头旁住房
海棠巷中段花土铺内侧小院
枫园后街青枫苗旁自建宅院
仁和巷北段土坎内侧小院
广远路北十七巷大型中转货场
蔺草里六塘边小平房
望泉街东巷望泉溪流旁院落
醇香巷南段袜饰铺内侧小院
杨林后街白杨苗深处联排民房
德和巷中段泥坎内侧小院
锦盛路东十七巷门窗制作后场
水芹里七湿浅地处住宅
甘泉路东巷甘泉潭旁农家院
撷芳巷后段熟食摊市深处院落
椿枝巷南支巷椿编坊后侧民居
顺安里五巷转角深巷老宅
放船街中段新码头旁住房
丁香巷中段花铲铺内侧小院
桧园后街桧柏苗旁自建宅院
谦和巷中段石坎内侧小院
怀远路西十八巷大件仓储园区
席草里六场边小平房
听泉街西巷听泉溪流旁院落
鲜香巷南段手套铺内侧小院
枣林后街枣树苗深处老式民房
善和巷中段砖坎内侧小院
鸿盛路南十八巷钢材堆放后场
水葱里七洼浅地处住宅
华亭路华亭别院二层民居
枫香街枫香园片区临街商铺楼上住宅
溪云巷云溪小院独门独户
德顺路德顺家园南区步梯房
善和街和善里老街深处宅院
月溪巷月溪雅居后排小楼
崇光路光明里厂区配套宿舍
锦云路云锦公寓北侧民房
福临街福临小院老式砖房
泉林巷林泉民居独栋小院
安泽西路泽安家园电梯中层
望湖街湖畔里临湖平房
风荷巷风荷园临街单间住房
云岭路岭云小区步梯顶楼
柏溪街溪柏里老旧单元房
桃溪巷桃溪别院农家风格宅院
乐安路安乐家园东区临街房
竹影巷影竹小院厢房住宅
龙兴南路兴龙公寓B栋低层
柏香街香柏里老院落住房
莲池巷池莲民居联排小院
吉庆西路庆吉家园电梯西户
映月街月映里巷弄深处民居
松溪巷溪松雅居一楼临街房
荣达路达荣小区后排单元楼
芳林街林芳小院老式民居
秋荷巷荷秋里自建二层楼
明远路远明家园北区步梯房
翠云街云翠大院厂区宿舍
芷兰巷兰芷雅居独门小院
康盛路盛康公寓临街复式房
清晏街晏清里老街砖瓦房
云松巷松云小院后院住房
泰平西路平泰家园小高层东户
江柳街柳江民居临江平房
雨桐巷桐雨雅居二楼单间
昌隆路隆昌小区老式住宅楼
芝兰街兰芝里联排民居
静溪巷溪静小院围墙内住宅
汇通路路汇家园南区电梯房
瑞祥街祥瑞里临街小楼
枫溪巷溪枫雅居后排平房
广泽路泽广家园步梯中层
荷柳街柳荷里巷口民居
青藤巷藤青小院老式厢房
兴达路达兴公寓顶层单间
玉竹街竹玉民居联排砖房
安馨巷馨安小院一楼带院落
宏远东路远宏花园栋东侧住房
槐香街香槐里老宅主楼
菱湖巷湖菱雅居临湖小院
顺和路和顺小区电梯楼中户
檀木巷木檀里老旧自建楼
怡景街景怡家园北区临街房
芦溪巷溪芦民居后排联排房
盛安路安盛公寓低层住宅
松月巷月松小院老式单元房
灵泉街泉灵里泉边民居
建明西路明建家园步梯顶楼
桐花巷花桐雅居二楼临街房
丰裕路裕丰小区厂区宿舍
蔓藤巷藤蔓小院围墙外附房
惠风街风惠里老街深处小楼
岳溪巷溪岳民居山地风格宅院
同兴路路同家园东区步梯房
菊香街香菊里平房院落
柏荷巷荷柏雅居一楼单间
恒昌路昌恒花园电梯东户
云柏街柏云里联排小楼
涧溪巷溪涧小院溪边住房
裕民路民裕家园南区临街铺面楼上
梅柳街柳梅雅居老式砖房
巧竹巷竹巧里自建附属房
安泰东路泰安公寓B栋中层
芦荻巷荻芦小院临河平房
隆盛街盛隆里老旧单元楼
松兰巷兰松雅居后排小院
嘉和路和嘉家园步梯西户
青兰巷兰青里巷弄厢房
启明星路星启小区顶楼带阁楼
桂香街香桂里老宅西院
溪柳巷柳溪雅居联排民居
隆达路达隆花园北区低层
芷荷巷荷芷小院一楼住房
顺安街安顺里临街二层小楼
梧溪巷溪梧民居老式院落
昌和路和昌公寓电梯中户
紫菱巷菱紫雅居临湖附房
茂林街林茂里自建二层民居
月柏巷柏月小院顶楼单间
宝庆西路庆宝家园步梯中层
竹荷巷荷竹里老街平房
灵溪巷溪灵雅居巷口小院
宏盛路盛宏小区厂区配套房
秋桐巷桐秋里后排联排房
仁合街合仁家园电梯东户
藤萝巷萝藤小院围墙内厢房
明溪路溪明公寓低层住宅
枫柏巷柏枫雅居老式单元房
景盛街盛景里临街小院
杏溪巷溪杏民居杏树旁住房
德裕路裕德家园步梯顶楼
荷藤巷藤荷里临河小楼
清和街和清雅居联排砖房
云桐巷桐云小院独门宅院
康达路达康花园电梯西户
兰柳巷柳兰里巷深处民居
泉溪巷溪泉雅居泉边小院
广安路安广小区后排单元楼
松芝巷芝松里老式平房院落
望桐街桐望雅居二楼单间
汇盛路盛汇家园北区临街房
青菱巷菱青里临湖附房
和风街风和小院一楼带院子
梧柏巷柏梧民居老旧自建楼
荣盛路盛荣公寓顶层阁楼
菊荷巷荷菊雅居联排小楼
安明街明安里厂区老宿舍
桃柏巷柏桃小院桃树旁住房
远通路路远花园步梯中户
溪芝巷芝溪雅居溪边平房
嘉裕路裕嘉家园电梯低层
檀荷巷荷檀里老街深处砖房
静和街和静小院围墙外住房
云芦巷芦云民居临河联排房
昌达路达昌小区老式住宅楼
梅芝巷芝梅雅居后排小院
惠明街明惠里临街二层附房
柏藤巷藤柏小院藤架旁民居
兴盛西路盛兴公寓B栋顶楼
柳芝巷芝柳雅居巷口平房
丰和路和丰家园步梯东户
菱桐巷桐菱里临湖小楼
安芦巷芦安民居老式院落
景和街和景小院一楼单间
桐藤巷藤桐雅居自建厢房
广明路明广花园电梯中层
松芦巷芦松里临河平房院落
灵荷巷荷灵雅居泉边住房
裕盛路盛裕家园北区步梯房
青梧巷梧青里老旧单元房
明和街和明小院临街小院
杏柏巷柏杏雅居杏树下民居
康裕路裕康公寓电梯中户
秋兰巷兰秋里后排联排平房
顺桐街桐顺雅居二楼住房
瑞达路达瑞花园老式宿舍楼
芝桐巷桐芝小院围墙内小楼
安和东路和安家园临街铺面住宅
枫芦巷芦枫民居临河附房
景桐街桐景雅居顶楼单间
茂裕路裕茂小区厂区宿舍房
云芝巷芝云里巷弄深处小院
清桐街桐清小院一楼带院落
柏菱巷菱柏雅居临湖民居
隆和路和隆家园步梯西户
兰梧巷梧兰里老式砖瓦房
桐泉巷泉桐雅居泉边联排房
宝盛路盛宝花园电梯东户
秋柏巷柏秋里老宅东厢房
静桐街桐静雅居后排小楼
仁裕路裕仁家园低层住宅
蔓荷巷荷蔓里老街平房
明桐路桐明公寓顶层住房
枫芝巷芝枫雅居巷口小院
昌明街明昌里临街联排房
菊梧巷梧菊民居老旧院落
安桐巷桐安小院独门独户住房
星悦里原农机站院内北屋
老粮站后巷第三排民房
东河沿码头旁自建小楼
西坡路坡顶连片民居
北巷口杂货铺楼上住宅
南堤岸防洪堤内侧平房
大槐树下临街老式砖房
老学堂旧址西侧民居
石桥旁桥洞上方附属房
古井巷古井周边院落住房
碾子巷老碾盘旁民房
磨盘街旧磨坊后院住房
水车巷老式水车旁平房
老戏台后侧临街小楼
牌坊里石牌坊后方宅院
门楼巷古门楼内侧民居
照壁巷影壁墙旁院落
天井里老式天井院主楼
回廊巷带回廊的老式民居
厢房街连片厢房式住房
后院巷主宅后方附属房
夹道里窄巷深处单间住房
过街楼过街楼下层住宅
山墙巷房屋山墙旁附房
檐下街屋檐下方临街单间
阶台里高台阶之上民居
巷尾街整条巷子最后一户
巷头巷整条巷子第一户
岔路口三岔路口旁小楼
拐角巷街道拐角处民房
围墙巷红砖围墙内小院
竹篱笆巷竹篱围合院落
木门里老式木大门内住房
石库门巷石库门样式民居
土坯墙街老式土坯房住宅
青瓦巷青瓦屋顶连片平房
灰砖街青砖砌筑老式楼房
石板路巷石板路面两侧民房
泥路里乡间土路旁自建屋
田埂巷临近农田的小院
菜地街房前带小菜地民居
果园巷果树园旁独栋小楼
竹林深处竹林间民居
杨树林巷白杨树林边住房
柳树林街垂柳旁临河民房
桃林里桃树园深处宅院
杏林巷杏树林边平房
枣树林街枣树旁老式砖房
槐树林里洋槐树下小院
梧桐巷梧桐树旁二层小楼
池塘边池塘北岸民居
沟渠巷农田沟渠旁住房
堰塘里小型堰塘西侧院落
水坝巷小型水坝下方平房
水渠街灌溉水渠边民房
河湾里河道转弯处临河屋
滩涂巷河滩内侧自建房
渡口街老旧渡口旁小楼
码头里小型货运码头住宅
堤岸巷河堤之上连片住房
陡坡街山坡陡坡处民居
平地里山间平地自建小院
山坳巷山体凹陷处民房
半山腰路山体中层小楼
山脚下街山脚临街平房
村落主街村庄主干道住宅
村后巷村庄后排院落
村头里村庄入口处小楼
村尾巷村庄末端民房
邻里巷农户相邻连片住房
集体院旧时集体大院主楼
家属院老式单位家属院西户
职工楼企业职工住宅楼低层
临时工棚旁改建民居
仓库区旧仓库改造住房
厂房后侧工厂厂房后方民房
车间旁生产车间附属用房
门卫室大院门卫室楼上住宅
传达室街区传达室后侧住房
锅炉房巷老式锅炉房旁平房
配电室周边配套民居
泵房里供水泵房旁小院
机房巷老旧机房改建住房
货场街货物堆放场旁小楼
堆场里物料堆场内侧民房
门店楼上沿街商铺二层住宅
门头巷临街店铺后侧单间
摊位后方市场摊位上方住房
集市里乡村集市深处院落
菜市巷生鲜市场周边民房
粮店旧址老式粮油店后院
油坊巷传统油坊改建民居
酒坊里酿酒作坊旁小院
染坊巷旧式染坊后方住房
铁匠铺街老式铁匠铺楼上
木匠坊里木工作坊侧屋
裁缝铺巷老裁缝店后院
剃头铺旧址老式理发铺楼上
药铺巷乡村药铺后方民居
茶馆里老式茶馆二楼单间
客栈旧址旧式小客栈客房
饭铺巷乡村小饭馆楼上住宅
面馆后侧面食店铺附属房
杂货铺里日用杂货铺后院
典当行旧址老式典当行偏房
私塾巷旧时私塾学堂侧屋
学堂后巷乡村学校后方民房
操场旁校园操场周边小院
教室楼后侧教学楼附属房
宿舍区外围学校宿舍外围民居
卫生院旧址乡村卫生院偏房
诊所巷私人诊所楼上住房
药堂里中药堂后方院落
兽医站旁畜禽兽医站侧屋
广播站旧址乡村广播站后院
邮电所巷老式邮电所楼上
电话亭周边老式电话亭旁民房
信用社后侧农村信用社附属房
供销社主楼基层供销社主楼
代销点旧址乡村代销点后院
税务点旁基层税务点侧屋
派出所旧址小型派出所偏房
村委会大院村委大院西侧住房
大队部里旧时大队部后院
活动室巷乡村活动室楼上
文化站后侧村级文化站附属房
礼堂里乡村大礼堂后方民居
戏台旁露天戏台两侧小院
影院旧址老式乡村影院侧屋
图书室巷乡村图书室楼上
篮球场周边村级篮球场旁民房
晒谷场里大型晒谷场周边院落
谷仓巷老式粮食谷仓改建房
粮囤旁露天粮囤后方住房
磨坊大院传统磨坊大院主楼
油库周边小型油料仓库侧屋
煤场巷煤炭堆放场内侧民房
柴草垛旁农户柴草垛旁小院
农具房里农用农具存放房楼上
牲口棚旧址旧式牲口棚改建房
猪圈巷农家猪圈上方附属房
牛栏里老式牛栏旁住房
羊圈后侧农户羊圈侧屋
鸡舍周边连片鸡舍旁民居
鸭棚巷水上鸭棚岸边住房
渔排旁水上渔排岸边小楼
渔网屋里存放渔网的附属房
渔船码头小型渔船码头住宅
竹排巷竹排停靠点旁平房
木船里老式木船停放处院落
竹楼片区简易竹楼式民居
木屋巷原木搭建老式木屋
草房里传统茅草屋顶住房
土房巷夯土建造老式土房
石屋里石块垒砌山间石屋
窑洞片区黄土窑洞式民居
吊脚楼巷简易吊脚楼底层房
骑楼街岭南风格骑楼下层住宅
廊房里带长廊的连片廊房
棚屋巷临时搭建简易棚屋
阁楼里老式房屋顶层阁楼
暗楼巷房屋夹层暗楼住房
夹层房墙体夹层改造单间
地下室片区民用地下室改建房
半地下室半地下结构民居
架空层楼栋底层架空层住房
复式楼老式复式结构住宅
跃层房上下跃层式民房
错层巷户型错层结构小楼
单间房临街独立单间住房
套间里老式一厨一卫套间
通间巷大开间老式通屋
偏房主建筑一侧偏屋住房
耳房里传统建筑两侧耳房
后罩房院落最后一排住房
倒座巷院落入口倒座房
正房里院落主体正屋住宅
堂屋旁老式堂屋侧屋
客房里农家待客客房
储物间改建原储物间改造住房
杂物间巷老式杂物间楼上
柴火间里柴火存放间改建房
煤房巷燃煤存放间侧屋
水箱间楼顶水箱间旁单间
电梯机房高层电梯机房附属房
楼梯间楼栋楼梯间旁住房
楼道尽头单元楼道末端单间
走廊边长走廊两侧民居
过道里房屋内部过道旁住房
门厅后侧楼房门厅后方住宅
门斗里建筑门斗上方小楼
雨棚下临街雨棚下方单间
阳台房外置阳台连通住房
露台里楼顶露天露台旁住宅
天井房室内天井周边民居
庭院巷自带小庭院的民房
小院里独门小型院落主楼
大院片区大型合院式民居
联排巷多户联排自建小楼
独栋房独立独栋民用住宅
双拼巷两户拼接式民居
叠拼里上下叠合式小楼
围合巷房屋围合形成院落房
合围里多栋房屋合围住宅
临街主楼街道临街主体楼房
背街房街道背面隐蔽民房
内环巷片区内部内环道路住房
外环里片区外围外环小楼
主干道旁区域主干道两侧民居
次干道巷城市次干道临街房
支路里小型支路深处小院
小道巷乡间狭窄小道旁住房
便道里临时便民便道侧屋
捷径巷行人捷径两侧民房
环线道路环线内侧低层住宅
交叉路口大型路口拐角小楼
丁字巷丁字路口旁平房
十字街十字路口周边民居
环岛里环形环岛内侧住房
桥头巷公路桥梁桥头小楼
桥尾里公路桥梁末端民房
桥下空间桥梁下方改建住房
涵洞旁公路涵洞上方附属房
隧道口隧道出入口侧屋
边坡巷道路边坡上方民居
路肩里公路路肩旁自建房
绿化带后侧道路绿化带后方住房
行道树旁道路行道树边民房
花坛巷街边花坛周边小院
路灯杆旁路灯杆后方单间
公交站牌后侧公交站牌楼上
候车亭里公交候车亭上方住房
站牌巷乡村站牌旁平房
广告牌后方大型广告牌侧屋
宣传栏里社区宣传栏楼上
围墙转角小区围墙转角处民房
大门内侧小区主大门内住房
侧门旁小区侧门周边小院
后门巷楼栋后门后方住宅
边门里房屋侧边小门旁住房
栅栏内铁艺栅栏内部小楼
护栏旁道路护栏内侧民房
铁丝网片区铁丝网围合院落房
铁门里老式铁皮大门内住房
木门巷实木大门后方小楼
石门里石材大门内侧民居
拱门巷拱形大门旁平房
圆门里圆形院门内部院落
方门巷方形院门侧屋
高墙内高大围墙深处住房
矮墙旁低矮围墙上方小楼
花墙巷镂空花墙内侧民房
影壁后方装饰影壁背后住房
照墙里挡风照墙旁小院
假山旁庭院假山周边民居
鱼池巷庭院小鱼池侧屋
花池里院内花池上方住房
盆景区庭院盆景摆放区旁房
葡萄架下庭院葡萄架下方单间
花架巷景观花架后方民房
藤架里藤蔓攀爬架旁小院
花廊巷花卉长廊两侧住房
游廊里休闲游廊连通民房
亭台旁休闲亭台后方小楼
石凳巷休闲石凳周边平房
石桌里庭院石桌上方住宅
石阶旁室外石阶两侧民房
台阶里高台阶顶端小楼
坡道巷无障碍坡道旁住房
梯步里室外梯步侧屋
平台里室外休闲平台住房
空地旁片区闲置空地周边民房
荒地巷城郊荒地内侧小院
裸地里裸露地块旁自建房
荒坡巷城郊荒坡之上民居
土丘旁小型土丘顶端小楼
洼地里地势低洼处平房
高地巷地势高处连片住房
平坡里平缓坡地自建小院
陡坡旁陡峭坡地侧屋
沟谷巷小型沟谷两侧民房
沟壑里浅沟壑周边院落
溪谷巷山间溪谷岸边住房
山谷里小型山谷深处小楼
崖边巷山体崖壁下方平房
岩边里岩石边缘民居
石堆旁乱石堆后方小院
土堆巷黄土堆侧屋
沙堆里沙土堆上方住房
石子巷碎石堆周边民房
河滩里干涸河滩内侧小楼
河床旁老旧河床岸边平房
湿地巷小型湿地周边院落
沼泽边缘浅沼泽边缘住房
芦苇荡里芦苇荡岸边民房
草丛巷野生草丛深处小院
灌木丛旁灌木丛侧屋
杂树林里野生杂树林边住房
密林巷小型密林边缘民房
疏林里稀疏林木旁小楼
长顺里三排六号后院主房
久安巷临街第四间二层住宅
万康路北侧自建联排西户
恒乐街中段老式单元楼顶楼
永泰巷中段围墙内独立小院
祥宁路南侧商铺楼上三居室
吉安里五组连片民居东屋
瑞丰巷农资店后方附属住房
福顺路农机门市后侧小楼
寿康街粮油铺隔壁民房
喜安巷裁缝店楼上单间住房
和泰路中段老式砖瓦房院落
宁祥里集市北侧后排平房
安瑞巷村口大槐树旁小楼
丰吉路池塘东侧自建民居
乐福里水渠南岸联排住房
康祥巷晒谷场西侧院落主楼
顺宁路老磨坊旁二层小楼
吉安里古井西侧老式厢房
瑞寿巷石牌坊后方独门小院
福乐路石桥北侧临街民房
安泰里老学堂旧址西院住房
永宁巷碾子旁砖结构小楼
康瑞路磨盘街深处单间
顺祥里水车北侧院落住房
吉乐巷老戏台东侧附属房
福宁路门楼巷中段民房
寿祥里照壁墙南侧小院
乐安巷天井院西侧偏房
康宁路回廊巷末端联排平房
顺瑞里厢房街北排住房
吉寿巷后院巷第一户小楼
福安路夹道里深处单间房
宁乐里过街楼下层住宅西户
安康巷山墙巷北侧附房
瑞宁路檐下街中段临街房
祥乐里阶台里高台上民居
寿安巷巷尾街最后一户砖房
乐祥路巷头巷第一户二层楼
康安里岔路口西北侧小楼
顺乐巷拐角巷西南角民房
吉宁路围墙巷红砖院内住房
福祥里竹篱笆巷东侧小院
寿乐巷木门里老式木房主楼
瑞安路石库门巷南侧民居
宁安里土坯墙街中段住房
安祥巷青瓦巷北排连片平房
康乐路灰砖街老式楼房东户
顺安里石板路巷西侧民房
吉乐巷泥路里乡间自建小楼
福宁路田埂巷农田旁小院
寿宁里菜地街房前菜地住宅
乐瑞巷果园巷苹果园旁民房
康吉路竹林深处北侧住房
顺寿里杨树林巷白杨树下小楼
吉安巷柳树林街垂柳边平房
福乐路桃林里桃树园深处院
寿安里杏林巷杏树旁联排房
乐宁巷枣树林街枣树下方住宅
康瑞路槐树林里槐树下小院
顺祥里梧桐巷梧桐树侧小楼
吉安巷池塘边南岸民居
福寿路沟渠巷灌溉渠旁住房
寿乐里堰塘里堰塘西侧小院
乐安巷水坝巷水坝下方平房
康宁路水渠街渠边联排民房
顺宁里河湾里河道转弯处屋
吉瑞巷滩涂巷河滩内侧小楼
福安路渡口街老旧渡口住宅
寿祥里码头里货运码头侧房
乐吉巷堤岸巷河堤中段住房
康寿路陡坡街山坡中部民房
顺乐里平地里山间平地小院
吉宁巷山坳巷山坳深处平房
福瑞路半山腰路中层小楼
寿安里山脚下街山脚临街房
乐祥巷村落主街中段民居
康安路村后巷村庄后排院落
顺寿里村头里村口东侧小楼
吉乐巷村尾巷村尾末端平房
福宁路邻里巷农户相邻联排房
寿瑞里集体院大院西厢房
乐安巷家属院老式家属楼中户
康祥路职工楼企业职工房低层
顺吉里临时工棚旁改建住宅
吉安巷仓库区旧仓库改造房
福寿路厂房后侧工厂附属住房
乐宁里车间旁生产车间楼上
康瑞巷门卫室大院门卫楼上房
顺安路传达室街区传达室后院
吉祥里锅炉房巷锅炉房旁平房
福乐巷配电室周边配套民房
寿安路泵房里供水泵房侧屋
乐瑞巷机房巷老旧机房楼上
康吉路货场街货场北侧小楼
顺寿里堆场里物料堆场内侧房
吉安巷门店楼上商铺二层住宅
福宁路门头巷店铺后侧单间
寿乐里摊位后方市场摊位上房
乐安巷集市里集市深处院落
康祥路菜市巷生鲜市场周边房
顺吉里粮店旧址粮油店后院房
吉寿巷油坊巷传统油坊改建房
福安路酒坊里酿酒作坊侧屋
寿祥里染坊巷旧式染坊后方房
乐吉巷铁匠铺街铁匠铺楼上房
康寿路木匠坊里木工坊侧屋
顺乐里裁缝铺巷裁缝店后院房
吉宁巷剃头铺旧址理发铺楼上
福瑞路药铺巷乡村药铺后方房
寿安里茶馆里老式茶馆二楼房
乐祥巷客栈旧址小客栈客房间
康安路饭铺巷小饭馆楼上住宅
顺寿里面馆后侧面食店附属房
吉乐巷杂货铺里杂货铺后院房
福宁路典当行旧址典当行偏房
寿瑞里私塾巷旧时私塾侧屋
乐安巷学堂后巷学校后方民房
康祥路操场旁校园操场边小院
顺吉里教室楼后侧教学楼附房
吉安巷宿舍区外围宿舍周边房
福寿路卫生院旧址卫生院偏房
乐宁里诊所巷私人诊所楼上房
康瑞巷药堂里中药堂后方院落
顺安路兽医站旁兽医站侧屋
吉祥里广播站旧址广播站后院
福乐巷邮电所巷邮电所楼上房
寿安路电话亭周边电话亭旁房
乐瑞巷信用社后侧信用社附房
康吉路供销社主楼供销社主楼房
顺寿里代销点旧址代销点后院
吉安巷税务点旁税务点侧屋房
福宁路派出所旧址派出所偏房
寿乐里村委会大院村委院西房
乐安巷大队部里大队部后院房
康祥路活动室巷活动室楼上房
顺吉里文化站后侧文化站附房
吉寿巷礼堂里乡村大礼堂后房
福安路戏台旁露天戏台两侧房
寿祥里影院旧址乡村影院侧屋
乐吉巷图书室巷图书室楼上房
康寿路篮球场周边篮球场旁房
顺乐里晒谷场里晒谷场周边院
吉宁巷谷仓巷老式谷仓改建房
福瑞路粮囤旁粮囤后方住房
寿安里磨坊大院磨坊大院主楼
乐祥巷油库周边油料仓库侧屋
康安路煤场巷煤场内侧民房
顺寿里柴草垛旁柴垛旁小院房
吉乐巷农具房里农具房楼上住宅
福宁路牲口棚旧址牲口棚改建房
寿瑞里猪圈巷猪圈上方附属房
乐安巷牛栏里老式牛栏旁住房
康祥路羊圈后侧羊圈侧屋民房
顺吉里鸡舍周边连片鸡舍旁房
吉安巷鸭棚巷水上鸭棚岸边房
福寿路渔排旁水上渔排岸边楼
乐宁里渔网屋里渔网存放附房
康瑞巷渔船码头渔船码头住宅
顺安路竹排巷竹排停靠点平房
吉祥里木船里木船停放处院落
福乐巷竹楼片区简易竹楼底层房
寿安路木屋巷原木老式木屋房
乐瑞巷草房里茅草屋顶老式房
康吉路土房巷夯土建造土坯房
顺寿里石屋里石块垒砌山间房
吉安巷窑洞片区黄土窑洞主房
福宁路吊脚楼巷简易吊脚楼底房
寿乐里骑楼街岭南骑楼下层房
乐安巷廊房里带长廊连片廊房
康祥路棚屋巷临时搭建简易棚房
顺吉里阁楼里老式房屋顶层阁房
吉寿巷暗楼巷房屋夹层暗楼房
福安路夹层房墙体夹层改造房
寿祥里地下室片区民用地下室房
乐吉巷半地下室半地下结构民房
康寿路架空层楼栋底层架空住房
顺乐里复式楼老式复式结构住宅
吉宁巷跃层房上下跃层自建小楼
福瑞路错层巷户型错层结构房
寿安里单间房临街独立单间民房
乐祥巷套间里老式一厨一卫套间
康安路通间巷大开间老式通屋
顺寿里偏房主建筑一侧偏屋房
吉乐巷耳房里传统建筑两侧耳房
福宁路后罩房院落最后一排住房
寿瑞里倒座巷院落入口倒座房
乐安巷正房里院落主体正屋住房
康祥路堂屋旁老式堂屋侧边住房
顺吉里客房里农家待客专用客房
吉安巷储物间改建储物间改造住房
福寿路杂物间巷杂物间楼上单间
乐宁里柴火间里柴火间改建民房
康瑞巷煤房巷燃煤存放间侧屋房
顺安路水箱间楼顶水箱间旁单间
吉祥里电梯机房电梯机房附属房
福乐巷楼梯间楼栋楼梯间旁住房
寿安路楼道尽头楼道末端单间房
乐瑞巷走廊边长走廊两侧民房
康吉路过道里房屋过道旁住房
顺寿里门厅后侧楼房门厅后方房
吉安巷门斗里建筑门斗上方小楼
福宁路雨棚下临街雨棚下方单间
寿乐里阳台房外置阳台连通住房
乐安巷露台里楼顶露台旁住宅
康祥路天井房室内天井周边民房
顺吉里庭院巷自带小院民居主楼
吉寿巷小院里独门小型院落主楼
福安路大院片区大型合院式民房
寿祥里联排巷多户联排自建小楼
乐吉巷独栋房独立独栋民用住宅
康寿路双拼巷两户拼接式民居房
顺乐里叠拼里上下叠合式自建小楼
吉宁巷围合巷房屋围合院落住房
福瑞路合围里多栋房屋合围民房
寿安里临街主楼街道临街主体楼房
乐祥巷背街房街道背面隐蔽民房
康安路内环巷片区内环道路住房
顺寿里外环里片区外围外环小楼
吉乐巷主干道旁主干道两侧民房
福宁路次干道巷次干道临街平房
寿瑞里支路里小型支路深处小院
乐安巷小道巷乡间小道旁自建房
康祥路便道里便民便道侧边民房
顺吉里捷径巷行人捷径两侧住房
吉安巷环线道路环线内侧低层房
福寿路交叉路口大型路口拐角楼
乐宁里丁字巷丁字路口旁平房
康瑞巷十字街十字路口周边民房
顺安路环岛里环形环岛内侧房
吉祥里桥头巷公路桥梁桥头小楼
福乐巷桥尾里公路桥梁末端民房
寿安路桥下空间桥梁下方改建房
乐瑞巷涵洞旁公路涵洞上方附房
康吉路隧道口隧道出入口侧屋房
顺寿里边坡巷道路边坡上方民房
吉安巷路肩里公路路肩旁自建房
福宁路绿化带后侧绿化带后方房
寿乐里行道树旁行道树边民房
乐安巷花坛巷街边花坛周边小院
康祥路路灯杆旁路灯杆后方单间
顺吉里公交站牌后侧站牌楼上房
吉寿巷候车亭里候车亭上方住房
福安路站牌巷乡村站牌旁平房
寿祥里广告牌后方大型广告侧屋
乐吉巷宣传栏里社区宣传栏楼上
康寿路围墙转角围墙转角处民房
顺乐里大门内侧小区主大门内房
吉宁巷侧门旁小区侧门周边小院
福瑞路后门巷楼栋后门后方住宅
寿安里边门里房屋侧边小门旁房
乐祥巷栅栏内铁艺栅栏内部小楼
康安路护栏旁道路护栏内侧民房
顺寿里铁丝网片区铁丝网围合院房
吉乐巷铁门里铁皮大门内部住房
福宁路木门巷实木大门后方小楼
寿瑞里石门里石材大门内侧民房
乐安巷拱门巷拱形大门旁平房
康祥路圆门里圆形院门内部院落
顺吉里方门巷方形院门侧边民房
吉安巷高墙内高大围墙深处住房
福寿路矮墙旁低矮围墙上方小楼
乐宁里花墙巷镂空花墙内侧民房
康瑞巷影壁后方装饰影壁背后房
顺安路照墙里挡风照墙旁小院房
吉祥里假山旁庭院假山周边民房
福乐巷鱼池巷庭院小鱼池侧屋房
寿安路花池里院内花池上方住房
乐瑞巷盆景区盆景摆放区旁住房
康吉路葡萄架下葡萄架下方单间
顺寿里花架巷景观花架后方民房
吉安巷藤架里藤蔓攀爬架旁小院
福宁路花廊巷花卉长廊两侧住房
寿乐里游廊里休闲游廊连通民房
乐安巷亭台旁休闲亭台后方小楼
康祥路石凳巷休闲石凳周边平房
顺吉里石桌里庭院石桌上方住宅
吉寿巷石阶旁室外石阶两侧民房
福安路台阶里高台阶顶端小楼房
寿祥里坡道巷无障碍坡道旁住房
乐吉巷梯步里室外梯步侧边民房
康寿路平台里室外休闲平台住房
顺乐里空地旁闲置空地周边民房
吉宁巷荒地巷城郊荒地内侧小院
福瑞路裸地里裸露地块旁自建房
寿安里荒坡巷城郊荒坡之上民房
乐祥巷土丘旁小型土丘顶端小楼
康安路洼地里地势低洼处平房房
顺寿里高地巷地势高处连片住房
吉乐巷平坡里平缓坡地自建小院
福宁路陡坡旁陡峭坡地侧边民房
寿瑞里沟谷巷小型沟谷两侧住房
乐安巷沟壑里浅沟壑周边院落房
康祥路溪谷巷山间溪谷岸边住房
顺吉里山谷里小型山谷深处小楼
吉安巷崖边巷山体崖壁下方平房
福寿路岩边里岩石边缘自建民房
乐宁里石堆旁乱石堆后方小院房
康瑞巷土堆巷黄土堆侧边民房
顺安路沙堆里沙土堆上方住宅房
吉祥里石子巷碎石堆周边民房
福乐巷河滩里干涸河滩内侧小楼
寿安路河床旁老旧河床岸边平房
乐瑞巷湿地巷小型湿地周边院落
康吉路沼泽边缘浅沼泽边缘住房
顺寿里芦苇荡里芦苇荡岸边民房
吉安巷草丛巷野生草丛深处小院
福宁路灌木丛旁灌木丛侧边民房
寿乐里杂树林里杂树林边自建房
乐安巷密林巷小型密林边缘民房
康祥路疏林里稀疏林木旁边小楼
顺吉里汇贤巷文教片区后排民居
吉寿巷博文街书铺隔壁二层住宅
福安路知书里书屋后方独立小院
寿祥里劝学巷校园外围临街平房
乐吉巷思学路培训机构楼上住房
康寿路敏学里补习点后侧附属房
顺乐里笃行巷实训场地旁小楼
吉宁巷崇德街文化广场周边民房
福瑞路尚礼里礼仪场地侧边平房
寿安里仁和巷便民服务点楼上房
乐祥巷信义街便民超市后院住房
康安路友善里果蔬店上方单间房
顺寿里和睦巷生鲜摊后方小楼房
吉乐巷温情路便民菜店侧屋民房
福宁路暖心里社区驿站楼上住宅
寿瑞里邻里巷社区活动室旁小院
乐安巷互助街老年活动中心侧房
康祥路康乐里健身场地周边民房
顺吉里颐养巷老年日间照料点附房
吉安巷休闲路棋牌活动室楼上房
福寿路怡情里茶饮小店后方住房
乐宁里逸趣巷休闲摊位上方小楼
康瑞巷观景路街边观景台侧屋房
顺安路揽胜里观景长廊下方住房
吉祥里漫步巷休闲步道旁民房
福乐巷闲游里游园深处独门小院
寿安路清趣巷景观小品侧边平房
乐瑞巷幽径里林间小径深处民房
康吉路静逸巷安静片区后排小楼
顺寿里清幽巷绿化片区内侧住房
吉安巷雅致路景观绿化带侧屋房
福宁路秀美里小型游园主楼住房
寿乐里芳菲巷花卉种植区旁民房
乐安巷翠色路绿植片区边上小楼
康祥路绿茵里草坪周边连片平房
顺吉里浓荫巷大树树荫下方住房
吉寿巷浅绿巷低矮植被旁小院房
锦苑东里区排独栋院落
古巷南头老供销社后侧平房
翠柳支路便民市场内侧深巷
长坡巷中段围墙内老式宅院
星桥巷石桥西侧联排民房
福安二巷粮油店后方内院
青禾路苗圃园区边角住宅
龙潭巷古井周边低矮民居
和风里大院西单元附属房
石坝街堤坝下方自建小屋
丹桂巷中段裁缝铺隔壁院落
松涛后街林地边缘住户房
云帆巷渡口旁临街老房
安宁西巷修车行后侧小院
金荷里荷塘沿岸联排住宅
响泉路泉眼旁农家小院
梧桐南巷古树下老宅
顺河支巷河道内侧坡地房
瑞丰里四巷杂物间旁住房
白杨路木材堆场后方民居
静溪巷溪流转弯处院落
红梅后街果蔬摊群深处房屋
广乐巷北口杂货铺内院
碧园里假山北侧小平房
通运路物流网点后侧住宅
紫萱巷中段花艺店隔壁宅院
枣林西巷枣树林深处民房
平宁里丁字路口内侧院落
远航西巷货运站旁自建屋
菱塘巷水塘边连片小屋
清芬里香铺后方隐蔽小院
寒石路山石堆旁老式住房
迎春西巷农贸市场边角房
枫木巷木料坊后侧宅院
归雁里窄巷深处老旧民居
渔浦街码头后方临建房
药香巷中草药摊内侧院落
梅岭后街梅林边上住户
崇善巷北口修配铺内院
恒达西巷中转仓库旁房屋
芦荡里芦苇丛边低矮房
深沟巷沟壑两侧自建屋
素果巷干货店后方小院
李树后街果林深处民房
广曲巷道路弯道内侧宅院
汇材路建材市场后侧房
浮叶里积水洼旁小平房
磨盘巷老石磨周边住宅
探花巷生鲜集市深处院落
香樟西巷苗木基地旁住房
久静里高墙围合独立院落
渡头街渡口内侧老房
藤花巷编织铺后方宅院
檀木后街古树旁老式民居
民和巷洗车坊后侧小院
万仓西巷仓储区边角住房
浅滩里河滩沿岸小屋
环水巷环形水系内侧院落
落果巷零食店后方民房
柚树后街果树旁自建屋
新平巷斜坡上方院落
卓材路水暖门店后侧房
荷尖西巷荷塘浅区住宅
热泉巷温泉池周边农家院
撷英巷花鸟市集深处房屋
梓木巷板材堆放区后方
幽静里矮巷深处老宅
行船街航道内侧临街房
山苓巷山货铺后方院落
柞木后街林木旁老式住房
裕和巷卤味铺内侧小院
捷运西巷配送站点旁房屋
苇丛里芦苇滩边小平房
叠水巷叠流景观旁宅院
凝味巷日杂店后方民房
栗树后街栗林深处住宅
熙平巷岔路口内侧小院
铁艺路铁艺加工坊后侧房
菱角西巷菱塘沿岸小屋
灵井巷老井周边农家院
拾趣巷宠物集市深处院落
椿木巷木器加工间后方
泰平里暗巷深处老宅
系缆街系船桩旁民居
玉笋巷竹编工坊内侧院落
桦木后街林木旁自建屋
淳善巷摩配店后方小院
广配西巷五金仓储区旁房
蒲丛里蒲草滩边小平房
连河巷河道连通处宅院
留味巷烟酒铺后方民房
老枣巷古枣树周边住宅
淳平巷陡坡上方小院
锦玻路玻璃工坊后侧房
藕叶西巷藕塘沿岸小屋
甜井巷甘泉井旁农家院
揽鲜巷生鲜市集深处院落
苦楝巷木料堆场后方
清和里曲巷深处老宅
泛舟街游船泊位内侧房
谷香巷杂粮铺后方院落
白杨后街林木旁民居
惠平巷炸货摊内侧小院
畅行西巷货运门店旁房屋
茅草丛里荒滩边小平房
支流巷河道分支处宅院
沁香巷熟食铺后方民房
枫林西巷红枫林深处住宅
仁善巷巷口内侧小院
鸿门窗路门窗工坊后侧房
芡实西巷水田沿岸小屋
清潭巷清水潭旁农家院
采鲜巷水产市集深处院落
槐木巷木作工坊后方
和静里深巷深处老宅
停船街停泊区内侧民居
黄芝巷山珍铺后方院落
垂柳后街河岸林木旁住房
顺善巷修理铺内侧小院
通远西巷物流仓库旁房屋
灯草里草棚连片小屋
汇流巷河道汇口处宅院
溢味巷果蔬店后方民房
桃林西巷桃林深处住宅
德平巷窄坡上方小院
鼎石路石材加工坊后侧房
慈姑西巷浅水田沿岸小屋
寒潭巷冷水潭旁农家院
撷味巷肉品市集深处院落
榆木巷木料加工间后方
睦静里绕巷深处老宅
渡客街渡口码头内侧房
首乌巷干货摊后方院落
香樟后街大树旁民居
祥平巷面点铺内侧小院
致远西巷中转库房旁房屋
蒿草丛里荒坡边小平房
溪口巷溪流入口处宅院
飘香巷服饰店后方民房
杏林西巷杏林深处住宅
谦平巷弯道内侧小院
强广路广告工坊后侧房
荸荠西巷沟渠沿岸小屋
幽泉巷幽冷泉旁农家院
寻味巷土产市集深处院落
梧桐西巷家具工坊后方
静和里叠巷深处老宅
摇橹街船泊区内侧民居
百合巷花坊后方院落
水杉后街林木旁住房
温善巷缝纫铺内侧小院
恒远西巷货物堆场旁房屋
莎草丛里湿地边小平房
溪尾巷溪流末端处宅院
浓味巷鞋靴店后方民房
翠竹后街竹林深处住宅
恭平巷岔坡上方小院
伟铁路铁艺加工坊后侧房
慈莲西巷莲池沿岸小屋
深潭巷深水潭旁农家院
觅鲜巷熟食市集深处院落
朴木巷板材堆放区后方
宁和里回廊巷深处老宅
撑船街撑船码头内侧房
贝母巷山货摊后方院落
枫树后街林木旁自建屋
协平巷修鞋铺内侧小院
辽长西巷大件物流旁房屋
菅草丛里荒草坡边小平房
溪腰巷溪流中段处宅院
醇味巷箱包店后方民房
松林西巷松林深处住宅
善平巷墙根内侧小院
卓汽路汽配工坊后侧房
水芹西巷浅沟沿岸小屋
静井巷静水泉旁农家院
访鲜巷日杂市集深处院落
椿芽巷苗木基地后方
永静里夹缝巷深处老宅
放船街行船水域内侧民居
石斛巷药草摊后方院落
圆柏后街林木旁住房
怡平巷蔬果铺内侧小院
悠远西巷快运站点旁房屋
蓑草丛里坡地边小平房
岔流巷河道分叉处宅院
鲜味巷家纺店后方民房
柏林西巷柏树林深处住宅
乐平巷石阶上方小院
冠水暖路水暖工坊后侧房
水葱西巷低洼地沿岸小屋
浅潭巷浅水潭旁农家院
探鲜巷水产摊群深处院落
皂角巷旧木料区后方
康和里盘旋巷深处老宅
游舟街游船航道内侧房
芍药巷花艺铺后方院落
国槐后街古树旁自建屋
泰善巷配锁铺内侧小院
旷仓西巷大型仓库旁房屋
苎草丛里田埂边小平房
弯流巷河道弯道处宅院
清味巷文具店后方民房
白杨西巷杨林深处住宅
淳善里矮墙内侧小院
鼎灯饰路灯饰工坊后侧房
泽泻西巷沟渠沿岸小屋
冷井巷冷泉井旁农家院
撷鲜巷肉品摊群深处院落
桑枝巷养蚕工坊后方
福和里绕墙巷深处老宅
泊船街港湾内侧民居
郁金巷香品铺后方院落
榆树后街林木旁住房
永平巷面食铺内侧小院
迢远西巷零担物流旁房屋
蔺草丛里塘埂边小平房
双流巷两河交汇处宅院
淡味巷玩具店后方民房
垂柳西巷柳林深处住宅
清善巷土坡内侧小院
隆五金路五金工坊后侧房
灯芯西巷积水洼沿岸小屋
暖井巷暖泉井旁农家院
寻鲜巷果蔬摊群深处院落
桃枝巷果木园区后方
吉和里转角巷深处老宅
行舟街航道内侧房
牵牛巷藤蔓铺后方院落
酸枣后街林木旁自建屋
祥善巷修表铺内侧小院
广仓西巷仓储园区旁房屋
席草丛里场院边小平房
长流巷长河沿岸宅院
微味巷饰品店后方民房
杏树西巷杏林深处住宅
安善巷石墙内侧小院
宏化工路化工门店后侧房
浮萍西巷积水塘沿岸小屋
温井巷温泉井旁农家院
采趣巷花鸟摊群深处院落
梅枝巷花木基地后方
瑞和里穿墙巷深处老宅
系缆街码头内侧民居
凤仙巷盆栽铺后方院落
板栗后街林木旁住房
顺善里木栏内侧小院
怀仓西巷配送仓库旁房屋
茅草丛二巷沟坎边小平房
短流巷短河沿岸宅院
余味巷皮具店后方民房
青枫西巷枫林深处住宅
平善巷土坎内侧小院
锦门窗路门窗工坊后侧房
菱叶西巷河塘沿岸小屋
冰井巷冰泉井旁农家院
访鲜巷生鲜摊群深处院落
竹枝巷竹器工坊后方
兴和里穿巷深处老宅
泛舟街水域内侧民居
鸡冠巷种苗铺后方院落
青栎后街林木旁自建屋
温善里弹花铺内侧小院
超仓西巷货运园区旁房屋
蒲草丛二巷渠沟边小平房
曲流巷曲河沿岸宅院
留味二巷眼镜店后方民房
刺槐西巷槐林深处住宅
仁善里砖垛内侧小院
鸿钢材路钢材门店后侧房
荷叶西巷藕塘沿岸小屋
寒井巷寒泉井旁农家院
探趣巷水产摊群深处院落
柳枝巷柳条工坊后方
乐和里隐巷深处老宅
停缆街港湾内侧民居
茉莉巷香花铺后方院落
青杨后街林木旁住房
谦善巷石栏内侧小院
腾仓西巷中转货场旁房屋
菅草丛二巷坡埂边小平房
环流巷环水区域宅院
溢味二巷钟表店后方民房
桑树西巷桑林深处住宅
德善巷土墙内侧小院
强广告路广告工坊后侧房
芡实二西巷水田沿岸小屋
灵井二巷灵泉井旁农家院
觅鲜二巷干货摊群深处院落
榆枝巷木器工坊后方
熙和里暗巷深处老宅
渡客二街码头内侧民居
紫薇巷花苗铺后方院落
香樟西巷樟林深处住宅
恭善巷石坎内侧小院
逸仓西巷大件仓储旁房屋
蓑草丛二巷垄边小平房
叠流巷叠河沿岸宅院
飘香二巷童装店后方民房
0旱柳后街林木旁自建屋
0善善巷泥墙内侧小院
0伟石材路石材门店后侧房
0慈姑二西巷浅塘沿岸小屋
0幽井巷幽泉井旁农家院
0寻趣巷土产摊群深处院落
0松枝巷木作工坊后方
0淳和里深隐巷深处老宅
0摇橹二街船泊区内侧民居
0木槿巷盆栽铺后方院落
冷杉后街林木旁住房
睦善巷土坡内侧小院
悠仓西巷快运货场旁房屋
苎草丛二巷地头小平房
汇流二巷河道汇口宅院
浓味二巷男装店后方民房
圆柏西巷柏林深处住宅
谦善里矮坎内侧小院
冠铁艺路铁艺工坊后侧房
荸荠二西巷沟渠沿岸小屋
清井巷清泉井旁农家院
撷趣巷宠物摊群深处院落
柏枝巷板材工坊后方
惠和里窄隐巷深处老宅
撑船二街渡口内侧民居
海棠巷鲜果铺后方院落
红枫后街林木旁自建屋
怡善巷石埂内侧小院
辽仓西巷零担仓储旁房屋
蔺草丛二巷塘边小平房
分流巷河道分支宅院
醇味二巷女装店后方民房
银白杨西巷杨林深处住宅
温善里砖坎内侧小院
卓汽配路汽配门店后侧房
水芹二西巷湿地沿岸小屋
静井二巷静泉井旁农家院
访鲜二巷熟食摊群深处院落
椿枝巷苗木工坊后方
顺和里曲隐巷深处老宅
放船二街水域内侧民居
丁香巷香包铺后方院落
刺柏后街林木旁住房
祥善里土埂内侧小院
旷仓二西巷配送货场旁房屋
席草丛二巷场边小平房
合流巷河道合流宅院
鲜味二巷内衣店后方民房
灰枣西巷枣林深处住宅
泰善里泥坎内侧小院
隆灯饰路灯饰工坊后侧房
水葱二西巷洼地沿岸小屋
甘泉巷甘泉井旁农家院
探鲜二巷肉品摊群深处院落
槐枝巷木货工坊后方
广和里绕隐巷深处老宅
游舟二街航道内侧民居
蔷薇巷花艺铺后方院落
桑树后街林木旁自建屋
永善巷石坡内侧小院
迢仓西巷综合仓储旁房屋
灯草二巷沟边小平房
干流巷主河道沿岸宅院
淡味二巷童鞋店后方民房
榆树西巷榆林深处住宅
淳善里砖坡内侧小院
宏化工二路化工门店后侧房
泽泻二西巷渠塘沿岸小屋
温泉巷温泉潭旁农家院
觅趣巷果蔬摊群深处院落
柳枝巷柳货工坊后方
福和二里穿隐巷深处老宅
泊船二街航道内侧民居
牡丹巷盆花铺后方院落
杞柳后街林木旁住房
祥善里二巷土坡内侧小院
广仓二西巷大型货场旁房屋
莎草丛二巷滩边小平房
支流二巷河道支流宅院
微味二巷箱包店后方民房
碧桃西巷桃林深处住宅
安善里泥坡内侧小院
锦门窗二路门窗工坊后侧房
灯芯二西巷低洼塘沿岸小屋
寒井二巷寒泉潭旁农家院
寻鲜二巷水产摊群深处院落
桃枝二巷果货工坊后方
吉和二里转角隐巷老宅
系缆二街航道内侧民居
芍药二巷花束铺后方院落
锥栗后街林木旁自建屋
平善里石坡内侧小院
怀仓二西巷快递仓储旁房屋
茅草三巷崖边小平房
浅流巷浅河沿岸宅院
余味二巷帽饰店后方民房
山杏西巷杏林深处住宅
清善里砖坡内侧小院
鸿钢材二路钢材门店后侧房
菱角二西巷河湾沿岸小屋
冰井二巷冰泉潭旁农家院
采鲜二巷花鸟摊群深处院落
竹枝二巷竹货工坊后方
瑞和二里穿墙隐巷老宅
泛舟二街航道内侧民居
凤仙二巷花籽铺后方院落
麻栎后街林木旁住房
乐善巷土坡内侧小院
腾仓二西巷快运货场旁房屋
蒲草丛三巷堰边小平房
深流巷深河沿岸宅院
留味三巷袜品店后方民房
五角枫西巷枫林深处住宅
仁善里泥坡内侧小院
强广告二路广告工坊后侧房
荷叶三西巷塘湾沿岸小屋
幽井二巷幽泉潭旁农家院
访趣巷生鲜摊群深处院落
桑枝二巷桑货工坊后方
熙和二里回廊隐巷老宅
停缆二街航道内侧民居
牵牛二巷花藤铺后方院落
圆枣后街林木旁自建屋
德善里石坡内侧小院
逸仓二西巷大件货场旁房屋
菅草丛三巷埂边小平房
急流巷急河沿岸宅院
溢味三巷围巾店后方民房
龙爪槐西巷槐林深处住宅
谦善里砖坡内侧小院
伟石材二路石材门店后侧房
芡实三西巷滩田沿岸小屋
灵井三巷灵泉潭旁农家院
撷鲜二巷干货摊群深处院落
榆枝二巷榆货工坊后方
淳和二里夹缝隐巷老宅
渡客三街航道内侧民居
茉莉二巷花干铺后方院落
钻天杨后街林木旁住房
善善里土坡内侧小院
悠仓二西巷零担货场旁房屋
蓑草丛三巷垄边小平房
缓流巷缓河沿岸宅院
飘香三巷手套店后方民房
馒头柳西巷柳林深处住宅
恭善里泥坡内侧小院
冠铁艺二路铁艺工坊后侧房
慈姑三西巷浅滩沿岸小屋
静井三巷静泉潭旁农家院
寻趣二巷土产摊群深处院落
松枝二巷松货工坊后方
睦和二里盘旋隐巷老宅
摇橹三街航道内侧民居
紫薇二巷花根铺后方院落
黄樟后街林木旁自建屋
温善二巷石坡内侧小院
辽仓二西巷配送仓储旁房屋
苎草丛三巷畦边小平房
静流巷静河沿岸宅院
浓味三巷皮带店后方民房
翠柏西巷柏林深处住宅
怡善里砖坡内侧小院
卓汽配二路汽配门店后侧房
荸荠三西巷浅沟沿岸小屋
清井二巷清泉潭旁农家院
探趣二巷宠物摊群深处院落
柏枝二巷柏货工坊后方
惠和二里盘旋隐巷老宅
撑船三街航道内侧民居
海棠二巷果干铺后方院落
三角枫后街林木旁住房
仁和里土坡内侧小院
广仓三西巷综合货场旁房屋
蔺草丛三巷塘埂小平房
动流巷流动河道宅院
醇味三巷鞋帽店后方民房
银白杨后街林木深处住宅
泰善二巷泥坡内侧小院
隆灯饰二路灯饰工坊后侧房
水芹三西巷浅湿地沿岸小屋
甘泉二巷甘泉潭旁农家院
觅鲜三巷熟食摊群深处院落
椿枝二巷椿货工坊后方
顺和二里穿墙隐巷老宅
放船三街航道内侧民居
丁香二巷花籽铺后方院落
铺地柏后街林木旁自建屋
祥善二巷石坡内侧小院
迢仓二西巷快运仓储旁房屋
席草丛三巷场边小平房
幽流巷幽河沿岸宅院
鲜味三巷袜饰店后方民房
酸枣西巷枣林深处住宅
永和里砖坡内侧小院
宏化工三路化工门店后侧房
水葱三西巷浅洼地沿岸小屋
温泉二巷温泉池旁农家院
访鲜三巷肉品摊群深处院落
槐枝二巷槐货工坊后方
广和二里绕墙隐巷老宅
游舟三街航道内侧民居
蔷薇二巷花肥铺后方院落
龙桑后街林木旁住房
淳善二巷土坡内侧小院
广仓四西巷大型仓储旁房屋
灯草三巷渠边小平房
明流巷明河沿岸宅院
淡味三巷童装铺后方民房
垂枝榆西巷榆林深处住宅
安善二巷泥坡内侧小院
锦门窗三路门窗工坊后侧房
泽泻三西巷浅渠沿岸小屋
冷井三巷冷泉池旁农家院
撷趣二巷果蔬摊群深处院落
柳枝二巷柳货工坊后方
福和三里暗巷深处老宅
泊船三街码头内侧民居
牡丹二巷花盆铺后方院落
龙爪柳后街林木旁自建屋
平善二巷石坎内侧小院
怀仓三西巷快递货场旁房屋
莎草丛三巷滩埂小平房
暗流巷暗河沿岸宅院
微味三巷箱包铺后方民房
垂枝桃西巷桃林深处住宅
清善二巷砖坎内侧小院
鸿钢材三路钢材门店后侧房
灯芯三西巷浅塘沿岸小屋
寒井三巷寒潭池旁农家院
寻鲜三巷水产摊群深处院落
桃枝三巷桃货工坊后方
吉和三里转角深巷老宅
系缆三街码头内侧民居
芍药三巷花土铺后方院落
欧洲栗后街林木旁住房
仁和二巷土坎内侧小院
腾仓三西巷零担货场旁房屋
茅草四巷崖埂小平房
清流巷清河沿岸宅院
余味三巷帽饰铺后方民房
垂枝杏西巷杏林深处住宅
德善二巷泥坎内侧小院
强广告三路广告工坊后侧房
菱角三西巷河浅湾沿岸小屋
冰井三巷冰泉池旁农家院
采鲜三巷花鸟摊群深处院落
竹枝三巷竹货工坊后方
瑞和三里穿墙深巷老宅
泛舟三街码头内侧民居
凤仙三巷花铲铺后方院落
白栎后街林木旁自建屋
谦善二巷石坎内侧小院
逸仓三西巷大件货场旁房屋
蒲草丛四巷堰埂小平房
浊流巷浊河沿岸宅院
留味四巷手套铺后方民房
鸡爪槭西巷枫林深处住宅
善善二巷砖坎内侧小院
伟石材三路石材门店后侧房
荷叶四西巷塘浅湾沿岸小屋
幽井三巷幽泉池旁农家院
访趣二巷生鲜摊群深处院落
桑枝三巷桑货工坊后方
熙和三里回廊深巷老宅
停缆三街码头内侧民居
牵牛三巷花架铺后方院落
扁枣后街林木旁住房
恭善二巷土坎内侧小院
悠仓三西巷配送货场旁房屋
菅草丛四巷垄埂小平房
甘流巷甘河沿岸宅院
溢味四巷围巾铺后方民房
紫穗槐西巷槐林深处住宅
温善三巷泥坎内侧小院
冠铁艺三路铁艺工坊后侧房
芡实四西巷滩浅田沿岸小屋
灵井四巷灵潭池旁农家院
觅鲜四巷干货摊群深处院落
榆枝三巷榆货工坊后方
淳和三里夹缝深巷老宅
渡客四街码头内侧民居
茉莉三巷花剪铺后方院落
新疆杨后街林木旁自建屋
怡善二巷石坎内侧小院
辽仓三西巷综合仓储旁房屋
蓑草丛四巷畦埂小平房
苦流巷苦河沿岸宅院
飘香四巷皮带铺后方民房
龙柳西巷柳林深处住宅
祥善三巷砖坎内侧小院
卓汽配三路汽配门店后侧房
慈姑四西巷滩浅洼沿岸小屋
静井四巷静泉池旁农家院
寻趣三巷土产摊群深处院落
松枝三巷松货工坊后方
睦和三里盘旋深巷老宅
摇橹四街码头内侧民居
紫薇三巷花壶铺后方院落
红樟后街林木旁住房
泰和里土坎内侧小院
旷仓三西巷快运货场旁房屋
苎草丛四巷地头小平房
乐流巷乐河沿岸宅院
浓味四巷鞋袜铺后方民房
圆柏苗西巷柏林深处住宅
祥善四巷泥坎内侧小院
隆灯饰三路灯饰工坊后侧房
荸荠四西巷沟浅洼沿岸小屋
清井三巷清泉池旁农家院
探趣三巷宠物摊群深处院落
柏枝三巷柏货工坊后方
惠和三里绕墙深巷老宅
撑船四街码头内侧民居
海棠三巷果篮铺后方院落
元宝枫后街林木旁自建屋
永和二巷石坎内侧小院
迢仓三西巷快递仓储旁房屋
蔺草丛四巷塘边小平房
喜流巷喜河沿岸宅院
醇味四巷服饰铺后方民房
胡杨西巷杨林深处住宅
淳善三巷砖坎内侧小院
宏化工四路化工门店后侧房
水芹四西巷湿浅地沿岸小屋
甘泉三巷甘泉池旁农家院
撷鲜四巷熟食摊群深处院落
椿枝三巷椿货工坊后方
顺和三里穿墙深巷老宅
放船四街码头内侧民居
丁香三巷花肥铺后方院落
真柏后街林木旁住房
安善三巷土坎内侧小院
广仓五西巷大型货场旁房屋
席草丛四巷场边小平房
思流巷思河沿岸宅院
鲜味四巷内衣铺后方民房
壶枣西巷枣林深处住宅
清善三巷泥坎内侧小院
锦门窗四路门窗工坊后侧房
水葱四西巷洼浅地沿岸小屋
温泉三巷温泉潭旁农家院
访鲜四巷肉品摊群深处院落
槐枝三巷槐货工坊后方
广安三里暗巷深宅院落
游舟四街码头内侧民居
蔷薇三巷花架铺后方院落
鸡桑后街林木旁自建屋
仁和三巷石坎内侧小院
怀仓四西巷零担仓储旁房屋
灯草四巷沟边小平房
忆流巷忆河沿岸宅院
淡味四巷玩具铺后方民房
榔榆西巷榆林深处住宅
德善三巷砖坎内侧小院
鸿钢材四路钢材门店后侧房
泽泻四西巷渠浅洼沿岸小屋
冷井四巷冷泉潭旁农家院
觅趣三巷果蔬摊群深处院落
柳枝三巷柳货工坊后方
福和四里转角深巷老宅
泊船四街旧码头旁联排房
牡丹三巷花土铺后方院落
簸箕柳后街林木旁宅院
谦和里土坎内侧小院
腾仓四西巷大件物流货场
莎草丛四巷滩边小平房
寻流巷寻河沿岸宅院
微味四巷饰品铺后方民房
寿星桃西巷桃林深处住宅
善善三巷泥坎内侧小院
强广告四路广告制作后场
灯芯四巷塘浅洼沿岸小屋
寒井四巷寒泉潭旁农家院
寻鲜四巷水产摊群深处院落
桃枝四巷桃货工坊后方
吉和四里回廊深巷老宅
系缆四街老泊位旁住房
芍药四巷花铲铺后方院落
毛栗后街林木旁宅院
恭善三巷石坎内侧小院
逸仓四西巷综合仓储园区
茅草五巷崖边小平房
望流巷望河沿岸宅院
余味四巷皮具铺后方民房
山桃西巷杏林深处住宅
温和里砖坎内侧小院
伟石材四路石材加工后场
菱角四巷河浅滩沿岸小屋
冰井四巷冰泉潭旁农家院
采鲜四巷花鸟摊群深处院落
竹枝四巷竹货工坊后方
瑞安四里盘旋深巷老宅
泛舟四街新码头旁住房
凤仙四巷花壶铺后方院落
栓皮栎后街林木旁宅院
怡善三巷土坎内侧小院
悠远四西巷快运中转货场
蒲草丛五巷堰边小平房
听流巷听河沿岸宅院
留味五巷鞋靴铺后方民房
红槭西巷枫林深处住宅
祥和里泥坎内侧小院
冠铁艺四路铁艺制作后场
荷叶五巷塘浅滩沿岸小屋
幽井四巷幽泉潭旁农家院
访趣四巷生鲜摊群深处院落
桑枝四巷桑货工坊后方
熙和四里夹缝深巷老宅
停缆四街旧泊位旁住房
牵牛四巷花剪铺后方院落
葫芦枣后街林木旁宅院
泰和二巷石坎内侧小院
辽仓四西巷配送仓储中心
菅草丛五巷垄边小平房
观流巷观河沿岸宅院
溢味五巷服饰铺后方民房
紫槐西巷槐林深处住宅
祥和二巷砖坎内侧小院
卓汽配四路汽配维修后场
芡实五巷滩浅田沿岸小屋
灵井五巷灵泉潭旁农家院
觅鲜五巷干货摊群深处院落
榆枝四巷榆货工坊后方
淳安四里穿墙深巷老宅
渡客五街老渡口旁住房
茉莉四巷花籽铺后方院落
箭杆杨后街林木旁宅院
永和三巷土坎内侧小院
旷仓四西巷零担货运货场
蓑草丛五巷畦边小平房
探流巷探河沿岸宅院
飘香五巷箱包铺后方民房
金丝柳西巷柳林深处住宅
淳和三巷泥坎内侧小院
隆灯饰四路灯饰制作后场
慈姑五巷滩浅洼沿岸小屋
静井五巷静泉潭旁农家院
寻趣四巷土产摊群深处院落
松枝四巷松货工坊后方
睦安四里绕墙深巷老宅
摇橹五街新渡口旁住房
紫薇四巷花肥铺后方院落
香樟苗后街林木旁宅院
安善四巷石坎内侧小院
迢仓四西巷快递分拣仓储
苎草丛五巷地头小平房
寻泉巷寻泉溪流宅院
浓味五巷帽饰铺后方民房
翠柏苗西巷柏林深处住宅
清善四巷砖坎内侧小院
宏化工五路化工原料后场
荸荠五巷沟浅洼沿岸小屋
清井四巷清泉潭旁农家院
探趣四巷宠物摊群深处院落
柏枝四巷柏货工坊后方
惠安四里暗巷深巷老宅
撑船五街老码头旁住房
海棠四巷花土铺后方院落
青枫苗后街林木旁宅院
仁和四巷土坎内侧小院
广仓六西巷大型中转货场
蔺草丛五巷塘边小平房
望泉巷望泉溪流宅院
醇味五巷袜饰铺后方民房
白杨苗西巷杨林深处住宅
德善四巷泥坎内侧小院
锦门窗五路门窗制作后场
水芹五巷湿浅地沿岸小屋
甘泉四巷甘泉潭旁农家院
撷鲜五巷熟食摊群深处院落
椿枝四巷椿货工坊后方
顺安四里转角深巷老宅
放船五街新码头旁住房
丁香四巷花铲铺后方院落
桧柏苗后街林木旁宅院
谦和三巷石坎内侧小院
怀仓五西巷大件仓储园区
席草丛五巷场边小平房
听泉巷听泉溪流宅院
鲜味五巷手套铺后方民房
枣树苗西巷枣林深处住宅
善善四巷砖坎内侧小院
鸿钢材五路钢材堆放后场
水葱五巷洼浅地沿岸小屋
温泉四巷温泉潭旁农家院
访鲜五巷肉品摊群深处院落
槐枝四巷槐货工坊后方
广安四里绕墙隐巷老宅
游舟五街码头内侧民居
蔷薇四巷花肥铺后方院落
龙桑苗后街林木旁宅院
淳善四巷土坎内侧小院
广仓七西巷大型仓储园区
灯草五巷渠边小平房
明泉巷明泉溪流宅院
淡味五巷童装铺后方民房
垂枝榆苗西巷榆林深处住宅
安善五巷泥坎内侧小院
宏化工六路化工门店后侧房
泽泻五巷渠浅洼沿岸小屋
冷井五巷冷泉池旁农家院
撷趣四巷果蔬摊群深处院落
柳枝四巷柳货工坊后方
福安五里暗巷深处老宅
泊船五街码头内侧民居
牡丹四巷花盆铺后方院落
龙爪柳苗后街林木旁宅院
平和二巷石坎内侧小院
怀远五西巷快递货场旁房屋
莎草丛五巷滩埂小平房
暗泉巷暗泉溪流宅院
微味五巷箱包铺后方民房
垂枝桃苗西巷桃林深处住宅
清善五巷砖坎内侧小院
鸿钢材六路钢材门店后侧房
灯芯五巷浅塘沿岸小屋
寒井五巷寒潭池旁农家院
寻鲜五巷水产摊群深处院落
桃枝五巷桃货工坊后方
吉安五里转角深巷老宅
系缆五街码头内侧民居
芍药五巷花土铺后方院落
欧洲栗苗后街林木旁宅院
仁和五巷土坎内侧小院
腾仓五西巷零担货场旁房屋
茅草六巷崖埂小平房
清泉二巷清泉溪流宅院
余味五巷帽饰铺后方民房
垂枝杏苗西巷杏林深处住宅
德善五巷泥坎内侧小院
强广告五路广告加工后场
菱角五巷河浅湾沿岸小屋
冰井五巷冰泉池旁农家院
采鲜五巷花鸟摊群深处院落
竹枝五巷竹货工坊后方
瑞安五里穿墙深巷老宅
泛舟五街码头内侧民居
凤仙五巷花铲铺后方院落
白栎苗后街林木旁宅院
谦和四巷石坎内侧小院
逸仓五西巷大件货场旁房屋
蒲草丛六巷堰埂小平房
浊泉巷浊泉溪流宅院
留味六巷手套铺后方民房
鸡爪槭苗西巷枫林深处住宅
善善五巷砖坎内侧小院
伟石材五路石材门店后侧房
荷叶六巷塘浅湾沿岸小屋
幽井五巷幽泉池旁农家院
访趣五巷生鲜摊群深处院落
桑枝五巷桑货工坊后方
熙安五里回廊深巷老宅
停缆五街码头内侧民居
牵牛五巷花架铺后方院落
扁枣苗后街林木旁宅院
恭善三巷土坎内侧小院
悠远五西巷配送货场旁房屋
菅草丛六巷垄埂小平房
甘泉二巷甘泉溪流宅院
溢味六巷围巾铺后方民房
紫穗槐苗西巷槐林深处住宅
温和四巷泥坎内侧小院
冠铁艺五路铁艺加工后场
芡实六巷滩浅田沿岸小屋
灵井六巷灵潭池旁农家院
觅鲜六巷干货摊群深处院落
榆枝五巷榆货工坊后方
淳安五里夹缝深巷老宅
渡客六街码头内侧民居
茉莉五巷花剪铺后方院落
新疆杨苗后街林木旁宅院
怡善四巷石坎内侧小院
辽仓五西巷综合仓储旁房屋
蓑草丛六巷畦埂小平房
苦泉巷苦泉溪流宅院
飘香六巷皮带铺后方民房
龙柳苗西巷柳林深处住宅
祥和三巷砖坎内侧小院
卓汽配五路汽配门店后侧房
慈姑六巷滩浅洼沿岸小屋
静井六巷静泉池旁农家院
寻趣五巷土产摊群深处院落
松枝五巷松货工坊后方
睦安五里盘旋深巷老宅
摇橹六街码头内侧民居
紫薇五巷花壶铺后方院落
红樟苗后街林木旁宅院
泰和三巷土坎内侧小院
旷仓五西巷快运货场旁房屋
苎草丛六巷地头小平房
乐泉巷乐泉溪流宅院
浓味六巷鞋袜铺后方民房
圆柏大苗西巷柏林深处住宅
祥和四巷泥坎内侧小院
隆灯饰五路灯饰加工后场
荸荠六巷沟浅洼沿岸小屋
清井五巷清泉池旁农家院
探趣五巷宠物摊群深处院落
柏枝五巷柏货工坊后方
惠安五里绕墙深巷老宅
撑船六街码头内侧民居
海棠五巷果篮铺后方院落
元宝枫苗后街林木旁宅院
永和四巷石坎内侧小院
迢仓五西巷快递仓储旁房屋
蔺草丛六巷塘边小平房
喜泉巷喜泉溪流宅院
醇味六巷服饰铺后方民房
胡杨苗西巷杨林深处住宅
淳善五巷砖坎内侧小院
宏化工七路化工门店后侧房
水芹六巷湿浅地沿岸小屋
甘泉五巷甘泉池旁农家院
撷鲜六巷熟食摊群深处院落
椿枝五巷椿货工坊后方
顺安五里穿墙深巷老宅
放船六街码头内侧民居
丁香五巷花肥铺后方院落
真柏苗后街林木旁宅院
安善六巷土坎内侧小院
广仓八西巷大型货场旁房屋
席草丛六巷场边小平房
思泉巷思泉溪流宅院
鲜味六巷内衣铺后方民房
壶枣苗西巷枣林深处住宅
清善六巷泥坎内侧小院
锦门窗六路门窗加工后场
水葱六巷洼浅地沿岸小屋
温泉五巷温泉潭旁农家院
访鲜六巷肉品摊群深处院落
槐枝五巷槐货工坊后方
广安五里暗巷深宅院落
游舟六街码头内侧民居
蔷薇五巷花架铺后方院落
鸡桑苗后街林木旁宅院
仁和六巷石坎内侧小院
怀远六西巷零担仓储旁房屋
灯草六巷沟边小平房
忆泉巷忆泉溪流宅院
淡味六巷玩具铺后方民房
榔榆苗西巷榆林深处住宅
德善六巷砖坎内侧小院
鸿钢材七路钢材门店后侧房
泽泻六巷渠浅洼沿岸小屋
冷井六巷冷泉潭旁农家院
觅趣五巷果蔬摊群深处院落
柳枝五巷柳货工坊后方
福安六里转角深巷老宅
泊船六街中段旧码头旁联排房
牡丹五巷花土铺后方院落
簸箕柳苗后街林木旁宅院
谦和五巷土坎内侧小院
腾仓六西巷大件物流货场
莎草丛六巷滩边小平房
寻泉二巷寻泉溪流宅院
微味六巷饰品铺后方民房
寿星桃苗西巷桃林深处住宅";
}
}