From dc291231eed95890be780cb46a7aee518b801933 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Fri, 9 Aug 2024 16:42:17 +0800 Subject: [PATCH 1/3] =?UTF-8?q?1.=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CommonController.java | 4 +- .../controller/UserContoller.java | 4 +- .../dao/TbShopOpenIdMapper.java | 12 ++++ .../entity/Enum/ShopWxMsgTypeEnum.java | 17 +++++ .../cashierservice/service/CartService.java | 5 +- .../cashierservice/service/LoginService.java | 62 ++++++++++++++----- .../cashierservice/service/UserService.java | 15 ++--- 7 files changed, 86 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/entity/Enum/ShopWxMsgTypeEnum.java diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/CommonController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/CommonController.java index 1c0f114..83211ee 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/CommonController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/CommonController.java @@ -220,9 +220,7 @@ public class CommonController { if (wxMsgSubDTO.getOpenId() == null || wxMsgSubDTO.getShopId() == null) { return Result.fail("shopId或openId缺失"); } - String msg = wxMsgSubDTO.getShopId().replace("msg", ""); - String[] split = msg.split(","); - loginService.addShopId(wxMsgSubDTO.getOpenId(), split[0], split.length > 1 ? Integer.valueOf(split[1]) : null, wxMsgSubDTO.getNickname(), wxMsgSubDTO.getAvatar()); + loginService.addShopId(wxMsgSubDTO.getOpenId(), wxMsgSubDTO.getShopId(), null, wxMsgSubDTO.getNickname(), wxMsgSubDTO.getAvatar()); return Result.success(CodeEnum.SUCCESS); } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/UserContoller.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/UserContoller.java index fcd72ad..28cce38 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/UserContoller.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/UserContoller.java @@ -156,7 +156,9 @@ public class UserContoller { * @return */ @GetMapping("/subQrCode") - public Result getSubQrCode(String shopId) throws Exception { + public Result getSubQrCode( + @RequestParam String shopId + ) throws Exception { String url = userService.getSubQrCode(shopId); return Result.successWithData(url); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopOpenIdMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopOpenIdMapper.java index 8d875e1..8e6a0f1 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopOpenIdMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopOpenIdMapper.java @@ -38,4 +38,16 @@ public interface TbShopOpenIdMapper { @Update("update tb_shop_open_id set nickname=#{nickName}, avatar=#{avatar} where open_id=#{openId} and status=1 ") int updateBaseInfoByOpenId(@Param("openId") String openId, @Param("nickName") String nickName, @Param("avatar") String avatar); + + @Select("select count(*) from tb_shop_open_id where shop_id=#{shopId} and status=1;") + int selectStateByShopId(@Param("shopId") String shopId); + + @Select("select count(*) from tb_shop_open_id where shop_id=#{shopId} and status=1 and type=#{type};") + int countStateByShopIdAndType(@Param("shopId") String shopId, @Param("type") int type); + + @Select("select * from tb_shop_open_id where shop_id=#{shopId} and status=1 and (type=#{type} or type=-1);") + List selectStateByShopIdAndType(@Param("shopId") String shopId, @Param("type") int type); + + @Select("select * from tb_shop_open_id where shop_id=#{shopId} and open_id=#{openId};") + List selectStateByShopIdAndOpenId(@Param("openId") String openId, @Param("shopId") String shopId); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/Enum/ShopWxMsgTypeEnum.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/Enum/ShopWxMsgTypeEnum.java new file mode 100644 index 0000000..766e548 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/Enum/ShopWxMsgTypeEnum.java @@ -0,0 +1,17 @@ +package com.chaozhanggui.system.cashierservice.entity.Enum; + +public enum ShopWxMsgTypeEnum { + ALL_MSG(-1), + STOCK_MSG(0), + CONSUMABLES_MSG(1), + OPERATION_MSG(2); + private final Integer type; + + ShopWxMsgTypeEnum(Integer type) { + this.type = type; + } + + public Integer getType() { + return type; + } +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java index a967298..81409f7 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; +import com.chaozhanggui.system.cashierservice.entity.Enum.ShopWxMsgTypeEnum; import com.chaozhanggui.system.cashierservice.exception.MsgException; import com.chaozhanggui.system.cashierservice.netty.PushToAppChannelHandlerAdapter; import com.chaozhanggui.system.cashierservice.rabbit.RabbitProducer; @@ -336,11 +337,11 @@ public class CartService { (product.getIsDistribute() == 1 && product.getStockNumber() - num <= productSku.getWarnLine()) || (product.getIsDistribute() != 1) && productSku.getStockNumber() - num <= productSku.getWarnLine() ) { - List shopOpenIds = shopOpenIdMapper.selectByShopId(Integer.valueOf(product.getShopId())); + List shopOpenIds = shopOpenIdMapper.selectStateByShopIdAndType(product.getShopId(), ShopWxMsgTypeEnum.STOCK_MSG.getType()); shopOpenIds.forEach(item -> { String message = redisUtil.getMessage(RedisCst.SEND_STOCK_WARN_MSG + product.getId() + ":" + item.getOpenId()); if (message == null) { - wxAccountUtil.sendStockWarnMsg("商品库存不足", product.getName(), + WxAccountUtil.sendStockWarnMsg("商品库存不足", product.getName(), product.getIsDistribute() == 1 ? product.getStockNumber() - num : (int) (productSku.getStockNumber() - num) , item.getOpenId()); redisUtil.saveMessage(RedisCst.SEND_STOCK_WARN_MSG + product.getId() + ":" + item.getOpenId(), product.getId().toString(), 60 * 30L); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java index ada1443..c9194ed 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/LoginService.java @@ -1,6 +1,7 @@ package com.chaozhanggui.system.cashierservice.service; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; @@ -60,32 +61,61 @@ public class LoginService { private final TbShopOpenIdMapper shopOpenIdMapper; + private final static int[] MSG_TYPE_LIST = new int[] {0, 1, 2}; + public LoginService(TbShopOpenIdMapper shopOpenIdMapper) { this.shopOpenIdMapper = shopOpenIdMapper; } - public void addShopId(String openId, String shopId, Integer type, String nickName, String avatar) { + public void addShopId(String openId, String shopId, Integer type1, String nickName, String avatar) { // 为商家绑定openid - TbShopOpenId tbShopOpenId = shopOpenIdMapper.countByOpenId(openId, Integer.valueOf(shopId), type); - if (tbShopOpenId == null) { - TbShopOpenId shopOpenId = new TbShopOpenId(); - shopOpenId.setOpenId(openId); - shopOpenId.setCreateTime(DateUtil.date()); - shopOpenId.setShopId(Integer.valueOf(shopId)); - shopOpenId.setStatus(1); - shopOpenId.setNickname(nickName); - shopOpenId.setAvatar(avatar); - shopOpenId.setType(type == null ? -1 : type); - shopOpenIdMapper.insert(shopOpenId); +// TbShopOpenId tbShopOpenId = shopOpenIdMapper.countByOpenId(openId, Integer.valueOf(shopId), null); + List shopOpenIdList = shopOpenIdMapper.selectStateByShopIdAndOpenId(openId, shopId); + int openCount = shopOpenIdMapper.selectStateByShopId(shopId); + + if (shopOpenIdList.isEmpty()) { + for (int type : MSG_TYPE_LIST) { + addShopOpenId(openId, shopId, nickName, avatar, openCount, type); + } + } else { - tbShopOpenId.setUpdateTime(DateUtil.date()); - tbShopOpenId.setNickname(nickName); - tbShopOpenId.setAvatar(avatar); - shopOpenIdMapper.updateByPrimaryKeySelective(tbShopOpenId); + boolean fullSize = shopOpenIdList.size() == MSG_TYPE_LIST.length; + HashMap typeMap = new HashMap<>(); + for (TbShopOpenId tbShopOpenId : shopOpenIdList) { + typeMap.put(tbShopOpenId.getType().toString(), tbShopOpenId.getOpenId()); + tbShopOpenId.setType(null); + tbShopOpenId.setUpdateTime(DateUtil.date()); + tbShopOpenId.setNickname(nickName); + tbShopOpenId.setAvatar(avatar); + shopOpenIdMapper.updateByPrimaryKeySelective(tbShopOpenId); + } + + if (fullSize) { + return; + } + for (int type : MSG_TYPE_LIST) { + if (typeMap.get(String.valueOf(type)) == null) { + addShopOpenId(openId, shopId, nickName, avatar, openCount, type); + } + } + } } + private void addShopOpenId(String openId, String shopId, String nickName, String avatar, int openCount, int type) { + int count = shopOpenIdMapper.countStateByShopIdAndType(shopId, type); + TbShopOpenId shopOpenId = new TbShopOpenId(); + shopOpenId.setOpenId(openId); + shopOpenId.setCreateTime(DateUtil.date()); + shopOpenId.setShopId(Integer.valueOf(shopId)); + shopOpenId.setStatus(openCount > 0 ? count > 0 ? 1 : 0 : 0); + shopOpenId.setNickname(nickName); + shopOpenId.setAvatar(avatar); + shopOpenId.setType(type); + shopOpenIdMapper.insert(shopOpenId); + } + public Result wxBusinessLogin(String openId, String shopId) { TbUserShopMsg shopMsg = tbUserShopMsgMapper.selectByShopIdAndOpenId(Integer.valueOf(shopId), openId); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/UserService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/UserService.java index 0c11041..47dbcff 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/UserService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/UserService.java @@ -1,11 +1,8 @@ package com.chaozhanggui.system.cashierservice.service; -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.extra.qrcode.QrConfig; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.chaozhanggui.system.cashierservice.dao.*; import com.chaozhanggui.system.cashierservice.entity.*; @@ -13,9 +10,6 @@ import com.chaozhanggui.system.cashierservice.entity.vo.IntegralFlowVo; import com.chaozhanggui.system.cashierservice.entity.vo.IntegralVo; import com.chaozhanggui.system.cashierservice.exception.MsgException; import com.chaozhanggui.system.cashierservice.redis.RedisCst; -import com.chaozhanggui.system.cashierservice.redis.RedisUtil; -import com.chaozhanggui.system.cashierservice.sign.CodeEnum; -import com.chaozhanggui.system.cashierservice.sign.Result; import com.chaozhanggui.system.cashierservice.util.*; import com.chaozhanggui.system.cashierservice.wxUtil.WxAccountUtil; import com.github.pagehelper.PageHelper; @@ -23,14 +17,11 @@ import com.github.pagehelper.PageInfo; import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import javax.imageio.ImageIO; -import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; @@ -264,7 +255,9 @@ public class UserService { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); Resource resource = resourceLoader.getResource("classpath:/static/logo.jpg"); InputStream inputStream = resource.getInputStream(); - QrCodeUtil.generate(wxAccountUtil.getRadarQrCode(Integer.valueOf(shopId), -1), new QrConfig(500, 500). +// String url = wxAccountUtil.getRadarQrCode(Integer.valueOf(shopId), -1); + String url = StrUtil.format("https://invoice.sxczgkj.cn/index/wechat/weuserk?shopId={}", shopId); + QrCodeUtil.generate(url, new QrConfig(500, 500). setImg(ImageIO.read(inputStream)).setErrorCorrection(ErrorCorrectionLevel.H).setRatio(4), "png", outputStream); From bee86bbb738b194d6df15cb85e1c4392c87685a7 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Tue, 13 Aug 2024 09:44:39 +0800 Subject: [PATCH 2/3] =?UTF-8?q?1.=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=BA=97=E9=93=BA=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cashierservice/entity/TbShopMsgState.java | 94 +++++++++++++++++++ .../mapper/TbShopMsgStateMapper.java | 28 ++++++ .../cashierservice/service/CartService.java | 4 +- .../cashierservice/wxUtil/WxAccountUtil.java | 13 ++- .../resources/mapper/TbShopMsgStateMapper.xml | 91 ++++++++++++++++++ 5 files changed, 227 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopMsgState.java create mode 100644 src/main/java/com/chaozhanggui/system/cashierservice/mapper/TbShopMsgStateMapper.java create mode 100644 src/main/resources/mapper/TbShopMsgStateMapper.xml diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopMsgState.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopMsgState.java new file mode 100644 index 0000000..7afb82e --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopMsgState.java @@ -0,0 +1,94 @@ +package com.chaozhanggui.system.cashierservice.entity; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + +/** + * + * @TableName tb_shop_msg_state + */ +@Data +public class TbShopMsgState implements Serializable { + /** + * + */ + private Integer id; + + /** + * + */ + private Integer shopId; + + /** + * + */ + private Integer type; + + /** + * + */ + private Integer state; + + /** + * + */ + private Date createTime; + + /** + * + */ + private Date updateTime; + + private static final long serialVersionUID = 1L; + + @Override + public boolean equals(Object that) { + if (this == that) { + return true; + } + if (that == null) { + return false; + } + if (getClass() != that.getClass()) { + return false; + } + TbShopMsgState other = (TbShopMsgState) that; + return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId())) + && (this.getShopId() == null ? other.getShopId() == null : this.getShopId().equals(other.getShopId())) + && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType())) + && (this.getState() == null ? other.getState() == null : this.getState().equals(other.getState())) + && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime())) + && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime())); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((getId() == null) ? 0 : getId().hashCode()); + result = prime * result + ((getShopId() == null) ? 0 : getShopId().hashCode()); + result = prime * result + ((getType() == null) ? 0 : getType().hashCode()); + result = prime * result + ((getState() == null) ? 0 : getState().hashCode()); + result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode()); + result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode()); + return result; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", shopId=").append(shopId); + sb.append(", type=").append(type); + sb.append(", state=").append(state); + sb.append(", createTime=").append(createTime); + sb.append(", updateTime=").append(updateTime); + sb.append(", serialVersionUID=").append(serialVersionUID); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/mapper/TbShopMsgStateMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/mapper/TbShopMsgStateMapper.java new file mode 100644 index 0000000..10f7430 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/mapper/TbShopMsgStateMapper.java @@ -0,0 +1,28 @@ +package com.chaozhanggui.system.cashierservice.mapper; + +import com.chaozhanggui.system.cashierservice.entity.TbShopMsgState; +import org.apache.ibatis.annotations.Select; + +/** +* @author Administrator +* @description 针对表【tb_shop_msg_state】的数据库操作Mapper +* @createDate 2024-08-12 14:38:33 +* @Entity com.chaozhanggui.system.cashierservice.entity.TbShopMsgState +*/ +public interface TbShopMsgStateMapper { + + int deleteByPrimaryKey(Long id); + + int insert(TbShopMsgState record); + + int insertSelective(TbShopMsgState record); + + TbShopMsgState selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(TbShopMsgState record); + + int updateByPrimaryKey(TbShopMsgState record); + + @Select("select * from tb_shop_msg_state where shop_id=#{shopId} and type=#{type};") + TbShopMsgState selectByType(Integer type, Integer shopId); +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java index 81409f7..2bdda19 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/CartService.java @@ -341,9 +341,9 @@ public class CartService { shopOpenIds.forEach(item -> { String message = redisUtil.getMessage(RedisCst.SEND_STOCK_WARN_MSG + product.getId() + ":" + item.getOpenId()); if (message == null) { - WxAccountUtil.sendStockWarnMsg("商品库存不足", product.getName(), + wxAccountUtil.sendStockWarnMsg("商品库存不足", product.getName(), product.getIsDistribute() == 1 ? product.getStockNumber() - num : (int) (productSku.getStockNumber() - num) - , item.getOpenId()); + , item.getOpenId(), ShopWxMsgTypeEnum.STOCK_MSG, shopInfo.getId()); redisUtil.saveMessage(RedisCst.SEND_STOCK_WARN_MSG + product.getId() + ":" + item.getOpenId(), product.getId().toString(), 60 * 30L); }else { log.info("{}已在30分钟内推送过消息,跳过发送", item.getOpenId()); diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/wxUtil/WxAccountUtil.java b/src/main/java/com/chaozhanggui/system/cashierservice/wxUtil/WxAccountUtil.java index 35e9098..245130e 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/wxUtil/WxAccountUtil.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/wxUtil/WxAccountUtil.java @@ -6,7 +6,10 @@ import cn.hutool.extra.qrcode.QrCodeUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSONObject; +import com.chaozhanggui.system.cashierservice.entity.Enum.ShopWxMsgTypeEnum; +import com.chaozhanggui.system.cashierservice.entity.TbShopMsgState; import com.chaozhanggui.system.cashierservice.exception.MsgException; +import com.chaozhanggui.system.cashierservice.mapper.TbShopMsgStateMapper; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -27,6 +30,8 @@ public class WxAccountUtil { @Value("${wx.ysk.warnMsgTmpId}") private static String msgTmpId = "C08OUr80x6wGmUN1zpFhSQ3Sv7VF5vksdZigiEx2pD0"; + private final TbShopMsgStateMapper shopMsgStateMapper; + static LinkedHashMap linkedHashMap=new LinkedHashMap<>(); static { @@ -98,7 +103,13 @@ public class WxAccountUtil { throw new RuntimeException(linkedHashMap.getOrDefault(resObj.get("errcode") + "", "未知错误")); } - public static JSONObject sendStockWarnMsg(String shopName, String productName, Integer stock, String toUserOpenId) { + public JSONObject sendStockWarnMsg(String shopName, String productName, Integer stock, String toUserOpenId, ShopWxMsgTypeEnum typeEnum, Integer shopId) { + TbShopMsgState shopMsgState = shopMsgStateMapper.selectByType(typeEnum.getType(), shopId); + if (shopMsgState == null || shopMsgState.getState().equals(0)) { + log.info("店铺未开启推送:{}", shopMsgState); + return null; + } + stock = stock < 0 ? 0 : stock; Integer finalStock = stock; Map data = new HashMap() {{ diff --git a/src/main/resources/mapper/TbShopMsgStateMapper.xml b/src/main/resources/mapper/TbShopMsgStateMapper.xml new file mode 100644 index 0000000..cd820c5 --- /dev/null +++ b/src/main/resources/mapper/TbShopMsgStateMapper.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + id,shop_id,type, + state,create_time,update_time + + + + + + delete from tb_shop_msg_state + where id = #{id,jdbcType=INTEGER} + + + insert into tb_shop_msg_state + ( id,shop_id,type + ,state,create_time,update_time + ) + values (#{id,jdbcType=INTEGER},#{shopId,jdbcType=INTEGER},#{type,jdbcType=INTEGER} + ,#{state,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP} + ) + + + insert into tb_shop_msg_state + + id, + shop_id, + type, + state, + create_time, + update_time, + + + #{id,jdbcType=INTEGER}, + #{shopId,jdbcType=INTEGER}, + #{type,jdbcType=INTEGER}, + #{state,jdbcType=INTEGER}, + #{createTime,jdbcType=TIMESTAMP}, + #{updateTime,jdbcType=TIMESTAMP}, + + + + update tb_shop_msg_state + + + shop_id = #{shopId,jdbcType=INTEGER}, + + + type = #{type,jdbcType=INTEGER}, + + + state = #{state,jdbcType=INTEGER}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + where id = #{id,jdbcType=INTEGER} + + + update tb_shop_msg_state + set + shop_id = #{shopId,jdbcType=INTEGER}, + type = #{type,jdbcType=INTEGER}, + state = #{state,jdbcType=INTEGER}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP} + where id = #{id,jdbcType=INTEGER} + + From a9b32b4e576bc4e80dc866bf694b08772e0a6cb0 Mon Sep 17 00:00:00 2001 From: SongZhang <2064194730@qq.com> Date: Wed, 14 Aug 2024 09:55:18 +0800 Subject: [PATCH 3/3] =?UTF-8?q?1.=E9=81=BF=E5=85=8D=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/cashierservice/dao/TbShopOpenIdMapper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopOpenIdMapper.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopOpenIdMapper.java index 8e6a0f1..478c8d2 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopOpenIdMapper.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopOpenIdMapper.java @@ -45,7 +45,7 @@ public interface TbShopOpenIdMapper { @Select("select count(*) from tb_shop_open_id where shop_id=#{shopId} and status=1 and type=#{type};") int countStateByShopIdAndType(@Param("shopId") String shopId, @Param("type") int type); - @Select("select * from tb_shop_open_id where shop_id=#{shopId} and status=1 and (type=#{type} or type=-1);") + @Select("select * from tb_shop_open_id where shop_id=#{shopId} and status=1 and (type=#{type} or type=-1) group by open_id;") List selectStateByShopIdAndType(@Param("shopId") String shopId, @Param("type") int type); @Select("select * from tb_shop_open_id where shop_id=#{shopId} and open_id=#{openId};")