Merge branch 'test' into dev

# Conflicts:
#	src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopUser.java
This commit is contained in:
2024-08-27 11:02:42 +08:00
53 changed files with 2994 additions and 188 deletions

View File

@@ -2,6 +2,7 @@ package com.chaozhanggui.system.cashierservice.controller;
import cn.hutool.core.util.StrUtil;
import com.chaozhanggui.system.cashierservice.dao.TbPlatformDictMapper;
import com.chaozhanggui.system.cashierservice.dao.TbShopExtendMapper;
import com.chaozhanggui.system.cashierservice.entity.TbPlatformDict;
import com.chaozhanggui.system.cashierservice.entity.dto.WxMsgSubDTO;
import com.chaozhanggui.system.cashierservice.entity.vo.DistrictVo;
@@ -24,12 +25,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/**
* 通用接口
@@ -50,6 +53,8 @@ public class CommonController {
private TbPlatformDictMapper platformDictMapper;
@Resource
private FileService fileService;
@Resource
private TbShopExtendMapper extendMapper;
private final LoginService loginService;;
@@ -163,6 +168,12 @@ public class CommonController {
return new Result(CodeEnum.SUCCESS, fileService.uploadFile(file));
}
@RequestMapping("common/shopExtend")
public Result getShopExtend(@RequestBody Map<String, String> map) {
if (CollectionUtils.isEmpty(map) || !map.containsKey("shopId") || !map.containsKey("autokey")) return new Result(CodeEnum.SUCCESS);
return new Result(CodeEnum.SUCCESS, extendMapper.queryByShopIdAndAutoKey(Integer.valueOf(map.get("shopId").toString()),map.get("autokey")));
}
// 检查手机号格式是否正确的方法
private boolean isValidPhoneNumber(String phone) {
return phone.matches("^1[3-9]\\d{9}$");

View File

@@ -50,12 +50,13 @@ public class ProductController {
* @return
*/
@RequestMapping("queryProduct")
public Result queryProduct(@RequestBody Map<String, String> map) {
public Result queryProduct(@RequestHeader("id") String userId,@RequestBody Map<String, String> map) {
if (ObjectUtil.isEmpty(map) || map.size() <= 0 || !map.containsKey("shopId")) {
return Result.fail("参数错误");
}
return productService.queryProduct(
userId,
map.get("shopId").toString(),
(map.containsKey("productGroupId") && ObjectUtil.isNotEmpty(map.get("productGroupId"))) ? map.get("productGroupId").toString() : "");
}
@@ -81,9 +82,10 @@ public class ProductController {
@RequestParam(value = "code", required = false) String code,
@RequestParam("shopId") String shopId,
@RequestParam("productId") String productId,
@RequestParam("spec_tag") String spec_tag
@RequestParam("spec_tag") String spec_tag,
@RequestParam("isVip") String isVip
) {
return productService.queryProductSku(code,shopId, productId, spec_tag);
return productService.queryProductSku(code,shopId, productId, spec_tag,isVip);
}
@PostMapping("addCart")

View File

@@ -0,0 +1,40 @@
package com.chaozhanggui.system.cashierservice.controller;
import com.chaozhanggui.system.cashierservice.entity.TbShopAd;
import com.chaozhanggui.system.cashierservice.entity.dto.TbShopAdDto;
import com.chaozhanggui.system.cashierservice.service.TbShopAdService;
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
import com.chaozhanggui.system.cashierservice.sign.Result;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* (TbShopAd)表控制层
*
* @author GYJ
* @since 2024-08-19 14:25:09
*/
@RestController
@RequestMapping("tbShopAd")
public class TbShopAdController {
private final TbShopAdService tbShopAdService;
public TbShopAdController(@Qualifier("tbShopAdServiceImpl") TbShopAdService tbShopAdService) {
this.tbShopAdService = tbShopAdService;
}
@GetMapping("/list")
public Result list(@RequestParam(value = "shopId") Integer shopId) {
List<TbShopAd> tbShopAds = tbShopAdService.shopAdList(shopId);
return Result.success(CodeEnum.ENCRYPT, TbShopAdDto.convertShopAdDoToDtoList(tbShopAds));
}
}

View File

@@ -65,9 +65,20 @@ public class UserContoller {
@PostMapping("/openMember")
public Result openMember(@RequestBody OpenMemberVo memberVo){
if(StringUtils.isBlank(memberVo.getTelephone())){
return Result.fail("手机号不可为空");
}
return userService.openMember(memberVo);
}
@PostMapping("/upVipPhont")
public Result upVipPhont(@RequestBody OpenMemberVo memberVo){
if(StringUtils.isBlank(memberVo.getTelephone())){
return Result.fail("手机号不可为空");
}
return userService.upVipPhont(memberVo);
}
@GetMapping("/shopUserInfo")
public Result shopUserInfo(@RequestParam("userId") String userId, @RequestHeader("openId") String openId, @RequestParam("shopId") String shopId) throws Exception {
if(shopId.equals("undefined")){
@@ -122,6 +133,7 @@ public class UserContoller {
shopUser.setLng(tbShopInfo.getLng());
shopUser.setLat(tbShopInfo.getLat());
shopUser.setAddress(tbShopInfo.getAddress());
shopUser.setIsUser(tbShopInfo.getIsCustom());
}
return Result.success(CodeEnum.SUCCESS, shopUser);
}

View File

@@ -0,0 +1,72 @@
package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbActivateInRecord;
import com.chaozhanggui.system.cashierservice.entity.TbProduct;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 活动商品赠送表(TbActivateInRecord)表数据库访问层
*
* @author ww
* @since 2024-08-22 11:13:40
*/
public interface TbActivateInRecordMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TbActivateInRecord queryById(Integer id);
/**
* 查询数据
*
* @param tbActivateInRecord 查询条件
* @return 对象列表
*/
List<TbActivateInRecord> queryAll(TbActivateInRecord tbActivateInRecord);
List<TbProduct> queryByVipIdAndShopId(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId);
int queryByVipIdAndShopIdAndProId(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId,@Param("productId") Integer productId);
List<TbActivateInRecord> queryAllByVipIdAndShopIdAndProId(@Param("vipUserId") Integer vipUserId, @Param("shopId") Integer shopId,@Param("productId") Integer productId);
/**
* 新增数据
*
* @param tbActivateInRecord 实例对象
* @return 影响行数
*/
int insert(TbActivateInRecord tbActivateInRecord);
/**
* 批量新增数据MyBatis原生foreach方法
*
* @param entities List<TbActivateInRecord> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<TbActivateInRecord> entities);
/**
* 修改数据
*
* @param tbActivateInRecord 实例对象
* @return 影响行数
*/
int update(TbActivateInRecord tbActivateInRecord);
int updateOverNumById(@Param("id")Integer id,@Param("overNum")Integer overNum);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Integer id);
}

View File

@@ -11,19 +11,19 @@ import java.util.List;
@Component
@Mapper
public interface TbActivateMapper {
int deleteByPrimaryKey(Integer id);
// int deleteByPrimaryKey(Integer id);
int insert(TbActivate record);
// int insert(TbActivate record);
int insertSelective(TbActivate record);
// int insertSelective(TbActivate record);
TbActivate selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(TbActivate record);
// int updateByPrimaryKeySelective(TbActivate record);
int updateByPrimaryKey(TbActivate record);
// int updateByPrimaryKey(TbActivate record);
TbActivate selectByAmount(@Param("shopId") String shopId,@Param("amount") BigDecimal amount);
List<TbActivate> selectByShpopId(String shopId);
List<TbActivate> selectByShopId(String shopId);
}

View File

@@ -0,0 +1,74 @@
package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbActivateOutRecord;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 活动赠送商品使用记录表(TbActivateOutRecord)表数据库访问层
*
* @author ww
* @since 2024-08-22 11:21:56
*/
public interface TbActivateOutRecordMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TbActivateOutRecord queryById(Integer id);
/**
* 查询数据
*
* @param tbActivateOutRecord 查询条件
* @return 对象列表
*/
List<TbActivateOutRecord> queryAll(TbActivateOutRecord tbActivateOutRecord);
/**
* 新增数据
*
* @param tbActivateOutRecord 实例对象
* @return 影响行数
*/
int insert(TbActivateOutRecord tbActivateOutRecord);
/**
* 批量新增数据MyBatis原生foreach方法
*
* @param entities List<TbActivateOutRecord> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<TbActivateOutRecord> entities);
/**
* 修改数据
*
* @param tbActivateOutRecord 实例对象
* @return 影响行数
*/
int update(TbActivateOutRecord tbActivateOutRecord);
/**
* 根据订单id 将数据状态变为
* @param orderId 订单Id
* @param status 状态
* @return
*/
int updateByOrderIdAndStatus(@Param("orderId")Integer orderId,@Param("status")String status);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Integer id);
}

View File

@@ -0,0 +1,68 @@
package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbActivateProduct;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 活动赠送商品表(TbActivateProduct)表数据库访问层
*
* @author ww
* @since 2024-08-20 15:14:55
*/
public interface TbActivateProductMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TbActivateProduct queryById(Integer id);
/**
* 查询数据
*
* @param tbActivateProduct 查询条件
* @return 对象列表
*/
List<TbActivateProduct> queryAll(TbActivateProduct tbActivateProduct);
List<TbActivateProduct> queryAllByActivateId(Integer activateId);
List<String> queryProsByActivateId(Integer activateId);
/**
* 新增数据
*
* @param tbActivateProduct 实例对象
* @return 影响行数
*/
int insert(TbActivateProduct tbActivateProduct);
/**
* 批量新增数据MyBatis原生foreach方法
*
* @param entities List<TbActivateProduct> 实例对象列表
* @return 影响行数
*/
int insertBatch(@Param("entities") List<TbActivateProduct> entities);
/**
* 修改数据
*
* @param tbActivateProduct 实例对象
* @return 影响行数
*/
int update(TbActivateProduct tbActivateProduct);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 影响行数
*/
int deleteById(Integer id);
}

View File

@@ -0,0 +1,27 @@
package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbConsInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@Mapper
public interface TbConsInfoMapper {
int deleteByPrimaryKey(Integer id);
int insert(TbConsInfo record);
int insertSelective(TbConsInfo record);
TbConsInfo selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(TbConsInfo record);
int updateByPrimaryKey(TbConsInfo record);
int countAll();
List<TbConsInfo> selectAllInfo();
}

View File

