Browse Source

商铺增加是否默认字段,增加t_shop_user关系对照表用于小程序,增加了业务逻辑。

cangku
delicacylee 3 years ago
parent
commit
a6333ce869
  1. 2
      .gitignore
  2. 3
      hiver-modules/hiver-app/src/main/java/cc/hiver/app/dao/ShopDao.java
  3. 19
      hiver-modules/hiver-app/src/main/java/cc/hiver/app/dao/mapper/ShopMapper.java
  4. 2
      hiver-modules/hiver-app/src/main/java/cc/hiver/app/entity/Shop.java
  5. 34
      hiver-modules/hiver-app/src/main/java/cc/hiver/app/entity/ShopUser.java
  6. 17
      hiver-modules/hiver-app/src/main/java/cc/hiver/app/service/mybatis/IShopService.java
  7. 21
      hiver-modules/hiver-app/src/main/java/cc/hiver/app/serviceimpl/mybatis/IShopServiceImpl.java
  8. 11
      hiver-modules/hiver-app/src/main/resources/mapper/ShopMapper.xml
  9. 8
      hiver-modules/hiver-mall/pom.xml
  10. 60
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/CommonController.java
  11. 22
      hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/MallUserVo.java

2
.gitignore

@ -17,3 +17,5 @@ target
build build
.idea .idea
.gradle .gradle
hiver-logs
hiver-admin/test-output/spark/

3
hiver-modules/hiver-app/src/main/java/cc/hiver/app/dao/ShopDao.java

@ -22,6 +22,8 @@ import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification; import org.springframework.data.jpa.domain.Specification;
import org.springframework.lang.Nullable; import org.springframework.lang.Nullable;
import java.util.List;
/** /**
* @author cc * @author cc
*/ */
@ -33,5 +35,4 @@ public interface ShopDao extends HiverBaseDao<Shop, String> {
* @return * @return
*/ */
Shop findByShopName(String shopName); Shop findByShopName(String shopName);
} }

19
hiver-modules/hiver-app/src/main/java/cc/hiver/app/dao/mapper/ShopMapper.java

@ -0,0 +1,19 @@
package cc.hiver.app.dao.mapper;
import cc.hiver.app.entity.Shop;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ShopMapper extends BaseMapper<Shop> {
/**
* 通过用户ID获得管理的所有店铺
*
* @param userId
* @return
*/
List<Shop> findByUserId(@Param("userId") String userId);
}

2
hiver-modules/hiver-app/src/main/java/cc/hiver/app/entity/Shop.java

@ -74,4 +74,6 @@ public class Shop extends HiverBaseEntity {
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remark; private String remark;
@ApiModelProperty(value = "是否默认商铺")
private Integer defaulted;
} }

34
hiver-modules/hiver-app/src/main/java/cc/hiver/app/entity/ShopUser.java

@ -0,0 +1,34 @@
package cc.hiver.app.entity;
import cc.hiver.core.base.HiverBaseEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Entity;
import javax.persistence.Table;
@Data
@Accessors(chain = true)
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "t_shop_user")
@TableName("t_shop_user")
@ApiModel(value = "商铺对应用户表")
public class ShopUser extends HiverBaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "用户id")
private String userId;
@ApiModelProperty(value = "商铺id")
private String shopId;
@ApiModelProperty(value = "类型 0表示店主 1表示店长 2表示店员")
private Integer type;
}

17
hiver-modules/hiver-app/src/main/java/cc/hiver/app/service/mybatis/IShopService.java

@ -0,0 +1,17 @@
package cc.hiver.app.service.mybatis;
import cc.hiver.app.entity.Shop;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface IShopService extends IService<Shop> {
/**
* 通过用户ID获得管理的所有店铺
*
* @param userId
* @return
*/
List<Shop> findByUserId(@Param("userId") String userId);
}

21
hiver-modules/hiver-app/src/main/java/cc/hiver/app/serviceimpl/mybatis/IShopServiceImpl.java

@ -0,0 +1,21 @@
package cc.hiver.app.serviceimpl.mybatis;
import cc.hiver.app.dao.mapper.ShopMapper;
import cc.hiver.app.entity.Shop;
import cc.hiver.app.service.mybatis.IShopService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class IShopServiceImpl extends ServiceImpl<ShopMapper, Shop> implements IShopService {
@Autowired
private ShopMapper shopMapper;
@Override
public List<Shop> findByUserId(String userId) {
return shopMapper.findByUserId(userId);
}
}

11
hiver-modules/hiver-app/src/main/resources/mapper/ShopMapper.xml

@ -0,0 +1,11 @@
<?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="cc.hiver.app.dao.mapper.ShopMapper">
<select id="findByUserId" resultType="cc.hiver.app.entity.Shop">
SELECT DISTINCT m.*
FROM t_shop m
LEFT JOIN t_shop_user um ON m.id = um.shop_id
WHERE um.user_id = #{userId} AND m.status = 0
ORDER BY m.defaulted DESC
</select>
</mapper>

8
hiver-modules/hiver-mall/pom.xml

@ -10,4 +10,12 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<name>商城模块</name> <name>商城模块</name>
<artifactId>hiver-mall</artifactId> <artifactId>hiver-mall</artifactId>
<dependencies>
<dependency>
<groupId>cc.hiver</groupId>
<artifactId>hiver-app</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project> </project>

60
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/controller/CommonController.java

@ -0,0 +1,60 @@
package cc.hiver.mall.controller;
import cc.hiver.app.entity.Shop;
import cc.hiver.app.service.mybatis.IShopService;
import cc.hiver.core.common.utils.ResultUtil;
import cc.hiver.core.common.utils.SecurityUtil;
import cc.hiver.core.common.vo.Result;
import cc.hiver.core.entity.User;
import cc.hiver.mall.pojo.vo.MallUserVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.List;
@Slf4j
@RestController
@Api(tags = "微信小程序通用接口")
@RequestMapping(value = "/hiver/app/common/")
@Transactional
public class CommonController {
@Autowired
private IShopService shopService;
@Autowired
private SecurityUtil securityUtil;
@PersistenceContext
private EntityManager entityManager;
@RequestMapping(value = "/userInfo", method = RequestMethod.GET)
@ApiOperation(value = "获取当前登录用户接口")
public Result<MallUserVo> getUserInfo() {
MallUserVo result = new MallUserVo();
User u = securityUtil.getCurrUser();
// 清除持久上下文环境 避免后面语句导致持久化
entityManager.detach(u);
u.setPassword(null);
result.setUser(u);
result.setShops(shopService.findByUserId(u.getId()));
return new ResultUtil<MallUserVo>().setData(result);
}
@RequestMapping(value = "/shops", method = RequestMethod.GET)
@ApiOperation(value = "获取当前登录用户对应的所有商铺")
public Result<List<Shop>> getShopList() {
User u = securityUtil.getCurrUser();
// 清除持久上下文环境 避免后面语句导致持久化
entityManager.detach(u);
List<Shop> result = shopService.findByUserId(u.getId());
return new ResultUtil<List<Shop>>().setData(result);
}
}

22
hiver-modules/hiver-mall/src/main/java/cc/hiver/mall/pojo/vo/MallUserVo.java

@ -0,0 +1,22 @@
package cc.hiver.mall.pojo.vo;
import cc.hiver.app.entity.Shop;
import cc.hiver.core.entity.User;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
* @author Yazhi Li
*/
@Data
@Accessors(chain = true)
public class MallUserVo {
@ApiModelProperty(value = "登录用户信息")
private User user;
@ApiModelProperty(value = "用户所属店铺")
private List<Shop> shops;
}
Loading…
Cancel
Save