mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 17:23:26 +08:00
【优化】取消sku货品货号必须包含【SN】的限制。
【调整】调整Sku切割方式,将小写逗号【.】,替换为【&&】;同时更新表【CoreCmsGoods】内数据,请大家执行sql脚本更新存储的sku数据。
This commit is contained in:
@@ -74,12 +74,13 @@ namespace CoreCms.Net.Repository
|
|||||||
//检查数据
|
//检查数据
|
||||||
foreach (var item in entity.products)
|
foreach (var item in entity.products)
|
||||||
{
|
{
|
||||||
if (!item.sn.Contains("sn") && !item.sn.Contains("SN"))
|
//if (!item.sn.Contains("sn") && !item.sn.Contains("SN"))
|
||||||
{
|
//{
|
||||||
jm.msg = "请键入货品货号!货号为SN英文开头";
|
// jm.msg = "请键入货品货号!货号为SN英文开头";
|
||||||
return jm;
|
// return jm;
|
||||||
}
|
//}
|
||||||
else if (item.stock < 0)
|
//else
|
||||||
|
if (item.stock < 0)
|
||||||
{
|
{
|
||||||
jm.msg = "库存不能为0!";
|
jm.msg = "库存不能为0!";
|
||||||
return jm;
|
return jm;
|
||||||
@@ -327,12 +328,13 @@ namespace CoreCms.Net.Repository
|
|||||||
//检查数据
|
//检查数据
|
||||||
foreach (var item in entity.products)
|
foreach (var item in entity.products)
|
||||||
{
|
{
|
||||||
if (!item.sn.Contains("sn") && !item.sn.Contains("SN"))
|
//if (!item.sn.Contains("sn") && !item.sn.Contains("SN"))
|
||||||
{
|
//{
|
||||||
jm.msg = "请键入货品货号!货号为SN英文开头";
|
// jm.msg = "请键入货品货号!货号为SN英文开头";
|
||||||
return jm;
|
// return jm;
|
||||||
}
|
//}
|
||||||
else if (item.stock < 0)
|
//else
|
||||||
|
if (item.stock < 0)
|
||||||
{
|
{
|
||||||
jm.msg = "库存不能为0!";
|
jm.msg = "库存不能为0!";
|
||||||
return jm;
|
return jm;
|
||||||
|
|||||||
@@ -793,7 +793,7 @@ namespace CoreCms.Net.Services
|
|||||||
foreach (var item in good.spesDesc.Split("|"))
|
foreach (var item in good.spesDesc.Split("|"))
|
||||||
{
|
{
|
||||||
//1911&&电线型号:2.5mm²
|
//1911&&电线型号:2.5mm²
|
||||||
var temp = item.Split(".")[1].Split(":");
|
var temp = item.Split("&&")[1].Split(":");
|
||||||
var name = temp[0];
|
var name = temp[0];
|
||||||
var value = temp[1];
|
var value = temp[1];
|
||||||
if (!defaultSpec.ContainsKey(name))
|
if (!defaultSpec.ContainsKey(name))
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ namespace CoreCms.Net.Services
|
|||||||
foreach (var item in spesDescArr)
|
foreach (var item in spesDescArr)
|
||||||
{
|
{
|
||||||
//小类拆分
|
//小类拆分
|
||||||
var itemArr = item.Split(".");
|
var itemArr = item.Split("&&");
|
||||||
//键值对处理
|
//键值对处理
|
||||||
var keyValue = itemArr[1].Split(":");
|
var keyValue = itemArr[1].Split(":");
|
||||||
var defaultSpesDesc = new DefaultSpesDesc();
|
var defaultSpesDesc = new DefaultSpesDesc();
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ namespace CoreCms.Net.Utility.Helper
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static bool FilterChar(string inputValue)
|
public static bool FilterChar(string inputValue)
|
||||||
{
|
{
|
||||||
return Regex.IsMatch(inputValue, "[`.~!@#$^&*()=|\"{}':;',\\[\\]<>?~!@#¥……&*&;|{}。*-+]+");
|
return Regex.IsMatch(inputValue, "[`~!@#$^&*()=|\"{}':;',\\[\\]<>?~!@#¥……&*&;|{}。*-+]+");
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|||||||
@@ -872,7 +872,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
|||||||
return jm;
|
return jm;
|
||||||
}
|
}
|
||||||
|
|
||||||
var newSpecs = list.Where(p => p.name.Contains("newSpec.")).ToList();
|
var newSpecs = list.Where(p => p.name.Contains("newSpec&&")).ToList();
|
||||||
foreach (var t in newSpecs)
|
foreach (var t in newSpecs)
|
||||||
{
|
{
|
||||||
t.value = t.value.Trim();
|
t.value = t.value.Trim();
|
||||||
@@ -897,7 +897,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
|||||||
{
|
{
|
||||||
newSpec.ForEach(p =>
|
newSpec.ForEach(p =>
|
||||||
{
|
{
|
||||||
p.name = p.name.Replace("newSpec.", "");
|
p.name = p.name.Replace("newSpec&&", "");
|
||||||
newSpecStr += p.name + ":" + p.value + "|";
|
newSpecStr += p.name + ":" + p.value + "|";
|
||||||
});
|
});
|
||||||
newSpecStr = newSpecStr.Remove(newSpecStr.Length - 1, 1);
|
newSpecStr = newSpecStr.Remove(newSpecStr.Length - 1, 1);
|
||||||
@@ -910,7 +910,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
|||||||
{
|
{
|
||||||
selectSpec.ForEach(p =>
|
selectSpec.ForEach(p =>
|
||||||
{
|
{
|
||||||
p.name = p.name.Replace("selectSpec.", "");
|
p.name = p.name.Replace("selectSpec&&", "");
|
||||||
selectSpecStr += p.name + ":" + p.value + "|";
|
selectSpecStr += p.name + ":" + p.value + "|";
|
||||||
});
|
});
|
||||||
selectSpecStr = selectSpecStr.Remove(selectSpecStr.Length - 1, 1);
|
selectSpecStr = selectSpecStr.Remove(selectSpecStr.Length - 1, 1);
|
||||||
@@ -921,8 +921,8 @@ namespace CoreCms.Net.Web.Admin.Controllers
|
|||||||
var newSelectSpec = selectSpec;
|
var newSelectSpec = selectSpec;
|
||||||
newSelectSpec.ForEach(p =>
|
newSelectSpec.ForEach(p =>
|
||||||
{
|
{
|
||||||
var id = p.name.Split(".")[0];
|
var id = p.name.Split("&&")[0];
|
||||||
var name = p.name.Split(".")[1];
|
var name = p.name.Split("&&")[1];
|
||||||
p.name = name;
|
p.name = name;
|
||||||
|
|
||||||
var newValue = newSpec.Find(p => p.name == id);
|
var newValue = newSpec.Find(p => p.name == id);
|
||||||
|
|||||||
@@ -444,10 +444,10 @@
|
|||||||
{{# layui.each(item.specValues, function(indexValue, itemValue){ }}
|
{{# layui.each(item.specValues, function(indexValue, itemValue){ }}
|
||||||
<div class="spec-item">
|
<div class="spec-item">
|
||||||
<div class="checkboxBox">
|
<div class="checkboxBox">
|
||||||
<input type="checkbox" name="selectSpec.{{itemValue.id}}.{{item.name}}" value="{{itemValue.value}}" lay-skin="switch" lay-filter="spec_select" class="spec-select" lay-text="启用|关闭">
|
<input type="checkbox" name="selectSpec&&{{itemValue.id}}&&{{item.name}}" value="{{itemValue.value}}" lay-skin="switch" lay-filter="spec_select" class="spec-select" lay-text="启用|关闭">
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input type="text" value="{{itemValue.value}}" name="newSpec.{{itemValue.id}}" class="layui-input">
|
<input type="text" value="{{itemValue.value}}" name="newSpec&&{{itemValue.id}}" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{# }); }}
|
{{# }); }}
|
||||||
|
|||||||
@@ -314,7 +314,7 @@
|
|||||||
{{# layui.each(item.specValues, function(indexValue, itemValue){ }}
|
{{# layui.each(item.specValues, function(indexValue, itemValue){ }}
|
||||||
<div class="spec-item">
|
<div class="spec-item">
|
||||||
<div class="checkboxBox">
|
<div class="checkboxBox">
|
||||||
<input type="checkbox" name="selectSpec.{{itemValue.id}}.{{item.name}}" value="{{itemValue.value}}" lay-skin="switch" {{isSelectedTypeSpec(d.model.spesDesc, itemValue.id,item.name)?'checked="checked"':''}} lay-filter="spec_select" class="spec-select" lay-text="启用|关闭" disabled="disabled">
|
<input type="checkbox" name="selectSpec&&{{itemValue.id}}&&{{item.name}}" value="{{itemValue.value}}" lay-skin="switch" {{isSelectedTypeSpec(d.model.spesDesc, itemValue.id,item.name)?'checked="checked"':''}} lay-filter="spec_select" class="spec-select" lay-text="启用|关闭" disabled="disabled">
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-input-inline layui-inline-3 layui-form-mid">{{getSelectedTypeSpecValue(d.model.newSpec, itemValue.id, itemValue.value)}}</div>
|
<div class="layui-input-inline layui-inline-3 layui-form-mid">{{getSelectedTypeSpecValue(d.model.newSpec, itemValue.id, itemValue.value)}}</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -715,7 +715,7 @@
|
|||||||
if (parameters) {
|
if (parameters) {
|
||||||
var arr = parameters.split('|');
|
var arr = parameters.split('|');
|
||||||
for (var i = 0; i < arr.length; i++) {
|
for (var i = 0; i < arr.length; i++) {
|
||||||
var str = id + '.' + value;
|
var str = id + '&&' + value;
|
||||||
var child = arr[i].split(':');
|
var child = arr[i].split(':');
|
||||||
if (child[0] === str) {
|
if (child[0] === str) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -441,10 +441,10 @@
|
|||||||
{{# layui.each(item.specValues, function(indexValue, itemValue){ }}
|
{{# layui.each(item.specValues, function(indexValue, itemValue){ }}
|
||||||
<div class="spec-item">
|
<div class="spec-item">
|
||||||
<div class="checkboxBox">
|
<div class="checkboxBox">
|
||||||
<input type="checkbox" name="selectSpec.{{itemValue.id}}.{{item.name}}" value="{{itemValue.value}}" lay-skin="switch" {{isSelectedTypeSpec(d.model.spesDesc, itemValue.id,item.name)?'checked="checked"':''}} lay-filter="spec_select" class="spec-select" lay-text="启用|关闭">
|
<input type="checkbox" name="selectSpec&&{{itemValue.id}}&&{{item.name}}" value="{{itemValue.value}}" lay-skin="switch" {{isSelectedTypeSpec(d.model.spesDesc, itemValue.id,item.name)?'checked="checked"':''}} lay-filter="spec_select" class="spec-select" lay-text="启用|关闭">
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-input-inline">
|
<div class="layui-input-inline">
|
||||||
<input type="text" value="{{getSelectedTypeSpecValue(d.model.newSpec, itemValue.id, itemValue.value)}}" name="newSpec.{{itemValue.id}}" class="layui-input">
|
<input type="text" value="{{getSelectedTypeSpecValue(d.model.newSpec, itemValue.id, itemValue.value)}}" name="newSpec&&{{itemValue.id}}" class="layui-input">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{# }); }}
|
{{# }); }}
|
||||||
@@ -1680,7 +1680,7 @@
|
|||||||
if (parameters) {
|
if (parameters) {
|
||||||
var arr = parameters.split('|');
|
var arr = parameters.split('|');
|
||||||
for (var i = 0; i < arr.length; i++) {
|
for (var i = 0; i < arr.length; i++) {
|
||||||
var str = id + '.' + value;
|
var str = id + '&&' + value;
|
||||||
var child = arr[i].split(':');
|
var child = arr[i].split(':');
|
||||||
if (child[0] === str) {
|
if (child[0] === str) {
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
<script type="text/html" template lay-done="layui.data.done(d);">
|
<script type="text/html" template lay-done="layui.data.done(d);">
|
||||||
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsGoodsTypeSpec-createForm" id="LAY-app-CoreCmsGoodsTypeSpec-createForm">
|
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsGoodsTypeSpec-createForm" id="LAY-app-CoreCmsGoodsTypeSpec-createForm">
|
||||||
<blockquote class="layui-elem-quote">
|
<blockquote class="layui-elem-quote">
|
||||||
SKU模型值只支持:中文、英文、数字、中文输入大写符号、英文小写二个符号(-、/)
|
SKU模型值只支持:中文、英文、数字、中文输入大写符号、英文小写三个符号(-、/、.)【横杠,斜杠,点】<br />
|
||||||
|
禁止出现符号为:【`~!@#$^&*()=|\"{}':;',\\[\\]<>?~!@#¥……&*&;|{}。*-+】
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label for="name" class="layui-form-label">模型名称</label>
|
<label for="name" class="layui-form-label">模型名称</label>
|
||||||
|
|||||||
@@ -2,7 +2,8 @@
|
|||||||
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsGoodsTypeSpec-editForm" id="LAY-app-CoreCmsGoodsTypeSpec-editForm">
|
<div class="layui-form coreshop-form layui-form-pane" lay-filter="LAY-app-CoreCmsGoodsTypeSpec-editForm" id="LAY-app-CoreCmsGoodsTypeSpec-editForm">
|
||||||
<input type="hidden" name="id" id="id" value="{{d.params.data.id || '' }}" />
|
<input type="hidden" name="id" id="id" value="{{d.params.data.id || '' }}" />
|
||||||
<blockquote class="layui-elem-quote">
|
<blockquote class="layui-elem-quote">
|
||||||
SKU模型值只支持:中文、英文、数字、中文输入大写符号、英文小写二个符号(-、/)
|
SKU模型值只支持:中文、英文、数字、中文输入大写符号、英文小写三个符号(-、/、.)【横杠,斜杠,点】<br />
|
||||||
|
禁止出现符号为:【`~!@#$^&*()=|\"{}':;',\\[\\]<>?~!@#¥……&*&;|{}。*-+】
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label for="name" class="layui-form-label">模型名称</label>
|
<label for="name" class="layui-form-label">模型名称</label>
|
||||||
|
|||||||
@@ -145,7 +145,7 @@
|
|||||||
admin.popup({
|
admin.popup({
|
||||||
shadeClose: false,
|
shadeClose: false,
|
||||||
title: '创建数据',
|
title: '创建数据',
|
||||||
area: ['550px', '90%'],
|
area: ['700px', '90%'],
|
||||||
id: 'LAY-popup-CoreCmsGoodsTypeSpec-create',
|
id: 'LAY-popup-CoreCmsGoodsTypeSpec-create',
|
||||||
success: function (layero, index) {
|
success: function (layero, index) {
|
||||||
view(this.id).render('good/goodstypespec/create', { data: e.data }).done(function () {
|
view(this.id).render('good/goodstypespec/create', { data: e.data }).done(function () {
|
||||||
@@ -192,7 +192,7 @@
|
|||||||
admin.popup({
|
admin.popup({
|
||||||
shadeClose: false,
|
shadeClose: false,
|
||||||
title: '编辑数据',
|
title: '编辑数据',
|
||||||
area: ['550px', '90%'],
|
area: ['700px', '90%'],
|
||||||
id: 'LAY-popup-CoreCmsGoodsTypeSpec-edit',
|
id: 'LAY-popup-CoreCmsGoodsTypeSpec-edit',
|
||||||
success: function (layero, index) {
|
success: function (layero, index) {
|
||||||
view(this.id).render('good/goodstypespec/edit', { data: e.data }).done(function () {
|
view(this.id).render('good/goodstypespec/edit', { data: e.data }).done(function () {
|
||||||
|
|||||||
1
数据库/MySql/20221104/更新脚本.txt
Normal file
1
数据库/MySql/20221104/更新脚本.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
UPDATE dbo.CoreCmsGoods SET spesDesc = REPLACE(spesDesc, '.', '&&'), parameters = REPLACE(parameters, '.', '&&'), newSpec = REPLACE(newSpec, '.', '&&');
|
||||||
@@ -1,3 +1,6 @@
|
|||||||
|
2022-11-04
|
||||||
|
【更新数据】更新表【CoreCmsGoods】数据,将小写逗号【.】,批量替换为【&&】,允许sku使用小写逗号。
|
||||||
|
|
||||||
2022-10-01
|
2022-10-01
|
||||||
【删除】表【CoreCmsArea】【postalCode】字段,
|
【删除】表【CoreCmsArea】【postalCode】字段,
|
||||||
【更新】表【CoreCmsArea】更新最新的全国行政区划,
|
【更新】表【CoreCmsArea】更新最新的全国行政区划,
|
||||||
|
|||||||
2
数据库/SqlServer/20221104/更新脚本.txt
Normal file
2
数据库/SqlServer/20221104/更新脚本.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
--更新商品编码分隔符
|
||||||
|
UPDATE dbo.CoreCmsGoods SET spesDesc = REPLACE(spesDesc, '.', '&&'), parameters = REPLACE(parameters, '.', '&&'), newSpec = REPLACE(newSpec, '.', '&&');
|
||||||
@@ -1,3 +1,6 @@
|
|||||||
|
2022-11-04
|
||||||
|
【更新数据】更新表【CoreCmsGoods】数据,将小写逗号【.】,批量替换为【&&】,允许sku使用小写逗号。
|
||||||
|
|
||||||
2022-10-01
|
2022-10-01
|
||||||
【删除】表【CoreCmsArea】【postalCode】字段,
|
【删除】表【CoreCmsArea】【postalCode】字段,
|
||||||
【更新】表【CoreCmsArea】更新最新的全国行政区划,
|
【更新】表【CoreCmsArea】更新最新的全国行政区划,
|
||||||
|
|||||||
Reference in New Issue
Block a user