@@ -26,7 +26,7 @@ public interface TbProductMapper {
List<TbProduct> selectByIds(@Param("list") List<String> ids);
Integer selectByQcode(@Param("code") String code,@Param("productId") Integer productId,@Param("shopId") String shopId);
Integer selectByCodeAndSkuId(@Param("code") String code,@Param("skuId") Integer skuId,@Param("shopId") String shopId);
Integer selectByCodeAndSkuId(@Param("code") String code,@Param("skuId") Integer skuId,@Param("shopId") String shopId,@Param("isVip") String isVip);
Integer selectByNewQcode(@Param("code") String code,@Param("productId") Integer productId,@Param("shopId") String shopId,@Param("list") List<String> list);
List<ShopGroupInfoVo> selGroups(@Param("proName") String proName,@Param("type") String type,

View File

@@ -0,0 +1,37 @@
package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbProskuCon;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
@Mapper
public interface TbProskuConMapper {
int deleteByPrimaryKey(Integer id);
int insert(TbProskuCon record);
int insertSelective(TbProskuCon record);
TbProskuCon selectByPrimaryKey(Integer id);
int updateByPrimaryKeySelective(TbProskuCon record);
int updateByPrimaryKey(TbProskuCon record);
List<TbProskuCon> selectBySkuIdAndShopId(@Param("skuId") Integer skuId, @Param("shopId") Integer shopId);
List<TbProskuCon> selectBySkuIdAndShopIdAngCheck(@Param("skuId") Integer skuId, @Param("shopId") Integer shopId);
List<Integer> selectIdBySkuIdAndShopId(@Param("skuId") Integer skuId, @Param("shopId") Integer shopId);
List<TbProskuCon> selectByShopIdAndSkuIdAndProductId(@Param("skuId") Integer skuId, @Param("shopId") Integer shopId,@Param("productId") Integer productId);
List<TbProskuCon> selectByShopIdAndSkuIdAndProductIdAndCheck(@Param("skuId") Integer skuId, @Param("shopId") Integer shopId,@Param("productId") Integer productId);
}

View File

@@ -0,0 +1,23 @@
package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbShopAd;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* (TbShopAd)表数据库访问层
*
* @author GYJ
* @since 2024-08-19 14:25:09
*/
public interface TbShopAdDao {
/**
* 查询指定行数据
*
* @return 对象列表
*/
@Select("select * from fycashier.tb_shop_ad where (shop_id = #{songId} or shop_id = 1) and status=1")
List<TbShopAd> shopAdList(Integer shopId);
}

View File

@@ -0,0 +1,33 @@
package com.chaozhanggui.system.cashierservice.dao;
import com.chaozhanggui.system.cashierservice.entity.TbShopExtend;
import java.util.List;
/**
* 店铺扩展信息(TbShopExtend)表数据库访问层
*
* @author ww
* @since 2024-08-21 09:40:25
*/
public interface TbShopExtendMapper {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TbShopExtend queryById(Integer id);
TbShopExtend queryByShopIdAndAutoKey(Integer shopId,String autokey);
/**
* 查询数据
*
* @param tbShopExtend 查询条件
* @return 对象列表
*/
List<TbShopExtend> queryAll(TbShopExtend tbShopExtend);
}

View File

@@ -1,7 +1,11 @@
package com.chaozhanggui.system.cashierservice.entity;
import org.springframework.util.CollectionUtils;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
public class TbActivate implements Serializable {
private Integer id;
@@ -18,6 +22,10 @@ public class TbActivate implements Serializable {
private String isDel;
//是否赠送商品 0否 1是
private Integer isGiftPro;
private List<String> gives;
private static final long serialVersionUID = 1L;
public Integer getId() {
@@ -75,4 +83,24 @@ public class TbActivate implements Serializable {
public void setIsDel(String isDel) {
this.isDel = isDel == null ? null : isDel.trim();
}
public Integer getIsGiftPro() {
return isGiftPro;
}
public void setIsGiftPro(Integer isGiftPro) {
this.isGiftPro = isGiftPro;
}
public List<String> getGives() {
return gives;
}
public void setGives(List<String> gives) {
if(CollectionUtils.isEmpty(gives)){
this.gives = new ArrayList<>();
}else {
this.gives = gives;
}
}
}

View File

@@ -0,0 +1,140 @@
package com.chaozhanggui.system.cashierservice.entity;
import java.util.Date;
import java.io.Serializable;
/**
* 活动商品赠送表(TbActivateInRecord)实体类
*
* @author ww
* @since 2024-08-22 11:13:40
*/
public class TbActivateInRecord implements Serializable {
private static final long serialVersionUID = -35515830201618782L;
private Integer id;
/**
* 会员id
*/
private Integer vipUserId;
/**
* 商品id
*/
private Integer proId;
/**
* 赠送数量
*/
private Integer num;
/**
* 未使用数量
*/
private Integer overNum;
/**
* 店铺id
*/
private Integer shopId;
/**
* 来源活动id
*/
private Integer sourceActId;
private Integer sourceFlowId;
private Date createTime;
private Date updateTime;
public TbActivateInRecord(Integer vipUserId, Integer proId, Integer num, Integer shopId, Integer sourceActId,Integer sourceFlowId) {
this.vipUserId = vipUserId;
this.proId = proId;
this.num = num;
this.overNum = num;
this.shopId = shopId;
this.sourceActId = sourceActId;
this.sourceFlowId = sourceFlowId;
this.createTime=new Date();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getVipUserId() {
return vipUserId;
}
public void setVipUserId(Integer vipUserId) {
this.vipUserId = vipUserId;
}
public Integer getProId() {
return proId;
}
public void setProId(Integer proId) {
this.proId = proId;
}
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
public Integer getOverNum() {
return overNum;
}
public void setOverNum(Integer overNum) {
this.overNum = overNum;
}
public Integer getShopId() {
return shopId;
}
public void setShopId(Integer shopId) {
this.shopId = shopId;
}
public Integer getSourceActId() {
return sourceActId;
}
public void setSourceActId(Integer sourceActId) {
this.sourceActId = sourceActId;
}
public Integer getSourceFlowId() {
return sourceFlowId;
}
public void setSourceFlowId(Integer sourceFlowId) {
this.sourceFlowId = sourceFlowId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

View File

@@ -0,0 +1,125 @@
package com.chaozhanggui.system.cashierservice.entity;
import java.util.Date;
import java.io.Serializable;
/**
* 活动赠送商品使用记录表(TbActivateOutRecord)实体类
*
* @author ww
* @since 2024-08-22 11:21:56
*/
public class TbActivateOutRecord implements Serializable {
private static final long serialVersionUID = -54399746948905097L;
private Integer id;
/**
* 商品赠送Id
*/
private Integer giveId;
/**
* 商品id
*/
private Integer proId;
/**
* 使用数量
*/
private Integer useNum;
/**
* 退单量
*/
private Integer refNum;
/**
* 订单id
*/
private String orderId;
//新建: create 完成: closed, 取消cancel,
private String status;
private Date createTime;
private Date updateTime;
public TbActivateOutRecord(Integer giveId, Integer proId, Integer useNum, String orderId, String status) {
this.giveId = giveId;
this.proId = proId;
this.useNum = useNum;
this.orderId = orderId;
this.status = status;
this.createTime = new Date();
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getGiveId() {
return giveId;
}
public void setGiveId(Integer giveId) {
this.giveId = giveId;
}
public Integer getProId() {
return proId;
}
public void setProId(Integer proId) {
this.proId = proId;
}
public Integer getUseNum() {
return useNum;
}
public void setUseNum(Integer useNum) {
this.useNum = useNum;
}
public Integer getRefNum() {
return refNum;
}
public void setRefNum(Integer refNum) {
this.refNum = refNum;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getOrderId() {
return orderId;
}
public void setOrderId(String orderId) {
this.orderId = orderId;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

View File

@@ -0,0 +1,83 @@
package com.chaozhanggui.system.cashierservice.entity;
import java.util.Date;
import java.io.Serializable;
/**
* 活动赠送商品表(TbActivateProduct)实体类
*
* @author ww
* @since 2024-08-20 15:15:01
*/
public class TbActivateProduct implements Serializable {
private static final long serialVersionUID = 592370528166603965L;
private Integer id;
/**
* 活动Id
*/
private Integer activateId;
/**
* 商品id
*/
private Integer productId;
/**
* 数量
*/
private Integer num;
private Date createTime;
private Date updateTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getActivateId() {
return activateId;
}
public void setActivateId(Integer activateId) {
this.activateId = activateId;
}
public Integer getProductId() {
return productId;
}
public void setProductId(Integer productId) {
this.productId = productId;
}
public Integer getNum() {
return num;
}
public void setNum(Integer num) {
this.num = num;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}

View File

@@ -58,6 +58,7 @@ public class TbCashierCart implements Serializable {
private Long updatedAt;
private Integer userId;
private String tableId;
private Byte isVip;
private TbProductSpec tbProductSpec;
private static final long serialVersionUID = 1L;

View File

@@ -0,0 +1,169 @@
package com.chaozhanggui.system.cashierservice.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
public class TbConsInfo implements Serializable {
private Integer id;
private Integer shopId;
private Integer conTypeId;
private String conTypeName;
private String conCode;
private String conName;
private BigDecimal stockNumber;
private String conUnit;
private BigDecimal lasterInStock;
private BigDecimal conWarning;
private BigDecimal stockConsume;
private String status;
private BigDecimal price;
private Date createTime;
private Date updateTime;
private String isCheck;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getShopId() {
return shopId;
}
public void setShopId(Integer shopId) {
this.shopId = shopId;
}
public Integer getConTypeId() {
return conTypeId;
}
public void setConTypeId(Integer conTypeId) {
this.conTypeId = conTypeId;
}
public String getConTypeName() {
return conTypeName;
}
public void setConTypeName(String conTypeName) {
this.conTypeName = conTypeName == null ? null : conTypeName.trim();
}
public String getConCode() {
return conCode;
}
public void setConCode(String conCode) {
this.conCode = conCode == null ? null : conCode.trim();
}
public String getConName() {
return conName;
}
public void setConName(String conName) {
this.conName = conName == null ? null : conName.trim();
}
public BigDecimal getStockNumber() {
return stockNumber;
}
public void setStockNumber(BigDecimal stockNumber) {
this.stockNumber = stockNumber;
}
public String getConUnit() {
return conUnit;
}
public void setConUnit(String conUnit) {
this.conUnit = conUnit == null ? null : conUnit.trim();
}
public BigDecimal getLasterInStock() {
return lasterInStock;
}
public void setLasterInStock(BigDecimal lasterInStock) {
this.lasterInStock = lasterInStock;
}
public BigDecimal getConWarning() {
return conWarning;
}
public void setConWarning(BigDecimal conWarning) {
this.conWarning = conWarning;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public BigDecimal getStockConsume() {
return stockConsume;
}
public void setStockConsume(BigDecimal stockConsume) {
this.stockConsume = stockConsume;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public String getIsCheck() {
return isCheck;
}
public void setIsCheck(String isCheck) {
this.isCheck = isCheck;
}
}

View File

@@ -20,6 +20,8 @@ public class TbOrderDetail implements Serializable {
private Integer num;
private Byte isVip;
private String productName;
private String status;

View File

@@ -0,0 +1,89 @@
package com.chaozhanggui.system.cashierservice.entity;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
public class TbProskuCon implements Serializable {
private Integer id;
private Integer shopId;
private Integer productId;
private Integer productSkuId;
private Integer conInfoId;
private BigDecimal surplusStock;
private String status;
private Date createTime;
private static final long serialVersionUID = 1L;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getShopId() {
return shopId;
}
public void setShopId(Integer shopId) {
this.shopId = shopId;
}
public Integer getProductId() {
return productId;
}
public void setProductId(Integer productId) {
this.productId = productId;
}
public Integer getProductSkuId() {
return productSkuId;
}
public void setProductSkuId(Integer productSkuId) {
this.productSkuId = productSkuId;
}
public Integer getConInfoId() {
return conInfoId;
}
public void setConInfoId(Integer conInfoId) {
this.conInfoId = conInfoId;
}
public BigDecimal getSurplusStock() {
return surplusStock;
}
public void setSurplusStock(BigDecimal surplusStock) {
this.surplusStock = surplusStock;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status == null ? null : status.trim();
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}

View File

@@ -0,0 +1,63 @@
package com.chaozhanggui.system.cashierservice.entity;
import lombok.Data;
import java.util.Date;
import java.io.Serializable;
/**
* (TbShopAd)实体类
*
* @author GYJ
* @since 2024-08-19 14:25:09
*/
@Data
public class TbShopAd implements Serializable {
private static final long serialVersionUID = -34028307481923067L;
/**
* 自增id
*/
private Integer id;
/**
* 店铺id如果是通用广告则为0
*/
private Integer shopId;
/**
* 广告图片地址
*/
private String imgUrl;
/**
* 跳转页面路径
*/
private String linkPath;
/**
* 广告展示圆角
*/
private Integer borderRadius;
/**
* 弹窗展示位置home首页make_order点餐页
*/
private String showPosition;
/**
* 显示频率only_one 仅首次展示, every_show 每次打开都展示every_day 每天展示一次three_day 每三天展示一次, seven_day 每七天展示一次, thirty_day 没30天展示一次
*/
private String frequency;
/**
* 广告状态0未启用1已启用
*/
private Integer status;
/**
* 排序
*/
private Integer sort;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
}

View File

@@ -0,0 +1,113 @@
package com.chaozhanggui.system.cashierservice.entity;
import java.util.Date;
import java.io.Serializable;
/**
* 店铺扩展信息(TbShopExtend)实体类
*
* @author ww
* @since 2024-08-21 09:40:26
*/
public class TbShopExtend implements Serializable {
private static final long serialVersionUID = -25782280496188600L;
/**
* 自增id
*/
private Integer id;
/**
* 商户Id
*/
private Integer shopId;
/**
* img:图片text:文本;
*/
private String type;
/**
* 描述
*/
private String name;
/**
* 自定义key
*/
private String autokey;
/**
* 值
*/
private String value;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建时间
*/
private Date createTime;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getShopId() {
return shopId;
}
public void setShopId(Integer shopId) {
this.shopId = shopId;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAutokey() {
return autokey;
}
public void setAutokey(String autokey) {
this.autokey = autokey;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
}

View File

@@ -320,4 +320,36 @@ public class TbShopUser implements Serializable {
public void setMiniOpenId(String miniOpenId) {
this.miniOpenId = miniOpenId == null ? null : miniOpenId.trim();
}
public String getIsUser() {
return isUser;
}
public void setIsUser(String isUser) {
this.isUser = isUser;
}
public String getLat() {
return lat;
}
public void setLat(String lat) {
this.lat = lat;
}
public String getLng() {
return lng;
}
public void setLng(String lng) {
this.lng = lng;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}

View File

@@ -0,0 +1,61 @@
package com.chaozhanggui.system.cashierservice.entity.dto;
import com.chaozhanggui.system.cashierservice.entity.TbShopAd;
import lombok.Data;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author GYJ
*/
@Data
public class TbShopAdDto {
private Integer id;
/**
* 店铺id如果是通用广告则为0
*/
private Integer shopId;
/**
* 广告图片地址
*/
private String imgUrl;
/**
* 跳转页面路径
*/
private String linkPath;
/**
* 广告展示圆角
*/
private Integer borderRadius;
/**
* 弹窗展示位置home首页make_order点餐页
*/
private String showPosition;
/**
* 显示频率only_one 仅首次展示, every_show 每次打开都展示every_day 每天展示一次three_day 每三天展示一次, seven_day 每七天展示一次, thirty_day 没30天展示一次
*/
private String frequency;
/**
* 更新时间
*/
private Long updateTime;
public static List<TbShopAdDto> convertShopAdDoToDtoList(List<TbShopAd> adList) {
return adList.stream().map(TbShopAdDto::convertShopAdDoToDto).collect(Collectors.toList());
}
public static TbShopAdDto convertShopAdDoToDto(TbShopAd ad) {
TbShopAdDto dto = new TbShopAdDto();
dto.setId(ad.getId());
dto.setShopId(ad.getShopId());
dto.setImgUrl(ad.getImgUrl());
dto.setLinkPath(ad.getLinkPath());
dto.setBorderRadius(ad.getBorderRadius());
dto.setShowPosition(ad.getShowPosition());
dto.setFrequency(ad.getFrequency());
dto.setUpdateTime(ad.getUpdateTime().getTime());
return dto;
}
}

View File

@@ -6,10 +6,8 @@ import lombok.Data;
public class OpenMemberVo {
private Integer id;
private Integer shopId;
private String headImg;
private String nickName;
private String telephone;
private String nickName;
private String birthDay;
private String headImg;
}

View File

@@ -0,0 +1,11 @@
package com.chaozhanggui.system.cashierservice.entity.vo;
import com.chaozhanggui.system.cashierservice.entity.TbProduct;
import lombok.Data;
@Data
public class VipProductsLimits extends TbProduct {
private Integer vipLimitNumber;
}

View File

@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.Instant;
@@ -57,6 +58,9 @@ public class CartService {
private TbMerchantAccountMapper merchantAccountMapper;
@Autowired
private TbUserInfoMapper userInfoMapper;
@Autowired
private TbShopUserMapper shopUserMapper;
@Autowired
private TbOrderDetailMapper orderDetailMapper;
@Autowired
@@ -71,6 +75,10 @@ public class CartService {
private final WxAccountUtil wxAccountUtil;
private final TbShopOpenIdMapper shopOpenIdMapper;
@Resource
private TbActivateInRecordService activateInRecordService;
@Autowired
private TbActivateOutRecordMapper outRecordMapper;
@Autowired
private RabbitProducer producer;
@@ -85,6 +93,13 @@ public class CartService {
private final RedisTemplate<String, Object> redisTemplate;
@Autowired
private TbProskuConMapper tbProskuConMapper;
@Autowired
TbConsInfoMapper tbConsInfoMapper;
public CartService(TbUserShopMsgMapper tbUserShopMsgMapper, WechatUtil wechatUtil, WxAccountUtil wxAccountUtil, TbShopOpenIdMapper shopOpenIdMapper, ProductService productService, TbProductMapper tbProductMapper, RedisTemplate<String, Object> redisTemplate) {
this.tbUserShopMsgMapper = tbUserShopMsgMapper;
this.wechatUtil = wechatUtil;
@@ -115,6 +130,7 @@ public class CartService {
if (!CollectionUtils.isEmpty(tbCashierCarts)) {
for (TbCashierCart cashierCart : tbCashierCarts) {
array.add(cashierCart);
if(cashierCart.getIsVip().equals((byte) 1)) continue;
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
}
redisUtil.saveMessage(RedisCst.TABLE_CART.concat(key), array.toString());
@@ -141,8 +157,9 @@ public class CartService {
String skuId = jsonObject.getString("skuId");
Integer type = jsonObject.getInteger("type");
Integer buyNum = jsonObject.getInteger("num");
Integer isVip = jsonObject.getInteger("isVip");
if (StringUtils.isBlank(tableId) || StringUtils.isBlank(shopId) || StringUtils.isBlank(productId)
|| StringUtils.isBlank(skuId) || type==null || buyNum == null) {
|| StringUtils.isBlank(skuId) || type == null || buyNum == null) {
return Result.fail("参数缺失");
}
String key = tableId + "-" + shopId;
@@ -153,24 +170,39 @@ public class CartService {
}
// 判断商品是否已下架
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = productSkuMapper.selectByPrimaryKey(Integer.valueOf(skuId));
if (tbProductSkuWithBLOBs ==null || tbProductSkuWithBLOBs.getIsGrounding().equals(0)) {
rmCart(jsonObject,skuId,key);
if (tbProductSkuWithBLOBs == null || tbProductSkuWithBLOBs.getIsGrounding().equals(0)) {
rmCart(jsonObject, skuId, key);
return Result.fail("商品已下架");
}
if (tbProduct.getIsStock() == 1) {
// 1:共享库存 0:独立库存
if (Integer.valueOf(tbProduct.getIsDistribute()).equals(1)) {
if (tbProduct.getIsPauseSale() == 1) {//是否售罄
rmCart(jsonObject,skuId,key);
rmCart(jsonObject, skuId, key);
return Result.fail("该商品已售罄");
}
} else {
if (tbProductSkuWithBLOBs.getIsPauseSale() == 1) {//是否售罄
rmCart(jsonObject,skuId,key);
rmCart(jsonObject, skuId, key);
return Result.fail("该商品已售罄");
}
}
}
List<TbProskuCon> proskuConList = tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(Integer.valueOf(skuId), Integer.valueOf(shopId), Integer.valueOf(productId));
if (Objects.nonNull(proskuConList) && proskuConList.size() > 0) {
for (TbProskuCon proskuCon : proskuConList) {
if ("1".equals(proskuCon.getStatus())) {
TbConsInfo consInfo = tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId());
if ("1".equals(consInfo.getIsCheck())) {
if (N.gt(proskuCon.getSurplusStock(), consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))) {
return Result.fail("商品:".concat(tbProduct.getName()).concat("对应的:").concat(consInfo.getConName()).concat("耗材不足"));
}
}
}
}
}
JSONArray jsonArray = new JSONArray();
BigDecimal amount = BigDecimal.ZERO;
try{
@@ -179,7 +211,7 @@ public class CartService {
if (Objects.isNull(array) || array.isEmpty()) {
if (type == 1) {
TbCashierCart cashierCart = addCart(productId, skuId,
jsonObject.getInteger("userId"), buyNum, tableId, shopId);
jsonObject.getInteger("userId"), buyNum, tableId, shopId,isVip);
jsonArray.add(cashierCart);
amount = amount.add(new BigDecimal(cashierCart.getNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
}
@@ -188,15 +220,20 @@ public class CartService {
for (int i = 0; i < array.size(); i++) {
JSONObject object = array.getJSONObject(i);
TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(object.toJSONString(), TbCashierCart.class);
if (cashierCart.getSkuId().equals(skuId)) {
if (cashierCart.getSkuId().equals(skuId) && cashierCart.getIsVip().intValue() == isVip) {
cashierCart.setTotalNumber(buyNum);
cashierCart.setNumber(buyNum);
if (type == 0 && tbProductSkuWithBLOBs.getSuit() != null && tbProductSkuWithBLOBs.getSuit() > 1 && cashierCart.getNumber() < tbProductSkuWithBLOBs.getSuit()) {
if (type == 0 && isVip == 0 && tbProductSkuWithBLOBs.getSuit() != null && tbProductSkuWithBLOBs.getSuit() > 1 && cashierCart.getNumber() < tbProductSkuWithBLOBs.getSuit()) {
cashierCartMapper.deleteByPrimaryKey(cashierCart.getId());
continue;
}
if (cashierCart.getNumber() > 0) {
cashierCart.setTotalAmount(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
if (isVip == 1) {
cashierCart.setTotalAmount(BigDecimal.ZERO);
} else {
cashierCart.setTotalAmount(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
}
cashierCart.setUpdatedAt(Instant.now().toEpochMilli());
cashierCartMapper.updateByPrimaryKeySelective(cashierCart);
} else {
@@ -210,7 +247,7 @@ public class CartService {
}
if (flag && type == 1) {
TbCashierCart cashierCart = addCart(productId, skuId,
jsonObject.getInteger("userId"), buyNum, tableId, shopId);
jsonObject.getInteger("userId"), buyNum, tableId, shopId,isVip);
jsonArray.add(cashierCart);
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
}
@@ -218,9 +255,11 @@ public class CartService {
} else {
if (type == 1) {
TbCashierCart cashierCart = addCart(productId, skuId,
jsonObject.getInteger("userId"), buyNum, tableId, shopId);
jsonObject.getInteger("userId"), buyNum, tableId, shopId,isVip);
jsonArray.add(cashierCart);
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
if (isVip != 1) {
amount = amount.add(new BigDecimal(cashierCart.getTotalNumber()).multiply(cashierCart.getSalePrice().add(cashierCart.getPackFee())));
}
}
}
}catch (MsgException e){
@@ -238,7 +277,7 @@ public class CartService {
jsonObject1.put("reqData", jsonObject);
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, "", false);
} catch (Exception e) {
log.error("长链接错误 createCart{}", e.getMessage());
log.error("长链接错误 createCart {}", e.getMessage());
}
return Result.success(CodeEnum.SUCCESS);
}
@@ -353,13 +392,13 @@ public class CartService {
}
}
private TbCashierCart addCart(String productId, String skuId, Integer userId, Integer num, String tableId, String shopId) throws Exception{
private TbCashierCart addCart(String productId, String skuId, Integer userId, Integer num, String tableId, String shopId,Integer isVip) throws Exception{
try {
TbProduct product = productMapper.selectById(Integer.valueOf(productId));
String key = tableId + "-" + shopId;
TbProductSkuWithBLOBs productSku = productSkuMapper.selectByPrimaryKey(Integer.valueOf(skuId));
TbCashierCart cashierCart = new TbCashierCart();
if (productSku.getSuit() != null && productSku.getSuit() > 1) {
if (productSku.getSuit() != null && productSku.getSuit() > 1 && isVip != 1) {
if (product.getIsStock() == 1) {
boolean isSale = false;
// 1:共享库存 0:独立库存
@@ -409,7 +448,14 @@ public class CartService {
cashierCart.setUpdatedAt(Instant.now().toEpochMilli());
cashierCart.setPackFee(BigDecimal.ZERO);
cashierCart.setRefundNumber(0);
cashierCart.setTotalAmount(new BigDecimal(cashierCart.getTotalNumber()).multiply(productSku.getSalePrice().add(cashierCart.getPackFee())));
if(isVip==1){
cashierCart.setIsVip(Byte.parseByte("1"));
cashierCart.setTotalAmount(BigDecimal.ZERO);
cashierCart.setSalePrice(BigDecimal.ZERO);
}else {
cashierCart.setIsVip(Byte.parseByte("0"));
cashierCart.setTotalAmount(new BigDecimal(cashierCart.getTotalNumber()).multiply(productSku.getSalePrice().add(cashierCart.getPackFee())));
}
cashierCartMapper.insert(cashierCart);
@@ -422,7 +468,7 @@ public class CartService {
return cashierCart;
} catch (Exception e) {
log.error("长链接错误 addCart{}", e.getMessage());
log.error("长链接错误 addCart {}", e.getMessage());
throw e;
}
}
@@ -453,9 +499,36 @@ public class CartService {
if (tbUserInfo == null) {
MsgException.throwException("生成订单失败");
}
TbShopUser tbShopUser = shopUserMapper.selectByUserIdAndShopId(userId, shopId);
boolean isVip= false;
if (tbShopUser != null && tbShopUser.getIsVip().equals((byte) 1)) {
isVip=true;
}
//校验 库存 耗材
for (int i = 0; i < array.size(); i++) {
JSONObject object = array.getJSONObject(i);
TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(object.toJSONString(), TbCashierCart.class);
if (cashierCart.getIsVip().equals((byte) 1)) {
if (isVip) {
int i1 = activateInRecordService.queryByVipIdAndShopIdAndProId(
Integer.valueOf(tbShopUser.getId()), Integer.valueOf(shopId), Integer.valueOf(cashierCart.getProductId()));
if (i1 < cashierCart.getTotalNumber()) {
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", "会员商品[" + cashierCart.getName() + "],可下单数量为" + i1);
jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, jsonObject.getString("userId"), true);
return;
}
} else {
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("status", "fail");
jsonObject1.put("msg", "非会员用户不可下单会员商品");
jsonObject1.put("data", new ArrayList<>());
PushToAppChannelHandlerAdapter.getInstance().AppSendInfo(jsonObject1.toString(), key, jsonObject.getString("userId"), true);
return;
}
}
TbProductSkuWithBLOBs tbProduct = productSkuMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getSkuId()));
TbProduct tbProduct1 = tbProductMapper.selectById(Integer.valueOf(tbProduct.getProductId()));
@@ -514,6 +587,7 @@ public class CartService {
orderDetail.setPackAmount(cashierCart.getPackFee());
orderDetail.setProductImg(cashierCart.getCoverImg());
orderDetail.setStatus("unpaid");
orderDetail.setIsVip(cashierCart.getIsVip());
if (StringUtils.isNotEmpty(cashierCart.getOrderId())) {
orderId = Integer.valueOf(cashierCart.getOrderId());
}
@@ -527,6 +601,8 @@ public class CartService {
TbShopTable shopTable = shopTableMapper.selectQRcode(jsonObject.getString("tableId"));
//生成订单
TbOrderInfo orderInfo = orderInfoMapper.selectByPrimaryKey(orderId);
//优惠卷
String isBuyYhq = "false";
String isuseYhq = "false";
if (jsonObject.containsKey("isYhq") && jsonObject.getString("isYhq").equals("1")) {
@@ -671,9 +747,30 @@ public class CartService {
orderDetail.setOrderId(orderId);
orderDetailMapper.insert(orderDetail);
}
List<TbActivateOutRecord> outRecords = new ArrayList<>();
for (int i = 0; i < array.size(); i++) {
JSONObject object = array.getJSONObject(i);
TbCashierCart cashierCart = JSONUtil.parseJSONStr2T(object.toJSONString(), TbCashierCart.class);
if (cashierCart.getIsVip().equals((byte) 1)) {
List<TbActivateInRecord> actInRecords = activateInRecordService.queryAllByVipIdAndShopIdAndProId(
Integer.valueOf(tbShopUser.getId()), Integer.valueOf(orderInfo.getShopId()), Integer.valueOf(cashierCart.getProductId()));
Integer totalNumber = cashierCart.getTotalNumber();
for (TbActivateInRecord actInRecord : actInRecords) {
if (totalNumber > 0) {
if (actInRecord.getOverNum() > totalNumber) {
TbActivateOutRecord outRecord = new TbActivateOutRecord(actInRecord.getId(), actInRecord.getProId(), totalNumber, orderInfo.getId().toString(), "create");
outRecords.add(outRecord);
activateInRecordService.updateOverNumById(actInRecord.getId(), actInRecord.getOverNum() - totalNumber);
break;
} else {
TbActivateOutRecord outRecord = new TbActivateOutRecord(actInRecord.getId(), actInRecord.getProId(), actInRecord.getOverNum(), orderInfo.getId().toString(), "create");
outRecords.add(outRecord);
activateInRecordService.updateOverNumById(actInRecord.getId(), 0);
totalNumber = totalNumber - actInRecord.getOverNum();
}
}
}
}
cashierCart.setUpdatedAt(System.currentTimeMillis());
cashierCart.setOrderId(orderId + "");
cashierCart.setStatus("closed");
@@ -683,7 +780,7 @@ public class CartService {
}
if(!CollectionUtils.isEmpty(outRecords)) outRecordMapper.insertBatch(outRecords);
// 发送mq消息
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("orderId", orderInfo.getId());
@@ -725,7 +822,7 @@ public class CartService {
} catch (Exception e) {
log.info("长链接错误 addCart{}", e.getMessage());
log.info("长链接错误 createOrder{}", e.getMessage());
e.printStackTrace();
}
}

View File

@@ -537,21 +537,23 @@ public class LoginService {
) {
return Result.fail("参数错误");
}
TbUserInfo userInfo = tbUserInfoMapper.selectByPrimaryKey(Integer.valueOf(userId));
boolean flag = validate(map.get("code").toString(), userInfo.getTelephone());
if (!flag) {
return Result.fail("验证码错误");
String phone = userInfo.getTelephone();
if (map.containsKey("vipId")) {
TbShopUser tbShopUser = tbShopUserMapper.selectByPrimaryKey(map.get("vipId").toString());
phone = tbShopUser.getTelephone();
}
if (StringUtils.isBlank(phone)) return Result.fail("设置密码失败,手机号获取为空");
boolean flag = validate(map.get("code").toString(), phone);
if (!flag) return Result.fail("验证码错误");
userInfo.setIsPwd("1");
userInfo.setPwd(MD5Utils.md5(map.get("pwd").toString()));
userInfo.setUpdatedAt(System.currentTimeMillis());
tbUserInfoMapper.updateByPrimaryKey(userInfo);
return Result.success(CodeEnum.SUCCESS);
}
@@ -581,11 +583,4 @@ public class LoginService {
return Result.success(CodeEnum.SUCCESS);
}
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(RandomUtil.randomNumbers(10));
}
}
}

View File

@@ -34,6 +34,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@@ -71,6 +72,10 @@ public class PayService {
@Autowired
TbShopPayTypeMapper tbShopPayTypeMapper;
@Autowired
private TbActivateProductMapper actProductMapper;
@Resource
private TbActivateInRecordMapper activateInRecordMapper;
@Autowired
private TbShopSongOrderMapper tbShopSongOrderMapper;
@@ -111,6 +116,10 @@ public class PayService {
@Autowired
TbShopUserFlowMapper tbShopUserFlowMapper;
@Resource
private TbActivateInRecordService activateInRecordService;
@Autowired
private TbActivateOutRecordMapper outRecordMapper;
@Value("${thirdPay.payType}")
private String thirdPayType;
@@ -393,7 +402,7 @@ public class PayService {
tbOrderDetailMapper.updateStatusByOrderId(Integer.valueOf(orderId), "closed");
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(Integer.valueOf(orderId), "closed");
outRecordMapper.updateByOrderIdAndStatus(orderInfo.getId(),"closed");
log.info("更新购物车:{}", cartCount);
JSONObject jsonObject = new JSONObject();
@@ -868,7 +877,7 @@ public class PayService {
//更新子单状态
tbOrderDetailMapper.updateStatusByOrderIdAndStatus(orderInfo.getId(), "closed");
outRecordMapper.updateByOrderIdAndStatus(orderInfo.getId(),"closed");
//修改主单状态
orderInfo.setStatus("closed");
orderInfo.setPayType("wx_lite");
@@ -922,7 +931,7 @@ public class PayService {
orderInfo.setPayOrderNo(payOrderNO);
orderInfo.setPayAmount(orderInfo.getOrderAmount());
tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo);
outRecordMapper.updateByOrderIdAndStatus(orderInfo.getId(),"closed");
JSONObject jsonObject = new JSONObject();
jsonObject.put("token", 0);
@@ -982,7 +991,12 @@ public class PayService {
public Result getActivate(String shopId, int page, int pageSize) {
PageHelper.startPage(page, pageSize);
List<TbActivate> list = tbActivateMapper.selectByShpopId(shopId);
List<TbActivate> list = tbActivateMapper.selectByShopId(shopId);
for (TbActivate tbActivate : list) {
if (tbActivate.getIsGiftPro() == 1) {
tbActivate.setGives(actProductMapper.queryProsByActivateId(tbActivate.getId()));
}
}
PageInfo pageInfo = new PageInfo(list);
return Result.success(CodeEnum.SUCCESS, pageInfo);
}
@@ -1079,42 +1093,53 @@ public class PayService {
flow.setBalance(tbShopUser.getAmount());
flow.setCreateTime(new Date());
tbShopUserFlowMapper.insert(flow);
TbActivate activate = tbActivateMapper.selectByAmount(tbShopUser.getShopId(), memberIn.getAmount());
//会员活动
giveActivate(tbShopUser,memberIn.getAmount(),flow.getId());
JSONObject jsonObject = new JSONObject();
jsonObject.put("shopId", memberIn.getShopId());
jsonObject.put("type", "wxMemberIn");
jsonObject.put("amount", memberIn.getAmount());
producer.putOrderCollect(jsonObject.toJSONString());
return "success";
}
public void giveActivate(TbShopUser tbShopUser, BigDecimal memAmount,Integer flowId){
TbActivate activate = tbActivateMapper.selectByAmount(tbShopUser.getShopId(), memAmount);
if (ObjectUtil.isNotEmpty(activate) && ObjectUtil.isNotNull(activate)) {
if (activate.getIsGiftPro() != null && activate.getIsGiftPro() == 1) {
List<TbActivateProduct> tbActivateProducts = actProductMapper.queryAllByActivateId(activate.getId());
List<TbActivateInRecord> actGiveRecords = new ArrayList<>();
for (TbActivateProduct actPro : tbActivateProducts) {
TbActivateInRecord record = new TbActivateInRecord(Integer.valueOf(tbShopUser.getId()), actPro.getProductId(), actPro.getNum(), Integer.valueOf(tbShopUser.getShopId()), activate.getId(),flowId);
actGiveRecords.add(record);
}
activateInRecordMapper.insertBatch(actGiveRecords);
}
BigDecimal amount = BigDecimal.ZERO;
switch (activate.getHandselType()) {
case "GD":
amount = activate.getHandselNum();
break;
case "RATIO":
amount = memberIn.getAmount().multiply(activate.getHandselNum());
amount = memAmount.multiply(activate.getHandselNum());
break;
}
tbShopUser.setAmount(tbShopUser.getAmount().add(amount));
tbShopUser.setUpdatedAt(System.currentTimeMillis());
tbShopUserMapper.updateByPrimaryKeySelective(tbShopUser);
flow = new TbShopUserFlow();
TbShopUserFlow flow = new TbShopUserFlow();
flow.setShopUserId(Integer.valueOf(tbShopUser.getId()));
flow.setBizCode("scanMemberAwardIn");
flow.setBizName("会员充值奖励");
flow.setBizName("充值活动奖励");
flow.setType("+");
flow.setAmount(amount);
flow.setBalance(tbShopUser.getAmount());
flow.setCreateTime(new Date());
tbShopUserFlowMapper.insert(flow);
JSONObject jsonObject = new JSONObject();
jsonObject.put("shopId", memberIn.getShopId());
jsonObject.put("type", "wxMemberIn");
jsonObject.put("amount", memberIn.getAmount());
producer.putOrderCollect(jsonObject.toJSONString());
}
return "success";
}
@@ -1161,36 +1186,8 @@ public class PayService {
flow.setBalance(tbShopUser.getAmount());
flow.setCreateTime(new Date());
tbShopUserFlowMapper.insert(flow);
TbActivate activate = tbActivateMapper.selectByAmount(tbShopUser.getShopId(), memberIn.getAmount());
if (ObjectUtil.isNotEmpty(activate) && ObjectUtil.isNotNull(activate)) {
BigDecimal amount = BigDecimal.ZERO;
switch (activate.getHandselType()) {
case "GD":
amount = activate.getHandselNum();
break;
case "RATIO":
amount = memberIn.getAmount().multiply(activate.getHandselNum());
break;
}
tbShopUser.setAmount(tbShopUser.getAmount().add(amount));
tbShopUser.setUpdatedAt(System.currentTimeMillis());
tbShopUserMapper.updateByPrimaryKeySelective(tbShopUser);
flow = new TbShopUserFlow();
flow.setShopUserId(Integer.valueOf(tbShopUser.getId()));
flow.setBizCode("scanMemberAwardIn");
flow.setType("+");
flow.setBizName("充值活动奖励");
flow.setAmount(amount);
flow.setBalance(tbShopUser.getAmount());
flow.setCreateTime(new Date());
tbShopUserFlowMapper.insert(flow);
}
//会员活动
giveActivate(tbShopUser,memberIn.getAmount(),flow.getId());
JSONObject jsonObject = new JSONObject();
jsonObject.put("shopId", memberIn.getShopId());
jsonObject.put("type", "wxMemberIn");

View File

@@ -75,6 +75,14 @@ public class ProductService {
@Autowired
private TbUserInfoMapper tbUserInfoMapper;
@Autowired
private TbProskuConMapper tbProskuConMapper;
@Autowired
private TbConsInfoMapper tbConsInfoMapper;
@Resource
private TbActivateInRecordService activateInRecordService;
public Result queryShopIdByTableCode(String userId, String openId, String code, String lat, String lng) {
if (StringUtils.isBlank(code)) return Result.fail("桌码信息为空");
if (StringUtils.isBlank(lat) || lat.equals("undefined")) {
@@ -136,32 +144,41 @@ public class ProductService {
return Result.success(CodeEnum.SUCCESS, concurrentMap);
}
public Result queryProduct(String shopId, String productGroupId) {
public Result queryProduct(String userId,String shopId, String productGroupId) {
ConcurrentMap<String, Object> concurrentMap = new ConcurrentHashMap<>();
Integer id = ObjectUtil.isNotEmpty(productGroupId) ? Integer.valueOf(productGroupId) : null;
//招牌菜
List<TbProduct> tbProducts = tbProductMapper.selectIsSpecialty(Integer.valueOf(shopId));
concurrentMap.put("hots", handleDate(tbProducts,true,1));
concurrentMap.put("hots", handleDate(tbProducts,true,1,false));
List<TbProductGroup> groupList = tbProductGroupMapper.selectByShopId(shopId, id);
if (ObjectUtil.isNotEmpty(groupList) && groupList.size() > 0) {
//热销
TbProductGroup hot = new TbProductGroup();
hot.setName("热销");
List<TbProduct> hots = tbProductMapper.selectHot(shopId);
hot.setProducts(handleDate(hots,true,1));
hot.setProducts(handleDate(hots,true,1,false));
//商品
groupList.parallelStream().forEach(g -> {
if (g.getUseTime()==1) g.setIsSale(getIsSale(g.getSaleStartTime(),g.getSaleEndTime()));
String in = g.getProductIds().substring(1, g.getProductIds().length() - 1);
if (ObjectUtil.isNotEmpty(in) && ObjectUtil.isNotNull(in)) {
// List<TbProduct> products = tbProductMapper.selectByIdIn(in);
List<TbProduct> products = tbProductMapper.selectByIdInAndCheck(in);
g.setProducts(handleDate(products,false,g.getIsSale()));
g.setProducts(handleDate(products,false,g.getIsSale(),false));
} else {
g.setProducts(new ArrayList<>());
}
});
groupList.sort(Comparator.comparingInt(TbProductGroup::getIsSale).reversed());
TbShopUser tbShopUser = tbShopUserMapper.selectByUserIdAndShopId(userId, shopId);
if (tbShopUser != null) {
TbProductGroup vipProGroup = new TbProductGroup();
vipProGroup.setName("会员商品");
List<TbProduct> vipPros = activateInRecordService.queryByVipIdAndShopId(Integer.valueOf(tbShopUser.getId()), Integer.valueOf(shopId));
if(!CollectionUtils.isEmpty(vipPros)){
vipProGroup.setProducts(handleDate(vipPros, true, 1, true));
groupList.add(0, vipProGroup);
}
}
groupList.add(0, hot);
concurrentMap.put("productInfo", groupList);
}
@@ -216,7 +233,8 @@ public class ProductService {
// 重组有效规格数据
String tagSnap = skuResult != null ? skuResult.getTagSnap() : null;
List<TbProductSku> tbProductSkus = tbProductSkuMapper.selectGroundingByProId(querySpecDTO.getProductId());
// List<TbProductSku> tbProductSkus = tbProductSkuMapper.selectGroundingByProId(querySpecDTO.getProductId());
List<TbProductSku> tbProductSkus = tbProductSkuMapper.selectSku(String.valueOf(querySpecDTO.getProductId()));
JSONArray finalSnap = new JSONArray();
// if (tagSnap != null) {
@@ -298,11 +316,17 @@ public class ProductService {
}
ArrayList<HashMap<String, Object>> specList = new ArrayList<>();
HashMap<String, TbProductSku> unGroundingMap = new HashMap<>();
tbProductSkus.forEach(item -> {
HashMap<String, Object> itemMap = new HashMap<>();
itemMap.put("specSnap", item.getSpecSnap());
itemMap.put("skuId", item.getId());
specList.add(itemMap);
if (item.getIsGrounding() == 1) {
HashMap<String, Object> itemMap = new HashMap<>();
itemMap.put("specSnap", item.getSpecSnap());
itemMap.put("skuId", item.getId());
itemMap.put("info", item);
specList.add(itemMap);
}else {
unGroundingMap.put(item.getSpecSnap(), item);
}
});
@@ -312,6 +336,14 @@ public class ProductService {
for (HashMap<String, Object> spec : specList) {
if (res.equals(spec.get("specSnap").toString())) {
spec.put("isGrounding", true);
TbProductSku sku = (TbProductSku) spec.get("info");
if (sku != null) {
tbProduct.setIsPauseSale(tbProduct.getIsDistribute() == 1 ? tbProduct.getIsPauseSale() : sku.getIsPauseSale().byteValue());
checkPauseSale(tbProduct, new ArrayList<>(Collections.singletonList(sku)), true);
spec.put("isPauseSale", tbProduct.getIsPauseSale());
}else {
spec.put("isPauseSale", 1);
}
found = true;
break;
}
@@ -321,6 +353,14 @@ public class ProductService {
itemMap.put("specSnap", res);
itemMap.put("skuId", null);
itemMap.put("isGrounding", false);
TbProductSku sku = unGroundingMap.get("specSnap");
if (sku != null) {
tbProduct.setIsPauseSale(tbProduct.getIsDistribute() == 1 ? tbProduct.getIsPauseSale() : sku.getIsPauseSale().byteValue());
checkPauseSale(tbProduct, Collections.singletonList(sku), true);
itemMap.put("isPauseSale", tbProduct.getIsPauseSale());
}else {
itemMap.put("isPauseSale", 1);
}
otherVal.add(itemMap);
}
}
@@ -347,7 +387,7 @@ public class ProductService {
* @param check 是否校验可售
* @return
*/
public List<TbProduct> handleDate(List<TbProduct> products,boolean check,Integer isSale){
public List<TbProduct> handleDate(List<TbProduct> products,boolean check,Integer isSale,boolean isVip){
if (!CollectionUtils.isEmpty(products)) {
products.parallelStream().forEach(it -> {
if(check){
@@ -369,9 +409,9 @@ public class ProductService {
it.setCartNumber("0");
List<TbProductSku> tbProductSkus = tbProductSkuMapper.selectGroundingByProId(it.getId());
TbProductSkuResult skuResult = tbProductSkuResultMapper.selectByPrimaryKey(it.getId());
//判断库存及耗材
checkPauseSale(it,tbProductSkus, false);
// 上下架对应的sku
// HashSet<String> specSet = new HashSet<>();
AtomicDouble sum = new AtomicDouble(0.0);
BigDecimal lowerPrice = null;
for (TbProductSku item : tbProductSkus) {
@@ -381,11 +421,6 @@ public class ProductService {
if (lowerPrice == null || lowerPrice.compareTo(item.getSalePrice()) > 0) {
lowerPrice = item.getSalePrice();
}
String specSnap = item.getSpecSnap();
// if (specSnap != null) {
// specSet.addAll(Arrays.asList(specSnap.split(",")));
// }
}
//销量
it.setStockNumber(sum.intValue());
@@ -394,33 +429,11 @@ public class ProductService {
}
//售价
it.setLowPrice(lowerPrice);
// String tagSnap = skuResult != null ? skuResult.getTagSnap() : null;
// if (tagSnap != null) {
// JSONArray tagSnaps = JSONObject.parseArray(tagSnap);
// JSONObject snapJSON;
// JSONArray finalSnap = new JSONArray();
// for (Object snap : tagSnaps) {
// snapJSON = (JSONObject) snap;
// String values = snapJSON.getString("value");
// String finalValues = "";
// if (StrUtil.isNotBlank(values)) {
// String[] valueList = values.split(",");
// for (String value : valueList) {
// if (specSet.contains(value)) {
// finalValues = finalValues + (value) + ",";
// }
// }
// if (StrUtil.isNotBlank(finalValues)) {
// finalValues = StrUtil.removeSuffix(finalValues, ",");
// snapJSON.put("value", finalValues);
// finalSnap.add(snapJSON);
// }
// }
// }
// //sku Result
// skuResult.setTagSnap(finalSnap.toJSONString());
// }
it.setProductSkuResult(skuResult);
if (isVip) {
it.setLowPrice(BigDecimal.ZERO);
it.setIsVip(Byte.parseByte("1"));
}
});
return products;
}else {
@@ -428,9 +441,63 @@ public class ProductService {
}
}
public void checkPauseSale(TbProduct tbProduct, List<TbProductSku> skus, boolean isSingle) {
if (tbProduct.getIsStock() == 1) {//库存开关 1开启
if (Integer.valueOf(tbProduct.getIsDistribute()).equals(1)) {//共享库存 1开启
if (tbProduct.getStockNumber() != null && tbProduct.getStockNumber() <= 0) {
tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停
return;
}
public Result queryProductSku(String code, String shopId, String productId, String spec_tag) {
if (ObjectUtil.isEmpty(shopId) || ObjectUtil.isEmpty(productId)) {
if (isSingle && tbProduct.getIsPauseSale() == 1) {
return;
}
} else {
if (isSingle && !skus.stream().filter(res -> res.getIsPauseSale().equals(1)).collect(Collectors.toList()).isEmpty()) {
tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停
return;
}
if (!tbProduct.getTypeEnum().equals("sku")) {
if (skus.stream().anyMatch(sku -> sku.getStockNumber() != null && sku.getStockNumber() <= 0)){
tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停
return;
}
} else {
skus.removeIf(sku -> sku.getStockNumber() != null && sku.getStockNumber() <= 0);
if (CollectionUtils.isEmpty(skus)) {
tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停
return;
}
}
}
Iterator<TbProductSku> iterator = skus.iterator();
while (iterator.hasNext()) {
TbProductSku tbProductSku = iterator.next();
List<TbProskuCon> proskuConList = tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(Integer.valueOf(tbProductSku.getId()), Integer.valueOf(tbProductSku.getShopId()), Integer.valueOf(tbProductSku.getProductId()));
if (Objects.nonNull(proskuConList) && proskuConList.size() > 0) {
for (TbProskuCon proskuCon : proskuConList) {
if ("1".equals(proskuCon.getStatus())) {
TbConsInfo consInfo = tbConsInfoMapper.selectByPrimaryKey(proskuCon.getConInfoId());
if ("1".equals(consInfo.getIsCheck())) {
if (N.gt(proskuCon.getSurplusStock(), consInfo.getStockNumber().abs().subtract(consInfo.getStockConsume().abs()))) {
iterator.remove();
break;
}
}
}
}
}
}
if (CollectionUtils.isEmpty(skus)) {
tbProduct.setIsPauseSale(Byte.parseByte("1"));//售罄 1暂停
}
}
}
public Result queryProductSku(String code, String shopId, String productId, String spec_tag,String isVip) {
if (ObjectUtil.isEmpty(shopId) || ObjectUtil.isEmpty(productId) || StringUtils.isEmpty(isVip)|| isVip.equals("undefined") ) {
return Result.fail("参数错误");
}
TbProductSkuWithBLOBs tbProductSkuWithBLOBs = tbProductSkuMapper.selectByShopIdAndProductIdAndSpec(shopId, productId, spec_tag);
@@ -443,7 +510,7 @@ public class ProductService {
tbProductSkuWithBLOBs.setId(null);
}else {
if (StringUtils.isNotBlank(code)) {
Integer sum = tbProductMapper.selectByCodeAndSkuId(code, tbProductSkuWithBLOBs.getId(), shopId);
Integer sum = tbProductMapper.selectByCodeAndSkuId(code, tbProductSkuWithBLOBs.getId(), shopId,isVip);
tbProductSkuWithBLOBs.setNumber(sum);
}
}

View File

@@ -0,0 +1,56 @@
package com.chaozhanggui.system.cashierservice.service;
import com.chaozhanggui.system.cashierservice.entity.TbActivateInRecord;
import com.chaozhanggui.system.cashierservice.entity.TbProduct;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import java.util.List;
/**
* 活动商品赠送表(TbActivateInRecord)表服务接口
*
* @author ww
* @since 2024-08-22 11:13:40
*/
public interface TbActivateInRecordService {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TbActivateInRecord queryById(Integer id);
List<TbProduct> queryByVipIdAndShopId(Integer vipUserId, Integer shopId);
int queryByVipIdAndShopIdAndProId(Integer vipUserId, Integer shopId,Integer productId);
List<TbActivateInRecord> queryAllByVipIdAndShopIdAndProId(Integer vipUserId, Integer shopId,Integer productId);
/**
* 新增数据
*
* @param tbActivateInRecord 实例对象
* @return 实例对象
*/
TbActivateInRecord insert(TbActivateInRecord tbActivateInRecord);
/**
* 修改数据
*
* @param tbActivateInRecord 实例对象
* @return 实例对象
*/
TbActivateInRecord update(TbActivateInRecord tbActivateInRecord);
int updateOverNumById(Integer id,Integer overNum);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean deleteById(Integer id);
}

View File

@@ -0,0 +1,45 @@
package com.chaozhanggui.system.cashierservice.service;
import com.chaozhanggui.system.cashierservice.entity.TbActivateOutRecord;
/**
* 活动赠送商品使用记录表(TbActivateOutRecord)表服务接口
*
* @author ww
* @since 2024-08-22 11:21:56
*/
public interface TbActivateOutRecordService {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TbActivateOutRecord queryById(Integer id);
/**
* 新增数据
*
* @param tbActivateOutRecord 实例对象
* @return 实例对象
*/
TbActivateOutRecord insert(TbActivateOutRecord tbActivateOutRecord);
/**
* 修改数据
*
* @param tbActivateOutRecord 实例对象
* @return 实例对象
*/
TbActivateOutRecord update(TbActivateOutRecord tbActivateOutRecord);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean deleteById(Integer id);
}

View File

@@ -0,0 +1,46 @@
package com.chaozhanggui.system.cashierservice.service;
import com.chaozhanggui.system.cashierservice.entity.TbActivateProduct;
/**
* 活动赠送商品表(TbActivateProduct)表服务接口
*
* @author ww
* @since 2024-08-20 15:15:01
*/
public interface TbActivateProductService {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
TbActivateProduct queryById(Integer id);
/**
* 新增数据
*
* @param tbActivateProduct 实例对象
* @return 实例对象
*/
TbActivateProduct insert(TbActivateProduct tbActivateProduct);
/**
* 修改数据
*
* @param tbActivateProduct 实例对象
* @return 实例对象
*/
TbActivateProduct update(TbActivateProduct tbActivateProduct);
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
boolean deleteById(Integer id);
}

View File

@@ -0,0 +1,20 @@
package com.chaozhanggui.system.cashierservice.service;
import com.chaozhanggui.system.cashierservice.entity.TbShopAd;
import java.util.List;
/**
* (TbShopAd)表服务接口
*
* @author GYJ
* @since 2024-08-19 14:25:17
*/
public interface TbShopAdService {
/**
* 分页查询
*
* @return 查询结果
*/
List<TbShopAd> shopAdList(Integer shopId);
}

View File

@@ -1,5 +1,6 @@
package com.chaozhanggui.system.cashierservice.service;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
@@ -21,6 +22,7 @@ import com.chaozhanggui.system.cashierservice.wxUtil.WxAccountUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.core.io.Resource;
@@ -271,25 +273,46 @@ public class UserService {
}
public Result openMember(OpenMemberVo memberVo) {
TbUserInfo userInfo = new TbUserInfo();
userInfo.setId(memberVo.getId());
userInfo.setHeadImg(memberVo.getHeadImg());
userInfo.setNickName(memberVo.getNickName());
userInfo.setTelephone(memberVo.getTelephone());
userInfo.setBirthDay(memberVo.getBirthDay());
userInfoMapper.updateByPrimaryKeySelective(userInfo);
List<TbShopUser> tbShopUsers = shopUserMapper.selectAllByUserId(memberVo.getId().toString());
for (TbShopUser tbShopUser : tbShopUsers) {
tbShopUser.setTelephone(memberVo.getTelephone());
shopUserMapper.updateByPrimaryKey(tbShopUser);
}
TbShopUser tbShopUser = shopUserMapper.selectByUserIdAndShopId(memberVo.getId().toString(), memberVo.getShopId().toString());
tbShopUser.setName(memberVo.getNickName());
tbShopUser.setHeadImg(memberVo.getHeadImg());
tbShopUser.setTelephone(memberVo.getTelephone());
tbShopUser.setBirthDay(memberVo.getBirthDay());
tbShopUser.setIsVip(Byte.parseByte("1"));
shopUserMapper.updateByPrimaryKey(tbShopUser);
if(tbShopUser!=null){
tbShopUser.setName(StringUtils.isNotBlank(memberVo.getNickName())?memberVo.getNickName():null);
tbShopUser.setHeadImg(StringUtils.isNotBlank(memberVo.getHeadImg())?memberVo.getHeadImg():null);
tbShopUser.setTelephone(memberVo.getTelephone());
tbShopUser.setBirthDay(StringUtils.isNotBlank(memberVo.getBirthDay())?memberVo.getBirthDay():null);
tbShopUser.setIsVip(Byte.parseByte("1"));
shopUserMapper.updateByPrimaryKeySelective(tbShopUser);
}else {
TbUserInfo tbUserInfo = userInfoMapper.selectByPrimaryKey(memberVo.getId());
tbShopUser = new TbShopUser();
tbShopUser.setName(StringUtils.isNotBlank(memberVo.getNickName())?memberVo.getNickName():null);
tbShopUser.setSex(Byte.parseByte("1"));
tbShopUser.setBirthDay(StringUtils.isNotBlank(memberVo.getBirthDay())?memberVo.getBirthDay():null);
tbShopUser.setLevel(Byte.parseByte("1"));
String dynamicCode = RandomUtil.randomNumbers(8);
tbShopUser.setCode(dynamicCode);
tbShopUser.setTelephone(memberVo.getTelephone());
tbShopUser.setAmount(BigDecimal.ZERO);
tbShopUser.setIsVip(Byte.parseByte("1"));
tbShopUser.setCreditAmount(BigDecimal.ZERO);
tbShopUser.setConsumeAmount(BigDecimal.ZERO);
tbShopUser.setConsumeNumber(0);
tbShopUser.setLevelConsume(BigDecimal.ZERO);
tbShopUser.setStatus(Byte.parseByte("1"));
tbShopUser.setShopId(memberVo.getShopId().toString());
tbShopUser.setUserId(tbUserInfo.getId().toString());
tbShopUser.setMiniOpenId(tbUserInfo.getMiniAppOpenId());
tbShopUser.setCreatedAt(System.currentTimeMillis());
tbShopUser.setUpdatedAt(System.currentTimeMillis());
shopUserMapper.insertSelective(tbShopUser);
}
return Result.success(CodeEnum.SUCCESS);
}
public Result upVipPhont(OpenMemberVo memberVo) {
TbShopUser shopUser = new TbShopUser();
shopUser.setId(memberVo.getId().toString());
shopUser.setTelephone(memberVo.getTelephone());
shopUserMapper.updateByPrimaryKeySelective(shopUser);
return Result.success(CodeEnum.SUCCESS);
}
}

View File

@@ -0,0 +1,91 @@
package com.chaozhanggui.system.cashierservice.service.impl;
import com.chaozhanggui.system.cashierservice.dao.TbActivateInRecordMapper;
import com.chaozhanggui.system.cashierservice.entity.TbActivateInRecord;
import com.chaozhanggui.system.cashierservice.entity.TbProduct;
import com.chaozhanggui.system.cashierservice.service.TbActivateInRecordService;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* 活动商品赠送表(TbActivateInRecord)表服务实现类
*
* @author ww
* @since 2024-08-22 11:13:40
*/
@Service
@Primary
public class TbActivateInRecordServiceImpl implements TbActivateInRecordService {
@Resource
private TbActivateInRecordMapper tbActivateInRecordMapper;
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
public TbActivateInRecord queryById(Integer id) {
return this.tbActivateInRecordMapper.queryById(id);
}
@Override
public List<TbProduct> queryByVipIdAndShopId(Integer vipUserId, Integer shopId) {
return tbActivateInRecordMapper.queryByVipIdAndShopId(vipUserId, shopId);
}
@Override
public int queryByVipIdAndShopIdAndProId(Integer vipUserId, Integer shopId,Integer productId){
return tbActivateInRecordMapper.queryByVipIdAndShopIdAndProId(vipUserId,shopId,productId);
}
@Override
public List<TbActivateInRecord> queryAllByVipIdAndShopIdAndProId(Integer vipUserId, Integer shopId,Integer productId){
return tbActivateInRecordMapper.queryAllByVipIdAndShopIdAndProId(vipUserId,shopId,productId);
}
/**
* 新增数据
*
* @param tbActivateInRecord 实例对象
* @return 实例对象
*/
@Override
public TbActivateInRecord insert(TbActivateInRecord tbActivateInRecord) {
this.tbActivateInRecordMapper.insert(tbActivateInRecord);
return tbActivateInRecord;
}
/**
* 修改数据
*
* @param tbActivateInRecord 实例对象
* @return 实例对象
*/
@Override
public TbActivateInRecord update(TbActivateInRecord tbActivateInRecord) {
this.tbActivateInRecordMapper.update(tbActivateInRecord);
return this.queryById(tbActivateInRecord.getId());
}
@Override
public int updateOverNumById(Integer id,Integer overNum){
return tbActivateInRecordMapper.updateOverNumById(id,overNum);
}
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Integer id) {
return this.tbActivateInRecordMapper.deleteById(id) > 0;
}
}

View File

@@ -0,0 +1,69 @@
package com.chaozhanggui.system.cashierservice.service.impl;
import com.chaozhanggui.system.cashierservice.entity.TbActivateOutRecord;
import com.chaozhanggui.system.cashierservice.dao.TbActivateOutRecordMapper;
import com.chaozhanggui.system.cashierservice.service.TbActivateOutRecordService;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 活动赠送商品使用记录表(TbActivateOutRecord)表服务实现类
*
* @author ww
* @since 2024-08-22 11:21:56
*/
@Service
@Primary
public class TbActivateOutRecordServiceImpl implements TbActivateOutRecordService {
@Resource
private TbActivateOutRecordMapper tbActivateOutRecordMapper;
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
public TbActivateOutRecord queryById(Integer id) {
return this.tbActivateOutRecordMapper.queryById(id);
}
/**
* 新增数据
*
* @param tbActivateOutRecord 实例对象
* @return 实例对象
*/
@Override
public TbActivateOutRecord insert(TbActivateOutRecord tbActivateOutRecord) {
this.tbActivateOutRecordMapper.insert(tbActivateOutRecord);
return tbActivateOutRecord;
}
/**
* 修改数据
*
* @param tbActivateOutRecord 实例对象
* @return 实例对象
*/
@Override
public TbActivateOutRecord update(TbActivateOutRecord tbActivateOutRecord) {
this.tbActivateOutRecordMapper.update(tbActivateOutRecord);
return this.queryById(tbActivateOutRecord.getId());
}
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Integer id) {
return this.tbActivateOutRecordMapper.deleteById(id) > 0;
}
}

View File

@@ -0,0 +1,69 @@
package com.chaozhanggui.system.cashierservice.service.impl;
import com.chaozhanggui.system.cashierservice.dao.TbActivateProductMapper;
import com.chaozhanggui.system.cashierservice.entity.TbActivateProduct;
import com.chaozhanggui.system.cashierservice.service.TbActivateProductService;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 活动赠送商品表(TbActivateProduct)表服务实现类
*
* @author ww
* @since 2024-08-20 15:15:02
*/
@Service
@Primary
public class TbActivateProductServiceImpl implements TbActivateProductService {
@Resource
private TbActivateProductMapper tbActivateProductMapper;
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
public TbActivateProduct queryById(Integer id) {
return this.tbActivateProductMapper.queryById(id);
}
/**
* 新增数据
*
* @param tbActivateProduct 实例对象
* @return 实例对象
*/
@Override
public TbActivateProduct insert(TbActivateProduct tbActivateProduct) {
this.tbActivateProductMapper.insert(tbActivateProduct);
return tbActivateProduct;
}
/**
* 修改数据
*
* @param tbActivateProduct 实例对象
* @return 实例对象
*/
@Override
public TbActivateProduct update(TbActivateProduct tbActivateProduct) {
this.tbActivateProductMapper.update(tbActivateProduct);
return this.queryById(tbActivateProduct.getId());
}
/**
* 通过主键删除数据
*
* @param id 主键
* @return 是否成功
*/
@Override
public boolean deleteById(Integer id) {
return this.tbActivateProductMapper.deleteById(id) > 0;
}
}

View File

@@ -0,0 +1,27 @@
package com.chaozhanggui.system.cashierservice.service.impl;
import com.chaozhanggui.system.cashierservice.dao.TbShopAdDao;
import com.chaozhanggui.system.cashierservice.entity.TbShopAd;
import com.chaozhanggui.system.cashierservice.service.TbShopAdService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* (TbShopAd)表服务实现类
*
* @author GYJ
* @since 2024-08-19 14:25:17
*/
@Service
public class TbShopAdServiceImpl implements TbShopAdService {
@Autowired
private TbShopAdDao tbShopAdDao;
@Override
public List<TbShopAd> shopAdList(Integer shopId) {
System.out.println("shopId = " + shopId);
return tbShopAdDao.shopAdList(shopId);
}
}

View File

@@ -0,0 +1,172 @@
<?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.chaozhanggui.system.cashierservice.dao.TbActivateInRecordMapper">
<resultMap type="com.chaozhanggui.system.cashierservice.entity.TbActivateInRecord" id="TbActivateInRecordMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="vipUserId" column="vip_user_id" jdbcType="INTEGER"/>
<result property="proId" column="pro_id" jdbcType="INTEGER"/>
<result property="num" column="num" jdbcType="INTEGER"/>
<result property="overNum" column="over_num" jdbcType="INTEGER"/>
<result property="shopId" column="shop_id" jdbcType="INTEGER"/>
<result property="sourceActId" column="source_act_id" jdbcType="INTEGER"/>
<result property="sourceFlowId" column="source_flow_id" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id
, vip_user_id, pro_id, num, over_num, shop_id, source_act_id, source_flow_id, create_time, update_time </sql>
<!--查询单个-->
<select id="queryById" resultMap="TbActivateInRecordMap">
select
<include refid="Base_Column_List"/>
from tb_activate_in_record
where id = #{id}
</select>
<select id="queryByVipIdAndShopId" resultType="com.chaozhanggui.system.cashierservice.entity.TbProduct">
SELECT
tb_product.*, sum(tb_activate_in_record.over_num) as limitNumber
FROM
tb_activate_in_record
LEFT JOIN tb_product ON tb_activate_in_record.pro_id = tb_product.id
WHERE
vip_user_id = #{vipUserId} and tb_activate_in_record.shop_id = #{shopId}
group by tb_activate_in_record.pro_id
</select>
<select id="queryByVipIdAndShopIdAndProId" resultType="INTEGER">
SELECT
sum(tb_activate_in_record.num)
FROM
tb_activate_in_record
WHERE
vip_user_id = #{vipUserId} and shop_id = #{shopId} and pro_id = #{productId}
</select>
<select id="queryAllByVipIdAndShopIdAndProId" resultMap="TbActivateInRecordMap">
select
<include refid="Base_Column_List"/>
from tb_activate_in_record
WHERE
vip_user_id = #{vipUserId}
and shop_id = #{shopId}
and pro_id = #{productId}
and over_num > 0
order by create_time
</select>
<!--查询指定行数据-->
<select id="queryAll" resultMap="TbActivateInRecordMap">
select
<include refid="Base_Column_List"/>
from tb_activate_in_record
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="vipUserId != null">
and vip_user_id = #{vipUserId}
</if>
<if test="proId != null">
and pro_id = #{proId}
</if>
<if test="num != null">
and num = #{num}
</if>
<if test="overNum != null">
and over_num = #{overNum}
</if>
<if test="shopId != null">
and shop_id = #{shopId}
</if>
<if test="sourceActId != null">
and source_act_id = #{sourceActId}
</if>
<if test="sourceFlowId != null">
and source_flow_id = #{sourceFlowId}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into tb_activate_in_record(vip_user_id, pro_id, num, over_num, shop_id, source_act_id, source_flow_id,
create_time, update_time)
values (#{vipUserId}, #{proId}, #{num}, #{overNum}, #{shopId}, #{sourceActId}, #{sourceFlowId}, #{createTime},
#{updateTime})
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into tb_activate_in_record(vip_user_id, pro_id, num, over_num, shop_id, source_act_id, source_flow_id,
create_time, update_time)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.vipUserId}, #{entity.proId}, #{entity.num}, #{entity.overNum}, #{entity.shopId},
#{entity.sourceActId}, #{entity.sourceFlowId}, #{entity.createTime}, #{entity.updateTime})
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
update tb_activate_in_record
<set>
<if test="vipUserId != null">
vip_user_id = #{vipUserId},
</if>
<if test="proId != null">
pro_id = #{proId},
</if>
<if test="num != null">
num = #{num},
</if>
<if test="overNum != null">
over_num = #{overNum},
</if>
<if test="shopId != null">
shop_id = #{shopId},
</if>
<if test="sourceActId != null">
source_act_id = #{sourceActId},
</if>
<if test="sourceFlowId != null">
source_flow_id = #{sourceFlowId},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
where id = #{id}
</update>
<update id="updateOverNumById">
update tb_activate_in_record
set
over_num = #{overNum}
where id = #{id};
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete
from tb_activate_in_record
where id = #{id}
</delete>
</mapper>

View File

@@ -9,9 +9,10 @@
<result column="handsel_num" jdbcType="DECIMAL" property="handselNum" />
<result column="handsel_type" jdbcType="VARCHAR" property="handselType" />
<result column="is_del" jdbcType="VARCHAR" property="isDel" />
<result column="is_gift_pro" jdbcType="INTEGER" property="isGiftPro" />
</resultMap>
<sql id="Base_Column_List">
id, shop_id, min_num, max_num, handsel_num, handsel_type, is_del
id, shop_id, min_num, max_num, handsel_num, handsel_type, is_del,is_gift_pro
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
@@ -116,10 +117,16 @@
</update>
<select id="selectByAmount" resultMap="BaseResultMap">
select * from tb_activate where shop_id=#{shopId} and is_del=0 and min_num &lt;= #{amount} and max_num &gt;= #{amount}
</select>
select *
from tb_activate
where shop_id = #{shopId}
and is_del = 0
and min_num &lt;= #{amount}
and max_num &gt;= #{amount}
order by max_num desc limit 1
</select>
<select id="selectByShpopId" resultMap="BaseResultMap">
<select id="selectByShopId" resultMap="BaseResultMap">
select * from tb_activate where shop_id=#{shopId}
</select>
</mapper>

View File

@@ -0,0 +1,130 @@
<?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.chaozhanggui.system.cashierservice.dao.TbActivateOutRecordMapper">
<resultMap type="com.chaozhanggui.system.cashierservice.entity.TbActivateOutRecord" id="TbActivateOutRecordMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="giveId" column="give_id" jdbcType="INTEGER"/>
<result property="proId" column="pro_id" jdbcType="INTEGER"/>
<result property="useNum" column="use_num" jdbcType="INTEGER"/>
<result property="refNum" column="ref_num" jdbcType="INTEGER"/>
<result property="orderId" column="order_id" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id
, give_id, pro_id, use_num, ref_num, order_id,status, create_time, update_time </sql>
<!--查询单个-->
<select id="queryById" resultMap="TbActivateOutRecordMap">
select
<include refid="Base_Column_List"/>
from tb_activate_out_record
where id = #{id}
</select>
<!--查询指定行数据-->
<select id="queryAll" resultMap="TbActivateOutRecordMap">
select
<include refid="Base_Column_List"/>
from tb_activate_out_record
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="giveId != null">
and give_id = #{giveId}
</if>
<if test="proId != null">
and pro_id = #{proId}
</if>
<if test="useNum != null">
and use_num = #{useNum}
</if>
<if test="refNum != null">
and ref_num = #{refNum}
</if>
<if test="orderId != null and orderId != ''">
and order_id = #{orderId}
</if>
<if test="status != null and status != ''">
and status = #{status}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into tb_activate_out_record(give_id, pro_id, use_num, ref_num, order_id, status, create_time, update_time)
values (#{giveId}, #{proId}, #{useNum}, #{refNum}, #{orderId}, #{status} #{createTime}, #{updateTime})
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into tb_activate_out_record(give_id, pro_id, use_num, ref_num, order_id, status, create_time, update_time)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.giveId}, #{entity.proId}, #{entity.useNum}, #{entity.refNum}, #{entity.orderId},
#{entity.status}, #{entity.createTime}, #{entity.updateTime})
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
update tb_activate_out_record
<set>
<if test="giveId != null">
give_id = #{giveId},
</if>
<if test="proId != null">
pro_id = #{proId},
</if>
<if test="useNum != null">
use_num = #{useNum},
</if>
<if test="refNum != null">
ref_num = #{refNum},
</if>
<if test="orderId != null and orderId != ''">
order_id = #{orderId},
</if>
<if test="status != null and status != ''">
status = #{status},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
where id = #{id}
</update>
<update id="updateByOrderIdAndStatus">
update tb_activate_out_record
set
status = 'closed'
where order_id = #{orderId}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete
from tb_activate_out_record
where id = #{id}
</delete>
</mapper>

View File

@@ -0,0 +1,113 @@
<?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.chaozhanggui.system.cashierservice.dao.TbActivateProductMapper">
<resultMap type="com.chaozhanggui.system.cashierservice.entity.TbActivateProduct" id="TbActivateProductMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="activateId" column="activate_id" jdbcType="INTEGER"/>
<result property="productId" column="product_id" jdbcType="INTEGER"/>
<result property="num" column="num" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id, activate_id, product_id, num, create_time, update_time </sql>
<!--查询单个-->
<select id="queryById" resultMap="TbActivateProductMap">
select
<include refid="Base_Column_List"/>
from tb_activate_product
where id = #{id}
</select>
<!--查询指定行数据-->
<select id="queryAll" resultMap="TbActivateProductMap">
select
<include refid="Base_Column_List"/>
from tb_activate_product
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="activateId != null">
and activate_id = #{activateId}
</if>
<if test="productId != null">
and product_id = #{productId}
</if>
<if test="num != null">
and num = #{num}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
</where>
</select>
<select id="queryAllByActivateId" resultMap="TbActivateProductMap">
select
<include refid="Base_Column_List"/>
from tb_activate_product
where
activate_id = #{activateId}
</select>
<select id="queryProsByActivateId" resultType="java.lang.String">
select CONCAT(tb_product.name, '*', SUM(tb_activate_product.num))
from tb_activate_product
LEFT JOIN tb_product ON tb_activate_product.product_id = tb_product.id
where activate_id = #{activateId}
group by tb_activate_product.product_id
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="id" useGeneratedKeys="true">
insert into tb_activate_product(activate_id, product_id, num, create_time, update_time)
values (#{activateId}, #{productId}, #{num}, #{createTime}, #{updateTime})
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into tb_activate_product(activate_id, product_id, num, create_time, update_time)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.activateId}, #{entity.productId}, #{entity.num}, #{entity.createTime}, #{entity.updateTime})
</foreach>
</insert>
<!--通过主键修改数据-->
<update id="update">
update tb_activate_product
<set>
<if test="activateId != null">
activate_id = #{activateId},
</if>
<if test="productId != null">
product_id = #{productId},
</if>
<if test="num != null">
num = #{num},
</if>
<if test="createTime != null">
create_time = #{createTime},
</if>
<if test="updateTime != null">
update_time = #{updateTime},
</if>
</set>
where id = #{id}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from tb_activate_product where id = #{id}
</delete>
</mapper>

View File

@@ -33,11 +33,12 @@
<result column="pending_at" jdbcType="BIGINT" property="pendingAt"/>
<result column="uuid" jdbcType="VARCHAR" property="uuid"/>
<result column="sku_name" jdbcType="VARCHAR" property="skuName"/>
<result column="is_vip" jdbcType="TINYINT" property="isVip" />
</resultMap>
<sql id="Base_Column_List">
id, master_id, order_id, ref_order_id, total_amount, product_id, cover_img, is_sku,pack_fee,is_pack,is_gift,pending_at,
sku_id, name, sale_price, number, total_number, refund_number, category_id, status,
type, merchant_id, shop_id, created_at, updated_at, user_id, table_id,pack_fee,trade_day,uuid,sku_name
type, merchant_id, shop_id, created_at, updated_at, user_id, table_id,pack_fee,trade_day,uuid,sku_name,is_vip
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
@@ -96,25 +97,28 @@
<delete id="deleteBymasterId">
delete from tb_cashier_cart where master_id = #{masterId} and shop_id = #{shopId} and status = #{status} and trade_day = #{day}
</delete>
<insert id="insert" parameterType="com.chaozhanggui.system.cashierservice.entity.TbCashierCart" useGeneratedKeys="true" keyProperty="id">
insert into tb_cashier_cart (id, master_id, order_id,
ref_order_id, total_amount, product_id,
cover_img, is_sku, sku_id,
name, sale_price, number,
total_number, refund_number, category_id,
status, type, merchant_id,
shop_id, created_at, updated_at, pack_fee,trade_day,is_pack,is_gift,table_id,user_id,sku_name
)
values (#{id,jdbcType=INTEGER}, #{masterId,jdbcType=VARCHAR}, #{orderId,jdbcType=VARCHAR},
#{refOrderId,jdbcType=VARCHAR}, #{totalAmount,jdbcType=DECIMAL}, #{productId,jdbcType=VARCHAR},
#{coverImg,jdbcType=VARCHAR}, #{isSku,jdbcType=TINYINT}, #{skuId,jdbcType=VARCHAR},
#{name,jdbcType=VARCHAR}, #{salePrice,jdbcType=DECIMAL}, #{number,jdbcType=REAL},
#{totalNumber,jdbcType=REAL}, #{refundNumber,jdbcType=REAL}, #{categoryId,jdbcType=VARCHAR},
#{status,jdbcType=VARCHAR}, #{type,jdbcType=TINYINT}, #{merchantId,jdbcType=VARCHAR},
#{shopId,jdbcType=VARCHAR}, #{createdAt,jdbcType=BIGINT}, #{updatedAt,jdbcType=BIGINT}, #{packFee,jdbcType=DECIMAL}
, #{tradeDay,jdbcType=VARCHAR}, #{isPack,jdbcType=VARCHAR}, #{isGift,jdbcType=VARCHAR}, #{tableId,jdbcType=VARCHAR}, #{userId,jdbcType=INTEGER},#{skuName,jdbcType=VARCHAR}
)
</insert>
<insert id="insert" parameterType="com.chaozhanggui.system.cashierservice.entity.TbCashierCart"
useGeneratedKeys="true" keyProperty="id">
insert into tb_cashier_cart (id, master_id, order_id,
ref_order_id, total_amount, product_id,
cover_img, is_sku, sku_id,
name, sale_price, number,
total_number, refund_number, category_id,
status, type, merchant_id,
shop_id, created_at, updated_at, pack_fee, trade_day, is_pack, is_gift, table_id,
user_id, sku_name, is_vip)
values (#{id,jdbcType=INTEGER}, #{masterId,jdbcType=VARCHAR}, #{orderId,jdbcType=VARCHAR},
#{refOrderId,jdbcType=VARCHAR}, #{totalAmount,jdbcType=DECIMAL}, #{productId,jdbcType=VARCHAR},
#{coverImg,jdbcType=VARCHAR}, #{isSku,jdbcType=TINYINT}, #{skuId,jdbcType=VARCHAR},
#{name,jdbcType=VARCHAR}, #{salePrice,jdbcType=DECIMAL}, #{number,jdbcType=REAL},
#{totalNumber,jdbcType=REAL}, #{refundNumber,jdbcType=REAL}, #{categoryId,jdbcType=VARCHAR},
#{status,jdbcType=VARCHAR}, #{type,jdbcType=TINYINT}, #{merchantId,jdbcType=VARCHAR},
#{shopId,jdbcType=VARCHAR}, #{createdAt,jdbcType=BIGINT}, #{updatedAt,jdbcType=BIGINT},
#{packFee,jdbcType=DECIMAL}
, #{tradeDay,jdbcType=VARCHAR}, #{isPack,jdbcType=VARCHAR}, #{isGift,jdbcType=VARCHAR},
#{tableId,jdbcType=VARCHAR}
, #{userId,jdbcType=INTEGER}, #{skuName,jdbcType=VARCHAR}, #{isVip,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbCashierCart">
insert into tb_cashier_cart
<trim prefix="(" suffix=")" suffixOverrides=",">
@@ -181,6 +185,9 @@
<if test="updatedAt != null">
updated_at,
</if>
<if test="isVip != null">
is_vip,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@@ -246,6 +253,9 @@
<if test="updatedAt != null">
#{updatedAt,jdbcType=BIGINT},
</if>
<if test="isVip != null">
#{isVip,jdbcType=TINYINT},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective"
@@ -324,6 +334,9 @@
<if test="isGift != null">
is_gift = #{isGift,jdbcType=BIGINT},
</if>
<if test="isVip != null">
is_vip = #{isVip,jdbcType=TINYINT},
</if>
<if test="isPack != null">
is_pack = #{isPack,jdbcType=VARCHAR},
</if>

View File

@@ -0,0 +1,194 @@
<?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.chaozhanggui.system.cashierservice.dao.TbConsInfoMapper">
<resultMap id="BaseResultMap" type="com.chaozhanggui.system.cashierservice.entity.TbConsInfo">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="shop_id" jdbcType="INTEGER" property="shopId" />
<result column="con_type_id" jdbcType="INTEGER" property="conTypeId" />
<result column="con_type_name" jdbcType="VARCHAR" property="conTypeName" />
<result column="con_code" jdbcType="VARCHAR" property="conCode" />
<result column="con_name" jdbcType="VARCHAR" property="conName" />
<result column="stock_number" jdbcType="DECIMAL" property="stockNumber" />
<result column="price" jdbcType="DECIMAL" property="price" />
<result column="stock_consume" jdbcType="DECIMAL" property="stockConsume" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="con_unit" jdbcType="VARCHAR" property="conUnit" />
<result column="laster_in_stock" jdbcType="DECIMAL" property="lasterInStock" />
<result column="con_warning" jdbcType="DECIMAL" property="conWarning" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="is_check" jdbcType="VARCHAR" property="isCheck" />
</resultMap>
<sql id="Base_Column_List">
id, shop_id, con_type_id, con_type_name, con_code, con_name, stock_number,price,stock_consume,status, con_unit,
laster_in_stock, con_warning, create_time, update_time,is_check
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tb_cons_info
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from tb_cons_info
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.chaozhanggui.system.cashierservice.entity.TbConsInfo">
insert into tb_cons_info (id, shop_id, con_type_id,
con_type_name, con_code, con_name,
stock_number, con_unit, laster_in_stock,
con_warning, create_time, update_time
)
values (#{id,jdbcType=INTEGER}, #{shopId,jdbcType=INTEGER}, #{conTypeId,jdbcType=INTEGER},
#{conTypeName,jdbcType=VARCHAR}, #{conCode,jdbcType=VARCHAR}, #{conName,jdbcType=VARCHAR},
#{stockNumber,jdbcType=DECIMAL}, #{conUnit,jdbcType=VARCHAR}, #{lasterInStock,jdbcType=DECIMAL},
#{conWarning,jdbcType=DECIMAL}, #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}
)
</insert>
<insert id="insertSelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbConsInfo">
insert into tb_cons_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="shopId != null">
shop_id,
</if>
<if test="conTypeId != null">
con_type_id,
</if>
<if test="conTypeName != null">
con_type_name,
</if>
<if test="conCode != null">
con_code,
</if>
<if test="conName != null">
con_name,
</if>
<if test="stockNumber != null">
stock_number,
</if>
<if test="conUnit != null">
con_unit,
</if>
<if test="lasterInStock != null">
laster_in_stock,
</if>
<if test="conWarning != null">
con_warning,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="shopId != null">
#{shopId,jdbcType=INTEGER},
</if>
<if test="conTypeId != null">
#{conTypeId,jdbcType=INTEGER},
</if>
<if test="conTypeName != null">
#{conTypeName,jdbcType=VARCHAR},
</if>
<if test="conCode != null">
#{conCode,jdbcType=VARCHAR},
</if>
<if test="conName != null">
#{conName,jdbcType=VARCHAR},
</if>
<if test="stockNumber != null">
#{stockNumber,jdbcType=DECIMAL},
</if>
<if test="conUnit != null">
#{conUnit,jdbcType=VARCHAR},
</if>
<if test="lasterInStock != null">
#{lasterInStock,jdbcType=DECIMAL},
</if>
<if test="conWarning != null">
#{conWarning,jdbcType=DECIMAL},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbConsInfo">
update tb_cons_info
<set>
<if test="shopId != null">
shop_id = #{shopId,jdbcType=INTEGER},
</if>
<if test="conTypeId != null">
con_type_id = #{conTypeId,jdbcType=INTEGER},
</if>
<if test="conTypeName != null">
con_type_name = #{conTypeName,jdbcType=VARCHAR},
</if>
<if test="conCode != null">
con_code = #{conCode,jdbcType=VARCHAR},
</if>
<if test="conName != null">
con_name = #{conName,jdbcType=VARCHAR},
</if>
<if test="stockNumber != null">
stock_number = #{stockNumber,jdbcType=DECIMAL},
</if>
<if test="conUnit != null">
con_unit = #{conUnit,jdbcType=VARCHAR},
</if>
<if test="lasterInStock != null">
laster_in_stock = #{lasterInStock,jdbcType=DECIMAL},
</if>
<if test="conWarning != null">
con_warning = #{conWarning,jdbcType=DECIMAL},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
update_time = #{updateTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.chaozhanggui.system.cashierservice.entity.TbConsInfo">
update tb_cons_info
set shop_id = #{shopId,jdbcType=INTEGER},
con_type_id = #{conTypeId,jdbcType=INTEGER},
con_type_name = #{conTypeName,jdbcType=VARCHAR},
con_code = #{conCode,jdbcType=VARCHAR},
con_name = #{conName,jdbcType=VARCHAR},
stock_number = #{stockNumber,jdbcType=DECIMAL},
con_unit = #{conUnit,jdbcType=VARCHAR},
laster_in_stock = #{lasterInStock,jdbcType=DECIMAL},
con_warning = #{conWarning,jdbcType=DECIMAL},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
stock_consume=#{stockConsume,jdbcType=DECIMAL}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="countAll" resultType="int">
select count(id) from tb_cons_info
</select>
<select id="selectAllInfo" resultType="com.chaozhanggui.system.cashierservice.entity.TbConsInfo">
select * from tb_cons_info order by id desc
</select>
</mapper>

View File

@@ -8,6 +8,7 @@
<result column="product_id" jdbcType="INTEGER" property="productId"/>
<result column="product_sku_id" jdbcType="INTEGER" property="productSkuId"/>
<result column="num" jdbcType="INTEGER" property="num"/>
<result column="is_vip" jdbcType="TINYINT" property="isVip" />
<result column="product_name" jdbcType="VARCHAR" property="productName"/>
<result column="product_sku_name" jdbcType="VARCHAR" property="productSkuName"/>
<result column="product_img" jdbcType="VARCHAR" property="productImg"/>
@@ -20,7 +21,7 @@
</resultMap>
<sql id="Base_Column_List">
id, order_id, shop_id, product_id, product_sku_id, num, product_name, product_sku_name,
product_img, create_time, update_time, price, price_amount,status,pack_amount
product_img, create_time, update_time, price, price_amount,status,pack_amount,is_vip
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
@@ -43,12 +44,12 @@
product_id, product_sku_id, num,
product_name, product_sku_name, product_img,
create_time, update_time, price,
price_amount,pack_amount,status)
price_amount,pack_amount,status,is_vip)
values (#{id,jdbcType=INTEGER}, #{orderId,jdbcType=INTEGER}, #{shopId,jdbcType=INTEGER},
#{productId,jdbcType=INTEGER}, #{productSkuId,jdbcType=INTEGER}, #{num,jdbcType=INTEGER},
#{productName,jdbcType=VARCHAR}, #{productSkuName,jdbcType=VARCHAR}, #{productImg,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{price,jdbcType=DECIMAL},
#{priceAmount,jdbcType=DECIMAL},#{packAmount,jdbcType=DECIMAL},#{status,jdbcType=VARCHAR})
#{priceAmount,jdbcType=DECIMAL},#{packAmount,jdbcType=DECIMAL},#{status,jdbcType=VARCHAR},#{isVip,jdbcType=TINYINT})
</insert>
<insert id="insertSelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbOrderDetail">
insert into tb_order_detail
@@ -92,6 +93,9 @@
<if test="priceAmount != null">
price_amount,
</if>
<if test="isVip != null">
is_vip,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@@ -133,6 +137,9 @@
<if test="priceAmount != null">
#{priceAmount,jdbcType=DECIMAL},
</if>
<if test="isVip != null">
#{isVip,jdbcType=TINYINT},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective"
@@ -154,6 +161,9 @@
<if test="num != null">
num = #{num,jdbcType=INTEGER},
</if>
<if test="isVip != null">
is_vip = #{isVip,jdbcType=TINYINT},
</if>
<if test="productName != null">
product_name = #{productName,jdbcType=VARCHAR},
</if>
@@ -197,6 +207,7 @@
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP},
price = #{price,jdbcType=DECIMAL},
is_vip= #{isVip,jdbcType=TINYINT},
price_amount = #{priceAmount,jdbcType=DECIMAL}
where id = #{id,jdbcType=INTEGER}
</update>

View File

@@ -1009,6 +1009,7 @@
AND t.sku_id = #{skuId}
AND t.`status` = 'create'
AND t.table_id = #{code}
AND t.is_vip = #{isVip}
</select>
<select id="selectByNewQcode" resultType="java.lang.Integer">
SELECT

View File

@@ -403,7 +403,7 @@
FROM
tb_product_sku
WHERE
product_id = #{productId}
product_id = #{productId} and is_del=0
</select>
<select id="selectSale" resultType="com.chaozhanggui.system.cashierservice.entity.vo.HomeVO">
SELECT

View File

@@ -0,0 +1,155 @@
<?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.chaozhanggui.system.cashierservice.dao.TbProskuConMapper">
<resultMap id="BaseResultMap" type="com.chaozhanggui.system.cashierservice.entity.TbProskuCon">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="shop_id" jdbcType="INTEGER" property="shopId" />
<result column="product_id" jdbcType="INTEGER" property="productId" />
<result column="product_sku_id" jdbcType="INTEGER" property="productSkuId" />
<result column="con_info_id" jdbcType="INTEGER" property="conInfoId" />
<result column="surplus_stock" jdbcType="DECIMAL" property="surplusStock" />
<result column="status" jdbcType="VARCHAR" property="status" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
</resultMap>
<sql id="Base_Column_List">
id, shop_id,product_id ,product_sku_id, con_info_id, surplus_stock, status, create_time
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tb_prosku_con
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from tb_prosku_con
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProskuCon">
insert into tb_prosku_con (id, shop_id, product_sku_id,
con_info_id, surplus_stock, status,
create_time)
values (#{id,jdbcType=INTEGER}, #{shopId,jdbcType=INTEGER}, #{productSkuId,jdbcType=INTEGER},
#{conInfoId,jdbcType=INTEGER}, #{surplusStock,jdbcType=DECIMAL}, #{status,jdbcType=VARCHAR},
#{createTime,jdbcType=TIMESTAMP})
</insert>
<insert id="insertSelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProskuCon">
insert into tb_prosku_con
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null">
id,
</if>
<if test="shopId != null">
shop_id,
</if>
<if test="productSkuId != null">
product_sku_id,
</if>
<if test="conInfoId != null">
con_info_id,
</if>
<if test="surplusStock != null">
surplus_stock,
</if>
<if test="status != null">
status,
</if>
<if test="createTime != null">
create_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
#{id,jdbcType=INTEGER},
</if>
<if test="shopId != null">
#{shopId,jdbcType=INTEGER},
</if>
<if test="productSkuId != null">
#{productSkuId,jdbcType=INTEGER},
</if>
<if test="conInfoId != null">
#{conInfoId,jdbcType=INTEGER},
</if>
<if test="surplusStock != null">
#{surplusStock,jdbcType=DECIMAL},
</if>
<if test="status != null">
#{status,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProskuCon">
update tb_prosku_con
<set>
<if test="shopId != null">
shop_id = #{shopId,jdbcType=INTEGER},
</if>
<if test="productSkuId != null">
product_sku_id = #{productSkuId,jdbcType=INTEGER},
</if>
<if test="conInfoId != null">
con_info_id = #{conInfoId,jdbcType=INTEGER},
</if>
<if test="surplusStock != null">
surplus_stock = #{surplusStock,jdbcType=DECIMAL},
</if>
<if test="status != null">
status = #{status,jdbcType=VARCHAR},
</if>
<if test="createTime != null">
create_time = #{createTime,jdbcType=TIMESTAMP},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.chaozhanggui.system.cashierservice.entity.TbProskuCon">
update tb_prosku_con
set shop_id = #{shopId,jdbcType=INTEGER},
product_sku_id = #{productSkuId,jdbcType=INTEGER},
con_info_id = #{conInfoId,jdbcType=INTEGER},
surplus_stock = #{surplusStock,jdbcType=DECIMAL},
status = #{status,jdbcType=VARCHAR},
create_time = #{createTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=INTEGER}
</update>
<select id="selectBySkuIdAndShopId" resultMap="BaseResultMap">
select * from tb_prosku_con where product_sku_id=#{skuId} and shop_id=#{shopId} and status=1
</select>
<select id="selectBySkuIdAndShopIdAngCheck" resultMap="BaseResultMap">
select a.* from tb_prosku_con as a
left join tb_cons_info as b on a.con_info_id=b.id
where a.product_sku_id=#{skuId} and a.shop_id=#{shopId} and a.status=1 and b.is_check=1
</select>
<select id="selectIdBySkuIdAndShopId" resultType="java.lang.Integer">
SELECT
p.con_info_id
FROM
tb_prosku_con p
WHERE
p.shop_id = #{shopId}
AND p.product_sku_id = #{skuId}
AND p.`status` = 1
group by p.con_info_id
</select>
<select id="selectByShopIdAndSkuIdAndProductId" resultMap="BaseResultMap">
select * from tb_prosku_con where product_sku_id=#{skuId} and shop_id=#{shopId} and product_id=#{productId} and status=1
</select>
<select id="selectByShopIdAndSkuIdAndProductIdAndCheck" resultMap="BaseResultMap">
select a.* from tb_prosku_con as a
left join tb_cons_info as b on a.con_info_id=b.id
where a.product_sku_id=#{skuId} and a.shop_id=#{shopId} and a.product_id=#{productId} and a.status=1 and b.is_check=1
</select>
</mapper>

View File

@@ -0,0 +1,22 @@
<?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.chaozhanggui.system.cashierservice.dao.TbShopAdDao">
<resultMap type="com.chaozhanggui.system.cashierservice.entity.TbShopAd" id="TbShopAdMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="shopId" column="shop_id" jdbcType="INTEGER"/>
<result property="imgUrl" column="img_url" jdbcType="VARCHAR"/>
<result property="linkPath" column="link_path" jdbcType="VARCHAR"/>
<result property="borderRadius" column="border_radius" jdbcType="INTEGER"/>
<result property="showPosition" column="show_position" jdbcType="VARCHAR"/>
<result property="frequency" column="frequency" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="INTEGER"/>
<result property="sort" column="sort" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>
</mapper>

View File

@@ -0,0 +1,72 @@
<?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.chaozhanggui.system.cashierservice.dao.TbShopExtendMapper">
<resultMap type="com.chaozhanggui.system.cashierservice.entity.TbShopExtend" id="TbShopExtendMap">
<result property="id" column="id" jdbcType="INTEGER"/>
<result property="shopId" column="shop_id" jdbcType="INTEGER"/>
<result property="type" column="type" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="autokey" column="autoKey" jdbcType="VARCHAR"/>
<result property="value" column="value" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id
, shop_id, type, name, autoKey, value, update_time, create_time </sql>
<!--查询单个-->
<select id="queryById" resultMap="TbShopExtendMap">
select
<include refid="Base_Column_List"/>
from tb_shop_extend
where id = #{id}
</select>
<select id="queryByShopIdAndAutoKey" resultMap="TbShopExtendMap">
select
<include refid="Base_Column_List"/>
from tb_shop_extend
where shop_id = #{shopId} and autoKey = #{autokey}
</select>
<!--查询指定行数据-->
<select id="queryAll" resultMap="TbShopExtendMap">
select
<include refid="Base_Column_List"/>
from tb_shop_extend
<where>
<if test="id != null">
and id = #{id}
</if>
<if test="shopId != null">
and shop_id = #{shopId}
</if>
<if test="type != null and type != ''">
and type = #{type}
</if>
<if test="name != null and name != ''">
and name = #{name}
</if>
<if test="autokey != null and autokey != ''">
and autoKey = #{autokey}
</if>
<if test="value != null and value != ''">
and value = #{value}
</if>
<if test="updateTime != null">
and update_time = #{updateTime}
</if>
<if test="createTime != null">
and create_time = #{createTime}
</if>
</where>
</select>
</mapper>

View File

@@ -24,7 +24,7 @@
delete from tb_shop_user_flow
where id = #{id,jdbcType=INTEGER}
</delete>
<insert id="insert" parameterType="com.chaozhanggui.system.cashierservice.entity.TbShopUserFlow">
<insert id="insert" parameterType="com.chaozhanggui.system.cashierservice.entity.TbShopUserFlow" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into tb_shop_user_flow (id, shop_user_id, amount,
balance, biz_code, biz_name,
create_time, type)