bin/clean.bat
New file @@ -0,0 +1,12 @@ @echo off echo. echo [ÐÅÏ¢] ÇåÀí¹¤³ÌtargetÉú³É·¾¶¡£ echo. %~d0 cd %~dp0 cd .. call mvn clean pause bin/package.bat
New file @@ -0,0 +1,12 @@ @echo off echo. echo [ÐÅÏ¢] ´ò°üWeb¹¤³Ì£¬Éú³Éwar/jar°üÎļþ¡£ echo. %~d0 cd %~dp0 cd .. call mvn clean package -Dmaven.test.skip=true pause bin/run-auth.bat
New file @@ -0,0 +1,14 @@ @echo off echo. echo [ÐÅÏ¢] ʹÓÃJarÃüÁîÔËÐÐAuth¹¤³Ì¡£ echo. cd %~dp0 cd ../ruoyi-auth/target set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-auth.jar cd bin pause bin/run-gateway.bat
New file @@ -0,0 +1,14 @@ @echo off echo. echo [ÐÅÏ¢] ʹÓÃJarÃüÁîÔËÐÐGateway¹¤³Ì¡£ echo. cd %~dp0 cd /home/hongruitang/gateway set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-gateway.jar cd bin pause bin/run-modules-file.bat
New file @@ -0,0 +1,14 @@ @echo off echo. echo [ÐÅÏ¢] ʹÓÃJarÃüÁîÔËÐÐModules-File¹¤³Ì¡£ echo. cd %~dp0 cd ../ruoyi-modules/ruoyi-file/target set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-file.jar cd bin pause bin/run-modules-gen.bat
New file @@ -0,0 +1,14 @@ @echo off echo. echo [ÐÅÏ¢] ʹÓÃJarÃüÁîÔËÐÐModules-Gen¹¤³Ì¡£ echo. cd %~dp0 cd ../ruoyi-modules/ruoyi-gen/target set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-gen.jar cd bin pause bin/run-modules-job.bat
New file @@ -0,0 +1,14 @@ @echo off echo. echo [ÐÅÏ¢] ʹÓÃJarÃüÁîÔËÐÐModules-Job¹¤³Ì¡£ echo. cd %~dp0 cd ../ruoyi-modules/ruoyi-job/target set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-job.jar cd bin pause bin/run-modules-system.bat
New file @@ -0,0 +1,14 @@ @echo off echo. echo [ÐÅÏ¢] ʹÓÃJarÃüÁîÔËÐÐModules-System¹¤³Ì¡£ echo. cd %~dp0 cd ../ruoyi-modules/ruoyi-system/target set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-modules-system.jar cd bin pause bin/run-monitor.bat
New file @@ -0,0 +1,14 @@ @echo off echo. echo [ÐÅÏ¢] ʹÓÃJarÃüÁîÔËÐÐMonitor¹¤³Ì¡£ echo. cd %~dp0 cd ../ruoyi-visual/ruoyi-monitor/target set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m java -Dfile.encoding=utf-8 %JAVA_OPTS% -jar ruoyi-visual-monitor.jar cd bin pause ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MerEditUserDto.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.system.api.domain.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author jqs34 * @ClassName AppEditUserDto * @description: TODO * @date 2023年05月03日 * @version: 1.0 */ @Data public class MerEditUserDto extends MerBaseDto{ @ApiModelProperty(value = "修改类型1.昵称2.头像3.性别4.生日") private Integer editType; @ApiModelProperty(value = "修改值 性别0=男,1=女,2=未知 生日YYYY-MM-DD ") private String editValue; } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MerStaffInfoVo.java
New file @@ -0,0 +1,47 @@ package com.ruoyi.system.api.domain.vo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author jqs34 * @ClassName MerStaffInfoVo * @description: TODO * @date 2023年05月09日 * @version: 1.0 */ @Data public class MerStaffInfoVo { /** * 用户id */ @ApiModelProperty(value = "用户id") private Long userId; /** * 员工姓名 */ @ApiModelProperty(value = "员工姓名") private String staffName; /** * 员工电话 */ @ApiModelProperty(value = "员工电话") private String staffMobile; /** * 员工性别 */ @ApiModelProperty(value = "员工性别") private Integer staffGender; /** * 员工生日 */ @ApiModelProperty(value = "员工生日") private String staffBirthday; } ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java
@@ -13,6 +13,7 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -38,6 +39,9 @@ @Autowired private TokenService tokenService; @Value("${h5.redirectUriBase}") private String redirectUriBase; /** * 构造网页授权链接 @@ -49,6 +53,7 @@ @ApiOperation("构造网页授权链接") public R<OauthUrlVo> oauthUrl(@ApiParam(value = "授权重定向地址", required = true) @RequestParam("redirectUri") String redirectUri) throws UnsupportedEncodingException { // 普通应用 redirectUri = redirectUriBase + redirectUri; String oauthRedirectUrl = URLEncoder.encode(redirectUri,"utf-8"); String oauthUrl = qywxInnerService.getOauthUrl(oauthRedirectUrl); return R.ok(new OauthUrlVo(oauthUrl)); ruoyi-common/ruoyi-common-datasource/pom.xml
@@ -8,6 +8,7 @@ <version>3.6.2</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>ruoyi-common-datasource</artifactId> ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/business/MerShopController.java
@@ -13,9 +13,13 @@ import com.ruoyi.shop.domain.vo.MgtShopInfoVo; import com.ruoyi.shop.service.shop.ShopCertificateService; import com.ruoyi.shop.service.shop.ShopService; import com.ruoyi.shop.service.shop.ShopStaffService; import com.ruoyi.system.api.domain.dto.MerBaseDto; import com.ruoyi.system.api.domain.dto.MerBaseGetDto; import com.ruoyi.system.api.domain.dto.MerEditUserDto; import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; import com.ruoyi.system.api.domain.vo.MerHomeShopTotalVo; import com.ruoyi.system.api.domain.vo.MerStaffInfoVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -44,6 +48,9 @@ @Autowired private ShopCertificateService shopCertificateService; @Autowired private ShopStaffService shopStaffService; /** * 未完成实际统计 @@ -85,4 +92,28 @@ shopCertificateService.editShopCertificate(merShopCertificateEditDto); return R.ok(); } @RequestMapping(value = "/deleteShopCertificate", method = RequestMethod.POST) @ApiOperation(value = "删除商户证书") public R deleteShopCertificate(@RequestBody MerBaseGetDto merBaseGetDto) { Long userId = SecurityUtils.getUserId(); shopCertificateService.deleteShopCertificate(Long.valueOf(merBaseGetDto.getId())); return R.ok(); } @RequestMapping(value = "/getShopStaffInfo", method = RequestMethod.POST) @ApiOperation(value = "获取员工信息") public R<MerStaffInfoVo> getShopStaffInfo() { Long userId = SecurityUtils.getUserId(); MerStaffInfoVo merStaffInfoVo = shopStaffService.getShopStaffInfo(userId); return R.ok(merStaffInfoVo); } @RequestMapping(value = "/editShopStaffInfo", method = RequestMethod.POST) @ApiOperation(value = "获取员工信息") public R editShopStaffInfo(@RequestBody MerEditUserDto merEditUserDto) { Long userId = SecurityUtils.getUserId(); shopStaffService.editShopStaffInfo(merEditUserDto); return R.ok(); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/RecommandCooperation.java
New file @@ -0,0 +1,79 @@ package com.ruoyi.shop.domain.pojo.shop; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import com.baomidou.mybatisplus.annotations.Version; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * * </p> * * @author jqs * @since 2023-05-09 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_recommand_cooperation") public class RecommandCooperation extends Model<RecommandCooperation> { private static final long serialVersionUID = 1L; /** * id */ @TableId(value = "id", type = IdType.AUTO) private Long id; /** * 删除标记 */ @TableField("del_flag") private Integer delFlag; /** * 签约状态 */ @TableField("corp_status") private Integer corpStatus; /** * 推荐人id */ @TableField("recommand_user_id") private Long recommandUserId; /** * 被推荐人 */ @TableField("recommended_name") private String recommendedName; /** * 被推荐人电话 */ @TableField("recommended_phone") private String recommendedPhone; /** * 备注 */ private String remark; /** * 创建时间 */ @TableField("create_time") private Date createTime; @Override protected Serializable pkVal() { return this.id; } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopStaff.java
New file @@ -0,0 +1,77 @@ package com.ruoyi.shop.domain.pojo.shop; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import com.baomidou.mybatisplus.annotations.Version; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * * </p> * * @author jqs * @since 2023-05-09 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_shop_staff") public class ShopStaff extends Model<ShopStaff> { private static final long serialVersionUID = 1L; /** * 员工id */ @TableId(value = "staff_id", type = IdType.AUTO) private Long staffId; /** * 删除标记 */ @TableField("del_flag") private Integer delFlag; /** * 用户id */ @TableField("user_id") private Long userId; /** * 员工姓名 */ @TableField("staff_name") private String staffName; /** * 员工电话 */ @TableField("staff_mobile") private String staffMobile; /** * 员工性别 */ @TableField("staff_gender") private Integer staffGender; /** * 员工生日 */ @TableField("staff_birthday") private String staffBirthday; @TableField("staff_avatar") private String staffAvatar; @Override protected Serializable pkVal() { return this.staffId; } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/pojo/shop/ShopSuggest.java
New file @@ -0,0 +1,80 @@ package com.ruoyi.shop.domain.pojo.shop; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import com.baomidou.mybatisplus.annotations.Version; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; /** * <p> * * </p> * * @author jqs * @since 2023-05-09 */ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @TableName("t_shop_suggest") public class ShopSuggest extends Model<ShopSuggest> { private static final long serialVersionUID = 1L; /** * 建议id */ @TableId(value = "suggest_id", type = IdType.AUTO) private Long suggestId; /** * 删除标记 */ @TableField("del_flag") private Integer delFlag; /** * 建议内容 */ @TableField("suggest_content") private String suggestContent; /** * 创建时间 */ @TableField("create_time") private Date createTime; /** * 创建人id */ @TableField("create_user_id") private Long createUserId; /** * 回复内容 */ @TableField("replay_content") private String replayContent; /** * 回复用户id */ @TableField("replay_user_id") private Long replayUserId; /** * 回复时间 */ @TableField("replay_time") private Date replayTime; @Override protected Serializable pkVal() { return this.suggestId; } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/RecommandCooperationMapper.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.shop.mapper.shop; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.shop.domain.pojo.shop.RecommandCooperation; /** * <p> * Mapper 接口 * </p> * * @author jqs * @since 2023-05-09 */ public interface RecommandCooperationMapper extends BaseMapper<RecommandCooperation> { } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopStaffMapper.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.shop.mapper.shop; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.shop.domain.pojo.shop.ShopStaff; /** * <p> * Mapper 接口 * </p> * * @author jqs * @since 2023-05-09 */ public interface ShopStaffMapper extends BaseMapper<ShopStaff> { } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopSuggestMapper.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.shop.mapper.shop; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.shop.domain.pojo.shop.ShopSuggest; /** * <p> * Mapper 接口 * </p> * * @author jqs * @since 2023-05-09 */ public interface ShopSuggestMapper extends BaseMapper<ShopSuggest> { } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/RecommandCooperationServiceImpl.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.shop.service.impl.shop; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.shop.domain.pojo.shop.RecommandCooperation; import com.ruoyi.shop.mapper.shop.RecommandCooperationMapper; import com.ruoyi.shop.service.shop.RecommandCooperationService; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author jqs * @since 2023-05-09 */ @Service public class RecommandCooperationServiceImpl extends ServiceImpl<RecommandCooperationMapper, RecommandCooperation> implements RecommandCooperationService { } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopCertificateServiceImpl.java
@@ -67,4 +67,16 @@ shopCertificate.setDelFlag(0); this.saveOrUpdate(shopCertificate); } /** * * @param certId */ @Override public void deleteShopCertificate(Long certId){ ShopCertificate shopCertificate = this.getById(certId); shopCertificate.setDelFlag(1); shopCertificate.setCerStatus(-1); this.saveOrUpdate(shopCertificate); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopStaffServiceImpl.java
New file @@ -0,0 +1,77 @@ package com.ruoyi.shop.service.impl.shop; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.shop.domain.pojo.shop.ShopRelTag; import com.ruoyi.shop.domain.pojo.shop.ShopStaff; import com.ruoyi.shop.mapper.shop.ShopStaffMapper; import com.ruoyi.shop.service.shop.ShopStaffService; import com.ruoyi.system.api.domain.dto.MerEditUserDto; import com.ruoyi.system.api.domain.vo.MerStaffInfoVo; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author jqs * @since 2023-05-09 */ @Service public class ShopStaffServiceImpl extends ServiceImpl<ShopStaffMapper, ShopStaff> implements ShopStaffService { /** * * @param userId * @return */ @Override public ShopStaff getByUserId(Long userId){ LambdaQueryWrapper<ShopStaff> queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(ShopStaff::getDelFlag, 0).eq(ShopStaff::getUserId, userId); return this.getOne(queryWrapper,false); } /** * 获取商户员工信息 * @param userId * @return */ @Override public MerStaffInfoVo getShopStaffInfo(Long userId){ MerStaffInfoVo merStaffInfoVo = new MerStaffInfoVo(); ShopStaff shopStaff = this.getByUserId(userId); BeanUtils.copyProperties(shopStaff,merStaffInfoVo); return merStaffInfoVo; } /** * * @param merEditUserDto */ @Override public void editShopStaffInfo(MerEditUserDto merEditUserDto){ ShopStaff shopStaff = this.getByUserId(merEditUserDto.getUserId()); Integer editType = merEditUserDto.getEditType(); switch (editType){ case 1: shopStaff.setStaffName(merEditUserDto.getEditValue()); break; case 2: shopStaff.setStaffAvatar(merEditUserDto.getEditValue()); break; case 3: shopStaff.setStaffGender(Integer.valueOf(merEditUserDto.getEditValue())); break; case 4: shopStaff.setStaffBirthday(merEditUserDto.getEditValue()); break; } this.saveOrUpdate(shopStaff); } } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopSuggestServiceImpl.java
New file @@ -0,0 +1,21 @@ package com.ruoyi.shop.service.impl.shop; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.shop.domain.pojo.shop.ShopSuggest; import com.ruoyi.shop.mapper.shop.ShopSuggestMapper; import com.ruoyi.shop.service.shop.ShopSuggestService; import org.springframework.stereotype.Service; /** * <p> * 服务实现类 * </p> * * @author jqs * @since 2023-05-09 */ @Service public class ShopSuggestServiceImpl extends ServiceImpl<ShopSuggestMapper, ShopSuggest> implements ShopSuggestService { } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/RecommandCooperationService.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.shop.service.shop; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.pojo.shop.RecommandCooperation; /** * <p> * 服务类 * </p> * * @author jqs * @since 2023-05-09 */ public interface RecommandCooperationService extends IService<RecommandCooperation> { } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopCertificateService.java
@@ -36,4 +36,10 @@ * @param merShopCertificateEditDto */ void editShopCertificate(MerShopCertificateEditDto merShopCertificateEditDto); /** * * @param certId */ void deleteShopCertificate(Long certId); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopStaffService.java
New file @@ -0,0 +1,37 @@ package com.ruoyi.shop.service.shop; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.pojo.shop.ShopStaff; import com.ruoyi.system.api.domain.dto.MerEditUserDto; import com.ruoyi.system.api.domain.vo.MerStaffInfoVo; /** * <p> * 服务类 * </p> * * @author jqs * @since 2023-05-09 */ public interface ShopStaffService extends IService<ShopStaff> { /** * * @param userId * @return */ ShopStaff getByUserId(Long userId); /** * 获取商户员工信息 * @param userId * @return */ MerStaffInfoVo getShopStaffInfo(Long userId); /** * * @param merEditUserDto */ void editShopStaffInfo(MerEditUserDto merEditUserDto); } ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopSuggestService.java
New file @@ -0,0 +1,16 @@ package com.ruoyi.shop.service.shop; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.shop.domain.pojo.shop.ShopSuggest; /** * <p> * 服务类 * </p> * * @author jqs * @since 2023-05-09 */ public interface ShopSuggestService extends IService<ShopSuggest> { } ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/RecommandCooperationMapper.xml
New file @@ -0,0 +1,7 @@ <?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"> <mapper namespace="com.ruoyi.shop.mapper.shop.RecommandCooperationMapper"> </mapper> ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopStaffMapper.xml
New file @@ -0,0 +1,6 @@ <?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"> <mapper namespace="com.ruoyi.shop.mapper.shop.ShopStaffMapper"> </mapper> ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopSuggestMapper.xml
New file @@ -0,0 +1,7 @@ <?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"> <mapper namespace="com.ruoyi.shop.mapper.shop.ShopSuggestMapper"> </mapper>