diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/AppRun.java b/eladmin-system/src/main/java/cn/ysk/cashier/AppRun.java index 5dcaa94a..d13e8412 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/AppRun.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/AppRun.java @@ -36,8 +36,9 @@ import org.springframework.web.bind.annotation.RestController; @EnableAsync @RestController @Api(hidden = true) -@SpringBootApplication @EnableTransactionManagement +@SpringBootApplication + @EnableJpaAuditing(auditorAwareRef = "auditorAware") public class AppRun { diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbUserInfoController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbUserInfoController.java deleted file mode 100644 index 9fbe1b22..00000000 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/TbUserInfoController.java +++ /dev/null @@ -1,185 +0,0 @@ -/* -* Copyright 2019-2020 Zheng Jie -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ -package cn.ysk.cashier.controller; - -import cn.ysk.cashier.annotation.Log; -import cn.ysk.cashier.exception.BadRequestException; -import cn.ysk.cashier.pojo.TbUserInfo; -import cn.ysk.cashier.pojo.shop.TbMerchantAccount; -import cn.ysk.cashier.repository.TbUserInfoRepository; -import cn.ysk.cashier.repository.shop.TbMerchantAccountRepository; -import cn.ysk.cashier.service.TbUserInfoService; -import cn.ysk.cashier.dto.TbUserInfoQueryCriteria; -import cn.ysk.cashier.utils.*; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import com.aliyun.dysmsapi20170525.models.SendSmsResponse; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.*; -import java.io.IOException; -import java.util.Map; -import java.util.Objects; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -/** -* @website https://eladmin.vip -* @author lyf -* @date 2023-11-13 -**/ -@RestController -@RequiredArgsConstructor -@Api(tags = "/userInfo/list管理") -@RequestMapping("/api/tbUserInfo") -public class TbUserInfoController { - - private final TbUserInfoService tbUserInfoService; - - @ApiOperation("导出数据") - @GetMapping(value = "/download") - @PreAuthorize("@el.check('tbUserInfo:list')") - public void exportTbUserInfo(HttpServletResponse response, TbUserInfoQueryCriteria criteria) throws IOException { - tbUserInfoService.download(tbUserInfoService.queryAll(criteria), response); - } - - @GetMapping - @ApiOperation("查询/userInfo/list") - public ResponseEntity queryTbUserInfo(TbUserInfoQueryCriteria criteria, Pageable pageable){ - return new ResponseEntity<>(tbUserInfoService.queryAll(criteria,pageable),HttpStatus.OK); - } - - @PostMapping - @ApiOperation("新增/userInfo/list") - public ResponseEntity createTbUserInfo(@Validated @RequestBody TbUserInfo resources){ - return new ResponseEntity<>(tbUserInfoService.create(resources),HttpStatus.CREATED); - } - - @PutMapping - @ApiOperation("修改/userInfo/list") - public ResponseEntity updateTbUserInfo(@Validated @RequestBody TbUserInfo resources){ - tbUserInfoService.update(resources); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - - @DeleteMapping - @ApiOperation("删除/userInfo/list") - public ResponseEntity deleteTbUserInfo(@RequestBody Integer[] ids) { - tbUserInfoService.deleteAll(ids); - return new ResponseEntity<>(HttpStatus.OK); - } - - @Autowired - ValidateCodeUtil validateCodeUtil; - - @Autowired - RedisUtils redisUtils; - - @GetMapping("sendMsg") - public Object sendMsg(){ - Object o= SecurityContextHolder.getContext().getAuthentication().getPrincipal(); - if(Objects.isNull(o)){ - throw new BadRequestException("用户登录信息失效"); - } - JSONObject object=JSON.parseObject(JSON.toJSONString(o)); - if(Objects.isNull(object)){ - throw new BadRequestException("用户登录信息失效"); - } - String regex="^\\d{11}$"; - - if(!object.containsKey("username")||Objects.isNull(object.getString("username"))|| - !object.getString("username").matches(regex) - ){ - throw new BadRequestException("用户登录信息失效"); - } - String phone=object.getString("username"); - - String tempcode="SMS_244665149"; - - String random = StringUtil.random(6); - try { - validateCodeUtil.requestValidateCodeAli(phone, random,tempcode); - redisUtils.set(phone.concat("#").concat(tempcode),random,300L); - return "{\n" + - " \"code\": 0,\n" + - " \"msg\": \"成功\"\n" + - "}"; - } catch (Exception e) { - throw new RuntimeException(e.getMessage()); - } - - } - - - @Autowired - TbMerchantAccountRepository tbMerchantAccountRepository; - - - @RequestMapping(value = "modfiyUserInfo",method = RequestMethod.POST) - public ResponseEntity modfiyUserInfo(@RequestBody Map map){ - Object o= SecurityContextHolder.getContext().getAuthentication().getPrincipal(); - if(Objects.isNull(o)){ - throw new BadRequestException("用户登录信息失效"); - } - JSONObject object=JSON.parseObject(JSON.toJSONString(o)); - if(Objects.isNull(object)){ - throw new BadRequestException("用户登录信息失效"); - } - String regex="^\\d{11}$"; - - if(!object.containsKey("username")||Objects.isNull(object.getString("username"))|| - !object.getString("username").matches(regex) - ){ - throw new BadRequestException("用户登录信息失效"); - } - - String tempcode="SMS_244665149"; - String phone=object.getString("username"); - Object redisCode= redisUtils.get(phone.concat("#").concat(tempcode)); - if(Objects.isNull(redisCode)){ - throw new BadRequestException("短信验证码已过期"); - } - - - String code= map.get("code"); - - if(!redisCode.toString().equals(code)){ - throw new BadRequestException("短信验证码错误"); - } - redisUtils.del(phone.concat("#").concat(tempcode)); - String pwd= map.get("pwd"); - - TbMerchantAccount account= tbMerchantAccountRepository.findByAccount(phone); - if(Objects.isNull(account)){ - throw new BadRequestException("账户不存在"); - } - - account.setPwd(MD5Utils.md5(pwd.concat(account.getAccount()).concat(account.getId().toString()))); - account.setUpdatedAt(System.currentTimeMillis()); - tbMerchantAccountRepository.save(account); - - - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - - } -} \ No newline at end of file diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java index 99b76a08..b6c78417 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/controller/shop/TbShopUserController.java @@ -8,6 +8,7 @@ import cn.ysk.cashier.dto.shop.TbShopRechargeListDto; import cn.ysk.cashier.dto.shop.TbShopUserQueryCriteria; import cn.ysk.cashier.exception.BadRequestException; import cn.ysk.cashier.mybatis.service.TbMShopUserService; +import cn.ysk.cashier.mybatis.service.TbShopUserFlowService; import cn.ysk.cashier.pojo.shop.TbShopUser; import cn.ysk.cashier.service.shop.TbShopUserService; import io.swagger.annotations.Api; @@ -37,6 +38,9 @@ public class TbShopUserController { private final TbShopUserService tbShopUserService; private final TbMShopUserService tbMShopUserService; + private final TbShopUserFlowService tbShopUserFlowService; + + @ApiOperation("导出数据") @GetMapping(value = "/download") public void exportTbShopUser(HttpServletResponse response, TbShopUserQueryCriteria criteria) throws IOException { @@ -104,4 +108,10 @@ public class TbShopUserController { tbShopUserService.modfiyAccount(map); return new ResponseEntity<>(HttpStatus.OK); } + + + @GetMapping("queryShopUserFlow") + public ResponseEntity queryShopUserFlow(@RequestParam("userId") Integer userId,@RequestParam("page") Integer page,@RequestParam("pageSize") Integer pageSize){ + return new ResponseEntity<>( tbShopUserFlowService.selectByUserId(userId, page, pageSize),HttpStatus.OK); + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUserFlow.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUserFlow.java index 75152a2f..325bb5f4 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUserFlow.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/entity/TbShopUserFlow.java @@ -1,39 +1,86 @@ +/* +* Copyright 2019-2020 Zheng Jie +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ package cn.ysk.cashier.mybatis.entity; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.extension.activerecord.Model; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import lombok.EqualsAndHashCode; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; +import javax.persistence.*; +import java.io.Serializable; import java.math.BigDecimal; -import java.util.Date; +import java.sql.Timestamp; /** - * @author GYJ - */ +* @author admin +* @date 2024-09-02 +**/ @Entity @Data -@EqualsAndHashCode(callSuper = true) -@TableName("tb_shop_user_flow") @Table(name="tb_shop_user_flow") -public class TbShopUserFlow extends Model { +public class TbShopUserFlow implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "`id`") + @ApiModelProperty(value = "id") private Integer id; + @Column(name = "`shop_user_id`") + @ApiModelProperty(value = "shopUserId") private Integer shopUserId; + @Column(name = "`amount`") + @ApiModelProperty(value = "amount") private BigDecimal amount; + @Column(name = "`balance`") + @ApiModelProperty(value = "balance") private BigDecimal balance; + @Column(name = "`biz_code`") + @ApiModelProperty(value = "bizCode") private String bizCode; + @Column(name = "`biz_name`") + @ApiModelProperty(value = "bizName") private String bizName; - private Date createTime; + @Column(name = "`create_time`") + @ApiModelProperty(value = "createTime") + private Timestamp createTime; + @Column(name = "`type`") + @ApiModelProperty(value = "type") private String type; + + @Column(name = "`is_return`") + @ApiModelProperty(value = "是否退款 1 已退款 0 未退款") + private String isReturn; + + @Column(name = "`update_time`") + @ApiModelProperty(value = "updateTime") + private Timestamp updateTime; + + @Column(name = "`remark`") + @ApiModelProperty(value = "备注") + private String remark; + + public void copy(TbShopUserFlow source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java index 51a9334c..6e80822b 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/mapper/TbShopUserFlowMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import javax.validation.Valid; import java.math.BigDecimal; import java.util.List; @@ -41,4 +42,11 @@ public interface TbShopUserFlowMapper extends BaseMapper { @Param("endTime") String endTime); + @Select(value = "select * from tb_shop_user_flow where shop_user_id=#{userId} order by id desc limit #{page},#{size}") + List selectByUserId(@Param("userId") Integer userId,@Param("page") Integer page,@Param("size") Integer size); + + @Select(value = "select count(0) from tb_shop_user_flow where shop_user_id=#{userId} ") + Integer selectCountByUserId(@Param("userId") Integer userId); + + } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopUserFlowService.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopUserFlowService.java index ae55eb02..aa9ab95a 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopUserFlowService.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/TbShopUserFlowService.java @@ -2,10 +2,10 @@ package cn.ysk.cashier.mybatis.service; import cn.ysk.cashier.mybatis.entity.TbShopUserFlow; import com.baomidou.mybatisplus.extension.service.IService; -import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.List; +import java.util.Map; /** * @author GYJ @@ -13,4 +13,9 @@ import java.util.List; public interface TbShopUserFlowService extends IService { BigDecimal sumUserFlowAmountByConditions(Long shopId, String startTime, String endTime); + + + Map selectByUserId(Integer userId, Integer page, Integer pageSize); + + Integer selectCountByUserId(Integer userId); } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopUserFlowServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopUserFlowServiceImpl.java index eec93bd5..5d813b93 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopUserFlowServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/mybatis/service/impl/TbShopUserFlowServiceImpl.java @@ -4,10 +4,13 @@ import cn.ysk.cashier.mybatis.entity.TbShopUserFlow; import cn.ysk.cashier.mybatis.mapper.TbShopUserFlowMapper; import cn.ysk.cashier.mybatis.service.TbShopUserFlowService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.data.domain.*; import org.springframework.stereotype.Service; import java.math.BigDecimal; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author GYJ @@ -18,4 +21,29 @@ public class TbShopUserFlowServiceImpl extends ServiceImpl0){ + Pageable pageable = PageRequest.of(page, pageSize, Sort.by("id").descending()); + List userFlows=baseMapper.selectByUserId(userId,pageable.getPageNumber(),pageable.getPageSize()); + map.put("totalElements",count); + map.put("content",userFlows); + }else { + + map.put("totalElements",0); + map.put("content",null); + } + return map; + } + + @Override + public Integer selectCountByUserId(Integer userId) { + return null; + } + + } diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java index 6af0e008..33e99545 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/TbPayServiceImpl.java @@ -1,6 +1,5 @@ package cn.ysk.cashier.service.impl; -import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.ysk.cashier.dto.ScanPayDTO; import cn.ysk.cashier.dto.shoptable.PayDTO; @@ -21,13 +20,13 @@ import cn.ysk.cashier.repository.shop.TbMerchantThirdApplyRepository; import cn.ysk.cashier.service.TbPayService; import cn.ysk.cashier.utils.RabbitMsgUtils; import cn.ysk.cashier.utils.SnowFlakeUtil; -import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.stereotype.Service; import javax.validation.constraints.NotNull; +import java.sql.Timestamp; import java.util.List; @Service @@ -330,7 +329,7 @@ public class TbPayServiceImpl implements TbPayService { userFlow.setShopUserId(shopUser.getId()); userFlow.setBizCode("vipCardCash"); userFlow.setBizName("代客下单会员余额支付"); - userFlow.setCreateTime(DateUtil.date()); + userFlow.setCreateTime(new Timestamp(System.currentTimeMillis())); userFlow.setType("-"); shopUserFlowMapper.insert(userFlow); diff --git a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java index e0f7c24e..e5735944 100644 --- a/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java +++ b/eladmin-system/src/main/java/cn/ysk/cashier/service/impl/shopimpl/TbShopUserServiceImpl.java @@ -32,9 +32,9 @@ import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; +import java.sql.Timestamp; import java.time.Instant; import java.util.*; -import java.util.regex.Pattern; /** * @author lyf @@ -249,7 +249,7 @@ public class TbShopUserServiceImpl implements TbShopUserService { flow.setShopUserId(tbShopUser.getId()); flow.setAmount(amount); flow.setBalance(tbShopUser.getAmount()); - flow.setCreateTime(new Date()); + flow.setCreateTime(new Timestamp(System.currentTimeMillis())); tbShopUserFlowMapper.insert(flow);