From 7551b11b28ed83debbb732e62062fa0b88fee07b Mon Sep 17 00:00:00 2001 From: yinliujing Date: Fri, 10 Apr 2020 16:48:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A8=E5=B9=BF=E4=BA=BA?= =?UTF-8?q?=E5=91=98=E4=BF=AE=E6=94=B9=E6=8E=A8=E5=B9=BF=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/OpCustomerEnterpriseWechat.java | 2 +- .../ic/employee/service/QrCodeService.java | 2 +- .../controller/StoreStaffController.java | 72 +++++++ .../kiisoo/ic/store/entity/PoiStoreStaff.java | 8 + .../ic/store/entity/PoiStoreStaffVO.java | 114 +++++++++++ .../store/mapper/PoiStoreStaffDOMapper.java | 5 + .../store/service/PoiStoreStaffService.java | 177 ++++++++++++++++++ .../ic/system/bean/PrivilageUserBean.java | 93 +++++++++ .../kiisoo/ic/system/enums/AccountEnum.java | 3 +- .../system/mapper/PrivilageUserDOMapper.java | 2 + .../system/service/PrivilageUserService.java | 8 + .../impl/PrivilageUserServiceImpl.java | 14 ++ .../ic/wx/service/WxResponseService.java | 13 +- .../mapper/PrivilageUserDOMapper.xml | 15 ++ .../PrivilageUserShopRelationDOMapper.xml | 9 +- 15 files changed, 524 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/kiisoo/ic/store/controller/StoreStaffController.java create mode 100644 src/main/java/com/kiisoo/ic/store/entity/PoiStoreStaffVO.java create mode 100644 src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java create mode 100644 src/main/java/com/kiisoo/ic/system/bean/PrivilageUserBean.java create mode 100644 src/main/resources/mapper/PrivilageUserDOMapper.xml diff --git a/src/main/java/com/kiisoo/ic/customer/entity/OpCustomerEnterpriseWechat.java b/src/main/java/com/kiisoo/ic/customer/entity/OpCustomerEnterpriseWechat.java index db47728..afc1cf4 100644 --- a/src/main/java/com/kiisoo/ic/customer/entity/OpCustomerEnterpriseWechat.java +++ b/src/main/java/com/kiisoo/ic/customer/entity/OpCustomerEnterpriseWechat.java @@ -38,7 +38,7 @@ public class OpCustomerEnterpriseWechat { * 外部联系人的userid */ @JSONField(name = "external_userid") - private Long externalUserid; + private String externalUserid; /** * 该成员添加此外部联系人的时间 diff --git a/src/main/java/com/kiisoo/ic/employee/service/QrCodeService.java b/src/main/java/com/kiisoo/ic/employee/service/QrCodeService.java index af292e1..8eb25d1 100644 --- a/src/main/java/com/kiisoo/ic/employee/service/QrCodeService.java +++ b/src/main/java/com/kiisoo/ic/employee/service/QrCodeService.java @@ -39,7 +39,7 @@ public class QrCodeService { //获取配置实体 QrCodeVO qrCodeVO = getContactWay(token, configId); //添加店铺人员 - saveStoreStaff( parseStoreStaff(qrCodeDO,qrCodeVO)); + //saveStoreStaff( parseStoreStaff(qrCodeDO,qrCodeVO)); return qrCodeVO; } diff --git a/src/main/java/com/kiisoo/ic/store/controller/StoreStaffController.java b/src/main/java/com/kiisoo/ic/store/controller/StoreStaffController.java new file mode 100644 index 0000000..e660266 --- /dev/null +++ b/src/main/java/com/kiisoo/ic/store/controller/StoreStaffController.java @@ -0,0 +1,72 @@ +package com.kiisoo.ic.store.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.kiisoo.ic.common.BaseController; +import com.kiisoo.ic.employee.entity.EmployeeDO; +import com.kiisoo.ic.employee.entity.PrivilageCpUserDO; +import com.kiisoo.ic.employee.service.EmployeeService; +import com.kiisoo.ic.store.entity.PoiStoreStaff; +import com.kiisoo.ic.store.entity.PoiStoreStaffVO; +import com.kiisoo.ic.store.service.PoiStoreStaffService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * @Description: 门店人员信息 + * @Auther: yinliujiang + * @Date: 2020/4/9 + * @Version: v1 + */ +@Controller +@RequestMapping("/store/staff") +@Slf4j +public class StoreStaffController extends BaseController { + + @Autowired + private PoiStoreStaffService poiStoreStaffService; + + + /** + * 查询店铺人员列表 + * + * @param + * @return + * @throws + */ + @RequestMapping(value = "/list", method = RequestMethod.GET) + @ResponseBody + public Map staffList(int pageNum, int pageSize, long userId, Long shopId, Long regionId) { + try { + IPage storeStaffIs = poiStoreStaffService.getStaffByUserAndDate( pageNum, pageSize, userId, shopId, regionId); + return data(storeStaffIs); + } catch (Exception e) { + log.error("获取店铺人员", e); + return fail(); + } + } + + /** + * 查询店铺人员列表 + * + * @param + * @return + * @throws + */ + @RequestMapping(value = "/add", method = RequestMethod.GET) + @ResponseBody + public Map addStaff(PoiStoreStaffVO poiStoreStaffVO) { + try { + poiStoreStaffService.addStaff(poiStoreStaffVO); + return success(); + } catch (Exception e) { + log.error("获取店铺人员", e); + return fail(); + } + } + +} diff --git a/src/main/java/com/kiisoo/ic/store/entity/PoiStoreStaff.java b/src/main/java/com/kiisoo/ic/store/entity/PoiStoreStaff.java index fd9ac91..d89abcc 100644 --- a/src/main/java/com/kiisoo/ic/store/entity/PoiStoreStaff.java +++ b/src/main/java/com/kiisoo/ic/store/entity/PoiStoreStaff.java @@ -30,6 +30,14 @@ public class PoiStoreStaff { * 店铺人员, 用户ID */ private Long userId; + /** + * 店铺code + */ + private String storeCode; + /** + * 人员code + */ + private String staffCode; /** * 1 店长 2 副店长 3 店长助理 4 导购 diff --git a/src/main/java/com/kiisoo/ic/store/entity/PoiStoreStaffVO.java b/src/main/java/com/kiisoo/ic/store/entity/PoiStoreStaffVO.java new file mode 100644 index 0000000..55cb6fe --- /dev/null +++ b/src/main/java/com/kiisoo/ic/store/entity/PoiStoreStaffVO.java @@ -0,0 +1,114 @@ +package com.kiisoo.ic.store.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @Description: 门店人员信息 + * @Author: Caps + * @Date 2020-04-07 + */ +@Data +public class PoiStoreStaffVO { + + /** + * 主键ID + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 店铺ID + */ + private Long storeId; + + /** + * 店铺人员, 用户ID + */ + private Long userId; + /** + * 店铺code + */ + private String storeCode; + /** + * 人员code + */ + private String staffCode; + + /** + * 1 店长 2 副店长 3 店长助理 4 导购 + */ + private Long type; + + /** + * 企业微信openID + */ + private String epWechatOpenId; + + /** + * 企业微信导购二维码 + */ + private String epWechatQrCode; + + /** + * 企业微信配置ID + */ + private String epWechatConfigId; + + /** + * 状态 1 有效 2 无效 + */ + private Long status; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改时间 + */ + private Date updateTime; + + /** + * 创建人 + */ + private String createBy; + + /** + * 修改人 + */ + private String updateBy; + + /** + * 是否删除: 0 false 1 true + */ + private Integer deleted; + /** + * 人员名称 + */ + private String name; + /** + * 人员电话 + */ + private String mobil; + /** + * 店铺名称 + */ + private String storeName; + + /** + * 角色 + */ + private String role; + /** + * 账号 + */ + private String login; + + private Long roleId; +} diff --git a/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreStaffDOMapper.java b/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreStaffDOMapper.java index 1d23509..89ef1a6 100644 --- a/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreStaffDOMapper.java +++ b/src/main/java/com/kiisoo/ic/store/mapper/PoiStoreStaffDOMapper.java @@ -30,4 +30,9 @@ public interface PoiStoreStaffDOMapper extends BaseMapper { * @return */ List selectSellersByShopIds(@Param("shopId") List shopId); + + /** + * 查询店铺店长 + */ + String selectShopManagerByShop (@Param("shopId") Long shopId); } diff --git a/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java b/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java new file mode 100644 index 0000000..56ebc26 --- /dev/null +++ b/src/main/java/com/kiisoo/ic/store/service/PoiStoreStaffService.java @@ -0,0 +1,177 @@ +package com.kiisoo.ic.store.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.kiisoo.ic.customer.entity.OpCustomerEnterpriseWechat; +import com.kiisoo.ic.domain.service.PrivilageDomainService; +import com.kiisoo.ic.employee.entity.QrCodeDO; +import com.kiisoo.ic.employee.entity.QrCodeVO; +import com.kiisoo.ic.employee.service.QrCodeService; +import com.kiisoo.ic.store.entity.PoiStore; +import com.kiisoo.ic.store.entity.PoiStoreStaff; +import com.kiisoo.ic.store.entity.PoiStoreStaffVO; +import com.kiisoo.ic.store.mapper.PoiStoreDOMapper; +import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper; +import com.kiisoo.ic.system.bean.AccountBean; +import com.kiisoo.ic.system.bean.PrivilageUserBean; +import com.kiisoo.ic.system.entity.PrivilageAccountDO; +import com.kiisoo.ic.system.entity.PrivilageUserDO; +import com.kiisoo.ic.system.enums.AccountEnum; +import com.kiisoo.ic.system.mapper.PrivilageUserDOMapper; +import com.kiisoo.ic.system.service.PrivilageAccountService; +import com.kiisoo.ic.system.service.PrivilageRoleService; +import com.kiisoo.ic.system.service.PrivilageUserRoleService; +import com.kiisoo.ic.system.service.PrivilageUserService; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 店铺 + */ +@Service +public class PoiStoreStaffService { + + @Autowired + private PoiStoreStaffDOMapper poiStoreStaffDOMapper; + @Autowired + private PrivilageDomainService privilageDomainService; + @Autowired + private PoiStoreService poiStoreService; + @Autowired + private PrivilageUserDOMapper privilageUserDOMapper; + @Autowired + private PoiStoreDOMapper poiStoreDOMapper; + @Autowired + private PrivilageAccountService privilageAccountService; + @Autowired + private PrivilageUserService privilageUserService; + @Autowired + private PrivilageUserRoleService privilageUserRoleService; + @Autowired + private QrCodeService qrCodeService; + /** + * 根据条件查询导购信息 + * + * @param userId 用户id + * @param shopId 店铺id + * @param regionId 区域id + */ + public IPage getStaffByUserAndDate(int pageNum, int pageSize, long userId, Long shopId, Long regionId) { + List shopIds = new ArrayList<>(); + //根据店铺查询所有扫码客户信息 + QueryWrapper wrapper = new QueryWrapper<>(); + //如果有店铺则查店铺 + if (shopId != null) { + shopIds.add(shopId); + } else if (regionId != null) { + //如果有区域则查区域店铺 + List shops = poiStoreService.getRegionShop(regionId); + shopIds = shops.stream().map(p -> p.getId()).collect(Collectors.toList()); + } else { + //查询用户权限店铺 + shopIds = new ArrayList<>(privilageDomainService.listUserDatePermission(userId)); + } + wrapper.in("store_id", shopIds); + //状态有效 + wrapper.eq("status", 1); + wrapper.orderByDesc("id"); + //返回店铺对应的导购 + IPage poiStoreStaffs = poiStoreStaffDOMapper.selectPage(new Page<>(pageNum, pageSize), wrapper); + IPage resultList = new Page<>(); + List list = new ArrayList<>(); + BeanUtils.copyProperties(poiStoreStaffs, resultList); + List records = poiStoreStaffs.getRecords(); + records.forEach(poiStoreStaff -> { + PoiStoreStaffVO poiStoreStaffVO = new PoiStoreStaffVO(); + BeanUtils.copyProperties(poiStoreStaff, poiStoreStaffVO); + PrivilageUserBean privilageUserBean = privilageUserDOMapper.selectUserInfoAndRoleInfo(poiStoreStaff.getUserId()); + poiStoreStaffVO.setName(privilageUserBean.getName()); + poiStoreStaffVO.setMobil(privilageUserBean.getMobil()); + poiStoreStaffVO.setRole(privilageUserBean.getRoleName()); + PoiStore poiStore = poiStoreDOMapper.selectById(poiStoreStaff.getStoreId()); + poiStoreStaffVO.setStoreName(poiStore.getName()); + list.add(poiStoreStaffVO); + }); + resultList.setTotal(poiStoreStaffs.getTotal()); + resultList.setRecords(list); + return resultList; + } + + /** + * 添加店铺人员 + * @param poiStoreStaffVO + */ + public int addStaff(PoiStoreStaffVO poiStoreStaffVO) throws Exception { + //添加一个用户 + PrivilageUserDO privilageUserDO = new PrivilageUserDO(); + BeanUtils.copyProperties(poiStoreStaffVO,privilageUserDO); + Long userId = privilageUserService.addUser(privilageUserDO); + if (null == userId ) return 0; + //添加用户和角色的关系 + privilageUserRoleService.insertUserRoleRelation(userId,poiStoreStaffVO.getRoleId()); + //添加一个账号 + privilageAccountService.insertAccount(poiStoreStaffVO.getLogin(), AccountEnum.ACCOUNT_FIRST_PWD.getDescribe(),userId); + //去生成一个推广人员二维码 + + QrCodeVO qrCodeVO = parseQrCode(poiStoreStaffVO); + //添加一个店铺人员 + PoiStoreStaff poiStoreStaff = new PoiStoreStaff(); + BeanUtils.copyProperties(poiStoreStaffVO,poiStoreStaff); + poiStoreStaff.setUserId(userId); + poiStoreStaff.setType(poiStoreStaffVO.getRoleId()); + poiStoreStaff.setEpWechatQrCode(qrCodeVO.getQr_code()); + poiStoreStaff.setEpWechatConfigId(qrCodeVO.getConfig_id()); + return poiStoreStaffDOMapper.insert(poiStoreStaff); + } + + /** + * 修改推广人信息 + */ + public int ediStaff(PoiStoreStaffVO poiStoreStaffVO) throws Exception { + //修改用户信息 + long userId = poiStoreStaffVO.getUserId(); + PrivilageUserDO privilageUserDO = new PrivilageUserDO(); + BeanUtils.copyProperties(poiStoreStaffVO,privilageUserDO); + privilageUserService.updateById(privilageUserDO); + //保存用户角色 + privilageUserRoleService.saveUserRole(userId, poiStoreStaffVO.getRoleId()); + //修改店铺人员信息 + PoiStoreStaff oldStaffInfo = poiStoreStaffDOMapper.selectById(poiStoreStaffVO.getId()); + PoiStoreStaff poiStoreStaff = new PoiStoreStaff(); + //修改了所属店铺 + if (!oldStaffInfo.getStoreId().equals(poiStoreStaffVO.getStoreId())){ + // 判断条件是否重新修改二维码 + QrCodeVO qrCodeVO = parseQrCode(poiStoreStaffVO); + poiStoreStaff.setEpWechatQrCode(qrCodeVO.getQr_code()); + poiStoreStaff.setEpWechatConfigId(qrCodeVO.getConfig_id()); + } + BeanUtils.copyProperties(poiStoreStaffVO,poiStoreStaff); + poiStoreStaff.setType(poiStoreStaffVO.getRoleId()); + return poiStoreStaffDOMapper.insert(poiStoreStaff); + } + + /** + * 生成企业微信二维码 + */ + public QrCodeVO parseQrCode(PoiStoreStaffVO poiStoreStaffVO) throws Exception { + QrCodeDO qrCodeDO = new QrCodeDO(); + qrCodeDO.setType(1); + qrCodeDO.setScene(2); + //查询店铺店长编码 + String staffCode = poiStoreStaffDOMapper.selectShopManagerByShop(poiStoreStaffVO.getStoreId()); + String[] data = new String[1]; + //选择店铺对应店长的编码 + data[0] = (staffCode); + qrCodeDO.setUser(data); + //店铺编码-导购编码 + qrCodeDO.setState(poiStoreStaffVO.getStoreCode() +"-"+poiStoreStaffVO.getStaffCode()); + return qrCodeService.getQrCode(qrCodeDO); + } + +} diff --git a/src/main/java/com/kiisoo/ic/system/bean/PrivilageUserBean.java b/src/main/java/com/kiisoo/ic/system/bean/PrivilageUserBean.java new file mode 100644 index 0000000..175939b --- /dev/null +++ b/src/main/java/com/kiisoo/ic/system/bean/PrivilageUserBean.java @@ -0,0 +1,93 @@ +package com.kiisoo.ic.system.bean; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * 用户表 + * @author jinchaofan + * @since 2020-02-19 + */ +@Data + +public class PrivilageUserBean implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id",type = IdType.AUTO) + private Long id; + + /** + * 名称 + */ + private String name; + + /** + * 电话 + */ + private String mobil; + + /** + * 邮箱 + */ + private String email; + + /** + * 地址 + */ + private String address; + + /** + * 备注 + */ + private String remark; + + /** + * 状态 + */ + private Integer status; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 创建人 + */ + private String createBy; + + /** + * 修改人 + */ + private String updateBy; + + /** + * 角色名 + */ + private String roleName; + + /** + * 角色id + */ + private Long roleId; + /** + * 角色码 + */ + private String roleCode; +} diff --git a/src/main/java/com/kiisoo/ic/system/enums/AccountEnum.java b/src/main/java/com/kiisoo/ic/system/enums/AccountEnum.java index 44fa3da..51a2207 100644 --- a/src/main/java/com/kiisoo/ic/system/enums/AccountEnum.java +++ b/src/main/java/com/kiisoo/ic/system/enums/AccountEnum.java @@ -16,7 +16,8 @@ public enum AccountEnum { ACCOUNT_TYPE_SYSTEM("系统账号", 1), ACCOUNT_MODIFY_STATUS_SUCCEED("账号修改成功", 0), ACCOUNT_MODIFY_STATUS_EXISTS("账号已存在", 1), - ACCOUNT_TYPE_QYWX("企业微信账号类型", 2); + ACCOUNT_TYPE_QYWX("企业微信账号类型", 2), + ACCOUNT_FIRST_PWD("123456", 0); /** * 字段描述 diff --git a/src/main/java/com/kiisoo/ic/system/mapper/PrivilageUserDOMapper.java b/src/main/java/com/kiisoo/ic/system/mapper/PrivilageUserDOMapper.java index d0976b7..b6bbdcc 100644 --- a/src/main/java/com/kiisoo/ic/system/mapper/PrivilageUserDOMapper.java +++ b/src/main/java/com/kiisoo/ic/system/mapper/PrivilageUserDOMapper.java @@ -1,6 +1,7 @@ package com.kiisoo.ic.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.kiisoo.ic.system.bean.PrivilageUserBean; import com.kiisoo.ic.system.entity.PrivilageUserDO; import org.springframework.stereotype.Repository; @@ -12,4 +13,5 @@ import org.springframework.stereotype.Repository; @Repository public interface PrivilageUserDOMapper extends BaseMapper { + PrivilageUserBean selectUserInfoAndRoleInfo(long userId); } diff --git a/src/main/java/com/kiisoo/ic/system/service/PrivilageUserService.java b/src/main/java/com/kiisoo/ic/system/service/PrivilageUserService.java index 2cf4553..56cc722 100644 --- a/src/main/java/com/kiisoo/ic/system/service/PrivilageUserService.java +++ b/src/main/java/com/kiisoo/ic/system/service/PrivilageUserService.java @@ -36,4 +36,12 @@ public interface PrivilageUserService extends IService { */ void removeUserShopRelation(Long userId); + PrivilageUserDO selectById(Long userId); + + /** + * 添加用户 + * @return + */ + Long addUser(PrivilageUserDO privilageUserDO); + } diff --git a/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageUserServiceImpl.java b/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageUserServiceImpl.java index d04786c..370bf64 100644 --- a/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageUserServiceImpl.java +++ b/src/main/java/com/kiisoo/ic/system/service/impl/PrivilageUserServiceImpl.java @@ -91,4 +91,18 @@ public class PrivilageUserServiceImpl extends ServiceImpl fUserDTO = JSONObject.parseArray(externalContact.getString("follow_user"),FollowUserDTO.class); + List fUserDTO = JSONObject.parseArray(parseObject.getString("follow_user"),FollowUserDTO.class); if (CollectionUtils.isNotEmpty(fUserDTO)){ ocew.setUserid(fUserDTO.get(0).getUserid()); ocew.setRemark(fUserDTO.get(0).getRemark()); @@ -427,10 +426,12 @@ public class WxResponseService { customerDTO.setStaffCode(split[1]); }; //调添加客户接口 - long customerId = customerService.customerRelation(customerDTO); - ocew.setCustomerId(customerId); - //添加企业外部店铺客户表 - customerEnterpriseService.addCustomerEnterprise(ocew); + Long customerId = customerService.customerRelation(customerDTO); + if (null != customerId){ + ocew.setCustomerId(customerId); + //添加企业外部店铺客户表 + customerEnterpriseService.addCustomerEnterprise(ocew); + } } /** diff --git a/src/main/resources/mapper/PrivilageUserDOMapper.xml b/src/main/resources/mapper/PrivilageUserDOMapper.xml new file mode 100644 index 0000000..adce192 --- /dev/null +++ b/src/main/resources/mapper/PrivilageUserDOMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + diff --git a/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml b/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml index a9bad68..fc54643 100644 --- a/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml +++ b/src/main/resources/mapper/PrivilageUserShopRelationDOMapper.xml @@ -3,9 +3,8 @@ - +