Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
soss
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hooloo
ms
soss
Commits
ebea8be4
Commit
ebea8be4
authored
Feb 24, 2023
by
weijiguang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
下单时校验订单中sku数量
parent
d6a97012
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
217 additions
and
42 deletions
+217
-42
soss-admin/src/main/java/com/soss/web/controller/coffee/WeixinController.java
+5
-7
soss-framework/src/main/java/com/soss/framework/web/service/WeixinServiceImpl.java
+7
-1
soss-system/src/main/java/com/soss/system/domain/po/LocationPo.java
+19
-0
soss-system/src/main/java/com/soss/system/domain/vo/LocationVo.java
+18
-0
soss-system/src/main/java/com/soss/system/mapper/ShopMapper.java
+10
-5
soss-system/src/main/java/com/soss/system/service/impl/AppServiceImpl.java
+50
-3
soss-system/src/main/java/com/soss/system/utils/AreaUtil.java
+49
-4
soss-system/src/main/resources/mapper/system/ShopMapper.xml
+59
-22
No files found.
soss-admin/src/main/java/com/soss/web/controller/coffee/WeixinController.java
View file @
ebea8be4
...
...
@@ -9,6 +9,7 @@ import com.soss.framework.web.service.TokenService;
import
com.soss.framework.web.service.WeixinServiceImpl
;
import
com.soss.system.domain.Customer
;
import
com.soss.system.domain.Shop
;
import
com.soss.system.domain.po.LocationPo
;
import
com.soss.system.service.ICustomerService
;
import
com.soss.system.service.impl.AppServiceImpl
;
import
com.soss.system.service.impl.OrderTakingServiceImpl
;
...
...
@@ -113,12 +114,11 @@ public class WeixinController {
testFlag
=
customer
.
getTestFlag
();
}
}
Shop
shop
=
appService
.
getShop
(
loginUser
,
lng
,
lat
,
testFlag
);
return
AjaxResult
.
success
(
shop
);
return
AjaxResult
.
success
(
appService
.
getShop
(
loginUser
,
lng
,
lat
,
testFlag
));
}
@RequestMapping
(
"/v2/getLocationShops"
)
public
AjaxResult
getSameLocationShops
(
HttpServletRequest
request
,
@Request
Param
(
required
=
false
)
String
lng
,
@RequestParam
(
required
=
false
)
String
lat
)
throws
ParseException
{
public
AjaxResult
getSameLocationShops
(
HttpServletRequest
request
,
@Request
Body
LocationPo
locationPo
)
throws
ParseException
{
LoginUser
loginUser
=
tokenService
.
getLoginUser
(
request
);
boolean
testFlag
=
false
;
if
(
loginUser
!=
null
)
{
...
...
@@ -127,8 +127,7 @@ public class WeixinController {
testFlag
=
customer
.
getTestFlag
();
}
}
Shop
shop
=
appService
.
getShop
(
loginUser
,
lng
,
lat
,
testFlag
);
return
AjaxResult
.
success
(
shop
);
return
AjaxResult
.
success
(
appService
.
getSameLocationShops
(
loginUser
,
locationPo
,
testFlag
));
}
@RequestMapping
(
"/getShop"
)
...
...
@@ -145,7 +144,7 @@ public class WeixinController {
}
@RequestMapping
(
"/getArea"
)
public
AjaxResult
getArea
(
HttpServletRequest
request
,
@RequestParam
(
required
=
false
)
String
lng
,
@RequestParam
(
required
=
false
)
String
lat
)
{
public
AjaxResult
getArea
(
HttpServletRequest
request
,
@RequestParam
(
required
=
false
)
String
lng
,
@RequestParam
(
required
=
false
)
String
lat
)
throws
ParseException
{
LoginUser
loginUser
=
tokenService
.
getLoginUser
(
request
);
List
<
JSONObject
>
area
;
if
(
loginUser
==
null
||
StringUtils
.
isEmpty
(
loginUser
.
getOpenId
()))
{
...
...
@@ -157,7 +156,6 @@ public class WeixinController {
return
AjaxResult
.
success
(
area
);
}
@GetMapping
(
value
=
"/infoByShop"
)
public
AjaxResult
infoByShop
(
Long
shopId
)
{
return
AjaxResult
.
success
(
orderTakingService
.
getInfoByShop
(
shopId
));
...
...
soss-framework/src/main/java/com/soss/framework/web/service/WeixinServiceImpl.java
View file @
ebea8be4
...
...
@@ -31,6 +31,7 @@ import com.soss.system.mapper.CustomerMapper;
import
com.soss.system.mapper.OrderDetailMapper
;
import
com.soss.system.mapper.OrderRefundMapper
;
import
com.soss.system.mapper.ShopMapper
;
import
com.soss.system.service.impl.AppServiceImpl
;
import
com.soss.system.service.impl.OrderOperationLogServiceImpl
;
import
com.soss.system.service.impl.OrderServiceImpl
;
import
com.soss.system.utils.DistanceUtil
;
...
...
@@ -65,6 +66,7 @@ import java.math.BigDecimal;
import
java.net.InetAddress
;
import
java.nio.charset.StandardCharsets
;
import
java.security.spec.AlgorithmParameterSpec
;
import
java.text.ParseException
;
import
java.util.*
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.locks.ReentrantLock
;
...
...
@@ -94,6 +96,8 @@ public class WeixinServiceImpl {
private
ShopMapper
shopMapper
;
@Autowired
private
OssFileServiceImpl
ossFileService
;
@Autowired
private
AppServiceImpl
appService
;
private
final
ReentrantLock
lock
=
new
ReentrantLock
();
...
...
@@ -624,7 +628,7 @@ public class WeixinServiceImpl {
return
WxPayNotifyResponse
.
fail
(
"回调有误!"
);
}
public
List
<
JSONObject
>
getArea
(
String
lng
,
String
lat
,
Boolean
testFlag
)
{
public
List
<
JSONObject
>
getArea
(
String
lng
,
String
lat
,
Boolean
testFlag
)
throws
ParseException
{
String
provinceString
=
"[value ='%s'][0].label"
;
String
cityString
=
"[value='%s'][0].children[value='%s'][0].label"
;
String
zoneString
=
"[value='%s'][0].children[value='%s'][0].children[value='%s'][0].label"
;
...
...
@@ -642,8 +646,10 @@ public class WeixinServiceImpl {
double
realDistance
=
DistanceUtil
.
getRealDistance
(
Double
.
parseDouble
(
lng
),
Double
.
parseDouble
(
lat
),
Double
.
parseDouble
(
shop1
.
getLng
()),
Double
.
parseDouble
(
shop1
.
getLat
()));
shop1
.
setRealDistance
(
realDistance
);
shop1
.
setDistance
(
DistanceUtil
.
getDistanceDesc
(
realDistance
));
appService
.
perfectOrderState
(
shop1
,
lng
,
lat
);
}
else
{
shop1
.
setDistance
(
"-1"
);
shop1
.
setOrderState
(
1
);
}
String
province
=
shop1
.
getProvince
();
if
(
proString
.
contains
(
province
)){
...
...
soss-system/src/main/java/com/soss/system/domain/po/LocationPo.java
0 → 100644
View file @
ebea8be4
package
com
.
soss
.
system
.
domain
.
po
;
import
com.soss.common.utils.StringUtils
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
@Data
@ApiModel
(
"优惠券请求类"
)
public
class
LocationPo
{
private
String
lng
;
private
String
lat
;
private
String
province
;
private
String
city
;
private
String
area
;
public
boolean
isEmpty
()
{
return
StringUtils
.
isEmpty
(
lng
)
||
StringUtils
.
isEmpty
(
lat
)
||
StringUtils
.
isEmpty
(
province
)
||
StringUtils
.
isEmpty
(
city
)
||
StringUtils
.
isEmpty
(
area
);
}
}
soss-system/src/main/java/com/soss/system/domain/vo/LocationVo.java
0 → 100644
View file @
ebea8be4
package
com
.
soss
.
system
.
domain
.
vo
;
import
com.soss.common.utils.StringUtils
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
@Data
@ApiModel
(
"优惠券请求类"
)
public
class
LocationVo
{
private
String
lng
;
private
String
lat
;
private
String
province
;
private
String
city
;
private
String
area
;
private
String
provinceCode
;
private
String
cityCode
;
private
String
areaCode
;
}
soss-system/src/main/java/com/soss/system/mapper/ShopMapper.java
View file @
ebea8be4
package
com
.
soss
.
system
.
mapper
;
import
com.soss.system.domain.Shop
;
import
com.soss.system.domain.vo.LocationVo
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* 店铺Mapper接口
*
*
* @author zxq
* @date 2022-04-28
*/
...
...
@@ -53,7 +54,7 @@ public interface ShopMapper {
/**
* 修改店铺
*
*
* @param shop 店铺
* @return 结果
*/
...
...
@@ -61,7 +62,7 @@ public interface ShopMapper {
/**
* 删除店铺
*
*
* @param id 店铺主键
* @return 结果
*/
...
...
@@ -69,7 +70,7 @@ public interface ShopMapper {
/**
* 批量删除店铺
*
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
...
...
@@ -77,5 +78,9 @@ public interface ShopMapper {
void
updateNoDefault
();
List
<
Shop
>
selectEnableShops
();
List
<
Shop
>
selectEnableShops
(
List
<
Integer
>
states
);
List
<
Shop
>
selectDefaultSameLocationShops
(
@Param
(
"states"
)
List
<
Integer
>
states
);
List
<
Shop
>
selectSameLocationShops
(
@Param
(
"states"
)
List
<
Integer
>
states
,
@Param
(
"location"
)
LocationVo
locationVo
);
}
soss-system/src/main/java/com/soss/system/service/impl/AppServiceImpl.java
View file @
ebea8be4
...
...
@@ -6,7 +6,10 @@ import com.soss.common.utils.DateUtils;
import
com.soss.common.utils.StringUtils
;
import
com.soss.system.domain.Order
;
import
com.soss.system.domain.Shop
;
import
com.soss.system.domain.po.LocationPo
;
import
com.soss.system.domain.vo.LocationVo
;
import
com.soss.system.mapper.ShopMapper
;
import
com.soss.system.utils.AreaUtil
;
import
com.soss.system.utils.DistanceUtil
;
import
org.apache.commons.lang3.BooleanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -26,12 +29,13 @@ public class AppServiceImpl {
private
ShopServiceImpl
shopService
;
@Autowired
private
OrderServiceImpl
orderService
;
@Autowired
private
AreaUtil
areaUtil
;
public
Shop
getShop
(
LoginUser
loginUser
,
String
lng
,
String
lat
,
Boolean
testFlag
)
throws
ParseException
{
Shop
shop
=
null
;
if
(
StringUtils
.
isEmpty
(
lng
)
||
StringUtils
.
isEmpty
(
lat
))
{
// 未授权位置
if
(
loginUser
==
null
)
{
// 未登录,返回默认店铺
shop
=
getDefaultShop
();
...
...
@@ -49,7 +53,14 @@ public class AppServiceImpl {
}
}
else
{
// 授权了位置
List
<
Shop
>
shops
=
shopMapper
.
selectEnableShops
();
// 获取所有非关闭的店铺
List
<
Integer
>
states
=
null
;
if
(
BooleanUtils
.
isTrue
(
testFlag
))
{
states
=
Arrays
.
asList
(
ShopState
.
TESTING
.
getState
(),
ShopState
.
OPEN
.
getState
());
}
else
{
states
=
Arrays
.
asList
(
ShopState
.
OPEN
.
getState
(),
ShopState
.
CLOSE
.
getState
());
}
List
<
Shop
>
shops
=
shopMapper
.
selectEnableShops
(
states
);
// 获取所有非关闭的店铺
if
(
CollectionUtils
.
isEmpty
(
shops
))
{
return
null
;
}
...
...
@@ -75,7 +86,7 @@ public class AppServiceImpl {
return
shop
;
}
p
rivate
boolean
perfectOrderState
(
Shop
shop
,
String
lng
,
String
lat
)
throws
ParseException
{
p
ublic
boolean
perfectOrderState
(
Shop
shop
,
String
lng
,
String
lat
)
throws
ParseException
{
if
(
shop
==
null
)
{
return
false
;
}
...
...
@@ -110,6 +121,42 @@ public class AppServiceImpl {
return
true
;
}
public
List
<
Shop
>
getSameLocationShops
(
LoginUser
loginUser
,
LocationPo
locationPo
,
Boolean
testFlag
)
throws
ParseException
{
List
<
Integer
>
states
=
null
;
if
(
BooleanUtils
.
isTrue
(
testFlag
))
{
states
=
Arrays
.
asList
(
ShopState
.
TESTING
.
getState
(),
ShopState
.
OPEN
.
getState
());
}
else
{
states
=
Arrays
.
asList
(
ShopState
.
OPEN
.
getState
(),
ShopState
.
CLOSE
.
getState
());
}
List
<
Shop
>
shops
=
null
;
if
(
locationPo
==
null
||
locationPo
.
isEmpty
())
{
// 未授权位置,返回默认店铺相同区域的所有店铺
shops
=
shopMapper
.
selectDefaultSameLocationShops
(
states
);
}
else
{
// 授权了位置
LocationVo
locationVo
=
areaUtil
.
translateLocation
(
locationPo
);
if
(
locationVo
==
null
)
{
shops
=
shopMapper
.
selectDefaultSameLocationShops
(
states
);
}
else
{
shops
=
shopMapper
.
selectSameLocationShops
(
states
,
locationVo
);
}
}
if
(
CollectionUtils
.
isEmpty
(
shops
))
{
return
null
;
}
for
(
Shop
s
:
shops
)
{
// 获取所有店铺距离
double
realDistance
=
DistanceUtil
.
getRealDistance
(
Double
.
parseDouble
(
locationPo
.
getLng
()),
Double
.
parseDouble
(
locationPo
.
getLat
()),
Double
.
parseDouble
(
s
.
getLng
()),
Double
.
parseDouble
(
s
.
getLat
()));
s
.
setRealDistance
(
realDistance
);
perfectOrderState
(
s
,
locationPo
.
getLng
(),
locationPo
.
getLat
());
}
shops
.
sort
(
Comparator
.
comparing
(
Shop:
:
getRealDistance
));
// 按距离排序
return
shops
;
}
public
Shop
getShop
(
LoginUser
loginUser
)
{
if
(
loginUser
==
null
)
{
// 未登录,返回默认店铺
...
...
soss-system/src/main/java/com/soss/system/utils/AreaUtil.java
View file @
ebea8be4
...
...
@@ -2,6 +2,8 @@ package com.soss.system.utils;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.soss.system.domain.po.LocationPo
;
import
com.soss.system.domain.vo.LocationVo
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.core.io.ClassPathResource
;
import
org.springframework.stereotype.Component
;
...
...
@@ -20,6 +22,7 @@ public class AreaUtil {
// private Map<String, Area> areaMap;
private
Map
<
String
,
String
>
provNameMap
=
new
HashMap
<>();
private
Map
<
String
,
String
>
areaOrCityFullNameMap
=
new
HashMap
<>();
private
static
JSONArray
DATA
;
@PostConstruct
public
void
init
()
{
...
...
@@ -27,15 +30,17 @@ public class AreaUtil {
ClassPathResource
resource
=
new
ClassPathResource
(
"province.json"
);
byte
[]
bdata
=
FileCopyUtils
.
copyToByteArray
(
resource
.
getInputStream
());
String
data
=
new
String
(
bdata
,
StandardCharsets
.
UTF_8
);
JSONArray
areaArray
=
JSONArray
.
parseArray
(
data
);
if
(
DATA
==
null
)
{
DATA
=
JSONArray
.
parseArray
(
data
);
}
// areaMap = buildAreaTree(areaArray);
deepAreaTree
(
areaArray
,
""
);
deepAreaTree
(
DATA
,
""
,
0
);
}
catch
(
IOException
e
)
{
log
.
error
(
"解析区域文件出错"
,
e
);
}
}
private
void
deepAreaTree
(
JSONArray
areaArray
,
String
parentName
)
{
private
void
deepAreaTree
(
JSONArray
areaArray
,
String
parentName
,
Integer
deep
)
{
if
(
CollectionUtils
.
isEmpty
(
areaArray
))
{
return
;
}
...
...
@@ -50,7 +55,7 @@ public class AreaUtil {
areaOrCityFullNameMap
.
put
(
code
,
curLabel
);
}
JSONArray
children
=
area
.
getJSONArray
(
"children"
);
deepAreaTree
(
children
,
curLabel
);
deepAreaTree
(
children
,
curLabel
,
deep
+
1
);
}
}
...
...
@@ -62,6 +67,46 @@ public class AreaUtil {
return
areaOrCityFullNameMap
.
get
(
code
);
}
public
LocationVo
translateLocation
(
LocationPo
locationPo
)
{
if
(
locationPo
==
null
||
locationPo
.
isEmpty
())
{
return
null
;
}
for
(
int
i
=
0
;
i
<
DATA
.
size
();
i
++)
{
JSONObject
provinceObj
=
DATA
.
getJSONObject
(
i
);
String
provinceName
=
provinceObj
.
getString
(
"label"
);
String
provinceCode
=
provinceObj
.
getString
(
"value"
);
if
(!
provinceName
.
equals
(
locationPo
.
getProvince
()))
{
continue
;
}
JSONArray
cityArray
=
provinceObj
.
getJSONArray
(
"children"
);
for
(
int
j
=
0
;
j
<
cityArray
.
size
();
j
++)
{
JSONObject
cityObj
=
cityArray
.
getJSONObject
(
j
);
String
cityName
=
cityObj
.
getString
(
"label"
);
String
cityCode
=
cityObj
.
getString
(
"value"
);
if
(!
cityName
.
equals
(
locationPo
.
getCity
()))
{
continue
;
}
JSONArray
areaArray
=
cityObj
.
getJSONArray
(
"children"
);
for
(
int
k
=
0
;
k
<
areaArray
.
size
();
k
++)
{
JSONObject
areaObj
=
areaArray
.
getJSONObject
(
k
);
String
areaName
=
areaObj
.
getString
(
"label"
);
String
areaCode
=
areaObj
.
getString
(
"value"
);
if
(!
areaName
.
equals
(
locationPo
.
getArea
()))
{
continue
;
}
LocationVo
locationVo
=
new
LocationVo
();
locationVo
.
setProvinceCode
(
provinceCode
);
locationVo
.
setCityCode
(
cityCode
);
locationVo
.
setAreaCode
(
areaCode
);
return
locationVo
;
}
}
}
return
null
;
}
/*private Map<String, Area> buildAreaTree(JSONArray areaArray) {
if (CollectionUtils.isEmpty(areaArray)) {
return null;
...
...
soss-system/src/main/resources/mapper/system/ShopMapper.xml
View file @
ebea8be4
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.soss.system.mapper.ShopMapper"
>
<resultMap
type=
"Shop"
id=
"ShopResult"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"code"
column=
"code"
/>
<result
property=
"lng"
column=
"lng"
/>
<result
property=
"lat"
column=
"lat"
/>
<result
property=
"remarks"
column=
"remarks"
/>
<result
property=
"startTime"
column=
"start_time"
/>
<result
property=
"endTime"
column=
"end_time"
/>
<result
property=
"address"
column=
"address"
/>
<result
property=
"province"
column=
"province"
/>
<result
property=
"city"
column=
"city"
/>
<result
property=
"id"
column=
"id"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"code"
column=
"code"
/>
<result
property=
"lng"
column=
"lng"
/>
<result
property=
"lat"
column=
"lat"
/>
<result
property=
"remarks"
column=
"remarks"
/>
<result
property=
"startTime"
column=
"start_time"
/>
<result
property=
"endTime"
column=
"end_time"
/>
<result
property=
"address"
column=
"address"
/>
<result
property=
"province"
column=
"province"
/>
<result
property=
"city"
column=
"city"
/>
<result
property=
"zone"
column=
"zone"
/>
<result
property=
"distanceLimit"
column=
"distance_limit"
/>
<result
property=
"state"
column=
"state"
/>
...
...
@@ -25,15 +25,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql
id=
"selectShopVo"
>
select * from shop
select *
from shop
</sql>
<select
id=
"selectAllShop"
resultMap=
"ShopResult"
>
select id, name, code, province, city, zone from shop
select id, name, code, province, city, zone
from shop
</select>
<select
id=
"selectEnableShops"
resultMap=
"ShopResult"
>
select * from shop where `state` != 2
select * from shop s where `state`
<where>
<if
test=
"states != null and states.size() > 0"
>
and s.state in
<foreach
collection=
"states"
item=
"state"
separator=
","
open=
"("
close=
")"
>
#{state}
</foreach>
</if>
</where>
</select>
<select
id=
"selectDefaultSameLocationShops"
resultMap=
"ShopResult"
>
select s1.* from shop s1 left join shop s2
on s1.province = s2.province and s1.city = s2.city and s1.`zone` = s2.`zone`
<where>
<if
test=
"states != null and states.size() > 0"
>
and s1.state in
<foreach
collection=
"states"
item=
"state"
separator=
","
open=
"("
close=
")"
>
#{state}
</foreach>
</if>
and s2.is_default = 1
</where>
</select>
<select
id=
"selectSameLocationShops"
resultMap=
"ShopResult"
>
select s1.* from shop s1
<where>
<if
test=
"states != null and states.size() > 0"
>
and s1.state in
<foreach
collection=
"states"
item=
"state"
separator=
","
open=
"("
close=
")"
>
#{state}
</foreach>
</if>
and s1.province = #{location.provinceCode}
and s1.city = #{location.cityCode}
and s1.`zone` = #{location.areaCode}
</where>
</select>
<select
id=
"selectShopList"
parameterType=
"Shop"
resultMap=
"ShopResult"
>
...
...
@@ -91,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if
test=
"createdAt != null"
>
created_at,
</if>
<if
test=
"updatedAt != null"
>
updated_at,
</if>
<if
test=
"isDefault != null"
>
is_default,
</if>
</trim>
</trim>
<trim
prefix=
"values ("
suffix=
")"
suffixOverrides=
","
>
<if
test=
"name != null and name != ''"
>
#{name},
</if>
<if
test=
"code != null and code != ''"
>
#{code},
</if>
...
...
@@ -109,7 +142,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if
test=
"createdAt != null"
>
#{createdAt},
</if>
<if
test=
"updatedAt != null"
>
#{updatedAt},
</if>
<if
test=
"isDefault != null"
>
#{isDefault},
</if>
</trim>
</trim>
</insert>
<update
id=
"updateShop"
parameterType=
"Shop"
>
...
...
@@ -135,16 +168,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update>
<delete
id=
"deleteShopById"
parameterType=
"String"
>
delete from shop where id = #{id}
delete
from shop
where id = #{id}
</delete>
<delete
id=
"deleteShopByIds"
parameterType=
"String"
>
delete from shop where id in
delete from shop where id in
<foreach
item=
"id"
collection=
"array"
open=
"("
separator=
","
close=
")"
>
#{id}
</foreach>
</delete>
<update
id=
"updateNoDefault"
>
update shop set is_default = 0
update shop
set is_default = 0
</update>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment