UserSignGongxianRepository.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace app\common\repositories\user;
  3. use app\common\dao\user\UserSignGongxianDao;
  4. use app\common\enum\user\UserSignGongxianEnum;
  5. use app\common\repositories\BaseRepository;
  6. use app\common\repositories\store\order\StoreOrderRepository;
  7. use app\entity\data\user\UserSignGongxianEntity;
  8. use think\exception\ValidateException;
  9. class UserSignGongxianRepository extends BaseRepository
  10. {
  11. public function __construct(UserSignGongxianDao $dao)
  12. {
  13. $this->dao = $dao;
  14. }
  15. public function create($data)
  16. {
  17. return $this->dao->create($data);
  18. }
  19. /**
  20. * 写入贡献值记录
  21. * @param UserSignGongxianEntity $userSignGongxianEntity
  22. * @return UserSignGongxianEntity
  23. */
  24. public function createByEntity(UserSignGongxianEntity $userSignGongxianEntity): UserSignGongxianEntity
  25. {
  26. $result = $this->dao->create($userSignGongxianEntity->toUnderlineArray())->toArray();
  27. /** @var UserSignGongxianEntity $entity */
  28. $entity = UserSignGongxianEntity::newInstance($result);
  29. return $entity;
  30. }
  31. /**
  32. * 添加贡献值记录
  33. * @param int $uid
  34. * @param int $type
  35. * @param float $number
  36. * @param string $mark
  37. * @param string $orderType
  38. * @param string $orderId
  39. * @return UserSignGongxianEntity
  40. */
  41. public function addUserSingGongxian(int $uid, int $type, float $number, string $mark = '', string $orderType = '', string $orderId = ''): UserSignGongxianEntity
  42. {
  43. $merId = 0;
  44. if (!empty($orderType)) {
  45. if (!empty($orderId)) {
  46. if ($orderType == UserSignGongxianEnum::ORDER_TYPE['Platform']['code']) {
  47. /** @var StoreOrderRepository $storeOrderRepository */
  48. $storeOrderRepository = app()->make(StoreOrderRepository::class);
  49. $storeOrderEntity = $storeOrderRepository->getStoreOrderEntityByOrderId((int)$orderId);
  50. if (empty($storeOrderEntity->getOrderId())) {
  51. throw new ValidateException('未查询到订单信息');
  52. }
  53. $merId = $storeOrderEntity->getMerId();
  54. }
  55. }
  56. }
  57. /** @var UserSignGongxianEntity $userSignGongxianEntity */
  58. $userSignGongxianEntity = UserSignGongxianEntity::newInstance();
  59. $userSignGongxianEntity->setUid($uid)
  60. ->setType($type)
  61. ->setNumber($number)
  62. ->setMark($mark)
  63. ->setOrderType($orderType)
  64. ->setOrderId($orderId)
  65. ->setMerId($merId)
  66. ->setAddtime(time())
  67. ->setStatus(UserSignGongxianEnum::STATUS['PendingConfirmation']['code']);
  68. return $this->createByEntity($userSignGongxianEntity);
  69. }
  70. }